From c531b4c59492764ef30df452e750af90545f47e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=EB=8B=A4?= Date: Sun, 6 Sep 2020 19:11:26 +0900 Subject: [PATCH 001/489] =?UTF-8?q?=F0=9F=8C=90=20Updated=20korean=20trans?= =?UTF-8?q?lations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/ko.json | 162 ++++++++++++++++++++++++++------------------ 1 file changed, 97 insertions(+), 65 deletions(-) diff --git a/src/locales/ko.json b/src/locales/ko.json index 0969e6c61..6d93249e4 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1,67 +1,99 @@ { - "DOUBLE_CLICK_TO_RESET_POSITION": "두 번 클릭하여 위치 재설정", - "LABEL_CHANGELOG": "새로운 기능", - "LABEL_EXIT": "종료", - "LABEL_GUEST": "손님", - "LABEL_LOADING": "로딩 중...", - "LABEL_LYRICS": "가사", - "LABEL_LYRICS_NOT_FOUND": "가사를 찾지 못했습니다.", - "LABEL_MINIPLAYER": "미니 플레이어", - "LABEL_PLAY_MUSIC": "음악을 재생해 주세요", - "LABEL_SETTINGS": "설정", - "LABEL_SETTINGS_RELAUNCH": "적용 및 재시작", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "메인 창 보이기/숨기기", - "LABEL_SETTINGS_TAB_ABOUT": "정보", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "작업 표시줄에 곡 현황 보이기", - "LABEL_SETTINGS_TAB_APPEARENCE": "외관", - "LABEL_SETTINGS_TAB_GENERAL": "기본", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "장치 없음", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "리모트 서버 (Companion Server)", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "QR 코드 스캔하기", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "리모트 서버 (Companion Server)를 비밀번호로 보호", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "앱 재실행 시 페이지 링크 유지", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "커스텀 테마", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence (Discord 상태 연동)", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "앱을 종료해도 백그라운드에 유지", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "페이지 확대", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "출력 장치", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "언어", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "가사 제공", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "타이틀 바 스타일", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "좋게", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "사용 안함", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "시스템 설정", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "메뉴 바 컨트롤러 (macOS 전용)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "알림 보이기", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "최소화 상태에서 시작", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "부팅 시 열기 (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "연동", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last.fm (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "저장 및 인증", - "LABEL_SETTINGS_TAB_MACOS": "맥 OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "미니 플레이어", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "항상 상단에", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "컨트롤 항상 보이기", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "컨트롤러 색 앨범 색상에 맞추기", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "미니 플레이어 크기", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "크게", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "보통", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "작게", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "클립보드에서 유튜브 링크 찾기", - "LABEL_SETTINGS_TAB_SHORTCUTS": "단축키", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "어디서나", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "로컬", - "MEDIA_CONTROL_MUTE_UNMUTE": "음소거 / 음소거 취소", - "MEDIA_CONTROL_NEXT": "다음", - "MEDIA_CONTROL_PAUSE": "일시정지", - "MEDIA_CONTROL_PLAY": "재생", - "MEDIA_CONTROL_PLAY_PAUSE": "재생 / 일시정지", - "MEDIA_CONTROL_PREVIOUS": "이전", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "대기열 열기 / 닫기", - "MEDIA_CONTROL_REPEAT": "반복", - "MEDIA_CONTROL_SEARCH": "검색", - "MEDIA_CONTROL_SHUFFLE": "셔플", - "MEDIA_CONTROL_THUMBS_DOWN": "싫어요", - "MEDIA_CONTROL_THUMBS_UP": "좋아요" + "ADD_TO_LIBRARY": "라이브러리에 추가", + "ADD_TO_PLAYLIST": "플레이리스트에 추가", + "ALWAYS_ASK_WHEN_READ_LINK": "링크 읽을 때 항상 물어보기", + "DOUBLE_CLICK_TO_RESET_POSITION": "두 번 클릭하여 위치 재설정", + "LABEL_ALSO": "또한", + "LABEL_AUDIO": "오디오", + "LABEL_CANCEL": "취소", + "LABEL_CHANGELOG": "새로운 기능", + "LABEL_DISABLE": "비활성화", + "LABEL_EXIT": "종료", + "LABEL_GUEST": "손님", + "LABEL_LOADING": "로딩 중...", + "LABEL_LYRICS": "가사", + "LABEL_LYRICS_NOT_FOUND": "가사를 찾지 못했습니다.", + "LABEL_MINIPLAYER": "미니 플레이어", + "LABEL_NOTIFICATION_DISLIKED": "이 곡을 마음에 들지 않는다고 표시하였습니다.", + "LABEL_NOTIFICATION_LIKED": "이 곡을 마음에 든다고 표시하였습니다.", + "LABEL_PLAY_MUSIC": "음악을 재생해 주세요", + "LABEL_SAVE": "저장", + "LABEL_SAVED": "저장됨", + "LABEL_SETTINGS": "설정", + "LABEL_SETTINGS_DISCORD": "디스코드 설정", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "아티스트 보기", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "일시정지 되어 있을 때 곡 보여주기", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "곡 진행 (시간) 보여주기", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "제목 보여주기", + "LABEL_SETTINGS_RELAUNCH": "적용 및 재시작", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "메인 창 보이기/숨기기", + "LABEL_SETTINGS_TAB_ABOUT": "정보", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "작업 표시줄에 곡 현황 보이기", + "LABEL_SETTINGS_TAB_APPEARENCE": "외관", + "LABEL_SETTINGS_TAB_GENERAL": "기본", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "장치 없음", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "리모트 서버 (Companion Server)", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "QR 코드 스캔하기", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "리모트 서버 (Companion Server)를 비밀번호로 보호", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "앱 재실행 시 페이지 링크 유지", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "커스텀 테마", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "하드웨어 가속 비활성화", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence (Discord 상태 연동)", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "앱을 종료해도 백그라운드에 유지", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "페이지 확대", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "출력 장치", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "언어", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "가사 제공", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "타이틀 바 스타일", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "좋게", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "사용 안함", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "시스템 설정", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "메뉴 바 컨트롤러 (macOS 전용)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "알림 보이기", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "최소화 상태에서 시작", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "부팅 시 열기 (Mac/Win)", + "LABEL_SETTINGS_TAB_INTEGRATION": "연동", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "연동", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 미디어 서비스 활성화", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10 볼륨 정보 표시에 곡 정보 표시", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last.fm (Scrobbler)", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "저장 및 인증", + "LABEL_SETTINGS_TAB_MACOS": "맥 OS", + "LABEL_SETTINGS_TAB_MINIPLAYER": "미니 플레이어", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "항상 상단에", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "컨트롤 항상 보이기", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "컨트롤러 색 앨범 색상에 맞추기", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "리사이징 (확대/축소) 허용", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "작업 표시줄에 보여주기", + "LABEL_SETTINGS_TAB_PLAYBACK": "재생", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "클립보드에서 유튜브 링크 찾기", + "LABEL_SETTINGS_TAB_SHORTCUTS": "단축키", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "어디서나", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "로컬", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "아무 키나 누르세요", + "LYRICS": "가사", + "MEDIA_CONTROL_MINIPLAYER": "미니 플레이어 열기/닫기", + "MEDIA_CONTROL_MUTE_UNMUTE": "음소거 / 음소거 취소", + "MEDIA_CONTROL_NEXT": "다음", + "MEDIA_CONTROL_PAUSE": "일시정지", + "MEDIA_CONTROL_PLAY": "재생", + "MEDIA_CONTROL_PLAY_PAUSE": "재생 / 일시정지", + "MEDIA_CONTROL_PREVIOUS": "이전", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "대기열 열기 / 닫기", + "MEDIA_CONTROL_REPEAT": "반복", + "MEDIA_CONTROL_SEARCH": "검색", + "MEDIA_CONTROL_SHUFFLE": "셔플", + "MEDIA_CONTROL_THUMBS_DOWN": "싫어요", + "MEDIA_CONTROL_THUMBS_UP": "좋아요", + "MEDIA_CONTROL_VOLUME_DOWN": "음량 축소", + "MEDIA_CONTROL_VOLUME_UP": "음량 증가", + "MINIPLAYER": "미니 플레이어", + "PREFIX_OPEN_CLOSE": "열기/닫기", + "SHORTCUT_BUTTONS": "UI 액션", + "SHOW": "보이기", + "SKIP_TRACK_MARKED_DISLIKED": "곡을 스킵하면 '마음에 안듬' 남기기", + "SKIP_TRACK_SHORTER_THAN": "길이가 다음보다 짧으면 스킵함:", + "TRAY_ICON": "트레이 아이콘", + "WANT_PLAY_THIS_LINK": "이 링크를 재생하시겠습니까?" } From b8b97658e6ce0aecc40638fc53a570d62ad1dba9 Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Mon, 7 Sep 2020 14:05:15 -0300 Subject: [PATCH 002/489] :bug: Changelog window height --- src/pages/changelog/changelog.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/changelog/changelog.css b/src/pages/changelog/changelog.css index c5eae2082..db2eb3131 100644 --- a/src/pages/changelog/changelog.css +++ b/src/pages/changelog/changelog.css @@ -22,7 +22,7 @@ body { overflow: auto; width: 100%; padding: 2px; - height: 100%; + height: 90%; scroll-behavior: smooth; } From 38548a668c8a917b7d75c2b13772eb09d9ae567c Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Thu, 10 Sep 2020 19:35:26 -0300 Subject: [PATCH 003/489] :arrow_up: Updating electron-rebuild 2.0.3 to fix node-gyp --- package-lock.json | 321 ++++++++++++++++++++++++++++++---------------- package.json | 22 ++-- 2 files changed, 220 insertions(+), 123 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63acd2787..15b235f8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "youtube-music-desktop-app", - "version": "1.12.1", + "version": "1.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -331,9 +331,10 @@ "dev": true }, "@types/node": { - "version": "14.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", - "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==" + "version": "14.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz", + "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==", + "dev": true }, "@types/parse-json": { "version": "4.0.0", @@ -342,12 +343,9 @@ "dev": true }, "@types/semver": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.1.tgz", - "integrity": "sha512-ooD/FJ8EuwlDKOI6D9HWxgIgJjMg2cuziXm/42npDC8y4NjxplBUn9loewZiBNCt44450lHAU0OSb51/UqXeag==", - "requires": { - "@types/node": "*" - } + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz", + "integrity": "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" }, "@types/yargs": { "version": "15.0.5", @@ -459,27 +457,27 @@ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" }, "app-builder-bin": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz", - "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", + "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", "dev": true }, "app-builder-lib": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.0.tgz", - "integrity": "sha512-RGaIRjCUrqkmh6QOGsyekQPEOaVynHfmeh8JZuyUymFYUOFdzBbPamkA2nhBVBTkkgfjRHsxK7LhedFKPzvWEQ==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.1.tgz", + "integrity": "sha512-D/ac1+vuGIAAwEeTtXl8b+qWl7Gz/IQatFyzYl2ocag/7N8LqUjKzZFJJISQPWt6PFDPDH0oCj8/GMh63aV0yw==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chromium-pickle-js": "^0.2.0", - "debug": "^4.1.1", + "debug": "^4.2.0", "ejs": "^3.1.3", - "electron-publish": "22.8.0", + "electron-publish": "22.8.1", "fs-extra": "^9.0.1", "hosted-git-info": "^3.0.5", "is-ci": "^2.0.0", @@ -492,6 +490,17 @@ "sanitize-filename": "^1.6.3", "semver": "^7.3.2", "temp-file": "^3.3.7" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "aproba": { @@ -763,25 +772,36 @@ } }, "builder-util": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.0.tgz", - "integrity": "sha512-H80P1JzVy3TGpi63x81epQDK24XalL034+jAZlrPb5IhLtYmnNNdxCCAVJvg3VjSISd73Y71O+uhqCxWpqbPHw==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.1.tgz", + "integrity": "sha512-LZG+E1xszMdut5hL5h7RkJQ7yOsQqdhJYgn1wvOP7MmF3MoUPRNDiRodLpYiWlaqZmgYhcfaipR/Mb8F/RqK8w==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.1", - "app-builder-bin": "3.5.9", + "app-builder-bin": "3.5.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "debug": "^4.1.1", + "debug": "^4.2.0", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "js-yaml": "^3.14.0", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", "temp-file": "^3.3.7" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "builder-util-runtime": { @@ -877,9 +897,9 @@ "dev": true }, "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cli-cursor": { @@ -1080,16 +1100,16 @@ "dev": true }, "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" } }, "cross-spawn": { @@ -1253,6 +1273,11 @@ "ws": "7.1.2" }, "dependencies": { + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, "ws": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", @@ -1264,13 +1289,13 @@ } }, "dmg-builder": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.0.tgz", - "integrity": "sha512-orePWjcrl97SYLA8F/6UUtbXJSoZCYu5KOP1lVqD4LOomr8bjGDyEVYZmZYcg5WqKmXucdmO6OpqgzH/aRMMuA==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.1.tgz", + "integrity": "sha512-WeGom1moM00gBII6swljl4DQGrlJuEivoUhOmh8U9p1ALgeJL+EiTHbZFERlj8Ejy62xUUjURV+liOxUKmJFWg==", "dev": true, "requires": { - "app-builder-lib": "22.8.0", - "builder-util": "22.8.0", + "app-builder-lib": "22.8.1", + "builder-util": "22.8.1", "fs-extra": "^9.0.1", "iconv-lite": "^0.6.2", "js-yaml": "^3.14.0", @@ -1325,9 +1350,9 @@ } }, "ejs": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz", - "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", "dev": true, "requires": { "jake": "^10.6.1" @@ -1353,25 +1378,25 @@ } }, "electron-builder": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.0.tgz", - "integrity": "sha512-dUv4F3srJouqxhWivtKqSoQP4Df6vYgjooGdzms+iYMTFi9f0b4LlEbr7kgsPvte8zAglee7VOGOODkCRJDkUQ==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.1.tgz", + "integrity": "sha512-Hs7KTMq1rGSvT0fwGKXrjbLiJkK6sAKDQooUSwklOkktUgWi4ATjlP0fVE3l8SmS7zcLoww2yDZonSDqxEFhaQ==", "dev": true, "requires": { "@types/yargs": "^15.0.5", - "app-builder-lib": "22.8.0", + "app-builder-lib": "22.8.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "dmg-builder": "22.8.0", + "dmg-builder": "22.8.1", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", "read-config-file": "6.0.0", "sanitize-filename": "^1.6.3", "update-notifier": "^4.1.0", - "yargs": "^15.3.1" + "yargs": "^15.4.1" } }, "electron-canvas-to-buffer": { @@ -1385,20 +1410,20 @@ "integrity": "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" }, "electron-fetch": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.4.0.tgz", - "integrity": "sha512-rednYIpMbuzekTroNndQOFl95c4I/wMEbH9jxGoDEoKrM07b7FWydy6I3pbiAbCxDcYpmHtzMY6ykyLagR7JHw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.1.tgz", + "integrity": "sha512-Vmzb6Lx/jghH5ZNI1ParfqQPKePMncI+Sg5oA92HBVa2TGUcEQJ/noU/zdf4gpugk/imh0qu3xcNY5C/5R8nlg==", "requires": { - "encoding": "^0.1.12" + "encoding": "^0.1.13" } }, "electron-google-analytics": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.0.tgz", - "integrity": "sha512-CHZQgvvR6ktiwNgNxhFNZ7Dudk9mX96egZP31PTk18Nh7MjDNjuy8wHjftnD/gYV7L1mPhseZMFJxSOXBLhAnQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.1.tgz", + "integrity": "sha512-uOk1GbqckcgDVgo4XPWk1bfTeEf6w9NN65kDTX9r95Ygr/77BF1ErvGjv3+Okdetf+KGRt8banMGUbAeCijNvQ==", "requires": { - "electron-fetch": "^1.4.0", - "uuid": "^8.1.0" + "electron-fetch": "^1.6.0", + "uuid": "^8.3.0" } }, "electron-is-accelerator": { @@ -1423,9 +1448,9 @@ } }, "electron-log": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.2.tgz", - "integrity": "sha512-lBpLh1Q8qayrTxFIrTPcNjSHsosvUfOYyZ8glhiLcx7zCNPDGuj8+nXlEaaSS6LRiQQbLgLG+wKpuvztNzBIrA==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.4.tgz", + "integrity": "sha512-CXbDU+Iwi+TjKzugKZmTRIORIPe3uQRqgChUl19fkW/reFUn5WP7dt+cNGT3bkLV8xfPilpkPFv33HgtmLLewQ==" }, "electron-native-notification": { "version": "1.2.1", @@ -1433,14 +1458,14 @@ "integrity": "sha512-vjbhA80nrzFtC33jDk+6a5z55vrannZtWd14clMDEj8YlFRLxIDbunjOaT3yBiHNBK7c/fGNtYkVZYMYgFpc1Q==" }, "electron-publish": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.0.tgz", - "integrity": "sha512-uM0Zdi9hUqqGOrPj478v7toTvV1Kgto1w11rIiI168batiXAJvNLD8VZRfehOrZT0ibUyZlw8FtxoGCrjyHUOw==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.1.tgz", + "integrity": "sha512-zqI66vl7j1CJZJ60J+1ez1tQNQeuqVspW44JvYDa5kZbM5wSFDAJFMK9RWHOqRF1Ezd4LDeiBa4aeTOwOt9syA==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", "fs-extra": "^9.0.1", @@ -1457,9 +1482,9 @@ } }, "electron-rebuild": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.0.1.tgz", - "integrity": "sha512-oXCnKKS+FpLxXiiSHtSCFI3zo+4H2y6zUegSQTI031RJXn2fzQV9UJMAfBrnW7Z083chIo3/L4+xFM4R8mreOQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.0.3.tgz", + "integrity": "sha512-I8Oeey9afU+trFLd8/qRRiHC083CCoBnmw3q0qQaRFsg0OzMaeJQn7Nl6EYKPpntuQ/3yOqZQ7b3ObNuETN/Ig==", "dev": true, "requires": { "@malept/cross-spawn-promise": "^1.1.0", @@ -1469,8 +1494,74 @@ "fs-extra": "^9.0.1", "node-abi": "^2.19.1", "node-gyp": "^7.1.0", - "ora": "^5.0.0", - "yargs": "^15.4.1" + "ora": "^5.1.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "cliui": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.1.tgz", + "integrity": "sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.1.tgz", + "integrity": "sha512-/jJ831jEs4vGDbYPQp4yGKDYPSCCEQ45uZWJHE1AoYBzqdZi8+LDWas0z4HrmJXmKdpFsTiowSHXdxyFhpmdMg==", + "dev": true + }, + "yargs": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.0.3.tgz", + "integrity": "sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA==", + "dev": true, + "requires": { + "cliui": "^7.0.0", + "escalade": "^3.0.2", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.1", + "yargs-parser": "^20.0.0" + } + }, + "yargs-parser": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true + } } }, "electron-store": { @@ -1483,9 +1574,9 @@ } }, "electron-updater": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.4.tgz", - "integrity": "sha512-ekpgxDrYl+Wi24ktO4qfj2CtCABxrmK1C/oekp0tai6q4VR4ZdPkit4CX8+GenvKMme7uMmfPFnLp/vwhP/ThQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz", + "integrity": "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==", "requires": { "@types/semver": "^7.3.1", "builder-util-runtime": "8.7.2", @@ -1633,6 +1724,12 @@ "dev": true, "optional": true }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "dev": true + }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", @@ -1684,9 +1781,9 @@ }, "dependencies": { "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2114,15 +2211,15 @@ } }, "husky": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", - "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.0.tgz", + "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==", "dev": true, "requires": { "chalk": "^4.0.0", "ci-info": "^2.0.0", "compare-versions": "^3.6.0", - "cosmiconfig": "^6.0.0", + "cosmiconfig": "^7.0.0", "find-versions": "^3.2.0", "opencollective-postinstall": "^2.0.2", "pkg-dir": "^4.2.0", @@ -2132,12 +2229,12 @@ } }, "i18n": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.10.0.tgz", - "integrity": "sha512-lCSpIm/ZLUCQMAv+UAjSEYzPq96KG7fIx6o1mNQ0MuTBzXpPgd31t4WLzbPG10nKTLJzj9176dgOG7C0wUquSA==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==", "requires": { - "debug": "*", - "make-plural": "^6.2.1", + "debug": "^4.1.1", + "make-plural": "^6.2.2", "math-interval-parser": "^2.0.1", "messageformat": "^2.3.0", "mustache": "^4.0.1", @@ -2435,9 +2532,9 @@ "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" }, "js-base64": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.4.3.tgz", - "integrity": "sha512-SNMgYrBASovuSPsaZaoZ3g+u0ZLuSGGOIkTDT1u+WI4e8Ch7FnHdrvNqQm8CHGpoOhCmGKuDVr50Yw4VHMI/Eg==" + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.4.5.tgz", + "integrity": "sha512-Ub/AANierdcT8nm4ndBn3KzpZQ3MdHX4a+bwoVdjgeHCZ0ZEcP+UB4nmR4Z5lR6SH3Y+qAPmgVR0RxKJNHNHEg==" }, "js-tokens": { "version": "4.0.0", @@ -2472,10 +2569,10 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema": { @@ -2649,9 +2746,9 @@ } }, "make-plural": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.1.tgz", - "integrity": "sha512-AmkruwJ9EjvyTv6AM8MBMK3TAeOJvhgTv5YQXzF0EP2qawhpvMjDpHvsdOIIT0Vn+BB0+IogmYZ1z+Ulm/m0Fg==" + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" }, "map-stream": { "version": "0.1.0", @@ -2876,9 +2973,9 @@ "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-gyp": { "version": "7.1.0", @@ -3099,9 +3196,9 @@ "dev": true }, "ora": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", - "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3245,14 +3342,14 @@ "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" }, "parse-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", - "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", + "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, @@ -3416,15 +3513,15 @@ "dev": true }, "prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", + "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", "dev": true }, "pretty-quick": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", - "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", + "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -4380,9 +4477,9 @@ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" }, "update-notifier": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", - "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz", + "integrity": "sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==", "dev": true, "requires": { "boxen": "^4.2.0", diff --git a/package.json b/package.json index 2bad64b5a..a43f0c3f2 100644 --- a/package.json +++ b/package.json @@ -29,29 +29,29 @@ }, "devDependencies": { "electron": "^10.1.1", - "electron-builder": "^22.8.0", - "electron-rebuild": "^2.0.1", - "husky": "^4.2.5", - "prettier": "^2.0.5", - "pretty-quick": "^2.0.1" + "electron-builder": "^22.8.1", + "electron-rebuild": "^2.0.3", + "husky": "^4.3.0", + "prettier": "^2.1.1", + "pretty-quick": "^2.0.2" }, "dependencies": { "ace-builds": "^1.4.12", "discord-rpc": "^3.1.3", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", - "electron-google-analytics": "^1.0.0", + "electron-google-analytics": "^1.0.1", "electron-is-dev": "^1.2.0", "electron-localshortcut": "^3.2.1", - "electron-log": "^4.2.2", + "electron-log": "^4.2.4", "electron-native-notification": "^1.2.1", "electron-store": "^6.0.0", - "electron-updater": "^4.3.4", - "i18n": "^0.10.0", + "electron-updater": "^4.3.5", + "i18n": "^0.13.2", "image-to-base64": "^2.1.1", - "js-base64": "^3.4.3", + "js-base64": "^3.4.5", "markdown": "^0.5.0", - "node-fetch": "^2.6.0", + "node-fetch": "^2.6.1", "node-vibrant": "^3.1.5", "qrcode-generator": "^1.4.4", "register-scheme": "0.0.2", From 118a674b17b22b36cb52ec379ea88f01580c33ec Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Thu, 10 Sep 2020 19:37:08 -0300 Subject: [PATCH 004/489] :bug: Fix #372 --- src/locales/en.json | 1 + src/locales/pt.json | 1 + src/locales/scaffold.json | 1 + src/utils/injectControls.js | 6 ++++++ 4 files changed, 9 insertions(+) diff --git a/src/locales/en.json b/src/locales/en.json index 1cff55978..db451cfbf 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -90,6 +90,7 @@ "MEDIA_CONTROL_VOLUME_UP": "Increase volume", "MINIPLAYER": "Miniplayer", "PREFIX_OPEN_CLOSE": "Open/Close", + "REMOVE_FROM_LIBRARY": "Remove from library", "SHORTCUT_BUTTONS": "UI Actions", "SHOW": "Show", "SKIP_TRACK_MARKED_DISLIKED": "Skip tracks marked as 'Disliked'", diff --git a/src/locales/pt.json b/src/locales/pt.json index a7032b2fc..abdaacd92 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -90,6 +90,7 @@ "MEDIA_CONTROL_VOLUME_UP": "Aumentar volume", "MINIPLAYER": "Miniplayer", "PREFIX_OPEN_CLOSE": "Abrir/Fechar", + "REMOVE_FROM_LIBRARY": "Remover da biblioteca", "SHORTCUT_BUTTONS": "Ações da UI", "SHOW": "Exibir", "SKIP_TRACK_MARKED_DISLIKED": "Pular faixas marcadas como 'Não gostei'", diff --git a/src/locales/scaffold.json b/src/locales/scaffold.json index 1cff55978..db451cfbf 100644 --- a/src/locales/scaffold.json +++ b/src/locales/scaffold.json @@ -90,6 +90,7 @@ "MEDIA_CONTROL_VOLUME_UP": "Increase volume", "MINIPLAYER": "Miniplayer", "PREFIX_OPEN_CLOSE": "Open/Close", + "REMOVE_FROM_LIBRARY": "Remove from library", "SHORTCUT_BUTTONS": "UI Actions", "SHOW": "Show", "SKIP_TRACK_MARKED_DISLIKED": "Skip tracks marked as 'Disliked'", diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 5e4a4d888..3855a5c26 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -530,9 +530,15 @@ function createBottomPlayerBarContent() { ) { document.querySelector('#ytmd_add_to_library').innerText = 'check' + document.querySelector( + '#ytmd_add_to_library' + ).title = translate('REMOVE_FROM_LIBRARY') } else { document.querySelector('#ytmd_add_to_library').innerText = 'library_add' + document.querySelector( + '#ytmd_add_to_library' + ).title = translate('ADD_TO_LIBRARY') } document .querySelector('#btn_ytmd_add_to_library') From c13dbcc5500cb079eed976272bc7c590c0a767d5 Mon Sep 17 00:00:00 2001 From: Nerogar Date: Fri, 11 Sep 2020 13:26:44 +0200 Subject: [PATCH 005/489] :sparkles: improve volume controls --- STORE_VARIABLES.md | 2 ++ main.js | 14 ++++++++++++++ src/locales/de.json | 1 + src/locales/en.json | 1 + src/pages/settings/settings.html | 25 ++++++++++++++++++++++++- src/pages/settings/settings.js | 15 +++++++++++++++ src/providers/infoPlayerProvider.js | 12 ++++++++++-- src/providers/mediaProvider.js | 23 +++++++++++++++++++++-- src/utils/defaultSettings.js | 7 +++++++ src/utils/injectControls.js | 11 +++++++++++ 10 files changed, 106 insertions(+), 5 deletions(-) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index 8ec68d5b3..e24681994 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -24,6 +24,8 @@ | `settings-app-audio-output` | String | `Audio devices` | DEFAULT_AUDIO_DEVICE | Define default audio output | | `settings-custom-css-app` | Boolean | `true` or `false` | `false` | Custom css for main app | | `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | +| `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | +| `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | ## Window | Key | Type | Values | Default | Description | diff --git a/main.js b/main.js index 979580a24..d2868eb1c 100644 --- a/main.js +++ b/main.js @@ -814,6 +814,16 @@ function createWindow() { mediaControl.nextTrack(view) }) + if (settingsProvider.get('settings-volume-media-keys')) { + globalShortcut.register('VolumeUp', function () { + mediaControl.volumeUp(view) + }) + + globalShortcut.register('VolumeDown', function () { + mediaControl.volumeDown(view) + }) + } + ipcMain.handle('invoke-all-info', async (event, args) => { return infoPlayerProvider.getAllInfo() }) @@ -1518,6 +1528,10 @@ function createWindow() { setAudioOutput(dataRenderer !== undefined ? dataRenderer : dataMain) }) + ipcMain.on('change-volume', (dataMain, dataRenderer) => { + settingsProvider.set('settings-volume', dataRenderer.volume) + }) + function setAudioOutput(audioLabel) { view.webContents .executeJavaScript( diff --git a/src/locales/de.json b/src/locales/de.json index e64ff65e9..26f8fd30c 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -71,6 +71,7 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Drücke eine beliebige Taste", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Lautstärke Medientasten aktivieren", "MEDIA_CONTROL_MUTE_UNMUTE": "Ton aus / Ton an", "MEDIA_CONTROL_NEXT": "Weiter", "MEDIA_CONTROL_PAUSE": "Anhalten", diff --git a/src/locales/en.json b/src/locales/en.json index 1cff55978..5a2e27458 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -71,6 +71,7 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Press any key", "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Enable media volume keys", "LABEL_SETTINGS": "Settings", "LYRICS": "Lyrics", "MEDIA_CONTROL_MINIPLAYER": "Open/Close Miniplayer", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 632681e68..ec30edca8 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -323,7 +323,7 @@ > + > @@ -1133,6 +1133,29 @@ + + + + + +
+ +
+ + { + let enableVolumeMediaKeys = settingsProvider.get( + 'settings-volume-media-keys' + ) + ipc.send('change-accelerator', { + type: 'media-volume-up', + oldValue: enableVolumeMediaKeys ? 'disabled' : 'VolumeUp', + newValue: enableVolumeMediaKeys ? 'VolumeUp' : 'disabled', + }) + ipc.send('change-accelerator', { + type: 'media-volume-down', + oldValue: enableVolumeMediaKeys ? 'disabled' : 'VolumeDown', + newValue: enableVolumeMediaKeys ? 'VolumeDown' : 'disabled', + }) + }) initElement( 'settings-disable-hardware-acceleration', 'click', diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index ea488e9dd..7c0606cdf 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -1,3 +1,5 @@ +const settingsProvider = require('./settingsProvider') + var webContents, initialized var player = { @@ -46,6 +48,12 @@ function init(view) { initialized = true toggleMoreActions(webContents) toggleMoreActions(webContents) + + initVolume() +} + +function initVolume() { + setVolume(webContents, settingsProvider.get('settings-volume')) } function getAllInfo() { @@ -187,8 +195,8 @@ function getVolume(webContents) { `document.querySelector('.volume-slider.ytmusic-player-bar').getAttribute('value');` ) .then((volume) => { - debug(`Volume % is: ${parseInt(volume)}`) - player.volumePercent = parseInt(volume) + debug(`Volume % is: ${parseFloat(volume)}`) + player.volumePercent = parseFloat(volume) }) .catch((_) => console.log('error getVolume')) } diff --git a/src/providers/mediaProvider.js b/src/providers/mediaProvider.js index 82b02e295..d399f03bc 100644 --- a/src/providers/mediaProvider.js +++ b/src/providers/mediaProvider.js @@ -28,11 +28,19 @@ function mediaDownVote(mainWindow) { } function mediaVolumeUp(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '=' }) + let percent = infoPlayerProvider.getPlayerInfo().volumePercent + infoPlayerProvider.setVolume( + mainWindow.webContents, + decibelToPercent(percentToDecibel(percent) + 1.5) + ) } function mediaVolumeDown(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '-' }) + let percent = infoPlayerProvider.getPlayerInfo().volumePercent + infoPlayerProvider.setVolume( + mainWindow.webContents, + decibelToPercent(percentToDecibel(percent) - 1.5) + ) } function mediaForwardTenSeconds(mainWindow) { @@ -185,6 +193,17 @@ function createThumbar(mainWindow, mediaInfo) { } } +function percentToDecibel(percent) { + return Math.min(Math.max(20.0 * Math.log10(percent / 100.0), -100.0), 0.0) +} + +function decibelToPercent(decibel) { + return Math.min( + Math.max(Math.pow(10.0, decibel / 20.0) * 100.0, 0.0), + 100.0 + ) +} + function setProgress(mainWindow, progress, isPaused) { if (mainWindow) { if (systemInfo.isWindows()) { diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 6a62fea7e..2fbfb57eb 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -96,3 +96,10 @@ settingsProvider.setInitialValue('settings-skip-track-shorter-than', '0') settingsProvider.setInitialValue('settings-clipboard-always-ask-read', true) settingsProvider.setInitialValue('settings-tray-icon', true) + +settingsProvider.setInitialValue('settings-volume', 100) + +settingsProvider.setInitialValue( + 'settings-enable-double-tapping-show-hide', + false +) diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 5e4a4d888..ae0cab834 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -616,6 +616,17 @@ function createBottomPlayerBarContent() { .classList.remove('ytmd-icons') } }) + + // Volume slider + document.querySelector('#volume-slider').setAttribute('step', 0) + document.querySelector('#expand-volume-slider').setAttribute('step', 0) + document + .querySelector('#volume-slider') + .addEventListener('value-change', function (e) { + ipcRenderer.send('change-volume', { + volume: e.target.getAttribute('value'), + }) + }) } catch (err) { console.error(err) ipcRenderer.send('log', { From 764a2d6a98bbeda2adcc8253763475ed1c585705 Mon Sep 17 00:00:00 2001 From: Nerogar Date: Fri, 11 Sep 2020 21:27:51 +0200 Subject: [PATCH 006/489] :sparkles: setting for decibel volume --- STORE_VARIABLES.md | 1 + src/locales/de.json | 3 ++- src/locales/en.json | 3 ++- src/pages/settings/settings.html | 18 ++++++++++++++++++ src/pages/settings/settings.js | 1 + src/providers/mediaProvider.js | 29 +++++++++++++++++++---------- src/utils/defaultSettings.js | 7 +++---- 7 files changed, 46 insertions(+), 16 deletions(-) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index e24681994..b6f7782c9 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -26,6 +26,7 @@ | `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | | `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | | `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | +| `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | ## Window | Key | Type | Values | Default | Description | diff --git a/src/locales/de.json b/src/locales/de.json index 26f8fd30c..28a8569cd 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -71,7 +71,8 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Drücke eine beliebige Taste", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Lautstärke Medientasten aktivieren", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Lautstärke Medientasten steuern nur App Lautstärke", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Lautstärkeregelung von '%' zu 'dB' ändern", "MEDIA_CONTROL_MUTE_UNMUTE": "Ton aus / Ton an", "MEDIA_CONTROL_NEXT": "Weiter", "MEDIA_CONTROL_PAUSE": "Anhalten", diff --git a/src/locales/en.json b/src/locales/en.json index 5a2e27458..823ff0f3f 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -71,7 +71,8 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Press any key", "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Enable media volume keys", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media keys only control app volume", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", "LABEL_SETTINGS": "Settings", "LYRICS": "Lyrics", "MEDIA_CONTROL_MINIPLAYER": "Open/Close Miniplayer", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index ec30edca8..39b3a2381 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -455,6 +455,24 @@

+ + + + + +
+ +
+ + diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 0217dc85b..d8def0dec 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -160,6 +160,7 @@ document.addEventListener('DOMContentLoaded', function () { newValue: enableVolumeMediaKeys ? 'VolumeDown' : 'disabled', }) }) + initElement('settings-decibel-volume', 'click') initElement( 'settings-disable-hardware-acceleration', 'click', diff --git a/src/providers/mediaProvider.js b/src/providers/mediaProvider.js index d399f03bc..0dea8ea01 100644 --- a/src/providers/mediaProvider.js +++ b/src/providers/mediaProvider.js @@ -2,6 +2,7 @@ const __ = require('./translateProvider') const systemInfo = require('../utils/systemInfo') const infoPlayerProvider = require('../providers/infoPlayerProvider') const path = require('path') +const settingsProvider = require('./settingsProvider') function mediaPlayPauseTrack(mainWindow) { mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: ';' }) @@ -28,19 +29,27 @@ function mediaDownVote(mainWindow) { } function mediaVolumeUp(mainWindow) { - let percent = infoPlayerProvider.getPlayerInfo().volumePercent - infoPlayerProvider.setVolume( - mainWindow.webContents, - decibelToPercent(percentToDecibel(percent) + 1.5) - ) + if (settingsProvider.get('settings-decibel-volume')) { + let percent = infoPlayerProvider.getPlayerInfo().volumePercent + infoPlayerProvider.setVolume( + mainWindow.webContents, + decibelToPercent(percentToDecibel(percent) + 1.5) + ) + } else { + mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '=' }) + } } function mediaVolumeDown(mainWindow) { - let percent = infoPlayerProvider.getPlayerInfo().volumePercent - infoPlayerProvider.setVolume( - mainWindow.webContents, - decibelToPercent(percentToDecibel(percent) - 1.5) - ) + if (settingsProvider.get('settings-decibel-volume')) { + let percent = infoPlayerProvider.getPlayerInfo().volumePercent + infoPlayerProvider.setVolume( + mainWindow.webContents, + decibelToPercent(percentToDecibel(percent) - 1.5) + ) + } else { + mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '-' }) + } } function mediaForwardTenSeconds(mainWindow) { diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 2fbfb57eb..c41b73ff0 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -99,7 +99,6 @@ settingsProvider.setInitialValue('settings-tray-icon', true) settingsProvider.setInitialValue('settings-volume', 100) -settingsProvider.setInitialValue( - 'settings-enable-double-tapping-show-hide', - false -) +settingsProvider.setInitialValue('settings-volume-media-keys', false) + +settingsProvider.setInitialValue('settings-decibel-volume', true) From 5fad6bf466313101c0fb2389973cac41d5670998 Mon Sep 17 00:00:00 2001 From: atcq Date: Sun, 13 Sep 2020 12:57:13 +0200 Subject: [PATCH 007/489] :bug: Fix #367 migrate to electron internal Notifiations API --- package-lock.json | 75 ++++++++++++++++++++++++++++++++--- package.json | 1 - src/providers/trayProvider.js | 10 +++-- 3 files changed, 75 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63acd2787..1c9b7994b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "youtube-music-desktop-app", - "version": "1.12.1", + "version": "1.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -283,6 +283,74 @@ "cross-spawn": "^7.0.1" } }, + "@nodert-win10/windows.foundation": { + "version": "0.2.96", + "resolved": "https://registry.npmjs.org/@nodert-win10/windows.foundation/-/windows.foundation-0.2.96.tgz", + "integrity": "sha1-vrIGYdh/s1L5xcfEWJm/PCTXjNA=", + "optional": true, + "requires": { + "nan": "^2.14.1" + }, + "dependencies": { + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + } + } + }, + "@nodert-win10/windows.media": { + "version": "0.2.96", + "resolved": "https://registry.npmjs.org/@nodert-win10/windows.media/-/windows.media-0.2.96.tgz", + "integrity": "sha1-MoeDDxxJSlPT1ruydfSEiSBEmMU=", + "optional": true, + "requires": { + "nan": "^2.14.1" + }, + "dependencies": { + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + } + } + }, + "@nodert-win10/windows.media.playback": { + "version": "0.2.96", + "resolved": "https://registry.npmjs.org/@nodert-win10/windows.media.playback/-/windows.media.playback-0.2.96.tgz", + "integrity": "sha1-AX7rxWu1MPm48qRWUAw7fRzkLzU=", + "optional": true, + "requires": { + "nan": "^2.14.1" + }, + "dependencies": { + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + } + } + }, + "@nodert-win10/windows.storage.streams": { + "version": "0.2.96", + "resolved": "https://registry.npmjs.org/@nodert-win10/windows.storage.streams/-/windows.storage.streams-0.2.96.tgz", + "integrity": "sha1-4s85KoPHT5GM5DVtkFKCB2p00Tw=", + "optional": true, + "requires": { + "nan": "^2.14.1" + }, + "dependencies": { + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -1427,11 +1495,6 @@ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.2.tgz", "integrity": "sha512-lBpLh1Q8qayrTxFIrTPcNjSHsosvUfOYyZ8glhiLcx7zCNPDGuj8+nXlEaaSS6LRiQQbLgLG+wKpuvztNzBIrA==" }, - "electron-native-notification": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/electron-native-notification/-/electron-native-notification-1.2.1.tgz", - "integrity": "sha512-vjbhA80nrzFtC33jDk+6a5z55vrannZtWd14clMDEj8YlFRLxIDbunjOaT3yBiHNBK7c/fGNtYkVZYMYgFpc1Q==" - }, "electron-publish": { "version": "22.8.0", "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.0.tgz", diff --git a/package.json b/package.json index 2bad64b5a..f3933000c 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,6 @@ "electron-is-dev": "^1.2.0", "electron-localshortcut": "^3.2.1", "electron-log": "^4.2.2", - "electron-native-notification": "^1.2.1", "electron-store": "^6.0.0", "electron-updater": "^4.3.4", "i18n": "^0.10.0", diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js index 6af68f058..05772376a 100644 --- a/src/providers/trayProvider.js +++ b/src/providers/trayProvider.js @@ -8,6 +8,7 @@ const systemInfo = require('../utils/systemInfo') const imageToBase64 = require('image-to-base64') const { popUpMenu } = require('./templateProvider') const assetsProvider = require('./assetsProvider') +const { Notification } = require('electron') let tray = null let saved_mainWindow = null @@ -154,13 +155,14 @@ function _doNotification(title, content, icon) { }, 7 * 1000) } } else { - let Notification = require('electron-native-notification') - - new Notification(title, { + // create a system notification and send it + let myNotification = new Notification({ + title: title, body: content, silent: true, icon: icon, - }) + urgency: 'low', + }).show() } } } catch (error) { From 266dccde672e8e20198e9e5fdf224c93d48d04a5 Mon Sep 17 00:00:00 2001 From: Chris Yates Date: Tue, 15 Sep 2020 23:43:37 -0400 Subject: [PATCH 008/489] :sparkles: Added background color changes to match functionality of Youtube Music Android app. :heavy_plus_sign: Added ColorThief dependency for extracting prominent color from album art. Doesn't always match color results that YTM mobile app gets, but gets most in the ballpark. :alembic: Added HSL algorithm to convert expected color into Hue value, then darken that color to fit UI. Fallbacks are added for certain extreme cases, like black and white album covers. :iphone: Add style rules to injection script to define when the colors affect the UI elements and when they won't (Like if player is collapsed, but navigation bar is stickied). --- main.js | 37 ++++++++ package-lock.json | 174 +++++++++++++++++++++++------------- package.json | 1 + src/utils/injectControls.js | 41 +++++++++ 4 files changed, 192 insertions(+), 61 deletions(-) diff --git a/main.js b/main.js index d2868eb1c..3cf43dbdd 100644 --- a/main.js +++ b/main.js @@ -24,6 +24,7 @@ const { calcYTViewSize } = require('./src/utils/calcYTViewSize') const { isWindows, isMac, isLinux } = require('./src/utils/systemInfo') const { checkWindowPosition, doBehavior } = require('./src/utils/window') const fileSystem = require('./src/utils/fileSystem') +const ColorThief = require('colorthief') const __ = require('./src/providers/translateProvider') const assetsProvider = require('./src/providers/assetsProvider') @@ -506,6 +507,41 @@ function createWindow() { ) } + /** + * Update background color for Player + */ + + ColorThief.getColor(getTrackInfo().cover).then((color) => { + percent = color.map((v, i, a) => { + return v / 255 + }) + let hi = Math.max.apply(null, percent) + let lo = Math.min.apply(null, percent) + let divisor = hi - lo + let hue + switch (percent.indexOf(hi)) { + case 0: + hue = (percent[1] - percent[2]) / divisor + break + case 1: + hue = 2 + (percent[2] - percent[0]) / divisor + break + case 2: + hue = 4 + (percent[0] - percent[1]) / divisor + break + default: + hue = 0 + } + hue = hue * 60 + hue = hue < 0 ? hue + 360 : hue //correction for negative hue, add a full circle of degrees. + sat = divisor == 0 ? 0 : 70 //fallbacks for a b+w album cover (divisor becomes zero). + hue = divisor == 0 ? 0 : hue //another fallback for b+w, changes any hue to grey. + view.webContents.executeJavaScript(` + document.documentElement.style.setProperty("--ytm-album-color-muted", 'hsl(${hue}, ${sat}%, 20%)'); + document.documentElement.style.setProperty("--ytm-album-color-vibrant", 'hsl(${hue}, ${sat}%, 30%)'); + `) + }) + writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) discordRPC.setActivity(getAll()) } @@ -2016,6 +2052,7 @@ const mediaControl = require('./src/providers/mediaProvider') const tray = require('./src/providers/trayProvider') const updater = require('./src/providers/updateProvider') const analytics = require('./src/providers/analyticsProvider') +const { getTrackInfo } = require('./src/providers/infoPlayerProvider') analytics.setEvent('main', 'start', 'v' + app.getVersion(), app.getVersion()) analytics.setEvent('main', 'os', process.platform, process.platform) diff --git a/package-lock.json b/package-lock.json index 94f18cc2b..4607b445e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -622,7 +622,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -630,8 +629,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "async": { "version": "0.9.2", @@ -653,8 +651,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "at-least-node": { "version": "1.0.0", @@ -669,14 +666,12 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", - "dev": true + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==" }, "backo2": { "version": "1.0.2", @@ -708,7 +703,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -933,8 +927,7 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "4.1.0", @@ -1055,11 +1048,19 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, + "colorthief": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/colorthief/-/colorthief-2.3.2.tgz", + "integrity": "sha512-1r4nPW553JviRcFRvN3fS2V9nUSQGjRIws8UfEeFLIxk8j1tvtaX+AAYTkH3A4B5Muiys8SA1WJxf+00xVTXyg==", + "requires": { + "get-pixels": "^3.3.2", + "quantize": "github:lokesh/quantize" + } + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -1164,8 +1165,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "7.0.0", @@ -1208,15 +1208,27 @@ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, + "cwise-compiler": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", + "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", + "requires": { + "uniq": "^1.0.0" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "data-uri-to-buffer": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz", + "integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=" + }, "dbus-next": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz", @@ -1310,8 +1322,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -1411,7 +1422,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -1862,8 +1872,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extract-zip": { "version": "1.7.0", @@ -1897,8 +1906,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "3.1.3", @@ -1958,14 +1966,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -2068,6 +2074,24 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-pixels": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.2.tgz", + "integrity": "sha512-6ar+8yPxRd1pskEcl2GSEu1La0+xYRjjnkby6AYiRDDwZ0tJbPQmHnSeH9fGLskT8kvR0OukVgtZLcsENF9YKQ==", + "requires": { + "data-uri-to-buffer": "0.0.3", + "jpeg-js": "^0.3.2", + "mime-types": "^2.0.1", + "ndarray": "^1.0.13", + "ndarray-pack": "^1.1.1", + "node-bitmap": "0.0.1", + "omggif": "^1.0.5", + "parse-data-uri": "^0.2.0", + "pngjs": "^3.3.3", + "request": "^2.44.0", + "through": "^2.3.4" + } + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -2081,7 +2105,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -2184,14 +2207,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -2266,7 +2287,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -2387,6 +2407,11 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, + "iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" + }, "is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", @@ -2399,6 +2424,11 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", @@ -2487,8 +2517,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-yarn-global": { "version": "0.3.0", @@ -2516,8 +2545,7 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jake": { "version": "10.8.2", @@ -2623,8 +2651,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-buffer": { "version": "3.0.0", @@ -2641,8 +2668,7 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", @@ -2657,8 +2683,7 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "2.1.3", @@ -2682,7 +2707,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -3008,6 +3032,24 @@ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "optional": true }, + "ndarray": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", + "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", + "requires": { + "iota-array": "^1.0.0", + "is-buffer": "^1.0.2" + } + }, + "ndarray-pack": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", + "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", + "requires": { + "cwise-compiler": "^1.1.2", + "ndarray": "^1.0.13" + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -3035,6 +3077,11 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" }, + "node-bitmap": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz", + "integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=" + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -3178,8 +3225,7 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", @@ -3399,6 +3445,14 @@ "xml2js": "^0.4.5" } }, + "parse-data-uri": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", + "integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=", + "requires": { + "data-uri-to-buffer": "0.0.3" + } + }, "parse-headers": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", @@ -3479,8 +3533,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "phin": { "version": "2.9.3", @@ -3714,8 +3767,7 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "pump": { "version": "3.0.0", @@ -3755,8 +3807,11 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "quantize": { + "version": "github:lokesh/quantize#f572abd2646b5944852535c8a26fdb958a5d7c4b", + "from": "github:lokesh/quantize" }, "querystring": { "version": "0.2.0", @@ -3863,7 +3918,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -3890,8 +3944,7 @@ "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -4229,7 +4282,6 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -4440,8 +4492,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "timm": { "version": "1.6.2", @@ -4468,7 +4519,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -4494,7 +4544,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -4502,8 +4551,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-fest": { "version": "0.16.0", @@ -4525,6 +4573,11 @@ "is-typedarray": "^1.0.0" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -4653,7 +4706,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", diff --git a/package.json b/package.json index 615b90397..0be89f115 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ }, "dependencies": { "ace-builds": "^1.4.12", + "colorthief": "^2.3.2", "discord-rpc": "^3.1.3", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 93eafaec7..e8b979dfc 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -16,6 +16,7 @@ const settingsOnDidChange = (key, cb) => { window.addEventListener('load', () => { createContextMenu() + createPlayerColorRules() const { hostname } = window.location if (hostname == 'music.youtube.com') { @@ -394,6 +395,46 @@ function createTopRightContent() { } } +function createPlayerColorRules() { + try { + const css = document.createElement('style') + css.appendChild( + document.createTextNode( + ` + :root{ + --ytm-album-color-muted: #000000; + --ytm-album-color-vibrant: #232323; + } + + ytmusic-app-layout{ + --ytmusic-nav-bar: #000000; /* default for collapsed player */ + } + + ytmusic-app-layout.content-scrolled{ + --ytmusic-nav-bar: #232323; /* default for collapsed player */ + } + + ytmusic-app-layout[player-page-open_]{ + --ytmusic-nav-bar: var(--ytm-album-color-muted); + --ytmusic-brand-background-solid: var(--ytm-album-color-vibrant); + } + + #player-page{ + background: var(--ytm-album-color-muted); + } + ` + ) + ) + document.head.appendChild(css) + } catch (err) { + console.error(err) + ipcRenderer.send('log', { + type: 'warn', + data: 'error on createPlayerColorRules insertCSS', + }) + } +} + function createBottomPlayerBarContent() { const shortcutButtons = settingsGet('settings-shortcut-buttons') From c198f7969cd1abc6f78ab01f992378236ba1790b Mon Sep 17 00:00:00 2001 From: Chris Yates Date: Wed, 16 Sep 2020 00:50:15 -0400 Subject: [PATCH 009/489] :heavy_minus_sign: Remove redundant color-thief dependency. :fire: Remove old HSL algorithm because HSL conversion is handled in node-vibrant. :alembic: Adapted previous saturation and light constants for style to new code. --- main.js | 41 +++++++++++------------------------------ package.json | 1 - 2 files changed, 11 insertions(+), 31 deletions(-) diff --git a/main.js b/main.js index 3cf43dbdd..f3cb59252 100644 --- a/main.js +++ b/main.js @@ -24,7 +24,7 @@ const { calcYTViewSize } = require('./src/utils/calcYTViewSize') const { isWindows, isMac, isLinux } = require('./src/utils/systemInfo') const { checkWindowPosition, doBehavior } = require('./src/utils/window') const fileSystem = require('./src/utils/fileSystem') -const ColorThief = require('colorthief') +const Vibrant = require('node-vibrant') const __ = require('./src/providers/translateProvider') const assetsProvider = require('./src/providers/assetsProvider') @@ -511,36 +511,17 @@ function createWindow() { * Update background color for Player */ - ColorThief.getColor(getTrackInfo().cover).then((color) => { - percent = color.map((v, i, a) => { - return v / 255 + Vibrant.from(getTrackInfo().cover) + .getPalette() + .then((palette) => { + hue = palette.DarkVibrant.getHsl()[0] * 360 + sat = palette.DarkVibrant.getHsl()[1] == 0 ? 0 : 70 + console.log('hue:', hue, 'sat:', sat) + view.webContents.executeJavaScript(` + document.documentElement.style.setProperty("--ytm-album-color-muted", 'hsl(${hue}, ${sat}%, 20%)'); + document.documentElement.style.setProperty("--ytm-album-color-vibrant", 'hsl(${hue}, ${sat}%, 30%)'); + `) }) - let hi = Math.max.apply(null, percent) - let lo = Math.min.apply(null, percent) - let divisor = hi - lo - let hue - switch (percent.indexOf(hi)) { - case 0: - hue = (percent[1] - percent[2]) / divisor - break - case 1: - hue = 2 + (percent[2] - percent[0]) / divisor - break - case 2: - hue = 4 + (percent[0] - percent[1]) / divisor - break - default: - hue = 0 - } - hue = hue * 60 - hue = hue < 0 ? hue + 360 : hue //correction for negative hue, add a full circle of degrees. - sat = divisor == 0 ? 0 : 70 //fallbacks for a b+w album cover (divisor becomes zero). - hue = divisor == 0 ? 0 : hue //another fallback for b+w, changes any hue to grey. - view.webContents.executeJavaScript(` - document.documentElement.style.setProperty("--ytm-album-color-muted", 'hsl(${hue}, ${sat}%, 20%)'); - document.documentElement.style.setProperty("--ytm-album-color-vibrant", 'hsl(${hue}, ${sat}%, 30%)'); - `) - }) writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) discordRPC.setActivity(getAll()) diff --git a/package.json b/package.json index 0be89f115..615b90397 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ }, "dependencies": { "ace-builds": "^1.4.12", - "colorthief": "^2.3.2", "discord-rpc": "^3.1.3", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", From 5535b423cb5e2c66b54756a5f61365ac2183dd01 Mon Sep 17 00:00:00 2001 From: Chris Yates Date: Wed, 16 Sep 2020 02:18:39 -0400 Subject: [PATCH 010/489] :wrench: Add setting to toggle accent color in Appearance tab of Settings. [TODO: Translations needed] --- main.js | 12 +++ src/locales/en.json | 1 + src/locales/scaffold.json | 1 + src/pages/settings/settings.html | 151 +++++++++++++++++-------------- src/pages/settings/settings.js | 3 + src/utils/defaultSettings.js | 2 + src/utils/injectControls.js | 4 +- 7 files changed, 104 insertions(+), 70 deletions(-) diff --git a/main.js b/main.js index f3cb59252..5a57df98f 100644 --- a/main.js +++ b/main.js @@ -2023,6 +2023,18 @@ ipcMain.on('set-audio-output-list', (_, data) => { audioDevices = data }) +ipcMain.on('set-accent-enabled-state', () => { + if (settingsProvider.get('settings-enable-player-bgcolor')) { + view.webContents.executeJavaScript( + `document.body.setAttribute('accent-enabled', '')` + ) + } else { + view.webContents.executeJavaScript( + `document.body.removeAttribute('accent-enabled')` + ) + } +}) + ipcMain.handle('get-audio-output-list', (event, someArgument) => { return audioDevices }) diff --git a/src/locales/en.json b/src/locales/en.json index b7748209f..dd0f85982 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -28,6 +28,7 @@ "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", "LABEL_SETTINGS_TAB_ABOUT": "About", "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No devices found", "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Click here and scan QR Code", diff --git a/src/locales/scaffold.json b/src/locales/scaffold.json index db451cfbf..17fa1622d 100644 --- a/src/locales/scaffold.json +++ b/src/locales/scaffold.json @@ -28,6 +28,7 @@ "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", "LABEL_SETTINGS_TAB_ABOUT": "About", "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No devices found", "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Click here and scan QR Code", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 39b3a2381..858f643e6 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -273,57 +273,57 @@ @@ -345,7 +345,7 @@
 
@@ -443,7 +443,7 @@ >0
s

100%

+ + + + + +

+ +
+ + - + > + > + > @@ -667,7 +682,7 @@
` }) res.setHeader('Content-Type', 'text/html; charset=utf-8') res.setHeader('Access-Control-Allow-Origin', '*') res.writeHead(200) - res.write(` + res.write(` YTMDesktop Remote Control @@ -99,8 +99,7 @@ var serverFunction = function (req, res) { margin: 0; padding: 0; text-align: center; - background: linear-gradient(to right top, #000 20%, #1d1d1d 80%); - background-attachment: fixed; + background: linear-gradient(to right top, #000 20%, #1d1d1d 80%) fixed; font-family: sans-serif; } h5 { @@ -127,7 +126,7 @@ var serverFunction = function (req, res) {
+ }" style="min-width: 78px; width: 78px;" alt="Track cover image">
@@ -169,7 +168,7 @@ var serverFunction = function (req, res) { @@ -216,30 +215,28 @@ var serverFunction = function (req, res) { .toUpperCase() if ( - authToken == + authToken === settingsProvider.get( 'settings-companion-server-token' ) - ) { + ) execCmd(command, value) - } else { + else { res.writeHead(401) res.end( JSON.stringify({ error: 'Unathorized' }) ) } - } catch { + } catch (_) { res.writeHead(400) res.end( JSON.stringify({ error: 'No token provided' }) ) } - } else { - execCmd(command, value) - } + } else execCmd(command, value) res.end(body) - } catch { + } catch (_) { res.end( JSON.stringify({ error: 'error to execute command', @@ -250,68 +247,61 @@ var serverFunction = function (req, res) { } } - if (req.url === '/query/player') { + if (req.url === '/query/player') if (req.method === 'GET') { res.write(JSON.stringify(infoPlayerProvider.getPlayerInfo())) res.end() } - } - if (req.url === '/query/track') { + if (req.url === '/query/track') if (req.method === 'GET') { res.write(JSON.stringify(infoPlayerProvider.getTrackInfo())) res.end() } - } - if (req.url === '/query/queue') { + if (req.url === '/query/queue') if (req.method === 'GET') { res.write(JSON.stringify(infoPlayerProvider.getQueueInfo())) res.end() } - } - if (req.url === '/query/playlist') { + if (req.url === '/query/playlist') if (req.method === 'GET') { res.write(JSON.stringify(infoPlayerProvider.getPlaylistInfo())) res.end() } - } - if (req.url === '/query/lyrics') { + if (req.url === '/query/lyrics') if (req.method === 'GET') { res.write(JSON.stringify(infoPlayerProvider.getLyricsInfo())) res.end() } - } - if (req.url === '/info') { + if (req.url === '/info') if (req.method === 'GET') { - var result = { + const result = { app: infoApp(), server: infoServer(), } res.write(JSON.stringify(result)) res.end() } - } } -var server = http.createServer(serverFunction) +const server = http.createServer(serverFunction) function canConnect(socket) { - let clientPassword = socket.handshake.headers['password'] || '' - let clientHost = socket.handshake['address'] - let clientIsLocalhost = clientHost == '127.0.0.1' + let clientPassword = socket.handshake.headers.password || '' + let clientHost = socket.handshake.address + let clientIsLocalhost = clientHost === '127.0.0.1' let serverPassword = settingsProvider.get('settings-companion-server-token') - if (infoServer().isProtected) { - if (clientIsLocalhost == false && clientPassword != serverPassword) { - return false - } - } - return true + return !( + infoServer().isProtected && + clientIsLocalhost === false && + clientPassword !== serverPassword + ) } function start() { @@ -322,15 +312,12 @@ function start() { timerTotalConections = setInterval(() => { totalConnections = Object.keys(io.sockets.sockets).length - if (totalConnections) { + if (totalConnections) io.emit('tick', infoPlayerProvider.getAllInfo()) - } }, 500) io.on('connection', (socket) => { - if (!canConnect(socket)) { - socket.disconnect() - } + if (!canConnect(socket)) socket.disconnect() socket.on('media-commands', (cmd, value) => execCmd(cmd, value)) @@ -365,7 +352,7 @@ function start() { type: 'info', data: `Companion Server listening on port ${port}`, }) - } catch { + } catch (_) { ipcMain.emit('log', { type: 'warn', data: `Error to start server on port ${port}`, diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js index 336ae5160..ff2a7f4ed 100644 --- a/src/providers/discordRpcProvider.js +++ b/src/providers/discordRpcProvider.js @@ -2,8 +2,8 @@ const clientId = '495666957501071390' const RPC = require('discord-rpc') const settingsProvider = require('./settingsProvider') -var client -var _isStarted +let client +let _isStarted function isStarted() { return _isStarted @@ -16,13 +16,11 @@ function _setIsStarted(value) { function start() { client = new RPC.Client({ transport: 'ipc' }) - client.on('ready', () => { - _setIsStarted(true) - }) + client.on('ready', () => _setIsStarted(true)) client.login({ clientId }).catch(() => { if (!isStarted()) { - setTimeout(function () { + setTimeout(() => { start() }, 10000) } @@ -39,11 +37,13 @@ function stop() { _setIsStarted(false) } -function setActivity(info) { +async function setActivity(info) { if (isStarted() && info.track.title) { - var now = Date.now() - var activity = {} - var discordSettings = settingsProvider.get('discord-presence-settings') + const now = Date.now() + const activity = {} + const discordSettings = settingsProvider.get( + 'discord-presence-settings' + ) if (discordSettings.details) activity.details = info.track.title @@ -71,13 +71,9 @@ function setActivity(info) { activity.smallImageText = info.player.isPaused ? 'Paused' : 'Playing' activity.instance = false - if (!discordSettings.hideIdle && info.player.isPaused) { - client.clearActivity() - } else { - client.setActivity(activity).catch((err) => { - console.log(err) - }) - } + if (!discordSettings.hideIdle && info.player.isPaused) + await client.clearActivity() + else client.setActivity(activity).catch((err) => console.log(err)) } } diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index 7c0606cdf..cb054bc03 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -1,8 +1,8 @@ const settingsProvider = require('./settingsProvider') -var webContents, initialized +let webContents, initialized -var player = { +const player = { hasSong: false, isPaused: true, volumePercent: 0, @@ -13,7 +13,7 @@ var player = { repeatType: 'NONE', } -var track = { +const track = { author: '', title: '', album: '', @@ -27,17 +27,17 @@ var track = { inLibrary: false, } -var _queue = { +let _queue = { automix: false, currentIndex: 0, list: [], } -var _playlist = { +let _playlist = { list: [], } -var _lyrics = { +const _lyrics = { provider: '', data: '', hasLoaded: false, @@ -64,30 +64,28 @@ function getAllInfo() { } function getPlayerInfo() { - if (webContents !== undefined) { - hasSong() - isPaused(webContents) - getVolume(webContents) - getSeekbarPosition(webContents) - getLikeStatus(webContents) - getRepeatType(webContents) - } - return player + if (webContents === undefined) return player + + hasSong() + isPaused(webContents) + getVolume(webContents) + getSeekbarPosition(webContents) + getLikeStatus(webContents) + getRepeatType(webContents) } function getTrackInfo() { - if (webContents !== undefined) { - getAuthor(webContents) - getTitle(webContents) - getAlbum(webContents) - getCover(webContents) - getDuration(webContents) - getUrl(webContents) - setPercent(player.seekbarCurrentPosition, track.duration) - isVideo(webContents) - isAdvertisement(webContents) - } - return track + if (webContents === undefined) return track + + getAuthor(webContents) + getTitle(webContents) + getAlbum(webContents) + getCover(webContents) + getDuration(webContents) + getUrl(webContents) + setPercent(player.seekbarCurrentPosition, track.duration) + isVideo(webContents) + isAdvertisement(webContents) } function getQueueInfo() { @@ -95,9 +93,7 @@ function getQueueInfo() { } function updateQueueInfo() { - if (webContents !== undefined) { - getQueue(webContents) - } + if (webContents !== undefined) getQueue(webContents) } function getPlaylistInfo() { @@ -105,9 +101,7 @@ function getPlaylistInfo() { } function updatePlaylistInfo() { - if (webContents !== undefined) { - getPlaylist(webContents) - } + if (webContents !== undefined) getPlaylist(webContents) } function getLyricsInfo() { @@ -115,7 +109,7 @@ function getLyricsInfo() { } function hasSong() { - player.hasSong = track.id != '' + player.hasSong = track.id !== '' } function isPaused(webContents) { @@ -293,8 +287,8 @@ function getUrl(webContents) { if (url) { track.url = url - var newUrl = new URL(url) - var searchParams = new URLSearchParams(newUrl.search) + const newUrl = new URL(url) + const searchParams = new URLSearchParams(newUrl.search) track.id = searchParams.get('v') debug(`Track Url: ${track.url}`) @@ -343,11 +337,9 @@ function getQueue(webContents) { .catch((_) => console.log('error getQueue')) } -function setQueueItem(webContents, index) { - webContents.executeJavaScript( - ` - var element = document.querySelector('ytmusic-player-queue #contents').children[${index}].querySelector('.song-info').parentElement.querySelector('.left-items .thumbnail-overlay #play-button').click() - ` +async function setQueueItem(webContents, index) { + await webContents.executeJavaScript( + `var element = document.querySelector('ytmusic-player-queue #contents').children[${index}].querySelector('.song-info').parentElement.querySelector('.left-items .thumbnail-overlay #play-button').click()` ) } @@ -541,9 +533,9 @@ function addToPlaylist(webContents, index) { } function convertToHuman(time) { - var _aux = time - var _minutes = 0 - var _seconds = 0 + let _aux = time + let _minutes = 0 + let _seconds while (_aux >= 60) { _aux = _aux - 60 @@ -578,8 +570,8 @@ function firstPlay(webContents) { .catch((_) => console.log('error firstPlay')) } -function toggleMoreActions(webContents) { - webContents.executeJavaScript( +async function toggleMoreActions(webContents) { + await webContents.executeJavaScript( ` var middleControlsButtons = document.querySelector('.middle-controls-buttons'); var moreActions = middleControlsButtons.querySelector('.dropdown-trigger') diff --git a/src/providers/mediaProvider.js b/src/providers/mediaProvider.js index 0dea8ea01..8bdf6c348 100644 --- a/src/providers/mediaProvider.js +++ b/src/providers/mediaProvider.js @@ -35,9 +35,8 @@ function mediaVolumeUp(mainWindow) { mainWindow.webContents, decibelToPercent(percentToDecibel(percent) + 1.5) ) - } else { + } else mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '=' }) - } } function mediaVolumeDown(mainWindow) { @@ -47,9 +46,8 @@ function mediaVolumeDown(mainWindow) { mainWindow.webContents, decibelToPercent(percentToDecibel(percent) - 1.5) ) - } else { + } else mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '-' }) - } } function mediaForwardTenSeconds(mainWindow) { @@ -76,8 +74,8 @@ function mediaChangeVolume(mainWindow, time) { infoPlayerProvider.setVolume(mainWindow.webContents, time) } -function mediaSelectQueueItem(mainWindow, index) { - infoPlayerProvider.setQueueItem(mainWindow.webContents, index) +async function mediaSelectQueueItem(mainWindow, index) { + await infoPlayerProvider.setQueueItem(mainWindow.webContents, index) } function mediaAddToLibrary(mainWindow) { @@ -113,19 +111,19 @@ function createThumbar(mainWindow, mediaInfo) { case 'INDIFFERENT': thumbsUp = '../assets/img/controls/thumbs-up-button-outline.png' thumbsDown = '../assets/img/controls/thumbs-down-button-outline.png' - thumbsReverse = likeStatus == 'LIKE' ? 'DISLIKE' : 'LIKE' + thumbsReverse = likeStatus === 'LIKE' ? 'DISLIKE' : 'LIKE' break } playOrPause = { tooltip: __.trans('MEDIA_CONTROL_PLAY'), icon: path.join(__dirname, '../assets/img/controls/play-button.png'), - click: function () { + click: () => { mediaPlayPauseTrack(mainWindow.getBrowserView()) }, } - if (isPaused == false) { + if (isPaused === false) { playOrPause.tooltip = __.trans('MEDIA_CONTROL_PAUSE') playOrPause.icon = path.join( __dirname, @@ -138,7 +136,7 @@ function createThumbar(mainWindow, mediaInfo) { { tooltip: __.trans('MEDIA_CONTROL_THUMBS_DOWN'), icon: path.join(__dirname, thumbsDown), - click: function () { + click: () => { mediaDownVote( mainWindow.getBrowserView(), createThumbar(mainWindow, mediaInfo) @@ -156,7 +154,7 @@ function createThumbar(mainWindow, mediaInfo) { __dirname, '../assets/img/controls/play-previous-button.png' ), - click: function () { + click: () => { mediaPreviousTrack(mainWindow.getBrowserView()) }, flags: !hasId ? ['disabled'] : [], @@ -164,7 +162,7 @@ function createThumbar(mainWindow, mediaInfo) { { tooltip: playOrPause.tooltip, icon: playOrPause.icon, - click: function () { + click: () => { mediaPlayPauseTrack(mainWindow.getBrowserView()) }, flags: !hasId ? ['disabled'] : [], @@ -175,7 +173,7 @@ function createThumbar(mainWindow, mediaInfo) { __dirname, '../assets/img/controls/play-next-button.png' ), - click: function () { + click: () => { mediaNextTrack(mainWindow.getBrowserView()) }, flags: !hasId ? ['disabled'] : [], @@ -187,7 +185,7 @@ function createThumbar(mainWindow, mediaInfo) { { tooltip: __.trans('MEDIA_CONTROL_THUMBS_UP'), icon: path.join(__dirname, thumbsUp), - click: function () { + click: () => { mediaUpVote( mainWindow.getBrowserView(), createThumbar(mainWindow, mediaInfo) @@ -214,15 +212,12 @@ function decibelToPercent(decibel) { } function setProgress(mainWindow, progress, isPaused) { - if (mainWindow) { - if (systemInfo.isWindows()) { + if (mainWindow) + if (systemInfo.isWindows()) mainWindow.setProgressBar(progress, { mode: isPaused ? 'paused' : 'normal', }) - } else { - mainWindow.setProgressBar(progress) - } - } + else mainWindow.setProgressBar(progress) } function createTouchBar(mainWindow) { diff --git a/src/providers/mprisProvider.js b/src/providers/mprisProvider.js index 42b40bd57..f81d35017 100644 --- a/src/providers/mprisProvider.js +++ b/src/providers/mprisProvider.js @@ -60,16 +60,14 @@ class Mpris { } for (let [event, action] of Object.entries(events)) { - if (typeof action === 'string') { + if (typeof action === 'string') this.player.on(event, () => { ipcMain.emit('media-command', { command: action, value: true, }) }) - } else if (typeof action === 'function') { - this.player.on(event, action) - } + else if (typeof action === 'function') this.player.on(event, action) } this.player.on('position', (args) => { // the position event sends through {trackId : ###, position : ###} diff --git a/src/providers/rainmeterNowPlaying.js b/src/providers/rainmeterNowPlaying.js index 6bd4f9a4c..f37ca1e01 100644 --- a/src/providers/rainmeterNowPlaying.js +++ b/src/providers/rainmeterNowPlaying.js @@ -1,7 +1,7 @@ const { ipcMain } = require('electron') const WebSocket = require('ws') const url = 'ws://127.0.0.1:8974' -var ws, reconnect, volumePercent, seekPosition, _isStarted +let ws, reconnect, volumePercent, seekPosition, _isStarted function isStarted() { return _isStarted @@ -21,8 +21,8 @@ function start() { _setIsStarted(true) }) - ws.on('message', function incoming(data) { - var versionNumber = data.toLowerCase().split(':') + ws.on('message', (data) => { + const versionNumber = data.toLowerCase().split(':') if (versionNumber[0].includes('version')) { //Check that version number is the same major version } @@ -34,19 +34,17 @@ function start() { } }) - ws.on('error', function error(_) { + ws.on('error', (_) => { console.log('Failed to connect rainmeter WebNowPlaying WS') }) ws.on('close', () => { stop() reconnect = setTimeout(() => { - if (!isStarted()) { - start() - } + if (!isStarted()) start() }, 5000) }) - } catch { + } catch (_) { console.log('error') } } @@ -57,33 +55,29 @@ function stop() { } function setActivity(data) { - if (isStarted()) { - ws.send(`COVER:${data.track.cover}`) - ws.send(`TITLE:${data.track.title}`) - ws.send(`ARTIST:${data.track.author}`) - ws.send(`ALBUM:${data.track.album}`) - ws.send(`STATE:${data.player.isPaused ? 2 : 1}`) - ws.send(`DURATION:${data.track.durationHuman}`) - ws.send(`POSITION:${data.player.seekbarCurrentPositionHuman}`) - ws.send(`VOLUME:${data.player.volumePercent}`) - if (data.player.likeStatus === 'LIKE') { - ws.send(`RATING:5`) - } else if (data.player.likeStatus === 'DISLIKE') { - ws.send(`RATING:1`) - } else { - ws.send(`RATING:0`) - } - } + if (!isStarted()) return + + ws.send(`COVER:${data.track.cover}`) + ws.send(`TITLE:${data.track.title}`) + ws.send(`ARTIST:${data.track.author}`) + ws.send(`ALBUM:${data.track.album}`) + ws.send(`STATE:${data.player.isPaused ? 2 : 1}`) + ws.send(`DURATION:${data.track.durationHuman}`) + ws.send(`POSITION:${data.player.seekbarCurrentPositionHuman}`) + ws.send(`VOLUME:${data.player.volumePercent}`) + if (data.player.likeStatus === 'LIKE') ws.send(`RATING:5`) + else if (data.player.likeStatus === 'DISLIKE') ws.send(`RATING:1`) + else ws.send(`RATING:0`) } function doAction(data) { - var dataSplit = data.split(' ') - var action = dataSplit.shift() - var actionParams = dataSplit + const dataSplit = data.split(' ') + let action = dataSplit.shift() + const actionParams = dataSplit - if (actionParams.length && action == 'SetPosition') { - var seekValuePercent = parseFloat(actionParams[1].split(':')[0]) - if (seekValuePercent != 0) { + if (actionParams.length && action === 'SetPosition') { + const seekValuePercent = parseFloat(actionParams[1].split(':')[0]) + if (seekValuePercent !== 0) { action = 'SetPositionSeekbar' actionParams[0] = actionParams[0].split(':')[0] / 100000 } @@ -126,33 +120,31 @@ function doAction(data) { break case 'SetVolume': - if (actionParams[0] >= volumePercent) { + if (actionParams[0] >= volumePercent) ipcMain.emit('media-command', { command: 'media-volume-up', value: true, }) - } else { + else ipcMain.emit('media-command', { command: 'media-volume-down', value: true, }) - } break case 'SetPosition': - var currentPosition = actionParams[0].split(':')[0] - if (currentPosition >= seekPosition) { + const currentPosition = actionParams[0].split(':')[0] + if (currentPosition >= seekPosition) ipcMain.emit('media-command', { command: 'media-seekbar-forward', value: true, }) - } else { + else ipcMain.emit('media-command', { command: 'media-seekbar-rewind', value: true, }) - } break case 'SetPositionSeekbar': diff --git a/src/providers/scrobblerProvider.js b/src/providers/scrobblerProvider.js index 8cfb58b9b..e5b6c8e96 100644 --- a/src/providers/scrobblerProvider.js +++ b/src/providers/scrobblerProvider.js @@ -1,4 +1,4 @@ -const { remote, shell } = require('electron') +const { remote } = require('electron') const scribble = require('scribble') const settingsProvider = require('./settingsProvider') const http = require('http') @@ -7,9 +7,7 @@ const Base64 = require('js-base64').Base64 const apiKey = '9ab417e8b808ed071223a1b4b3c29642' const apiSecret = '9d8830c167627e65dac63786be101964' -var Scrobbler - -var userLogin +let Scrobbler, userLogin function signIn() { userLogin = getLogin() @@ -31,8 +29,8 @@ function setLogin(username, password) { } function getLogin() { - var login = settingsProvider.get('last-fm-login') - if (login.username != '') { + const login = settingsProvider.get('last-fm-login') + if (login.username !== '') { login.password = Base64.decode(login.password) return login } @@ -61,11 +59,9 @@ function getToken() { } function updateTrackInfo(title, author, album) { - if (Scrobbler === undefined) { - signIn() - } + if (Scrobbler === undefined) signIn() - var track = { + const track = { artist: author, track: title, album: album, @@ -75,11 +71,9 @@ function updateTrackInfo(title, author, album) { } function updateNowPlaying(title, author, album, duration) { - if (Scrobbler === undefined) { - signIn() - } + if (Scrobbler === undefined) signIn() - var track = { + const track = { artist: author, track: title, album: album, @@ -88,13 +82,13 @@ function updateNowPlaying(title, author, album, duration) { Scrobbler.NowPlaying(track, function (_) {}) } -function authorize(token) { +async function authorize(token) { let winAuthorize = new remote.BrowserWindow({ title: 'Last.FM Authorization', width: 900, height: 500, }) - winAuthorize.loadURL( + await winAuthorize.loadURL( `https://www.last.fm/api/auth?api_key=${apiKey}&token=${token}` ) } diff --git a/src/providers/settingsProvider.js b/src/providers/settingsProvider.js index 99d3f5a74..0e17578aa 100644 --- a/src/providers/settingsProvider.js +++ b/src/providers/settingsProvider.js @@ -25,15 +25,13 @@ function set(settingName, value) { * @param {*} initialValue */ function setInitialValue(settingName, initialValue) { - if (!store.has(settingName)) { - set(settingName, initialValue) - } + if (!store.has(settingName)) set(settingName, initialValue) } function onDidChange(key, callback) { - return store.onDidChange(key, (newValue, oldValue) => { + return store.onDidChange(key, (newValue, oldValue) => callback({ newValue, oldValue }) - }) + ) } function proxyCallbackToSender(id, key) { @@ -60,9 +58,8 @@ if (ipcMain) { existingSubs = {} subscriptions.set(e.sender.id, existingSubs) } - if (existingSubs[settingName]) { - existingSubs[settingName]++ - } else { + if (existingSubs[settingName]) existingSubs[settingName]++ + else { existingSubs[settingName] = 1 const unsub = onDidChange( settingName, diff --git a/src/providers/templateProvider.js b/src/providers/templateProvider.js index 054a3b48f..a933622ab 100644 --- a/src/providers/templateProvider.js +++ b/src/providers/templateProvider.js @@ -95,9 +95,9 @@ let statusBarMenu = [ { label: 'Home(YouTube Music)', accelerator: 'CmdOrCtrl+H', - click(item, focusedWindow) { + async click(item, focusedWindow) { if (focusedWindow) - focusedWindow + await focusedWindow .getBrowserView() .webContents.loadURL('https://music.youtube.com') }, @@ -166,8 +166,8 @@ let statusBarMenu = [ submenu: [ { label: 'Learn More', - click() { - require('electron').shell.openExternal( + async click() { + await require('electron').shell.openExternal( 'http://electron.atom.io' ) }, @@ -214,7 +214,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: 'YouTube Music Desktop', type: 'normal', - click: function () { + click: () => { doBehavior(saved_mainWindow) }, }, @@ -224,7 +224,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('MEDIA_CONTROL_PLAY_PAUSE'), type: 'normal', - click: function () { + click: () => { mediaControl.playPauseTrack(saved_mainWindow.getBrowserView()) }, }, @@ -232,7 +232,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('MEDIA_CONTROL_PREVIOUS'), type: 'normal', - click: function () { + click: () => { mediaControl.previousTrack(saved_mainWindow.getBrowserView()) }, }, @@ -240,7 +240,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('MEDIA_CONTROL_NEXT'), type: 'normal', - click: function () { + click: () => { mediaControl.nextTrack(saved_mainWindow.getBrowserView()) }, }, @@ -250,7 +250,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('MEDIA_CONTROL_THUMBS_UP'), type: 'normal', - click: function () { + click: () => { mediaControl.upVote(saved_mainWindow.getBrowserView()) }, }, @@ -258,7 +258,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('MEDIA_CONTROL_THUMBS_DOWN'), type: 'normal', - click: function () { + click: () => { mediaControl.downVote(saved_mainWindow.getBrowserView()) }, }, @@ -268,7 +268,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('LABEL_MINIPLAYER'), type: 'normal', - click: function () { + click: () => { ipcMain.emit('window', { command: 'show-miniplayer' }) }, }, @@ -276,7 +276,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('LABEL_LYRICS'), type: 'normal', - click: function () { + click: () => { ipcMain.emit('window', { command: 'show-lyrics' }) }, }, @@ -290,7 +290,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('LABEL_SETTINGS'), type: 'normal', - click: function () { + click: () => { ipcMain.emit('window', { command: 'show-settings' }) }, }, @@ -310,7 +310,7 @@ const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { { label: __.trans('LABEL_EXIT'), type: 'normal', - click: function () { + click: () => { app.exit() }, }, diff --git a/src/providers/translateProvider.js b/src/providers/translateProvider.js index cdad5cf32..08f18bfde 100644 --- a/src/providers/translateProvider.js +++ b/src/providers/translateProvider.js @@ -2,7 +2,7 @@ const { ipcMain } = require('electron') const i18n = require('i18n') const settingsProvider = require('./settingsProvider') -const defaultLocale = settingsProvider.get('settings-app-language', 'en') +const defaultLocale = settingsProvider.get('settings-app-language') || 'en' i18n.configure({ locales: ['en', 'pt'], @@ -18,11 +18,9 @@ function trans(id, params) { params = typeof params !== 'undefined' ? params : {} try { let tmp = i18n.__(id, params) - if (tmp === id) { - return i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english - } else { - return tmp - } + return tmp === id + ? i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english + : tmp } catch (_) { return i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english } @@ -30,20 +28,18 @@ function trans(id, params) { function translateHelper() { const prefix = 'i18n_' - var items = [] - var i18n_items = document.getElementsByTagName('*') - for (var i = 0; i < i18n_items.length; i++) { + const items = [] + const i18n_items = document.getElementsByTagName('*') + for (let i = 0; i < i18n_items.length; i++) //omitting undefined null check for brevity if ( i18n_items[i].getAttribute('i18n') && i18n_items[i].getAttribute('i18n').lastIndexOf(prefix, 0) === 0 - ) { + ) items.push([ i18n_items[i].getAttribute('i18n').replace('i18n_', ''), i18n_items[i], ]) - } - } return items } @@ -53,11 +49,10 @@ function loadi18n() { }) } -if (ipcMain) { +if (ipcMain) ipcMain.on('I18N_TRANSLATE', (e, id, params) => { e.returnValue = trans(id, params) }) -} module.exports = { setLocale: setLocale, diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js index 05772376a..62c0b003a 100644 --- a/src/providers/trayProvider.js +++ b/src/providers/trayProvider.js @@ -1,4 +1,4 @@ -const { app, Menu, Tray, BrowserWindow, ipcMain } = require('electron') +const { app, Menu, Tray, ipcMain } = require('electron') const mediaControl = require('./mediaProvider') const nativeImage = require('electron').nativeImage const settingsProvider = require('./settingsProvider') @@ -17,9 +17,7 @@ let iconTray = assetsProvider.getIcon('trayTemplate') function setTooltip(tooltip) { try { - if (tray) { - tray.setToolTip(tooltip) - } + if (tray) tray.setToolTip(tooltip) } catch (error) { ipcMain.emit('log', { type: 'warn', @@ -61,22 +59,17 @@ function createTray(mainWindow) { ) } - if (!systemInfo.isMac()) { - init_tray() - } else { - setShinyTray() - } + if (!systemInfo.isMac()) init_tray() + else setShinyTray() } } function updateTray(data) { try { if (tray) { - var template = popUpMenu(__, saved_mainWindow, mediaControl, app) + const template = popUpMenu(__, saved_mainWindow, mediaControl, app) - if (data.type == 'audioOutputs') { - template[11]['submenu'] = data.data - } + if (data.type === 'audioOutputs') template[11].submenu = data.data contextMenu = Menu.buildFromTemplate(template) @@ -105,8 +98,7 @@ function updateTrayIcon(icon) { } function buildTrayIcon(icon) { - let nativeImageIcon = nativeImage.createFromPath(icon) - return nativeImageIcon + return nativeImage.createFromPath(icon) } function balloon(title, content, cover, icon) { @@ -149,21 +141,20 @@ function _doNotification(title, content, icon) { content: content, noSound: true, }) - if (!settingsProvider.get('settings-tray-icon')) { + if (!settingsProvider.get('settings-tray-icon')) setTimeout(() => { quit() }, 7 * 1000) - } - } else { - // create a system notification and send it - let myNotification = new Notification({ + } + // create a system notification and send it + else + new Notification({ title: title, body: content, silent: true, icon: icon, urgency: 'low', }).show() - } } } catch (error) { ipcMain.emit('log', { @@ -182,17 +173,15 @@ function setShinyTray() { if (settingsProvider.get('settings-shiny-tray') && systemInfo.isMac()) { tray.setContextMenu(null) tray.removeAllListeners() - tray.on('right-click', (event, bound, position) => { + tray.on('right-click', () => { tray.popUpContextMenu(contextMenu) }) tray.on('click', (event, bound, position) => { - if (position.x < 32) { - saved_mainWindow.show() - } else if (position.x > 130) { + if (position.x < 32) saved_mainWindow.show() + else if (position.x > 130) mediaControl.playPauseTrack( saved_mainWindow.getBrowserView() ) - } }) } else { // Shiny tray disabled ||| on onther platform @@ -210,12 +199,12 @@ function setShinyTray() { function updateImage(payload) { try { if (!settingsProvider.get('settings-shiny-tray')) return - var img = + const img = typeof nativeImage.createFromDataURL === 'function' ? nativeImage.createFromDataURL(payload) // electron v0.36+ : nativeImage.createFromDataUrl(payload) // electron v0.30 tray.setImage(img) - } catch { + } catch (_) { ipcMain.emit('log', { type: 'warn', data: `Failed to updateImage: ${error}`, diff --git a/src/providers/updateProvider.js b/src/providers/updateProvider.js index 5181bd4aa..dac814665 100644 --- a/src/providers/updateProvider.js +++ b/src/providers/updateProvider.js @@ -9,20 +9,20 @@ function checkUpdate(mainWindow, view) { // mainWindow.send( 'downloaded-new-update', true ); }) - autoUpdater.on('update-available', (info) => { + autoUpdater.on('update-available', (_) => { // tray.balloon( 'Update Available', 'Auto Update' ); mainWindow.send('have-new-update') }) - autoUpdater.on('update-not-available', (info) => { + autoUpdater.on('update-not-available', (_) => { // tray.balloon( 'Update not available.', 'Auto Update' ); }) - autoUpdater.on('error', (err) => { + autoUpdater.on('error', (_) => { // tray.balloon( 'Error in auto-updater.', 'Auto Update' ); }) - autoUpdater.on('update-downloaded', (info) => { + autoUpdater.on('update-downloaded', (_) => { // tray.balloon( 'Update downloaded', 'Auto Update' ); view.webContents.send('downloaded-new-update', true) settingsProvider.set('has-updated', true) diff --git a/src/providers/windowsMediaProvider.js b/src/providers/windowsMediaProvider.js index 472c9f9d2..13d5efdbf 100644 --- a/src/providers/windowsMediaProvider.js +++ b/src/providers/windowsMediaProvider.js @@ -16,16 +16,13 @@ const settingsProvider = require('./settingsProvider') class windowsMediaProvider { constructor() { - this._webContents + this._webContents = null this._isInitialized = false this._controls = BackgroundMediaPlayer.current.systemMediaTransportControls - if ( - !settingsProvider.get('settings-windows10-media-service-show-info') - ) { + if (!settingsProvider.get('settings-windows10-media-service-show-info')) this._controls.isEnabled = false - } this._controls.isChannelDownEnabled = false this._controls.isChannelUpEnabled = false @@ -75,11 +72,10 @@ class windowsMediaProvider { setPlaybackStatus(status) { if (this._isInitialized) { - if (status) { + if (status) this._controls.playbackStatus = MediaPlaybackStatus.paused - } else { - this._controls.playbackStatus = MediaPlaybackStatus.playing - } + else this._controls.playbackStatus = MediaPlaybackStatus.playing + this._controls.displayUpdater.update() } } diff --git a/src/utils/calcYTViewSize.js b/src/utils/calcYTViewSize.js index c77f1e5d1..d013494d0 100644 --- a/src/utils/calcYTViewSize.js +++ b/src/utils/calcYTViewSize.js @@ -10,7 +10,7 @@ const TITLE_BAR_HEIGHT_MAC = 21 /** * @param {settingsProvider} store - * @param {Array.} sizes + * @param window */ function calculateYoutubeViewSize(store, window) { const windowSize = window.getSize() @@ -20,14 +20,13 @@ function calculateYoutubeViewSize(store, window) { const x = PADDING - if (window.isFullScreen()) { + if (window.isFullScreen()) return { x: 0, y: 0, width: windowSize[0], height: windowSize[1], } - } if (isMac()) { // IS MAC diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index ad1ee282a..880f15133 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -1,11 +1,9 @@ const settingsProvider = require('../providers/settingsProvider') const { isLinux } = require('./systemInfo') -if (isLinux()) { - settingsProvider.setInitialValue('titlebar-type', 'system') // With system title bar -} else { - settingsProvider.setInitialValue('titlebar-type', 'nice') // Without system title bar -} +if (isLinux()) settingsProvider.setInitialValue('titlebar-type', 'system') +// With system title bar +else settingsProvider.setInitialValue('titlebar-type', 'nice') // Without system title bar settingsProvider.setInitialValue('settings-page-zoom', 100) // 100 diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index cf71961d1..9d6a5280b 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -19,14 +19,12 @@ window.addEventListener('load', () => { createPlayerColorRules() const { hostname } = window.location - if (hostname == 'music.youtube.com') { + if (hostname === 'music.youtube.com') { createTopMiddleContent() createTopRightContent() createBottomPlayerBarContent() playerBarScrollToChangeVolume() - } else { - createOffTheRoadContent() - } + } else createOffTheRoadContent() // injectCast() loadAudioOutputList() @@ -199,7 +197,7 @@ function createContextMenu() { document.addEventListener( 'contextmenu', - function (e) { + (e) => { const posX = e.clientX const posY = e.clientY showMenu(posX, posY) @@ -209,50 +207,47 @@ function createContextMenu() { ) document.addEventListener( 'click', - function (e) { + (_) => { menuElement.opacity = '0' - setTimeout(function () { + setTimeout(() => { menuElement.visibility = 'hidden' }, 501) }, false ) - if (buttonOpenCompanion) { - buttonOpenCompanion.addEventListener('click', function () { + if (buttonOpenCompanion) + buttonOpenCompanion.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-companion' }) }) - } - if (buttonOpenLyrics) { - buttonOpenLyrics.addEventListener('click', function () { + if (buttonOpenLyrics) + buttonOpenLyrics.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-lyrics' }) }) - } - if (buttonOpenMiniplayer) { - buttonOpenMiniplayer.addEventListener('click', function () { + if (buttonOpenMiniplayer) + buttonOpenMiniplayer.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-miniplayer' }) }) - } - if (buttonPageOpenMiniplayer) { - buttonPageOpenMiniplayer.addEventListener('click', function (e) { - /* Temporary fix */ document + if (buttonPageOpenMiniplayer) + buttonPageOpenMiniplayer.addEventListener('click', (_) => { + /* Temporary fix */ + document .getElementsByClassName( 'player-maximize-button ytmusic-player' )[0] .click() ipcRenderer.send('window', { command: 'show-miniplayer' }) }) - } - if (buttonOpenBugReport) { - buttonOpenBugReport.addEventListener('click', function () { + if (buttonOpenBugReport) + buttonOpenBugReport.addEventListener('click', () => { ipcRenderer.send('bug-report') }) - } + // TODO: This shouldn't be here function showMenu(x, y) { menuElement.top = y + 'px' menuElement.left = x + 'px' @@ -319,7 +314,7 @@ function createTopRightContent() { ) elementSettings.innerText = 'settings' - elementSettings.addEventListener('click', function () { + elementSettings.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-settings' }) }) @@ -340,28 +335,26 @@ function createTopRightContent() { ) elementRemoteServer.innerText = 'devices_other' - elementRemoteServer.addEventListener('click', function () { + elementRemoteServer.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-companion' }) }) right_content.prepend(elementRemoteServer) - if (settingsRemoteServer) { + if (settingsRemoteServer) document .getElementById('ytmd_remote_server') .classList.remove('hide') - } settingsOnDidChange('settings-companion-server', (data) => { - if (data.newValue) { + if (data.newValue) document .getElementById('ytmd_remote_server') .classList.remove('hide') - } else { + else document .getElementById('ytmd_remote_server') .classList.add('hide') - } }) // UPDATE @@ -378,13 +371,13 @@ function createTopRightContent() { elementUpdate.style.color = '#4CAF50' elementUpdate.innerText = 'arrow_downward' - elementUpdate.addEventListener('click', function () { + elementUpdate.addEventListener('click', () => { ipcRenderer.send('btn-update-clicked', true) }) right_content.prepend(elementUpdate) - ipcRenderer.on('downloaded-new-update', function (e, data) { + ipcRenderer.on('downloaded-new-update', (e, data) => { document.getElementById('ytmd_update').classList.remove('hide') }) } catch (err) { @@ -480,14 +473,14 @@ function createBottomPlayerBarContent() { elementAddToPlaylistButton.classList.add('ytmd-button-rounded', 'hide') elementAddToPlaylistButton.append(elementAddToPlaylistIcon) - elementAddToPlaylistButton.addEventListener('click', function () { + elementAddToPlaylistButton.addEventListener('click', () => { const popup = document.querySelector('.ytmusic-menu-popup-renderer') const addPlaylist = Array.from(popup.children) .filter( (value) => value .querySelector('g path:not([fill])') - .getAttribute('d') == + .getAttribute('d') === 'M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z' )[0] .querySelector('a') @@ -499,24 +492,22 @@ function createBottomPlayerBarContent() { playerBarMiddleControls.children.item(1) ) - if (shortcutButtons['add-to-playlist']) { + if (shortcutButtons['add-to-playlist']) document .querySelector('#btn_ytmd_add_to_playlist') .classList.remove('hide') - } settingsOnDidChange( 'settings-shortcut-buttons.add-to-playlist', (data) => { - if (data.newValue) { + if (data.newValue) document .querySelector('#btn_ytmd_add_to_playlist') .classList.remove('hide') - } else { + else document .querySelector('#btn_ytmd_add_to_playlist') .classList.add('hide') - } } ) @@ -532,7 +523,7 @@ function createBottomPlayerBarContent() { elementAddToLibraryButton.classList.add('ytmd-button-rounded', 'hide') elementAddToLibraryButton.append(elementAddToLibraryIcon) - elementAddToLibraryButton.addEventListener('click', function () { + elementAddToLibraryButton.addEventListener('click', () => { ipcRenderer.send('media-command', { command: 'media-add-library' }) }) @@ -569,27 +560,27 @@ function createBottomPlayerBarContent() { setInterval(() => { const popup = document.querySelector('.ytmusic-menu-popup-renderer') let addLibrary - if (popup != undefined) { + if (popup !== undefined) { addLibrary = Array.from(popup.children).filter( (value) => value .querySelector('g path:not([fill])') - .getAttribute('d') == + .getAttribute('d') === 'M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z' || value .querySelector('g path:not([fill])') - .getAttribute('d') == + .getAttribute('d') === 'M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z' )[0] } - if (addLibrary != undefined && showAddToLibrary) { + if (addLibrary !== undefined && showAddToLibrary) { const _d = addLibrary .querySelector('g path:not([fill])') .getAttribute('d') if ( - _d == + _d === 'M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z' ) { document.querySelector('#ytmd_add_to_library').innerText = @@ -607,11 +598,10 @@ function createBottomPlayerBarContent() { document .querySelector('#btn_ytmd_add_to_library') .classList.remove('hide') - } else { + } else document .querySelector('#btn_ytmd_add_to_library') .classList.add('hide') - } }, 800) // Right //////////////////////////////////////////////////////////////////////////////////// @@ -627,14 +617,13 @@ function createBottomPlayerBarContent() { ) elementLyrics.innerText = 'music_note' - elementLyrics.addEventListener('click', function () { + elementLyrics.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-lyrics' }) }) playerBarRightControls.append(elementLyrics) - if (shortcutButtons['lyrics']) { + if (shortcutButtons.lyrics) document.querySelector('#ytmd_lyrics').classList.remove('hide') - } settingsOnDidChange('settings-shortcut-buttons.lyrics', (data) => { if (data.newValue) { @@ -662,14 +651,13 @@ function createBottomPlayerBarContent() { ) elementMiniplayer.innerText = 'picture_in_picture_alt' - elementMiniplayer.addEventListener('click', function () { + elementMiniplayer.addEventListener('click', () => { ipcRenderer.send('window', { command: 'show-miniplayer' }) }) playerBarRightControls.append(elementMiniplayer) - if (shortcutButtons['miniplayer']) { + if (shortcutButtons.miniplayer) document.querySelector('#ytmd_miniplayer').classList.remove('hide') - } settingsOnDidChange('settings-shortcut-buttons.miniplayer', (data) => { if (data.newValue) { @@ -692,7 +680,7 @@ function createBottomPlayerBarContent() { document.querySelector('#expand-volume-slider').setAttribute('step', 0) document .querySelector('#volume-slider') - .addEventListener('value-change', function (e) { + .addEventListener('value-change', (e) => { ipcRenderer.send('change-volume', { volume: e.target.getAttribute('value'), }) @@ -710,18 +698,17 @@ function playerBarScrollToChangeVolume() { try { const playerBar = document.getElementsByTagName('ytmusic-player-bar')[0] - playerBar.addEventListener('wheel', function (ev) { + playerBar.addEventListener('wheel', (ev) => { ev.preventDefault() - if (ev.deltaY < 0) { + if (ev.deltaY < 0) ipcRenderer.send('media-command', { command: 'media-volume-up', }) - } else { + else ipcRenderer.send('media-command', { command: 'media-volume-down', }) - } }) } catch (err) { console.error(err) @@ -749,7 +736,7 @@ function createOffTheRoadContent() { elementBack.style.color = '#FFF' elementBack.innerText = 'arrow_back' - elementBack.addEventListener('click', function () { + elementBack.addEventListener('click', () => { ipcRenderer.send('reset-url') }) diff --git a/src/utils/window.js b/src/utils/window.js index 21edd05f8..cc15df4da 100644 --- a/src/utils/window.js +++ b/src/utils/window.js @@ -26,7 +26,7 @@ function checkWindowPosition(windowPosition) { resolve(position) } } - } catch { + } catch (_) { console.log('error -> checkWindowPosition') reject(false) } @@ -34,19 +34,12 @@ function checkWindowPosition(windowPosition) { } function doBehavior(mainWindow) { - if (mainWindow.isVisible()) { - if (mainWindow.isFocused()) { - mainWindow.hide() - } else { - mainWindow.focus() - } - } else { - if (mainWindow.isFocused()) { - ipcMain.emit('window', { command: 'restore-main-window' }) - } else { - ipcMain.emit('window', { command: 'restore-main-window' }) - } - } + if (mainWindow.isVisible()) + if (mainWindow.isFocused()) mainWindow.hide() + else mainWindow.focus() + else if (mainWindow.isFocused()) + ipcMain.emit('window', { command: 'restore-main-window' }) + else ipcMain.emit('window', { command: 'restore-main-window' }) } module.exports = { From 93df09357a51fec28cf290b586505694e73ba1fb Mon Sep 17 00:00:00 2001 From: ArnyminerZ Date: Sun, 27 Sep 2020 10:26:01 +0200 Subject: [PATCH 020/489] :sparkles: Added Catalan language --- src/locales/ca.json | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 src/locales/ca.json diff --git a/src/locales/ca.json b/src/locales/ca.json new file mode 100644 index 000000000..2687b8269 --- /dev/null +++ b/src/locales/ca.json @@ -0,0 +1,99 @@ +{ + "ADD_TO_LIBRARY": "Afegir a la biblioteca", + "ADD_TO_PLAYLIST": "Afegir a la llista de reproducció", + "ALWAYS_ASK_WHEN_READ_LINK": "Preguntar sempre al llegir l'enllaç", + "DOUBLE_CLICK_TO_RESET_POSITION": "Doble clic per a restablir la posició", + "LABEL_ALSO": "També", + "LABEL_AUDIO": "Àudio", + "LABEL_CANCEL": "Cancel·lar", + "LABEL_CHANGELOG": "Què hi ha nou?", + "LABEL_DISABLE": "Desactivar", + "LABEL_EXIT": "Sortir", + "LABEL_GUEST": "Convidat", + "LABEL_LOADING": "Carregant...", + "LABEL_LYRICS_NOT_FOUND": "No s'ha trobat la lletra d'aquesta cançó", + "LABEL_LYRICS": "Lletra", + "LABEL_MINIPLAYER": "Mini-reproductor", + "LABEL_NOTIFICATION_DISLIKED": "No t'ha agradat aquesta cançó", + "LABEL_NOTIFICATION_LIKED": "T'ha agradat aquesta cançó", + "LABEL_PLAY_MUSIC": "Reproduir música", + "LABEL_SAVE": "Desar", + "LABEL_SAVED": "Desat", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar la cançó quan la reproducció està en pausa", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar el temps de la cançó", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar el títol", + "LABEL_SETTINGS_DISCORD": "Configuració de Discord", + "LABEL_SETTINGS_RELAUNCH": "Aplicar i reiniciar", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar / Ocultar finestra principal", + "LABEL_SETTINGS_TAB_ABOUT": "Sobre", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar progrés de la cançó en la barra de tasques", + "LABEL_SETTINGS_TAB_APPEARENCE": "Aparença", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No s'han trobat dispositius", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Servidor acompanyant", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Fes clic ací i escaneja el codi QR", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Protegir acompanyant amb contrassenya", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar des d'on ho has deixat", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalitzat", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deshabilitar acceleració de Hardware", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Presència Rica a Discord", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Mantè YTMDesktop en segon pla quan es tanqui la finestra", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom de la pàgina", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Sortida d'àudio", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Idioma", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Proveïdor de lletres", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estil de la barra de títol", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Agradable", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deshabilitar barra de títol", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Control de la safata senzill (Només per a Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificacions", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimitzat", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar a l'engegar l'equip (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "General", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informació de la cançó juntament a la barra de volum de Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar el servei de mitjans de Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION": "Integració", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integracions", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Desar y autoritzar", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Fixar en primer pla", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostrar controls sempre", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Pintar els controls del color de l'àlbum", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permetre el redimensionament", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar en la barra de tasques", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini-reproductor", + "LABEL_SETTINGS_TAB_PLAYBACK": "Repetir", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Llegir enllaços de Youtube des del portapapers", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Prem qualsevol tecla", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Dreceres", + "LABEL_SETTINGS": "Configuració", + "LYRICS": "Lletra", + "MEDIA_CONTROL_MINIPLAYER": "Obrir/Tancar el mini-reproductor", + "MEDIA_CONTROL_MUTE_UNMUTE": "Silenciar/Deixar de Silenciar", + "MEDIA_CONTROL_NEXT": "Següent", + "MEDIA_CONTROL_PAUSE": "Pausa", + "MEDIA_CONTROL_PLAY": "Reproduir", + "MEDIA_CONTROL_PLAY_PAUSE": "Reproduir o Pausar", + "MEDIA_CONTROL_PREVIOUS": "Anterior", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Obrir o tancar cua", + "MEDIA_CONTROL_REPEAT": "Repetir", + "MEDIA_CONTROL_SEARCH": "Cercar", + "MEDIA_CONTROL_SHUFFLE": "Mesclar", + "MEDIA_CONTROL_THUMBS_DOWN": "No m'agrada", + "MEDIA_CONTROL_THUMBS_UP": "M'agrada", + "MEDIA_CONTROL_VOLUME_DOWN": "Baixar el volum", + "MEDIA_CONTROL_VOLUME_UP": "Pujar el volum", + "MINIPLAYER": "Mini-reproductor", + "PREFIX_OPEN_CLOSE": "Obrir/Tancar", + "SHORTCUT_BUTTONS": "Accions de la IU", + "SHOW": "Mostrar", + "SKIP_TRACK_MARKED_DISLIKED": "Saltar las cançons marcades amb 'No m'agrada'", + "SKIP_TRACK_SHORTER_THAN": "Saltar las cançons més curtes de", + "TRAY_ICON": "Icona de la safata", + "WANT_PLAY_THIS_LINK": "¿Vols reproduir aquest enllaç?" +} From 74d7b888c50f0bdc9a07e04abb32f79072604904 Mon Sep 17 00:00:00 2001 From: Arnau Mora Date: Sun, 27 Sep 2020 10:26:55 +0200 Subject: [PATCH 021/489] :sparkles: Added Catalan language --- src/pages/settings/settings.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 858f643e6..7821068aa 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1,5 +1,5 @@ - + Settings @@ -285,6 +285,9 @@ + From 046a8bd7a96a0f3f8f86d028e0b3dd0db882496a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=EB=8B=A4?= Date: Fri, 2 Oct 2020 21:27:47 +0900 Subject: [PATCH 022/489] =?UTF-8?q?=F0=9F=8C=90=20Update=20korean=20transl?= =?UTF-8?q?ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/ko.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/locales/ko.json b/src/locales/ko.json index 6d93249e4..a21e909ee 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -28,6 +28,7 @@ "LABEL_SETTINGS_RELAUNCH": "적용 및 재시작", "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "메인 창 보이기/숨기기", "LABEL_SETTINGS_TAB_ABOUT": "정보", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "배경을 앨범의 색상으로 칠하기", "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "작업 표시줄에 곡 현황 보이기", "LABEL_SETTINGS_TAB_APPEARENCE": "외관", "LABEL_SETTINGS_TAB_GENERAL": "기본", @@ -66,12 +67,14 @@ "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "리사이징 (확대/축소) 허용", "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "작업 표시줄에 보여주기", "LABEL_SETTINGS_TAB_PLAYBACK": "재생", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "볼륨 제어를 '%' 에서 'dB'로 전환하기", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "클립보드에서 유튜브 링크 찾기", "LABEL_SETTINGS_TAB_SHORTCUTS": "단축키", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "어디서나", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "로컬", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "아무 키나 누르세요", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "볼륨 미디어 키로 앱 볼륨만 제어하기", "LYRICS": "가사", "MEDIA_CONTROL_MINIPLAYER": "미니 플레이어 열기/닫기", "MEDIA_CONTROL_MUTE_UNMUTE": "음소거 / 음소거 취소", @@ -90,6 +93,7 @@ "MEDIA_CONTROL_VOLUME_UP": "음량 증가", "MINIPLAYER": "미니 플레이어", "PREFIX_OPEN_CLOSE": "열기/닫기", + "REMOVE_FROM_LIBRARY": "라이브러리에서 삭제", "SHORTCUT_BUTTONS": "UI 액션", "SHOW": "보이기", "SKIP_TRACK_MARKED_DISLIKED": "곡을 스킵하면 '마음에 안듬' 남기기", From 15a1e2fa743b15f4ce86f558616ec8ecbd71cd92 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 3 Oct 2020 23:40:09 +0200 Subject: [PATCH 023/489] Create hu.json Added Hungarian language (v1.0) --- src/locales/hu.json | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 src/locales/hu.json diff --git a/src/locales/hu.json b/src/locales/hu.json new file mode 100644 index 000000000..e9cf11902 --- /dev/null +++ b/src/locales/hu.json @@ -0,0 +1,99 @@ +{ + "ADD_TO_LIBRARY": "Hozzáadás könyvtárhoz", + "ADD_TO_PLAYLIST": "Hozzáadás lejátszási listához", + "ALWAYS_ASK_WHEN_READ_LINK": "Link olvasásnál mindig kérdezz", + "DOUBLE_CLICK_TO_RESET_POSITION": "Pozíció visszaállításához duplán katt", + "LABEL_ALSO": "Továbbá", + "LABEL_AUDIO": "Audió", + "LABEL_CANCEL": "Mégsem", + "LABEL_CHANGELOG": "Újdonságok", + "LABEL_DISABLE": "Letiltva", + "LABEL_EXIT": "Kilépés", + "LABEL_GUEST": "Vendég", + "LABEL_LOADING": "Betöltés...", + "LABEL_LYRICS_NOT_FOUND": "Dalszöveg nem található", + "LABEL_LYRICS": "Dalszöveg", + "LABEL_MINIPLAYER": "Minilejátszó", + "LABEL_NOTIFICATION_DISLIKED": "Dislikeoltad ezt a dalt", + "LABEL_NOTIFICATION_LIKED": "Kedvelted ezt a dalt", + "LABEL_PLAY_MUSIC": "Zene lejátszása", + "LABEL_SAVE": "Mentés", + "LABEL_SAVED": "Mentve", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Előadó mutatása", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Dal mutatása, ha a lejátszás szünetel", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Dal idejének mutatása", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Cím mutatása", + "LABEL_SETTINGS_DISCORD": "Discord beállítások", + "LABEL_SETTINGS_RELAUNCH": "Alkalmaz és újraindít", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Főképernyő mutatása/elrejtése", + "LABEL_SETTINGS_TAB_ABOUT": "Rólunk", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Dal haladásának mutatása a tálcán", + "LABEL_SETTINGS_TAB_APPEARENCE": "Megjelenés", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nem találtunk eszközöket", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Kattints ide QR kód szkenneléséhez", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Távírányító védelme jelszóval", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Távirányító", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Folytatás ahol abbahagytad", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Egyéni téma", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Hardveres gyorsítás letiltása", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Ablak bezárásakor YTMDesktop háttérben futtatása", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Oldal nagyítása", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio kimenet", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Nyelv", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "A dalszöveget szolgáltatta", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Szép", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Címsor letiltása", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Rendszer", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Címsor típusa", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Egyszerű tálcakezelés (Csak macOS esetén)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Értesítések mutatása", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Indítás kis méretben", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Indítás a rendszerrel (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "Általános", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Dal adatainak megjelenítése a Windows 10 hangerősáv mellett", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 médiaszolgáltatás engedélyezése", + "LABEL_SETTINGS_TAB_INTEGRATION": "Bővítmény", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "Bővítmények", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Mentés és engedélyezés", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Mindig fent", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Billentyűparancsok mutatása", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Billentyűparancsok szinezése az album színével", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Átméretezés engedélyezése", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mutassa a tálcán", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Minilejátszó", + "LABEL_SETTINGS_TAB_PLAYBACK": "Lejátszás", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "YouTube linkek olvasása a vágólapról", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globális", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Helyi", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Nyomj meg egy gombot", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Parancsikonok", + "LABEL_SETTINGS": "Beállítások", + "LYRICS": "Dalszövegek", + "MEDIA_CONTROL_MINIPLAYER": "Minilejátszó megnyitása/bezárása", + "MEDIA_CONTROL_MUTE_UNMUTE": "Némítás/Némítás feloldása", + "MEDIA_CONTROL_NEXT": "Következő", + "MEDIA_CONTROL_PAUSE": "Szünet", + "MEDIA_CONTROL_PLAY_PAUSE": "Lejátszás/Szünet", + "MEDIA_CONTROL_PLAY": "Lejátszás", + "MEDIA_CONTROL_PREVIOUS": "Előző", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Sor nyitása/zárása", + "MEDIA_CONTROL_REPEAT": "Ismétlés", + "MEDIA_CONTROL_SEARCH": "Keresés", + "MEDIA_CONTROL_SHUFFLE": "Keverés", + "MEDIA_CONTROL_THUMBS_DOWN": "Nem tetszik", + "MEDIA_CONTROL_THUMBS_UP": "Tetszik", + "MEDIA_CONTROL_VOLUME_DOWN": "Hangerő csökkentése", + "MEDIA_CONTROL_VOLUME_UP": "Hangerő növelése", + "MINIPLAYER": "Minilejátszó", + "PREFIX_OPEN_CLOSE": "Megnyit/Bezár", + "SHORTCUT_BUTTONS": "UI Műveletek", + "SHOW": "Mutat", + "SKIP_TRACK_MARKED_DISLIKED": "'Nem tetszik'-kel megjelölt dalok kihagyása", + "SKIP_TRACK_SHORTER_THAN": "Dalok kihagyása melyek rövidebb mint", + "TRAY_ICON": "Tálca ikon", + "WANT_PLAY_THIS_LINK": "Le szeretnéd játszani ezt a linket?" +} From 5955f384ea482ab401dc1abb1f23c37aea8eaa34 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 3 Oct 2020 23:44:25 +0200 Subject: [PATCH 024/489] Added Hungarian language --- src/pages/settings/settings.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 632681e68..7a8699db9 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -323,7 +323,10 @@ > + > + From c282ff316ef94e427b780efe5f8e3420c755465a Mon Sep 17 00:00:00 2001 From: Owen Davies Date: Sun, 4 Oct 2020 10:37:09 -0500 Subject: [PATCH 025/489] :bug: JavaScript errors in updateActivity.js Fix JS error in updateActivity by making infoPlayerProvider.getPlayerInfo() and infoPlayerProvider.getTrackInfo() actually return the player and track, respectively. addresses #424 --- src/providers/infoPlayerProvider.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index cb054bc03..69c5fbbd8 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -72,6 +72,7 @@ function getPlayerInfo() { getSeekbarPosition(webContents) getLikeStatus(webContents) getRepeatType(webContents) + return player } function getTrackInfo() { @@ -86,6 +87,7 @@ function getTrackInfo() { setPercent(player.seekbarCurrentPosition, track.duration) isVideo(webContents) isAdvertisement(webContents) + return track } function getQueueInfo() { From 394390fe5fb5b8eae148ad0e346e318ef5871fa7 Mon Sep 17 00:00:00 2001 From: Lordie Date: Sun, 4 Oct 2020 21:24:08 -0300 Subject: [PATCH 026/489] Scrobble albuns Use unpublished branch of scribble that correctly scrobbles albums https://github.com/dittodhole/node-scribble-js/tree/a2b37f585c5382863319115db36201399477ed43 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bad64b5a..a110fe87f 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "node-vibrant": "^3.1.5", "qrcode-generator": "^1.4.4", "register-scheme": "0.0.2", - "scribble": "0.0.5", + "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", "socket.io": "^2.3.0", "uuid": "^8.3.0", "ws": "^7.3.1" From 9a90b02901409cfee98dd0631c69b14d04dbab0f Mon Sep 17 00:00:00 2001 From: Lordie Date: Sun, 4 Oct 2020 22:10:05 -0300 Subject: [PATCH 027/489] Update yarn.lock manually changed just the section about this package in the yarn lock to be the same as the one my local machine, since this is a package from github it doesn't really matter --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 37184b0c9..977367a0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3060,10 +3060,10 @@ sax@>=0.6.0, sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scribble@0.0.5: +"scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": version "0.0.5" - resolved "https://registry.yarnpkg.com/scribble/-/scribble-0.0.5.tgz#2119ab0393a577c9d4721af543e714e480fdc0db" - integrity sha1-IRmrA5Old8nUchr1Q+cU5ID9wNs= + resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" + semver-compare@^1.0.0: version "1.0.0" From d638b33432ab0730ed2bc9fdd9e8cc25a593e8fb Mon Sep 17 00:00:00 2001 From: Lordie Date: Sun, 4 Oct 2020 22:17:36 -0300 Subject: [PATCH 028/489] Update package-lock.json manually changed just the section about this package in the yarn lock to be the same as the one my local machine, since this is a package from github it doesn't really matter --- package-lock.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63acd2787..6215e6ea8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3839,10 +3839,9 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "scribble": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/scribble/-/scribble-0.0.5.tgz", - "integrity": "sha1-IRmrA5Old8nUchr1Q+cU5ID9wNs=" - }, + "version": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", + "from": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" + }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", From 10a5b37868aef7feffaf7d0e2b771b1ead377c54 Mon Sep 17 00:00:00 2001 From: Fivro Date: Wed, 7 Oct 2020 21:11:14 +0900 Subject: [PATCH 029/489] :globe_with_meridians: Update Japanese translation --- src/locales/ja.json | 166 +++++++++++++++++++++++++++----------------- 1 file changed, 103 insertions(+), 63 deletions(-) diff --git a/src/locales/ja.json b/src/locales/ja.json index 20feabb2f..ee3cde244 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1,65 +1,105 @@ { - "DOUBLE_CLICK_TO_RESET_POSITION": "ダブりクリックで位置を初期化", - "LABEL_EXIT": "終了", - "LABEL_GUEST": "ゲスト", - "LABEL_LOADING": "読込中...", - "LABEL_LYRICS": "歌詞", - "LABEL_LYRICS_NOT_FOUND": "歌詞が見つかりません", - "LABEL_MINIPLAYER": "ミニプレイヤー", - "LABEL_PLAY_MUSIC": "音楽を再生", - "LABEL_SETTINGS": "設定", - "LABEL_SETTINGS_RELAUNCH": "適用して再起動", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "メインウィンドウの表示・非表示", - "LABEL_SETTINGS_TAB_ABOUT": "アプリについて", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "外観", - "LABEL_SETTINGS_TAB_GENERAL": "一般", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "リモコンサーバー", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "ここをクリックしてQRコードを読み取る", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "中断時から再開", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "カスタムテーマ", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ウィンドウを閉じてもアプリを維持する", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ページの拡大", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "言語", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "歌詞の提供", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "タイトルバーのスタイル", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Nice", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "無効", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "システム", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "簡易トレイ制御(Mac OSのみ)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "通知を表示", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "スタートアップで起動 (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "連携", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "保存して認証", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "ミニプレイヤー", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "常に最前面", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "常にコントロールを表示", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "アルバムの色でコントロールを描画", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "ミニプレイヤーのサイズ", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "大", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "中", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "小", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "クリップボードからYoutubeのリンクを読み取る", - "LABEL_SETTINGS_TAB_SHORTCUTS": "ショートカット", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "グローバル", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "ローカル", - "MEDIA_CONTROL_MUTE_UNMUTE": "消音", - "MEDIA_CONTROL_NEXT": "次", - "MEDIA_CONTROL_PAUSE": "停止", - "MEDIA_CONTROL_PLAY": "再生", - "MEDIA_CONTROL_PLAY_PAUSE": "再生 / 停止", - "MEDIA_CONTROL_PREVIOUS": "前", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "キューを開く / 閉じる", - "MEDIA_CONTROL_REPEAT": "リピート", - "MEDIA_CONTROL_SEARCH": "検索", - "MEDIA_CONTROL_SHUFFLE": "シャッフル", - "MEDIA_CONTROL_THUMBS_DOWN": "低く評価", - "MEDIA_CONTROL_THUMBS_UP": "高く評価" + "ADD_TO_LIBRARY": "ライブラリに追加", + "ADD_TO_PLAYLIST": "プレイリストに追加", + "ALWAYS_ASK_WHEN_READ_LINK": "リンク読み取り時に常に尋ねる", + "DOUBLE_CLICK_TO_RESET_POSITION": "ダブルクリックで位置を初期化", + "LABEL_ALSO": "または", + "LABEL_AUDIO": "オーディオ", + "LABEL_CANCEL": "中止", + "LABEL_CHANGELOG": "新機能", + "LABEL_DISABLE": "無効化", + "LABEL_EXIT": "終了", + "LABEL_GUEST": "ゲスト", + "LABEL_LOADING": "読込中...", + "LABEL_LYRICS": "歌詞", + "LABEL_LYRICS_NOT_FOUND": "歌詞が見つかりません", + "LABEL_MINIPLAYER": "ミニプレイヤー", + "LABEL_NOTIFICATION_DISLIKED": "この曲に低評価をつけました", + "LABEL_NOTIFICATION_LIKED": "この曲に高評価をつけました", + "LABEL_PLAY_MUSIC": "音楽を再生", + "LABEL_SAVE": "保存", + "LABEL_SAVED": "保存済み", + "LABEL_SETTINGS": "設定", + "LABEL_SETTINGS_DISCORD": "Discordの設定", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "アーティストを表示", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "プレイバックの休止時にトラックを表示", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "トラックの時間を表示", + "LABEL_SETTINGS_RELAUNCH": "適用して再起動", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "メインウィンドウの表示・非表示", + "LABEL_SETTINGS_TAB_ABOUT": "アプリについて", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "タスクバーに曲の状況を表示", + "LABEL_SETTINGS_TAB_APPEARENCE": "外観", + "LABEL_SETTINGS_TAB_GENERAL": "一般", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "デバイスが見つかりませんでした", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "ここをクリックしてQRコードを読み取る", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "パスワードで遠隔操作を保護", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "リモコンサーバー", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "中断時から再開", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "カスタムテーマ", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "GPU使用の無効化", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presenceと連携", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ウィンドウを閉じてもアプリを維持する", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ページの拡大", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "オーディオの出力先を選択", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "言語", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "歌詞の提供", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "タイトルバーのスタイル", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "デフォルト", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "タイトルバーを無効化", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "システム", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "簡易トレイ制御(Mac OSのみ)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "通知を表示", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "最小化した状態で起動", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "スタートアップで起動 (Mac/Win)", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10のボリュームバーに曲の情報を表示", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 media serviceを有効化", + "LABEL_SETTINGS_TAB_INTEGRATION": "連携", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "連携", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)と連携", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "保存して認証", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER": "ミニプレイヤー", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "常に最前面", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "常にコントロールを表示", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "アルバムの色でコントロールを描画", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "ミニプレイヤーのサイズ", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "大", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "中", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "小", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "リサイズを許可", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "タスクバーに表示", + "LABEL_SETTINGS_TAB_PLAYBACK": "再生", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "クリップボードからYoutubeのリンクを読み取る", + "LABEL_SETTINGS_TAB_SHORTCUTS": "ショートカット", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "グローバル", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "ローカル", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "任意のキーを押す", + "LYRICS": "歌詞", + "MEDIA_CONTROL_MINIPLAYER": "ミニプレイヤーを開く / 閉じる", + "MEDIA_CONTROL_MUTE_UNMUTE": "消音", + "MEDIA_CONTROL_NEXT": "次", + "MEDIA_CONTROL_PAUSE": "停止", + "MEDIA_CONTROL_PLAY": "再生", + "MEDIA_CONTROL_PLAY_PAUSE": "再生 / 停止", + "MEDIA_CONTROL_PREVIOUS": "前", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "キューを開く / 閉じる", + "MEDIA_CONTROL_REPEAT": "リピート", + "MEDIA_CONTROL_SEARCH": "検索", + "MEDIA_CONTROL_SHUFFLE": "シャッフル", + "MEDIA_CONTROL_THUMBS_DOWN": "低く評価", + "MEDIA_CONTROL_THUMBS_UP": "高く評価", + "MEDIA_CONTROL_VOLUME_DOWN": "音量を下げる", + "MEDIA_CONTROL_VOLUME_UP": "音量を上げる", + "MINIPLAYER": "ミニプレーヤー", + "PREFIX_OPEN_CLOSE": "開く/閉じる", + "SHORTCUT_BUTTONS": "UIの操作をカスタマイズ", + "SHOW": "表示", + "SKIP_TRACK_MARKED_DISLIKED": "低評価をつけたトラックをスキップ", + "SKIP_TRACK_SHORTER_THAN": "値より短い音楽をスキップ", + "TRAY_ICON": "トレイのアイコン", + "WANT_PLAY_THIS_LINK": "このリンクを再生しますか?", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "音量の表記を'%'から'db'に変える", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景色をアルバムの色にする", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "ボリューム操作をアプリのみに適用" } From b6aa4cf0171ded3a273bb7e8c750710da6b7445a Mon Sep 17 00:00:00 2001 From: Fivro Date: Wed, 7 Oct 2020 23:36:51 +0900 Subject: [PATCH 030/489] :globe_with_meridians: Update Japanese translation --- src/locales/ja.json | 206 ++++++++++++++++++++++---------------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/src/locales/ja.json b/src/locales/ja.json index ee3cde244..56e2a104e 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1,105 +1,105 @@ { - "ADD_TO_LIBRARY": "ライブラリに追加", - "ADD_TO_PLAYLIST": "プレイリストに追加", - "ALWAYS_ASK_WHEN_READ_LINK": "リンク読み取り時に常に尋ねる", - "DOUBLE_CLICK_TO_RESET_POSITION": "ダブルクリックで位置を初期化", - "LABEL_ALSO": "または", - "LABEL_AUDIO": "オーディオ", - "LABEL_CANCEL": "中止", - "LABEL_CHANGELOG": "新機能", - "LABEL_DISABLE": "無効化", - "LABEL_EXIT": "終了", - "LABEL_GUEST": "ゲスト", - "LABEL_LOADING": "読込中...", - "LABEL_LYRICS": "歌詞", - "LABEL_LYRICS_NOT_FOUND": "歌詞が見つかりません", - "LABEL_MINIPLAYER": "ミニプレイヤー", - "LABEL_NOTIFICATION_DISLIKED": "この曲に低評価をつけました", - "LABEL_NOTIFICATION_LIKED": "この曲に高評価をつけました", - "LABEL_PLAY_MUSIC": "音楽を再生", - "LABEL_SAVE": "保存", - "LABEL_SAVED": "保存済み", - "LABEL_SETTINGS": "設定", - "LABEL_SETTINGS_DISCORD": "Discordの設定", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "アーティストを表示", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "プレイバックの休止時にトラックを表示", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "トラックの時間を表示", - "LABEL_SETTINGS_RELAUNCH": "適用して再起動", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "メインウィンドウの表示・非表示", - "LABEL_SETTINGS_TAB_ABOUT": "アプリについて", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "タスクバーに曲の状況を表示", - "LABEL_SETTINGS_TAB_APPEARENCE": "外観", - "LABEL_SETTINGS_TAB_GENERAL": "一般", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "デバイスが見つかりませんでした", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "ここをクリックしてQRコードを読み取る", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "パスワードで遠隔操作を保護", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "リモコンサーバー", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "中断時から再開", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "カスタムテーマ", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "GPU使用の無効化", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presenceと連携", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ウィンドウを閉じてもアプリを維持する", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ページの拡大", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "オーディオの出力先を選択", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "言語", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "歌詞の提供", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "タイトルバーのスタイル", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "デフォルト", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "タイトルバーを無効化", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "システム", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "簡易トレイ制御(Mac OSのみ)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "通知を表示", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "最小化した状態で起動", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "スタートアップで起動 (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10のボリュームバーに曲の情報を表示", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 media serviceを有効化", - "LABEL_SETTINGS_TAB_INTEGRATION": "連携", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "連携", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)と連携", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "保存して認証", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "ミニプレイヤー", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "常に最前面", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "常にコントロールを表示", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "アルバムの色でコントロールを描画", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "ミニプレイヤーのサイズ", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "大", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "中", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "小", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "リサイズを許可", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "タスクバーに表示", - "LABEL_SETTINGS_TAB_PLAYBACK": "再生", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "クリップボードからYoutubeのリンクを読み取る", - "LABEL_SETTINGS_TAB_SHORTCUTS": "ショートカット", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "グローバル", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "ローカル", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "任意のキーを押す", - "LYRICS": "歌詞", - "MEDIA_CONTROL_MINIPLAYER": "ミニプレイヤーを開く / 閉じる", - "MEDIA_CONTROL_MUTE_UNMUTE": "消音", - "MEDIA_CONTROL_NEXT": "次", - "MEDIA_CONTROL_PAUSE": "停止", - "MEDIA_CONTROL_PLAY": "再生", - "MEDIA_CONTROL_PLAY_PAUSE": "再生 / 停止", - "MEDIA_CONTROL_PREVIOUS": "前", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "キューを開く / 閉じる", - "MEDIA_CONTROL_REPEAT": "リピート", - "MEDIA_CONTROL_SEARCH": "検索", - "MEDIA_CONTROL_SHUFFLE": "シャッフル", - "MEDIA_CONTROL_THUMBS_DOWN": "低く評価", - "MEDIA_CONTROL_THUMBS_UP": "高く評価", - "MEDIA_CONTROL_VOLUME_DOWN": "音量を下げる", - "MEDIA_CONTROL_VOLUME_UP": "音量を上げる", - "MINIPLAYER": "ミニプレーヤー", - "PREFIX_OPEN_CLOSE": "開く/閉じる", - "SHORTCUT_BUTTONS": "UIの操作をカスタマイズ", - "SHOW": "表示", - "SKIP_TRACK_MARKED_DISLIKED": "低評価をつけたトラックをスキップ", - "SKIP_TRACK_SHORTER_THAN": "値より短い音楽をスキップ", - "TRAY_ICON": "トレイのアイコン", - "WANT_PLAY_THIS_LINK": "このリンクを再生しますか?", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "音量の表記を'%'から'db'に変える", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景色をアルバムの色にする", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "ボリューム操作をアプリのみに適用" + "ADD_TO_LIBRARY": "ライブラリに追加", + "ADD_TO_PLAYLIST": "プレイリストに追加", + "ALWAYS_ASK_WHEN_READ_LINK": "リンク読み取り時に常に尋ねる", + "DOUBLE_CLICK_TO_RESET_POSITION": "ダブルクリックで位置を初期化", + "LABEL_ALSO": "または", + "LABEL_AUDIO": "オーディオ", + "LABEL_CANCEL": "中止", + "LABEL_CHANGELOG": "新機能", + "LABEL_DISABLE": "無効化", + "LABEL_EXIT": "終了", + "LABEL_GUEST": "ゲスト", + "LABEL_LOADING": "読込中...", + "LABEL_LYRICS": "歌詞", + "LABEL_LYRICS_NOT_FOUND": "歌詞が見つかりません", + "LABEL_MINIPLAYER": "ミニプレイヤー", + "LABEL_NOTIFICATION_DISLIKED": "この曲に低評価をつけました", + "LABEL_NOTIFICATION_LIKED": "この曲に高評価をつけました", + "LABEL_PLAY_MUSIC": "音楽を再生", + "LABEL_SAVE": "保存", + "LABEL_SAVED": "保存済み", + "LABEL_SETTINGS": "設定", + "LABEL_SETTINGS_DISCORD": "Discordの設定", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "アーティストを表示", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "プレイバックの休止時にトラックを表示", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "トラックの時間を表示", + "LABEL_SETTINGS_RELAUNCH": "適用して再起動", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "メインウィンドウの表示・非表示", + "LABEL_SETTINGS_TAB_ABOUT": "アプリについて", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "タスクバーに曲の状況を表示", + "LABEL_SETTINGS_TAB_APPEARENCE": "外観", + "LABEL_SETTINGS_TAB_GENERAL": "一般", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "デバイスが見つかりませんでした", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "ここをクリックしてQRコードを読み取る", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "パスワードで遠隔操作を保護", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "リモコンサーバー", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "中断時から再開", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "カスタムテーマ", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "GPU使用の無効化", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presenceと連携", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ウィンドウを閉じてもアプリを維持する", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ページの拡大", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "オーディオの出力先を選択", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "言語", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "歌詞の提供", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "タイトルバーのスタイル", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "デフォルト", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "タイトルバーを無効化", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "システム", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "簡易トレイ制御(Mac OSのみ)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "通知を表示", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "最小化した状態で起動", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "スタートアップで起動 (Mac/Win)", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10のボリュームバーに曲の情報を表示", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 media serviceを有効化", + "LABEL_SETTINGS_TAB_INTEGRATION": "連携", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "連携", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)と連携", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "保存して認証", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER": "ミニプレイヤー", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "常に最前面", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "常にコントロールを表示", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "アルバムの色でコントロールを描画", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "ミニプレイヤーのサイズ", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "大", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "中", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "小", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "リサイズを許可", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "タスクバーに表示", + "LABEL_SETTINGS_TAB_PLAYBACK": "再生", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "クリップボードからYoutubeのリンクを読み取る", + "LABEL_SETTINGS_TAB_SHORTCUTS": "ショートカット", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "グローバル", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "ローカル", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "任意のキーを押す", + "LYRICS": "歌詞", + "MEDIA_CONTROL_MINIPLAYER": "ミニプレイヤーを開く / 閉じる", + "MEDIA_CONTROL_MUTE_UNMUTE": "消音", + "MEDIA_CONTROL_NEXT": "次", + "MEDIA_CONTROL_PAUSE": "停止", + "MEDIA_CONTROL_PLAY": "再生", + "MEDIA_CONTROL_PLAY_PAUSE": "再生 / 停止", + "MEDIA_CONTROL_PREVIOUS": "前", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "キューを開く / 閉じる", + "MEDIA_CONTROL_REPEAT": "リピート", + "MEDIA_CONTROL_SEARCH": "検索", + "MEDIA_CONTROL_SHUFFLE": "シャッフル", + "MEDIA_CONTROL_THUMBS_DOWN": "低く評価", + "MEDIA_CONTROL_THUMBS_UP": "高く評価", + "MEDIA_CONTROL_VOLUME_DOWN": "音量を下げる", + "MEDIA_CONTROL_VOLUME_UP": "音量を上げる", + "MINIPLAYER": "ミニプレーヤー", + "PREFIX_OPEN_CLOSE": "開く/閉じる", + "SHORTCUT_BUTTONS": "UIの操作をカスタマイズ", + "SHOW": "表示", + "SKIP_TRACK_MARKED_DISLIKED": "低評価をつけたトラックをスキップ", + "SKIP_TRACK_SHORTER_THAN": "値より短い音楽をスキップ", + "TRAY_ICON": "トレイのアイコン", + "WANT_PLAY_THIS_LINK": "このリンクを再生しますか?", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "音量の表記を'%'から'db'に変える", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "操作ボタンをアルバムの色にする", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "ボリューム操作をアプリのみに適用" } From fb196c46673d06978a0e88123ee4e88a90313c60 Mon Sep 17 00:00:00 2001 From: Leif Ringstad Date: Mon, 12 Oct 2020 11:03:22 +0200 Subject: [PATCH 031/489] Add norwegian language --- src/locales/no.yml | 103 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/locales/no.yml diff --git a/src/locales/no.yml b/src/locales/no.yml new file mode 100644 index 000000000..374e32cbc --- /dev/null +++ b/src/locales/no.yml @@ -0,0 +1,103 @@ +{ + "ADD_TO_LIBRARY": "Legg til i biblioteket", + "ADD_TO_PLAYLIST": "Legg til i spilleliste", + "ALWAYS_ASK_WHEN_READ_LINK": "Alltid spør når lenke leses", + "DOUBLE_CLICK_TO_RESET_POSITION": "Dobbelt-klikk for å tilbakestille posisjon", + "LABEL_ALSO": "Også", + "LABEL_AUDIO": "Lyd", + "LABEL_CANCEL": "Avbryt", + "LABEL_CHANGELOG": "Hva er nytt", + "LABEL_DISABLE": "Deaktiver", + "LABEL_EXIT": "Avslutt", + "LABEL_GUEST": "Gjest", + "LABEL_LOADING": "Laster...", + "LABEL_LYRICS_NOT_FOUND": "Finner ikke sangtekster", + "LABEL_LYRICS": "Sangtekster", + "LABEL_MINIPLAYER": "Minispiller", + "LABEL_NOTIFICATION_DISLIKED": "Du likte ikke denne sangen", + "LABEL_NOTIFICATION_LIKED": "Du likte denne sangen", + "LABEL_PLAY_MUSIC": "Spill musikk", + "LABEL_SAVE": "Lagre", + "LABEL_SAVED": "Lagret", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Vis artist", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Vis spor når avspillingen er satt på pause", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Vis tid", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Vis tittel", + "LABEL_SETTINGS_DISCORD": "Discord innstillinger", + "LABEL_SETTINGS_RELAUNCH": "Bruk og start på nytt", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Vis/Skjul hovedvindu", + "LABEL_SETTINGS_TAB_ABOUT": "Om", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Vis fremgang på oppgavelinjen", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Sett bakgrunnsfarge fra albumfarge", + "LABEL_SETTINGS_TAB_APPEARENCE": "Utseende", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Finner ingen enheter", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Trykk her eller skann QR koden", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Beskytt fjernkontrol med passord", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Fjernkontroll", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Fortsett der du slapp", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Egendefinert tema", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deaktiver maskinvareakselerasjon", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord rik tilstedeværelse", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Hold YTMDesktop kjørende i bakgrunnen når vinduet lukkes", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Side zoom", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Lydutgang", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Språk", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Sangtekst leverandør", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Fin", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deaktiver tittellinjen", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Tittellinjestil", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Enkel dock-kontroll (Kun Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Vis notifikasjoner", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimert", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start ved oppstart (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "Generelt", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Vis sporinformasjon ved siden av volumlinjen i Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Aktiver Windows 10 medietjeneste", + "LABEL_SETTINGS_TAB_INTEGRATION": "Integrasjon", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrasjoner", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Lagre og godkjenn", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Alltid øverst", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Vis alltid kontroller", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Farg kontroller fra albumfarge", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Tillat endring av størrelse", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Vis på oppgavelinjen", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Minispiller", + "LABEL_SETTINGS_TAB_PLAYBACK": "Avspilling", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Les utklippstavlen for youtube-lenker", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globale", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokale", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Trykk en tast", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Snarveier", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volummedietaster kontrollerer kun appvolum", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Bytt volumkontroll fra '%' til 'dB'", + "LABEL_SETTINGS": "Innstillinger", + "LYRICS": "Sangtekster", + "MEDIA_CONTROL_MINIPLAYER": "Åpne/Lukke Minispiller", + "MEDIA_CONTROL_MUTE_UNMUTE": "Slå av / på lyden", + "MEDIA_CONTROL_NEXT": "Neste", + "MEDIA_CONTROL_PAUSE": "Pause", + "MEDIA_CONTROL_PLAY_PAUSE": "Spill/Pause", + "MEDIA_CONTROL_PLAY": "Spill", + "MEDIA_CONTROL_PREVIOUS": "Forrige", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Åpne/Lukke Kø", + "MEDIA_CONTROL_REPEAT": "Gjenta", + "MEDIA_CONTROL_SEARCH": "Søk", + "MEDIA_CONTROL_SHUFFLE": "Tilfeldig rekkefølge", + "MEDIA_CONTROL_THUMBS_DOWN": "Tommel ned", + "MEDIA_CONTROL_THUMBS_UP": "Tommel opp", + "MEDIA_CONTROL_VOLUME_DOWN": "Skru volumet ned", + "MEDIA_CONTROL_VOLUME_UP": "Skru volumet opp", + "MINIPLAYER": "Minispiller", + "PREFIX_OPEN_CLOSE": "Åpne/Lukke", + "REMOVE_FROM_LIBRARY": "Fjern fra bibliotek", + "SHORTCUT_BUTTONS": "UI-handlinger", + "SHOW": "Vis", + "SKIP_TRACK_MARKED_DISLIKED": "Hopp over spor merket som 'Ikke likt'", + "SKIP_TRACK_SHORTER_THAN": "Hopp over spor kortere enn", + "TRAY_ICON": "Ikon i systemstatusfeltet", + "WANT_PLAY_THIS_LINK": "Vil du spille denne lenken?" +} From d671262ec148127c2946bc2a0ce7fc18cc025e8d Mon Sep 17 00:00:00 2001 From: Leif Ringstad Date: Mon, 12 Oct 2020 11:06:35 +0200 Subject: [PATCH 032/489] Add Norwegian language to selector --- src/pages/settings/settings.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 7821068aa..78e1a589b 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -297,6 +297,9 @@ + From 92c62ae5f9f615b175cf800a847b64f9fdf27932 Mon Sep 17 00:00:00 2001 From: Owen Davies Date: Wed, 21 Oct 2020 16:03:07 -0500 Subject: [PATCH 033/489] :bug: Make MPRIS work in snapped version Add MPRIS slot to electron builder config. Rename mprisProvider to match default mpris slot. Rework player mpris metadata to work with new name. Addresses #443 --- electron-builder-deploy64.yml | 6 +++++- src/providers/mprisProvider.js | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/electron-builder-deploy64.yml b/electron-builder-deploy64.yml index d4f0f5294..3c19b5464 100644 --- a/electron-builder-deploy64.yml +++ b/electron-builder-deploy64.yml @@ -44,4 +44,8 @@ mac: linux: icon: src/assets/favicon.png - category: AudioVideo \ No newline at end of file + category: AudioVideo + +snap: + slots: + - mpris diff --git a/src/providers/mprisProvider.js b/src/providers/mprisProvider.js index f81d35017..a2d3b51fb 100644 --- a/src/providers/mprisProvider.js +++ b/src/providers/mprisProvider.js @@ -10,7 +10,7 @@ class Mpris { start() { this.player = new mpris({ - name: 'youtubemusic', + name: 'youtube-music-desktop-app', identity: 'Youtube Music', supportedUriSchemes: ['file'], supportedMimeTypes: ['audio/mpeg', 'application/ogg'], @@ -36,7 +36,9 @@ class Mpris { setActivity(info) { if (this._isInitialized) { this.player.metadata = { - 'mpris:trackid': this.player.objectPath('track/0'), + 'mpris:trackid': this.player + .objectPath('track/0') + .replaceAll('-', '_'), // replacing -'s in name with _ to meet dbus object name spec 'mpris:length': info.track.duration * 1000 * 1000, // In microseconds 'mpris:artUrl': info.track.cover, 'xesam:title': info.track.title, From 8463b714dd9272073a38fb1a8d83b7a2404387b3 Mon Sep 17 00:00:00 2001 From: Nerogar Date: Sat, 24 Oct 2020 10:32:45 +0200 Subject: [PATCH 034/489] :bug: Fix stepless volume control --- src/providers/infoPlayerProvider.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index 69c5fbbd8..4b02b862e 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -443,6 +443,7 @@ function setVolume(webContents, time) { ` var slider = document.querySelector('#volume-slider'); slider.value = ${time}; + document.querySelector('.video-stream').volume = ${time / 100} ` ) .then() From fc395b88bf3a1a614096ec670c8e20176b521ae5 Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Mon, 26 Oct 2020 13:28:00 -0300 Subject: [PATCH 035/489] :bug: Fix #463 --- main.js | 3 ++- src/pages/settings/settings.js | 15 +++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/main.js b/main.js index c648844e2..0436ac3e2 100644 --- a/main.js +++ b/main.js @@ -891,7 +891,8 @@ async function createWindow() { }) settingsProvider.onDidChange('settings-page-zoom', (data) => { - view.webContents.zoomFactor = data.newValue / 100 + console.log(data) + view.webContents.setZoomFactor(data.newValue / 100) }) ipcMain.on('media-command', (dataMain, dataRenderer) => { diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 7597869b2..5a25c7bb5 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -193,8 +193,9 @@ document.addEventListener('DOMContentLoaded', () => { if (elementRangeZoom) { elementRangeZoom.addEventListener('input', () => { - document.getElementById('range-zoom-value').innerText = this.value - settingsProvider.set('settings-page-zoom', this.value) + document.getElementById('range-zoom-value').innerText = + elementRangeZoom.value + settingsProvider.set('settings-page-zoom', elementRangeZoom.value) }) } @@ -202,8 +203,14 @@ if (elementRangeSkipTrackShorterThan) elementRangeSkipTrackShorterThan.addEventListener('input', () => { document.getElementById( 'range-skip-track-shorter-than-value' - ).innerText = this.value === 0 ? `(Disabled) ${this.value}` : this.value - settingsProvider.set('settings-skip-track-shorter-than', this.value) + ).innerText = + elementRangeSkipTrackShorterThan.value === 0 + ? `(Disabled) ${elementRangeSkipTrackShorterThan.value}` + : elementRangeSkipTrackShorterThan.value + settingsProvider.set( + 'settings-skip-track-shorter-than', + elementRangeSkipTrackShorterThan.value + ) }) if (elementBtnOpenPageEditor) From 66ef88560860d5e32d66eadad4b04f9565fc228d Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Mon, 26 Oct 2020 13:36:36 -0300 Subject: [PATCH 036/489] :bug: Fix #461 --- main.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index 0436ac3e2..da4e8c9d2 100644 --- a/main.js +++ b/main.js @@ -1198,7 +1198,12 @@ async function createWindow() { 'settings-miniplayer-size', Math.min(...size) ) - miniplayer.setSize(Math.min(...size), Math.min(...size)) + if (miniplayer) { + miniplayer.setSize( + Math.min(...size), + Math.min(...size) + ) + } }, 500) } catch (_) { writeLog({ type: 'warn', data: 'error miniplayer resize' }) From 52d40a11a62a44ce03e9b0f9c5f037ac4c41ee35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Marques?= Date: Thu, 29 Oct 2020 11:45:00 +0000 Subject: [PATCH 037/489] Create pt-BR --- src/locales/pt-BR | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/locales/pt-BR diff --git a/src/locales/pt-BR b/src/locales/pt-BR new file mode 100644 index 000000000..abdaacd92 --- /dev/null +++ b/src/locales/pt-BR @@ -0,0 +1,100 @@ +{ + "ADD_TO_LIBRARY": "Adicionar à biblioteca", + "ADD_TO_PLAYLIST": "Adicionar à playlist", + "ALWAYS_ASK_WHEN_READ_LINK": "Sempre perguntar ao ler link", + "DOUBLE_CLICK_TO_RESET_POSITION": "Clique duplo para resetar a posição", + "LABEL_ALSO": "Também", + "LABEL_AUDIO": "Áudio", + "LABEL_CANCEL": "Cancelar", + "LABEL_CHANGELOG": "O que há de novo", + "LABEL_DISABLE": "Desabilitar", + "LABEL_EXIT": "Sair", + "LABEL_GUEST": "Convidado", + "LABEL_LOADING": "Carregando...", + "LABEL_LYRICS_NOT_FOUND": "Letra não encontrada", + "LABEL_LYRICS": "Letra da Música", + "LABEL_MINIPLAYER": "Miniplayer", + "LABEL_NOTIFICATION_DISLIKED": "Você não gostou desta música", + "LABEL_NOTIFICATION_LIKED": "Você gostou desta música", + "LABEL_PLAY_MUSIC": "Inicie uma música", + "LABEL_SAVE": "Salvar", + "LABEL_SAVED": "Salvo", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar faixa quando estiver pausado", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar duração da faixa", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar título", + "LABEL_SETTINGS_DISCORD": "Configurações Discord", + "LABEL_SETTINGS_RELAUNCH": "Aplicar e reiniciar", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar/Ocultar janela principal", + "LABEL_SETTINGS_TAB_ABOUT": "Sobre", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar o progresso da faixa na barra de tarefas", + "LABEL_SETTINGS_TAB_APPEARENCE": "Aparência", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nenhum dispositivo encontrado", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clique aqui e escaneie o QR Code", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger controle remoto com senha", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controle remoto", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar de onde parou", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema customizado", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Desabilitar aceleração de hardware", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Manter YTMDesktop em segundo plano quando fechar a janela principal", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom da página", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Saída de áudio", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Linguagem", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Provedor de letra da música", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Bonito", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Nenhum", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Padrão do sistema", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estilo da barra", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controle fácil na bandeja (Somente para Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificações", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimizado", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar com o sistema (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "Geral", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informação da faixa ao lado da barra de volume do Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar serviço de mídia do Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION": "Integração", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrações", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Salvar e autorizar", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre no topo", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Sempre mostrar os controles", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Colorir os controles com as cores do álbum", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir redimensionar", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar na barra de tarefas", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", + "LABEL_SETTINGS_TAB_PLAYBACK": "Reprodução", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Leia a área de transferência para obter links do Youtube", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Pressione qualquer tecla", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Atalhos", + "LABEL_SETTINGS": "Configurações", + "LYRICS": "Letras de músicas", + "MEDIA_CONTROL_MINIPLAYER": "Abrir/Fechar Miniplayer", + "MEDIA_CONTROL_MUTE_UNMUTE": "Mutar/Desmutar", + "MEDIA_CONTROL_NEXT": "Próximo", + "MEDIA_CONTROL_PAUSE": "Pausar", + "MEDIA_CONTROL_PLAY_PAUSE": "Reproduzir/Pausar", + "MEDIA_CONTROL_PLAY": "Reproduzir", + "MEDIA_CONTROL_PREVIOUS": "Anterior", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/Fechar Fila", + "MEDIA_CONTROL_REPEAT": "Repetir", + "MEDIA_CONTROL_SEARCH": "Pesquisar", + "MEDIA_CONTROL_SHUFFLE": "Misturar", + "MEDIA_CONTROL_THUMBS_DOWN": "Não gostei", + "MEDIA_CONTROL_THUMBS_UP": "Gostei", + "MEDIA_CONTROL_VOLUME_DOWN": "Diminuir volume", + "MEDIA_CONTROL_VOLUME_UP": "Aumentar volume", + "MINIPLAYER": "Miniplayer", + "PREFIX_OPEN_CLOSE": "Abrir/Fechar", + "REMOVE_FROM_LIBRARY": "Remover da biblioteca", + "SHORTCUT_BUTTONS": "Ações da UI", + "SHOW": "Exibir", + "SKIP_TRACK_MARKED_DISLIKED": "Pular faixas marcadas como 'Não gostei'", + "SKIP_TRACK_SHORTER_THAN": "Pular faixas mais curtas que", + "TRAY_ICON": "Ícone na bandeja", + "WANT_PLAY_THIS_LINK": "Deseja executar este link?" +} From 52c3b69d95fde72df45a2b26c9c3340424f31317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Marques?= Date: Thu, 29 Oct 2020 11:48:12 +0000 Subject: [PATCH 038/489] Update pt.json --- src/locales/pt.json | 133 ++++++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/src/locales/pt.json b/src/locales/pt.json index abdaacd92..1152d808e 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -1,100 +1,103 @@ { - "ADD_TO_LIBRARY": "Adicionar à biblioteca", - "ADD_TO_PLAYLIST": "Adicionar à playlist", - "ALWAYS_ASK_WHEN_READ_LINK": "Sempre perguntar ao ler link", - "DOUBLE_CLICK_TO_RESET_POSITION": "Clique duplo para resetar a posição", + "ADD_TO_LIBRARY": "Adicionar à coleção", + "ADD_TO_PLAYLIST": "Adicionar à lista de reprodução, + "ALWAYS_ASK_WHEN_READ_LINK": "Perguntar sempre ao ler a ligação", + "DOUBLE_CLICK_TO_RESET_POSITION": "Duplo clique para repor a posição", "LABEL_ALSO": "Também", "LABEL_AUDIO": "Áudio", "LABEL_CANCEL": "Cancelar", - "LABEL_CHANGELOG": "O que há de novo", - "LABEL_DISABLE": "Desabilitar", + "LABEL_CHANGELOG": "Novidades", + "LABEL_DISABLE": "Desativar", "LABEL_EXIT": "Sair", "LABEL_GUEST": "Convidado", - "LABEL_LOADING": "Carregando...", - "LABEL_LYRICS_NOT_FOUND": "Letra não encontrada", - "LABEL_LYRICS": "Letra da Música", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_NOTIFICATION_DISLIKED": "Você não gostou desta música", - "LABEL_NOTIFICATION_LIKED": "Você gostou desta música", - "LABEL_PLAY_MUSIC": "Inicie uma música", - "LABEL_SAVE": "Salvar", - "LABEL_SAVED": "Salvo", + "LABEL_LOADING": "A carregar...", + "LABEL_LYRICS_NOT_FOUND": "Letra da faixa não encontrada", + "LABEL_LYRICS": "Letra da faixa", + "LABEL_MINIPLAYER": "Mini-reprodutor", + "LABEL_NOTIFICATION_DISLIKED": "Você não gosta desta música", + "LABEL_NOTIFICATION_LIKED": "Você gosta desta música", + "LABEL_PLAY_MUSIC": "Reproduzir música", + "LABEL_SAVE": "Guardar", + "LABEL_SAVED": "Guardado", "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar faixa quando estiver pausado", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar faixa se a reprodução estiver em pausa", "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar duração da faixa", "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar título", - "LABEL_SETTINGS_DISCORD": "Configurações Discord", + "LABEL_SETTINGS_DISCORD": "Definições Discord", "LABEL_SETTINGS_RELAUNCH": "Aplicar e reiniciar", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar/Ocultar janela principal", - "LABEL_SETTINGS_TAB_ABOUT": "Sobre", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar o progresso da faixa na barra de tarefas", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar/ocultar janela principal", + "LABEL_SETTINGS_TAB_ABOUT": "Acerca", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar evolução na barra de tarefas", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Colorir fundo com a cor do álbum", "LABEL_SETTINGS_TAB_APPEARENCE": "Aparência", "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nenhum dispositivo encontrado", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clique aqui e escaneie o QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger controle remoto com senha", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controle remoto", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar de onde parou", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema customizado", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Desabilitar aceleração de hardware", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clique aqui e digitalize o código QR", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger controlo remoto com palavra-passe", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controlo remoto", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar da última sessão", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalizado", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Desativar aceleração por hardware", "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Manter YTMDesktop em segundo plano quando fechar a janela principal", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom da página", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Ao fechar a janela, manter YTMDesktop em segundo plano", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Tamanho da página", "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Saída de áudio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Linguagem", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Provedor de letra da música", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Bonito", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Nenhum", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Padrão do sistema", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estilo da barra", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controle fácil na bandeja (Somente para Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Idioma", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Serviço para letra das faixas", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Agradável", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Desativar barra de título", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Barra de título do sistema", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controlos na bandeja (apenas para Mac OS)", "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificações", "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimizado", "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar com o sistema (Mac/Win)", "LABEL_SETTINGS_TAB_GENERAL": "Geral", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informação da faixa ao lado da barra de volume do Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar serviço de mídia do Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informações da faixa perto da barra de volume (Windows 10)", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Ativar serviço multimédia (Windows 10 media service)", "LABEL_SETTINGS_TAB_INTEGRATION": "Integração", "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrações", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Salvar e autorizar", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Guardar e autorizar", "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre no topo", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Sempre mostrar os controles", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Colorir os controles com as cores do álbum", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir redimensionar", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre na frente", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostrar sempre os controlos", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Colorir controlos conforme a imagem do álbum", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir redimensionamento", "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar na barra de tarefas", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini-reprodutor", "LABEL_SETTINGS_TAB_PLAYBACK": "Reprodução", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Leia a área de transferência para obter links do Youtube", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Ler área de transferência para ligações do youtube", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Pressione qualquer tecla", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Prima uma tecla", "LABEL_SETTINGS_TAB_SHORTCUTS": "Atalhos", - "LABEL_SETTINGS": "Configurações", - "LYRICS": "Letras de músicas", - "MEDIA_CONTROL_MINIPLAYER": "Abrir/Fechar Miniplayer", - "MEDIA_CONTROL_MUTE_UNMUTE": "Mutar/Desmutar", - "MEDIA_CONTROL_NEXT": "Próximo", - "MEDIA_CONTROL_PAUSE": "Pausar", - "MEDIA_CONTROL_PLAY_PAUSE": "Reproduzir/Pausar", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "As teclas multimédia apenas controlam o volume desta aplicação", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Comutar controlo de volume de '%' para 'dB'", + "LABEL_SETTINGS": "Definições", + "LYRICS": "Letra da faixa", + "MEDIA_CONTROL_MINIPLAYER": "Abrir/fechar mini-reprodutor", + "MEDIA_CONTROL_MUTE_UNMUTE": "Sem som/com som", + "MEDIA_CONTROL_NEXT": "Seguinte", + "MEDIA_CONTROL_PAUSE": "Pausa", + "MEDIA_CONTROL_PLAY_PAUSE": "Reproduzir/Pausa", "MEDIA_CONTROL_PLAY": "Reproduzir", "MEDIA_CONTROL_PREVIOUS": "Anterior", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/Fechar Fila", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/fechar fila", "MEDIA_CONTROL_REPEAT": "Repetir", "MEDIA_CONTROL_SEARCH": "Pesquisar", - "MEDIA_CONTROL_SHUFFLE": "Misturar", - "MEDIA_CONTROL_THUMBS_DOWN": "Não gostei", - "MEDIA_CONTROL_THUMBS_UP": "Gostei", - "MEDIA_CONTROL_VOLUME_DOWN": "Diminuir volume", + "MEDIA_CONTROL_SHUFFLE": "Baralhar", + "MEDIA_CONTROL_THUMBS_DOWN": "Não gosto", + "MEDIA_CONTROL_THUMBS_UP": "Gosto", + "MEDIA_CONTROL_VOLUME_DOWN": "Reduzir volume", "MEDIA_CONTROL_VOLUME_UP": "Aumentar volume", - "MINIPLAYER": "Miniplayer", - "PREFIX_OPEN_CLOSE": "Abrir/Fechar", - "REMOVE_FROM_LIBRARY": "Remover da biblioteca", - "SHORTCUT_BUTTONS": "Ações da UI", - "SHOW": "Exibir", - "SKIP_TRACK_MARKED_DISLIKED": "Pular faixas marcadas como 'Não gostei'", - "SKIP_TRACK_SHORTER_THAN": "Pular faixas mais curtas que", + "MINIPLAYER": "Mini-reprodutor", + "PREFIX_OPEN_CLOSE": "Abrir/fechar", + "REMOVE_FROM_LIBRARY": "Remover da coleção", + "SHORTCUT_BUTTONS": "Ações na interface", + "SHOW": "Mostrar", + "SKIP_TRACK_MARKED_DISLIKED": "Ignorar faixas com a marca 'Não gosto'", + "SKIP_TRACK_SHORTER_THAN": "Ignorar faixas com duração inferior a", "TRAY_ICON": "Ícone na bandeja", - "WANT_PLAY_THIS_LINK": "Deseja executar este link?" + "WANT_PLAY_THIS_LINK": "Deseja reproduzir esta ligação?" } From c7c9f8595e6e65b0c3c53680268104f1803c2806 Mon Sep 17 00:00:00 2001 From: Savelii Kolesnikov Date: Fri, 30 Oct 2020 02:21:51 +0200 Subject: [PATCH 039/489] :bug: Fix settings saving --- src/pages/settings/settings.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 5a25c7bb5..0b6cc2863 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -283,8 +283,6 @@ function showRelaunchButton() { * @param {*} fn */ function initElement(elementName, eventType, fn) { - if (fn === undefined) fn = () => {} - const element = document.getElementById(elementName) if (element) { @@ -301,10 +299,10 @@ function initElement(elementName, eventType, fn) { * @param {*} fn */ function createListener(element, settingsName, eventType, fn) { - element.addEventListener(eventType, () => { + element.addEventListener(eventType, (e) => { switch (eventType) { case 'click': - settingsProvider.set(settingsName, this.checked) + settingsProvider.set(settingsName, e.target.checked) /*ipc.send('settings-value-changed', { key: settingsName, value: this.checked, @@ -312,14 +310,14 @@ function createListener(element, settingsName, eventType, fn) { break case 'change': - settingsProvider.set(settingsName, this.value) + settingsProvider.set(settingsName, e.target.value) /*ipc.send('settings-value-changed', { key: settingsName, value: this.value, })*/ break } - fn() + fn && fn() }) } From 9b88bf6118b9dc3020c29dc1588d1bb64c3f1a07 Mon Sep 17 00:00:00 2001 From: Savelii Kolesnikov Date: Fri, 30 Oct 2020 02:42:08 +0200 Subject: [PATCH 040/489] :bug: Fix double wheel scrolling on volume --- src/utils/injectControls.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 9d6a5280b..a4111ef55 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -698,8 +698,38 @@ function playerBarScrollToChangeVolume() { try { const playerBar = document.getElementsByTagName('ytmusic-player-bar')[0] + const volumeSlider = document.getElementById('volume-slider') + let isVolumeSliderHovered = false + volumeSlider.addEventListener( + 'mouseover', + () => (isVolumeSliderHovered = true) + ) + volumeSlider.addEventListener( + 'mouseout', + () => (isVolumeSliderHovered = false) + ) + + const expandVolumeSlider = document.getElementById( + 'expand-volume-slider' + ) + let isExpandVolumeSliderHovered = false + expandVolumeSlider.addEventListener( + 'mouseover', + () => (isExpandVolumeSliderHovered = true) + ) + expandVolumeSlider.addEventListener( + 'mouseout', + () => (isExpandVolumeSliderHovered = false) + ) + + const isSliderHovered = () => + isExpandVolumeSliderHovered || isVolumeSliderHovered + playerBar.addEventListener('wheel', (ev) => { ev.preventDefault() + if (!settingsGet('settings-decibel-volume') && isSliderHovered()) { + return + } if (ev.deltaY < 0) ipcRenderer.send('media-command', { From 1071db51aebe862539d7af1b45f3504f392c9f3e Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 19 Oct 2020 21:06:48 +0200 Subject: [PATCH 041/489] Allows raising of player --- main.js | 4 ++++ src/providers/mprisProvider.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/main.js b/main.js index da4e8c9d2..7784053f3 100644 --- a/main.js +++ b/main.js @@ -988,6 +988,10 @@ async function createWindow() { tray.setShinyTray() }) + ipcMain.on('show', (_) => { + mainWindow.show() + }) + ipcMain.on('btn-update-clicked', () => { updater.quitAndInstall() }) diff --git a/src/providers/mprisProvider.js b/src/providers/mprisProvider.js index a2d3b51fb..802da325c 100644 --- a/src/providers/mprisProvider.js +++ b/src/providers/mprisProvider.js @@ -15,6 +15,7 @@ class Mpris { supportedUriSchemes: ['file'], supportedMimeTypes: ['audio/mpeg', 'application/ogg'], supportedInterfaces: ['player'], + canRaise: true, }) this._setInitialEvents() @@ -79,6 +80,10 @@ class Mpris { }) }) + this.player.on('raise', () => { + ipcMain.emit('show', null) + }) + this.player.on('seek', (offset) => { // the seek event sends through the difference from where we should be in microseconds, positive forward, negative backward ipcMain.emit('media-command', { From bc389a23df551527846b35cf8d84cb858b4d5526 Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 19 Oct 2020 21:13:29 +0200 Subject: [PATCH 042/489] Adds shutdown button --- main.js | 7 +++++++ src/locales/en.json | 1 + src/utils/injectControls.js | 18 ++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/main.js b/main.js index da4e8c9d2..a40e02ef7 100644 --- a/main.js +++ b/main.js @@ -988,6 +988,13 @@ async function createWindow() { tray.setShinyTray() }) + ipcMain.on('closed', (_) => { + mainWindow = null + if (process.platform !== 'darwin') { + app.quit() + } + }) + ipcMain.on('btn-update-clicked', () => { updater.quitAndInstall() }) diff --git a/src/locales/en.json b/src/locales/en.json index dd0f85982..7f87eb15a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -75,6 +75,7 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media keys only control app volume", "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", "LABEL_SETTINGS": "Settings", + "LABEL_SHUTDOWN": "Shutdown", "LYRICS": "Lyrics", "MEDIA_CONTROL_MINIPLAYER": "Open/Close Miniplayer", "MEDIA_CONTROL_MUTE_UNMUTE": "Mute/Unmute", diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 9d6a5280b..94a87debe 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -302,6 +302,24 @@ function createTopRightContent() { try { const right_content = document.getElementById('right-content') + //SHUTDOWN + const elementShutdown = document.createElement('i') + elementShutdown.id = 'ytmd_shutdown' + elementShutdown.title = translate('LABEL_SHUTDOWN') + elementShutdown.classList.add( + 'material-icons', + 'pointer', + 'shine', + 'ytmd-icons' + ) + elementShutdown.innerText = 'power_settings_new' + + elementShutdown.addEventListener('click', function () { + ipcRenderer.send('closed') + }) + + right_content.prepend(elementShutdown) + // SETTINGS const elementSettings = document.createElement('i') elementSettings.id = 'ytmd_settings' From a9172304a83274752018db0733da6f4e1cbb378c Mon Sep 17 00:00:00 2001 From: Elle Date: Sat, 31 Oct 2020 00:00:46 -0400 Subject: [PATCH 043/489] Updated track-play and pause Added a check for the individualized play and pause commands so they work as expected and don't toggle the media state when not needed. --- src/providers/companionServer.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/providers/companionServer.js b/src/providers/companionServer.js index 833e5b4c6..347b9a668 100644 --- a/src/providers/companionServer.js +++ b/src/providers/companionServer.js @@ -378,17 +378,21 @@ function execCmd(cmd, value) { break case 'track-play': - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) + if (infoPlayerProvider.getPlayerInfo().isPaused == true) { + ipcMain.emit('media-command', { + command: 'media-play-pause', + value: true, + }) + } break case 'track-pause': - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) + if (infoPlayerProvider.getPlayerInfo().isPaused == false) { + ipcMain.emit('media-command', { + command: 'media-play-pause', + value: true, + }) + } break case 'track-next': From 0cc4eeee5523f25e02d4f84a8da433b3a74f2bd2 Mon Sep 17 00:00:00 2001 From: "Felipe Guaycuru de C. B. Franco" Date: Sat, 31 Oct 2020 11:30:18 -0300 Subject: [PATCH 044/489] Fix #398 Cannot read property 'children' of null' error thrown by injected code --- src/utils/injectControls.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 9d6a5280b..56c34bae3 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -560,7 +560,7 @@ function createBottomPlayerBarContent() { setInterval(() => { const popup = document.querySelector('.ytmusic-menu-popup-renderer') let addLibrary - if (popup !== undefined) { + if (popup) { addLibrary = Array.from(popup.children).filter( (value) => value From 0f7b426a019bdd933384647889eb8c81891a5cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=B6hlmann?= Date: Sun, 1 Nov 2020 00:54:54 +0100 Subject: [PATCH 045/489] :bug: left-padding main window on linux --- src/utils/calcYTViewSize.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/calcYTViewSize.js b/src/utils/calcYTViewSize.js index d013494d0..987d743e2 100644 --- a/src/utils/calcYTViewSize.js +++ b/src/utils/calcYTViewSize.js @@ -18,8 +18,6 @@ function calculateYoutubeViewSize(store, window) { const isNiceTitleBarDisabled = store.get('titlebar-type', 'nice') !== 'nice' const titlebarType = store.get('titlebar-type') - const x = PADDING - if (window.isFullScreen()) return { x: 0, @@ -30,6 +28,7 @@ function calculateYoutubeViewSize(store, window) { if (isMac()) { // IS MAC + const x = PADDING const y = isNiceTitleBarDisabled ? PADDING + TITLE_BAR_HEIGHT_MAC : PADDING + TITLE_BAR_HEIGHT @@ -42,6 +41,7 @@ function calculateYoutubeViewSize(store, window) { } } else if (isLinux()) { // IS LINUX + const x = PADDING_LINUX const y = PADDING_LINUX return { @@ -52,6 +52,7 @@ function calculateYoutubeViewSize(store, window) { } } else { // IS WINDOWS + const x = PADDING const y = isNiceTitleBarDisabled ? PADDING : PADDING + TITLE_BAR_HEIGHT return { From 4f0e99ca5b233b8c9d4c52eb787bec8424ee5e58 Mon Sep 17 00:00:00 2001 From: Elle Date: Tue, 3 Nov 2020 00:48:39 -0500 Subject: [PATCH 046/489] Simplified if Statements --- src/providers/companionServer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/providers/companionServer.js b/src/providers/companionServer.js index 347b9a668..8ea14519b 100644 --- a/src/providers/companionServer.js +++ b/src/providers/companionServer.js @@ -378,7 +378,7 @@ function execCmd(cmd, value) { break case 'track-play': - if (infoPlayerProvider.getPlayerInfo().isPaused == true) { + if (infoPlayerProvider.getPlayerInfo().isPaused) { ipcMain.emit('media-command', { command: 'media-play-pause', value: true, @@ -387,7 +387,7 @@ function execCmd(cmd, value) { break case 'track-pause': - if (infoPlayerProvider.getPlayerInfo().isPaused == false) { + if (!infoPlayerProvider.getPlayerInfo().isPaused) { ipcMain.emit('media-command', { command: 'media-play-pause', value: true, From d28e2f4a224dd0cc7a61e0ce0445e97bca9a8d38 Mon Sep 17 00:00:00 2001 From: Nick Date: Fri, 6 Nov 2020 23:13:18 +0100 Subject: [PATCH 047/489] =?UTF-8?q?=E2=9C=A8=20Genius=20Lyrics=20Embeds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ⬆ Electron 10.1.5 ➕ postscribe --- main.js | 13 ++++- package-lock.json | 41 +++++++++----- package.json | 3 +- src/locales/en.json | 2 + src/pages/lyrics/lyrics.css | 9 +++ src/pages/lyrics/lyrics.html | 2 - src/pages/lyrics/lyrics.js | 92 +++++++++++++++++++++++++----- src/pages/settings/settings.html | 43 +++++++++++--- src/pages/settings/settings.js | 10 ++++ src/providers/geniusAuthServer.js | 93 +++++++++++++++++++++++++++++++ 10 files changed, 268 insertions(+), 40 deletions(-) create mode 100644 src/providers/geniusAuthServer.js diff --git a/main.js b/main.js index 655ce6ea6..7daca0f70 100644 --- a/main.js +++ b/main.js @@ -34,6 +34,7 @@ const settingsProvider = require('./src/providers/settingsProvider') const infoPlayerProvider = require('./src/providers/infoPlayerProvider') const rainmeterNowPlaying = require('./src/providers/rainmeterNowPlaying') const companionServer = require('./src/providers/companionServer') +const geniusAuthServer = require('./src/providers/geniusAuthServer') const discordRPC = require('./src/providers/discordRpcProvider') const mprisProvider = require('./src/providers/mprisProvider') /* Variables =========================================================================== */ @@ -871,6 +872,11 @@ async function createWindow() { else companionServer.stop() }) + settingsProvider.onDidChange('settings-genius-auth-server', (data) => { + if (data.newValue) geniusAuthServer.start() + else geniusAuthServer.stop() + }) + settingsProvider.onDidChange('settings-enable-player-bgcolor', () => { updateAccentColorPref() }) @@ -994,7 +1000,7 @@ async function createWindow() { app.quit() } }) - + ipcMain.on('show', (_) => { mainWindow.show() }) @@ -1344,6 +1350,7 @@ async function createWindow() { lyrics = null }) + // ENABLE FOR DEBUG // lyrics.webContents.openDevTools(); } } @@ -1996,6 +2003,10 @@ ipcMain.on('log', (dataMain, dataRenderer) => { if (settingsProvider.get('settings-companion-server')) companionServer.start() +if (settingsProvider.get('settings-genius-auth-server')) { + geniusAuthServer.start() +} + if (settingsProvider.get('settings-rainmeter-web-now-playing')) rainmeterNowPlaying.start() diff --git a/package-lock.json b/package-lock.json index f1bec4514..5f9413119 100644 --- a/package-lock.json +++ b/package-lock.json @@ -755,9 +755,9 @@ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, "boolean": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", - "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", + "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", "dev": true, "optional": true }, @@ -1427,9 +1427,9 @@ } }, "electron": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.1.tgz", - "integrity": "sha512-ZJtZHMr17AvvBosuA6XUmpehwAlGM4/n46Mw9BcyD8tpgdI6IQd0X5OU9meE3X3M8Y6Ja2Kr2udTMgtjvot2hA==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.5.tgz", + "integrity": "sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -1438,9 +1438,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.55.tgz", - "integrity": "sha512-Vd6xQUVvPCTm7Nx1N7XHcpX6t047ltm7TgcsOr4gFHjeYgwZevo+V7I1lfzHnj5BT5frztZ42+RTG4MwYw63dw==", + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", "dev": true } } @@ -3569,12 +3569,25 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, + "postscribe": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz", + "integrity": "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=", + "requires": { + "prescribe": ">=1.1.2" + } + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "prescribe": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz", + "integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" + }, "prettier": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", @@ -3951,13 +3964,13 @@ } }, "roarr": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", - "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "version": "2.15.4", + "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": { - "boolean": "^3.0.0", + "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", @@ -4001,7 +4014,7 @@ "scribble": { "version": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", "from": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" - }, + }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", diff --git a/package.json b/package.json index 9d6cf4f0f..908f75b5b 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ } }, "devDependencies": { - "electron": "^10.1.1", + "electron": "^10.1.5", "electron-builder": "^22.8.1", "electron-rebuild": "^2.0.3", "husky": "^4.3.0", @@ -52,6 +52,7 @@ "markdown": "^0.5.0", "node-fetch": "^2.6.1", "node-vibrant": "^3.1.5", + "postscribe": "^2.0.8", "qrcode-generator": "^1.4.4", "register-scheme": "0.0.2", "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", diff --git a/src/locales/en.json b/src/locales/en.json index 7f87eb15a..5938896ad 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -13,6 +13,7 @@ "LABEL_LOADING": "Loading...", "LABEL_LYRICS_NOT_FOUND": "Lyrics not found", "LABEL_LYRICS": "Lyrics", + "LABEL_LYRICS_GENIUS_AUTH": "You will need to Authorize your Genius account to YTMDesktop (http://localhost:9864/login) Or disable Genius lyrics at \"Settings > Integrations > Enable Genius Lyrics\"", "LABEL_MINIPLAYER": "Miniplayer", "LABEL_NOTIFICATION_DISLIKED": "You disliked this song", "LABEL_NOTIFICATION_LIKED": "You liked this song", @@ -74,6 +75,7 @@ "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media keys only control app volume", "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Enable Genius Lyrics", "LABEL_SETTINGS": "Settings", "LABEL_SHUTDOWN": "Shutdown", "LYRICS": "Lyrics", diff --git a/src/pages/lyrics/lyrics.css b/src/pages/lyrics/lyrics.css index 33bd9e5d6..badec0e6e 100644 --- a/src/pages/lyrics/lyrics.css +++ b/src/pages/lyrics/lyrics.css @@ -52,4 +52,13 @@ body { .hide { display: none; +} + +.overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 2; } \ No newline at end of file diff --git a/src/pages/lyrics/lyrics.html b/src/pages/lyrics/lyrics.html index 301cde675..b66c0f64d 100644 --- a/src/pages/lyrics/lyrics.html +++ b/src/pages/lyrics/lyrics.html @@ -27,8 +27,6 @@
- - diff --git a/src/pages/lyrics/lyrics.js b/src/pages/lyrics/lyrics.js index be0082888..ea3f46c41 100644 --- a/src/pages/lyrics/lyrics.js +++ b/src/pages/lyrics/lyrics.js @@ -4,16 +4,17 @@ const __ = require('../../providers/translateProvider') const infoPlayerProvider = require('electron').remote.require( './src/providers/infoPlayerProvider' ) +const settingsProvider = require('../../providers/settingsProvider') const elementLyric = document.getElementById('lyric') const elementLyricSource = document.getElementById('lyric-source') -let lastId, target, toggled +let lastId, target, toggled, geniusAuth loadingLyrics() document.getElementById('content').addEventListener('dblclick', (_) => { - this.scrollTo(0, target) + document.getElementById('content').scrollTo(0, target) }) document.getElementById('content').addEventListener('scroll', (_) => { @@ -59,33 +60,62 @@ function getLyric(artist, song, id) { toggled = true loadingLyrics() - retrieveOVHData(artist, song) - .then((success) => setLyrics('OVH', success, true)) - .catch((_) => { + // Genius will be skipped if not enabled. + retrieveGeniusData(artist, song) + .then((success) => setLyrics('Genius', success, true)) + .catch((_) => retrieveVagalumeData(artist, song) .then((success_) => setLyrics('Vagalume', success_, true) ) - .catch((_) => { + .catch((_) => retrieveKsoftData(artist, song) .then((success) => setLyrics('KSoft', success, true) ) - .catch((error) => { - elementLyric.innerText = error - setLyrics('-', error, true) - }) - }) - }) + .catch((_) => + retrieveOVHData(artist, song) + .then((success) => + setLyrics('OVH', success, true) + ) + .catch((error) => { + elementLyric.innerText = error + setLyrics('-', error, true) + }) + ) + ) + ) } } else elementLyric.innerText = __.trans('LABEL_PLAY_MUSIC') } function setLyrics(source, lyrics, hasLoaded) { + if (source === 'Genius') { + // Lyrics in Genius is an object check here; https://docs.genius.com/#search-h2 "response: { hits: { result: { ..." + elementLyric.innerText = lyrics.full_title + const lyricsElementId = `rg_embed_link_${lyrics.id}` + + const node = document.createElement('div') + node.id = 'overlay' + document.getElementById('content').appendChild(node) + + const postscribe = require('postscribe') + postscribe( + '#lyric', + ` `, + { + done: () => + (document.getElementsByClassName( + 'rg_embed music' + )[0].style.color = 'black'), + } + ) + } else { + elementLyric.innerText = lyrics + infoPlayerProvider.updateLyrics(source, lyrics, hasLoaded) + } elementLyricSource.innerText = `Lyrics provided by ${source}` - elementLyric.innerText = lyrics document.getElementById('content').scrollTop = 0 - infoPlayerProvider.updateLyrics(source, lyrics, hasLoaded) } function loadingLyrics() { @@ -231,3 +261,37 @@ function retrieveVagalumeData(artist, track) { .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) }) } + +function retrieveGeniusData(artist, track) { + geniusAuth = settingsProvider.get('genius-auth') + + return new Promise(async (resolve, reject) => { + //first it will check if Genius is enabled and is authorized. + if (!settingsProvider.get('settings-genius-auth-server')) { + reject(__.trans('LABEL_LYRICS_NOT_FOUND')) + } else if (!(geniusAuth.access_token || geniusAuth.token_type)) { + reject(__.trans('LABEL_LYRICS_GENIUS_AUTH')) + } else { + // Documentation: https://docs.genius.com/#search-h2 + await fetch( + `https://api.genius.com/search?q=${removeAccents( + track + )} - ${removeAccents(artist)}`, + { + timeout: 3000, + headers: { + Authorization: `${geniusAuth.token_type} ${geniusAuth.access_token}`, + }, + } + ) + .then((res) => res.json()) + .then((json) => { + // Just get the first result, should be good for now? + if (json && json.response.hits[0]) { + resolve(json.response.hits[0].result) + } else reject(__.trans('LABEL_LYRICS_NOT_FOUND')) + }) + .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) + } + }) +} diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 1ed529c51..43f868067 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -331,7 +331,8 @@ Čeština + Magyar + @@ -701,12 +702,12 @@ > + + +
@@ -757,7 +758,6 @@ i18n="i18n_LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT" >
@@ -943,6 +943,33 @@ + + + + + + + +
+ +
+ + diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 0b6cc2863..54b275366 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -16,6 +16,10 @@ const elementBtnLastFmLogin = document.getElementById('btn-last-fm-login') const elementBtnOpenCompanionServer = document.getElementById( 'btn-open-companion-server' ) +const elementBtnOpenGeniusAuthServer = document.getElementById( + 'btn-open-genius-auth-server' +) + const elementBtnDiscordSettings = document.getElementById('btn-discord-setting') const elementBtnShortcutButtonsSettings = document.getElementById( @@ -113,6 +117,7 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-start-on-boot', 'click', null) initElement('settings-start-minimized', 'click', null) initElement('settings-companion-server', 'click', checkCompanionStatus) + initElement('settings-genius-auth-server', 'click', null) initElement('settings-companion-server-protect', 'click', null) initElement('settings-windows10-media-service', 'click', () => { checkWindows10ServiceStatus() @@ -238,6 +243,11 @@ if (elementBtnOpenCompanionServer) await shell.openExternal(`http://localhost:9863`) }) +if (elementBtnOpenGeniusAuthServer) + elementBtnOpenGeniusAuthServer.addEventListener('click', async () => { + await shell.openExternal(`http://localhost:9864/login`) + }) + if (elementBtnAppRelaunch) elementBtnAppRelaunch.addEventListener('click', () => { relaunch() diff --git a/src/providers/geniusAuthServer.js b/src/providers/geniusAuthServer.js new file mode 100644 index 000000000..dee0c881d --- /dev/null +++ b/src/providers/geniusAuthServer.js @@ -0,0 +1,93 @@ +const { ipcMain } = require('electron') +const http = require('http') +const os = require('os') +const url = require('url') +const networkInterfaces = os.networkInterfaces() +const settingsProvider = require('../providers/settingsProvider') + +const ip = '0.0.0.0' +const port = 9864 + +const pattIgnoreInterface = /(Loopback|lo$|virtual|wsl|vEthernet|Default Switch|VMware|Adapter|Hamachi)\w*/gim +let serverInterfaces = [] + +function fetchNetworkInterfaces() { + serverInterfaces = Object.entries(networkInterfaces) + .filter(([interfaces]) => !pattIgnoreInterface.test(interfaces)) + .map(([name, value]) => { + value = value.filter( + (data) => data.family === 'IPv4' && data.internal === false + ) + return { + name: name, + ip: value.length ? value[0].address : '', + } + }) +} + +const serverFunction = (req, res) => { + const realUrl = + (req.connection.encrypted ? 'https' : 'http') + + '://' + + req.headers.host + + req.url + const urlObj = url.parse(realUrl, true) + if (urlObj.pathname === '/') { + res.setHeader('Content-Type', 'text/html; charset=utf-8') + res.setHeader('Access-Control-Allow-Origin', '*') + res.writeHead(200) + res.write(` + + YTMDesktop Genius authenticating... + + +

Authenticating..

+ + `) + + if (urlObj.query['access_token']) { + console.log(urlObj.query.access_token) + console.log(urlObj.query.token_type) + settingsProvider.set('genius-auth', urlObj.query) + } + res.end() + } else if (req.url === '/login') { + const clientID = `KBdWh3QGsSZI1joBSRmO3KvhBkanqt5hrofKo9rHjvRAZ4VybE4Fxqj4pRqKMrI6` + const redirectURI = `http://localhost:9864/` + res.writeHead(301, { + Location: `http://api.genius.com/oauth/authorize?response_type=token&client_id=${clientID}&redirect_uri=${redirectURI}`, + }) + res.end() + } +} + +const server = http.createServer(serverFunction) + +function start() { + try { + server.listen(port, ip) + fetchNetworkInterfaces() + ipcMain.emit('log', { + type: 'info', + data: `Genius Auth Server listening on port ${port}`, + }) + } catch (error) { + ipcMain.emit('log', { + type: 'warn', + data: `Error to start server on port ${port}.\n cause: ${error}`, + }) + } +} + +function stop() { + server.close() + console.log('Genius Auth Server has stopped') +} + +module.exports = { + start: start, + stop: stop, +} From 364ac0dc69afe8e58b7dcc4dab65a7d2edb19bc8 Mon Sep 17 00:00:00 2001 From: Nick Date: Fri, 6 Nov 2020 23:50:10 +0100 Subject: [PATCH 048/489] =?UTF-8?q?=F0=9F=8D=B1=20Genius=20variables=20to?= =?UTF-8?q?=20STORE=5FVARIABLES.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- STORE_VARIABLES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index b6f7782c9..2dc625440 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -18,6 +18,7 @@ | `settings-start-minimized` | Boolean | `true` or `false` | `false` | Open player minimized in tray | | `settings-clipboard-read` | Boolean | `true` or `false` | `false` | Reads the clipboard for youtube links | | `settings-companion-server` | Boolean | `true` or `false` | `false` | Companion Server to control the player remotely | +| `settings-genius-auth-server` | Boolean | `true` or `false` | `false` | Turns off the authentication server & Genius lyrics provider | | `settings-companion-server-protect` | Boolean | `true` or `false` | `true` | Enable or disable protection of companion | | `settings-companion-server-token` | String | `String token` | GENERATED_TOKEN | Token to prevent anonymous control of the player | | `settings-enable-double-tapping-show-hide` | Boolean | `true` or `false` | `true` | Enable or disable double-tapping to show/hide main window | @@ -36,3 +37,8 @@ | `window-maximized` | Boolean | `true` or `false` | `false` | Value to define if window is maximized or not | | `window-size` | Object | `width` and `heigth` | `{ width: x, heigth: y }` | Sizes of the main window | | `titlebar-type` | String | `nice` or `system` or `none` | `nice` | Type of frame titlebar | + +## Variables +| Key | Type | Values | Default | Description | +| ------------------------------------- | ------- | ------------------------------ | ---------------------------- | --------------------------------------------- | +| `genius-auth` | Object | `access_token` and `token_type`| empty | Authorization token & type to make requests | From 6b5a368fc11fd49d54935af11ae95c03407bb09a Mon Sep 17 00:00:00 2001 From: Todd Wolfson Date: Wed, 9 Dec 2020 15:44:23 -0800 Subject: [PATCH 049/489] :sparkles: added forward navigation --- src/utils/injectControls.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 9411906e5..fe8eb6d6c 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -270,22 +270,40 @@ function createTopMiddleContent() { )[0] // HISTORY BACK - const element = document.createElement('i') - element.id = 'ytmd_history_back' - element.classList.add( + const back_element = document.createElement('i') + back_element.id = 'ytmd_history_back' + back_element.classList.add( 'material-icons', 'pointer', 'shine', 'ytmd-icons', 'center-content' ) - element.innerText = 'keyboard_backspace' + back_element.innerText = 'keyboard_backspace' - element.addEventListener('click', function () { + back_element.addEventListener('click', function () { history.go(-1) }) - center_content.prepend(element) + // HISTORY FORWARD + const forward_element = document.createElement('i') + forward_element.id = 'ytmd_history_forward' + forward_element.classList.add( + 'material-icons', + 'pointer', + 'shine', + 'ytmd-icons', + 'center-content' + ) + forward_element.style.cssText = 'transform: rotate(180deg);' + forward_element.innerText = 'keyboard_backspace' + + forward_element.addEventListener('click', function () { + history.forward() + }) + + center_content.prepend(forward_element) + center_content.prepend(back_element) } catch (err) { console.error(err) ipcRenderer.send('log', { From 9b61024eb95b56f80a25fe3459108c100cdc8761 Mon Sep 17 00:00:00 2001 From: Song Li Date: Mon, 21 Dec 2020 16:14:08 +0800 Subject: [PATCH 050/489] =?UTF-8?q?=F0=9F=8C=90=20update=20zh=20translatio?= =?UTF-8?q?n=20according=20to=20en=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/zh.json | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/locales/zh.json b/src/locales/zh.json index a2a36a6a3..3c8ed77c9 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -11,9 +11,10 @@ "LABEL_EXIT": "退出", "LABEL_GUEST": "匿名模式", "LABEL_LOADING": "载入中...", - "LABEL_LYRICS": "歌词", "LABEL_LYRICS_NOT_FOUND": "找不到歌词", - "LABEL_MINIPLAYER": "Mini播放器", + "LABEL_LYRICS": "歌词", + "LABEL_LYRICS_GENIUS_AUTH": "YTMDesktop 需要 Genius 账号授权(http://localhost:9864/login)或者禁用 Genius 歌词 \"设置 > 集成 > 启用 Genius 歌词\"", + "LABEL_MINIPLAYER": "Mini 播放器", "LABEL_NOTIFICATION_DISLIKED": "你不喜欢这首歌", "LABEL_NOTIFICATION_LIKED": "你喜欢这首歌", "LABEL_PLAY_MUSIC": "播放音乐", @@ -23,7 +24,7 @@ "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "播放暂停的时候显示曲目", "LABEL_SETTINGS_DISCORD_SHOW_TIME": "显示曲目时间", "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "显示标题", - "LABEL_SETTINGS_DISCORD": "Discord设置", + "LABEL_SETTINGS_DISCORD": "Discord 设置", "LABEL_SETTINGS_RELAUNCH": "应用并重启", "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "隐藏/显示主窗口", "LABEL_SETTINGS_TAB_ABOUT": "关于", @@ -37,7 +38,7 @@ "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "退出时保存当前播放队列", "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "自定义主题", "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "禁用硬件加速", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord集成", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord 集成", "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "关闭窗口时保持后台播放", "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "页面缩放", "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "选择输出音频设备", @@ -52,29 +53,33 @@ "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "开启最小化", "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "开机启动 (实验功能, Mac/Win)", "LABEL_SETTINGS_TAB_GENERAL": "偏好设置", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在Windows 10音量栏旁边显示曲目信息", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "启用Windows 10媒体服务", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在 Windows 10 音量栏旁边显示曲目信息", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "启用 Windows 10 媒体服务", "LABEL_SETTINGS_TAB_INTEGRATION": "集成", "LABEL_SETTINGS_TAB_INTEGRATIONS": "集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "绑定LAST FM账号", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM 集成", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "绑定 LAST FM 账号", "LABEL_SETTINGS_TAB_MACOS": "Mac OS X", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Mini播放器窗口置顶", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mini播放器控制显示锁定", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Mini播放器绘制设置", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允许调整Mini播放器大小", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任务栏显示Mini播放器", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Mini 播放器窗口置顶", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mini 播放器控制显示锁定", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Mini 播放器绘制设置", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允许调整 Mini 播放器大小", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任务栏显示 Mini 播放器", "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini播放器", "LABEL_SETTINGS_TAB_PLAYBACK": "播放", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "阅读剪贴板的YouTube链接", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "阅读剪贴板中的 YouTube 链接", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "全局", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "本地", "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "按任意键", "LABEL_SETTINGS_TAB_SHORTCUTS": "快捷键", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "音量媒体按键仅控制 app 音量", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "切换音量控制 '%' 至 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "启用 Genius 歌词", "LABEL_SETTINGS": "设置", + "LABEL_SHUTDOWN": "关闭", "LYRICS": "歌词", - "MEDIA_CONTROL_MINIPLAYER": "打开/关闭Mini播放器", + "MEDIA_CONTROL_MINIPLAYER": "打开/关闭 Mini 播放器", "MEDIA_CONTROL_MUTE_UNMUTE": "静音", "MEDIA_CONTROL_NEXT": "下一首", "MEDIA_CONTROL_PAUSE": "暂停", @@ -89,12 +94,12 @@ "MEDIA_CONTROL_THUMBS_UP": "赞", "MEDIA_CONTROL_VOLUME_DOWN": "减小音量", "MEDIA_CONTROL_VOLUME_UP": "增大音量", - "MINIPLAYER": "Mini播放器", + "MINIPLAYER": "Mini 播放器", "PREFIX_OPEN_CLOSE": "打开/关闭", "REMOVE_FROM_LIBRARY": "从库中移除", "SHORTCUT_BUTTONS": "用户界面行为", "SHOW": "显示", - "SKIP_TRACK_MARKED_DISLIKED": "跳过“不喜欢”标记", + "SKIP_TRACK_MARKED_DISLIKED": "跳过\"不喜欢\"标记", "SKIP_TRACK_SHORTER_THAN": "跳过播放长度短于", "TRAY_ICON": "任务栏图标", "WANT_PLAY_THIS_LINK": "要播放本链接吗?" From e43efc3e0c1f0989f6fdbfa253fc76af880f6fa5 Mon Sep 17 00:00:00 2001 From: yesyesufcurs <31587952+yesyesufcurs@users.noreply.github.com> Date: Sun, 27 Dec 2020 22:49:09 +0100 Subject: [PATCH 051/489] =?UTF-8?q?=F0=9F=8C=90=20Updated=20Dutch=20(nl)?= =?UTF-8?q?=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/nl.json | 89 +++++++++++++++++++++++++++++++++------------ 1 file changed, 65 insertions(+), 24 deletions(-) diff --git a/src/locales/nl.json b/src/locales/nl.json index ddf30fed8..c1dc11f8a 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -1,65 +1,106 @@ { - "DOUBLE_CLICK_TO_RESET_POSITION": "DOUBLE_CLICK_TO_RESET_POSITION", + "ADD_TO_LIBRARY": "Voeg toe aan bibliotheek", + "ADD_TO_PLAYLIST": "Voeg toe aan afspeellijst", + "ALWAYS_ASK_WHEN_READ_LINK": "Altijd vragen wanneer de link gelezen wordt", + "DOUBLE_CLICK_TO_RESET_POSITION": "Dubbel klik om de positie te herstellen", + "LABEL_ALSO": "Ook", + "LABEL_AUDIO": "Audio", + "LABEL_CANCEL": "Annuleer", + "LABEL_CHANGELOG": "Wat is er nieuw", + "LABEL_DISABLE": "Uitschakelen", "LABEL_EXIT": "Afsluiten", "LABEL_GUEST": "Gast", "LABEL_LOADING": "Bezig met laden...", - "LABEL_LYRICS": "Songtekst", "LABEL_LYRICS_NOT_FOUND": "Er is geen songtekst beschikbaar", + "LABEL_LYRICS": "Songtekst", + "LABEL_LYRICS_GENIUS_AUTH": "Je zult je Genius account moeten autoriseren met YTMDesktop (http://localhost:9864/login) Of Genius lyrics uit moeten schakelen in \"Instelling > Integraties > Schakel Genius Lyrics in\"", "LABEL_MINIPLAYER": "Minispeler", + "LABEL_NOTIFICATION_DISLIKED": "Je vondt dit liedje niet leuk", + "LABEL_NOTIFICATION_LIKED": "Je vondt dit liedje leuk", "LABEL_PLAY_MUSIC": "Muziek afspelen", - "LABEL_SETTINGS": "Instellingen", + "LABEL_SAVE": "Opslaan", + "LABEL_SAVED": "Opgeslagen", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Laat artiesten zien", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Laat track zien wanneer afspelen is gepauzeerd", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Laat track tijd zien", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Laat titel zien", + "LABEL_SETTINGS_DISCORD": "Discord instellingen", "LABEL_SETTINGS_RELAUNCH": "Toepassen en opnieuw starten", "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Hoofdvenster tonen/verbergen", "LABEL_SETTINGS_TAB_ABOUT": "Over", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Laat track voortgang zien op taakbalk", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Verf achtergrond met album kleur", "LABEL_SETTINGS_TAB_APPEARENCE": "Uiterlijk", - "LABEL_SETTINGS_TAB_GENERAL": "Algemeen", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Bedienserver", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Geen apparaten gevonden", "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Klik hier en scan de QR-code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Bescherm bedienserver met wachtwoord", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Bedienserver", "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Doorgaan waar je gebleven was", "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Aangepast thema", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Schakel hardware versnelling uit", "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Afspelen op achtergrond na sluiten van venster", "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Paginazoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "taal", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Titelbalkstijl", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio uitvoer", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Taal", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Songtekst aanbieder", "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Leuk", "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Titelbalk uitschakelen", "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Systeem", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Titelbalkstijl", "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Bedienen vanuit systeemvak (alleen op macOS)", "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Meldingen tonen", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Automatisch opstarten (experimenteel - alleen op macOS en Win32)", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start geminimaliseerd", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Automatisch opstarten (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "Algemeen", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Laat track informatie zien naast de Windows 10 volume bar", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Schakel Windows 10 media service in", "LABEL_SETTINGS_TAB_INTEGRATION": "Integratie", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integraties", "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Opslaan en goedkeuren", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", "LABEL_SETTINGS_TAB_MACOS": "macOS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Altijd bovenaan", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Laat altijd bedieningsknoppen zien", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Verf bedieningsknoppen met albumkleur", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Sta herschalen toe", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Laat zien op taakbalk", "LABEL_SETTINGS_TAB_MINIPLAYER": "Minispeler", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL", + "LABEL_SETTINGS_TAB_PLAYBACK": "Afspelen", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Klembord monitoren op YouTube-links", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Sneltoetsen", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globaal", "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokaal", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Druk op een willekeurige toets", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Sneltoetsen", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media toetsen bedienen alleen app volume", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Schakel volume bediening van '%' naar 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Schakel Genius Lyrics in", + "LABEL_SETTINGS": "Instellingen", + "LABEL_SHUTDOWN": "Uitschakelen", + "LYRICS": "Songteksten", + "MEDIA_CONTROL_MINIPLAYER": "Open/Sluit minispeler", "MEDIA_CONTROL_MUTE_UNMUTE": "Dempen/Ontdempen", "MEDIA_CONTROL_NEXT": "Volgende", "MEDIA_CONTROL_PAUSE": "Pauzeren", - "MEDIA_CONTROL_PLAY": "Afspelen", "MEDIA_CONTROL_PLAY_PAUSE": "Afspelen/Pauzeren", + "MEDIA_CONTROL_PLAY": "Afspelen", "MEDIA_CONTROL_PREVIOUS": "Vorige", "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Wachtrij openen/sluiten", "MEDIA_CONTROL_REPEAT": "Herhalen", "MEDIA_CONTROL_SEARCH": "Zoeken", "MEDIA_CONTROL_SHUFFLE": "Willekeurig", "MEDIA_CONTROL_THUMBS_DOWN": "Vind ik niet leuk", - "MEDIA_CONTROL_THUMBS_UP": "Vind ik leuk" + "MEDIA_CONTROL_THUMBS_UP": "Vind ik leuk", + "MEDIA_CONTROL_VOLUME_DOWN": "Volume verlagen", + "MEDIA_CONTROL_VOLUME_UP": "Volume verhogen", + "MINIPLAYER": "Minispeler", + "PREFIX_OPEN_CLOSE": "Openen/Sluiten", + "REMOVE_FROM_LIBRARY": "Verwijder uit bibliotheek", + "SHORTCUT_BUTTONS": "UI acties", + "SHOW": "Laat zien", + "SKIP_TRACK_MARKED_DISLIKED": "Sla tracks gemarkeerd als 'Niet leuk' over", + "SKIP_TRACK_SHORTER_THAN": "Sla tracks over korter dan", + "TRAY_ICON": "tray icoon", + "WANT_PLAY_THIS_LINK": "Wil je deze koppeling afspelen?" } From 73f8b0796402a4ae683d07f9c3f801fbf3a60708 Mon Sep 17 00:00:00 2001 From: Chad McElligott Date: Fri, 8 Jan 2021 10:34:53 -0600 Subject: [PATCH 052/489] Update electron to v11 and other minor dep updates Related to #559 --- package-lock.json | 965 +++++++++++++++++++++++++++++----------------- package.json | 24 +- yarn.lock | 824 +++++++++++++++++++++++++++------------ 3 files changed, 1202 insertions(+), 611 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f9413119..50eeda23a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,18 +11,18 @@ "dev": true }, "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -275,9 +275,9 @@ } }, "@malept/cross-spawn-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz", - "integrity": "sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -366,6 +366,18 @@ "defer-to-connect": "^1.0.1" } }, + "@types/cacheable-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", + "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -379,9 +391,24 @@ "dev": true }, "@types/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz", + "integrity": "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", + "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", "dev": true, "requires": { "@types/node": "*" @@ -399,9 +426,9 @@ "dev": true }, "@types/node": { - "version": "14.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz", - "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==", + "version": "12.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", + "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==", "dev": true }, "@types/parse-json": { @@ -410,15 +437,24 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/semver": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz", "integrity": "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" }, "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "version": "15.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz", + "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -465,9 +501,9 @@ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -531,21 +567,21 @@ "dev": true }, "app-builder-lib": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.1.tgz", - "integrity": "sha512-D/ac1+vuGIAAwEeTtXl8b+qWl7Gz/IQatFyzYl2ocag/7N8LqUjKzZFJJISQPWt6PFDPDH0oCj8/GMh63aV0yw==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz", + "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.1", + "builder-util": "22.9.1", "builder-util-runtime": "8.7.2", "chromium-pickle-js": "^0.2.0", - "debug": "^4.2.0", - "ejs": "^3.1.3", - "electron-publish": "22.8.1", + "debug": "^4.3.0", + "ejs": "^3.1.5", + "electron-publish": "22.9.1", "fs-extra": "^9.0.1", "hosted-git-info": "^3.0.5", "is-ci": "^2.0.0", @@ -561,9 +597,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -662,9 +698,9 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "atomically": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.3.2.tgz", - "integrity": "sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" }, "aws-sign2": { "version": "0.7.0", @@ -673,9 +709,9 @@ "dev": true }, "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "backo2": { @@ -840,9 +876,9 @@ } }, "builder-util": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.1.tgz", - "integrity": "sha512-LZG+E1xszMdut5hL5h7RkJQ7yOsQqdhJYgn1wvOP7MmF3MoUPRNDiRodLpYiWlaqZmgYhcfaipR/Mb8F/RqK8w==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz", + "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", "dev": true, "requires": { "7zip-bin": "~5.0.3", @@ -852,7 +888,7 @@ "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "debug": "^4.2.0", + "debug": "^4.3.0", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "js-yaml": "^3.14.0", @@ -862,9 +898,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -881,6 +917,12 @@ "sax": "^1.2.4" } }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true + }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -897,9 +939,9 @@ }, "dependencies": { "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" @@ -947,9 +989,9 @@ } }, "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chromium-pickle-js": { @@ -980,20 +1022,20 @@ } }, "cli-spinners": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz", - "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", "dev": true }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { @@ -1104,9 +1146,9 @@ } }, "conf": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/conf/-/conf-7.1.1.tgz", - "integrity": "sha512-njOu3so+7zcR1oQzXKP0mpPMKRf+riaaWmxBUhgP/c9k32PuDX/SQ+N6cO6ZylY6NOZGPwgzicGxdlRGXUOkSQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz", + "integrity": "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==", "requires": { "ajv": "^6.12.2", "atomically": "^1.3.1", @@ -1249,12 +1291,6 @@ "ms": "^2.1.1" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -1333,37 +1369,22 @@ "optional": true }, "discord-rpc": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.3.tgz", - "integrity": "sha512-V081xCPFm8YDNLJYJv3Vo2BrCv/Knh0mdvq37RIN1keh7VGpf7s1kypaFDIYiuUmAlZXI5pupthF5hCrx/CzhA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz", + "integrity": "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==", "requires": { - "node-fetch": "2.6.0", - "ws": "7.1.2" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "ws": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.2.tgz", - "integrity": "sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg==", - "requires": { - "async-limiter": "^1.0.0" - } - } + "node-fetch": "^2.6.1", + "ws": "^7.3.1" } }, "dmg-builder": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.1.tgz", - "integrity": "sha512-WeGom1moM00gBII6swljl4DQGrlJuEivoUhOmh8U9p1ALgeJL+EiTHbZFERlj8Ejy62xUUjURV+liOxUKmJFWg==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz", + "integrity": "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==", "dev": true, "requires": { - "app-builder-lib": "22.8.1", - "builder-util": "22.8.1", + "app-builder-lib": "22.9.1", + "builder-util": "22.9.1", "fs-extra": "^9.0.1", "iconv-lite": "^0.6.2", "js-yaml": "^3.14.0", @@ -1376,9 +1397,9 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "requires": { "is-obj": "^2.0.0" } @@ -1427,44 +1448,36 @@ } }, "electron": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.5.tgz", - "integrity": "sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz", + "integrity": "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==", "dev": true, "requires": { "@electron/get": "^1.0.1", "@types/node": "^12.0.12", "extract-zip": "^1.0.3" - }, - "dependencies": { - "@types/node": { - "version": "12.19.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", - "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", - "dev": true - } } }, "electron-builder": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.1.tgz", - "integrity": "sha512-Hs7KTMq1rGSvT0fwGKXrjbLiJkK6sAKDQooUSwklOkktUgWi4ATjlP0fVE3l8SmS7zcLoww2yDZonSDqxEFhaQ==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz", + "integrity": "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==", "dev": true, "requires": { "@types/yargs": "^15.0.5", - "app-builder-lib": "22.8.1", + "app-builder-lib": "22.9.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.1", + "builder-util": "22.9.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "dmg-builder": "22.8.1", + "dmg-builder": "22.9.1", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", "read-config-file": "6.0.0", "sanitize-filename": "^1.6.3", - "update-notifier": "^4.1.0", - "yargs": "^15.4.1" + "update-notifier": "^4.1.1", + "yargs": "^16.0.3" } }, "electron-canvas-to-buffer": { @@ -1478,19 +1491,19 @@ "integrity": "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" }, "electron-fetch": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.1.tgz", - "integrity": "sha512-Vmzb6Lx/jghH5ZNI1ParfqQPKePMncI+Sg5oA92HBVa2TGUcEQJ/noU/zdf4gpugk/imh0qu3xcNY5C/5R8nlg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz", + "integrity": "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==", "requires": { "encoding": "^0.1.13" } }, "electron-google-analytics": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.1.tgz", - "integrity": "sha512-uOk1GbqckcgDVgo4XPWk1bfTeEf6w9NN65kDTX9r95Ygr/77BF1ErvGjv3+Okdetf+KGRt8banMGUbAeCijNvQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz", + "integrity": "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==", "requires": { - "electron-fetch": "^1.6.0", + "electron-fetch": "^1.7.1", "uuid": "^8.3.0" } }, @@ -1516,19 +1529,19 @@ } }, "electron-log": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.4.tgz", - "integrity": "sha512-CXbDU+Iwi+TjKzugKZmTRIORIPe3uQRqgChUl19fkW/reFUn5WP7dt+cNGT3bkLV8xfPilpkPFv33HgtmLLewQ==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz", + "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" }, "electron-publish": { - "version": "22.8.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.1.tgz", - "integrity": "sha512-zqI66vl7j1CJZJ60J+1ez1tQNQeuqVspW44JvYDa5kZbM5wSFDAJFMK9RWHOqRF1Ezd4LDeiBa4aeTOwOt9syA==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz", + "integrity": "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.1", + "builder-util": "22.9.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", "fs-extra": "^9.0.1", @@ -1545,9 +1558,9 @@ } }, "electron-rebuild": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.0.3.tgz", - "integrity": "sha512-I8Oeey9afU+trFLd8/qRRiHC083CCoBnmw3q0qQaRFsg0OzMaeJQn7Nl6EYKPpntuQ/3yOqZQ7b3ObNuETN/Ig==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz", + "integrity": "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==", "dev": true, "requires": { "@malept/cross-spawn-promise": "^1.1.0", @@ -1555,85 +1568,146 @@ "debug": "^4.1.1", "detect-libc": "^1.0.3", "fs-extra": "^9.0.1", - "node-abi": "^2.19.1", + "got": "^11.7.0", + "lzma-native": "^6.0.1", + "node-abi": "^2.19.2", "node-gyp": "^7.1.0", "ora": "^5.1.0", + "tar": "^6.0.5", "yargs": "^16.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "@sindresorhus/is": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", + "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", "dev": true }, - "cliui": { + "@szmarczak/http-timer": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", + "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-request": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.1.tgz", - "integrity": "sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ==", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", + "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^2.0.0" } }, - "strip-ansi": { + "decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", + "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" } }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "got": { + "version": "11.8.1", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.1.tgz", + "integrity": "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, - "y18n": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.1.tgz", - "integrity": "sha512-/jJ831jEs4vGDbYPQp4yGKDYPSCCEQ45uZWJHE1AoYBzqdZi8+LDWas0z4HrmJXmKdpFsTiowSHXdxyFhpmdMg==", + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA==", + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "dev": true, "requires": { - "cliui": "^7.0.0", - "escalade": "^3.0.2", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.1", - "yargs-parser": "^20.0.0" + "json-buffer": "3.0.1" } }, - "yargs-parser": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", - "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } } } }, "electron-store": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-6.0.0.tgz", - "integrity": "sha512-ujb0a/6gxMxb9vOQ2BjOehK9VCyq5OKvttekd9v/tohA9oBHnAdV+Vxu4eoRh+/F9ShPFhcvDZkMdqO5i+TXUw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz", + "integrity": "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==", "requires": { - "conf": "^7.1.1", + "conf": "^7.1.2", "type-fest": "^0.16.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + } } }, "electron-updater": { @@ -1788,9 +1862,9 @@ "optional": true }, "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-goat": { @@ -1947,12 +2021,12 @@ } }, "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", "dev": true, "requires": { - "semver-regex": "^2.0.0" + "semver-regex": "^3.1.2" } }, "forever-agent": { @@ -1990,12 +2064,12 @@ } }, "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "requires": { - "minipass": "^3.0.0" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -2248,9 +2322,9 @@ "optional": true }, "hosted-git-info": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz", - "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -2273,19 +2347,29 @@ "sshpk": "^1.7.0" } }, + "http2-wrapper": { + "version": "1.0.0-beta.5.2", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", + "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, "husky": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.0.tgz", - "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz", + "integrity": "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==", "dev": true, "requires": { "chalk": "^4.0.0", "ci-info": "^2.0.0", "compare-versions": "^3.6.0", "cosmiconfig": "^7.0.0", - "find-versions": "^3.2.0", + "find-versions": "^4.0.0", "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", + "pkg-dir": "^5.0.0", "please-upgrade-node": "^3.2.0", "slash": "^3.0.0", "which-pm-runs": "^1.0.0" @@ -2330,6 +2414,15 @@ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "image-to-base64": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz", @@ -2339,9 +2432,9 @@ } }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2382,9 +2475,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "is-arguments": { @@ -2413,6 +2506,15 @@ "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -2595,9 +2697,9 @@ "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" }, "js-base64": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.4.5.tgz", - "integrity": "sha512-Ub/AANierdcT8nm4ndBn3KzpZQ3MdHX4a+bwoVdjgeHCZ0ZEcP+UB4nmR4Z5lR6SH3Y+qAPmgVR0RxKJNHNHEg==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", + "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" }, "js-tokens": { "version": "4.0.0", @@ -2793,6 +2895,18 @@ "yallist": "^4.0.0" } }, + "lzma-native": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", + "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "dev": true, + "requires": { + "node-addon-api": "^1.6.0", + "node-pre-gyp": "^0.11.0", + "readable-stream": "^2.3.5", + "rimraf": "^2.7.1" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -2930,22 +3044,30 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "requires": { - "yallist": "^4.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -3008,15 +3130,46 @@ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "optional": true }, + "needle": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", + "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "node-abi": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", - "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", + "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", "dev": true, "requires": { "semver": "^5.4.1" @@ -3041,31 +3194,39 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-gyp": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.0.tgz", - "integrity": "sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.3", - "nopt": "^4.0.3", + "nopt": "^5.0.0", "npmlog": "^4.1.2", "request": "^2.88.2", - "rimraf": "^2.6.3", + "rimraf": "^3.0.2", "semver": "^7.3.2", - "tar": "^6.0.1", + "tar": "^6.0.2", "which": "^2.0.2" }, "dependencies": { "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" } } } @@ -3076,6 +3237,63 @@ "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==", "optional": true }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "dependencies": { + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, "node-vibrant": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz", @@ -3137,6 +3355,15 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, "npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", @@ -3148,6 +3375,23 @@ "pify": "^3.0.0" } }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, "npm-run-path": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", @@ -3503,40 +3747,49 @@ } }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^5.0.0" }, "dependencies": { "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" } }, "path-exists": { @@ -3589,9 +3842,9 @@ "integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" }, "prettier": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", - "integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", "dev": true }, "pretty-quick": { @@ -3746,9 +3999,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "requires": { "escape-goat": "^2.0.0" @@ -3776,6 +4029,12 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -3855,9 +4114,9 @@ } }, "registry-auth-token": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", - "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "requires": { "rc": "^1.2.8" @@ -3914,21 +4173,22 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, "requires": { + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", + "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4044,9 +4304,9 @@ } }, "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", "dev": true }, "serialize-error": { @@ -4057,15 +4317,6 @@ "optional": true, "requires": { "type-fest": "^0.13.1" - }, - "dependencies": { - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true - } } }, "set-blocking": { @@ -4218,9 +4469,9 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "split": { @@ -4397,6 +4648,40 @@ "yallist": "^4.0.0" }, "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4444,9 +4729,9 @@ } }, "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true }, "through": { @@ -4518,9 +4803,11 @@ "dev": true }, "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true }, "typedarray": { "version": "0.0.6", @@ -4552,9 +4839,9 @@ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" }, "update-notifier": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz", - "integrity": "sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, "requires": { "boxen": "^4.2.0", @@ -4585,9 +4872,9 @@ } }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "requires": { "punycode": "^2.1.0" } @@ -4647,9 +4934,9 @@ "dev": true }, "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "validate-npm-package-license": { "version": "3.0.4", @@ -4690,12 +4977,6 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", @@ -4748,9 +5029,9 @@ } }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -4794,9 +5075,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" }, "xdg-basedir": { "version": "4.0.0", @@ -4845,9 +5126,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, "yallist": { @@ -4863,69 +5144,25 @@ "dev": true }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true }, "yauzl": { "version": "2.10.0", @@ -4941,6 +5178,12 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 908f75b5b..682961aae 100644 --- a/package.json +++ b/package.json @@ -28,27 +28,27 @@ } }, "devDependencies": { - "electron": "^10.1.5", - "electron-builder": "^22.8.1", - "electron-rebuild": "^2.0.3", - "husky": "^4.3.0", - "prettier": "^2.1.1", + "electron": "^11.1.1", + "electron-builder": "^22.9.1", + "electron-rebuild": "^2.3.4", + "husky": "^4.3.7", + "prettier": "^2.2.1", "pretty-quick": "^2.0.2" }, "dependencies": { "ace-builds": "^1.4.12", - "discord-rpc": "^3.1.3", + "discord-rpc": "^3.1.4", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", - "electron-google-analytics": "^1.0.1", + "electron-google-analytics": "^1.0.2", "electron-is-dev": "^1.2.0", "electron-localshortcut": "^3.2.1", - "electron-log": "^4.2.4", - "electron-store": "^6.0.0", + "electron-log": "^4.3.1", + "electron-store": "^6.0.1", "electron-updater": "^4.3.5", "i18n": "^0.13.2", "image-to-base64": "^2.1.1", - "js-base64": "^3.4.5", + "js-base64": "^3.6.0", "markdown": "^0.5.0", "node-fetch": "^2.6.1", "node-vibrant": "^3.1.5", @@ -57,8 +57,8 @@ "register-scheme": "0.0.2", "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", "socket.io": "^2.3.0", - "uuid": "^8.3.0", - "ws": "^7.3.1" + "uuid": "^8.3.2", + "ws": "^7.4.2" }, "optionalDependencies": { "@nodert-win10/windows.media": "^0.2.96", diff --git a/yarn.lock b/yarn.lock index 977367a0a..4f315320e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -206,6 +206,11 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -213,6 +218,23 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -230,6 +252,18 @@ dependencies: "@types/node" "*" +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + "@types/lodash@^4.14.53": version "4.14.160" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" @@ -260,6 +294,13 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@types/semver@^7.3.1": version "7.3.3" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" @@ -370,26 +411,26 @@ any-base@^1.1.0: resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== -app-builder-bin@3.5.9: - version "3.5.9" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz#a3ac0c25286bac68357321cb2eaf7128b0bc0a4f" - integrity sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg== +app-builder-bin@3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" + integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== -app-builder-lib@22.8.0: - version "22.8.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.8.0.tgz#342a8976f50ae35cfd07412dbfd4f6c895b32eac" - integrity sha512-RGaIRjCUrqkmh6QOGsyekQPEOaVynHfmeh8JZuyUymFYUOFdzBbPamkA2nhBVBTkkgfjRHsxK7LhedFKPzvWEQ== +app-builder-lib@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" + integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== dependencies: "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.6.5" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.8.0" + builder-util "22.9.1" builder-util-runtime "8.7.2" chromium-pickle-js "^0.2.0" - debug "^4.1.1" - ejs "^3.1.3" - electron-publish "22.8.0" + debug "^4.3.0" + ejs "^3.1.5" + electron-publish "22.9.1" fs-extra "^9.0.1" hosted-git-info "^3.0.5" is-ci "^2.0.0" @@ -460,7 +501,7 @@ async-exit-hook@^2.0.1: resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== -async-limiter@^1.0.0, async-limiter@~1.0.0: +async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -515,6 +556,11 @@ base64-js@^1.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base64id@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" @@ -541,6 +587,15 @@ bindings@^1.2.1, bindings@^1.3.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" @@ -613,6 +668,14 @@ buffer@^5.2.0: base64-js "^1.0.2" ieee754 "^1.1.4" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + bufferutil@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" @@ -628,19 +691,19 @@ builder-util-runtime@8.7.2: debug "^4.1.1" sax "^1.2.4" -builder-util@22.8.0: - version "22.8.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.8.0.tgz#01684085d1f2370b1bd182f69cbd007426f63f64" - integrity sha512-H80P1JzVy3TGpi63x81epQDK24XalL034+jAZlrPb5IhLtYmnNNdxCCAVJvg3VjSISd73Y71O+uhqCxWpqbPHw== +builder-util@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" + integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== dependencies: "7zip-bin" "~5.0.3" "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.9" + app-builder-bin "3.5.10" bluebird-lst "^1.0.9" builder-util-runtime "8.7.2" chalk "^4.1.0" - debug "^4.1.1" + debug "^4.3.0" fs-extra "^9.0.1" is-ci "^2.0.0" js-yaml "^3.14.0" @@ -648,6 +711,11 @@ builder-util@22.8.0: stat-mode "^1.0.0" temp-file "^3.3.7" +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -661,6 +729,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -671,7 +752,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -706,6 +787,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" @@ -733,19 +819,19 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== +cli-spinners@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" clone-response@^1.0.2: version "1.0.2" @@ -840,7 +926,7 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -conf@^7.1.1: +conf@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== @@ -896,16 +982,16 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" + import-fresh "^3.2.1" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.7.2" + yaml "^1.10.0" cross-spawn@^7.0.0, cross-spawn@^7.0.1: version "7.0.3" @@ -950,19 +1036,33 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@*, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +debug@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "2.0.0" + ms "2.1.2" debug@~3.1.0: version "3.1.0" @@ -971,11 +1071,6 @@ debug@~3.1.0: dependencies: ms "2.0.0" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -983,6 +1078,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -1012,6 +1114,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1029,7 +1136,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -detect-libc@^1.0.3: +detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -1039,21 +1146,21 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -discord-rpc@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.3.tgz#9ba77b2679e3d069d400247da58333c0c87645fb" - integrity sha512-V081xCPFm8YDNLJYJv3Vo2BrCv/Knh0mdvq37RIN1keh7VGpf7s1kypaFDIYiuUmAlZXI5pupthF5hCrx/CzhA== +discord-rpc@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" + integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== dependencies: - node-fetch "2.6.0" - ws "7.1.2" + node-fetch "^2.6.1" + ws "^7.3.1" -dmg-builder@22.8.0: - version "22.8.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.8.0.tgz#2b17127837ed444db3086317eda5cf8912f6e6a9" - integrity sha512-orePWjcrl97SYLA8F/6UUtbXJSoZCYu5KOP1lVqD4LOomr8bjGDyEVYZmZYcg5WqKmXucdmO6OpqgzH/aRMMuA== +dmg-builder@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" + integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== dependencies: - app-builder-lib "22.8.0" - builder-util "22.8.0" + app-builder-lib "22.9.1" + builder-util "22.9.1" fs-extra "^9.0.1" iconv-lite "^0.6.2" js-yaml "^3.14.0" @@ -1099,32 +1206,32 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ejs@^3.1.3: +ejs@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== dependencies: jake "^10.6.1" -electron-builder@^22.8.0: - version "22.8.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.8.0.tgz#d2c9fc5438c834e41fd794a271fca200165a3bad" - integrity sha512-dUv4F3srJouqxhWivtKqSoQP4Df6vYgjooGdzms+iYMTFi9f0b4LlEbr7kgsPvte8zAglee7VOGOODkCRJDkUQ== +electron-builder@^22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" + integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== dependencies: "@types/yargs" "^15.0.5" - app-builder-lib "22.8.0" + app-builder-lib "22.9.1" bluebird-lst "^1.0.9" - builder-util "22.8.0" + builder-util "22.9.1" builder-util-runtime "8.7.2" chalk "^4.1.0" - dmg-builder "22.8.0" + dmg-builder "22.9.1" fs-extra "^9.0.1" is-ci "^2.0.0" lazy-val "^1.0.4" read-config-file "6.0.0" sanitize-filename "^1.6.3" - update-notifier "^4.1.0" - yargs "^15.3.1" + update-notifier "^4.1.1" + yargs "^16.0.3" electron-canvas-to-buffer@^2.0.0: version "2.0.0" @@ -1136,20 +1243,20 @@ electron-clipboard-watcher@^1.0.1: resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= -electron-fetch@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.6.0.tgz#39f92cb077d8fa3b5d95f8e0711100e1c9b7c0b1" - integrity sha512-8qpUtmwISThQr3smP8O61zj1fZTr9VI2VybJeDrg3NBJspgnq/HsyZDQwlag7FIk3KqO22wdtODCF/qb3Bm+sg== +electron-fetch@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" + integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== dependencies: encoding "^0.1.13" -electron-google-analytics@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.0.tgz#270c059654c2c7465dcf4d2bbb0864fcc18ddc30" - integrity sha512-CHZQgvvR6ktiwNgNxhFNZ7Dudk9mX96egZP31PTk18Nh7MjDNjuy8wHjftnD/gYV7L1mPhseZMFJxSOXBLhAnQ== +electron-google-analytics@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" + integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== dependencies: - electron-fetch "^1.4.0" - uuid "^8.1.0" + electron-fetch "^1.7.1" + uuid "^8.3.0" electron-is-accelerator@^0.1.0: version "0.1.2" @@ -1171,57 +1278,55 @@ electron-localshortcut@^3.2.1: keyboardevent-from-electron-accelerator "^2.0.0" keyboardevents-areequal "^0.2.1" -electron-log@^4.2.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.2.4.tgz#a13e42a9fc42ca2cc7d2603c3746352efa82112e" - integrity sha512-CXbDU+Iwi+TjKzugKZmTRIORIPe3uQRqgChUl19fkW/reFUn5WP7dt+cNGT3bkLV8xfPilpkPFv33HgtmLLewQ== - -electron-native-notification@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/electron-native-notification/-/electron-native-notification-1.2.1.tgz#24831008fda635ddf5adb0ccedfca5dcf3f35fdc" - integrity sha512-vjbhA80nrzFtC33jDk+6a5z55vrannZtWd14clMDEj8YlFRLxIDbunjOaT3yBiHNBK7c/fGNtYkVZYMYgFpc1Q== +electron-log@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" + integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== -electron-publish@22.8.0: - version "22.8.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.8.0.tgz#7f410fe043abc5d3d896c4ee9eea7a43ea352c7d" - integrity sha512-uM0Zdi9hUqqGOrPj478v7toTvV1Kgto1w11rIiI168batiXAJvNLD8VZRfehOrZT0ibUyZlw8FtxoGCrjyHUOw== +electron-publish@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" + integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== dependencies: "@types/fs-extra" "^9.0.1" bluebird-lst "^1.0.9" - builder-util "22.8.0" + builder-util "22.9.1" builder-util-runtime "8.7.2" chalk "^4.1.0" fs-extra "^9.0.1" lazy-val "^1.0.4" mime "^2.4.6" -electron-rebuild@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.0.1.tgz#d5532b1aa527aeec8180be2026f1f11ab86d3540" - integrity sha512-oXCnKKS+FpLxXiiSHtSCFI3zo+4H2y6zUegSQTI031RJXn2fzQV9UJMAfBrnW7Z083chIo3/L4+xFM4R8mreOQ== +electron-rebuild@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" + integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== dependencies: "@malept/cross-spawn-promise" "^1.1.0" colors "^1.3.3" debug "^4.1.1" detect-libc "^1.0.3" fs-extra "^9.0.1" - node-abi "^2.19.1" + got "^11.7.0" + lzma-native "^6.0.1" + node-abi "^2.19.2" node-gyp "^7.1.0" - ora "^5.0.0" - yargs "^15.4.1" + ora "^5.1.0" + tar "^6.0.5" + yargs "^16.0.0" -electron-store@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.0.tgz#92a5f8295a326f074281ae0d6a307454e6f68243" - integrity sha512-ujb0a/6gxMxb9vOQ2BjOehK9VCyq5OKvttekd9v/tohA9oBHnAdV+Vxu4eoRh+/F9ShPFhcvDZkMdqO5i+TXUw== +electron-store@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" + integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== dependencies: - conf "^7.1.1" + conf "^7.1.2" type-fest "^0.16.0" -electron-updater@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.4.tgz#6003f88be9004d7834e4dd757167033d0fc2d29a" - integrity sha512-ekpgxDrYl+Wi24ktO4qfj2CtCABxrmK1C/oekp0tai6q4VR4ZdPkit4CX8+GenvKMme7uMmfPFnLp/vwhP/ThQ== +electron-updater@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" + integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== dependencies: "@types/semver" "^7.3.1" builder-util-runtime "8.7.2" @@ -1231,10 +1336,10 @@ electron-updater@^4.3.4: lodash.isequal "^4.5.0" semver "^7.3.2" -electron@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.0.0.tgz#4e777612ead76b39bc7241c7749bf6b0ece47889" - integrity sha512-0XX/LqYAHHCSbfLjUk9VRDPOeYjDPEzA9i7F50AqpEpFIWR2bp++0S0beRANUpPdkvtBDp+0R6vHV3iXPvuKyA== +electron@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa" + integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -1352,6 +1457,11 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -1471,7 +1581,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -1479,12 +1589,20 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== dependencies: - semver-regex "^2.0.0" + semver-regex "^3.1.2" forever-agent@~0.6.1: version "0.6.1" @@ -1524,6 +1642,13 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^1.0.0" +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -1555,7 +1680,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -1638,6 +1763,23 @@ globalthis@^1.0.1: dependencies: define-properties "^1.1.3" +got@^11.7.0: + version "11.8.1" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" + integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -1748,34 +1890,49 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -husky@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +husky@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" + integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== dependencies: chalk "^4.0.0" ci-info "^2.0.0" compare-versions "^3.6.0" - cosmiconfig "^6.0.0" - find-versions "^3.2.0" + cosmiconfig "^7.0.0" + find-versions "^4.0.0" opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" + pkg-dir "^5.0.0" please-upgrade-node "^3.2.0" slash "^3.0.0" which-pm-runs "^1.0.0" -i18n@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.10.0.tgz#a4ec14176f81e29302331bd106403edfce535cce" - integrity sha512-lCSpIm/ZLUCQMAv+UAjSEYzPq96KG7fIx6o1mNQ0MuTBzXpPgd31t4WLzbPG10nKTLJzj9176dgOG7C0wUquSA== +i18n@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" + integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== dependencies: - debug "*" - make-plural "^6.2.1" + debug "^4.1.1" + make-plural "^6.2.2" math-interval-parser "^2.0.1" messageformat "^2.3.0" mustache "^4.0.1" sprintf-js "^1.1.2" +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + iconv-lite@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" @@ -1783,11 +1940,23 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" @@ -1800,10 +1969,10 @@ image-to-base64@^2.1.1: dependencies: node-fetch "^2.6.0" -import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -1831,7 +2000,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1987,10 +2156,10 @@ jpeg-js@^0.3.4: resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== -js-base64@^3.4.3: - version "3.4.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.4.5.tgz#6d1921e65a172cfd924604e1416dfaff45752c3e" - integrity sha512-Ub/AANierdcT8nm4ndBn3KzpZQ3MdHX4a+bwoVdjgeHCZ0ZEcP+UB4nmR4Z5lR6SH3Y+qAPmgVR0RxKJNHNHEg== +js-base64@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" + integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== js-tokens@^4.0.0: version "4.0.0" @@ -2020,6 +2189,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" @@ -2095,6 +2269,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + latest-version@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -2141,6 +2322,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -2180,6 +2368,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lzma-native@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" + integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== + dependencies: + node-addon-api "^1.6.0" + node-pre-gyp "^0.11.0" + readable-stream "^2.3.5" + rimraf "^2.7.1" + make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -2194,7 +2392,7 @@ make-plural@^4.3.0: optionalDependencies: minimist "^1.2.0" -make-plural@^6.2.1: +make-plural@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== @@ -2284,6 +2482,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -2303,6 +2506,14 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + minipass@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" @@ -2310,6 +2521,13 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -2318,7 +2536,7 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.1, mkdirp@^0.5.4: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -2349,7 +2567,7 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -2370,38 +2588,47 @@ mustache@^4.0.1: resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.12.1, nan@latest: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +needle@^2.2.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -node-abi@^2.19.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" - integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== +node-abi@^2.19.2: + version "2.19.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== dependencies: semver "^5.4.1" -node-addon-api@^1.3.0: +node-addon-api@^1.3.0, node-addon-api@^1.6.0: version "1.7.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-fetch@2.6.0, node-fetch@^2.6.0: +node-fetch@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-gyp-build@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" @@ -2423,6 +2650,22 @@ node-gyp@^7.1.0: tar "^6.0.1" which "^2.0.2" +node-pre-gyp@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + node-vibrant@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" @@ -2436,7 +2679,7 @@ node-vibrant@^3.1.5: lodash "^4.17.4" url "^0.11.0" -nopt@^4.0.3: +nopt@^4.0.1, nopt@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== @@ -2466,6 +2709,13 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + npm-conf@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" @@ -2474,6 +2724,20 @@ npm-conf@^1.1.3: config-chain "^1.1.11" pify "^3.0.0" +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + npm-run-path@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" @@ -2481,7 +2745,7 @@ npm-run-path@^3.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.1.2: +npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -2563,17 +2827,17 @@ opencollective-postinstall@^2.0.2: resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== -ora@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" - integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw== +ora@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" + integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== dependencies: + bl "^4.0.3" chalk "^4.1.0" cli-cursor "^3.1.0" - cli-spinners "^2.4.0" + cli-spinners "^2.5.0" is-interactive "^1.0.0" log-symbols "^4.0.0" - mute-stream "0.0.8" strip-ansi "^6.0.0" wcwidth "^1.0.1" @@ -2600,6 +2864,11 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + p-finally@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" @@ -2612,6 +2881,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -2626,6 +2902,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -2764,12 +3047,12 @@ pixelmatch@^4.0.2: dependencies: pngjs "^3.0.0" -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== dependencies: - find-up "^4.0.0" + find-up "^5.0.0" pkg-up@^3.1.0: version "3.1.0" @@ -2790,17 +3073,29 @@ pngjs@^3.0.0, pngjs@^3.3.3: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +postscribe@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" + integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= + dependencies: + prescribe ">=1.1.2" + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^2.0.5: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prescribe@>=1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" + integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= -pretty-quick@^2.0.1: +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pretty-quick@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== @@ -2882,7 +3177,12 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -rc@^1.2.8: +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -2903,7 +3203,7 @@ read-config-file@6.0.0: json5 "^2.1.2" lazy-val "^1.0.4" -readable-stream@^2.0.6, readable-stream@^2.2.2: +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -2916,6 +3216,15 @@ readable-stream@^2.0.6, readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -2982,10 +3291,10 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== resolve-from@^4.0.0: version "4.0.0" @@ -3006,6 +3315,13 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -3014,7 +3330,7 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -rimraf@^2.6.3: +rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -3033,7 +3349,7 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -3043,7 +3359,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3064,7 +3380,6 @@ sax@>=0.6.0, sax@^1.2.4: version "0.0.5" resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -3077,12 +3392,12 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== +semver-regex@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" + integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3104,7 +3419,7 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -3320,6 +3635,13 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -3386,6 +3708,19 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + tar@^6.0.1: version "6.0.5" resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" @@ -3398,6 +3733,18 @@ tar@^6.0.1: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.0.5: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-file@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" @@ -3512,10 +3859,10 @@ universalify@^1.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== -update-notifier@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" - integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== +update-notifier@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" chalk "^3.0.0" @@ -3572,7 +3919,7 @@ utif@^2.0.1: dependencies: pako "^1.0.5" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -3582,11 +3929,16 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.1.0, uuid@^8.3.0: +uuid@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -3611,11 +3963,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" @@ -3642,10 +3989,10 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -3666,18 +4013,16 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.2.tgz#c672d1629de8bb27a9699eb599be47aeeedd8f73" - integrity sha512-gftXq3XI81cJCgkUiAVixA0raD9IVmXqsylCrjRygw4+UOOGzPoxnQ6r/CnVL9i+mDncJo94tSkyrtuuQVBmrg== - dependencies: - async-limiter "^1.0.0" - ws@^7.1.2, ws@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== +ws@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + ws@~6.1.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" @@ -3728,45 +4073,43 @@ xtend@^4.0.0: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.7.2: +yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs@^15.3.1, yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== +yargs@^16.0.0, yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" + y18n "^5.0.5" + yargs-parser "^20.2.2" yauzl@^2.10.0: version "2.10.0" @@ -3780,3 +4123,8 @@ yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 35e9e326864a0bfd8cb2f8e13c374ed1722d07a5 Mon Sep 17 00:00:00 2001 From: Test User Date: Sun, 10 Jan 2021 18:37:41 +0100 Subject: [PATCH 053/489] Use mpris only as soon as media is playing --- main.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index 7daca0f70..804f514b8 100644 --- a/main.js +++ b/main.js @@ -111,8 +111,6 @@ if ( console.log('error windowsMediaProvider > ' + error) } -if (isLinux()) mprisProvider.start() - if (isMac()) { settingsProvider.set( 'settings-shiny-tray-dark', @@ -364,7 +362,12 @@ async function createWindow() { view.webContents.on('media-started-playing', () => { if (!infoPlayerProvider.hasInitialized()) { infoPlayerProvider.init(view) - if (isLinux()) mprisProvider.setRealPlayer(infoPlayerProvider) //this lets us keep track of the current time in playback. + if (isLinux()) { + if (!mprisProvider._isInitialized) { + mprisProvider.start() + } + mprisProvider.setRealPlayer(infoPlayerProvider) //this lets us keep track of the current time in playback. + } } if ( From dbaa4f50c8d14806cd442e77fb45e8349dd4bf92 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Thu, 14 Jan 2021 21:32:25 -0600 Subject: [PATCH 054/489] :sparkles: Add buttons to Discord rich presence --- src/providers/discordRpcProvider.js | 63 +++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 13 deletions(-) diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js index ff2a7f4ed..ab759ff11 100644 --- a/src/providers/discordRpcProvider.js +++ b/src/providers/discordRpcProvider.js @@ -1,9 +1,10 @@ const clientId = '495666957501071390' const RPC = require('discord-rpc') const settingsProvider = require('./settingsProvider') +const url = require('url') -let client -let _isStarted +var client +var _isStarted function isStarted() { return _isStarted @@ -16,11 +17,13 @@ function _setIsStarted(value) { function start() { client = new RPC.Client({ transport: 'ipc' }) - client.on('ready', () => _setIsStarted(true)) + client.on('ready', () => { + _setIsStarted(true) + }) client.login({ clientId }).catch(() => { if (!isStarted()) { - setTimeout(() => { + setTimeout(function () { start() }, 10000) } @@ -37,13 +40,16 @@ function stop() { _setIsStarted(false) } -async function setActivity(info) { +function getVideoId(trackUrl) { + var query = new URL(trackUrl) + return query.searchParams.get('v') +} + +function setActivity(info) { if (isStarted() && info.track.title) { - const now = Date.now() - const activity = {} - const discordSettings = settingsProvider.get( - 'discord-presence-settings' - ) + var now = Date.now() + var activity = {} + var discordSettings = settingsProvider.get('discord-presence-settings') if (discordSettings.details) activity.details = info.track.title @@ -70,10 +76,41 @@ async function setActivity(info) { activity.largeImageText = 'YouTube Music' activity.smallImageText = info.player.isPaused ? 'Paused' : 'Playing' activity.instance = false + if (discordSettings.details) { + activity.buttons = [ + { + label: 'Play on YouTube Music', + url: + 'https://music.youtube.com/watch?v=' + + getVideoId(info.track.url), + }, + ] + } - if (!discordSettings.hideIdle && info.player.isPaused) - await client.clearActivity() - else client.setActivity(activity).catch((err) => console.log(err)) + if (!discordSettings.hideIdle && info.player.isPaused) { + client.clearActivity() + } else { + // As of writing this discord-rpc was not updated to support buttons with setActivity + client.request('SET_ACTIVITY', { + pid: process.pid, + activity: { + state: activity.state, + details: activity.details, + timestamps: { + start: activity.startTimestamp, + end: activity.endTimestamp, + }, + assets: { + large_image: activity.largeImageKey, + large_text: activity.largeImageText, + small_image: activity.smallImageKey, + small_text: activity.smallImageText, + }, + instance: activity.instance, + buttons: activity.buttons, + }, + }) + } } } From 9ef20ef91892d964d55921a1cd50b14c6befd28a Mon Sep 17 00:00:00 2001 From: Alessandro Bellanda Date: Sat, 16 Jan 2021 16:05:28 +0100 Subject: [PATCH 055/489] Update brew install command removed cask directive --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae5e0b151..daa693ba3 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ ## Mac -- Brew: ```brew cask install ytmdesktop-youtube-music``` +- Brew: ```brew install ytmdesktop-youtube-music``` - Binaries: https://github.com/ytmdesktop/ytmdesktop/releases # To Contribute From 547778d672f726e15bd8eb6cb2e223f276a68651 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n?= <56458705+TotallyNotInUse@users.noreply.github.com> Date: Wed, 20 Jan 2021 17:03:33 -0600 Subject: [PATCH 056/489] =?UTF-8?q?=E2=9C=A8=20Relaunch=20button=20when=20?= =?UTF-8?q?changing=20Discord=20RPC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is my first change in JavaScript, I hope I did well. I tried to fix the problem in issue #448 but I couldn't. --- src/pages/settings/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 54b275366..b05da1518 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -131,7 +131,7 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-shiny-tray', 'click', () => { ipc.send('update-tray') }) - initElement('settings-discord-rich-presence', 'click', null) + initElement('settings-discord-rich-presence', 'click', showRelaunchButton) initElement('settings-app-language', 'change', showRelaunchButton) initElement('settings-clipboard-read', 'click', () => { ipc.send('switch-clipboard-watcher') From c383fd2e68a67100fd9ab5df113eb8d67e317147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n?= <56458705+TotallyNotInUse@users.noreply.github.com> Date: Wed, 20 Jan 2021 19:37:39 -0600 Subject: [PATCH 057/489] =?UTF-8?q?=E2=9C=A8=20New=20Strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/es.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locales/es.json b/src/locales/es.json index ba8ed3e84..b101f831c 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -13,6 +13,7 @@ "LABEL_LOADING": "Cargando...", "LABEL_LYRICS_NOT_FOUND": "No se ha encontrado letra para esta canción", "LABEL_LYRICS": "Letra", + "LABEL_LYRICS_GENIUS_AUTH": "Va a tener que autorizar su cuenta de Genius a YTMDesktop (http://localhost:9864/login) o desactivar Genius lyrics en \"Ajustes > Integraciones > Activar Genius Lyrics\"", "LABEL_MINIPLAYER": "Minireproductor", "LABEL_NOTIFICATION_DISLIKED": "No te ha gustado esta canción", "LABEL_NOTIFICATION_LIKED": "Te ha gustado esta canción", @@ -73,7 +74,9 @@ "LABEL_SETTINGS_TAB_SHORTCUTS": "Atajos", "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Las teclas de control de volumen de medio sólo controlan el volumen de la app", "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Cambiar el control de volumen de '%' a 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Activar Genius Lyrics", "LABEL_SETTINGS": "Ajustes", + "LABEL_SHUTDOWN": "Apagar", "LYRICS": "Letra", "MEDIA_CONTROL_MINIPLAYER": "Abrir/Cerrar el minirreproductor", "MEDIA_CONTROL_MUTE_UNMUTE": "Silenciar/Desilenciar", From 622a6e38a50d3905b94544033372c032f78e6101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n?= <56458705+TotallyNotInUse@users.noreply.github.com> Date: Wed, 20 Jan 2021 19:42:58 -0600 Subject: [PATCH 058/489] =?UTF-8?q?=E2=9C=A8=20Relaunch=20button=20when=20?= =?UTF-8?q?changing=20Discord=20RPC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Forgot to add the relaunch icon but here it is lol --- src/pages/settings/settings.html | 2189 ++++++++++++------------------ 1 file changed, 900 insertions(+), 1289 deletions(-) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 43f868067..4b2f5e8fe 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1,1332 +1,943 @@ - - - Settings - - - - - + + + Settings + + + + + - -
-
-
- + +
+
+ -
-
-
- - - - - - - - - - - - - - +
+
+
+
- - -
- -
-
- - - -
- -
-
- - -
- -
-
+ + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - -
+ + +
+ +
+
+ + + +
+ +
+
+ + +
+ +
+
- - -
- -
-
+ + +
+ +
+
- - -
- -
-
+ + +
+ +
+
- - autorenew - -
- -
-
+ + + autorenew + + +
+ +
+
- - autorenew - - -
+ + + autorenew + + + +
- - - -
+ + + +
-
-   -
-
- - -
- -
-
-
+ + +
+   +
+ + + + + + + +
+ +
+ + + + +
-
- - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - - 0s -

- -

-
- - -
- -
-
-
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + + 0s +

+ +

+
+ + +
+ +
+
+
-
- - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
-
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+
-
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + -
-
+ + + + +
- - - 100% -

- -

-
- - -
- -
-
- - - + + + + + + + + + + + + - - - - - - - - - - -
+ + + 100% +

+ +

+
+ + +
+ +
+
+ + + -
- - -
- - -
-
- - -
- - -
-
- - -
- - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
- -
+ + +
+ - -
-
- -
-
- - - - -
- - -
-
- - -
- - -
-
- - -
- -
-
- - - -
- -
-
- - -
- - -
-
- - -
- -
-
- - autorenew - -
- -
-
- - - autorenew - -
- -
-
+ + +
+ + +
+
+
+ +
+ + + + + + + + + + + + - - - - - -
+ + + + +
+ +
+
+ + + + +
+ + +
+
+ + + autorenew + +
- - +
+ -
-
- -
-
-
+ + +
+ + +
+ +
+
+ + + +
+ +
+
+ + +
+ + +
+
+ + +
+ +
+
+ + + autorenew + + +
+ +
+
+ + + + autorenew + + +
+ +
+
+ + + +
+ +
+
+
+ +
+ -
-
- - - - - + + + + + + +
- - - +
+ + + + 2x +
+ +
+
+
-
-
- - v

- -
-
-
- Made with - by - adlerluiz & contributors -

- https://ytmdesktop.app -

-
+
+
+ + v

+ +
+
+
+ Made with + by + adlerluiz & contributors +

+ https://ytmdesktop.app +

+
-
- -
+ style="text-transform: none"> + autorenew + +
- - - + + + From 305273f2e05d8bfa211d890a094e5c3b4f59a288 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sat, 23 Jan 2021 22:01:31 -0800 Subject: [PATCH 059/489] :bug: Disable mpris-service outside linux --- main.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index f2bd09c83..aeeca05c9 100644 --- a/main.js +++ b/main.js @@ -36,7 +36,11 @@ const rainmeterNowPlaying = require('./src/providers/rainmeterNowPlaying') const companionServer = require('./src/providers/companionServer') const geniusAuthServer = require('./src/providers/geniusAuthServer') const discordRPC = require('./src/providers/discordRpcProvider') -const mprisProvider = require('./src/providers/mprisProvider') +if (isLinux()) { + const mprisProvider = require('./src/providers/mprisProvider') +} else { + const mprisProvider = null +} /* Variables =========================================================================== */ const defaultUrl = 'https://music.youtube.com' @@ -426,7 +430,9 @@ async function createWindow() { if (title && author) { rainmeterNowPlaying.setActivity(getAll()) - mprisProvider.setActivity(getAll()) + if (isLinux()) { + mprisProvider.setActivity(getAll()) + } mediaControl.setProgress( mainWindow, @@ -442,7 +448,7 @@ async function createWindow() { if (settingsProvider.get('settings-last-fm-scrobbler')) { if ( lastTrackId !== trackId || - (lastTrackProgress > progress && progress < 0.20) + (lastTrackProgress > progress && progress < 0.2) ) { if (!trackInfo.isAdvertisement) { clearInterval(updateTrackInfoTimeout) From 9ac6f7c11ca957811e98e4c706e0a0fb626ec129 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sat, 23 Jan 2021 22:05:13 -0800 Subject: [PATCH 060/489] :bug: Fix weird behavior when enable shiny-tray --- src/providers/trayProvider.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js index 62c0b003a..c324d7179 100644 --- a/src/providers/trayProvider.js +++ b/src/providers/trayProvider.js @@ -73,7 +73,8 @@ function updateTray(data) { contextMenu = Menu.buildFromTemplate(template) - tray.setContextMenu(contextMenu) + if (!settingsProvider('settings-shiny-tray')) + tray.setContextMenu(contextMenu) } } catch (error) { ipcMain.emit('log', { @@ -170,15 +171,22 @@ function quit() { function setShinyTray() { try { - if (settingsProvider.get('settings-shiny-tray') && systemInfo.isMac()) { + if (systemInfo.isMac() && settingsProvider.get('settings-shiny-tray')) { tray.setContextMenu(null) tray.removeAllListeners() tray.on('right-click', () => { tray.popUpContextMenu(contextMenu) }) tray.on('click', (event, bound, position) => { - if (position.x < 32) saved_mainWindow.show() - else if (position.x > 130) + if (position.x < 32) { + // click at icon + if (!saved_mainWindow.isVisible()) { + saved_mainWindow.show() + } else if (!saved_mainWindow.isFocused()) { + saved_mainWindow.show() + } else saved_mainWindow.hide() + } else if (position.x > 130) + // click play/pause button mediaControl.playPauseTrack( saved_mainWindow.getBrowserView() ) From a90070e85d5b0b610abf5f296683ef5e6c6d6328 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sun, 24 Jan 2021 00:28:24 -0800 Subject: [PATCH 061/489] :bug: Bug fiexes in tray provider --- src/providers/trayProvider.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js index c324d7179..beea7d9a2 100644 --- a/src/providers/trayProvider.js +++ b/src/providers/trayProvider.js @@ -26,11 +26,13 @@ function setTooltip(tooltip) { } } -let init_tray = () => { +let initVanillaTray = () => { try { setTooltip('YouTube Music Desktop App') + tray.removeAllListeners() tray.setContextMenu(contextMenu) - + nativeImageIcon = buildTrayIcon(iconTray) + tray.setImage(nativeImageIcon) tray.addListener('click', () => { doBehavior(saved_mainWindow) }) @@ -41,7 +43,7 @@ let init_tray = () => { } catch (error) { ipcMain.emit('log', { type: 'warn', - data: `Failed to init_tray: ${error}`, + data: `Failed to initVanillaTray: ${error}`, }) } } @@ -59,7 +61,7 @@ function createTray(mainWindow) { ) } - if (!systemInfo.isMac()) init_tray() + if (!systemInfo.isMac()) initVanillaTray() else setShinyTray() } } @@ -73,7 +75,7 @@ function updateTray(data) { contextMenu = Menu.buildFromTemplate(template) - if (!settingsProvider('settings-shiny-tray')) + if (!settingsProvider.get('settings-shiny-tray')) tray.setContextMenu(contextMenu) } } catch (error) { @@ -194,7 +196,8 @@ function setShinyTray() { } else { // Shiny tray disabled ||| on onther platform tray.removeAllListeners() - init_tray() + initVanillaTray() + console.log('initVanillaTray') } } catch (error) { ipcMain.emit('log', { From caa856241cb00769d8972926d9521f2013105ed4 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sun, 24 Jan 2021 00:44:52 -0800 Subject: [PATCH 062/489] :sparkles: Rolling song title in shiny tray --- main.js | 20 ++++++++++++++++-- src/locales/en.json | 1 + src/pages/home/home.js | 36 ++++++++++++++++++++++++++++++-- src/pages/settings/settings.html | 18 ++++++++++++++++ src/pages/settings/settings.js | 3 +++ src/utils/defaultSettings.js | 5 +++++ 6 files changed, 79 insertions(+), 4 deletions(-) diff --git a/main.js b/main.js index aeeca05c9..cc7f29ffa 100644 --- a/main.js +++ b/main.js @@ -79,7 +79,11 @@ let windowConfig = { titleBarStyle: '', } -global.sharedObj = { title: 'N/A', paused: true } +global.sharedObj = { + title: 'N/A', + paused: true, + rollable: settingsProvider.get('settings-shiny-tray-song-title-rollable'), +} let iconDefault = assetsProvider.getIcon('favicon') let iconTray = assetsProvider.getIcon('trayTemplate') @@ -868,6 +872,16 @@ async function createWindow() { infoPlayerProvider.getAllInfo() ) + settingsProvider.onDidChange( + 'settings-shiny-tray-song-title-rollable', + (data) => { + console.log(data.newValue) + global.sharedObj.rollable = data.newValue + if (renderer_for_status_bar) + renderer_for_status_bar.send('update-status-bar') + } + ) + settingsProvider.onDidChange( 'settings-rainmeter-web-now-playing', (data) => { @@ -998,7 +1012,9 @@ async function createWindow() { ipcMain.on('update-tray', () => { if (!isMac()) return - + global.sharedObj.rollable = settingsProvider.get( + 'settings-shiny-tray-song-title-rollable' + ) updateStatusBar() tray.setShinyTray() }) diff --git a/src/locales/en.json b/src/locales/en.json index 5938896ad..fee18c894 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -49,6 +49,7 @@ "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Title bar style", "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Easy Tray Control(For Mac OS only)", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY_SONG_TITLE_ROLLABLE": "Tray Song Title Rollable", "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Show notifications", "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimized", "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start on Boot (Mac/Win)", diff --git a/src/pages/home/home.js b/src/pages/home/home.js index a68e9b5fc..9ca23762d 100644 --- a/src/pages/home/home.js +++ b/src/pages/home/home.js @@ -11,7 +11,12 @@ canvas.height = 32 canvas.width = 150 const ctx = canvas.getContext('2d') -ipc.on('update-status-bar', () => { +let saved_title = '' +let elapsed = 0 +let textWidth = 0 +let rollInterval = null + +function render_tray() { ctx.clearRect(0, 0, canvas.width, canvas.height) ctx.font = '14px Arial' if (store.get('settings-shiny-tray-dark', false)) { @@ -21,7 +26,30 @@ ipc.on('update-status-bar', () => { ctx.fillStyle = 'black' icon_set = icons.bright } - ctx.fillText(cutstr(status.title, 14), 30, 21) + if (saved_title != status.title) { + saved_title = status.title + elapsed = 0 + } + textWidth = ctx.measureText(saved_title + ' ').width + if (status.rollable && textWidth > 105) { + // 105 comes from 135 - 30 + + elapsed += 3 + ctx.fillText(saved_title + ' ' + saved_title, 30 - elapsed, 21) + ctx.clearRect(0, 0, 30, canvas.height) + ctx.clearRect(135, 0, canvas.width - 135, canvas.height) + if (elapsed > textWidth) elapsed = 0 + if (!rollInterval) { + rollInterval = setInterval(() => { + render_tray() + }, 200) + } + } else { + if (rollInterval) clearInterval(rollInterval) + rollInterval = null + ctx.fillText(cutstr(status.title, 14), 30, 21) + elapsed = 0 + } // console.log(arg) ctx.drawImage(icon_set.icons, 8, 8, 16, 16) @@ -29,6 +57,10 @@ ipc.on('update-status-bar', () => { else ctx.drawImage(icon_set.pause, 135, 6, 20, 20) ipc.send('updated-tray-image', canvas.toDataURL('image/png', 1)) +} + +ipc.on('update-status-bar', () => { + render_tray() }) ipc.send('register-renderer') diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 43f868067..f3a7b66c3 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -378,6 +378,24 @@
+ + + + + +
+ +
+ +
diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 54b275366..66a6cbc2a 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -131,6 +131,9 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-shiny-tray', 'click', () => { ipc.send('update-tray') }) + initElement('settings-shiny-tray-song-title-rollable', 'click', () => { + ipc.send('update-tray') + }) initElement('settings-discord-rich-presence', 'click', null) initElement('settings-app-language', 'change', showRelaunchButton) initElement('settings-clipboard-read', 'click', () => { diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 880f15133..c08db1fd9 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -102,3 +102,8 @@ settingsProvider.setInitialValue('settings-volume', 100) settingsProvider.setInitialValue('settings-volume-media-keys', false) settingsProvider.setInitialValue('settings-decibel-volume', true) + +settingsProvider.setInitialValue( + 'settings-shiny-tray-song-title-rollable', + true +) From 44ddfa13e8586218a5cce1b58b10c01c136c37e3 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sun, 24 Jan 2021 02:13:58 -0800 Subject: [PATCH 063/489] :globe_with_meridians: Move locales into a seperate repo * Enable locales update without packing/distributing --- src/pages/settings/settings.js | 5 ++- src/providers/translateProvider.js | 50 ++++++++++++++++++++++++++++-- src/utils/defaultSettings.js | 5 +++ 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 66a6cbc2a..363db475b 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -135,7 +135,10 @@ document.addEventListener('DOMContentLoaded', () => { ipc.send('update-tray') }) initElement('settings-discord-rich-presence', 'click', null) - initElement('settings-app-language', 'change', showRelaunchButton) + initElement('settings-app-language', 'change', () => { + ipc.send('language-updated') + showRelaunchButton() + }) initElement('settings-clipboard-read', 'click', () => { ipc.send('switch-clipboard-watcher') checkClipboardWatcherStatus() diff --git a/src/providers/translateProvider.js b/src/providers/translateProvider.js index 08f18bfde..30a0d73e5 100644 --- a/src/providers/translateProvider.js +++ b/src/providers/translateProvider.js @@ -1,15 +1,56 @@ const { ipcMain } = require('electron') const i18n = require('i18n') +var http = require('https') +var fs = require('fs') const settingsProvider = require('./settingsProvider') const defaultLocale = settingsProvider.get('settings-app-language') || 'en' +// Use app.getPath('userData') will cause problem here and I could not figure out why +// So I add a stored value `settings-localses-path` as a workaround. +// - mingjun97 +const localesPath = settingsProvider.get('settings-locales-path') + '/locales' + +var updateLocaleFile = function (locale, cb) { + // console.log('downloading locale file for:' + locale); + dest = `${localesPath}/${locale}.json` + var file = fs.createWriteStream(dest) + var request = http + .get( + `https://raw.githubusercontent.com/ytmdesktop/ytmdesktop-locales/master/locales/${locale}.json`, + function (response) { + let body = '' + response.on('data', function (chunk) { + body += chunk + }) + response.on('end', function () { + file.write(body) + file.close() + }) + } + ) + .on('error', function (err) { + // Handle errors + fs.unlink(dest) // Delete the file async. (But we don't check the result) + if (cb) cb(err.message) + }) +} + i18n.configure({ locales: ['en', 'pt'], - directory: __dirname + '/../locales', + directory: localesPath, defaultLocale: defaultLocale, + autoReload: true, }) +// update locale file when launch +// put a slight delay in case of data racing +setTimeout(function () { + updateLocaleFile(defaultLocale, (a) => { + console.log('cb called', a) + }) +}, 1000) + function setLocale(locale) { i18n.setLocale(locale) } @@ -49,10 +90,15 @@ function loadi18n() { }) } -if (ipcMain) +if (ipcMain) { ipcMain.on('I18N_TRANSLATE', (e, id, params) => { e.returnValue = trans(id, params) }) + // download locale file for new language + ipcMain.on('language-updated', (e, id, params) => { + updateLocaleFile(settingsProvider.get('settings-app-language')) + }) +} module.exports = { setLocale: setLocale, diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index c08db1fd9..b541472e3 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -1,5 +1,6 @@ const settingsProvider = require('../providers/settingsProvider') const { isLinux } = require('./systemInfo') +const { app } = require('electron') if (isLinux()) settingsProvider.setInitialValue('titlebar-type', 'system') // With system title bar @@ -107,3 +108,7 @@ settingsProvider.setInitialValue( 'settings-shiny-tray-song-title-rollable', true ) +settingsProvider.setInitialValue( + 'settings-locales-path', + app.getPath('userData') +) From 89a40d3222679529b3d3a9a8e9b0136e7de228cb Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sun, 24 Jan 2021 02:18:15 -0800 Subject: [PATCH 064/489] :memo: Update readme * Provide instructions for contributing i18n --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index daa693ba3..8f01e5283 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,10 @@ npm start Note: If you're using Linux Bash for Windows, [see this guide](https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/) or use `node` from the command prompt. +## To contribute for your own language + +Navigate to [ytmdesktop-locales](https://github.com/ytmdesktop/ytmdesktop-locales) and follow the instructions there. + ## Contributors [adlerluiz](https://github.com/adlerluiz) From 3c6b21866355203c2d90bfed8748aa6632a0c162 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Sun, 24 Jan 2021 20:06:06 -0800 Subject: [PATCH 065/489] :memo: Add console message for i18n * Help developer locate their locale file --- src/providers/translateProvider.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/providers/translateProvider.js b/src/providers/translateProvider.js index 30a0d73e5..018d4fa3c 100644 --- a/src/providers/translateProvider.js +++ b/src/providers/translateProvider.js @@ -1,4 +1,5 @@ const { ipcMain } = require('electron') +const isDev = require('electron-is-dev') const i18n = require('i18n') var http = require('https') var fs = require('fs') @@ -11,7 +12,22 @@ const defaultLocale = settingsProvider.get('settings-app-language') || 'en' // - mingjun97 const localesPath = settingsProvider.get('settings-locales-path') + '/locales' -var updateLocaleFile = function (locale, cb) { +console.log( + '[!] To add translation for your introduced feature, you may navigate to ' +) +console.log('[!] ' + localesPath + ' to modify the your locale file.') +console.log('[!] Then kindly open a PR to ytmdesktop-locales repo. :)') + +var updateLocaleFile = function (locale, cb, force = false) { + // for developer, skip auto update to prevent data loss + if (isDev && !force) { + console.log('[!]Skip i18n auto-update in development mode') + // updateLocaleFile(locale, cb, true) + console.log( + '[!]You may force update i18n by uncomment previous line in `src/providers/translateProvider`' + ) + return + } // console.log('downloading locale file for:' + locale); dest = `${localesPath}/${locale}.json` var file = fs.createWriteStream(dest) From 80a90d3610b00f0c34223fe25a486bfccdc15d74 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 25 Jan 2021 18:29:16 -0600 Subject: [PATCH 066/489] :recycle: Refactor rich presence code --- src/providers/discordRpcProvider.js | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js index ab759ff11..d2aac0f75 100644 --- a/src/providers/discordRpcProvider.js +++ b/src/providers/discordRpcProvider.js @@ -1,10 +1,9 @@ const clientId = '495666957501071390' const RPC = require('discord-rpc') const settingsProvider = require('./settingsProvider') -const url = require('url') -var client -var _isStarted +let client +let _isStarted function isStarted() { return _isStarted @@ -17,13 +16,11 @@ function _setIsStarted(value) { function start() { client = new RPC.Client({ transport: 'ipc' }) - client.on('ready', () => { - _setIsStarted(true) - }) + client.on('ready', () => _setIsStarted(true)) client.login({ clientId }).catch(() => { if (!isStarted()) { - setTimeout(function () { + setTimeout(() => { start() }, 10000) } @@ -40,12 +37,7 @@ function stop() { _setIsStarted(false) } -function getVideoId(trackUrl) { - var query = new URL(trackUrl) - return query.searchParams.get('v') -} - -function setActivity(info) { +async function setActivity(info) { if (isStarted() && info.track.title) { var now = Date.now() var activity = {} @@ -80,18 +72,16 @@ function setActivity(info) { activity.buttons = [ { label: 'Play on YouTube Music', - url: - 'https://music.youtube.com/watch?v=' + - getVideoId(info.track.url), + url: 'https://music.youtube.com/watch?v=' + info.track.id, }, ] } if (!discordSettings.hideIdle && info.player.isPaused) { - client.clearActivity() + await client.clearActivity() } else { // As of writing this discord-rpc was not updated to support buttons with setActivity - client.request('SET_ACTIVITY', { + await client.request('SET_ACTIVITY', { pid: process.pid, activity: { state: activity.state, From 59561f2c047fd880874828a8c24ad5c5b3dc9ecd Mon Sep 17 00:00:00 2001 From: NovusTheory <3434404+NovusTheory@users.noreply.github.com> Date: Mon, 25 Jan 2021 21:24:33 -0600 Subject: [PATCH 067/489] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Refactor=20rich=20?= =?UTF-8?q?presence=20code=20more?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/providers/discordRpcProvider.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js index d2aac0f75..682a38b78 100644 --- a/src/providers/discordRpcProvider.js +++ b/src/providers/discordRpcProvider.js @@ -39,9 +39,9 @@ function stop() { async function setActivity(info) { if (isStarted() && info.track.title) { - var now = Date.now() - var activity = {} - var discordSettings = settingsProvider.get('discord-presence-settings') + const now = Date.now() + const activity = {} + const discordSettings = settingsProvider.get('discord-presence-settings') if (discordSettings.details) activity.details = info.track.title From 27e745237034a59491935df75873a9d10196c6aa Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Thu, 28 Jan 2021 11:55:46 -0800 Subject: [PATCH 068/489] :bug: Fix scoping error in commit 305273f. Thanks @andia89 for pointing it out. --- main.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index cc7f29ffa..91a6a1683 100644 --- a/main.js +++ b/main.js @@ -36,11 +36,13 @@ const rainmeterNowPlaying = require('./src/providers/rainmeterNowPlaying') const companionServer = require('./src/providers/companionServer') const geniusAuthServer = require('./src/providers/geniusAuthServer') const discordRPC = require('./src/providers/discordRpcProvider') -if (isLinux()) { - const mprisProvider = require('./src/providers/mprisProvider') -} else { - const mprisProvider = null -} +const mprisProvider = (() => { + if (!isLinux()) { + return require('./src/providers/mprisProvider') + } else { + return null + } +})() /* Variables =========================================================================== */ const defaultUrl = 'https://music.youtube.com' @@ -2026,9 +2028,10 @@ ipcMain.on('log', (dataMain, dataRenderer) => { else writeLog(dataRenderer) }) -if (settingsProvider.get('settings-companion-server')) companionServer.start() +if (settingsProvider.get('settings-companion-server') && gotTheLock) + companionServer.start() -if (settingsProvider.get('settings-genius-auth-server')) { +if (settingsProvider.get('settings-genius-auth-server') && gotTheLock) { geniusAuthServer.start() } From f370bdcd266a289ab005eb6e583aa0b8453bbcfd Mon Sep 17 00:00:00 2001 From: Nanda Firdaus Date: Sat, 30 Jan 2021 18:19:57 +0700 Subject: [PATCH 069/489] Fix error not defined message at start up. Prevent tray updateImage when tray is null. --- src/providers/trayProvider.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js index beea7d9a2..d68ef54d9 100644 --- a/src/providers/trayProvider.js +++ b/src/providers/trayProvider.js @@ -209,13 +209,13 @@ function setShinyTray() { function updateImage(payload) { try { - if (!settingsProvider.get('settings-shiny-tray')) return + if (!settingsProvider.get('settings-shiny-tray') || !tray) return const img = typeof nativeImage.createFromDataURL === 'function' ? nativeImage.createFromDataURL(payload) // electron v0.36+ : nativeImage.createFromDataUrl(payload) // electron v0.30 tray.setImage(img) - } catch (_) { + } catch (error) { ipcMain.emit('log', { type: 'warn', data: `Failed to updateImage: ${error}`, From d8e59fecd5e7ec4489bc8c3dd72c1fc83c1207e1 Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Sun, 31 Jan 2021 12:36:45 -0300 Subject: [PATCH 070/489] :memo: Add How to use and FAQ to README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 8f01e5283..a1e63abd5 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,14 @@ window   +# New and don't know how to use it? + +https://github.com/ytmdesktop/ytmdesktop/wiki/How-use + +# FAQ + +https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ + # Available for Packaging status From e54343c662b188196f11791e03b8c727d43c3218 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Tue, 2 Feb 2021 04:49:48 -0800 Subject: [PATCH 071/489] :bug: Fix reference error in main.js:handleOpenUrl * Implement funciton loadMusicByVideoId --- main.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index 91a6a1683..915d1d866 100644 --- a/main.js +++ b/main.js @@ -1750,6 +1750,12 @@ async function createWindow() { } function handleOpenUrl(url) { + const loadMusicByVideoId = ([_, video_id, list_id]) => { + let url = 'https://music.youtube.com/watch?v=' + video_id + if (list_id) url += '&list=' + list_id + // FIXME: this will hurt the funcnility of 'Paint background with album color' for this time + view.webContents.loadURL(url) + } let cmd = url.toString().split('://')[1] if (!cmd) return @@ -1757,7 +1763,7 @@ function handleOpenUrl(url) { ipcMain.emit('window', { command: 'show-settings' }) if (cmd.includes('play/')) { - loadMusicByVideoId(cmd.split('/')[1]) + loadMusicByVideoId(cmd.split('/')) writeLog({ type: 'info', data: JSON.stringify(cmd) }) } } From bb6ff6b630477238c7dc3e2fb592ac81ef7cbc88 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Tue, 2 Feb 2021 14:56:54 -0800 Subject: [PATCH 072/489] :bug: Fix bugs in main.js:handleOpenUrl * Fix fail to loadURL while playing music * Fix accent color after loadURL :apple: MacOS * Change default tray title from 'N/A' to 'YTMDesktop' --- main.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index 915d1d866..acee8c52b 100644 --- a/main.js +++ b/main.js @@ -82,7 +82,7 @@ let windowConfig = { } global.sharedObj = { - title: 'N/A', + title: 'YTMDesktop', paused: true, rollable: settingsProvider.get('settings-shiny-tray-song-title-rollable'), } @@ -1753,8 +1753,11 @@ function handleOpenUrl(url) { const loadMusicByVideoId = ([_, video_id, list_id]) => { let url = 'https://music.youtube.com/watch?v=' + video_id if (list_id) url += '&list=' + list_id - // FIXME: this will hurt the funcnility of 'Paint background with album color' for this time - view.webContents.loadURL(url) + if (!infoPlayerProvider.getPlayerInfo().isPaused) + mediaControl.stopTrack(view) + view.webContents.loadURL(url).then(() => { + updateAccentColorPref() + }) } let cmd = url.toString().split('://')[1] if (!cmd) return From 9284a4326bfa71fa9b037d7ef5a4039d0c7182e2 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Tue, 2 Feb 2021 15:57:38 -0800 Subject: [PATCH 073/489] :lipstick: Make URL in about page clickable #605 * Open ytmdesktop.app in broswer * Add github link --- src/pages/settings/settings.html | 19 +++++++++++++++++-- src/pages/settings/settings.js | 7 +++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index f3a7b66c3..31ba698be 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1321,8 +1321,23 @@ Made with by adlerluiz & contributors -

- https://ytmdesktop.app +

+ + https://ytmdesktop.app + +

+

+ + View on Github +

diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 363db475b..0c787bcf2 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -625,3 +625,10 @@ document.querySelector('#disableAccelerator').addEventListener('click', () => { document.querySelector('#release-notes').addEventListener('click', () => { ipc.send('window', { command: 'show-changelog' }) }) + +document.querySelectorAll('[externalURL]').forEach((element) => { + var externalURL = element.getAttribute('externalURL') + element.addEventListener('click', () => { + shell.openExternal(externalURL) + }) +}) From 82f19192affefc5834da89d6ee961d71da836eb5 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Tue, 9 Feb 2021 23:04:01 -0800 Subject: [PATCH 074/489] :sparkles: #612 Add pause on suspend option --- STORE_VARIABLES.md | 1 + main.js | 8 ++++++++ src/pages/settings/settings.html | 18 ++++++++++++++++++ src/pages/settings/settings.js | 1 + src/utils/defaultSettings.js | 2 ++ 5 files changed, 30 insertions(+) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index 2dc625440..b7c45bcfe 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -28,6 +28,7 @@ | `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | | `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | | `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | +| `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | ## Window | Key | Type | Values | Default | Description | diff --git a/main.js b/main.js index acee8c52b..2b7f60196 100644 --- a/main.js +++ b/main.js @@ -12,6 +12,7 @@ const { screen, shell, dialog, + powerMonitor, } = require('electron') const path = require('path') const isDev = require('electron-is-dev') @@ -2056,6 +2057,13 @@ ipcMain.on('set-audio-output-list', (_, data) => { ipcMain.handle('get-audio-output-list', () => audioDevices) +powerMonitor.on('suspend', () => { + if (settingsProvider.get('settings-pause-on-suspend')) { + if (!infoPlayerProvider.getPlayerInfo().isPaused) + mediaControl.playPauseTrack(view) + } +}) + // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and require them here. const mediaControl = require('./src/providers/mediaProvider') diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 31ba698be..70fb90b7a 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -500,6 +500,24 @@ + + + + + +
+ +
+ + diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 0c787bcf2..5059b5216 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -191,6 +191,7 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-clipboard-always-ask-read', 'click', null) initElement('settings-tray-icon', 'click', showRelaunchButton) + initElement('settings-pause-on-suspend', 'click', null) mInit() document.getElementById('content').classList.remove('hide') diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index b541472e3..fa26fecd2 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -112,3 +112,5 @@ settingsProvider.setInitialValue( 'settings-locales-path', app.getPath('userData') ) + +settingsProvider.setInitialValue('settings-pause-on-suspend', false) From 4979f153b7321eb3224b1be0e128101e9c6edebe Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 10 Feb 2021 02:08:55 -0600 Subject: [PATCH 075/489] :bug: Fix windows media provider --- package-lock.json | 57 +++++++++++++-------------- package.json | 10 ++--- src/providers/windowsMediaProvider.js | 22 +++++------ 3 files changed, 43 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09f4c8085..a63281846 100644 --- a/package-lock.json +++ b/package-lock.json @@ -283,10 +283,10 @@ "cross-spawn": "^7.0.1" } }, - "@nodert-win10/windows.foundation": { - "version": "0.2.96", - "resolved": "https://registry.npmjs.org/@nodert-win10/windows.foundation/-/windows.foundation-0.2.96.tgz", - "integrity": "sha1-vrIGYdh/s1L5xcfEWJm/PCTXjNA=", + "@nodert-win10-rs4/windows.foundation": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz", + "integrity": "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==", "optional": true, "requires": { "nan": "^2.14.2" @@ -300,10 +300,10 @@ } } }, - "@nodert-win10/windows.media": { - "version": "0.2.96", - "resolved": "https://registry.npmjs.org/@nodert-win10/windows.media/-/windows.media-0.2.96.tgz", - "integrity": "sha1-MoeDDxxJSlPT1ruydfSEiSBEmMU=", + "@nodert-win10-rs4/windows.media": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz", + "integrity": "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==", "optional": true, "requires": { "nan": "^2.14.2" @@ -317,27 +317,10 @@ } } }, - "@nodert-win10/windows.media.playback": { - "version": "0.2.96", - "resolved": "https://registry.npmjs.org/@nodert-win10/windows.media.playback/-/windows.media.playback-0.2.96.tgz", - "integrity": "sha1-AX7rxWu1MPm48qRWUAw7fRzkLzU=", - "optional": true, - "requires": { - "nan": "^2.14.2" - }, - "dependencies": { - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - } - } - }, - "@nodert-win10/windows.storage.streams": { - "version": "0.2.96", - "resolved": "https://registry.npmjs.org/@nodert-win10/windows.storage.streams/-/windows.storage.streams-0.2.96.tgz", - "integrity": "sha1-4s85KoPHT5GM5DVtkFKCB2p00Tw=", + "@nodert-win10-rs4/windows.storage.streams": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz", + "integrity": "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==", "optional": true, "requires": { "nan": "^2.14.2" @@ -5028,6 +5011,22 @@ "string-width": "^4.0.0" } }, + "windows.media.playback": { + "version": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", + "from": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", + "optional": true, + "requires": { + "nan": "^2.14.2" + }, + "dependencies": { + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + } + } + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 682961aae..8b4f6746c 100644 --- a/package.json +++ b/package.json @@ -61,12 +61,12 @@ "ws": "^7.4.2" }, "optionalDependencies": { - "@nodert-win10/windows.media": "^0.2.96", - "@nodert-win10/windows.media.playback": "^0.2.96", - "@nodert-win10/windows.storage.streams": "^0.2.96", - "@nodert-win10/windows.foundation": "^0.2.96", + "@nodert-win10-rs4/windows.foundation": "^0.4.4", + "@nodert-win10-rs4/windows.media": "^0.4.4", + "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", "bufferutil": "^4.0.1", "mpris-service": "^2.1.0", - "utf-8-validate": "^5.0.2" + "utf-8-validate": "^5.0.2", + "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" } } diff --git a/src/providers/windowsMediaProvider.js b/src/providers/windowsMediaProvider.js index 13d5efdbf..31327e8b0 100644 --- a/src/providers/windowsMediaProvider.js +++ b/src/providers/windowsMediaProvider.js @@ -2,21 +2,19 @@ const { MediaPlaybackStatus, MediaPlaybackType, SystemMediaTransportControlsButton, -} = require('@nodert-win10/windows.media') -const { - BackgroundMediaPlayer, -} = require('@nodert-win10/windows.media.playback') +} = require('@nodert-win10-rs4/windows.media') +const { BackgroundMediaPlayer } = require('windows.media.playback') const { RandomAccessStreamReference, -} = require('@nodert-win10/windows.storage.streams') -const { Uri } = require('@nodert-win10/windows.foundation') +} = require('@nodert-win10-rs4/windows.storage.streams') +const { Uri } = require('@nodert-win10-rs4/windows.foundation') const mediaControl = require('../providers/mediaProvider') const settingsProvider = require('./settingsProvider') class windowsMediaProvider { constructor() { - this._webContents = null + this._view = null this._isInitialized = false this._controls = BackgroundMediaPlayer.current.systemMediaTransportControls @@ -48,16 +46,16 @@ class windowsMediaProvider { this._controls.on('buttonpressed', (sender, eventArgs) => { switch (eventArgs.button) { case SystemMediaTransportControlsButton.play: - mediaControl.playPauseTrack(this._webContents) + mediaControl.playPauseTrack(this._view) break case SystemMediaTransportControlsButton.pause: - mediaControl.playPauseTrack(this._webContents) + mediaControl.playPauseTrack(this._view) break case SystemMediaTransportControlsButton.next: - mediaControl.nextTrack(this._webContents) + mediaControl.nextTrack(this._view) break case SystemMediaTransportControlsButton.previous: - mediaControl.previousTrack(this._webContents) + mediaControl.previousTrack(this._view) break default: break @@ -66,7 +64,7 @@ class windowsMediaProvider { } init(view) { - this._webContents = view.webContents + this._view = view this._isInitialized = true } From 7df8850f606fed23f08f8e2c633ba85d65a1f044 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 10 Feb 2021 02:13:12 -0600 Subject: [PATCH 076/489] :green_heart: Fix yarn for CI --- yarn.lock | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81793d2c0..d82d12839 100644 --- a/yarn.lock +++ b/yarn.lock @@ -173,31 +173,24 @@ dependencies: cross-spawn "^7.0.1" -"@nodert-win10/windows.foundation@^0.2.96": - version "0.2.96" - resolved "https://registry.yarnpkg.com/@nodert-win10/windows.foundation/-/windows.foundation-0.2.96.tgz#beb20661d87fb352f9c5c7c45899bf3c24d78cd0" - integrity sha1-vrIGYdh/s1L5xcfEWJm/PCTXjNA= +"@nodert-win10-rs4/windows.foundation@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" + integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== dependencies: nan latest -"@nodert-win10/windows.media.playback@^0.2.96": - version "0.2.96" - resolved "https://registry.yarnpkg.com/@nodert-win10/windows.media.playback/-/windows.media.playback-0.2.96.tgz#017eebc56bb530f9b8f2a456500c3b7d1ce42f35" - integrity sha1-AX7rxWu1MPm48qRWUAw7fRzkLzU= +"@nodert-win10-rs4/windows.media@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" + integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== dependencies: nan latest -"@nodert-win10/windows.media@^0.2.96": - version "0.2.96" - resolved "https://registry.yarnpkg.com/@nodert-win10/windows.media/-/windows.media-0.2.96.tgz#3287830f1c494a53d3d6bbb275f48489204498c5" - integrity sha1-MoeDDxxJSlPT1ruydfSEiSBEmMU= - dependencies: - nan latest - -"@nodert-win10/windows.storage.streams@^0.2.96": - version "0.2.96" - resolved "https://registry.yarnpkg.com/@nodert-win10/windows.storage.streams/-/windows.storage.streams-0.2.96.tgz#e2cf392a83c74f918ce4356d905282076a74d13c" - integrity sha1-4s85KoPHT5GM5DVtkFKCB2p00Tw= +"@nodert-win10-rs4/windows.storage.streams@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" + integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== dependencies: nan latest @@ -3989,6 +3982,12 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +"windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": + version "0.1.0" + resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" + dependencies: + nan latest + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" From daec863c4e0c2abf66598047ab962843dd201f9e Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 10 Feb 2021 02:29:35 -0600 Subject: [PATCH 077/489] :children_crossing: Improve UX when using Windows media provider --- main.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/main.js b/main.js index acee8c52b..ec7711f8c 100644 --- a/main.js +++ b/main.js @@ -844,21 +844,23 @@ async function createWindow() { newValue: settingsAccelerator['miniplayer-open-close'], }) - globalShortcut.register('MediaPlayPause', () => { - checkDoubleTapPlayPause() - }) + if (!settingsProvider.get('settings-windows10-media-service-show-info')) { + globalShortcut.register('MediaPlayPause', () => { + checkDoubleTapPlayPause() + }) - globalShortcut.register('MediaStop', () => { - mediaControl.stopTrack(view) - }) + globalShortcut.register('MediaStop', () => { + mediaControl.stopTrack(view) + }) - globalShortcut.register('MediaPreviousTrack', () => { - mediaControl.previousTrack(view) - }) + globalShortcut.register('MediaPreviousTrack', () => { + mediaControl.previousTrack(view) + }) - globalShortcut.register('MediaNextTrack', () => { - mediaControl.nextTrack(view) - }) + globalShortcut.register('MediaNextTrack', () => { + mediaControl.nextTrack(view) + }) + } if (settingsProvider.get('settings-volume-media-keys')) { globalShortcut.register('VolumeUp', () => { From 60a8be130bf1cd76636d7db1febb5b9a95431853 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Wed, 10 Feb 2021 03:21:25 -0800 Subject: [PATCH 078/489] :sparkles: #451 Add sleep timer * UI could be improved * This feature may need more tests(As far as I tested is good) --- main.js | 48 +++++++++ src/utils/injectControls.js | 201 ++++++++++++++++++++++++++++++++++++ 2 files changed, 249 insertions(+) diff --git a/main.js b/main.js index 2b7f60196..b091b74b7 100644 --- a/main.js +++ b/main.js @@ -92,6 +92,11 @@ let iconDefault = assetsProvider.getIcon('favicon') let iconTray = assetsProvider.getIcon('trayTemplate') let iconPlay = assetsProvider.getIcon('favicon_play') let iconPause = assetsProvider.getIcon('favicon_pause') +let sleepTimer = { + mode: 0, // "time/counter/else" + counter: 0, // "minutes in time mode/ songs in counter mode" + interval: 0, // "valid in time mode" +} // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. @@ -559,6 +564,16 @@ async function createWindow() { `) }) + if (sleepTimer.mode == 'counter') { + sleepTimer.counter -= 1 + if (sleepTimer.counter <= 0) { + if (!infoPlayerProvider.getPlayerInfo().isPaused) + mediaControl.playPauseTrack(view) + + sleepTimer.mode = 'off' + } + } + writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) discordRPC.setActivity(getAll()) } @@ -2055,6 +2070,38 @@ ipcMain.on('set-audio-output-list', (_, data) => { audioDevices = data }) +ipcMain.on('set-sleep-timer', (_, data) => { + let counter = parseInt(data.value) + const clearSleepTimer = () => { + if (sleepTimer.mode == 'time') clearInterval(sleepTimer.interval) + sleepTimer.interval = 0 + sleepTimer.mode = 'off' + } + if (counter == 0) { + clearSleepTimer() + } else { + sleepTimer.counter = counter + if (data.value[data.value.length - 1] == 'c') { + sleepTimer.mode = 'counter' + } else { + sleepTimer.mode = 'time' + clearInterval(sleepTimer.interval) + sleepTimer.interval = setInterval(() => { + sleepTimer.counter -= 1 + if (sleepTimer.counter <= 0) { + if (!infoPlayerProvider.getPlayerInfo().isPaused) + mediaControl.playPauseTrack(view) + clearSleepTimer() + } + }, 60 * 1000) + } + } +}) + +ipcMain.on('retrieve-sleep-timer', (e) => { + e.sender.send('sleep-timer-info', sleepTimer.mode, sleepTimer.counter) +}) + ipcMain.handle('get-audio-output-list', () => audioDevices) powerMonitor.on('suspend', () => { @@ -2071,6 +2118,7 @@ const tray = require('./src/providers/trayProvider') const updater = require('./src/providers/updateProvider') const analytics = require('./src/providers/analyticsProvider') const { getTrackInfo } = require('./src/providers/infoPlayerProvider') +const { ipcRenderer } = require('electron/renderer') //const {UpdaterSignal} = require('electron-updater'); analytics.setEvent('main', 'start', 'v' + app.getVersion(), app.getVersion()) diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index fe8eb6d6c..7024affd4 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -147,6 +147,55 @@ function createContextMenu() { .text-red { color: red !important; } + + .ytmd-modal { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 99; /* Sit on top */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + background-color: rgb(0,0,0); /* Fallback color */ + background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ + overflow: hidden + } + + /* Modal Content */ + .ytmd-modal-content { + background: #232323; + font-family: Arial, Helvetica, sans-serif; + padding: 20px; + border: 1px solid #888; + width: 80%; + max-width: 300px; + transition: 0.3s; + color: white; + opacity: 95%; + font-size: 15px; + } + + .ytmd-modal-content-title { + color: white; + opacity: 100% !important; + margin: 0; + width: 100%; + font-size: 20px; + padding-bottom: 5px; + } + .ytmd-modal-close { + color: #aaaaaa; + float: right; + font-size: 28px; + font-weight: bold; + } + + .ytmd-modal-close:hover, + .ytmd-modal-close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + } ` ) ) @@ -692,6 +741,158 @@ function createBottomPlayerBarContent() { }) playerBarRightControls.append(elementMiniplayer) + // Sleep timer + const elementSleepTimer = document.createElement('i') + elementSleepTimer.id = 'ytmd_sleeptimer' + elementSleepTimer.title = translate('SLEEPTIMER') + elementSleepTimer.classList.add( + 'material-icons', + 'pointer', + 'ytmd-icons' + ) + elementSleepTimer.innerText = 'timer' + + const elementSleepTimerModal = document.createElement('div') + const elementSleepTimerModalContent = document.createElement('div') + const elementSleepTimerSet = document.createElement('button') + const elementSleepTimerClear = document.createElement('button') + const elementSleepTimerCloseModal = document.createElement('span') + + elementSleepTimerModal.classList.add('ytmd-modal') + elementSleepTimerModal.id = 'ytmd_sleeptimer_modal' + elementSleepTimerModal.append(elementSleepTimerModalContent) + + elementSleepTimerModalContent.innerHTML = ` +

${translate( + 'SLEEPTIMER' + )}

+
${translate('SLEEP_BY_TIME')} +
+ + + + + + +
+ +
+
${translate('SLEEP_BY_COUNTER')} +
+ + + + + + +
+ +
+ ` + elementSleepTimerModalContent.append(elementSleepTimerSet) + elementSleepTimerModalContent.append(elementSleepTimerClear) + + elementSleepTimerModalContent.prepend(elementSleepTimerCloseModal) + + elementSleepTimer.addEventListener('click', (e) => { + ipcRenderer.send('retrieve-sleep-timer') + elementSleepTimerModal.style.display = 'block' + elementSleepTimerModalContent.style.marginLeft = e.x + 'px' // pop out at mouse position + elementSleepTimerModalContent.style.marginTop = e.y + 'px' + elementSleepTimerModalContent.style.transform = + 'translate(-50%, -50%) scale(0)' // animation + setTimeout(() => { + elementSleepTimerModalContent.style.transform = + 'translate(-100%, -100%) scale(1)' + }, 10) // animation + }) + + elementSleepTimerCloseModal.innerHTML = '×' + elementSleepTimerCloseModal.classList.add('ytmd-modal-close') + elementSleepTimerCloseModal.addEventListener('click', () => { + elementSleepTimerModal.style.display = 'none' + }) + elementSleepTimerModal.addEventListener('click', (e) => { + if (e.target === elementSleepTimerModal) + elementSleepTimerModal.style.display = 'none' // close modal + }) + + elementSleepTimerModalContent.classList.add('ytmd-modal-content') + + elementSleepTimerSet.innerText = translate('SLEEPTIMER_SET') + + elementSleepTimerSet.addEventListener('click', () => { + var value = document.querySelector( + 'input[name="sleep_timer"]:checked' + ).value + if (value) { + ipcRenderer.send('set-sleep-timer', { value: value }) + elementSleepTimerModal.style.display = 'none' + } + }) + + elementSleepTimerClear.innerText = translate('SLEEPTIMER_CLEAR') + elementSleepTimerClear.style.marginLeft = '15px' + elementSleepTimerClear.addEventListener('click', () => { + ipcRenderer.send('set-sleep-timer', { value: 0 }) + elementSleepTimerModal.style.display = 'none' + }) + playerBarRightControls.append(elementSleepTimer) + document.body.append(elementSleepTimerModal) + + document.getElementById( + 'sleep-timer-minutes' + ).onkeydown = document.getElementById( // use the same function when change/keydown + 'sleep-timer-minutes' + ).onchange = (e) => { + var radio = document.getElementById('sleep-timer-customized') + radio.checked = true + radio.value = parseInt(e.target.value) + } + + document.getElementById( + 'sleep-timer-songs' + ).onkeydown = document.getElementById('sleep-timer-songs').onchange = ( // use the same function when change/keydown + e + ) => { + var radio = document.getElementById('sleep-timer-customized-c') + radio.checked = true + radio.value = parseInt(e.target.value) + 'c' + } + + ipcRenderer.on('sleep-timer-info', (_, mode, counter) => { + if (mode == 'time') { + elementSleepTimerClear.disabled = false + elementSleepTimerSet.innerText = translate('SLEEPTIMER_RESET') + var radio = document.getElementById('sleep-timer-customized') + radio.checked = true + radio.value = counter + document.getElementById('sleep-timer-minutes').value = counter + } else if (mode == 'counter') { + elementSleepTimerClear.disabled = false + elementSleepTimerSet.innerText = translate('SLEEPTIMER_RESET') + var radio = document.getElementById('sleep-timer-customized-c') + radio.checked = true + radio.value = counter + document.getElementById('sleep-timer-songs').value = counter + } else { + elementSleepTimerClear.disabled = true + elementSleepTimerSet.innerText = translate('SLEEPTIMER_SET') + } + }) + if (shortcutButtons.miniplayer) document.querySelector('#ytmd_miniplayer').classList.remove('hide') From 8a03ea7e3cf91324946daed4b833eac911956a6e Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Thu, 11 Feb 2021 23:14:43 -0800 Subject: [PATCH 079/489] :bug: #379 Wrong behavior when resizing miniplayer --- main.js | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/main.js b/main.js index b091b74b7..78a587017 100644 --- a/main.js +++ b/main.js @@ -1246,25 +1246,12 @@ async function createWindow() { }, 1000) }) - let storeMiniplayerSizeTimer - miniplayer.on('resize', () => { + miniplayer.on('resize', (e) => { try { - let size = miniplayer.getSize() - if (storeMiniplayerSizeTimer) - clearTimeout(storeMiniplayerSizeTimer) - - storeMiniplayerSizeTimer = setTimeout(() => { - settingsProvider.set( - 'settings-miniplayer-size', - Math.min(...size) - ) - if (miniplayer) { - miniplayer.setSize( - Math.min(...size), - Math.min(...size) - ) - } - }, 500) + let size = Math.min(...miniplayer.getSize()) + miniplayer.setSize(size, size) + settingsProvider.set('settings-miniplayer-size', size) + e.preventDefault() } catch (_) { writeLog({ type: 'warn', data: 'error miniplayer resize' }) } From f2ded211b7271e55672bc9b1ad112ca99c0af0c8 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Fri, 12 Feb 2021 00:43:54 -0800 Subject: [PATCH 080/489] :bug: replace window.focus() with window.show() * window.focus() doesn't work on MacOS --- src/utils/window.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/window.js b/src/utils/window.js index cc15df4da..5d6134e35 100644 --- a/src/utils/window.js +++ b/src/utils/window.js @@ -36,7 +36,7 @@ function checkWindowPosition(windowPosition) { function doBehavior(mainWindow) { if (mainWindow.isVisible()) if (mainWindow.isFocused()) mainWindow.hide() - else mainWindow.focus() + else mainWindow.show() else if (mainWindow.isFocused()) ipcMain.emit('window', { command: 'restore-main-window' }) else ipcMain.emit('window', { command: 'restore-main-window' }) From 6f277df5c27c711c75bfcdcde9726ccf50c12332 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Fri, 12 Feb 2021 00:52:52 -0800 Subject: [PATCH 081/489] :bug: Replace window.focus() with window.show() * window.focus() doesn't work on MacOS * Missed one from previous commit --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index 78a587017..edd425056 100644 --- a/main.js +++ b/main.js @@ -1789,7 +1789,7 @@ else { if (mainWindow.isMinimized()) mainWindow.restore() else mainWindow.show() - mainWindow.focus() + mainWindow.show() } }) From 86ae7d6958f97cbdf04798c76253dad66756fcde Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Fri, 12 Feb 2021 13:50:55 -0600 Subject: [PATCH 082/489] :bug: Shortcuts were not properly re-enabled for Windows 10 with settings conflict --- main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index ec7711f8c..2cd789a4b 100644 --- a/main.js +++ b/main.js @@ -844,7 +844,10 @@ async function createWindow() { newValue: settingsAccelerator['miniplayer-open-close'], }) - if (!settingsProvider.get('settings-windows10-media-service-show-info')) { + if ( + !settingsProvider.get('settings-windows10-media-service-show-info') || + !settingsProvider.get('settings-windows10-media-service') + ) { globalShortcut.register('MediaPlayPause', () => { checkDoubleTapPlayPause() }) From 4f4c989e0b131bdefddd73d0efad6af6bbf4d209 Mon Sep 17 00:00:00 2001 From: Dev Singh Date: Sun, 14 Feb 2021 09:30:49 -0600 Subject: [PATCH 083/489] fix: do not show on discord status when advert is playing --- src/providers/discordRpcProvider.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js index 336ae5160..81b109fa5 100644 --- a/src/providers/discordRpcProvider.js +++ b/src/providers/discordRpcProvider.js @@ -70,8 +70,10 @@ function setActivity(info) { activity.largeImageText = 'YouTube Music' activity.smallImageText = info.player.isPaused ? 'Paused' : 'Playing' activity.instance = false - - if (!discordSettings.hideIdle && info.player.isPaused) { + if ( + (!discordSettings.hideIdle && info.player.isPaused) || + info.track.isAdvertisement + ) { client.clearActivity() } else { client.setActivity(activity).catch((err) => { From 5df6f08535a9d8e3537e6a371b47b7f9ae17d25d Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Mon, 15 Feb 2021 00:49:22 -0800 Subject: [PATCH 084/489] Much more improved Miniplayer - Completely rewrite convertToHuman() function -- Hours of pain and troubleshooting ;w; --- All following is miniplayer related - Add hover animations to control buttons - Smooth solidify transition when liking/unliking --- main.js | 3 +++ src/pages/miniplayer/miniplayer.css | 17 +++++++++++-- src/pages/miniplayer/miniplayer.html | 6 +++++ src/pages/miniplayer/miniplayer.js | 21 +++++++++++----- src/providers/infoPlayerProvider.js | 36 ++++++++++++++++------------ 5 files changed, 60 insertions(+), 23 deletions(-) diff --git a/main.js b/main.js index 617a70e52..35e257fec 100644 --- a/main.js +++ b/main.js @@ -1262,6 +1262,9 @@ async function createWindow() { } }) + // Devtools + // miniplayer.openDevTools() + mainWindow.hide() } } diff --git a/src/pages/miniplayer/miniplayer.css b/src/pages/miniplayer/miniplayer.css index 7cacf961d..bd7658801 100644 --- a/src/pages/miniplayer/miniplayer.css +++ b/src/pages/miniplayer/miniplayer.css @@ -35,6 +35,7 @@ body.showinfo #background { height: 100%; padding: 1.5vmin; filter: opacity(0); + border-radius: 100%; } .cmd-btn i { @@ -93,12 +94,14 @@ body.showinfo #background { #btn-like, #btn-dislike { margin: 5vmin 2.5vmin; + width: 100%; } #btn-like i, #btn-dislike i { font-size: 7vmin; padding: 2.5vmin; + position: absolute; } #btn-play-pause i { @@ -115,6 +118,7 @@ body.showinfo #background { height: 100%; width: 0; background: #fff; + transition: width 0.15s ease-in; } #content, @@ -169,8 +173,17 @@ body.showinfo #background { /* transitions */ .player-info, .cmd-btn, -.progress-bar { - transition: filter, margin-top, height; +.progress-bar, +.ctrl-btn, +.material-icons { + transition: filter, margin-top, height, background-color, opacity; transition-duration: 0.15s; transition-timing-function: ease-out; } + +.show-solid { + opacity: 1; +} +.hide-solid { + opacity: 0; +} \ No newline at end of file diff --git a/src/pages/miniplayer/miniplayer.html b/src/pages/miniplayer/miniplayer.html index 3f308f9c3..057259ad1 100644 --- a/src/pages/miniplayer/miniplayer.html +++ b/src/pages/miniplayer/miniplayer.html @@ -62,6 +62,9 @@
+ thumb_down + + thumb_down
@@ -74,6 +77,9 @@ skip_next
+ thumb_up + + thumb_up
diff --git a/src/pages/miniplayer/miniplayer.js b/src/pages/miniplayer/miniplayer.js index a8d367799..47ea6d0e5 100644 --- a/src/pages/miniplayer/miniplayer.js +++ b/src/pages/miniplayer/miniplayer.js @@ -97,20 +97,29 @@ function setPlayerInfo(data) { body.classList.remove('showinfo') } + const btnLikeCL = btnLike.children.item(0).classList + const btnDislikeCL = btnDislike.children.item(0).classList + switch (data.player.likeStatus) { case 'LIKE': - btnLike.children.item(0).classList.remove('outlined') - btnDislike.children.item(0).classList.add('outlined') + btnLikeCL.add('show-solid') + btnLikeCL.remove('hide-solid') + btnDislikeCL.add('hide-solid') + btnDislikeCL.remove('show-solid') break case 'DISLIKE': - btnLike.children.item(0).classList.add('outlined') - btnDislike.children.item(0).classList.remove('outlined') + btnLikeCL.add('hide-solid') + btnLikeCL.remove('show-solid') + btnDislikeCL.add('show-solid') + btnDislikeCL.remove('hide-solid') break case 'INDIFFERENT': - btnLike.children.item(0).classList.add('outlined') - btnDislike.children.item(0).classList.add('outlined') + btnDislikeCL.add('hide-solid') + btnDislikeCL.remove('show-solid') + btnLikeCL.add('hide-solid') + btnLikeCL.remove('show-solid') break } diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index 4b02b862e..10e85e31c 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -536,21 +536,27 @@ function addToPlaylist(webContents, index) { } function convertToHuman(time) { - let _aux = time - let _minutes = 0 - let _seconds - - while (_aux >= 60) { - _aux = _aux - 60 - _minutes++ - } - - _seconds = _aux - - if (_seconds < 10) { - return _minutes + ':0' + _seconds - } - return _minutes + ':' + _seconds + let hours = Math.floor(time / 3600) + time %= 3600 + let minutes = Math.floor(time / 60) + let seconds = Math.floor(time % 60) + + let final = + hours.toString().padStart(2, '0') + + ':' + + minutes.toString().padStart(2, '0') + + ':' + + seconds.toString().padStart(2, '0') + + final.startsWith('00:0') + ? (final = final.slice(4)) + : final.startsWith('00:') + ? (final = final.slice(3)) + : final.startsWith('0') + ? (final = final.slice(1)) + : null + + return final } function setPercent(px, ptotal) { From ea3398ecd54204839be9973c82becd043203eb60 Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Mon, 15 Feb 2021 22:35:46 -0800 Subject: [PATCH 085/489] Add "dev" script for development --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 8b4f6746c..7eeb6148d 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "main.js", "scripts": { "start": "electron .", + "dev": "nodemon --exec yarn start --dev --inspect", "rebuild": "electron-rebuild -f", "postinstall": "npx electron-builder install-app-deps", "build:win": "npx electron-builder --win --config electron-builder-deploy64.yml", From c50eee3526591773ca6c1ac0f66d355e5557dee9 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Thu, 18 Feb 2021 15:15:23 -0800 Subject: [PATCH 086/489] :bug: Fix bug in main.js for mpris on linux Thanks @flleeppyy for pointing out :) --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index 35e257fec..f581b30f6 100644 --- a/main.js +++ b/main.js @@ -38,7 +38,7 @@ const companionServer = require('./src/providers/companionServer') const geniusAuthServer = require('./src/providers/geniusAuthServer') const discordRPC = require('./src/providers/discordRpcProvider') const mprisProvider = (() => { - if (!isLinux()) { + if (isLinux()) { return require('./src/providers/mprisProvider') } else { return null From 77d28de215c377a39143f1702b5a8555e3c787dc Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Thu, 18 Feb 2021 22:27:03 -0800 Subject: [PATCH 087/489] Add certain yarn files to gitignore --- .gitignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e8d637bb3..da7f830b4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,11 @@ node_modules .idea dist .DS_Store -# yarn.lock +yarn-error.log +.yarn # package-lock.json /youtube-music-desktop-app-*.tgz /.cache assets/custom-theme.css app-update.yml -dev-app-update.yml \ No newline at end of file +dev-app-update.yml From 2f4ffd33780fd54c039c5d02d685b275bb8daf1f Mon Sep 17 00:00:00 2001 From: Flleeppyy <18307183+flleeppyy@users.noreply.github.com> Date: Fri, 19 Feb 2021 15:35:00 -0800 Subject: [PATCH 088/489] Add development branch note --- .github/ISSUE_TEMPLATE/bug_report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5b03ea166..77d5d73fd 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,6 +26,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Environment (please complete the following information):** + * YTMDesktop version: ***vx.x.x*** * OS: ***Windows*** or ***Linux*** or ***Mac*** * OS version: ***X*** From 3c2928bca95f124e8cd134fa2a84331457151e26 Mon Sep 17 00:00:00 2001 From: Mazen Kotb Date: Tue, 23 Feb 2021 09:09:53 -0800 Subject: [PATCH 089/489] =?UTF-8?q?=E2=9C=A8=20macOS=20Media=20Integration?= =?UTF-8?q?=20=E2=9C=A8=20Media=20Touchbar=20Support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 Broken media hotkeys (play/next/prev) on new versions of macOS --- main.js | 16 + package-lock.json | 6343 +++++++++++++++++++++++- package.json | 1 + src/providers/macMediaProvider.js | 88 + yarn.lock | 7629 ++++++++++++++--------------- 5 files changed, 10120 insertions(+), 3957 deletions(-) create mode 100644 src/providers/macMediaProvider.js diff --git a/main.js b/main.js index f581b30f6..c9bff945a 100644 --- a/main.js +++ b/main.js @@ -63,6 +63,7 @@ let mainWindow, updateTrackInfoTimeout, activityLikeStatus, windowsMediaProvider, + macMediaProvider, audioDevices let isFirstTime = false @@ -144,6 +145,8 @@ if (isMac()) { ) const menu = Menu.buildFromTemplate(statusBarMenu) Menu.setApplicationMenu(menu) + + macMediaProvider = require('./src/providers/macMediaProvider') } if (settingsProvider.get('settings-disable-hardware-acceleration')) @@ -397,6 +400,7 @@ async function createWindow() { if (isMac()) { global.sharedObj.paused = false updateStatusBar() + macMediaProvider.init(view); } if (infoPlayerInterval === undefined) { @@ -454,6 +458,18 @@ async function createWindow() { playerInfo.isPaused ) + if (isMac()) { + macMediaProvider.setPlaybackData( + title, + author, + cover, + album, + seekbarCurrentPosition, + duration, + !playerInfo.isPaused + ); + } + /** * Scrobble when track changes or when current track starts from the beginning */ diff --git a/package-lock.json b/package-lock.json index a63281846..171c94d18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,6247 @@ { "name": "youtube-music-desktop-app", "version": "1.13.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "7zip-bin": { + "packages": { + "": { + "name": "youtube-music-desktop-app", + "version": "1.13.0", + "hasInstallScript": true, + "license": "CC0-1.0", + "dependencies": { + "ace-builds": "^1.4.12", + "discord-rpc": "^3.1.4", + "electron-canvas-to-buffer": "^2.0.0", + "electron-clipboard-watcher": "^1.0.1", + "electron-google-analytics": "^1.0.2", + "electron-is-dev": "^1.2.0", + "electron-localshortcut": "^3.2.1", + "electron-log": "^4.3.1", + "electron-media-service": "github:tidal-engineering/electron-media-service", + "electron-store": "^6.0.1", + "electron-updater": "^4.3.5", + "i18n": "^0.13.2", + "image-to-base64": "^2.1.1", + "js-base64": "^3.6.0", + "markdown": "^0.5.0", + "node-fetch": "^2.6.1", + "node-vibrant": "^3.1.5", + "postscribe": "^2.0.8", + "qrcode-generator": "^1.4.4", + "register-scheme": "0.0.2", + "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", + "socket.io": "^2.3.0", + "uuid": "^8.3.2", + "ws": "^7.4.2" + }, + "devDependencies": { + "electron": "^11.1.1", + "electron-builder": "^22.9.1", + "electron-rebuild": "^2.3.4", + "husky": "^4.3.7", + "prettier": "^2.2.1", + "pretty-quick": "^2.0.2" + }, + "optionalDependencies": { + "@nodert-win10-rs4/windows.foundation": "^0.4.4", + "@nodert-win10-rs4/windows.media": "^0.4.4", + "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", + "bufferutil": "^4.0.1", + "mpris-service": "^2.1.0", + "utf-8-validate": "^5.0.2", + "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", + "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/@electron/get": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", + "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz", + "integrity": "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/core": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz", + "integrity": "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz", + "integrity": "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.9.8", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz", + "integrity": "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz", + "integrity": "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz", + "integrity": "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "core-js": "^3.4.1" + } + }, + "node_modules/@jimp/png": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz", + "integrity": "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.9.8", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz", + "integrity": "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + } + }, + "node_modules/@jimp/types": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz", + "integrity": "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.9.8", + "@jimp/gif": "^0.9.8", + "@jimp/jpeg": "^0.9.8", + "@jimp/png": "^0.9.8", + "@jimp/tiff": "^0.9.8", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "node_modules/@jimp/utils": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz", + "integrity": "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodert-win10-rs4/windows.foundation": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz", + "integrity": "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==", + "optional": true, + "dependencies": { + "nan": "^2.14.2" + } + }, + "node_modules/@nodert-win10-rs4/windows.foundation/node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "node_modules/@nodert-win10-rs4/windows.media": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz", + "integrity": "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==", + "optional": true, + "dependencies": { + "nan": "^2.14.2" + } + }, + "node_modules/@nodert-win10-rs4/windows.media/node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "node_modules/@nodert-win10-rs4/windows.storage.streams": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz", + "integrity": "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==", + "optional": true, + "dependencies": { + "nan": "^2.14.2" + } + }, + "node_modules/@nodert-win10-rs4/windows.storage.streams/node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", + "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "node_modules/@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz", + "integrity": "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", + "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.158", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz", + "integrity": "sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", + "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz", + "integrity": "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" + }, + "node_modules/@types/yargs": { + "version": "15.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz", + "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "node_modules/7zip-bin": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", "dev": true }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/abstract-socket": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz", + "integrity": "sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "linux" + ], + "dependencies": { + "bindings": "^1.2.1", + "nan": "^2.12.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ace-builds": { + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz", + "integrity": "sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg==" + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/app-builder-bin": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", + "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz", + "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "7zip-bin": "~5.0.3", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.9.1", + "builder-util-runtime": "8.7.2", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.0", + "ejs": "^3.1.5", + "electron-publish": "22.9.1", + "fs-extra": "^9.0.1", + "hosted-git-info": "^3.0.5", + "is-ci": "^2.0.0", + "isbinaryfile": "^4.0.6", + "js-yaml": "^3.14.0", + "lazy-val": "^1.0.4", + "minimatch": "^3.0.4", + "normalize-package-data": "^2.5.0", + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.2", + "temp-file": "^3.3.7" + }, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/app-builder-lib/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dependencies": { + "callsite": "1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, + "node_modules/boolean": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", + "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", + "dev": true, + "optional": true + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "devOptional": true + }, + "node_modules/bufferutil": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz", + "integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==", + "optional": true, + "dependencies": { + "node-gyp-build": "~3.7.0" + } + }, + "node_modules/builder-util": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz", + "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.5", + "@types/fs-extra": "^9.0.1", + "7zip-bin": "~5.0.3", + "app-builder-bin": "3.5.10", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "8.7.2", + "chalk": "^4.1.0", + "debug": "^4.3.0", + "fs-extra": "^9.0.1", + "is-ci": "^2.0.0", + "js-yaml": "^3.14.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.3.7" + } + }, + "node_modules/builder-util-runtime": { + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", + "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", + "dependencies": { + "debug": "^4.1.1", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=8.2.5" + } + }, + "node_modules/builder-util/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/conf": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz", + "integrity": "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==", + "dependencies": { + "ajv": "^6.12.2", + "atomically": "^1.3.1", + "debounce-fn": "^4.0.0", + "dot-prop": "^5.2.0", + "env-paths": "^2.2.0", + "json-schema-typed": "^7.0.3", + "make-dir": "^3.1.0", + "onetime": "^5.1.0", + "pkg-up": "^3.1.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dbus-next": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz", + "integrity": "sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA==", + "optional": true, + "dependencies": { + "abstract-socket": "^2.0.0", + "event-stream": "3.3.4", + "hexy": "^0.2.10", + "jsbi": "^2.0.5", + "long": "^4.0.0", + "put": "0.0.6", + "safe-buffer": "^5.1.1", + "xml2js": "^0.4.17" + } + }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "optional": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "optional": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true, + "optional": true + }, + "node_modules/discord-rpc": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz", + "integrity": "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==", + "dependencies": { + "node-fetch": "^2.6.1", + "ws": "^7.3.1" + } + }, + "node_modules/dmg-builder": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz", + "integrity": "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==", + "dev": true, + "dependencies": { + "app-builder-lib": "22.9.1", + "builder-util": "22.9.1", + "fs-extra": "^9.0.1", + "iconv-lite": "^0.6.2", + "js-yaml": "^3.14.0", + "sanitize-filename": "^1.6.3" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "optional": true + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", + "dev": true, + "dependencies": { + "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz", + "integrity": "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==", + "dev": true, + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz", + "integrity": "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==", + "dev": true, + "dependencies": { + "@types/yargs": "^15.0.5", + "app-builder-lib": "22.9.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.9.1", + "builder-util-runtime": "8.7.2", + "chalk": "^4.1.0", + "dmg-builder": "22.9.1", + "fs-extra": "^9.0.1", + "is-ci": "^2.0.0", + "lazy-val": "^1.0.4", + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "update-notifier": "^4.1.1", + "yargs": "^16.0.3" + }, + "bin": { + "electron-builder": "out/cli/cli.js", + "install-app-deps": "out/cli/install-app-deps.js" + }, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/electron-canvas-to-buffer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz", + "integrity": "sha1-2pLNc0LkezsN3io655l45aB2FoE=" + }, + "node_modules/electron-clipboard-watcher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz", + "integrity": "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" + }, + "node_modules/electron-fetch": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz", + "integrity": "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==", + "dependencies": { + "encoding": "^0.1.13" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/electron-google-analytics": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz", + "integrity": "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==", + "dependencies": { + "electron-fetch": "^1.7.1", + "uuid": "^8.3.0" + } + }, + "node_modules/electron-is-accelerator": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", + "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" + }, + "node_modules/electron-is-dev": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", + "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + }, + "node_modules/electron-localshortcut": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", + "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", + "dependencies": { + "debug": "^4.0.1", + "electron-is-accelerator": "^0.1.0", + "keyboardevent-from-electron-accelerator": "^2.0.0", + "keyboardevents-areequal": "^0.2.1" + } + }, + "node_modules/electron-log": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz", + "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" + }, + "node_modules/electron-media-service": { + "version": "0.2.6", + "resolved": "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^3.0.2", + "semver": "^7.3.2" + } + }, + "node_modules/electron-media-service/node_modules/node-addon-api": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + }, + "node_modules/electron-publish": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz", + "integrity": "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.9.1", + "builder-util-runtime": "8.7.2", + "chalk": "^4.1.0", + "fs-extra": "^9.0.1", + "lazy-val": "^1.0.4", + "mime": "^2.4.6" + } + }, + "node_modules/electron-publish/node_modules/mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-rebuild": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz", + "integrity": "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^9.0.1", + "got": "^11.7.0", + "lzma-native": "^6.0.1", + "node-abi": "^2.19.2", + "node-gyp": "^7.1.0", + "ora": "^5.1.0", + "tar": "^6.0.5", + "yargs": "^16.0.0" + }, + "bin": { + "electron-rebuild": "lib/src/cli.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/electron-rebuild/node_modules/@sindresorhus/is": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", + "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/@szmarczak/http-timer": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", + "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/cacheable-request": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", + "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/defer-to-connect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", + "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/got": { + "version": "11.8.1", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.1.tgz", + "integrity": "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/electron-rebuild/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/electron-rebuild/node_modules/keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/electron-rebuild/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/electron-store": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz", + "integrity": "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==", + "dependencies": { + "conf": "^7.1.2", + "type-fest": "^0.16.0" + } + }, + "node_modules/electron-store/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-updater": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz", + "integrity": "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==", + "dependencies": { + "@types/semver": "^7.3.1", + "builder-util-runtime": "8.7.2", + "fs-extra": "^9.0.1", + "js-yaml": "^3.14.0", + "lazy-val": "^1.0.4", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.2" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", + "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "optional": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "optional": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "optional": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/filelist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "optional": true + }, + "node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "node_modules/global-agent": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", + "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "core-js": "^3.6.5", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "dependencies": { + "ini": "^1.3.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "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, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "devOptional": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hexy": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", + "integrity": "sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==", + "optional": true, + "bin": { + "hexy": "bin/hexy_cmd.js" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.0-beta.5.2", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", + "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/husky": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz", + "integrity": "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/i18n": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz", + "integrity": "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==", + "dependencies": { + "debug": "^4.1.1", + "make-plural": "^6.2.2", + "math-interval-parser": "^2.0.1", + "messageformat": "^2.3.0", + "mustache": "^4.0.1", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/i18n/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-to-base64": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz", + "integrity": "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==", + "dependencies": { + "node-fetch": "^2.6.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "optional": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "optional": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "dependencies": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/jake/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jake/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "node_modules/js-base64": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", + "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbi": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz", + "integrity": "sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ==", + "optional": true + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/keyboardevent-from-electron-accelerator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", + "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" + }, + "node_modules/keyboardevents-areequal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", + "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-val": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", + "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "optional": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lzma-native": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", + "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "dev": true, + "dependencies": { + "node-addon-api": "^1.6.0", + "node-pre-gyp": "^0.11.0", + "readable-stream": "^2.3.5", + "rimraf": "^2.7.1" + }, + "bin": { + "lzmajs": "bin/lzmajs" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "optional": true + }, + "node_modules/markdown": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", + "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", + "dependencies": { + "nopt": "~2.1.1" + }, + "bin": { + "md2html": "bin/md2html.js" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/messageformat": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", + "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", + "dependencies": { + "make-plural": "^4.3.0", + "messageformat-formatters": "^2.0.1", + "messageformat-parser": "^4.1.2" + } + }, + "node_modules/messageformat-formatters": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", + "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" + }, + "node_modules/messageformat-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", + "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" + }, + "node_modules/messageformat/node_modules/make-plural": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", + "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "make-plural": "bin/make-plural" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mpris-service": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.0.tgz", + "integrity": "sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg==", + "optional": true, + "dependencies": { + "dbus-next": "^0.5.1", + "deep-equal": "^1.0.1", + "source-map-support": "^0.5.11" + } + }, + "node_modules/mri": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", + "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mustache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", + "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==", + "bin": { + "mustache": "bin/mustache" + }, + "engines": { + "npm": ">=1.4.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + }, + "node_modules/needle": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", + "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", + "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "dev": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", + "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/node-pre-gyp/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/node-pre-gyp/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-pre-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/node-vibrant": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz", + "integrity": "sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg==", + "dependencies": { + "@jimp/custom": "^0.9.3", + "@jimp/plugin-resize": "^0.9.3", + "@jimp/types": "^0.9.3", + "@types/lodash": "^4.14.53", + "@types/node": "^10.11.7", + "lodash": "^4.17.4", + "url": "^0.11.0" + } + }, + "node_modules/node-vibrant/node_modules/@types/node": { + "version": "10.17.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", + "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" + }, + "node_modules/nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "optional": true + }, + "node_modules/object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", + "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/ora": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "node_modules/parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "optional": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postscribe": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz", + "integrity": "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=", + "dependencies": { + "prescribe": ">=1.1.2" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prescribe": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz", + "integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" + }, + "node_modules/prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-quick": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", + "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "execa": "^2.1.0", + "find-up": "^4.1.0", + "ignore": "^5.1.4", + "mri": "^1.1.4", + "multimatch": "^4.0.0" + }, + "bin": { + "pretty-quick": "bin/pretty-quick.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-quick/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-quick/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/pretty-quick/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/pretty-quick/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/pretty-quick/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-quick/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-quick/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/put": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/put/-/put-0.0.6.tgz", + "integrity": "sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM=", + "optional": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/qrcode-generator": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", + "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-config-file": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz", + "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==", + "dev": true, + "dependencies": { + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "js-yaml": "^3.13.1", + "json5": "^2.1.2", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/register-scheme": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/register-scheme/-/register-scheme-0.0.2.tgz", + "integrity": "sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw==", + "dependencies": { + "bindings": "^1.3.0", + "node-addon-api": "^1.3.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-alpn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", + "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "devOptional": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scribble": { + "resolved": "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-regex": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + }, + "node_modules/socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dependencies": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "devOptional": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "optional": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "optional": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-file": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", + "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^8.1.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "optional": true + }, + "node_modules/timm": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", + "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" + }, + "node_modules/tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "engines": { + "node": "*" + } + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/utf-8-validate": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz", + "integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==", + "optional": true, + "dependencies": { + "node-gyp-build": "~3.7.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/windows.media.playback": { + "resolved": "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", + "optional": true, + "dependencies": { + "nan": "^2.14.2" + } + }, + "node_modules/windows.media.playback/node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "optional": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "dependencies": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -449,6 +6681,12 @@ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, + "7zip-bin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", + "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -555,8 +6793,8 @@ "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", "dev": true, "requires": { - "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.6.5", + "7zip-bin": "~5.0.3", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", "builder-util": "22.9.1", @@ -847,7 +7085,8 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "devOptional": true }, "bufferutil": { "version": "4.0.1", @@ -864,9 +7103,9 @@ "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", "dev": true, "requires": { - "7zip-bin": "~5.0.3", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.1", + "7zip-bin": "~5.0.3", "app-builder-bin": "3.5.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.2", @@ -1322,6 +7561,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "optional": true, "requires": { "object-keys": "^1.0.12" } @@ -1516,6 +7756,22 @@ "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz", "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" }, + "electron-media-service": { + "version": "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", + "from": "electron-media-service@github:tidal-engineering/electron-media-service", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^3.0.2", + "semver": "^7.3.2" + }, + "dependencies": { + "node-addon-api": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + } + } + }, "electron-publish": { "version": "22.9.1", "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz", @@ -1813,6 +8069,7 @@ "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "optional": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -1831,6 +8088,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "optional": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2064,7 +8322,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "devOptional": true }, "gauge": { "version": "2.7.4", @@ -2258,6 +8517,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "devOptional": true, "requires": { "function-bind": "^1.1.1" } @@ -2284,7 +8544,8 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "optional": true }, "has-unicode": { "version": "2.0.1", @@ -2478,7 +8739,8 @@ "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "optional": true }, "is-ci": { "version": "2.0.0", @@ -2501,7 +8763,8 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "optional": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -2551,6 +8814,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "optional": true, "requires": { "has-symbols": "^1.0.1" } @@ -2565,6 +8829,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "optional": true, "requires": { "has-symbols": "^1.0.1" } @@ -3422,7 +9687,8 @@ "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "optional": true }, "object-is": { "version": "1.1.2", @@ -3437,12 +9703,14 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "optional": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -4233,7 +10501,8 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "devOptional": true }, "safer-buffer": { "version": "2.1.2", @@ -4255,8 +10524,8 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "scribble": { - "version": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", - "from": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" + "version": "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43", + "from": "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" }, "semver": { "version": "7.3.2", @@ -4414,12 +10683,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "devOptional": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4503,6 +10774,23 @@ "duplexer": "~0.1.1" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -4547,6 +10835,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "optional": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -4556,28 +10845,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "optional": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -5012,8 +11285,8 @@ } }, "windows.media.playback": { - "version": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", - "from": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", + "version": "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", + "from": "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git", "optional": true, "requires": { "nan": "^2.14.2" diff --git a/package.json b/package.json index 8b4f6746c..ad0c195d1 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "electron-is-dev": "^1.2.0", "electron-localshortcut": "^3.2.1", "electron-log": "^4.3.1", + "electron-media-service": "github:tidal-engineering/electron-media-service", "electron-store": "^6.0.1", "electron-updater": "^4.3.5", "i18n": "^0.13.2", diff --git a/src/providers/macMediaProvider.js b/src/providers/macMediaProvider.js new file mode 100644 index 000000000..0fd378d01 --- /dev/null +++ b/src/providers/macMediaProvider.js @@ -0,0 +1,88 @@ +const MediaService = require('electron-media-service'); +const mediaControl = require('../providers/mediaProvider') + +class MacMediaProvider { + constructor() { + this.view = null; + this.mediaService = new MediaService(); + this.lastObj = {}; + + this.mediaService.on('play', () => { + if (this.lastObj.state === 'paused' && !this.attemptedAction) { + mediaControl.playPauseTrack(this.view); + this.attemptedAction = true; + } + }); + + this.mediaService.on('pause', () => { + if (this.lastObj.state === 'playing' && !this.attemptedAction) { + mediaControl.playPauseTrack(this.view); + this.attemptedAction = true; + } + }) + + this.mediaService.on('playPause', () => { + if (!this.attemptedAction) { + mediaControl.playPauseTrack(this.view); + this.attemptedAction = true; + } + }) + + this.mediaService.on('next', () => { + if (!this.attemptedAction) { + mediaControl.nextTrack(this.view); + this.attemptedAction = true; + } + }); + + this.mediaService.on('previous', () => { + if (!this.attemptedAction) { + mediaControl.previousTrack(this.view); + this.attemptedAction = true; + } + }); + + this.mediaService.on('seek', (to) => { + if (!this.attemptedAction) { + mediaControl.changeSeekbar(this.view, to / 1000); + this.attemptedAction = true; + } + }); + } + + init(view) { + this.view = view; + this.mediaService.startService(); + } + + setPlaybackData(title, artist, cover, album, time, duration, playing) { + if (this.lastTime == time) { + return; + } + + this.lastObj = { + title, + artist, + album, + state: playing ? 'playing' : 'paused', + albumArt: cover, + id: this.hashCode(title), + currentTime: time * 1000, + duration: duration * 1000 + }; + this.attemptedAction = false; + this.mediaService.setMetaData(this.lastObj); + } + + hashCode(str) { + var hash = 0, i, chr; + for (i = 0; i < str.length; i++) { + chr = str.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; + } +} + +module.exports = new MacMediaProvider(); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index d82d12839..4cb008e8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,152 +2,147 @@ # yarn lockfile v1 -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== - "@babel/code-frame@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + "version" "7.12.11" dependencies: "@babel/highlight" "^7.10.4" "@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + "integrity" "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" + "version" "7.12.11" "@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + "integrity" "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@babel/runtime@^7.7.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + "integrity" "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz" + "version" "7.11.0" dependencies: - regenerator-runtime "^0.13.4" + "regenerator-runtime" "^0.13.4" "@develar/schema-utils@~2.6.5": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" - integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + "integrity" "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==" + "resolved" "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + "version" "2.6.5" dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" + "ajv" "^6.12.0" + "ajv-keywords" "^3.4.1" "@electron/get@^1.0.1": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" - integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - sanitize-filename "^1.6.2" - sumchecker "^3.0.1" + "integrity" "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==" + "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz" + "version" "1.12.2" + dependencies: + "debug" "^4.1.1" + "env-paths" "^2.2.0" + "fs-extra" "^8.1.0" + "got" "^9.6.0" + "progress" "^2.0.3" + "sanitize-filename" "^1.6.2" + "sumchecker" "^3.0.1" optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" + "global-agent" "^2.0.2" + "global-tunnel-ng" "^2.7.1" "@jimp/bmp@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624" - integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg== + "integrity" "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==" + "resolved" "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - bmp-js "^0.1.0" - core-js "^3.4.1" + "bmp-js" "^0.1.0" + "core-js" "^3.4.1" "@jimp/core@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85" - integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw== + "integrity" "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==" + "resolved" "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - any-base "^1.1.0" - buffer "^5.2.0" - core-js "^3.4.1" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "^0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" + "any-base" "^1.1.0" + "buffer" "^5.2.0" + "core-js" "^3.4.1" + "exif-parser" "^0.1.12" + "file-type" "^9.0.0" + "load-bmfont" "^1.3.1" + "mkdirp" "^0.5.1" + "phin" "^2.9.1" + "pixelmatch" "^4.0.2" + "tinycolor2" "^1.4.1" "@jimp/custom@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1" - integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw== + "integrity" "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==" + "resolved" "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/core" "^0.9.8" - core-js "^3.4.1" + "core-js" "^3.4.1" "@jimp/gif@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b" - integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA== + "integrity" "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==" + "resolved" "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - omggif "^1.0.9" + "core-js" "^3.4.1" + "omggif" "^1.0.9" "@jimp/jpeg@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1" - integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g== + "integrity" "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==" + "resolved" "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - jpeg-js "^0.3.4" + "core-js" "^3.4.1" + "jpeg-js" "^0.3.4" "@jimp/plugin-resize@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02" - integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg== + "integrity" "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - core-js "^3.4.1" + "core-js" "^3.4.1" "@jimp/png@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409" - integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA== + "integrity" "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==" + "resolved" "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - pngjs "^3.3.3" + "core-js" "^3.4.1" + "pngjs" "^3.3.3" "@jimp/tiff@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560" - integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow== + "integrity" "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==" + "resolved" "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" - core-js "^3.4.1" - utif "^2.0.1" + "core-js" "^3.4.1" + "utif" "^2.0.1" "@jimp/types@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e" - integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA== + "integrity" "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==" + "resolved" "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" "@jimp/bmp" "^0.9.8" @@ -155,73 +150,73 @@ "@jimp/jpeg" "^0.9.8" "@jimp/png" "^0.9.8" "@jimp/tiff" "^0.9.8" - core-js "^3.4.1" - timm "^1.6.1" + "core-js" "^3.4.1" + "timm" "^1.6.1" "@jimp/utils@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096" - integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw== + "integrity" "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==" + "resolved" "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz" + "version" "0.9.8" dependencies: "@babel/runtime" "^7.7.2" - core-js "^3.4.1" + "core-js" "^3.4.1" "@malept/cross-spawn-promise@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz#258fde4098f5004a56db67c35f33033af64810f6" - integrity sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg== + "integrity" "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==" + "resolved" "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" + "version" "1.1.1" dependencies: - cross-spawn "^7.0.1" + "cross-spawn" "^7.0.1" "@nodert-win10-rs4/windows.foundation@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" - integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== + "integrity" "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==" + "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz" + "version" "0.4.4" dependencies: - nan latest + "nan" "^2.14.2" "@nodert-win10-rs4/windows.media@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" - integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== + "integrity" "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==" + "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz" + "version" "0.4.4" dependencies: - nan latest + "nan" "^2.14.2" "@nodert-win10-rs4/windows.storage.streams@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" - integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== + "integrity" "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==" + "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz" + "version" "0.4.4" dependencies: - nan latest + "nan" "^2.14.2" "@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + "version" "0.14.0" "@sindresorhus/is@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" - integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== + "integrity" "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==" + "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz" + "version" "4.0.0" "@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" + "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + "version" "1.1.2" dependencies: - defer-to-connect "^1.0.1" + "defer-to-connect" "^1.0.1" "@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + "integrity" "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==" + "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz" + "version" "4.0.5" dependencies: - defer-to-connect "^2.0.0" + "defer-to-connect" "^2.0.0" "@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + "integrity" "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==" + "resolved" "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz" + "version" "6.0.1" dependencies: "@types/http-cache-semantics" "*" "@types/keyv" "*" @@ -229,3901 +224,3691 @@ "@types/responselike" "*" "@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "integrity" "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "resolved" "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" + "version" "1.1.1" "@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + "integrity" "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" + "resolved" "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz" + "version" "4.1.5" "@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== + "integrity" "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==" + "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz" + "version" "9.0.5" dependencies: "@types/node" "*" "@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + "integrity" "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" + "resolved" "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz" + "version" "4.0.0" "@types/keyv@*": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + "integrity" "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==" + "resolved" "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz" + "version" "3.1.1" dependencies: "@types/node" "*" "@types/lodash@^4.14.53": - version "4.14.160" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" - integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== + "integrity" "sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==" + "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz" + "version" "4.14.158" "@types/minimatch@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + "integrity" "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" + "version" "3.0.3" -"@types/node@*": - version "14.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" - integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== +"@types/node@*", "@types/node@^12.0.12": + "integrity" "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz" + "version" "12.19.8" "@types/node@^10.11.7": - version "10.17.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" - integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== - -"@types/node@^12.0.12": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== + "integrity" "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz" + "version" "10.17.28" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" "@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + "integrity" "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==" + "resolved" "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" + "version" "1.0.0" dependencies: "@types/node" "*" "@types/semver@^7.3.1": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" - integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== + "integrity" "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz" + "version" "7.3.3" "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + "integrity" "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" + "version" "15.0.0" "@types/yargs@^15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" - integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== + "integrity" "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz" + "version" "15.0.11" dependencies: "@types/yargs-parser" "*" -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abstract-socket@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/abstract-socket/-/abstract-socket-2.1.1.tgz#243a7e6e6ff65bb9eab16a22fa90699b91e528f7" - integrity sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA== - dependencies: - bindings "^1.2.1" - nan "^2.12.1" - -accepts@~1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -ace-builds@^1.4.12: - version "1.4.12" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" - integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== +"7zip-bin@~5.0.3": + "integrity" "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==" + "resolved" "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz" + "version" "5.0.3" + +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + +"accepts@~1.3.4": + "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + "version" "1.3.7" + dependencies: + "mime-types" "~2.1.24" + "negotiator" "0.6.2" + +"ace-builds@^1.4.12": + "integrity" "sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg==" + "resolved" "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz" + "version" "1.4.12" + +"after@0.8.2": + "integrity" "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + "resolved" "https://registry.npmjs.org/after/-/after-0.8.2.tgz" + "version" "0.8.2" + +"ajv-keywords@^3.4.1": + "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + "version" "3.5.2" + +"ajv@^6.12.0", "ajv@^6.12.2", "ajv@^6.12.3": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ansi-align@^3.0.0": + "integrity" "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==" + "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "string-width" "^3.0.0" + +"ansi-regex@^2.0.0": + "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "version" "2.1.1" + +"ansi-regex@^3.0.0": + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "version" "3.0.0" + +"ansi-regex@^4.1.0": + "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-regex@^5.0.0": + "integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + "version" "5.0.0" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" + "version" "4.2.1" dependencies: "@types/color-name" "^1.1.1" - color-convert "^2.0.1" + "color-convert" "^2.0.1" -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== +"any-base@^1.1.0": + "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" + "version" "1.1.0" -app-builder-bin@3.5.10: - version "3.5.10" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" - integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== +"app-builder-bin@3.5.10": + "integrity" "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==" + "resolved" "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz" + "version" "3.5.10" -app-builder-lib@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" - integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== +"app-builder-lib@22.9.1": + "integrity" "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==" + "resolved" "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz" + "version" "22.9.1" dependencies: - "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.6.5" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chromium-pickle-js "^0.2.0" - debug "^4.3.0" - ejs "^3.1.5" - electron-publish "22.9.1" - fs-extra "^9.0.1" - hosted-git-info "^3.0.5" - is-ci "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - semver "^7.3.2" - temp-file "^3.3.7" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atomically@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.3.2.tgz#721156e5c4f03e768ab54f3e6c9dc550d4690761" - integrity sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -bindings@^1.2.1, bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird-lst@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" - integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== - dependencies: - bluebird "^3.5.5" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - -boolean@^3.0.0, boolean@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" - integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer@^5.2.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" - integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== - dependencies: - node-gyp-build "~3.7.0" - -builder-util-runtime@8.7.2: - version "8.7.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" - integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" - integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== - dependencies: "7zip-bin" "~5.0.3" + "async-exit-hook" "^2.0.1" + "bluebird-lst" "^1.0.9" + "builder-util" "22.9.1" + "builder-util-runtime" "8.7.2" + "chromium-pickle-js" "^0.2.0" + "debug" "^4.3.0" + "ejs" "^3.1.5" + "electron-publish" "22.9.1" + "fs-extra" "^9.0.1" + "hosted-git-info" "^3.0.5" + "is-ci" "^2.0.0" + "isbinaryfile" "^4.0.6" + "js-yaml" "^3.14.0" + "lazy-val" "^1.0.4" + "minimatch" "^3.0.4" + "normalize-package-data" "^2.5.0" + "read-config-file" "6.0.0" + "sanitize-filename" "^1.6.3" + "semver" "^7.3.2" + "temp-file" "^3.3.7" + +"aproba@^1.0.3": + "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "version" "1.2.0" + +"are-we-there-yet@~1.1.2": + "integrity" "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^2.0.6" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"array-differ@^3.0.0": + "integrity" "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" + "resolved" "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" + "version" "3.0.0" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"arraybuffer.slice@~0.0.7": + "integrity" "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + "resolved" "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" + "version" "0.0.7" + +"arrify@^2.0.1": + "integrity" "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + "resolved" "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" + "version" "2.0.1" + +"asn1@~0.2.3": + "integrity" "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==" + "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + "version" "0.2.4" + dependencies: + "safer-buffer" "~2.1.0" + +"assert-plus@^1.0.0", "assert-plus@1.0.0": + "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"async-exit-hook@^2.0.1": + "integrity" "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" + "resolved" "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + "version" "2.0.1" + +"async-limiter@~1.0.0": + "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + "version" "1.0.1" + +"async@0.9.x": + "integrity" "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + "resolved" "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + "version" "0.9.2" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"at-least-node@^1.0.0": + "integrity" "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "resolved" "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + "version" "1.0.0" + +"atomically@^1.3.1": + "integrity" "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" + "resolved" "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz" + "version" "1.7.0" + +"aws-sign2@~0.7.0": + "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + "version" "0.7.0" + +"aws4@^1.8.0": + "integrity" "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + "version" "1.11.0" + +"backo2@1.0.2": + "integrity" "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + "resolved" "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + "version" "1.0.2" + +"balanced-match@^1.0.0": + "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + "version" "1.0.0" + +"base64-arraybuffer@0.1.5": + "integrity" "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + "resolved" "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" + "version" "0.1.5" + +"base64-js@^1.0.2": + "integrity" "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + "version" "1.3.1" + +"base64id@2.0.0": + "integrity" "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + "resolved" "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + "version" "2.0.0" + +"bcrypt-pbkdf@^1.0.0": + "integrity" "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" + "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "tweetnacl" "^0.14.3" + +"better-assert@~1.0.0": + "integrity" "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=" + "resolved" "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "callsite" "1.0.0" + +"bindings@^1.3.0", "bindings@^1.5.0": + "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==" + "resolved" "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "file-uri-to-path" "1.0.0" + +"blob@0.0.5": + "integrity" "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + "resolved" "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" + "version" "0.0.5" + +"bluebird-lst@^1.0.9": + "integrity" "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==" + "resolved" "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "bluebird" "^3.5.5" + +"bluebird@^3.5.5": + "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + "version" "3.7.2" + +"bmp-js@^0.1.0": + "integrity" "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + "resolved" "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" + "version" "0.1.0" + +"boolean@^3.0.1": + "integrity" "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==" + "resolved" "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz" + "version" "3.0.2" + +"boxen@^4.2.0": + "integrity" "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==" + "resolved" "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "ansi-align" "^3.0.0" + "camelcase" "^5.3.1" + "chalk" "^3.0.0" + "cli-boxes" "^2.2.0" + "string-width" "^4.1.0" + "term-size" "^2.1.0" + "type-fest" "^0.8.1" + "widest-line" "^3.1.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"buffer-crc32@~0.2.3": + "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + "version" "0.2.13" + +"buffer-equal@0.0.1": + "integrity" "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" + "version" "0.0.1" + +"buffer-from@^1.0.0": + "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"buffer@^5.2.0": + "integrity" "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" + "version" "5.6.0" + dependencies: + "base64-js" "^1.0.2" + "ieee754" "^1.1.4" + +"bufferutil@^4.0.1": + "integrity" "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==" + "resolved" "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "node-gyp-build" "~3.7.0" + +"builder-util-runtime@8.7.2": + "integrity" "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==" + "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz" + "version" "8.7.2" + dependencies: + "debug" "^4.1.1" + "sax" "^1.2.4" + +"builder-util@22.9.1": + "integrity" "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==" + "resolved" "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz" + "version" "22.9.1" + dependencies: "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.10" - bluebird-lst "^1.0.9" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - debug "^4.3.0" - fs-extra "^9.0.1" - is-ci "^2.0.0" - js-yaml "^3.14.0" - source-map-support "^0.5.19" - stat-mode "^1.0.0" - temp-file "^3.3.7" - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cacheable-request@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" - integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -conf@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" - integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== - dependencies: - ajv "^6.12.2" - atomically "^1.3.1" - debounce-fn "^4.0.0" - dot-prop "^5.2.0" - env-paths "^2.2.0" - json-schema-typed "^7.0.3" - make-dir "^3.1.0" - onetime "^5.1.0" - pkg-up "^3.1.0" - semver "^7.3.2" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -core-js@^3.4.1, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + "7zip-bin" "~5.0.3" + "app-builder-bin" "3.5.10" + "bluebird-lst" "^1.0.9" + "builder-util-runtime" "8.7.2" + "chalk" "^4.1.0" + "debug" "^4.3.0" + "fs-extra" "^9.0.1" + "is-ci" "^2.0.0" + "js-yaml" "^3.14.0" + "source-map-support" "^0.5.19" + "stat-mode" "^1.0.0" + "temp-file" "^3.3.7" + +"cacheable-lookup@^5.0.3": + "integrity" "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "resolved" "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + "version" "5.0.4" + +"cacheable-request@^6.0.0": + "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" + "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "clone-response" "^1.0.2" + "get-stream" "^5.1.0" + "http-cache-semantics" "^4.0.0" + "keyv" "^3.0.0" + "lowercase-keys" "^2.0.0" + "normalize-url" "^4.1.0" + "responselike" "^1.0.2" + +"cacheable-request@^7.0.1": + "integrity" "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==" + "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "clone-response" "^1.0.2" + "get-stream" "^5.1.0" + "http-cache-semantics" "^4.0.0" + "keyv" "^4.0.0" + "lowercase-keys" "^2.0.0" + "normalize-url" "^4.1.0" + "responselike" "^2.0.0" + +"callsite@1.0.0": + "integrity" "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + "resolved" "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + "version" "1.0.0" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"caseless@~0.12.0": + "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + "version" "0.12.0" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^3.0.0": + "integrity" "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.0.0", "chalk@^4.1.0": + "integrity" "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chownr@^1.1.1": + "integrity" "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + "version" "1.1.4" + +"chownr@^2.0.0": + "integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + "version" "2.0.0" + +"chromium-pickle-js@^0.2.0": + "integrity" "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=" + "resolved" "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + "version" "0.2.0" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"cli-boxes@^2.2.0": + "integrity" "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + "version" "2.2.1" + +"cli-cursor@^3.1.0": + "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "restore-cursor" "^3.1.0" + +"cli-spinners@^2.4.0": + "integrity" "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz" + "version" "2.5.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"clone-response@^1.0.2": + "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" + "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "mimic-response" "^1.0.0" + +"clone@^1.0.2": + "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + +"code-point-at@^1.0.0": + "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + "version" "1.1.0" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colors@^1.3.3": + "integrity" "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + "version" "1.4.0" + +"combined-stream@^1.0.6", "combined-stream@~1.0.6": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"compare-versions@^3.6.0": + "integrity" "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + "resolved" "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" + "version" "3.6.0" + +"component-bind@1.0.0": + "integrity" "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + "resolved" "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + "version" "1.0.0" + +"component-emitter@~1.3.0": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"component-emitter@1.2.1": + "integrity" "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" + "version" "1.2.1" + +"component-inherit@0.0.3": + "integrity" "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + "resolved" "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + "version" "0.0.3" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"concat-stream@^1.6.2": + "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +"conf@^7.1.2": + "integrity" "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==" + "resolved" "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz" + "version" "7.1.2" + dependencies: + "ajv" "^6.12.2" + "atomically" "^1.3.1" + "debounce-fn" "^4.0.0" + "dot-prop" "^5.2.0" + "env-paths" "^2.2.0" + "json-schema-typed" "^7.0.3" + "make-dir" "^3.1.0" + "onetime" "^5.1.0" + "pkg-up" "^3.1.0" + "semver" "^7.3.2" + +"config-chain@^1.1.11": + "integrity" "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==" + "resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" + "version" "1.1.12" + dependencies: + "ini" "^1.3.4" + "proto-list" "~1.2.1" + +"configstore@^5.0.1": + "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" + "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "dot-prop" "^5.2.0" + "graceful-fs" "^4.1.2" + "make-dir" "^3.0.0" + "unique-string" "^2.0.0" + "write-file-atomic" "^3.0.0" + "xdg-basedir" "^4.0.0" + +"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": + "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + "version" "1.1.0" + +"cookie@0.3.1": + "integrity" "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" + "version" "0.3.1" + +"core-js@^3.4.1", "core-js@^3.6.5": + "integrity" "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" + "version" "3.6.5" + +"core-util-is@~1.0.0", "core-util-is@1.0.2": + "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "version" "1.0.2" + +"cosmiconfig@^7.0.0": + "integrity" "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" + "version" "7.0.0" dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dbus-next@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.5.1.tgz#94bb1a30d744bc75045be40e40b59e7a195fd882" - integrity sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA== - dependencies: - event-stream "3.3.4" - hexy "^0.2.10" - jsbi "^2.0.5" - long "^4.0.0" - put "0.0.6" - safe-buffer "^5.1.1" - xml2js "^0.4.17" - optionalDependencies: - abstract-socket "^2.0.0" + "import-fresh" "^3.2.1" + "parse-json" "^5.0.0" + "path-type" "^4.0.0" + "yaml" "^1.10.0" + +"cross-spawn@^7.0.0", "cross-spawn@^7.0.1": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"crypto-random-string@^2.0.0": + "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + "version" "2.0.0" -debounce-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" - integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== +"dashdash@^1.12.0": + "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" + "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + "version" "1.14.1" dependencies: - mimic-fn "^3.0.0" + "assert-plus" "^1.0.0" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +"debounce-fn@^4.0.0": + "integrity" "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==" + "resolved" "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz" + "version" "4.0.0" dependencies: - ms "2.0.0" + "mimic-fn" "^3.0.0" -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +"debug@^2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" dependencies: - ms "^2.1.1" + "ms" "2.0.0" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +"debug@^3.2.6": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" dependencies: - ms "^2.1.1" + "ms" "^2.1.1" -debug@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== +"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@~4.1.0": + "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "ms" "^2.1.1" + +"debug@^4.3.0": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"debug@~3.1.0": + "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "ms" "2.0.0" + +"decompress-response@^3.3.0": + "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "mimic-response" "^1.0.0" + +"decompress-response@^6.0.0": + "integrity" "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "mimic-response" "^3.1.0" + +"deep-extend@^0.6.0": + "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + "version" "0.6.0" + +"defaults@^1.0.3": + "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "clone" "^1.0.2" + +"defer-to-connect@^1.0.1": + "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + "version" "1.1.3" + +"defer-to-connect@^2.0.0": + "integrity" "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==" + "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz" + "version" "2.0.0" + +"define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" dependencies: - ms "2.1.2" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" + "object-keys" "^1.0.12" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"delegates@^1.0.0": + "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + "version" "1.0.0" + +"detect-libc@^1.0.2", "detect-libc@^1.0.3": + "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + "version" "1.0.3" + +"detect-node@^2.0.4": + "integrity" "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" + "version" "2.0.4" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -detect-libc@^1.0.2, detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -discord-rpc@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" - integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== - dependencies: - node-fetch "^2.6.1" - ws "^7.3.1" - -dmg-builder@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" - integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== - dependencies: - app-builder-lib "22.9.1" - builder-util "22.9.1" - fs-extra "^9.0.1" - iconv-lite "^0.6.2" - js-yaml "^3.14.0" - sanitize-filename "^1.6.3" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ejs@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== - dependencies: - jake "^10.6.1" - -electron-builder@^22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" - integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== +"discord-rpc@^3.1.4": + "integrity" "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==" + "resolved" "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz" + "version" "3.1.4" + dependencies: + "node-fetch" "^2.6.1" + "ws" "^7.3.1" + +"dmg-builder@22.9.1": + "integrity" "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==" + "resolved" "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz" + "version" "22.9.1" + dependencies: + "app-builder-lib" "22.9.1" + "builder-util" "22.9.1" + "fs-extra" "^9.0.1" + "iconv-lite" "^0.6.2" + "js-yaml" "^3.14.0" + "sanitize-filename" "^1.6.3" + +"dom-walk@^0.1.0": + "integrity" "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + "version" "0.1.2" + +"dot-prop@^5.2.0": + "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "is-obj" "^2.0.0" + +"dotenv-expand@^5.1.0": + "integrity" "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + "version" "5.1.0" + +"dotenv@^8.2.0": + "integrity" "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz" + "version" "8.2.0" + +"duplexer3@^0.1.4": + "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + "version" "0.1.4" + +"ecc-jsbn@~0.1.1": + "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" + "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "jsbn" "~0.1.0" + "safer-buffer" "^2.1.0" + +"ejs@^3.1.5": + "integrity" "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==" + "resolved" "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "jake" "^10.6.1" + +"electron-builder@^22.9.1": + "integrity" "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==" + "resolved" "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz" + "version" "22.9.1" dependencies: "@types/yargs" "^15.0.5" - app-builder-lib "22.9.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - dmg-builder "22.9.1" - fs-extra "^9.0.1" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - update-notifier "^4.1.1" - yargs "^16.0.3" - -electron-canvas-to-buffer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz#da92cd7342e47b3b0dde2a3ae79978e5a0761681" - integrity sha1-2pLNc0LkezsN3io655l45aB2FoE= - -electron-clipboard-watcher@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" - integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= - -electron-fetch@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" - integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== - dependencies: - encoding "^0.1.13" - -electron-google-analytics@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" - integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== - dependencies: - electron-fetch "^1.7.1" - uuid "^8.3.0" - -electron-is-accelerator@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" - integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= - -electron-is-dev@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" - integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw== - -electron-localshortcut@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" - integrity sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q== - dependencies: - debug "^4.0.1" - electron-is-accelerator "^0.1.0" - keyboardevent-from-electron-accelerator "^2.0.0" - keyboardevents-areequal "^0.2.1" - -electron-log@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" - integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== - -electron-publish@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" - integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== + "app-builder-lib" "22.9.1" + "bluebird-lst" "^1.0.9" + "builder-util" "22.9.1" + "builder-util-runtime" "8.7.2" + "chalk" "^4.1.0" + "dmg-builder" "22.9.1" + "fs-extra" "^9.0.1" + "is-ci" "^2.0.0" + "lazy-val" "^1.0.4" + "read-config-file" "6.0.0" + "sanitize-filename" "^1.6.3" + "update-notifier" "^4.1.1" + "yargs" "^16.0.3" + +"electron-canvas-to-buffer@^2.0.0": + "integrity" "sha1-2pLNc0LkezsN3io655l45aB2FoE=" + "resolved" "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz" + "version" "2.0.0" + +"electron-clipboard-watcher@^1.0.1": + "integrity" "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" + "resolved" "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz" + "version" "1.0.1" + +"electron-fetch@^1.7.1": + "integrity" "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==" + "resolved" "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz" + "version" "1.7.2" + dependencies: + "encoding" "^0.1.13" + +"electron-google-analytics@^1.0.2": + "integrity" "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==" + "resolved" "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "electron-fetch" "^1.7.1" + "uuid" "^8.3.0" + +"electron-is-accelerator@^0.1.0": + "integrity" "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" + "resolved" "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz" + "version" "0.1.2" + +"electron-is-dev@^1.2.0": + "integrity" "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + "resolved" "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz" + "version" "1.2.0" + +"electron-localshortcut@^3.2.1": + "integrity" "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==" + "resolved" "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "debug" "^4.0.1" + "electron-is-accelerator" "^0.1.0" + "keyboardevent-from-electron-accelerator" "^2.0.0" + "keyboardevents-areequal" "^0.2.1" + +"electron-log@^4.3.1": + "integrity" "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" + "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz" + "version" "4.3.1" + +"electron-media-service@github:tidal-engineering/electron-media-service": + "resolved" "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f" + "version" "0.2.6" + dependencies: + "bindings" "^1.5.0" + "node-addon-api" "^3.0.2" + "semver" "^7.3.2" + +"electron-publish@22.9.1": + "integrity" "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==" + "resolved" "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz" + "version" "22.9.1" dependencies: "@types/fs-extra" "^9.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - fs-extra "^9.0.1" - lazy-val "^1.0.4" - mime "^2.4.6" - -electron-rebuild@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" - integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== + "bluebird-lst" "^1.0.9" + "builder-util" "22.9.1" + "builder-util-runtime" "8.7.2" + "chalk" "^4.1.0" + "fs-extra" "^9.0.1" + "lazy-val" "^1.0.4" + "mime" "^2.4.6" + +"electron-rebuild@^2.3.4": + "integrity" "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==" + "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz" + "version" "2.3.4" dependencies: "@malept/cross-spawn-promise" "^1.1.0" - colors "^1.3.3" - debug "^4.1.1" - detect-libc "^1.0.3" - fs-extra "^9.0.1" - got "^11.7.0" - lzma-native "^6.0.1" - node-abi "^2.19.2" - node-gyp "^7.1.0" - ora "^5.1.0" - tar "^6.0.5" - yargs "^16.0.0" - -electron-store@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" - integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== - dependencies: - conf "^7.1.2" - type-fest "^0.16.0" - -electron-updater@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" - integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== + "colors" "^1.3.3" + "debug" "^4.1.1" + "detect-libc" "^1.0.3" + "fs-extra" "^9.0.1" + "got" "^11.7.0" + "lzma-native" "^6.0.1" + "node-abi" "^2.19.2" + "node-gyp" "^7.1.0" + "ora" "^5.1.0" + "tar" "^6.0.5" + "yargs" "^16.0.0" + +"electron-store@^6.0.1": + "integrity" "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==" + "resolved" "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "conf" "^7.1.2" + "type-fest" "^0.16.0" + +"electron-updater@^4.3.5": + "integrity" "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==" + "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz" + "version" "4.3.5" dependencies: "@types/semver" "^7.3.1" - builder-util-runtime "8.7.2" - fs-extra "^9.0.1" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - lodash.isequal "^4.5.0" - semver "^7.3.2" - -electron@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa" - integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA== + "builder-util-runtime" "8.7.2" + "fs-extra" "^9.0.1" + "js-yaml" "^3.14.0" + "lazy-val" "^1.0.4" + "lodash.isequal" "^4.5.0" + "semver" "^7.3.2" + +"electron@^11.1.1": + "integrity" "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==" + "resolved" "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz" + "version" "11.1.1" dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" - integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~4.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" - integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "0.3.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "^7.1.2" - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -event-stream@3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -execa@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== - dependencies: - minimatch "^3.0.4" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^2.0.2: - version "2.1.12" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" - integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== - dependencies: - boolean "^3.0.1" - core-js "^3.6.5" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== - dependencies: - ini "^1.3.5" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globalthis@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" - integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== - dependencies: - define-properties "^1.1.3" - -got@^11.7.0: - version "11.8.1" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" - integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== + "extract-zip" "^1.0.3" + +"emoji-regex@^7.0.1": + "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"encodeurl@^1.0.2": + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"encoding@^0.1.13": + "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" + "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + "version" "0.1.13" + dependencies: + "iconv-lite" "^0.6.2" + +"end-of-stream@^1.1.0": + "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + "version" "1.4.4" + dependencies: + "once" "^1.4.0" + +"engine.io-client@~3.4.0": + "integrity" "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==" + "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz" + "version" "3.4.3" + dependencies: + "component-emitter" "~1.3.0" + "component-inherit" "0.0.3" + "debug" "~4.1.0" + "engine.io-parser" "~2.2.0" + "has-cors" "1.1.0" + "indexof" "0.0.1" + "parseqs" "0.0.5" + "parseuri" "0.0.5" + "ws" "~6.1.0" + "xmlhttprequest-ssl" "~1.5.4" + "yeast" "0.1.2" + +"engine.io-parser@~2.2.0": + "integrity" "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==" + "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "after" "0.8.2" + "arraybuffer.slice" "~0.0.7" + "base64-arraybuffer" "0.1.5" + "blob" "0.0.5" + "has-binary2" "~1.0.2" + +"engine.io@~3.4.0": + "integrity" "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==" + "resolved" "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz" + "version" "3.4.2" + dependencies: + "accepts" "~1.3.4" + "base64id" "2.0.0" + "cookie" "0.3.1" + "debug" "~4.1.0" + "engine.io-parser" "~2.2.0" + "ws" "^7.1.2" + +"env-paths@^2.2.0": + "integrity" "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" + "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" + "version" "2.2.0" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"es6-error@^4.1.1": + "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + "version" "4.1.1" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-goat@^2.0.0": + "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + "version" "2.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"esprima@^4.0.0": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"execa@^2.1.0": + "integrity" "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==" + "resolved" "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "cross-spawn" "^7.0.0" + "get-stream" "^5.0.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^3.0.0" + "onetime" "^5.1.0" + "p-finally" "^2.0.0" + "signal-exit" "^3.0.2" + "strip-final-newline" "^2.0.0" + +"exif-parser@^0.1.12": + "integrity" "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + "resolved" "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" + "version" "0.1.12" + +"extend@~3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"extract-zip@^1.0.3": + "integrity" "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==" + "resolved" "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "concat-stream" "^1.6.2" + "debug" "^2.6.9" + "mkdirp" "^0.5.4" + "yauzl" "^2.10.0" + +"extsprintf@^1.2.0", "extsprintf@1.3.0": + "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +"fd-slicer@~1.1.0": + "integrity" "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=" + "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "pend" "~1.2.0" + +"file-type@^9.0.0": + "integrity" "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" + "version" "9.0.0" + +"file-uri-to-path@1.0.0": + "integrity" "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "resolved" "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + "version" "1.0.0" + +"filelist@^1.0.1": + "integrity" "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==" + "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "minimatch" "^3.0.4" + +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"find-versions@^4.0.0": + "integrity" "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==" + "resolved" "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "semver-regex" "^3.1.2" + +"forever-agent@~0.6.1": + "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "version" "0.6.1" + +"form-data@~2.3.2": + "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-extra@^9.0.1": + "integrity" "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz" + "version" "9.0.1" + dependencies: + "at-least-node" "^1.0.0" + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^1.0.0" + +"fs-minipass@^1.2.5": + "integrity" "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" + "version" "1.2.7" + dependencies: + "minipass" "^2.6.0" + +"fs-minipass@^2.0.0": + "integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "minipass" "^3.0.0" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"gauge@~2.7.3": + "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + "version" "2.7.4" + dependencies: + "aproba" "^1.0.3" + "console-control-strings" "^1.0.0" + "has-unicode" "^2.0.0" + "object-assign" "^4.1.0" + "signal-exit" "^3.0.0" + "string-width" "^1.0.1" + "strip-ansi" "^3.0.1" + "wide-align" "^1.1.0" + +"get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-stream@^4.1.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^5.0.0": + "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^5.1.0": + "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "pump" "^3.0.0" + +"getpass@^0.1.1": + "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" + "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + "version" "0.1.7" + dependencies: + "assert-plus" "^1.0.0" + +"glob@^7.1.3", "glob@^7.1.4": + "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + "version" "7.1.6" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"global-agent@^2.0.2": + "integrity" "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==" + "resolved" "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz" + "version" "2.1.12" + dependencies: + "boolean" "^3.0.1" + "core-js" "^3.6.5" + "es6-error" "^4.1.1" + "matcher" "^3.0.0" + "roarr" "^2.15.3" + "semver" "^7.3.2" + "serialize-error" "^7.0.1" + +"global-dirs@^2.0.1": + "integrity" "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==" + "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "ini" "^1.3.5" + +"global-tunnel-ng@^2.7.1": + "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" + "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "encodeurl" "^1.0.2" + "lodash" "^4.17.10" + "npm-conf" "^1.1.3" + "tunnel" "^0.0.6" + +"global@~4.3.0": + "integrity" "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" + "resolved" "https://registry.npmjs.org/global/-/global-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "min-document" "^2.19.0" + "process" "~0.5.1" + +"globalthis@^1.0.1": + "integrity" "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==" + "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "define-properties" "^1.1.3" + +"got@^11.7.0": + "integrity" "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==" + "resolved" "https://registry.npmjs.org/got/-/got-11.8.1.tgz" + "version" "11.8.1" dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" "@types/cacheable-request" "^6.0.1" "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + "cacheable-lookup" "^5.0.3" + "cacheable-request" "^7.0.1" + "decompress-response" "^6.0.0" + "http2-wrapper" "^1.0.0-beta.5.2" + "lowercase-keys" "^2.0.0" + "p-cancelable" "^2.0.0" + "responselike" "^2.0.0" + +"got@^9.6.0": + "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" + "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + "version" "9.6.0" dependencies: "@sindresorhus/is" "^0.14.0" "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hexy@^0.2.10: - version "0.2.11" - resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" - integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" - integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== - dependencies: - lru-cache "^6.0.0" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.0-beta.5.2" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" - integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -husky@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" - integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" - -i18n@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" - integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== - dependencies: - debug "^4.1.1" - make-plural "^6.2.2" - math-interval-parser "^2.0.1" - messageformat "^2.3.0" - mustache "^4.0.1" - sprintf-js "^1.1.2" - -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -image-to-base64@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/image-to-base64/-/image-to-base64-2.1.1.tgz#58c16f88494dfd3e84953cf845a5929be04fbdb5" - integrity sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ== - dependencies: - node-fetch "^2.6.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== - -is-regex@^1.0.4, is-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -jpeg-js@^0.3.4: - version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== - -js-base64@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" - integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbi@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" - integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" - integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-typed@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" - integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== - dependencies: - universalify "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyboardevent-from-electron-accelerator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" - integrity sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA== - -keyboardevents-areequal@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" - integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw== - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-bmfont@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" - integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^2.9.1" - xhr "^2.0.1" - xtend "^4.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash@^4.17.10, lodash@^4.17.4: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lzma-native@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" - integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== - dependencies: - node-addon-api "^1.6.0" - node-pre-gyp "^0.11.0" - readable-stream "^2.3.5" - rimraf "^2.7.1" - -make-dir@^3.0.0, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-plural@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" - integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== - optionalDependencies: - minimist "^1.2.0" - -make-plural@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" - integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -markdown@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" - integrity sha1-KCBbVlqK51kt4gdGPWY33BgnIrI= - dependencies: - nopt "~2.1.1" - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -math-interval-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" - integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -messageformat-formatters@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" - integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== - -messageformat-parser@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" - integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== - -messageformat@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" - integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== - dependencies: - make-plural "^4.3.0" - messageformat-formatters "^2.0.1" - messageformat-parser "^4.1.2" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mpris-service@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.0.tgz#0bbfb5b47a9b3e01ce8b9a41a8aef0ad3210c909" - integrity sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg== - dependencies: - dbus-next "^0.5.1" - deep-equal "^1.0.1" - source-map-support "^0.5.11" - -mri@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" - integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + "cacheable-request" "^6.0.0" + "decompress-response" "^3.3.0" + "duplexer3" "^0.1.4" + "get-stream" "^4.1.0" + "lowercase-keys" "^1.0.1" + "mimic-response" "^1.0.1" + "p-cancelable" "^1.0.0" + "to-readable-stream" "^1.0.0" + "url-parse-lax" "^3.0.0" + +"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.3": + "integrity" "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" + "version" "4.2.4" + +"har-schema@^2.0.0": + "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + "version" "2.0.0" + +"har-validator@~5.1.3": + "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + "version" "5.1.5" + dependencies: + "ajv" "^6.12.3" + "har-schema" "^2.0.0" + +"has-binary2@~1.0.2": + "integrity" "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==" + "resolved" "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "isarray" "2.0.1" + +"has-cors@1.1.0": + "integrity" "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + "resolved" "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + "version" "1.1.0" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-unicode@^2.0.0": + "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + "version" "2.0.1" + +"has-yarn@^2.1.0": + "integrity" "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "resolved" "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + "version" "2.1.0" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hosted-git-info@^2.1.4": + "integrity" "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz" + "version" "2.8.8" + +"hosted-git-info@^3.0.5": + "integrity" "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz" + "version" "3.0.7" + dependencies: + "lru-cache" "^6.0.0" + +"http-cache-semantics@^4.0.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + +"http-signature@~1.2.0": + "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "assert-plus" "^1.0.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +"http2-wrapper@^1.0.0-beta.5.2": + "integrity" "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==" + "resolved" "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz" + "version" "1.0.0-beta.5.2" + dependencies: + "quick-lru" "^5.1.1" + "resolve-alpn" "^1.0.0" + +"husky@^4.3.7": + "integrity" "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==" + "resolved" "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz" + "version" "4.3.7" + dependencies: + "chalk" "^4.0.0" + "ci-info" "^2.0.0" + "compare-versions" "^3.6.0" + "cosmiconfig" "^7.0.0" + "find-versions" "^4.0.0" + "opencollective-postinstall" "^2.0.2" + "pkg-dir" "^5.0.0" + "please-upgrade-node" "^3.2.0" + "slash" "^3.0.0" + "which-pm-runs" "^1.0.0" + +"i18n@^0.13.2": + "integrity" "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==" + "resolved" "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz" + "version" "0.13.2" + dependencies: + "debug" "^4.1.1" + "make-plural" "^6.2.2" + "math-interval-parser" "^2.0.1" + "messageformat" "^2.3.0" + "mustache" "^4.0.1" + "sprintf-js" "^1.1.2" + +"iconv-lite@^0.4.4": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +"iconv-lite@^0.6.2": + "integrity" "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" + "version" "0.6.2" + dependencies: + "safer-buffer" ">= 2.1.2 < 3.0.0" + +"ieee754@^1.1.4": + "integrity" "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" + "version" "1.1.13" + +"ignore-walk@^3.0.1": + "integrity" "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==" + "resolved" "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "minimatch" "^3.0.4" + +"ignore@^5.1.4": + "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + "version" "5.1.8" + +"image-to-base64@^2.1.1": + "integrity" "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==" + "resolved" "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-fetch" "^2.6.0" + +"import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-lazy@^2.1.0": + "integrity" "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + "version" "2.1.0" + +"imurmurhash@^0.1.4": + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"indexof@0.0.1": + "integrity" "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "resolved" "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + "version" "0.0.1" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@~2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"ini@^1.3.4", "ini@^1.3.5", "ini@~1.3.0": + "integrity" "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" + "version" "1.3.7" + +"is-arrayish@^0.2.1": + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-ci@^2.0.0": + "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ci-info" "^2.0.0" + +"is-core-module@^2.1.0": + "integrity" "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "has" "^1.0.3" + +"is-fullwidth-code-point@^1.0.0": + "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "number-is-nan" "^1.0.0" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-function@^1.0.1": + "integrity" "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" + "version" "1.0.2" + +"is-installed-globally@^0.3.1": + "integrity" "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==" + "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "global-dirs" "^2.0.1" + "is-path-inside" "^3.0.1" + +"is-interactive@^1.0.0": + "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + "version" "1.0.0" + +"is-npm@^4.0.0": + "integrity" "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" + "version" "4.0.0" + +"is-obj@^2.0.0": + "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + "version" "2.0.0" + +"is-path-inside@^3.0.1": + "integrity" "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" + "version" "3.0.2" + +"is-stream@^2.0.0": + "integrity" "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + "version" "2.0.0" + +"is-typedarray@^1.0.0", "is-typedarray@~1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"is-yarn-global@^0.3.0": + "integrity" "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + "resolved" "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + "version" "0.3.0" + +"isarray@~1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@2.0.1": + "integrity" "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" + "version" "2.0.1" + +"isbinaryfile@^4.0.6": + "integrity" "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" + "resolved" "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz" + "version" "4.0.6" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isstream@~0.1.2": + "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + "version" "0.1.2" + +"jake@^10.6.1": + "integrity" "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==" + "resolved" "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz" + "version" "10.8.2" + dependencies: + "async" "0.9.x" + "chalk" "^2.4.2" + "filelist" "^1.0.1" + "minimatch" "^3.0.4" + +"jpeg-js@^0.3.4": + "integrity" "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + "resolved" "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz" + "version" "0.3.7" + +"js-base64@^3.6.0": + "integrity" "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" + "resolved" "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz" + "version" "3.6.0" + +"js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1", "js-yaml@^3.14.0": + "integrity" "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz" + "version" "3.14.0" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"jsbn@~0.1.0": + "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "version" "0.1.1" + +"json-buffer@3.0.0": + "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + "version" "3.0.0" + +"json-buffer@3.0.1": + "integrity" "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + "version" "3.0.1" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-schema-typed@^7.0.3": + "integrity" "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" + "resolved" "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" + "version" "7.0.3" + +"json-schema@0.2.3": + "integrity" "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + "version" "0.2.3" + +"json-stringify-safe@^5.0.1", "json-stringify-safe@~5.0.1": + "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + "version" "5.0.1" + +"json5@^2.1.2": + "integrity" "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz" + "version" "2.1.3" + dependencies: + "minimist" "^1.2.5" + +"jsonfile@^4.0.0": + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "graceful-fs" "^4.1.6" + +"jsonfile@^6.0.1": + "integrity" "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "graceful-fs" "^4.1.6" + "universalify" "^1.0.0" + +"jsprim@^1.2.2": + "integrity" "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" + "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "assert-plus" "1.0.0" + "extsprintf" "1.3.0" + "json-schema" "0.2.3" + "verror" "1.10.0" + +"keyboardevent-from-electron-accelerator@^2.0.0": + "integrity" "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" + "resolved" "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz" + "version" "2.0.0" + +"keyboardevents-areequal@^0.2.1": + "integrity" "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" + "resolved" "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz" + "version" "0.2.2" + +"keyv@^3.0.0": + "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "json-buffer" "3.0.0" + +"keyv@^4.0.0": + "integrity" "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "json-buffer" "3.0.1" + +"latest-version@^5.0.0": + "integrity" "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==" + "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "package-json" "^6.3.0" + +"lazy-val@^1.0.4": + "integrity" "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" + "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" + "version" "1.0.4" + +"lines-and-columns@^1.1.6": + "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + "version" "1.1.6" + +"load-bmfont@^1.3.1": + "integrity" "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==" + "resolved" "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "buffer-equal" "0.0.1" + "mime" "^1.3.4" + "parse-bmfont-ascii" "^1.0.3" + "parse-bmfont-binary" "^1.0.5" + "parse-bmfont-xml" "^1.1.4" + "phin" "^2.9.1" + "xhr" "^2.0.1" + "xtend" "^4.0.0" + +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.isequal@^4.5.0": + "integrity" "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "resolved" "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + "version" "4.5.0" + +"lodash@^4.17.10", "lodash@^4.17.4": + "integrity" "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz" + "version" "4.17.19" + +"log-symbols@^4.0.0": + "integrity" "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "chalk" "^4.0.0" + +"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": + "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + "version" "1.0.1" + +"lowercase-keys@^2.0.0": + "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + "version" "2.0.0" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"lzma-native@^6.0.1": + "integrity" "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==" + "resolved" "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "node-addon-api" "^1.6.0" + "node-pre-gyp" "^0.11.0" + "readable-stream" "^2.3.5" + "rimraf" "^2.7.1" + +"make-dir@^3.0.0", "make-dir@^3.1.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"make-plural@^4.3.0": + "integrity" "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==" + "resolved" "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "minimist" "^1.2.0" + +"make-plural@^6.2.2": + "integrity" "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" + "resolved" "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz" + "version" "6.2.2" + +"markdown@^0.5.0": + "integrity" "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=" + "resolved" "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz" + "version" "0.5.0" + dependencies: + "nopt" "~2.1.1" + +"matcher@^3.0.0": + "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==" + "resolved" "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "escape-string-regexp" "^4.0.0" + +"math-interval-parser@^2.0.1": + "integrity" "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" + "resolved" "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz" + "version" "2.0.1" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"messageformat-formatters@^2.0.1": + "integrity" "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" + "resolved" "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz" + "version" "2.0.1" + +"messageformat-parser@^4.1.2": + "integrity" "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" + "resolved" "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz" + "version" "4.1.3" + +"messageformat@^2.3.0": + "integrity" "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==" + "resolved" "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "make-plural" "^4.3.0" + "messageformat-formatters" "^2.0.1" + "messageformat-parser" "^4.1.2" + +"mime-db@1.44.0": + "integrity" "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz" + "version" "1.44.0" + +"mime-types@^2.1.12", "mime-types@~2.1.19", "mime-types@~2.1.24": + "integrity" "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz" + "version" "2.1.27" + dependencies: + "mime-db" "1.44.0" + +"mime@^1.3.4": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mime@^2.4.6": + "integrity" "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz" + "version" "2.4.6" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-fn@^3.0.0": + "integrity" "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" + "version" "3.1.0" + +"mimic-response@^1.0.0", "mimic-response@^1.0.1": + "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + "version" "1.0.1" + +"mimic-response@^3.1.0": + "integrity" "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + "version" "3.1.0" + +"min-document@^2.19.0": + "integrity" "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" + "resolved" "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + "version" "2.19.0" + dependencies: + "dom-walk" "^0.1.0" + +"minimatch@^3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.0", "minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"minipass@^2.6.0", "minipass@^2.8.6", "minipass@^2.9.0": + "integrity" "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" + "version" "2.9.0" + dependencies: + "safe-buffer" "^5.1.2" + "yallist" "^3.0.0" + +"minipass@^3.0.0": + "integrity" "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "yallist" "^4.0.0" + +"minizlib@^1.2.1": + "integrity" "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" + "version" "1.3.3" + dependencies: + "minipass" "^2.9.0" + +"minizlib@^2.1.1": + "integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "minipass" "^3.0.0" + "yallist" "^4.0.0" + +"mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@^0.5.4": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"mkdirp@^1.0.3": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"mri@^1.1.4": + "integrity" "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==" + "resolved" "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz" + "version" "1.1.6" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"multimatch@^4.0.0": + "integrity" "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==" + "resolved" "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz" + "version" "4.0.0" dependencies: "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -mustache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" - integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== - -nan@^2.12.1, nan@latest: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -needle@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" - integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -node-abi@^2.19.2: - version "2.19.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" - integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== - dependencies: - semver "^5.4.1" - -node-addon-api@^1.3.0, node-addon-api@^1.6.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" - integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== - -node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-gyp-build@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" - integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== - -node-gyp@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.0.tgz#cb8aed7ab772e73ad592ae0c71b0e3741099fe39" - integrity sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.3" - nopt "^4.0.3" - npmlog "^4.1.2" - request "^2.88.2" - rimraf "^2.6.3" - semver "^7.3.2" - tar "^6.0.1" - which "^2.0.2" - -node-pre-gyp@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" - integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-vibrant@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" - integrity sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg== + "array-differ" "^3.0.0" + "array-union" "^2.1.0" + "arrify" "^2.0.1" + "minimatch" "^3.0.4" + +"mustache@^4.0.1": + "integrity" "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==" + "resolved" "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz" + "version" "4.0.1" + +"mute-stream@0.0.8": + "integrity" "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + "version" "0.0.8" + +"nan@^2.14.2": + "integrity" "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "resolved" "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz" + "version" "2.14.2" + +"needle@^2.2.1": + "integrity" "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==" + "resolved" "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz" + "version" "2.5.2" + dependencies: + "debug" "^3.2.6" + "iconv-lite" "^0.4.4" + "sax" "^1.2.4" + +"negotiator@0.6.2": + "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + "version" "0.6.2" + +"node-abi@^2.19.2": + "integrity" "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==" + "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz" + "version" "2.19.3" + dependencies: + "semver" "^5.4.1" + +"node-addon-api@^1.3.0", "node-addon-api@^1.6.0": + "integrity" "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" + "version" "1.7.2" + +"node-addon-api@^3.0.2": + "integrity" "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz" + "version" "3.1.0" + +"node-fetch@^2.6.0", "node-fetch@^2.6.1": + "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + "version" "2.6.1" + +"node-gyp-build@~3.7.0": + "integrity" "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==" + "resolved" "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz" + "version" "3.7.0" + +"node-gyp@^7.1.0": + "integrity" "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==" + "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz" + "version" "7.1.2" + dependencies: + "env-paths" "^2.2.0" + "glob" "^7.1.4" + "graceful-fs" "^4.2.3" + "nopt" "^5.0.0" + "npmlog" "^4.1.2" + "request" "^2.88.2" + "rimraf" "^3.0.2" + "semver" "^7.3.2" + "tar" "^6.0.2" + "which" "^2.0.2" + +"node-pre-gyp@^0.11.0": + "integrity" "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==" + "resolved" "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz" + "version" "0.11.0" + dependencies: + "detect-libc" "^1.0.2" + "mkdirp" "^0.5.1" + "needle" "^2.2.1" + "nopt" "^4.0.1" + "npm-packlist" "^1.1.6" + "npmlog" "^4.0.2" + "rc" "^1.2.7" + "rimraf" "^2.6.1" + "semver" "^5.3.0" + "tar" "^4" + +"node-vibrant@^3.1.5": + "integrity" "sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg==" + "resolved" "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz" + "version" "3.1.5" dependencies: "@jimp/custom" "^0.9.3" "@jimp/plugin-resize" "^0.9.3" "@jimp/types" "^0.9.3" "@types/lodash" "^4.14.53" "@types/node" "^10.11.7" - lodash "^4.17.4" - url "^0.11.0" - -nopt@^4.0.1, nopt@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" - integrity sha1-bMzZd7gBMqB3MdbozljCyDA8+a8= - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - -npmlog@^4.0.2, npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -ora@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" - integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== - dependencies: - bl "^4.0.3" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@^1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + "lodash" "^4.17.4" + "url" "^0.11.0" + +"nopt@^4.0.1": + "integrity" "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "abbrev" "1" + "osenv" "^0.1.4" + +"nopt@^5.0.0": + "integrity" "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "abbrev" "1" + +"nopt@~2.1.1": + "integrity" "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "abbrev" "1" + +"normalize-package-data@^2.5.0": + "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "hosted-git-info" "^2.1.4" + "resolve" "^1.10.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-url@^4.1.0": + "integrity" "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" + "version" "4.5.0" + +"npm-bundled@^1.0.1": + "integrity" "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==" + "resolved" "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "npm-normalize-package-bin" "^1.0.1" + +"npm-conf@^1.1.3": + "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==" + "resolved" "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "config-chain" "^1.1.11" + "pify" "^3.0.0" + +"npm-normalize-package-bin@^1.0.1": + "integrity" "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "resolved" "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" + "version" "1.0.1" + +"npm-packlist@^1.1.6": + "integrity" "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==" + "resolved" "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" + "version" "1.4.8" + dependencies: + "ignore-walk" "^3.0.1" + "npm-bundled" "^1.0.1" + "npm-normalize-package-bin" "^1.0.1" + +"npm-run-path@^3.0.0": + "integrity" "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "path-key" "^3.0.0" + +"npmlog@^4.0.2", "npmlog@^4.1.2": + "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "are-we-there-yet" "~1.1.2" + "console-control-strings" "~1.1.0" + "gauge" "~2.7.3" + "set-blocking" "~2.0.0" + +"number-is-nan@^1.0.0": + "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "version" "1.0.1" + +"oauth-sign@~0.9.0": + "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + "version" "0.9.0" + +"object-assign@^4.1.0": + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-component@0.0.3": + "integrity" "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + "resolved" "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" + "version" "0.0.3" + +"object-keys@^1.0.12": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"omggif@^1.0.9": + "integrity" "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + "resolved" "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + "version" "1.0.10" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.0": + "integrity" "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "mimic-fn" "^2.1.0" + +"opencollective-postinstall@^2.0.2": + "integrity" "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + "resolved" "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + "version" "2.0.3" + +"ora@^5.1.0": + "integrity" "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==" + "resolved" "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "chalk" "^4.1.0" + "cli-cursor" "^3.1.0" + "cli-spinners" "^2.4.0" + "is-interactive" "^1.0.0" + "log-symbols" "^4.0.0" + "mute-stream" "0.0.8" + "strip-ansi" "^6.0.0" + "wcwidth" "^1.0.1" + +"os-homedir@^1.0.0": + "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "version" "1.0.2" + +"os-tmpdir@^1.0.0": + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"osenv@^0.1.4": + "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" + "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "os-homedir" "^1.0.0" + "os-tmpdir" "^1.0.0" + +"p-cancelable@^1.0.0": + "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + "version" "1.1.0" + +"p-cancelable@^2.0.0": + "integrity" "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz" + "version" "2.0.0" + +"p-finally@^2.0.0": + "integrity" "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz" + "version" "2.0.1" + +"p-limit@^2.0.0", "p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" + +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"package-json@^6.3.0": + "integrity" "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==" + "resolved" "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + "version" "6.5.0" + dependencies: + "got" "^9.6.0" + "registry-auth-token" "^4.0.0" + "registry-url" "^5.0.0" + "semver" "^6.2.0" + +"pako@^1.0.5": + "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + "version" "1.0.11" + +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "callsites" "^3.0.0" + +"parse-bmfont-ascii@^1.0.3": + "integrity" "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + "resolved" "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" + "version" "1.0.6" + +"parse-bmfont-binary@^1.0.5": + "integrity" "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + "resolved" "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" + "version" "1.0.6" -parse-bmfont-xml@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" - integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== +"parse-bmfont-xml@^1.1.4": + "integrity" "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==" + "resolved" "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" + "version" "1.1.4" dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.4.5" + "xml-parse-from-string" "^1.0.0" + "xml2js" "^0.4.5" -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== +"parse-headers@^2.0.0": + "integrity" "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + "resolved" "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" + "version" "2.0.3" -parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== +"parse-json@^5.0.0": + "integrity" "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz" + "version" "5.1.0" dependencies: "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= - dependencies: - pngjs "^3.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -pngjs@^3.0.0, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -postscribe@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" - integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= - dependencies: - prescribe ">=1.1.2" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prescribe@>=1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" - integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= - -prettier@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - -pretty-quick@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" - integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== - dependencies: - chalk "^2.4.2" - execa "^2.1.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.4" - multimatch "^4.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== - dependencies: - escape-goat "^2.0.0" - -put@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/put/-/put-0.0.6.tgz#30f5f60bd6e4389bd329e16a25386cbb2e4a00a3" - integrity sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM= - -qrcode-generator@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" - integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-config-file@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" - integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== - dependencies: - dotenv "^8.2.0" - dotenv-expand "^5.1.0" - js-yaml "^3.13.1" - json5 "^2.1.2" - lazy-val "^1.0.4" - -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -register-scheme@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/register-scheme/-/register-scheme-0.0.2.tgz#c91a61c735a9f14b2c9f0c2c27d707c0b06615e8" - integrity sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw== - dependencies: - bindings "^1.3.0" - node-addon-api "^1.3.0" - -registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -resolve-alpn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" - integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.10.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -roarr@^2.15.3: - version "2.15.3" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" - integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== - dependencies: - boolean "^3.0.0" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" + +"parseqs@0.0.5": + "integrity" "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=" + "resolved" "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" + "version" "0.0.5" + dependencies: + "better-assert" "~1.0.0" + +"parseuri@0.0.5": + "integrity" "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=" + "resolved" "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" + "version" "0.0.5" + dependencies: + "better-assert" "~1.0.0" + +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.6": + "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + "version" "1.0.6" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"pend@~1.2.0": + "integrity" "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + "version" "1.2.0" + +"performance-now@^2.1.0": + "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + "version" "2.1.0" + +"phin@^2.9.1": + "integrity" "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + "resolved" "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" + "version" "2.9.3" + +"pify@^3.0.0": + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + "version" "3.0.0" + +"pixelmatch@^4.0.2": + "integrity" "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=" + "resolved" "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "pngjs" "^3.0.0" + +"pkg-dir@^5.0.0": + "integrity" "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "find-up" "^5.0.0" + +"pkg-up@^3.1.0": + "integrity" "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==" + "resolved" "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "find-up" "^3.0.0" + +"please-upgrade-node@^3.2.0": + "integrity" "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==" + "resolved" "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "semver-compare" "^1.0.0" + +"pngjs@^3.0.0", "pngjs@^3.3.3": + "integrity" "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + "version" "3.4.0" + +"postscribe@^2.0.8": + "integrity" "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=" + "resolved" "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz" + "version" "2.0.8" + dependencies: + "prescribe" ">=1.1.2" + +"prepend-http@^2.0.0": + "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + "version" "2.0.0" + +"prescribe@>=1.1.2": + "integrity" "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" + "resolved" "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz" + "version" "1.1.3" + +"prettier@^2.2.1": + "integrity" "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" + "version" "2.2.1" + +"pretty-quick@^2.0.2": + "integrity" "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==" + "resolved" "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "chalk" "^2.4.2" + "execa" "^2.1.0" + "find-up" "^4.1.0" + "ignore" "^5.1.4" + "mri" "^1.1.4" + "multimatch" "^4.0.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"process@~0.5.1": + "integrity" "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + "resolved" "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + "version" "0.5.2" + +"progress@^2.0.3": + "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + "version" "2.0.3" + +"proto-list@~1.2.1": + "integrity" "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "resolved" "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + "version" "1.2.4" + +"psl@^1.1.28": + "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + "version" "1.8.0" + +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"punycode@^2.1.0", "punycode@^2.1.1": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"punycode@1.3.2": + "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "version" "1.3.2" + +"pupa@^2.0.1": + "integrity" "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==" + "resolved" "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "escape-goat" "^2.0.0" + +"qrcode-generator@^1.4.4": + "integrity" "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + "resolved" "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" + "version" "1.4.4" + +"qs@~6.5.2": + "integrity" "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + "version" "6.5.2" + +"querystring@0.2.0": + "integrity" "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "resolved" "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "version" "0.2.0" + +"quick-lru@^5.1.1": + "integrity" "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + "version" "5.1.1" + +"rc@^1.2.7", "rc@^1.2.8": + "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" + "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "deep-extend" "^0.6.0" + "ini" "~1.3.0" + "minimist" "^1.2.0" + "strip-json-comments" "~2.0.1" + +"read-config-file@6.0.0": + "integrity" "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==" + "resolved" "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "dotenv" "^8.2.0" + "dotenv-expand" "^5.1.0" + "js-yaml" "^3.13.1" + "json5" "^2.1.2" + "lazy-val" "^1.0.4" + +"readable-stream@^2.0.6", "readable-stream@^2.2.2", "readable-stream@^2.3.5": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"regenerator-runtime@^0.13.4": + "integrity" "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + "version" "0.13.7" + +"register-scheme@0.0.2": + "integrity" "sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw==" + "resolved" "https://registry.npmjs.org/register-scheme/-/register-scheme-0.0.2.tgz" + "version" "0.0.2" + dependencies: + "bindings" "^1.3.0" + "node-addon-api" "^1.3.0" + +"registry-auth-token@^4.0.0": + "integrity" "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==" + "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "rc" "^1.2.8" + +"registry-url@^5.0.0": + "integrity" "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==" + "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "rc" "^1.2.8" + +"request@^2.88.2": + "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + "version" "2.88.2" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.3" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.5.0" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"resolve-alpn@^1.0.0": + "integrity" "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" + "resolved" "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz" + "version" "1.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve@^1.10.0": + "integrity" "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz" + "version" "1.19.0" + dependencies: + "is-core-module" "^2.1.0" + "path-parse" "^1.0.6" + +"responselike@^1.0.2": + "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" + "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "lowercase-keys" "^1.0.0" + +"responselike@^2.0.0": + "integrity" "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==" + "resolved" "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "lowercase-keys" "^2.0.0" + +"restore-cursor@^3.1.0": + "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "onetime" "^5.1.0" + "signal-exit" "^3.0.2" + +"rimraf@^2.6.1", "rimraf@^2.7.1": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"roarr@^2.15.3": + "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" + "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" + "version" "2.15.4" + dependencies: + "boolean" "^3.0.1" + "detect-node" "^2.0.4" + "globalthis" "^1.0.1" + "json-stringify-safe" "^5.0.1" + "semver-compare" "^1.0.0" + "sprintf-js" "^1.1.2" + +"safe-buffer@^5.0.1", "safe-buffer@^5.1.2": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-buffer@~5.1.0": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", "safer-buffer@~2.1.0": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"sanitize-filename@^1.6.2", "sanitize-filename@^1.6.3": + "integrity" "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==" + "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + "version" "1.6.3" + dependencies: + "truncate-utf8-bytes" "^1.0.0" + +"sax@^1.2.4", "sax@>=0.6.0": + "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": - version "0.0.5" - resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver-regex@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" - integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== - dependencies: - debug "~4.1.0" - engine.io "~3.4.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" - socket.io-parser "~3.4.0" - -source-map-support@^0.5.11, source-map-support@^0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stat-mode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" - integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" + "resolved" "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" + +"semver-compare@^1.0.0": + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + "version" "1.0.0" + +"semver-diff@^3.1.1": + "integrity" "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==" + "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "semver" "^6.3.0" + +"semver-regex@^3.1.2": + "integrity" "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==" + "resolved" "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz" + "version" "3.1.2" + +"semver@^5.3.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.4.1": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.0.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^6.2.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.2": + "integrity" "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" + "version" "7.3.2" + +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"serialize-error@^7.0.1": + "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" + "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "type-fest" "^0.13.1" + +"set-blocking@~2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2": + "integrity" "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + "version" "3.0.3" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"socket.io-adapter@~1.1.0": + "integrity" "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + "resolved" "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" + "version" "1.1.2" + +"socket.io-client@2.3.0": + "integrity" "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==" + "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "backo2" "1.0.2" + "base64-arraybuffer" "0.1.5" + "component-bind" "1.0.0" + "component-emitter" "1.2.1" + "debug" "~4.1.0" + "engine.io-client" "~3.4.0" + "has-binary2" "~1.0.2" + "has-cors" "1.1.0" + "indexof" "0.0.1" + "object-component" "0.0.3" + "parseqs" "0.0.5" + "parseuri" "0.0.5" + "socket.io-parser" "~3.3.0" + "to-array" "0.1.4" + +"socket.io-parser@~3.3.0": + "integrity" "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "component-emitter" "1.2.1" + "debug" "~3.1.0" + "isarray" "2.0.1" + +"socket.io-parser@~3.4.0": + "integrity" "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" + "version" "3.4.1" + dependencies: + "component-emitter" "1.2.1" + "debug" "~4.1.0" + "isarray" "2.0.1" + +"socket.io@^2.3.0": + "integrity" "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==" + "resolved" "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "debug" "~4.1.0" + "engine.io" "~3.4.0" + "has-binary2" "~1.0.2" + "socket.io-adapter" "~1.1.0" + "socket.io-client" "2.3.0" + "socket.io-parser" "~3.4.0" + +"source-map-support@^0.5.19": + "integrity" "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" + "version" "0.5.19" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"spdx-correct@^3.0.0": + "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" + "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "spdx-expression-parse" "^3.0.0" + "spdx-license-ids" "^3.0.0" + +"spdx-exceptions@^2.1.0": + "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" + "version" "2.3.0" + +"spdx-expression-parse@^3.0.0": + "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" + "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "spdx-exceptions" "^2.1.0" + "spdx-license-ids" "^3.0.0" + +"spdx-license-ids@^3.0.0": + "integrity" "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz" + "version" "3.0.7" + +"sprintf-js@^1.1.2": + "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + "version" "1.1.2" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"sshpk@^1.7.0": + "integrity" "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==" + "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + "version" "1.16.1" + dependencies: + "asn1" "~0.2.3" + "assert-plus" "^1.0.0" + "bcrypt-pbkdf" "^1.0.0" + "dashdash" "^1.12.0" + "ecc-jsbn" "~0.1.1" + "getpass" "^0.1.1" + "jsbn" "~0.1.0" + "safer-buffer" "^2.0.2" + "tweetnacl" "~0.14.0" + +"stat-mode@^1.0.0": + "integrity" "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==" + "resolved" "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" + "version" "1.0.0" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-width@^1.0.1": + "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "code-point-at" "^1.0.0" + "is-fullwidth-code-point" "^1.0.0" + "strip-ansi" "^3.0.0" "string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" + "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" + +"string-width@^3.0.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^4.0.0", "string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.0" + +"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": + "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ansi-regex" "^2.0.0" + +"strip-ansi@^4.0.0": + "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "ansi-regex" "^3.0.0" + +"strip-ansi@^5.1.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0": + "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "ansi-regex" "^5.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-json-comments@~2.0.1": + "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + +"sumchecker@^3.0.1": + "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" + "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "debug" "^4.1.0" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" + "version" "7.1.0" + dependencies: + "has-flag" "^4.0.0" + +"tar@^4": + "integrity" "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==" + "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz" + "version" "4.4.13" + dependencies: + "chownr" "^1.1.1" + "fs-minipass" "^1.2.5" + "minipass" "^2.8.6" + "minizlib" "^1.2.1" + "mkdirp" "^0.5.0" + "safe-buffer" "^5.1.2" + "yallist" "^3.0.3" + +"tar@^6.0.2", "tar@^6.0.5": + "integrity" "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==" + "resolved" "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "chownr" "^2.0.0" + "fs-minipass" "^2.0.0" + "minipass" "^3.0.0" + "minizlib" "^2.1.1" + "mkdirp" "^1.0.3" + "yallist" "^4.0.0" + +"temp-file@^3.3.7": + "integrity" "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==" + "resolved" "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz" + "version" "3.3.7" + dependencies: + "async-exit-hook" "^2.0.1" + "fs-extra" "^8.1.0" + +"term-size@^2.1.0": + "integrity" "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + "resolved" "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" + "version" "2.2.1" + +"timm@^1.6.1": + "integrity" "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" + "resolved" "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" + "version" "1.6.2" + +"tinycolor2@^1.4.1": + "integrity" "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" + "version" "1.4.1" + +"to-array@0.1.4": + "integrity" "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + "resolved" "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + "version" "0.1.4" + +"to-readable-stream@^1.0.0": + "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + "version" "1.0.0" + +"tough-cookie@~2.5.0": + "integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "psl" "^1.1.28" + "punycode" "^2.1.1" + +"truncate-utf8-bytes@^1.0.0": + "integrity" "sha1-QFkjkJWS1W94pYGENLC3hInKXys=" + "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "utf8-byte-length" "^1.0.1" + +"tunnel-agent@^0.6.0": + "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "safe-buffer" "^5.0.1" + +"tunnel@^0.0.6": + "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + "version" "0.0.6" + +"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": + "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "version" "0.14.5" + +"type-fest@^0.13.1": + "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + "version" "0.13.1" + +"type-fest@^0.16.0": + "integrity" "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" + "version" "0.16.0" + +"type-fest@^0.8.1": + "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + "version" "0.8.1" + +"typedarray-to-buffer@^3.1.5": + "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" + "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "is-typedarray" "^1.0.0" + +"typedarray@^0.0.6": + "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "version" "0.0.6" + +"unique-string@^2.0.0": + "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" + "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "crypto-random-string" "^2.0.0" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"universalify@^1.0.0": + "integrity" "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz" + "version" "1.0.0" + +"update-notifier@^4.1.1": + "integrity" "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==" + "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" + "version" "4.1.3" + dependencies: + "boxen" "^4.2.0" + "chalk" "^3.0.0" + "configstore" "^5.0.1" + "has-yarn" "^2.1.0" + "import-lazy" "^2.1.0" + "is-ci" "^2.0.0" + "is-installed-globally" "^0.3.1" + "is-npm" "^4.0.0" + "is-yarn-global" "^0.3.0" + "latest-version" "^5.0.0" + "pupa" "^2.0.1" + "semver-diff" "^3.1.1" + "xdg-basedir" "^4.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz" + "version" "4.4.0" + dependencies: + "punycode" "^2.1.0" + +"url-parse-lax@^3.0.0": + "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" + "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "prepend-http" "^2.0.0" + +"url@^0.11.0": + "integrity" "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=" + "resolved" "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + "version" "0.11.0" + dependencies: + "punycode" "1.3.2" + "querystring" "0.2.0" + +"utf-8-validate@^5.0.2": + "integrity" "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==" + "resolved" "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz" + "version" "5.0.2" + dependencies: + "node-gyp-build" "~3.7.0" + +"utf8-byte-length@^1.0.1": + "integrity" "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" + "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + "version" "1.0.4" + +"utif@^2.0.1": + "integrity" "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==" + "resolved" "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "pako" "^1.0.5" + +"util-deprecate@~1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"uuid@^3.3.2": + "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + "version" "3.4.0" + +"uuid@^8.3.0", "uuid@^8.3.2": + "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + "version" "8.3.2" + +"validate-npm-package-license@^3.0.1": + "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" + "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "spdx-correct" "^3.0.0" + "spdx-expression-parse" "^3.0.0" + +"verror@1.10.0": + "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" + "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "version" "1.10.0" + dependencies: + "assert-plus" "^1.0.0" + "core-util-is" "1.0.2" + "extsprintf" "^1.2.0" + +"wcwidth@^1.0.1": + "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"which-pm-runs@^1.0.0": + "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" + "version" "1.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -tar@^6.0.1: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^6.0.5: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -temp-file@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" - integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== - dependencies: - async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - -through@2, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timm@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" - integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== - -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -update-notifier@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -utf-8-validate@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" - integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== - dependencies: - node-gyp-build "~3.7.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== +"which@^2.0.2": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" dependencies: - isexe "^2.0.0" + "isexe" "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== +"wide-align@^1.1.0": + "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + "version" "1.1.3" dependencies: - string-width "^1.0.2 || 2" + "string-width" "^1.0.2 || 2" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== +"widest-line@^3.1.0": + "integrity" "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==" + "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + "version" "3.1.0" dependencies: - string-width "^4.0.0" + "string-width" "^4.0.0" "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": - version "0.1.0" - resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" - dependencies: - nan latest - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.1.2, ws@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== - -ws@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" - integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xhr@^2.0.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= - -xml2js@^0.4.17, xml2js@^0.4.5: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs@^16.0.0, yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + "resolved" "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" + dependencies: + "nan" "^2.14.2" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^3.0.0": + "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "imurmurhash" "^0.1.4" + "is-typedarray" "^1.0.0" + "signal-exit" "^3.0.2" + "typedarray-to-buffer" "^3.1.5" + +"ws@^7.1.2", "ws@^7.3.1", "ws@^7.4.2": + "integrity" "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz" + "version" "7.4.2" + +"ws@~6.1.0": + "integrity" "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==" + "resolved" "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz" + "version" "6.1.4" + dependencies: + "async-limiter" "~1.0.0" + +"xdg-basedir@^4.0.0": + "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + "version" "4.0.0" + +"xhr@^2.0.1": + "integrity" "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==" + "resolved" "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "global" "~4.3.0" + "is-function" "^1.0.1" + "parse-headers" "^2.0.0" + "xtend" "^4.0.0" + +"xml-parse-from-string@^1.0.0": + "integrity" "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + "resolved" "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" + "version" "1.0.1" + +"xml2js@^0.4.5": + "integrity" "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==" + "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + "version" "0.4.23" + dependencies: + "sax" ">=0.6.0" + "xmlbuilder" "~11.0.0" + +"xmlbuilder@~11.0.0": + "integrity" "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + "version" "11.0.1" + +"xmlhttprequest-ssl@~1.5.4": + "integrity" "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" + "version" "1.5.5" + +"xtend@^4.0.0": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^5.0.5": + "integrity" "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" + "version" "5.0.5" + +"yallist@^3.0.0": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^3.0.3": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yaml@^1.10.0": + "integrity" "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" + "version" "1.10.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + "version" "20.2.4" + +"yargs@^16.0.0", "yargs@^16.0.3": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yauzl@^2.10.0": + "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" + "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "buffer-crc32" "~0.2.3" + "fd-slicer" "~1.1.0" + +"yeast@0.1.2": + "integrity" "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + "resolved" "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + "version" "0.1.2" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" From 6c89ee88dfeeb992c01b0339e88dfd99bc5c4590 Mon Sep 17 00:00:00 2001 From: Mazen Kotb Date: Tue, 23 Feb 2021 09:14:30 -0800 Subject: [PATCH 090/489] =?UTF-8?q?=F0=9F=8E=A8=20Match=20programming=20st?= =?UTF-8?q?yle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 4 +- src/providers/macMediaProvider.js | 62 ++++++++++++++++--------------- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/main.js b/main.js index c9bff945a..f2efff92b 100644 --- a/main.js +++ b/main.js @@ -400,7 +400,7 @@ async function createWindow() { if (isMac()) { global.sharedObj.paused = false updateStatusBar() - macMediaProvider.init(view); + macMediaProvider.init(view) } if (infoPlayerInterval === undefined) { @@ -467,7 +467,7 @@ async function createWindow() { seekbarCurrentPosition, duration, !playerInfo.isPaused - ); + ) } /** diff --git a/src/providers/macMediaProvider.js b/src/providers/macMediaProvider.js index 0fd378d01..e1a416e8c 100644 --- a/src/providers/macMediaProvider.js +++ b/src/providers/macMediaProvider.js @@ -1,63 +1,63 @@ -const MediaService = require('electron-media-service'); +const MediaService = require('electron-media-service') const mediaControl = require('../providers/mediaProvider') class MacMediaProvider { constructor() { - this.view = null; - this.mediaService = new MediaService(); - this.lastObj = {}; + this.view = null + this.mediaService = new MediaService() + this.lastObj = {} this.mediaService.on('play', () => { if (this.lastObj.state === 'paused' && !this.attemptedAction) { - mediaControl.playPauseTrack(this.view); - this.attemptedAction = true; + mediaControl.playPauseTrack(this.view) + this.attemptedAction = true } - }); + }) this.mediaService.on('pause', () => { if (this.lastObj.state === 'playing' && !this.attemptedAction) { - mediaControl.playPauseTrack(this.view); - this.attemptedAction = true; + mediaControl.playPauseTrack(this.view) + this.attemptedAction = true } }) this.mediaService.on('playPause', () => { if (!this.attemptedAction) { - mediaControl.playPauseTrack(this.view); - this.attemptedAction = true; + mediaControl.playPauseTrack(this.view) + this.attemptedAction = true } }) this.mediaService.on('next', () => { if (!this.attemptedAction) { - mediaControl.nextTrack(this.view); - this.attemptedAction = true; + mediaControl.nextTrack(this.view) + this.attemptedAction = true } }); this.mediaService.on('previous', () => { if (!this.attemptedAction) { - mediaControl.previousTrack(this.view); - this.attemptedAction = true; + mediaControl.previousTrack(this.view) + this.attemptedAction = true } }); this.mediaService.on('seek', (to) => { if (!this.attemptedAction) { - mediaControl.changeSeekbar(this.view, to / 1000); - this.attemptedAction = true; + mediaControl.changeSeekbar(this.view, to / 1000) + this.attemptedAction = true } }); } init(view) { - this.view = view; - this.mediaService.startService(); + this.view = view + this.mediaService.startService() } setPlaybackData(title, artist, cover, album, time, duration, playing) { if (this.lastTime == time) { - return; + return } this.lastObj = { @@ -66,23 +66,25 @@ class MacMediaProvider { album, state: playing ? 'playing' : 'paused', albumArt: cover, - id: this.hashCode(title), + id: this.hashCode(artist + ' - ' + title), currentTime: time * 1000, duration: duration * 1000 - }; - this.attemptedAction = false; - this.mediaService.setMetaData(this.lastObj); + } + this.attemptedAction = false + this.mediaService.setMetaData(this.lastObj) } + // hash function to produce a unique id for songs + // as required by macOS hashCode(str) { - var hash = 0, i, chr; + var hash = 0, i, chr for (i = 0; i < str.length; i++) { - chr = str.charCodeAt(i); - hash = ((hash << 5) - hash) + chr; - hash |= 0; // Convert to 32bit integer + chr = str.charCodeAt(i) + hash = ((hash << 5) - hash) + chr + hash |= 0 // Convert to 32bit integer } - return hash; + return hash } } -module.exports = new MacMediaProvider(); \ No newline at end of file +module.exports = new MacMediaProvider() \ No newline at end of file From 007bcbe36cb42093b195f74767314e31b88e5dc0 Mon Sep 17 00:00:00 2001 From: Mazen Kotb Date: Tue, 23 Feb 2021 09:46:35 -0800 Subject: [PATCH 091/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20npm=20and=20yarn?= =?UTF-8?q?=20lockfiles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 6337 +------------------------------------ yarn.lock | 7634 +++++++++++++++++++++++---------------------- 2 files changed, 3971 insertions(+), 10000 deletions(-) diff --git a/package-lock.json b/package-lock.json index 171c94d18..2e86c8032 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6247 +1,15 @@ { "name": "youtube-music-desktop-app", "version": "1.13.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "youtube-music-desktop-app", - "version": "1.13.0", - "hasInstallScript": true, - "license": "CC0-1.0", - "dependencies": { - "ace-builds": "^1.4.12", - "discord-rpc": "^3.1.4", - "electron-canvas-to-buffer": "^2.0.0", - "electron-clipboard-watcher": "^1.0.1", - "electron-google-analytics": "^1.0.2", - "electron-is-dev": "^1.2.0", - "electron-localshortcut": "^3.2.1", - "electron-log": "^4.3.1", - "electron-media-service": "github:tidal-engineering/electron-media-service", - "electron-store": "^6.0.1", - "electron-updater": "^4.3.5", - "i18n": "^0.13.2", - "image-to-base64": "^2.1.1", - "js-base64": "^3.6.0", - "markdown": "^0.5.0", - "node-fetch": "^2.6.1", - "node-vibrant": "^3.1.5", - "postscribe": "^2.0.8", - "qrcode-generator": "^1.4.4", - "register-scheme": "0.0.2", - "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", - "socket.io": "^2.3.0", - "uuid": "^8.3.2", - "ws": "^7.4.2" - }, - "devDependencies": { - "electron": "^11.1.1", - "electron-builder": "^22.9.1", - "electron-rebuild": "^2.3.4", - "husky": "^4.3.7", - "prettier": "^2.2.1", - "pretty-quick": "^2.0.2" - }, - "optionalDependencies": { - "@nodert-win10-rs4/windows.foundation": "^0.4.4", - "@nodert-win10-rs4/windows.media": "^0.4.4", - "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", - "bufferutil": "^4.0.1", - "mpris-service": "^2.1.0", - "utf-8-validate": "^5.0.2", - "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", - "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@develar/schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", - "dev": true, - "dependencies": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^9.6.0", - "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "optionalDependencies": { - "global-agent": "^2.0.2", - "global-tunnel-ng": "^2.7.1" - } - }, - "node_modules/@electron/get/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@electron/get/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/get/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@jimp/bmp": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz", - "integrity": "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "bmp-js": "^0.1.0", - "core-js": "^3.4.1" - } - }, - "node_modules/@jimp/core": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz", - "integrity": "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "core-js": "^3.4.1", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - } - }, - "node_modules/@jimp/custom": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz", - "integrity": "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "node_modules/@jimp/gif": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz", - "integrity": "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "omggif": "^1.0.9" - } - }, - "node_modules/@jimp/jpeg": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz", - "integrity": "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "jpeg-js": "^0.3.4" - } - }, - "node_modules/@jimp/plugin-resize": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz", - "integrity": "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "node_modules/@jimp/png": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz", - "integrity": "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "pngjs": "^3.3.3" - } - }, - "node_modules/@jimp/tiff": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz", - "integrity": "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1", - "utif": "^2.0.1" - } - }, - "node_modules/@jimp/types": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz", - "integrity": "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.9.8", - "@jimp/gif": "^0.9.8", - "@jimp/jpeg": "^0.9.8", - "@jimp/png": "^0.9.8", - "@jimp/tiff": "^0.9.8", - "core-js": "^3.4.1", - "timm": "^1.6.1" - } - }, - "node_modules/@jimp/utils": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz", - "integrity": "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1" - } - }, - "node_modules/@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodert-win10-rs4/windows.foundation": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz", - "integrity": "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==", - "optional": true, - "dependencies": { - "nan": "^2.14.2" - } - }, - "node_modules/@nodert-win10-rs4/windows.foundation/node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/@nodert-win10-rs4/windows.media": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz", - "integrity": "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==", - "optional": true, - "dependencies": { - "nan": "^2.14.2" - } - }, - "node_modules/@nodert-win10-rs4/windows.media/node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/@nodert-win10-rs4/windows.storage.streams": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz", - "integrity": "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==", - "optional": true, - "dependencies": { - "nan": "^2.14.2" - } - }, - "node_modules/@nodert-win10-rs4/windows.storage.streams/node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/debug": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", - "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz", - "integrity": "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.158", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz", - "integrity": "sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", - "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz", - "integrity": "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" - }, - "node_modules/@types/yargs": { - "version": "15.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz", - "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "node_modules/7zip-bin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", - "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abstract-socket": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz", - "integrity": "sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "linux" - ], - "dependencies": { - "bindings": "^1.2.1", - "nan": "^2.12.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ace-builds": { - "version": "1.4.12", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz", - "integrity": "sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg==" - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - }, - "node_modules/app-builder-bin": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", - "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", - "dev": true - }, - "node_modules/app-builder-lib": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz", - "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", - "dev": true, - "dependencies": { - "@develar/schema-utils": "~2.6.5", - "7zip-bin": "~5.0.3", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chromium-pickle-js": "^0.2.0", - "debug": "^4.3.0", - "ejs": "^3.1.5", - "electron-publish": "22.9.1", - "fs-extra": "^9.0.1", - "hosted-git-info": "^3.0.5", - "is-ci": "^2.0.0", - "isbinaryfile": "^4.0.6", - "js-yaml": "^3.14.0", - "lazy-val": "^1.0.4", - "minimatch": "^3.0.4", - "normalize-package-data": "^2.5.0", - "read-config-file": "6.0.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.2", - "temp-file": "^3.3.7" - }, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/app-builder-lib/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dependencies": { - "callsite": "1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5" - } - }, - "node_modules/bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" - }, - "node_modules/boolean": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", - "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", - "dev": true, - "optional": true - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "devOptional": true - }, - "node_modules/bufferutil": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz", - "integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==", - "optional": true, - "dependencies": { - "node-gyp-build": "~3.7.0" - } - }, - "node_modules/builder-util": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz", - "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.5", - "@types/fs-extra": "^9.0.1", - "7zip-bin": "~5.0.3", - "app-builder-bin": "3.5.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "debug": "^4.3.0", - "fs-extra": "^9.0.1", - "is-ci": "^2.0.0", - "js-yaml": "^3.14.0", - "source-map-support": "^0.5.19", - "stat-mode": "^1.0.0", - "temp-file": "^3.3.7" - } - }, - "node_modules/builder-util-runtime": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", - "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", - "dependencies": { - "debug": "^4.1.1", - "sax": "^1.2.4" - }, - "engines": { - "node": ">=8.2.5" - } - }, - "node_modules/builder-util/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chromium-pickle-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", - "dev": true - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/conf": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz", - "integrity": "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==", - "dependencies": { - "ajv": "^6.12.2", - "atomically": "^1.3.1", - "debounce-fn": "^4.0.0", - "dot-prop": "^5.2.0", - "env-paths": "^2.2.0", - "json-schema-typed": "^7.0.3", - "make-dir": "^3.1.0", - "onetime": "^5.1.0", - "pkg-up": "^3.1.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, - "optional": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "node_modules/cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dbus-next": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz", - "integrity": "sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA==", - "optional": true, - "dependencies": { - "abstract-socket": "^2.0.0", - "event-stream": "3.3.4", - "hexy": "^0.2.10", - "jsbi": "^2.0.5", - "long": "^4.0.0", - "put": "0.0.6", - "safe-buffer": "^5.1.1", - "xml2js": "^0.4.17" - } - }, - "node_modules/debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "dependencies": { - "mimic-fn": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "optional": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "optional": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true, - "optional": true - }, - "node_modules/discord-rpc": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz", - "integrity": "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==", - "dependencies": { - "node-fetch": "^2.6.1", - "ws": "^7.3.1" - } - }, - "node_modules/dmg-builder": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz", - "integrity": "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==", - "dev": true, - "dependencies": { - "app-builder-lib": "22.9.1", - "builder-util": "22.9.1", - "fs-extra": "^9.0.1", - "iconv-lite": "^0.6.2", - "js-yaml": "^3.14.0", - "sanitize-filename": "^1.6.3" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "node_modules/duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "optional": true - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ejs": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", - "dev": true, - "dependencies": { - "jake": "^10.6.1" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz", - "integrity": "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==", - "dev": true, - "dependencies": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", - "extract-zip": "^1.0.3" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 8.6" - } - }, - "node_modules/electron-builder": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz", - "integrity": "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==", - "dev": true, - "dependencies": { - "@types/yargs": "^15.0.5", - "app-builder-lib": "22.9.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "dmg-builder": "22.9.1", - "fs-extra": "^9.0.1", - "is-ci": "^2.0.0", - "lazy-val": "^1.0.4", - "read-config-file": "6.0.0", - "sanitize-filename": "^1.6.3", - "update-notifier": "^4.1.1", - "yargs": "^16.0.3" - }, - "bin": { - "electron-builder": "out/cli/cli.js", - "install-app-deps": "out/cli/install-app-deps.js" - }, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/electron-canvas-to-buffer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz", - "integrity": "sha1-2pLNc0LkezsN3io655l45aB2FoE=" - }, - "node_modules/electron-clipboard-watcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz", - "integrity": "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" - }, - "node_modules/electron-fetch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz", - "integrity": "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/electron-google-analytics": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz", - "integrity": "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==", - "dependencies": { - "electron-fetch": "^1.7.1", - "uuid": "^8.3.0" - } - }, - "node_modules/electron-is-accelerator": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", - "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" - }, - "node_modules/electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" - }, - "node_modules/electron-localshortcut": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", - "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", - "dependencies": { - "debug": "^4.0.1", - "electron-is-accelerator": "^0.1.0", - "keyboardevent-from-electron-accelerator": "^2.0.0", - "keyboardevents-areequal": "^0.2.1" - } - }, - "node_modules/electron-log": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz", - "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" - }, - "node_modules/electron-media-service": { - "version": "0.2.6", - "resolved": "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^3.0.2", - "semver": "^7.3.2" - } - }, - "node_modules/electron-media-service/node_modules/node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - }, - "node_modules/electron-publish": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz", - "integrity": "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^9.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "fs-extra": "^9.0.1", - "lazy-val": "^1.0.4", - "mime": "^2.4.6" - } - }, - "node_modules/electron-publish/node_modules/mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/electron-rebuild": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz", - "integrity": "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==", - "dev": true, - "dependencies": { - "@malept/cross-spawn-promise": "^1.1.0", - "colors": "^1.3.3", - "debug": "^4.1.1", - "detect-libc": "^1.0.3", - "fs-extra": "^9.0.1", - "got": "^11.7.0", - "lzma-native": "^6.0.1", - "node-abi": "^2.19.2", - "node-gyp": "^7.1.0", - "ora": "^5.1.0", - "tar": "^6.0.5", - "yargs": "^16.0.0" - }, - "bin": { - "electron-rebuild": "lib/src/cli.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/electron-rebuild/node_modules/@sindresorhus/is": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", - "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-rebuild/node_modules/@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dev": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-rebuild/node_modules/cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-rebuild/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-rebuild/node_modules/defer-to-connect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", - "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-rebuild/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-rebuild/node_modules/got": { - "version": "11.8.1", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.1.tgz", - "integrity": "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/electron-rebuild/node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/electron-rebuild/node_modules/keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/electron-rebuild/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-rebuild/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-rebuild/node_modules/p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-rebuild/node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/electron-store": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz", - "integrity": "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==", - "dependencies": { - "conf": "^7.1.2", - "type-fest": "^0.16.0" - } - }, - "node_modules/electron-store/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/electron-updater": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz", - "integrity": "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==", - "dependencies": { - "@types/semver": "^7.3.1", - "builder-util-runtime": "8.7.2", - "fs-extra": "^9.0.1", - "js-yaml": "^3.14.0", - "lazy-val": "^1.0.4", - "lodash.isequal": "^4.5.0", - "semver": "^7.3.2" - } - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", - "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "optional": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "optional": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "optional": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "optional": true, - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "node_modules/execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": "^8.12.0 || >=9.7.0" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/filelist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", - "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, - "dependencies": { - "semver-regex": "^3.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "optional": true - }, - "node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dependencies": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "node_modules/global-agent": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", - "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "core-js": "^3.6.5", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "dev": true, - "dependencies": { - "ini": "^1.3.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/global-tunnel-ng": { - "version": "2.7.1", - "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, - "dependencies": { - "encodeurl": "^1.0.2", - "lodash": "^4.17.10", - "npm-conf": "^1.1.3", - "tunnel": "^0.0.6" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", - "dev": true, - "optional": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hexy": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", - "integrity": "sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==", - "optional": true, - "bin": { - "hexy": "bin/hexy_cmd.js" - } - }, - "node_modules/hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.0-beta.5.2", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", - "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", - "dev": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/husky": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz", - "integrity": "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==", - "dependencies": { - "debug": "^4.1.1", - "make-plural": "^6.2.2", - "math-interval-parser": "^2.0.1", - "messageformat": "^2.3.0", - "mustache": "^4.0.1", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/i18n/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-to-base64": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz", - "integrity": "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==", - "dependencies": { - "node-fetch": "^2.6.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "node_modules/is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "optional": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "optional": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/jake/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jake/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - }, - "node_modules/js-base64": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", - "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbi": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz", - "integrity": "sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ==", - "optional": true - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keyboardevent-from-electron-accelerator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", - "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" - }, - "node_modules/keyboardevents-areequal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", - "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lazy-val": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", - "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "node_modules/load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", - "dependencies": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "optional": true - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lzma-native": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", - "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", - "dev": true, - "dependencies": { - "node-addon-api": "^1.6.0", - "node-pre-gyp": "^0.11.0", - "readable-stream": "^2.3.5", - "rimraf": "^2.7.1" - }, - "bin": { - "lzmajs": "bin/lzmajs" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "optional": true - }, - "node_modules/markdown": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", - "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", - "dependencies": { - "nopt": "~2.1.1" - }, - "bin": { - "md2html": "bin/md2html.js" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/messageformat": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", - "dependencies": { - "make-plural": "^4.3.0", - "messageformat-formatters": "^2.0.1", - "messageformat-parser": "^4.1.2" - } - }, - "node_modules/messageformat-formatters": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - }, - "node_modules/messageformat-parser": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", - "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" - }, - "node_modules/messageformat/node_modules/make-plural": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "make-plural": "bin/make-plural" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mpris-service": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.0.tgz", - "integrity": "sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg==", - "optional": true, - "dependencies": { - "dbus-next": "^0.5.1", - "deep-equal": "^1.0.1", - "source-map-support": "^0.5.11" - } - }, - "node_modules/mri": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", - "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mustache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", - "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==", - "bin": { - "mustache": "bin/mustache" - }, - "engines": { - "npm": ">=1.4.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true - }, - "node_modules/needle": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", - "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", - "dev": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp-build": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", - "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "dev": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/node-vibrant": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz", - "integrity": "sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg==", - "dependencies": { - "@jimp/custom": "^0.9.3", - "@jimp/plugin-resize": "^0.9.3", - "@jimp/types": "^0.9.3", - "@types/lodash": "^4.14.53", - "@types/node": "^10.11.7", - "lodash": "^4.17.4", - "url": "^0.11.0" - } - }, - "node_modules/node-vibrant/node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" - }, - "node_modules/nopt": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", - "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, - "optional": true, - "dependencies": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "node_modules/object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "optional": true - }, - "node_modules/object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", - "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/onetime/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true, - "bin": { - "opencollective-postinstall": "index.js" - } - }, - "node_modules/ora": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", - "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.4.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - }, - "node_modules/parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" - }, - "node_modules/parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "dependencies": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "node_modules/parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "optional": true, - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "dependencies": { - "pngjs": "^3.0.0" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postscribe": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz", - "integrity": "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=", - "dependencies": { - "prescribe": ">=1.1.2" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prescribe": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz", - "integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" - }, - "node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-quick": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", - "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" - }, - "bin": { - "pretty-quick": "bin/pretty-quick.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-quick/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-quick/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/pretty-quick/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/pretty-quick/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/pretty-quick/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-quick/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-quick/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, - "optional": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/put": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/put/-/put-0.0.6.tgz", - "integrity": "sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM=", - "optional": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/qrcode-generator": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", - "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read-config-file": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz", - "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==", - "dev": true, - "dependencies": { - "dotenv": "^8.2.0", - "dotenv-expand": "^5.1.0", - "js-yaml": "^3.13.1", - "json5": "^2.1.2", - "lazy-val": "^1.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/register-scheme": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/register-scheme/-/register-scheme-0.0.2.tgz", - "integrity": "sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw==", - "dependencies": { - "bindings": "^1.3.0", - "node-addon-api": "^1.3.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-alpn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", - "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scribble": { - "resolved": "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "node_modules/socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "dependencies": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "devOptional": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "optional": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stat-mode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "optional": true, - "dependencies": { - "duplexer": "~0.1.1" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/temp-file": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", - "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", - "dev": true, - "dependencies": { - "async-exit-hook": "^2.0.1", - "fs-extra": "^8.1.0" - } - }, - "node_modules/temp-file/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/temp-file/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/temp-file/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true - }, - "node_modules/timm": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", - "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" - }, - "node_modules/tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", - "engines": { - "node": "*" - } - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dev": true, - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/utf-8-validate": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz", - "integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==", - "optional": true, - "dependencies": { - "node-gyp-build": "~3.7.0" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", - "dev": true - }, - "node_modules/utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "dependencies": { - "pako": "^1.0.5" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/windows.media.playback": { - "resolved": "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", - "optional": true, - "dependencies": { - "nan": "^2.14.2" - } - }, - "node_modules/windows.media.playback/node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "dependencies": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dependencies": { + "7zip-bin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", + "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - } - } - }, - "dependencies": { "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -6681,12 +449,6 @@ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, - "7zip-bin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", - "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", - "dev": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -6793,8 +555,8 @@ "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", "dev": true, "requires": { - "@develar/schema-utils": "~2.6.5", "7zip-bin": "~5.0.3", + "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", "builder-util": "22.9.1", @@ -7085,8 +847,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "devOptional": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "bufferutil": { "version": "4.0.1", @@ -7103,9 +864,9 @@ "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", "dev": true, "requires": { + "7zip-bin": "~5.0.3", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.1", - "7zip-bin": "~5.0.3", "app-builder-bin": "3.5.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.2", @@ -7561,7 +1322,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "optional": true, "requires": { "object-keys": "^1.0.12" } @@ -7757,8 +1517,8 @@ "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" }, "electron-media-service": { - "version": "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", - "from": "electron-media-service@github:tidal-engineering/electron-media-service", + "version": "github:tidal-engineering/electron-media-service#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", + "from": "github:tidal-engineering/electron-media-service", "requires": { "bindings": "^1.5.0", "node-addon-api": "^3.0.2", @@ -8069,7 +1829,6 @@ "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "optional": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -8088,7 +1847,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "optional": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -8322,8 +2080,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "gauge": { "version": "2.7.4", @@ -8517,7 +2274,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, "requires": { "function-bind": "^1.1.1" } @@ -8544,8 +2300,7 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "optional": true + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-unicode": { "version": "2.0.1", @@ -8739,8 +2494,7 @@ "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "optional": true + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" }, "is-ci": { "version": "2.0.0", @@ -8763,8 +2517,7 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "optional": true + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -8814,7 +2567,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "optional": true, "requires": { "has-symbols": "^1.0.1" } @@ -8829,7 +2581,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "optional": true, "requires": { "has-symbols": "^1.0.1" } @@ -9687,8 +3438,7 @@ "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "optional": true + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-is": { "version": "1.1.2", @@ -9703,14 +3453,12 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "optional": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -10501,8 +4249,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", @@ -10524,8 +4271,8 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "scribble": { - "version": "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43", - "from": "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" + "version": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", + "from": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" }, "semver": { "version": "7.3.2", @@ -10683,14 +4430,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "devOptional": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -10774,23 +4519,6 @@ "duplexer": "~0.1.1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -10835,7 +4563,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "optional": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -10845,12 +4572,28 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "optional": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -11285,8 +5028,8 @@ } }, "windows.media.playback": { - "version": "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", - "from": "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git", + "version": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", + "from": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", "optional": true, "requires": { "nan": "^2.14.2" diff --git a/yarn.lock b/yarn.lock index 4cb008e8b..98bec2917 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,147 +2,152 @@ # yarn lockfile v1 +"7zip-bin@~5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" + integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== + "@babel/code-frame@^7.0.0": - "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - "version" "7.12.11" + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" "@babel/helper-validator-identifier@^7.10.4": - "integrity" "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" - "version" "7.12.11" + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== "@babel/highlight@^7.10.4": - "integrity" "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" - "version" "7.10.4" + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@babel/runtime@^7.7.2": - "integrity" "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz" - "version" "7.11.0" + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: - "regenerator-runtime" "^0.13.4" + regenerator-runtime "^0.13.4" "@develar/schema-utils@~2.6.5": - "integrity" "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==" - "resolved" "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" - "version" "2.6.5" + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== dependencies: - "ajv" "^6.12.0" - "ajv-keywords" "^3.4.1" + ajv "^6.12.0" + ajv-keywords "^3.4.1" "@electron/get@^1.0.1": - "integrity" "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==" - "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz" - "version" "1.12.2" - dependencies: - "debug" "^4.1.1" - "env-paths" "^2.2.0" - "fs-extra" "^8.1.0" - "got" "^9.6.0" - "progress" "^2.0.3" - "sanitize-filename" "^1.6.2" - "sumchecker" "^3.0.1" + version "1.12.2" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" + integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + sanitize-filename "^1.6.2" + sumchecker "^3.0.1" optionalDependencies: - "global-agent" "^2.0.2" - "global-tunnel-ng" "^2.7.1" + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" "@jimp/bmp@^0.9.8": - "integrity" "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==" - "resolved" "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624" + integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "bmp-js" "^0.1.0" - "core-js" "^3.4.1" + bmp-js "^0.1.0" + core-js "^3.4.1" "@jimp/core@^0.9.8": - "integrity" "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==" - "resolved" "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85" + integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "any-base" "^1.1.0" - "buffer" "^5.2.0" - "core-js" "^3.4.1" - "exif-parser" "^0.1.12" - "file-type" "^9.0.0" - "load-bmfont" "^1.3.1" - "mkdirp" "^0.5.1" - "phin" "^2.9.1" - "pixelmatch" "^4.0.2" - "tinycolor2" "^1.4.1" + any-base "^1.1.0" + buffer "^5.2.0" + core-js "^3.4.1" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "^0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" "@jimp/custom@^0.9.3": - "integrity" "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==" - "resolved" "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1" + integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw== dependencies: "@babel/runtime" "^7.7.2" "@jimp/core" "^0.9.8" - "core-js" "^3.4.1" + core-js "^3.4.1" "@jimp/gif@^0.9.8": - "integrity" "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==" - "resolved" "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b" + integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "core-js" "^3.4.1" - "omggif" "^1.0.9" + core-js "^3.4.1" + omggif "^1.0.9" "@jimp/jpeg@^0.9.8": - "integrity" "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==" - "resolved" "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1" + integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "core-js" "^3.4.1" - "jpeg-js" "^0.3.4" + core-js "^3.4.1" + jpeg-js "^0.3.4" "@jimp/plugin-resize@^0.9.3": - "integrity" "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==" - "resolved" "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02" + integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "core-js" "^3.4.1" + core-js "^3.4.1" "@jimp/png@^0.9.8": - "integrity" "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==" - "resolved" "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409" + integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA== dependencies: "@babel/runtime" "^7.7.2" "@jimp/utils" "^0.9.8" - "core-js" "^3.4.1" - "pngjs" "^3.3.3" + core-js "^3.4.1" + pngjs "^3.3.3" "@jimp/tiff@^0.9.8": - "integrity" "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==" - "resolved" "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560" + integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow== dependencies: "@babel/runtime" "^7.7.2" - "core-js" "^3.4.1" - "utif" "^2.0.1" + core-js "^3.4.1" + utif "^2.0.1" "@jimp/types@^0.9.3": - "integrity" "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==" - "resolved" "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e" + integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA== dependencies: "@babel/runtime" "^7.7.2" "@jimp/bmp" "^0.9.8" @@ -150,73 +155,73 @@ "@jimp/jpeg" "^0.9.8" "@jimp/png" "^0.9.8" "@jimp/tiff" "^0.9.8" - "core-js" "^3.4.1" - "timm" "^1.6.1" + core-js "^3.4.1" + timm "^1.6.1" "@jimp/utils@^0.9.8": - "integrity" "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==" - "resolved" "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz" - "version" "0.9.8" + version "0.9.8" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096" + integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw== dependencies: "@babel/runtime" "^7.7.2" - "core-js" "^3.4.1" + core-js "^3.4.1" "@malept/cross-spawn-promise@^1.1.0": - "integrity" "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==" - "resolved" "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" - "version" "1.1.1" + version "1.1.0" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz#258fde4098f5004a56db67c35f33033af64810f6" + integrity sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg== dependencies: - "cross-spawn" "^7.0.1" + cross-spawn "^7.0.1" "@nodert-win10-rs4/windows.foundation@^0.4.4": - "integrity" "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==" - "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz" - "version" "0.4.4" + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" + integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== dependencies: - "nan" "^2.14.2" + nan latest "@nodert-win10-rs4/windows.media@^0.4.4": - "integrity" "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==" - "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz" - "version" "0.4.4" + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" + integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== dependencies: - "nan" "^2.14.2" + nan latest "@nodert-win10-rs4/windows.storage.streams@^0.4.4": - "integrity" "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==" - "resolved" "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz" - "version" "0.4.4" + version "0.4.4" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" + integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== dependencies: - "nan" "^2.14.2" + nan latest "@sindresorhus/is@^0.14.0": - "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" - "version" "0.14.0" + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": - "integrity" "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==" - "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@szmarczak/http-timer@^1.1.2": - "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" - "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" - "version" "1.1.2" + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: - "defer-to-connect" "^1.0.1" + defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": - "integrity" "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==" - "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz" - "version" "4.0.5" + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== dependencies: - "defer-to-connect" "^2.0.0" + defer-to-connect "^2.0.0" "@types/cacheable-request@^6.0.1": - "integrity" "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==" - "resolved" "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz" - "version" "6.0.1" + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== dependencies: "@types/http-cache-semantics" "*" "@types/keyv" "*" @@ -224,3691 +229,3914 @@ "@types/responselike" "*" "@types/color-name@^1.1.1": - "integrity" "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - "resolved" "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" - "version" "1.1.1" + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/debug@^4.1.5": - "integrity" "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" - "resolved" "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz" - "version" "4.1.5" + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== "@types/fs-extra@^9.0.1": - "integrity" "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==" - "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz" - "version" "9.0.5" + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" + integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== dependencies: "@types/node" "*" "@types/http-cache-semantics@*": - "integrity" "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" - "resolved" "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/keyv@*": - "integrity" "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==" - "resolved" "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz" - "version" "3.1.1" + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== dependencies: "@types/node" "*" "@types/lodash@^4.14.53": - "integrity" "sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==" - "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz" - "version" "4.14.158" + version "4.14.160" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" + integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== "@types/minimatch@^3.0.3": - "integrity" "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" - "version" "3.0.3" + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@^12.0.12": - "integrity" "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz" - "version" "12.19.8" +"@types/node@*": + version "14.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" + integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== "@types/node@^10.11.7": - "integrity" "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz" - "version" "10.17.28" + version "10.17.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" + integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== + +"@types/node@^12.0.12": + version "12.12.54" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" + integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== "@types/parse-json@^4.0.0": - "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/responselike@*", "@types/responselike@^1.0.0": - "integrity" "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==" - "resolved" "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" - "version" "1.0.0" + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: "@types/node" "*" "@types/semver@^7.3.1": - "integrity" "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" - "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz" - "version" "7.3.3" + version "7.3.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" + integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== "@types/yargs-parser@*": - "integrity" "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" - "version" "15.0.0" + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.5": - "integrity" "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz" - "version" "15.0.11" + version "15.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" + integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== dependencies: "@types/yargs-parser" "*" -"7zip-bin@~5.0.3": - "integrity" "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==" - "resolved" "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz" - "version" "5.0.3" - -"abbrev@1": - "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - "version" "1.1.1" - -"accepts@~1.3.4": - "integrity" "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==" - "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - "version" "1.3.7" - dependencies: - "mime-types" "~2.1.24" - "negotiator" "0.6.2" - -"ace-builds@^1.4.12": - "integrity" "sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg==" - "resolved" "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz" - "version" "1.4.12" - -"after@0.8.2": - "integrity" "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - "resolved" "https://registry.npmjs.org/after/-/after-0.8.2.tgz" - "version" "0.8.2" - -"ajv-keywords@^3.4.1": - "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - "version" "3.5.2" - -"ajv@^6.12.0", "ajv@^6.12.2", "ajv@^6.12.3": - "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - "version" "6.12.6" - dependencies: - "fast-deep-equal" "^3.1.1" - "fast-json-stable-stringify" "^2.0.0" - "json-schema-traverse" "^0.4.1" - "uri-js" "^4.2.2" - -"ansi-align@^3.0.0": - "integrity" "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==" - "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "string-width" "^3.0.0" - -"ansi-regex@^2.0.0": - "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - "version" "2.1.1" - -"ansi-regex@^3.0.0": - "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - "version" "3.0.0" - -"ansi-regex@^4.1.0": - "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - "version" "4.1.0" - -"ansi-regex@^5.0.0": - "integrity" "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" - "version" "5.0.0" - -"ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - -"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": - "integrity" "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" - "version" "4.2.1" +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abstract-socket@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/abstract-socket/-/abstract-socket-2.1.1.tgz#243a7e6e6ff65bb9eab16a22fa90699b91e528f7" + integrity sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA== + dependencies: + bindings "^1.2.1" + nan "^2.12.1" + +accepts@~1.3.4: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +ace-builds@^1.4.12: + version "1.4.12" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" + integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: "@types/color-name" "^1.1.1" - "color-convert" "^2.0.1" + color-convert "^2.0.1" -"any-base@^1.1.0": - "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" - "version" "1.1.0" +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== -"app-builder-bin@3.5.10": - "integrity" "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==" - "resolved" "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz" - "version" "3.5.10" +app-builder-bin@3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" + integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== -"app-builder-lib@22.9.1": - "integrity" "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==" - "resolved" "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz" - "version" "22.9.1" +app-builder-lib@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" + integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== dependencies: - "@develar/schema-utils" "~2.6.5" "7zip-bin" "~5.0.3" - "async-exit-hook" "^2.0.1" - "bluebird-lst" "^1.0.9" - "builder-util" "22.9.1" - "builder-util-runtime" "8.7.2" - "chromium-pickle-js" "^0.2.0" - "debug" "^4.3.0" - "ejs" "^3.1.5" - "electron-publish" "22.9.1" - "fs-extra" "^9.0.1" - "hosted-git-info" "^3.0.5" - "is-ci" "^2.0.0" - "isbinaryfile" "^4.0.6" - "js-yaml" "^3.14.0" - "lazy-val" "^1.0.4" - "minimatch" "^3.0.4" - "normalize-package-data" "^2.5.0" - "read-config-file" "6.0.0" - "sanitize-filename" "^1.6.3" - "semver" "^7.3.2" - "temp-file" "^3.3.7" - -"aproba@^1.0.3": - "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" - "version" "1.2.0" - -"are-we-there-yet@~1.1.2": - "integrity" "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==" - "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "delegates" "^1.0.0" - "readable-stream" "^2.0.6" - -"argparse@^1.0.7": - "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "sprintf-js" "~1.0.2" - -"array-differ@^3.0.0": - "integrity" "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" - "resolved" "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" - "version" "3.0.0" - -"array-union@^2.1.0": - "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - "version" "2.1.0" - -"arraybuffer.slice@~0.0.7": - "integrity" "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - "resolved" "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" - "version" "0.0.7" - -"arrify@^2.0.1": - "integrity" "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - "resolved" "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" - "version" "2.0.1" - -"asn1@~0.2.3": - "integrity" "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==" - "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" - "version" "0.2.4" - dependencies: - "safer-buffer" "~2.1.0" - -"assert-plus@^1.0.0", "assert-plus@1.0.0": - "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - "version" "1.0.0" - -"async-exit-hook@^2.0.1": - "integrity" "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" - "resolved" "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" - "version" "2.0.1" - -"async-limiter@~1.0.0": - "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - "version" "1.0.1" - -"async@0.9.x": - "integrity" "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - "resolved" "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - "version" "0.9.2" - -"asynckit@^0.4.0": - "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - "version" "0.4.0" - -"at-least-node@^1.0.0": - "integrity" "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - "resolved" "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" - "version" "1.0.0" - -"atomically@^1.3.1": - "integrity" "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" - "resolved" "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz" - "version" "1.7.0" - -"aws-sign2@~0.7.0": - "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - "version" "0.7.0" - -"aws4@^1.8.0": - "integrity" "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - "version" "1.11.0" - -"backo2@1.0.2": - "integrity" "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - "resolved" "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" - "version" "1.0.2" - -"balanced-match@^1.0.0": - "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" - "version" "1.0.0" - -"base64-arraybuffer@0.1.5": - "integrity" "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - "resolved" "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" - "version" "0.1.5" - -"base64-js@^1.0.2": - "integrity" "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" - "version" "1.3.1" - -"base64id@2.0.0": - "integrity" "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - "resolved" "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" - "version" "2.0.0" - -"bcrypt-pbkdf@^1.0.0": - "integrity" "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" - "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "tweetnacl" "^0.14.3" - -"better-assert@~1.0.0": - "integrity" "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=" - "resolved" "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "callsite" "1.0.0" - -"bindings@^1.3.0", "bindings@^1.5.0": - "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==" - "resolved" "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - "version" "1.5.0" - dependencies: - "file-uri-to-path" "1.0.0" - -"blob@0.0.5": - "integrity" "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - "resolved" "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" - "version" "0.0.5" - -"bluebird-lst@^1.0.9": - "integrity" "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==" - "resolved" "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" - "version" "1.0.9" - dependencies: - "bluebird" "^3.5.5" - -"bluebird@^3.5.5": - "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - "version" "3.7.2" - -"bmp-js@^0.1.0": - "integrity" "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" - "resolved" "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" - "version" "0.1.0" - -"boolean@^3.0.1": - "integrity" "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==" - "resolved" "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz" - "version" "3.0.2" - -"boxen@^4.2.0": - "integrity" "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==" - "resolved" "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "ansi-align" "^3.0.0" - "camelcase" "^5.3.1" - "chalk" "^3.0.0" - "cli-boxes" "^2.2.0" - "string-width" "^4.1.0" - "term-size" "^2.1.0" - "type-fest" "^0.8.1" - "widest-line" "^3.1.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"buffer-crc32@~0.2.3": - "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - "version" "0.2.13" - -"buffer-equal@0.0.1": - "integrity" "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" - "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" - "version" "0.0.1" - -"buffer-from@^1.0.0": - "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" - "version" "1.1.1" - -"buffer@^5.2.0": - "integrity" "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" - "version" "5.6.0" - dependencies: - "base64-js" "^1.0.2" - "ieee754" "^1.1.4" - -"bufferutil@^4.0.1": - "integrity" "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==" - "resolved" "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "node-gyp-build" "~3.7.0" - -"builder-util-runtime@8.7.2": - "integrity" "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==" - "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz" - "version" "8.7.2" - dependencies: - "debug" "^4.1.1" - "sax" "^1.2.4" - -"builder-util@22.9.1": - "integrity" "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==" - "resolved" "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz" - "version" "22.9.1" + "@develar/schema-utils" "~2.6.5" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "22.9.1" + builder-util-runtime "8.7.2" + chromium-pickle-js "^0.2.0" + debug "^4.3.0" + ejs "^3.1.5" + electron-publish "22.9.1" + fs-extra "^9.0.1" + hosted-git-info "^3.0.5" + is-ci "^2.0.0" + isbinaryfile "^4.0.6" + js-yaml "^3.14.0" + lazy-val "^1.0.4" + minimatch "^3.0.4" + normalize-package-data "^2.5.0" + read-config-file "6.0.0" + sanitize-filename "^1.6.3" + semver "^7.3.2" + temp-file "^3.3.7" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atomically@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.3.2.tgz#721156e5c4f03e768ab54f3e6c9dc550d4690761" + integrity sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +bindings@^1.2.1, bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + +boolean@^3.0.0, boolean@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" + integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.2.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bufferutil@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== + dependencies: + node-gyp-build "~3.7.0" + +builder-util-runtime@8.7.2: + version "8.7.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" + integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== + dependencies: + debug "^4.1.1" + sax "^1.2.4" + +builder-util@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" + integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== dependencies: + "7zip-bin" "~5.0.3" "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.1" - "7zip-bin" "~5.0.3" - "app-builder-bin" "3.5.10" - "bluebird-lst" "^1.0.9" - "builder-util-runtime" "8.7.2" - "chalk" "^4.1.0" - "debug" "^4.3.0" - "fs-extra" "^9.0.1" - "is-ci" "^2.0.0" - "js-yaml" "^3.14.0" - "source-map-support" "^0.5.19" - "stat-mode" "^1.0.0" - "temp-file" "^3.3.7" - -"cacheable-lookup@^5.0.3": - "integrity" "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" - "resolved" "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" - "version" "5.0.4" - -"cacheable-request@^6.0.0": - "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" - "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" - "version" "6.1.0" - dependencies: - "clone-response" "^1.0.2" - "get-stream" "^5.1.0" - "http-cache-semantics" "^4.0.0" - "keyv" "^3.0.0" - "lowercase-keys" "^2.0.0" - "normalize-url" "^4.1.0" - "responselike" "^1.0.2" - -"cacheable-request@^7.0.1": - "integrity" "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==" - "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "clone-response" "^1.0.2" - "get-stream" "^5.1.0" - "http-cache-semantics" "^4.0.0" - "keyv" "^4.0.0" - "lowercase-keys" "^2.0.0" - "normalize-url" "^4.1.0" - "responselike" "^2.0.0" - -"callsite@1.0.0": - "integrity" "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - "resolved" "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" - "version" "1.0.0" - -"callsites@^3.0.0": - "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - "version" "3.1.0" - -"camelcase@^5.3.1": - "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - "version" "5.3.1" - -"caseless@~0.12.0": - "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - "version" "0.12.0" - -"chalk@^2.0.0": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^3.0.0": - "integrity" "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chalk@^4.0.0", "chalk@^4.1.0": - "integrity" "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chownr@^1.1.1": - "integrity" "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" - "version" "1.1.4" - -"chownr@^2.0.0": - "integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - "resolved" "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - "version" "2.0.0" - -"chromium-pickle-js@^0.2.0": - "integrity" "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=" - "resolved" "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" - "version" "0.2.0" - -"ci-info@^2.0.0": - "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - "version" "2.0.0" - -"cli-boxes@^2.2.0": - "integrity" "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - "version" "2.2.1" - -"cli-cursor@^3.1.0": - "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==" - "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "restore-cursor" "^3.1.0" - -"cli-spinners@^2.4.0": - "integrity" "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" - "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz" - "version" "2.5.0" - -"cliui@^7.0.2": - "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - "version" "7.0.4" - dependencies: - "string-width" "^4.2.0" - "strip-ansi" "^6.0.0" - "wrap-ansi" "^7.0.0" - -"clone-response@^1.0.2": - "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" - "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "mimic-response" "^1.0.0" - -"clone@^1.0.2": - "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" - "version" "1.0.4" - -"code-point-at@^1.0.0": - "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - "version" "1.1.0" - -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"colors@^1.3.3": - "integrity" "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - "resolved" "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" - "version" "1.4.0" - -"combined-stream@^1.0.6", "combined-stream@~1.0.6": - "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" - "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - "version" "1.0.8" - dependencies: - "delayed-stream" "~1.0.0" - -"compare-versions@^3.6.0": - "integrity" "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" - "resolved" "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" - "version" "3.6.0" - -"component-bind@1.0.0": - "integrity" "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - "resolved" "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" - "version" "1.0.0" - -"component-emitter@~1.3.0": - "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - "version" "1.3.0" - -"component-emitter@1.2.1": - "integrity" "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" - "version" "1.2.1" - -"component-inherit@0.0.3": - "integrity" "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - "resolved" "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" - "version" "0.0.3" - -"concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"concat-stream@^1.6.2": - "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" - "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - "version" "1.6.2" - dependencies: - "buffer-from" "^1.0.0" - "inherits" "^2.0.3" - "readable-stream" "^2.2.2" - "typedarray" "^0.0.6" - -"conf@^7.1.2": - "integrity" "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==" - "resolved" "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz" - "version" "7.1.2" - dependencies: - "ajv" "^6.12.2" - "atomically" "^1.3.1" - "debounce-fn" "^4.0.0" - "dot-prop" "^5.2.0" - "env-paths" "^2.2.0" - "json-schema-typed" "^7.0.3" - "make-dir" "^3.1.0" - "onetime" "^5.1.0" - "pkg-up" "^3.1.0" - "semver" "^7.3.2" - -"config-chain@^1.1.11": - "integrity" "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==" - "resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" - "version" "1.1.12" - dependencies: - "ini" "^1.3.4" - "proto-list" "~1.2.1" - -"configstore@^5.0.1": - "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" - "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "dot-prop" "^5.2.0" - "graceful-fs" "^4.1.2" - "make-dir" "^3.0.0" - "unique-string" "^2.0.0" - "write-file-atomic" "^3.0.0" - "xdg-basedir" "^4.0.0" - -"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": - "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - "version" "1.1.0" - -"cookie@0.3.1": - "integrity" "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" - "version" "0.3.1" - -"core-js@^3.4.1", "core-js@^3.6.5": - "integrity" "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" - "version" "3.6.5" - -"core-util-is@~1.0.0", "core-util-is@1.0.2": - "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - "version" "1.0.2" - -"cosmiconfig@^7.0.0": - "integrity" "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==" - "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" - "version" "7.0.0" + app-builder-bin "3.5.10" + bluebird-lst "^1.0.9" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + debug "^4.3.0" + fs-extra "^9.0.1" + is-ci "^2.0.0" + js-yaml "^3.14.0" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.3.7" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +conf@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" + integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== + dependencies: + ajv "^6.12.2" + atomically "^1.3.1" + debounce-fn "^4.0.0" + dot-prop "^5.2.0" + env-paths "^2.2.0" + json-schema-typed "^7.0.3" + make-dir "^3.1.0" + onetime "^5.1.0" + pkg-up "^3.1.0" + semver "^7.3.2" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +core-js@^3.4.1, core-js@^3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" - "import-fresh" "^3.2.1" - "parse-json" "^5.0.0" - "path-type" "^4.0.0" - "yaml" "^1.10.0" - -"cross-spawn@^7.0.0", "cross-spawn@^7.0.1": - "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" - "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - "version" "7.0.3" - dependencies: - "path-key" "^3.1.0" - "shebang-command" "^2.0.0" - "which" "^2.0.1" - -"crypto-random-string@^2.0.0": - "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - "version" "2.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dbus-next@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.5.1.tgz#94bb1a30d744bc75045be40e40b59e7a195fd882" + integrity sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA== + dependencies: + event-stream "3.3.4" + hexy "^0.2.10" + jsbi "^2.0.5" + long "^4.0.0" + put "0.0.6" + safe-buffer "^5.1.1" + xml2js "^0.4.17" + optionalDependencies: + abstract-socket "^2.0.0" -"dashdash@^1.12.0": - "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" - "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - "version" "1.14.1" +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== dependencies: - "assert-plus" "^1.0.0" + mimic-fn "^3.0.0" -"debounce-fn@^4.0.0": - "integrity" "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==" - "resolved" "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz" - "version" "4.0.0" +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - "mimic-fn" "^3.0.0" + ms "2.0.0" -"debug@^2.6.9": - "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - "version" "2.6.9" +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - "ms" "2.0.0" + ms "^2.1.1" -"debug@^3.2.6": - "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" - "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - "version" "3.2.7" +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: - "ms" "^2.1.1" + ms "^2.1.1" -"debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@~4.1.0": - "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" - "version" "4.1.1" - dependencies: - "ms" "^2.1.1" - -"debug@^4.3.0": - "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - "version" "4.3.1" - dependencies: - "ms" "2.1.2" - -"debug@~3.1.0": - "integrity" "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==" - "resolved" "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "ms" "2.0.0" - -"decompress-response@^3.3.0": - "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" - "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "mimic-response" "^1.0.0" - -"decompress-response@^6.0.0": - "integrity" "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==" - "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "mimic-response" "^3.1.0" - -"deep-extend@^0.6.0": - "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" - "version" "0.6.0" - -"defaults@^1.0.3": - "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" - "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "clone" "^1.0.2" - -"defer-to-connect@^1.0.1": - "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" - "version" "1.1.3" - -"defer-to-connect@^2.0.0": - "integrity" "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==" - "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz" - "version" "2.0.0" - -"define-properties@^1.1.3": - "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" - "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" - "version" "1.1.3" +debug@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - "object-keys" "^1.0.12" - -"delayed-stream@~1.0.0": - "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - "version" "1.0.0" - -"delegates@^1.0.0": - "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - "version" "1.0.0" - -"detect-libc@^1.0.2", "detect-libc@^1.0.3": - "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - "version" "1.0.3" - -"detect-node@^2.0.4": - "integrity" "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" - "version" "2.0.4" + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" -"discord-rpc@^3.1.4": - "integrity" "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==" - "resolved" "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz" - "version" "3.1.4" - dependencies: - "node-fetch" "^2.6.1" - "ws" "^7.3.1" - -"dmg-builder@22.9.1": - "integrity" "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==" - "resolved" "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz" - "version" "22.9.1" - dependencies: - "app-builder-lib" "22.9.1" - "builder-util" "22.9.1" - "fs-extra" "^9.0.1" - "iconv-lite" "^0.6.2" - "js-yaml" "^3.14.0" - "sanitize-filename" "^1.6.3" - -"dom-walk@^0.1.0": - "integrity" "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" - "version" "0.1.2" - -"dot-prop@^5.2.0": - "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" - "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - "version" "5.3.0" - dependencies: - "is-obj" "^2.0.0" - -"dotenv-expand@^5.1.0": - "integrity" "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - "resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" - "version" "5.1.0" - -"dotenv@^8.2.0": - "integrity" "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz" - "version" "8.2.0" - -"duplexer3@^0.1.4": - "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" - "version" "0.1.4" - -"ecc-jsbn@~0.1.1": - "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" - "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - "version" "0.1.2" - dependencies: - "jsbn" "~0.1.0" - "safer-buffer" "^2.1.0" - -"ejs@^3.1.5": - "integrity" "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==" - "resolved" "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "jake" "^10.6.1" - -"electron-builder@^22.9.1": - "integrity" "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==" - "resolved" "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz" - "version" "22.9.1" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +detect-libc@^1.0.2, detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +discord-rpc@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" + integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== + dependencies: + node-fetch "^2.6.1" + ws "^7.3.1" + +dmg-builder@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" + integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== + dependencies: + app-builder-lib "22.9.1" + builder-util "22.9.1" + fs-extra "^9.0.1" + iconv-lite "^0.6.2" + js-yaml "^3.14.0" + sanitize-filename "^1.6.3" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ejs@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== + dependencies: + jake "^10.6.1" + +electron-builder@^22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" + integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== dependencies: "@types/yargs" "^15.0.5" - "app-builder-lib" "22.9.1" - "bluebird-lst" "^1.0.9" - "builder-util" "22.9.1" - "builder-util-runtime" "8.7.2" - "chalk" "^4.1.0" - "dmg-builder" "22.9.1" - "fs-extra" "^9.0.1" - "is-ci" "^2.0.0" - "lazy-val" "^1.0.4" - "read-config-file" "6.0.0" - "sanitize-filename" "^1.6.3" - "update-notifier" "^4.1.1" - "yargs" "^16.0.3" - -"electron-canvas-to-buffer@^2.0.0": - "integrity" "sha1-2pLNc0LkezsN3io655l45aB2FoE=" - "resolved" "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz" - "version" "2.0.0" - -"electron-clipboard-watcher@^1.0.1": - "integrity" "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" - "resolved" "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz" - "version" "1.0.1" - -"electron-fetch@^1.7.1": - "integrity" "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==" - "resolved" "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz" - "version" "1.7.2" - dependencies: - "encoding" "^0.1.13" - -"electron-google-analytics@^1.0.2": - "integrity" "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==" - "resolved" "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "electron-fetch" "^1.7.1" - "uuid" "^8.3.0" - -"electron-is-accelerator@^0.1.0": - "integrity" "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" - "resolved" "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz" - "version" "0.1.2" - -"electron-is-dev@^1.2.0": - "integrity" "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" - "resolved" "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz" - "version" "1.2.0" - -"electron-localshortcut@^3.2.1": - "integrity" "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==" - "resolved" "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "debug" "^4.0.1" - "electron-is-accelerator" "^0.1.0" - "keyboardevent-from-electron-accelerator" "^2.0.0" - "keyboardevents-areequal" "^0.2.1" - -"electron-log@^4.3.1": - "integrity" "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" - "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz" - "version" "4.3.1" + app-builder-lib "22.9.1" + bluebird-lst "^1.0.9" + builder-util "22.9.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + dmg-builder "22.9.1" + fs-extra "^9.0.1" + is-ci "^2.0.0" + lazy-val "^1.0.4" + read-config-file "6.0.0" + sanitize-filename "^1.6.3" + update-notifier "^4.1.1" + yargs "^16.0.3" + +electron-canvas-to-buffer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz#da92cd7342e47b3b0dde2a3ae79978e5a0761681" + integrity sha1-2pLNc0LkezsN3io655l45aB2FoE= + +electron-clipboard-watcher@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" + integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= + +electron-fetch@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" + integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== + dependencies: + encoding "^0.1.13" + +electron-google-analytics@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" + integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== + dependencies: + electron-fetch "^1.7.1" + uuid "^8.3.0" + +electron-is-accelerator@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" + integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= + +electron-is-dev@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" + integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw== + +electron-localshortcut@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" + integrity sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q== + dependencies: + debug "^4.0.1" + electron-is-accelerator "^0.1.0" + keyboardevent-from-electron-accelerator "^2.0.0" + keyboardevents-areequal "^0.2.1" + +electron-log@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" + integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== "electron-media-service@github:tidal-engineering/electron-media-service": - "resolved" "git+ssh://git@github.com/tidal-engineering/electron-media-service.git#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f" - "version" "0.2.6" + version "0.2.6" + resolved "https://codeload.github.com/tidal-engineering/electron-media-service/tar.gz/4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f" dependencies: - "bindings" "^1.5.0" - "node-addon-api" "^3.0.2" - "semver" "^7.3.2" + bindings "^1.5.0" + node-addon-api "^3.0.2" + semver "^7.3.2" -"electron-publish@22.9.1": - "integrity" "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==" - "resolved" "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz" - "version" "22.9.1" +electron-publish@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" + integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== dependencies: "@types/fs-extra" "^9.0.1" - "bluebird-lst" "^1.0.9" - "builder-util" "22.9.1" - "builder-util-runtime" "8.7.2" - "chalk" "^4.1.0" - "fs-extra" "^9.0.1" - "lazy-val" "^1.0.4" - "mime" "^2.4.6" - -"electron-rebuild@^2.3.4": - "integrity" "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==" - "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz" - "version" "2.3.4" + bluebird-lst "^1.0.9" + builder-util "22.9.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + fs-extra "^9.0.1" + lazy-val "^1.0.4" + mime "^2.4.6" + +electron-rebuild@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" + integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== dependencies: "@malept/cross-spawn-promise" "^1.1.0" - "colors" "^1.3.3" - "debug" "^4.1.1" - "detect-libc" "^1.0.3" - "fs-extra" "^9.0.1" - "got" "^11.7.0" - "lzma-native" "^6.0.1" - "node-abi" "^2.19.2" - "node-gyp" "^7.1.0" - "ora" "^5.1.0" - "tar" "^6.0.5" - "yargs" "^16.0.0" - -"electron-store@^6.0.1": - "integrity" "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==" - "resolved" "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "conf" "^7.1.2" - "type-fest" "^0.16.0" - -"electron-updater@^4.3.5": - "integrity" "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==" - "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz" - "version" "4.3.5" + colors "^1.3.3" + debug "^4.1.1" + detect-libc "^1.0.3" + fs-extra "^9.0.1" + got "^11.7.0" + lzma-native "^6.0.1" + node-abi "^2.19.2" + node-gyp "^7.1.0" + ora "^5.1.0" + tar "^6.0.5" + yargs "^16.0.0" + +electron-store@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" + integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== + dependencies: + conf "^7.1.2" + type-fest "^0.16.0" + +electron-updater@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" + integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== dependencies: "@types/semver" "^7.3.1" - "builder-util-runtime" "8.7.2" - "fs-extra" "^9.0.1" - "js-yaml" "^3.14.0" - "lazy-val" "^1.0.4" - "lodash.isequal" "^4.5.0" - "semver" "^7.3.2" - -"electron@^11.1.1": - "integrity" "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==" - "resolved" "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz" - "version" "11.1.1" + builder-util-runtime "8.7.2" + fs-extra "^9.0.1" + js-yaml "^3.14.0" + lazy-val "^1.0.4" + lodash.isequal "^4.5.0" + semver "^7.3.2" + +electron@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa" + integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" - "extract-zip" "^1.0.3" - -"emoji-regex@^7.0.1": - "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - "version" "7.0.3" - -"emoji-regex@^8.0.0": - "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - "version" "8.0.0" - -"encodeurl@^1.0.2": - "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - "version" "1.0.2" - -"encoding@^0.1.13": - "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" - "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - "version" "0.1.13" - dependencies: - "iconv-lite" "^0.6.2" - -"end-of-stream@^1.1.0": - "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" - "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - "version" "1.4.4" - dependencies: - "once" "^1.4.0" - -"engine.io-client@~3.4.0": - "integrity" "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==" - "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz" - "version" "3.4.3" - dependencies: - "component-emitter" "~1.3.0" - "component-inherit" "0.0.3" - "debug" "~4.1.0" - "engine.io-parser" "~2.2.0" - "has-cors" "1.1.0" - "indexof" "0.0.1" - "parseqs" "0.0.5" - "parseuri" "0.0.5" - "ws" "~6.1.0" - "xmlhttprequest-ssl" "~1.5.4" - "yeast" "0.1.2" - -"engine.io-parser@~2.2.0": - "integrity" "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==" - "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "after" "0.8.2" - "arraybuffer.slice" "~0.0.7" - "base64-arraybuffer" "0.1.5" - "blob" "0.0.5" - "has-binary2" "~1.0.2" - -"engine.io@~3.4.0": - "integrity" "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==" - "resolved" "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz" - "version" "3.4.2" - dependencies: - "accepts" "~1.3.4" - "base64id" "2.0.0" - "cookie" "0.3.1" - "debug" "~4.1.0" - "engine.io-parser" "~2.2.0" - "ws" "^7.1.2" - -"env-paths@^2.2.0": - "integrity" "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" - "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" - "version" "2.2.0" - -"error-ex@^1.3.1": - "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" - "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - "version" "1.3.2" - dependencies: - "is-arrayish" "^0.2.1" - -"es6-error@^4.1.1": - "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" - "version" "4.1.1" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-goat@^2.0.0": - "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" - "version" "2.1.1" - -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"escape-string-regexp@^4.0.0": - "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - "version" "4.0.0" - -"esprima@^4.0.0": - "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - -"execa@^2.1.0": - "integrity" "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==" - "resolved" "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "cross-spawn" "^7.0.0" - "get-stream" "^5.0.0" - "is-stream" "^2.0.0" - "merge-stream" "^2.0.0" - "npm-run-path" "^3.0.0" - "onetime" "^5.1.0" - "p-finally" "^2.0.0" - "signal-exit" "^3.0.2" - "strip-final-newline" "^2.0.0" - -"exif-parser@^0.1.12": - "integrity" "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" - "resolved" "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" - "version" "0.1.12" - -"extend@~3.0.2": - "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - "version" "3.0.2" - -"extract-zip@^1.0.3": - "integrity" "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==" - "resolved" "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" - "version" "1.7.0" - dependencies: - "concat-stream" "^1.6.2" - "debug" "^2.6.9" - "mkdirp" "^0.5.4" - "yauzl" "^2.10.0" - -"extsprintf@^1.2.0", "extsprintf@1.3.0": - "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - "version" "1.3.0" - -"fast-deep-equal@^3.1.1": - "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - "version" "3.1.3" - -"fast-json-stable-stringify@^2.0.0": - "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - "version" "2.1.0" - -"fd-slicer@~1.1.0": - "integrity" "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=" - "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - "version" "1.1.0" - dependencies: - "pend" "~1.2.0" - -"file-type@^9.0.0": - "integrity" "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" - "resolved" "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" - "version" "9.0.0" - -"file-uri-to-path@1.0.0": - "integrity" "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - "resolved" "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - "version" "1.0.0" - -"filelist@^1.0.1": - "integrity" "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==" - "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "minimatch" "^3.0.4" - -"find-up@^3.0.0": - "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "locate-path" "^3.0.0" - -"find-up@^4.1.0": - "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "locate-path" "^5.0.0" - "path-exists" "^4.0.0" - -"find-up@^5.0.0": - "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "locate-path" "^6.0.0" - "path-exists" "^4.0.0" - -"find-versions@^4.0.0": - "integrity" "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==" - "resolved" "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "semver-regex" "^3.1.2" - -"forever-agent@~0.6.1": - "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - "version" "0.6.1" - -"form-data@~2.3.2": - "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" - "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" - "version" "2.3.3" - dependencies: - "asynckit" "^0.4.0" - "combined-stream" "^1.0.6" - "mime-types" "^2.1.12" - -"fs-extra@^8.1.0": - "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" - "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - "version" "8.1.0" - dependencies: - "graceful-fs" "^4.2.0" - "jsonfile" "^4.0.0" - "universalify" "^0.1.0" - -"fs-extra@^9.0.1": - "integrity" "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==" - "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz" - "version" "9.0.1" - dependencies: - "at-least-node" "^1.0.0" - "graceful-fs" "^4.2.0" - "jsonfile" "^6.0.1" - "universalify" "^1.0.0" - -"fs-minipass@^1.2.5": - "integrity" "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==" - "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" - "version" "1.2.7" - dependencies: - "minipass" "^2.6.0" - -"fs-minipass@^2.0.0": - "integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==" - "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "minipass" "^3.0.0" - -"fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"gauge@~2.7.3": - "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" - "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" - "version" "2.7.4" - dependencies: - "aproba" "^1.0.3" - "console-control-strings" "^1.0.0" - "has-unicode" "^2.0.0" - "object-assign" "^4.1.0" - "signal-exit" "^3.0.0" - "string-width" "^1.0.1" - "strip-ansi" "^3.0.1" - "wide-align" "^1.1.0" - -"get-caller-file@^2.0.5": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - -"get-stream@^4.1.0": - "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "pump" "^3.0.0" - -"get-stream@^5.0.0": - "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "pump" "^3.0.0" - -"get-stream@^5.1.0": - "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" - "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "pump" "^3.0.0" - -"getpass@^0.1.1": - "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" - "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - "version" "0.1.7" - dependencies: - "assert-plus" "^1.0.0" - -"glob@^7.1.3", "glob@^7.1.4": - "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - "version" "7.1.6" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"global-agent@^2.0.2": - "integrity" "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==" - "resolved" "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz" - "version" "2.1.12" - dependencies: - "boolean" "^3.0.1" - "core-js" "^3.6.5" - "es6-error" "^4.1.1" - "matcher" "^3.0.0" - "roarr" "^2.15.3" - "semver" "^7.3.2" - "serialize-error" "^7.0.1" - -"global-dirs@^2.0.1": - "integrity" "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==" - "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "ini" "^1.3.5" - -"global-tunnel-ng@^2.7.1": - "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" - "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" - "version" "2.7.1" - dependencies: - "encodeurl" "^1.0.2" - "lodash" "^4.17.10" - "npm-conf" "^1.1.3" - "tunnel" "^0.0.6" - -"global@~4.3.0": - "integrity" "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" - "resolved" "https://registry.npmjs.org/global/-/global-4.3.2.tgz" - "version" "4.3.2" - dependencies: - "min-document" "^2.19.0" - "process" "~0.5.1" - -"globalthis@^1.0.1": - "integrity" "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==" - "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "define-properties" "^1.1.3" - -"got@^11.7.0": - "integrity" "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==" - "resolved" "https://registry.npmjs.org/got/-/got-11.8.1.tgz" - "version" "11.8.1" + extract-zip "^1.0.3" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" + integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~4.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.4.0: + version "3.4.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" + integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "0.3.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "^7.1.2" + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +event-stream@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +execa@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exif-parser@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filelist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" + integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== + dependencies: + minimatch "^3.0.4" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== + dependencies: + semver-regex "^3.1.2" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.1.12" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" + integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + dependencies: + ini "^1.3.5" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globalthis@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== + dependencies: + define-properties "^1.1.3" + +got@^11.7.0: + version "11.8.1" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" + integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" "@types/cacheable-request" "^6.0.1" "@types/responselike" "^1.0.0" - "cacheable-lookup" "^5.0.3" - "cacheable-request" "^7.0.1" - "decompress-response" "^6.0.0" - "http2-wrapper" "^1.0.0-beta.5.2" - "lowercase-keys" "^2.0.0" - "p-cancelable" "^2.0.0" - "responselike" "^2.0.0" - -"got@^9.6.0": - "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" - "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" - "version" "9.6.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" "@szmarczak/http-timer" "^1.1.2" - "cacheable-request" "^6.0.0" - "decompress-response" "^3.3.0" - "duplexer3" "^0.1.4" - "get-stream" "^4.1.0" - "lowercase-keys" "^1.0.1" - "mimic-response" "^1.0.1" - "p-cancelable" "^1.0.0" - "to-readable-stream" "^1.0.0" - "url-parse-lax" "^3.0.0" - -"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.3": - "integrity" "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" - "version" "4.2.4" - -"har-schema@^2.0.0": - "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - "version" "2.0.0" - -"har-validator@~5.1.3": - "integrity" "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==" - "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" - "version" "5.1.5" - dependencies: - "ajv" "^6.12.3" - "har-schema" "^2.0.0" - -"has-binary2@~1.0.2": - "integrity" "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==" - "resolved" "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "isarray" "2.0.1" - -"has-cors@1.1.0": - "integrity" "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - "resolved" "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" - "version" "1.1.0" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has-unicode@^2.0.0": - "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - "version" "2.0.1" - -"has-yarn@^2.1.0": - "integrity" "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - "resolved" "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" - "version" "2.1.0" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"hosted-git-info@^2.1.4": - "integrity" "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz" - "version" "2.8.8" - -"hosted-git-info@^3.0.5": - "integrity" "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==" - "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz" - "version" "3.0.7" - dependencies: - "lru-cache" "^6.0.0" - -"http-cache-semantics@^4.0.0": - "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" - "version" "4.1.0" - -"http-signature@~1.2.0": - "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" - "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "assert-plus" "^1.0.0" - "jsprim" "^1.2.2" - "sshpk" "^1.7.0" - -"http2-wrapper@^1.0.0-beta.5.2": - "integrity" "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==" - "resolved" "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz" - "version" "1.0.0-beta.5.2" - dependencies: - "quick-lru" "^5.1.1" - "resolve-alpn" "^1.0.0" - -"husky@^4.3.7": - "integrity" "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==" - "resolved" "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz" - "version" "4.3.7" - dependencies: - "chalk" "^4.0.0" - "ci-info" "^2.0.0" - "compare-versions" "^3.6.0" - "cosmiconfig" "^7.0.0" - "find-versions" "^4.0.0" - "opencollective-postinstall" "^2.0.2" - "pkg-dir" "^5.0.0" - "please-upgrade-node" "^3.2.0" - "slash" "^3.0.0" - "which-pm-runs" "^1.0.0" - -"i18n@^0.13.2": - "integrity" "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==" - "resolved" "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz" - "version" "0.13.2" - dependencies: - "debug" "^4.1.1" - "make-plural" "^6.2.2" - "math-interval-parser" "^2.0.1" - "messageformat" "^2.3.0" - "mustache" "^4.0.1" - "sprintf-js" "^1.1.2" - -"iconv-lite@^0.4.4": - "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - "version" "0.4.24" - dependencies: - "safer-buffer" ">= 2.1.2 < 3" - -"iconv-lite@^0.6.2": - "integrity" "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==" - "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" - "version" "0.6.2" - dependencies: - "safer-buffer" ">= 2.1.2 < 3.0.0" - -"ieee754@^1.1.4": - "integrity" "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" - "version" "1.1.13" - -"ignore-walk@^3.0.1": - "integrity" "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==" - "resolved" "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "minimatch" "^3.0.4" - -"ignore@^5.1.4": - "integrity" "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" - "version" "5.1.8" - -"image-to-base64@^2.1.1": - "integrity" "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==" - "resolved" "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "node-fetch" "^2.6.0" - -"import-fresh@^3.2.1": - "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" - "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "parent-module" "^1.0.0" - "resolve-from" "^4.0.0" - -"import-lazy@^2.1.0": - "integrity" "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" - "version" "2.1.0" - -"imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - "version" "0.1.4" - -"indexof@0.0.1": - "integrity" "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - "resolved" "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - "version" "0.0.1" - -"inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@~2.0.3", "inherits@2": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"ini@^1.3.4", "ini@^1.3.5", "ini@~1.3.0": - "integrity" "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" - "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" - "version" "1.3.7" - -"is-arrayish@^0.2.1": - "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - "version" "0.2.1" - -"is-ci@^2.0.0": - "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" - "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "ci-info" "^2.0.0" - -"is-core-module@^2.1.0": - "integrity" "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "has" "^1.0.3" - -"is-fullwidth-code-point@^1.0.0": - "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - "version" "1.0.0" - dependencies: - "number-is-nan" "^1.0.0" - -"is-fullwidth-code-point@^2.0.0": - "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - "version" "2.0.0" - -"is-fullwidth-code-point@^3.0.0": - "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - "version" "3.0.0" - -"is-function@^1.0.1": - "integrity" "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" - "version" "1.0.2" - -"is-installed-globally@^0.3.1": - "integrity" "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==" - "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" - "version" "0.3.2" - dependencies: - "global-dirs" "^2.0.1" - "is-path-inside" "^3.0.1" - -"is-interactive@^1.0.0": - "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" - "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" - "version" "1.0.0" - -"is-npm@^4.0.0": - "integrity" "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" - "version" "4.0.0" - -"is-obj@^2.0.0": - "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - "version" "2.0.0" - -"is-path-inside@^3.0.1": - "integrity" "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" - "version" "3.0.2" - -"is-stream@^2.0.0": - "integrity" "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" - "version" "2.0.0" - -"is-typedarray@^1.0.0", "is-typedarray@~1.0.0": - "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - "version" "1.0.0" - -"is-yarn-global@^0.3.0": - "integrity" "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - "resolved" "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" - "version" "0.3.0" - -"isarray@~1.0.0": - "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - "version" "1.0.0" - -"isarray@2.0.1": - "integrity" "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" - "version" "2.0.1" - -"isbinaryfile@^4.0.6": - "integrity" "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" - "resolved" "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz" - "version" "4.0.6" - -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - -"isstream@~0.1.2": - "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - "version" "0.1.2" - -"jake@^10.6.1": - "integrity" "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==" - "resolved" "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz" - "version" "10.8.2" - dependencies: - "async" "0.9.x" - "chalk" "^2.4.2" - "filelist" "^1.0.1" - "minimatch" "^3.0.4" - -"jpeg-js@^0.3.4": - "integrity" "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - "resolved" "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz" - "version" "0.3.7" - -"js-base64@^3.6.0": - "integrity" "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" - "resolved" "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz" - "version" "3.6.0" - -"js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"js-yaml@^3.13.1", "js-yaml@^3.14.0": - "integrity" "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz" - "version" "3.14.0" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"jsbn@~0.1.0": - "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - "version" "0.1.1" - -"json-buffer@3.0.0": - "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" - "version" "3.0.0" - -"json-buffer@3.0.1": - "integrity" "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - "version" "3.0.1" - -"json-parse-even-better-errors@^2.3.0": - "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - "version" "2.3.1" - -"json-schema-traverse@^0.4.1": - "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - "version" "0.4.1" - -"json-schema-typed@^7.0.3": - "integrity" "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" - "resolved" "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" - "version" "7.0.3" - -"json-schema@0.2.3": - "integrity" "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - "version" "0.2.3" - -"json-stringify-safe@^5.0.1", "json-stringify-safe@~5.0.1": - "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - "version" "5.0.1" - -"json5@^2.1.2": - "integrity" "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz" - "version" "2.1.3" - dependencies: - "minimist" "^1.2.5" - -"jsonfile@^4.0.0": - "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" - "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "graceful-fs" "^4.1.6" - -"jsonfile@^6.0.1": - "integrity" "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==" - "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "graceful-fs" "^4.1.6" - "universalify" "^1.0.0" - -"jsprim@^1.2.2": - "integrity" "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" - "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" - "version" "1.4.1" - dependencies: - "assert-plus" "1.0.0" - "extsprintf" "1.3.0" - "json-schema" "0.2.3" - "verror" "1.10.0" - -"keyboardevent-from-electron-accelerator@^2.0.0": - "integrity" "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" - "resolved" "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz" - "version" "2.0.0" - -"keyboardevents-areequal@^0.2.1": - "integrity" "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" - "resolved" "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz" - "version" "0.2.2" - -"keyv@^3.0.0": - "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" - "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "json-buffer" "3.0.0" - -"keyv@^4.0.0": - "integrity" "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==" - "resolved" "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "json-buffer" "3.0.1" - -"latest-version@^5.0.0": - "integrity" "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==" - "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "package-json" "^6.3.0" - -"lazy-val@^1.0.4": - "integrity" "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" - "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" - "version" "1.0.4" - -"lines-and-columns@^1.1.6": - "integrity" "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - "version" "1.1.6" - -"load-bmfont@^1.3.1": - "integrity" "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==" - "resolved" "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz" - "version" "1.4.1" - dependencies: - "buffer-equal" "0.0.1" - "mime" "^1.3.4" - "parse-bmfont-ascii" "^1.0.3" - "parse-bmfont-binary" "^1.0.5" - "parse-bmfont-xml" "^1.1.4" - "phin" "^2.9.1" - "xhr" "^2.0.1" - "xtend" "^4.0.0" - -"locate-path@^3.0.0": - "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-locate" "^3.0.0" - "path-exists" "^3.0.0" - -"locate-path@^5.0.0": - "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-locate" "^4.1.0" - -"locate-path@^6.0.0": - "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "p-locate" "^5.0.0" - -"lodash.isequal@^4.5.0": - "integrity" "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - "resolved" "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" - "version" "4.5.0" - -"lodash@^4.17.10", "lodash@^4.17.4": - "integrity" "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz" - "version" "4.17.19" - -"log-symbols@^4.0.0": - "integrity" "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==" - "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "chalk" "^4.0.0" - -"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": - "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" - "version" "1.0.1" - -"lowercase-keys@^2.0.0": - "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" - "version" "2.0.0" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"lzma-native@^6.0.1": - "integrity" "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==" - "resolved" "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "node-addon-api" "^1.6.0" - "node-pre-gyp" "^0.11.0" - "readable-stream" "^2.3.5" - "rimraf" "^2.7.1" - -"make-dir@^3.0.0", "make-dir@^3.1.0": - "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" - "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "semver" "^6.0.0" - -"make-plural@^4.3.0": - "integrity" "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==" - "resolved" "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "minimist" "^1.2.0" - -"make-plural@^6.2.2": - "integrity" "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - "resolved" "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz" - "version" "6.2.2" - -"markdown@^0.5.0": - "integrity" "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=" - "resolved" "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz" - "version" "0.5.0" - dependencies: - "nopt" "~2.1.1" - -"matcher@^3.0.0": - "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==" - "resolved" "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "escape-string-regexp" "^4.0.0" - -"math-interval-parser@^2.0.1": - "integrity" "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" - "resolved" "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz" - "version" "2.0.1" - -"merge-stream@^2.0.0": - "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - "version" "2.0.0" - -"messageformat-formatters@^2.0.1": - "integrity" "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - "resolved" "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz" - "version" "2.0.1" - -"messageformat-parser@^4.1.2": - "integrity" "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" - "resolved" "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz" - "version" "4.1.3" - -"messageformat@^2.3.0": - "integrity" "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==" - "resolved" "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "make-plural" "^4.3.0" - "messageformat-formatters" "^2.0.1" - "messageformat-parser" "^4.1.2" - -"mime-db@1.44.0": - "integrity" "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz" - "version" "1.44.0" - -"mime-types@^2.1.12", "mime-types@~2.1.19", "mime-types@~2.1.24": - "integrity" "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==" - "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz" - "version" "2.1.27" - dependencies: - "mime-db" "1.44.0" - -"mime@^1.3.4": - "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - "version" "1.6.0" - -"mime@^2.4.6": - "integrity" "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" - "resolved" "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz" - "version" "2.4.6" - -"mimic-fn@^2.1.0": - "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - "version" "2.1.0" - -"mimic-fn@^3.0.0": - "integrity" "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" - "version" "3.1.0" - -"mimic-response@^1.0.0", "mimic-response@^1.0.1": - "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" - "version" "1.0.1" - -"mimic-response@^3.1.0": - "integrity" "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" - "version" "3.1.0" - -"min-document@^2.19.0": - "integrity" "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" - "resolved" "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" - "version" "2.19.0" - dependencies: - "dom-walk" "^0.1.0" - -"minimatch@^3.0.4": - "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "brace-expansion" "^1.1.7" - -"minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"minipass@^2.6.0", "minipass@^2.8.6", "minipass@^2.9.0": - "integrity" "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" - "version" "2.9.0" - dependencies: - "safe-buffer" "^5.1.2" - "yallist" "^3.0.0" - -"minipass@^3.0.0": - "integrity" "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" - "version" "3.1.3" - dependencies: - "yallist" "^4.0.0" - -"minizlib@^1.2.1": - "integrity" "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==" - "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" - "version" "1.3.3" - dependencies: - "minipass" "^2.9.0" - -"minizlib@^2.1.1": - "integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==" - "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "minipass" "^3.0.0" - "yallist" "^4.0.0" - -"mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@^0.5.4": - "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - "version" "0.5.5" - dependencies: - "minimist" "^1.2.5" - -"mkdirp@^1.0.3": - "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - "version" "1.0.4" - -"mri@^1.1.4": - "integrity" "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==" - "resolved" "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz" - "version" "1.1.6" - -"ms@^2.1.1", "ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"ms@2.0.0": - "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - "version" "2.0.0" - -"multimatch@^4.0.0": - "integrity" "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==" - "resolved" "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz" - "version" "4.0.0" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hexy@^0.2.10: + version "0.2.11" + resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" + integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== + dependencies: + lru-cache "^6.0.0" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.0-beta.5.2" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +husky@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" + integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^7.0.0" + find-versions "^4.0.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^5.0.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +i18n@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" + integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== + dependencies: + debug "^4.1.1" + make-plural "^6.2.2" + math-interval-parser "^2.0.1" + messageformat "^2.3.0" + mustache "^4.0.1" + sprintf-js "^1.1.2" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +image-to-base64@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/image-to-base64/-/image-to-base64-2.1.1.tgz#58c16f88494dfd3e84953cf845a5929be04fbdb5" + integrity sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ== + dependencies: + node-fetch "^2.6.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + +is-regex@^1.0.4, is-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jpeg-js@^0.3.4: + version "0.3.7" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" + integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== + +js-base64@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" + integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1, js-yaml@^3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbi@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" + integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" + integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keyboardevent-from-electron-accelerator@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" + integrity sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA== + +keyboardevents-areequal@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" + integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-val@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" + integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-bmfont@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" + integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash@^4.17.10, lodash@^4.17.4: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lzma-native@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" + integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== + dependencies: + node-addon-api "^1.6.0" + node-pre-gyp "^0.11.0" + readable-stream "^2.3.5" + rimraf "^2.7.1" + +make-dir@^3.0.0, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-plural@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" + integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== + optionalDependencies: + minimist "^1.2.0" + +make-plural@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" + integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + +markdown@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" + integrity sha1-KCBbVlqK51kt4gdGPWY33BgnIrI= + dependencies: + nopt "~2.1.1" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +math-interval-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" + integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +messageformat-formatters@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" + integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== + +messageformat-parser@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" + integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== + +messageformat@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" + integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== + dependencies: + make-plural "^4.3.0" + messageformat-formatters "^2.0.1" + messageformat-parser "^4.1.2" + +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mpris-service@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.0.tgz#0bbfb5b47a9b3e01ce8b9a41a8aef0ad3210c909" + integrity sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg== + dependencies: + dbus-next "^0.5.1" + deep-equal "^1.0.1" + source-map-support "^0.5.11" + +mri@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" + integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: "@types/minimatch" "^3.0.3" - "array-differ" "^3.0.0" - "array-union" "^2.1.0" - "arrify" "^2.0.1" - "minimatch" "^3.0.4" - -"mustache@^4.0.1": - "integrity" "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==" - "resolved" "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz" - "version" "4.0.1" - -"mute-stream@0.0.8": - "integrity" "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" - "version" "0.0.8" - -"nan@^2.14.2": - "integrity" "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - "resolved" "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz" - "version" "2.14.2" - -"needle@^2.2.1": - "integrity" "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==" - "resolved" "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz" - "version" "2.5.2" - dependencies: - "debug" "^3.2.6" - "iconv-lite" "^0.4.4" - "sax" "^1.2.4" - -"negotiator@0.6.2": - "integrity" "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" - "version" "0.6.2" - -"node-abi@^2.19.2": - "integrity" "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==" - "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz" - "version" "2.19.3" - dependencies: - "semver" "^5.4.1" - -"node-addon-api@^1.3.0", "node-addon-api@^1.6.0": - "integrity" "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" - "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" - "version" "1.7.2" - -"node-addon-api@^3.0.2": - "integrity" "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz" - "version" "3.1.0" - -"node-fetch@^2.6.0", "node-fetch@^2.6.1": - "integrity" "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - "version" "2.6.1" - -"node-gyp-build@~3.7.0": - "integrity" "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==" - "resolved" "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz" - "version" "3.7.0" - -"node-gyp@^7.1.0": - "integrity" "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==" - "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz" - "version" "7.1.2" - dependencies: - "env-paths" "^2.2.0" - "glob" "^7.1.4" - "graceful-fs" "^4.2.3" - "nopt" "^5.0.0" - "npmlog" "^4.1.2" - "request" "^2.88.2" - "rimraf" "^3.0.2" - "semver" "^7.3.2" - "tar" "^6.0.2" - "which" "^2.0.2" - -"node-pre-gyp@^0.11.0": - "integrity" "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==" - "resolved" "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz" - "version" "0.11.0" - dependencies: - "detect-libc" "^1.0.2" - "mkdirp" "^0.5.1" - "needle" "^2.2.1" - "nopt" "^4.0.1" - "npm-packlist" "^1.1.6" - "npmlog" "^4.0.2" - "rc" "^1.2.7" - "rimraf" "^2.6.1" - "semver" "^5.3.0" - "tar" "^4" - -"node-vibrant@^3.1.5": - "integrity" "sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg==" - "resolved" "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz" - "version" "3.1.5" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mustache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" + integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== + +nan@^2.12.1, nan@latest: + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + +needle@^2.2.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +node-abi@^2.19.2: + version "2.19.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== + dependencies: + semver "^5.4.1" + +node-addon-api@^1.3.0, node-addon-api@^1.6.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-addon-api@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" + integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== + +node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-gyp-build@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== + +node-gyp@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.0.tgz#cb8aed7ab772e73ad592ae0c71b0e3741099fe39" + integrity sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^4.0.3" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^2.6.3" + semver "^7.3.2" + tar "^6.0.1" + which "^2.0.2" + +node-pre-gyp@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-vibrant@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" + integrity sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg== dependencies: "@jimp/custom" "^0.9.3" "@jimp/plugin-resize" "^0.9.3" "@jimp/types" "^0.9.3" "@types/lodash" "^4.14.53" "@types/node" "^10.11.7" - "lodash" "^4.17.4" - "url" "^0.11.0" - -"nopt@^4.0.1": - "integrity" "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "abbrev" "1" - "osenv" "^0.1.4" - -"nopt@^5.0.0": - "integrity" "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "abbrev" "1" - -"nopt@~2.1.1": - "integrity" "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz" - "version" "2.1.2" - dependencies: - "abbrev" "1" - -"normalize-package-data@^2.5.0": - "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" - "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - "version" "2.5.0" - dependencies: - "hosted-git-info" "^2.1.4" - "resolve" "^1.10.0" - "semver" "2 || 3 || 4 || 5" - "validate-npm-package-license" "^3.0.1" - -"normalize-url@^4.1.0": - "integrity" "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" - "version" "4.5.0" - -"npm-bundled@^1.0.1": - "integrity" "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==" - "resolved" "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "npm-normalize-package-bin" "^1.0.1" - -"npm-conf@^1.1.3": - "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==" - "resolved" "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "config-chain" "^1.1.11" - "pify" "^3.0.0" - -"npm-normalize-package-bin@^1.0.1": - "integrity" "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - "resolved" "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" - "version" "1.0.1" - -"npm-packlist@^1.1.6": - "integrity" "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==" - "resolved" "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" - "version" "1.4.8" - dependencies: - "ignore-walk" "^3.0.1" - "npm-bundled" "^1.0.1" - "npm-normalize-package-bin" "^1.0.1" - -"npm-run-path@^3.0.0": - "integrity" "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==" - "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "path-key" "^3.0.0" - -"npmlog@^4.0.2", "npmlog@^4.1.2": - "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" - "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "are-we-there-yet" "~1.1.2" - "console-control-strings" "~1.1.0" - "gauge" "~2.7.3" - "set-blocking" "~2.0.0" - -"number-is-nan@^1.0.0": - "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - "version" "1.0.1" - -"oauth-sign@~0.9.0": - "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" - "version" "0.9.0" - -"object-assign@^4.1.0": - "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - "version" "4.1.1" - -"object-component@0.0.3": - "integrity" "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - "resolved" "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" - "version" "0.0.3" - -"object-keys@^1.0.12": - "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - "version" "1.1.1" - -"omggif@^1.0.9": - "integrity" "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" - "resolved" "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" - "version" "1.0.10" - -"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"onetime@^5.1.0": - "integrity" "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "mimic-fn" "^2.1.0" - -"opencollective-postinstall@^2.0.2": - "integrity" "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - "resolved" "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" - "version" "2.0.3" - -"ora@^5.1.0": - "integrity" "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==" - "resolved" "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "chalk" "^4.1.0" - "cli-cursor" "^3.1.0" - "cli-spinners" "^2.4.0" - "is-interactive" "^1.0.0" - "log-symbols" "^4.0.0" - "mute-stream" "0.0.8" - "strip-ansi" "^6.0.0" - "wcwidth" "^1.0.1" - -"os-homedir@^1.0.0": - "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - "version" "1.0.2" - -"os-tmpdir@^1.0.0": - "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - "version" "1.0.2" - -"osenv@^0.1.4": - "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" - "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" - "version" "0.1.5" - dependencies: - "os-homedir" "^1.0.0" - "os-tmpdir" "^1.0.0" - -"p-cancelable@^1.0.0": - "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" - "version" "1.1.0" - -"p-cancelable@^2.0.0": - "integrity" "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" - "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz" - "version" "2.0.0" - -"p-finally@^2.0.0": - "integrity" "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz" - "version" "2.0.1" - -"p-limit@^2.0.0", "p-limit@^2.2.0": - "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "p-try" "^2.0.0" - -"p-limit@^3.0.2": - "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "yocto-queue" "^0.1.0" - -"p-locate@^3.0.0": - "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-limit" "^2.0.0" - -"p-locate@^4.1.0": - "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "p-limit" "^2.2.0" - -"p-locate@^5.0.0": - "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-limit" "^3.0.2" - -"p-try@^2.0.0": - "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - "version" "2.2.0" - -"package-json@^6.3.0": - "integrity" "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==" - "resolved" "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" - "version" "6.5.0" - dependencies: - "got" "^9.6.0" - "registry-auth-token" "^4.0.0" - "registry-url" "^5.0.0" - "semver" "^6.2.0" - -"pako@^1.0.5": - "integrity" "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" - "version" "1.0.11" - -"parent-module@^1.0.0": - "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" - "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "callsites" "^3.0.0" - -"parse-bmfont-ascii@^1.0.3": - "integrity" "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - "resolved" "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" - "version" "1.0.6" - -"parse-bmfont-binary@^1.0.5": - "integrity" "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" - "resolved" "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" - "version" "1.0.6" + lodash "^4.17.4" + url "^0.11.0" + +nopt@^4.0.1, nopt@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" + integrity sha1-bMzZd7gBMqB3MdbozljCyDA8+a8= + dependencies: + abbrev "1" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +ora@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" + integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== + dependencies: + bl "^4.0.3" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pako@^1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= -"parse-bmfont-xml@^1.1.4": - "integrity" "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==" - "resolved" "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" - "version" "1.1.4" +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== dependencies: - "xml-parse-from-string" "^1.0.0" - "xml2js" "^0.4.5" + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" -"parse-headers@^2.0.0": - "integrity" "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - "resolved" "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" - "version" "2.0.3" +parse-headers@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== -"parse-json@^5.0.0": - "integrity" "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==" - "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz" - "version" "5.1.0" +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== dependencies: "@babel/code-frame" "^7.0.0" - "error-ex" "^1.3.1" - "json-parse-even-better-errors" "^2.3.0" - "lines-and-columns" "^1.1.6" - -"parseqs@0.0.5": - "integrity" "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=" - "resolved" "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" - "version" "0.0.5" - dependencies: - "better-assert" "~1.0.0" - -"parseuri@0.0.5": - "integrity" "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=" - "resolved" "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" - "version" "0.0.5" - dependencies: - "better-assert" "~1.0.0" - -"path-exists@^3.0.0": - "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - "version" "3.0.0" - -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" - -"path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-key@^3.0.0", "path-key@^3.1.0": - "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - "version" "3.1.1" - -"path-parse@^1.0.6": - "integrity" "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" - "version" "1.0.6" - -"path-type@^4.0.0": - "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - "version" "4.0.0" - -"pend@~1.2.0": - "integrity" "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" - "version" "1.2.0" - -"performance-now@^2.1.0": - "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - "version" "2.1.0" - -"phin@^2.9.1": - "integrity" "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" - "resolved" "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" - "version" "2.9.3" - -"pify@^3.0.0": - "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - "version" "3.0.0" - -"pixelmatch@^4.0.2": - "integrity" "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=" - "resolved" "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" - "version" "4.0.2" - dependencies: - "pngjs" "^3.0.0" - -"pkg-dir@^5.0.0": - "integrity" "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==" - "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "find-up" "^5.0.0" - -"pkg-up@^3.1.0": - "integrity" "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==" - "resolved" "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "find-up" "^3.0.0" - -"please-upgrade-node@^3.2.0": - "integrity" "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==" - "resolved" "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" - "version" "3.2.0" - dependencies: - "semver-compare" "^1.0.0" - -"pngjs@^3.0.0", "pngjs@^3.3.3": - "integrity" "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" - "version" "3.4.0" - -"postscribe@^2.0.8": - "integrity" "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=" - "resolved" "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz" - "version" "2.0.8" - dependencies: - "prescribe" ">=1.1.2" - -"prepend-http@^2.0.0": - "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" - "version" "2.0.0" - -"prescribe@>=1.1.2": - "integrity" "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" - "resolved" "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz" - "version" "1.1.3" - -"prettier@^2.2.1": - "integrity" "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" - "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" - "version" "2.2.1" - -"pretty-quick@^2.0.2": - "integrity" "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==" - "resolved" "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "chalk" "^2.4.2" - "execa" "^2.1.0" - "find-up" "^4.1.0" - "ignore" "^5.1.4" - "mri" "^1.1.4" - "multimatch" "^4.0.0" - -"process-nextick-args@~2.0.0": - "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - "version" "2.0.1" - -"process@~0.5.1": - "integrity" "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - "resolved" "https://registry.npmjs.org/process/-/process-0.5.2.tgz" - "version" "0.5.2" - -"progress@^2.0.3": - "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - "version" "2.0.3" - -"proto-list@~1.2.1": - "integrity" "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" - "resolved" "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" - "version" "1.2.4" - -"psl@^1.1.28": - "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - "version" "1.8.0" - -"pump@^3.0.0": - "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" - "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "end-of-stream" "^1.1.0" - "once" "^1.3.1" - -"punycode@^2.1.0", "punycode@^2.1.1": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" - -"punycode@1.3.2": - "integrity" "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - "version" "1.3.2" - -"pupa@^2.0.1": - "integrity" "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==" - "resolved" "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "escape-goat" "^2.0.0" - -"qrcode-generator@^1.4.4": - "integrity" "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" - "resolved" "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" - "version" "1.4.4" - -"qs@~6.5.2": - "integrity" "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" - "version" "6.5.2" - -"querystring@0.2.0": - "integrity" "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - "resolved" "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - "version" "0.2.0" - -"quick-lru@^5.1.1": - "integrity" "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" - "version" "5.1.1" - -"rc@^1.2.7", "rc@^1.2.8": - "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" - "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" - "version" "1.2.8" - dependencies: - "deep-extend" "^0.6.0" - "ini" "~1.3.0" - "minimist" "^1.2.0" - "strip-json-comments" "~2.0.1" - -"read-config-file@6.0.0": - "integrity" "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==" - "resolved" "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "dotenv" "^8.2.0" - "dotenv-expand" "^5.1.0" - "js-yaml" "^3.13.1" - "json5" "^2.1.2" - "lazy-val" "^1.0.4" - -"readable-stream@^2.0.6", "readable-stream@^2.2.2", "readable-stream@^2.3.5": - "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" - "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - "version" "2.3.7" - dependencies: - "core-util-is" "~1.0.0" - "inherits" "~2.0.3" - "isarray" "~1.0.0" - "process-nextick-args" "~2.0.0" - "safe-buffer" "~5.1.1" - "string_decoder" "~1.1.1" - "util-deprecate" "~1.0.1" - -"regenerator-runtime@^0.13.4": - "integrity" "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" - "version" "0.13.7" - -"register-scheme@0.0.2": - "integrity" "sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw==" - "resolved" "https://registry.npmjs.org/register-scheme/-/register-scheme-0.0.2.tgz" - "version" "0.0.2" - dependencies: - "bindings" "^1.3.0" - "node-addon-api" "^1.3.0" - -"registry-auth-token@^4.0.0": - "integrity" "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==" - "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - "version" "4.2.1" - dependencies: - "rc" "^1.2.8" - -"registry-url@^5.0.0": - "integrity" "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==" - "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "rc" "^1.2.8" - -"request@^2.88.2": - "integrity" "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==" - "resolved" "https://registry.npmjs.org/request/-/request-2.88.2.tgz" - "version" "2.88.2" - dependencies: - "aws-sign2" "~0.7.0" - "aws4" "^1.8.0" - "caseless" "~0.12.0" - "combined-stream" "~1.0.6" - "extend" "~3.0.2" - "forever-agent" "~0.6.1" - "form-data" "~2.3.2" - "har-validator" "~5.1.3" - "http-signature" "~1.2.0" - "is-typedarray" "~1.0.0" - "isstream" "~0.1.2" - "json-stringify-safe" "~5.0.1" - "mime-types" "~2.1.19" - "oauth-sign" "~0.9.0" - "performance-now" "^2.1.0" - "qs" "~6.5.2" - "safe-buffer" "^5.1.2" - "tough-cookie" "~2.5.0" - "tunnel-agent" "^0.6.0" - "uuid" "^3.3.2" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"resolve-alpn@^1.0.0": - "integrity" "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" - "resolved" "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz" - "version" "1.0.0" - -"resolve-from@^4.0.0": - "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - "version" "4.0.0" - -"resolve@^1.10.0": - "integrity" "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz" - "version" "1.19.0" - dependencies: - "is-core-module" "^2.1.0" - "path-parse" "^1.0.6" - -"responselike@^1.0.2": - "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" - "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "lowercase-keys" "^1.0.0" - -"responselike@^2.0.0": - "integrity" "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==" - "resolved" "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "lowercase-keys" "^2.0.0" - -"restore-cursor@^3.1.0": - "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==" - "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "onetime" "^5.1.0" - "signal-exit" "^3.0.2" - -"rimraf@^2.6.1", "rimraf@^2.7.1": - "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - "version" "2.7.1" - dependencies: - "glob" "^7.1.3" - -"rimraf@^3.0.2": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" - -"roarr@^2.15.3": - "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" - "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" - "version" "2.15.4" - dependencies: - "boolean" "^3.0.1" - "detect-node" "^2.0.4" - "globalthis" "^1.0.1" - "json-stringify-safe" "^5.0.1" - "semver-compare" "^1.0.0" - "sprintf-js" "^1.1.2" - -"safe-buffer@^5.0.1", "safe-buffer@^5.1.2": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"safe-buffer@~5.1.0": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" - -"safe-buffer@~5.1.1": - "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - "version" "5.1.2" - -"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", "safer-buffer@~2.1.0": - "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - "version" "2.1.2" - -"sanitize-filename@^1.6.2", "sanitize-filename@^1.6.3": - "integrity" "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==" - "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" - "version" "1.6.3" - dependencies: - "truncate-utf8-bytes" "^1.0.0" - -"sax@^1.2.4", "sax@>=0.6.0": - "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - "version" "1.2.4" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pngjs@^3.0.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +postscribe@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" + integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= + dependencies: + prescribe ">=1.1.2" + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prescribe@>=1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" + integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= + +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pretty-quick@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" + integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== + dependencies: + chalk "^2.4.2" + execa "^2.1.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.4" + multimatch "^4.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + dependencies: + escape-goat "^2.0.0" + +put@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/put/-/put-0.0.6.tgz#30f5f60bd6e4389bd329e16a25386cbb2e4a00a3" + integrity sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM= + +qrcode-generator@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" + integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-config-file@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" + integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== + dependencies: + dotenv "^8.2.0" + dotenv-expand "^5.1.0" + js-yaml "^3.13.1" + json5 "^2.1.2" + lazy-val "^1.0.4" + +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +register-scheme@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/register-scheme/-/register-scheme-0.0.2.tgz#c91a61c735a9f14b2c9f0c2c27d707c0b06615e8" + integrity sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw== + dependencies: + bindings "^1.3.0" + node-addon-api "^1.3.0" + +registry-auth-token@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +resolve-alpn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.10.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" + integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== + dependencies: + boolean "^3.0.0" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": - "resolved" "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" - -"semver-compare@^1.0.0": - "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" - "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" - "version" "1.0.0" - -"semver-diff@^3.1.1": - "integrity" "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==" - "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" - "version" "3.1.1" - dependencies: - "semver" "^6.3.0" - -"semver-regex@^3.1.2": - "integrity" "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==" - "resolved" "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz" - "version" "3.1.2" - -"semver@^5.3.0": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@^5.4.1": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"semver@^6.0.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^6.2.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^6.3.0": - "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - "version" "6.3.0" - -"semver@^7.3.2": - "integrity" "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" - "version" "7.3.2" - -"semver@2 || 3 || 4 || 5": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"serialize-error@^7.0.1": - "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" - "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "type-fest" "^0.13.1" - -"set-blocking@~2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - "version" "2.0.0" - -"shebang-command@^2.0.0": - "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" - "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "shebang-regex" "^3.0.0" - -"shebang-regex@^3.0.0": - "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - "version" "3.0.0" - -"signal-exit@^3.0.0", "signal-exit@^3.0.2": - "integrity" "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" - "version" "3.0.3" - -"slash@^3.0.0": - "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - "version" "3.0.0" - -"socket.io-adapter@~1.1.0": - "integrity" "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - "resolved" "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" - "version" "1.1.2" - -"socket.io-client@2.3.0": - "integrity" "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==" - "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "backo2" "1.0.2" - "base64-arraybuffer" "0.1.5" - "component-bind" "1.0.0" - "component-emitter" "1.2.1" - "debug" "~4.1.0" - "engine.io-client" "~3.4.0" - "has-binary2" "~1.0.2" - "has-cors" "1.1.0" - "indexof" "0.0.1" - "object-component" "0.0.3" - "parseqs" "0.0.5" - "parseuri" "0.0.5" - "socket.io-parser" "~3.3.0" - "to-array" "0.1.4" - -"socket.io-parser@~3.3.0": - "integrity" "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==" - "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "component-emitter" "1.2.1" - "debug" "~3.1.0" - "isarray" "2.0.1" - -"socket.io-parser@~3.4.0": - "integrity" "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==" - "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" - "version" "3.4.1" - dependencies: - "component-emitter" "1.2.1" - "debug" "~4.1.0" - "isarray" "2.0.1" - -"socket.io@^2.3.0": - "integrity" "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==" - "resolved" "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz" - "version" "2.3.0" - dependencies: - "debug" "~4.1.0" - "engine.io" "~3.4.0" - "has-binary2" "~1.0.2" - "socket.io-adapter" "~1.1.0" - "socket.io-client" "2.3.0" - "socket.io-parser" "~3.4.0" - -"source-map-support@^0.5.19": - "integrity" "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" - "version" "0.5.19" - dependencies: - "buffer-from" "^1.0.0" - "source-map" "^0.6.0" - -"source-map@^0.6.0": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"spdx-correct@^3.0.0": - "integrity" "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==" - "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" - "version" "3.1.1" - dependencies: - "spdx-expression-parse" "^3.0.0" - "spdx-license-ids" "^3.0.0" - -"spdx-exceptions@^2.1.0": - "integrity" "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - "version" "2.3.0" - -"spdx-expression-parse@^3.0.0": - "integrity" "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==" - "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "spdx-exceptions" "^2.1.0" - "spdx-license-ids" "^3.0.0" - -"spdx-license-ids@^3.0.0": - "integrity" "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz" - "version" "3.0.7" - -"sprintf-js@^1.1.2": - "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" - "version" "1.1.2" - -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - -"sshpk@^1.7.0": - "integrity" "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==" - "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" - "version" "1.16.1" - dependencies: - "asn1" "~0.2.3" - "assert-plus" "^1.0.0" - "bcrypt-pbkdf" "^1.0.0" - "dashdash" "^1.12.0" - "ecc-jsbn" "~0.1.1" - "getpass" "^0.1.1" - "jsbn" "~0.1.0" - "safer-buffer" "^2.0.2" - "tweetnacl" "~0.14.0" - -"stat-mode@^1.0.0": - "integrity" "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==" - "resolved" "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" - "version" "1.0.0" - -"string_decoder@~1.1.1": - "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" - "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - "version" "1.1.1" - dependencies: - "safe-buffer" "~5.1.0" - -"string-width@^1.0.1": - "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "code-point-at" "^1.0.0" - "is-fullwidth-code-point" "^1.0.0" - "strip-ansi" "^3.0.0" + version "0.0.5" + resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver-regex@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" + integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~4.1.0" + engine.io-client "~3.4.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" + +source-map-support@^0.5.11, source-map-support@^0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" "string-width@^1.0.2 || 2": - "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^4.0.0" - -"string-width@^3.0.0": - "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "emoji-regex" "^7.0.1" - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^5.1.0" - -"string-width@^4.0.0", "string-width@^4.1.0", "string-width@^4.2.0": - "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" - "version" "4.2.0" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.0" - -"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": - "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "ansi-regex" "^2.0.0" - -"strip-ansi@^4.0.0": - "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "ansi-regex" "^3.0.0" - -"strip-ansi@^5.1.0": - "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "ansi-regex" "^4.1.0" - -"strip-ansi@^6.0.0": - "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "ansi-regex" "^5.0.0" - -"strip-final-newline@^2.0.0": - "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - "version" "2.0.0" - -"strip-json-comments@~2.0.1": - "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - "version" "2.0.1" - -"sumchecker@^3.0.1": - "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" - "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "debug" "^4.1.0" - -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" - -"supports-color@^7.1.0": - "integrity" "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" - "version" "7.1.0" - dependencies: - "has-flag" "^4.0.0" - -"tar@^4": - "integrity" "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==" - "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz" - "version" "4.4.13" - dependencies: - "chownr" "^1.1.1" - "fs-minipass" "^1.2.5" - "minipass" "^2.8.6" - "minizlib" "^1.2.1" - "mkdirp" "^0.5.0" - "safe-buffer" "^5.1.2" - "yallist" "^3.0.3" - -"tar@^6.0.2", "tar@^6.0.5": - "integrity" "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==" - "resolved" "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz" - "version" "6.0.5" - dependencies: - "chownr" "^2.0.0" - "fs-minipass" "^2.0.0" - "minipass" "^3.0.0" - "minizlib" "^2.1.1" - "mkdirp" "^1.0.3" - "yallist" "^4.0.0" - -"temp-file@^3.3.7": - "integrity" "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==" - "resolved" "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz" - "version" "3.3.7" - dependencies: - "async-exit-hook" "^2.0.1" - "fs-extra" "^8.1.0" - -"term-size@^2.1.0": - "integrity" "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - "resolved" "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" - "version" "2.2.1" - -"timm@^1.6.1": - "integrity" "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" - "resolved" "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" - "version" "1.6.2" - -"tinycolor2@^1.4.1": - "integrity" "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" - "version" "1.4.1" - -"to-array@0.1.4": - "integrity" "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - "resolved" "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" - "version" "0.1.4" - -"to-readable-stream@^1.0.0": - "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" - "version" "1.0.0" - -"tough-cookie@~2.5.0": - "integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==" - "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - "version" "2.5.0" - dependencies: - "psl" "^1.1.28" - "punycode" "^2.1.1" - -"truncate-utf8-bytes@^1.0.0": - "integrity" "sha1-QFkjkJWS1W94pYGENLC3hInKXys=" - "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "utf8-byte-length" "^1.0.1" - -"tunnel-agent@^0.6.0": - "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" - "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - "version" "0.6.0" - dependencies: - "safe-buffer" "^5.0.1" - -"tunnel@^0.0.6": - "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" - "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" - "version" "0.0.6" - -"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": - "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - "version" "0.14.5" - -"type-fest@^0.13.1": - "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" - "version" "0.13.1" - -"type-fest@^0.16.0": - "integrity" "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" - "version" "0.16.0" - -"type-fest@^0.8.1": - "integrity" "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" - "version" "0.8.1" - -"typedarray-to-buffer@^3.1.5": - "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" - "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "is-typedarray" "^1.0.0" - -"typedarray@^0.0.6": - "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - "version" "0.0.6" - -"unique-string@^2.0.0": - "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" - "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "crypto-random-string" "^2.0.0" - -"universalify@^0.1.0": - "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - "version" "0.1.2" - -"universalify@^1.0.0": - "integrity" "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - "resolved" "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz" - "version" "1.0.0" - -"update-notifier@^4.1.1": - "integrity" "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==" - "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" - "version" "4.1.3" - dependencies: - "boxen" "^4.2.0" - "chalk" "^3.0.0" - "configstore" "^5.0.1" - "has-yarn" "^2.1.0" - "import-lazy" "^2.1.0" - "is-ci" "^2.0.0" - "is-installed-globally" "^0.3.1" - "is-npm" "^4.0.0" - "is-yarn-global" "^0.3.0" - "latest-version" "^5.0.0" - "pupa" "^2.0.1" - "semver-diff" "^3.1.1" - "xdg-basedir" "^4.0.0" - -"uri-js@^4.2.2": - "integrity" "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==" - "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz" - "version" "4.4.0" - dependencies: - "punycode" "^2.1.0" - -"url-parse-lax@^3.0.0": - "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" - "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "prepend-http" "^2.0.0" - -"url@^0.11.0": - "integrity" "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=" - "resolved" "https://registry.npmjs.org/url/-/url-0.11.0.tgz" - "version" "0.11.0" - dependencies: - "punycode" "1.3.2" - "querystring" "0.2.0" - -"utf-8-validate@^5.0.2": - "integrity" "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==" - "resolved" "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz" - "version" "5.0.2" - dependencies: - "node-gyp-build" "~3.7.0" - -"utf8-byte-length@^1.0.1": - "integrity" "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" - "version" "1.0.4" - -"utif@^2.0.1": - "integrity" "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==" - "resolved" "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "pako" "^1.0.5" - -"util-deprecate@~1.0.1": - "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - "version" "1.0.2" - -"uuid@^3.3.2": - "integrity" "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" - "version" "3.4.0" - -"uuid@^8.3.0", "uuid@^8.3.2": - "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - "version" "8.3.2" - -"validate-npm-package-license@^3.0.1": - "integrity" "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==" - "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "spdx-correct" "^3.0.0" - "spdx-expression-parse" "^3.0.0" - -"verror@1.10.0": - "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" - "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - "version" "1.10.0" - dependencies: - "assert-plus" "^1.0.0" - "core-util-is" "1.0.2" - "extsprintf" "^1.2.0" - -"wcwidth@^1.0.1": - "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" - "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "defaults" "^1.0.3" - -"which-pm-runs@^1.0.0": - "integrity" "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - "resolved" "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" - "version" "1.0.0" - -"which@^2.0.1": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "isexe" "^2.0.0" + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" -"which@^2.0.2": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tar@^6.0.1: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.0.5: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-file@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" + integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^8.1.0" + +term-size@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + +through@2, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timm@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" + integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +update-notifier@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +utf-8-validate@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" + integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== + dependencies: + node-gyp-build "~3.7.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" + integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - "isexe" "^2.0.0" + isexe "^2.0.0" -"wide-align@^1.1.0": - "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" - "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - "version" "1.1.3" +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: - "string-width" "^1.0.2 || 2" + string-width "^1.0.2 || 2" -"widest-line@^3.1.0": - "integrity" "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==" - "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" - "version" "3.1.0" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: - "string-width" "^4.0.0" + string-width "^4.0.0" "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": - "resolved" "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" - dependencies: - "nan" "^2.14.2" - -"wrap-ansi@^7.0.0": - "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "string-width" "^4.1.0" - "strip-ansi" "^6.0.0" - -"wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"write-file-atomic@^3.0.0": - "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" - "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - "version" "3.0.3" - dependencies: - "imurmurhash" "^0.1.4" - "is-typedarray" "^1.0.0" - "signal-exit" "^3.0.2" - "typedarray-to-buffer" "^3.1.5" - -"ws@^7.1.2", "ws@^7.3.1", "ws@^7.4.2": - "integrity" "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" - "resolved" "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz" - "version" "7.4.2" - -"ws@~6.1.0": - "integrity" "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==" - "resolved" "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz" - "version" "6.1.4" - dependencies: - "async-limiter" "~1.0.0" - -"xdg-basedir@^4.0.0": - "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - "version" "4.0.0" - -"xhr@^2.0.1": - "integrity" "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==" - "resolved" "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" - "version" "2.5.0" - dependencies: - "global" "~4.3.0" - "is-function" "^1.0.1" - "parse-headers" "^2.0.0" - "xtend" "^4.0.0" - -"xml-parse-from-string@^1.0.0": - "integrity" "sha1-qQKekp09vN7RafPG4oI42VpdWig=" - "resolved" "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" - "version" "1.0.1" - -"xml2js@^0.4.5": - "integrity" "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==" - "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" - "version" "0.4.23" - dependencies: - "sax" ">=0.6.0" - "xmlbuilder" "~11.0.0" - -"xmlbuilder@~11.0.0": - "integrity" "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" - "version" "11.0.1" - -"xmlhttprequest-ssl@~1.5.4": - "integrity" "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" - "version" "1.5.5" - -"xtend@^4.0.0": - "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - "version" "4.0.2" - -"y18n@^5.0.5": - "integrity" "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" - "version" "5.0.5" - -"yallist@^3.0.0": - "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - "version" "3.1.1" - -"yallist@^3.0.3": - "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - "version" "3.1.1" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yaml@^1.10.0": - "integrity" "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" - "version" "1.10.0" - -"yargs-parser@^20.2.2": - "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - "version" "20.2.4" - -"yargs@^16.0.0", "yargs@^16.0.3": - "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - "version" "16.2.0" - dependencies: - "cliui" "^7.0.2" - "escalade" "^3.1.1" - "get-caller-file" "^2.0.5" - "require-directory" "^2.1.1" - "string-width" "^4.2.0" - "y18n" "^5.0.5" - "yargs-parser" "^20.2.2" - -"yauzl@^2.10.0": - "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" - "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - "version" "2.10.0" - dependencies: - "buffer-crc32" "~0.2.3" - "fd-slicer" "~1.1.0" - -"yeast@0.1.2": - "integrity" "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - "resolved" "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" - "version" "0.1.2" - -"yocto-queue@^0.1.0": - "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - "version" "0.1.0" + version "0.1.0" + resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" + dependencies: + nan latest + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.1.2, ws@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + +ws@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xhr@^2.0.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.17, xml2js@^0.4.5: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^16.0.0, yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From d3f4b90f2d004ac1fe87987303f00251dd496841 Mon Sep 17 00:00:00 2001 From: NovusTheory <3434404+NovusTheory@users.noreply.github.com> Date: Wed, 24 Feb 2021 18:34:44 -0600 Subject: [PATCH 092/489] :bug: Check if app is default protocol client Fixes an issue where the app would always set the default protocol for `ytmd` which on some operating systems (notably seen with linux) always prompted a confirmation --- main.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index f581b30f6..583d77b39 100644 --- a/main.js +++ b/main.js @@ -103,8 +103,10 @@ let sleepTimer = { /* First checks ========================================================================= */ app.commandLine.appendSwitch('disable-features', 'MediaSessionService') //This keeps chromium from trying to launch up it's own mpris service, hence stopping the double service. -app.setAsDefaultProtocolClient('ytmd', process.execPath) - +if (!app.isDefaultProtocolClient('ytmd', process.execPath)) { + app.setAsDefaultProtocolClient('ytmd', process.execPath) +} + createCustomAppDir() createCustomCSSDir() From 4803ce9680fc2b2a1c738fa8e93c65cc7fd61988 Mon Sep 17 00:00:00 2001 From: jsbravoc <42355818+jsbravoc@users.noreply.github.com> Date: Thu, 1 Apr 2021 00:40:28 -0500 Subject: [PATCH 093/489] Update main.js Fixes #506 JavaScript Exception. --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index 583d77b39..cc7159fbf 100644 --- a/main.js +++ b/main.js @@ -1742,7 +1742,7 @@ async function createWindow() { async function loadMusicByUrl(videoUrl) { if (videoUrl.includes('music.youtube')) - await view.webContents.loadUrl(videoUrl) + await view.webContents.loadURL(videoUrl) else { let regExpYoutube = /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ let match = videoUrl.match(regExpYoutube) From 0a47e5d802bc25972632ab5e1817163a354c5fb0 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 21 Apr 2021 20:41:01 +0500 Subject: [PATCH 094/489] Update build.yml --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eaa0e5255..a10062dfd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,4 @@ +--- name: Build on: From 55107975f1c9484f82781b7dca242159fbd34896 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 21 Apr 2021 20:47:30 +0500 Subject: [PATCH 095/489] home: delete comment --- src/pages/home/home.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pages/home/home.html b/src/pages/home/home.html index 7af939d3a..f208f1209 100644 --- a/src/pages/home/home.html +++ b/src/pages/home/home.html @@ -39,8 +39,6 @@
signal_wifi_off -
From c207cd295b711c48d8ae065d28abccdd705f7469 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 21 Apr 2021 20:51:23 +0500 Subject: [PATCH 096/489] Fix typo --- src/pages/miniplayer/miniplayer.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/miniplayer/miniplayer.html b/src/pages/miniplayer/miniplayer.html index 3f308f9c3..c85215aa1 100644 --- a/src/pages/miniplayer/miniplayer.html +++ b/src/pages/miniplayer/miniplayer.html @@ -56,7 +56,7 @@
- 0:00 / + 0:00 0:00
From 038f6fa0fdb549b507a56d121cc30cc9d50fbe3d Mon Sep 17 00:00:00 2001 From: Flleeppyy <18307183+flleeppyy@users.noreply.github.com> Date: Mon, 26 Apr 2021 12:13:54 -0700 Subject: [PATCH 097/489] Update bug_report.md --- .github/ISSUE_TEMPLATE/bug_report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5b03ea166..540d1490c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,6 +26,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Environment (please complete the following information):** + * YTMDesktop version: ***vx.x.x*** * OS: ***Windows*** or ***Linux*** or ***Mac*** * OS version: ***X*** From 3470ec2036c84d0afa651d856e505290e25e734f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 21:30:07 +0000 Subject: [PATCH 098/489] :arrow_up: Bump lodash from 4.17.19 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index dc55ad94f..0beb6df3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2662,9 +2662,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.isequal": { "version": "4.5.0", diff --git a/yarn.lock b/yarn.lock index 569b58462..5fb2db749 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2147,9 +2147,9 @@ lodash.isequal@^4.5.0: integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= lodash@^4.17.10, lodash@^4.17.4: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.0.0: version "4.0.0" From cff08c097fbfbcc6e6aba860a68e815ef98bb00d Mon Sep 17 00:00:00 2001 From: Anthony Graham Date: Tue, 11 May 2021 09:30:21 +0100 Subject: [PATCH 099/489] :sparkles: Disable disk caching option --- main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main.js b/main.js index 583d77b39..e7b5e52fa 100644 --- a/main.js +++ b/main.js @@ -106,6 +106,8 @@ app.commandLine.appendSwitch('disable-features', 'MediaSessionService') //This k if (!app.isDefaultProtocolClient('ytmd', process.execPath)) { app.setAsDefaultProtocolClient('ytmd', process.execPath) } + +app.commandLine.appendSwitch('disable-http-cache') createCustomAppDir() From 77fcc1bc97bc1dc9d7a97225cbed549ca708f657 Mon Sep 17 00:00:00 2001 From: ranvel Date: Sun, 23 May 2021 21:55:24 -0400 Subject: [PATCH 100/489] :bug: don't refresh icon if no progress bar - macOS: Dock icon constantly refreshes even if there is no activity, this addresses that issue as verified with Quartz Debug --- main.js | 22 ++++++++++++++-------- src/pages/settings/settings.js | 4 +++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/main.js b/main.js index 6f9d13141..4489c7457 100644 --- a/main.js +++ b/main.js @@ -400,13 +400,15 @@ function createWindow() { rainmeterNowPlaying.setActivity(getAll()) mprisProvider.setActivity(getAll()) - mediaControl.setProgress( - mainWindow, - settingsProvider.get('settings-enable-taskbar-progressbar') - ? progress - : -1, - playerInfo.isPaused - ) + if (settingsProvider.get('settings-enable-taskbar-progressbar')) { + mediaControl.setProgress( + mainWindow, + settingsProvider.get('settings-enable-taskbar-progressbar') + ? progress + : -1, + playerInfo.isPaused + ) + } /** * Scrobble when track changes or when current track starts from the beginning @@ -414,7 +416,7 @@ function createWindow() { if (settingsProvider.get('settings-last-fm-scrobbler')) { if ( lastTrackId !== trackId || - (lastTrackProgress > progress && progress < 0.20) + (lastTrackProgress > progress && progress < 0.2) ) { if (!trackInfo.isAdvertisement) { clearInterval(updateTrackInfoTimeout) @@ -946,6 +948,10 @@ function createWindow() { } }) + ipcMain.on('refresh-progress', () => { + mediaControl.setProgress(mainWindow, -1, playerInfo.isPaused) + }) + ipcMain.on('register-renderer', (event, arg) => { renderer_for_status_bar = event.sender event.sender.send('update-status-bar') diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 3a9f4afe4..7361a3308 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -156,7 +156,9 @@ document.addEventListener('DOMContentLoaded', function () { initElement('settings-miniplayer-show-task', 'click') initElement('settings-miniplayer-always-show-controls', 'click') initElement('settings-miniplayer-paint-controls', 'click') - initElement('settings-enable-taskbar-progressbar', 'click') + initElement('settings-enable-taskbar-progressbar', 'click', () => { + ipc.send('refresh-progress') + }) // initElement('settings-enable-shortcut-buttons', 'click') From 1d0834ba272bd9681c764973100046e5dac3b0b4 Mon Sep 17 00:00:00 2001 From: altinat <48298065+altinat@users.noreply.github.com> Date: Wed, 2 Jun 2021 21:26:31 +0700 Subject: [PATCH 101/489] Add Thai language --- src/locales/th.json | 99 ++++++++++++++++++++++++++++++++ src/pages/settings/settings.html | 3 + 2 files changed, 102 insertions(+) create mode 100644 src/locales/th.json diff --git a/src/locales/th.json b/src/locales/th.json new file mode 100644 index 000000000..bc5a6a08a --- /dev/null +++ b/src/locales/th.json @@ -0,0 +1,99 @@ +{ + "ADD_TO_LIBRARY": "เพิ่มไปยังไลบรารี", + "ADD_TO_PLAYLIST": "เพิ่มไปยังเพลย์ลิสต์", + "ALWAYS_ASK_WHEN_READ_LINK": "ให้ถามเสมอเมื่ออ่านลิงก์", + "DOUBLE_CLICK_TO_RESET_POSITION": "ดับเบิ้ลคลิกเพื่อรีเซ็ตตำแหน่ง", + "LABEL_ALSO": "อีกทั้ง", + "LABEL_AUDIO": "เสียง", + "LABEL_CANCEL": "ยกเลิก", + "LABEL_CHANGELOG": "มีอะไรใหม่", + "LABEL_DISABLE": "ปิดใช้งาน", + "LABEL_EXIT": "ออก", + "LABEL_GUEST": "แขก", + "LABEL_LOADING": "กำลังโหลด...", + "LABEL_LYRICS_NOT_FOUND": "ไม่พบเนื้อเพลง", + "LABEL_LYRICS": "เนื้อเพลง", + "LABEL_MINIPLAYER": "มินิเพลย์เยอร์", + "LABEL_NOTIFICATION_DISLIKED": "เนำออกจากเพลงที่ชอบแล้ว", + "LABEL_NOTIFICATION_LIKED": "เพิ่มไปยังเพลงที่ชอบแล้ว", + "LABEL_PLAY_MUSIC": "เล่นเพลง", + "LABEL_SAVE": "บันทึก", + "LABEL_SAVED": "บันทึกแล้ว", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "แสดงศิลปิน", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "แสดงแทร็กเมื่อกำลังหยุดเล่น", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "แสดงเวลาของแทร็ก", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "แสดงชื่อ", + "LABEL_SETTINGS_DISCORD": "ตั้งค่า Discord", + "LABEL_SETTINGS_RELAUNCH": "นำไปใช้และรีสตาร์ด", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "แสดง/ซ่อนหน้าต่างหลัก", + "LABEL_SETTINGS_TAB_ABOUT": "เกี่ยวกับ", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "แสดงความคืบหน้าของแทร็กในแถบงาน", + "LABEL_SETTINGS_TAB_APPEARENCE": "ลักษณะ", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "ไม่พบอุปกรณ์", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "คลิกที่นี่แล้วสแกน QR โค้ด", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "ป้องกันการควบคุมระยะไกลด้วยรหัสผ่าน", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "การควบคุมระยะไกล", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "เล่นต่อจากที่ค้างไว้", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "ธีมกำหนดเอง", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "ปิดใช้งานการเร่งด้วยฮาร์ดแวร์", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "เปิด YTMDesktop ไว้ในพื้นหลังเมื่อปิดหน้าต่าง", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ซูมหน้า", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "เอาต์พุตเสียง", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "ภาษา", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "ผู้ให้บริการเนื้อเพลง", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "สวยงาม", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "ปิดแถบหัวเรื่อง", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "ระบบ", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "สไตล์แถบหัวเรื่อง", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "การควบคุมถาดอย่างง่าย (สำหรับ Mac OS เท่านั้น)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "แสดงการแจ้งเตือน", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "เปิดแบบย่อในถาดระบบ", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "เปิดเมื่อบูต (Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "ทั่วไป", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "แสดงข้อมูลแทร็กข้างแถบระดับเสียงของ Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "เปิดใช้งานบริการสื่อ Windows 10", + "LABEL_SETTINGS_TAB_INTEGRATION": "การบูรณาการ", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "การบูรณาการ", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "บันทึกและให้สิทธิ์", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "อยู่ข้างบนเสมอ", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "แสดงปุ่มควบคุมเสมอ", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "ระบายปุ่มสีควบคุมด้วยสีอัลบั้ม", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "อนุญาตให้ปรับขนาด", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "แสดงบนแถบงาน", + "LABEL_SETTINGS_TAB_MINIPLAYER": "มินิเพลย์เยอร์", + "LABEL_SETTINGS_TAB_PLAYBACK": "การเล่น", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "อ่านลิงก์ Youtube ในคลิปบอร์ด", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "ทั่วไป", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "เฉพาะที่", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "กดปุ่มใดก็ได้", + "LABEL_SETTINGS_TAB_SHORTCUTS": "ปุ่มลัด", + "LABEL_SETTINGS": "ตั้งค่า", + "LYRICS": "เนื้อเพลง", + "MEDIA_CONTROL_MINIPLAYER": "เปิด/ปิดมินิเพลย์เยอร์", + "MEDIA_CONTROL_MUTE_UNMUTE": "เปิด/ปิด", + "MEDIA_CONTROL_NEXT": "ถัดไป", + "MEDIA_CONTROL_PAUSE": "หยุดชั่วคราว", + "MEDIA_CONTROL_PLAY_PAUSE": "เล่น/หยุดชั่วคราว", + "MEDIA_CONTROL_PLAY": "เล่น", + "MEDIA_CONTROL_PREVIOUS": "ก่อนหน้า", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "เปิด/ปิดคิว", + "MEDIA_CONTROL_REPEAT": "วนซ้ำ", + "MEDIA_CONTROL_SEARCH": "ค้นหา", + "MEDIA_CONTROL_SHUFFLE": "สุ่ม", + "MEDIA_CONTROL_THUMBS_DOWN": "ไม่ถูกใจ", + "MEDIA_CONTROL_THUMBS_UP": "ถูกใจ", + "MEDIA_CONTROL_VOLUME_DOWN": "ลดระดับเสียง", + "MEDIA_CONTROL_VOLUME_UP": "เพิ่มระดับเสียง", + "MINIPLAYER": "มินิเพลยเยอร์", + "PREFIX_OPEN_CLOSE": "เปิด/ปิด", + "SHORTCUT_BUTTONS": "การกระทำ UI", + "SHOW": "แสดง", + "SKIP_TRACK_MARKED_DISLIKED": "ข้ามแทร็กที่ถูกตั้งไว้ว่า 'ไม่ถูกใจ'", + "SKIP_TRACK_SHORTER_THAN": "ข้ามแทร็กที่สั้นกว่า", + "TRAY_ICON": "ไอคอนถาด", + "WANT_PLAY_THIS_LINK": "ต้องการเล่นลิงก์นี้หรือไม่?" +} diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 632681e68..fb1f26fad 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -300,6 +300,9 @@ + From 85b9d9750b50869377f9d0a31a73e72b05d98d20 Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Sat, 19 Jun 2021 21:48:50 -0700 Subject: [PATCH 102/489] Take out change so git will let me push --- .github/ISSUE_TEMPLATE/bug_report.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 77d5d73fd..5b03ea166 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,7 +26,6 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Environment (please complete the following information):** - * YTMDesktop version: ***vx.x.x*** * OS: ***Windows*** or ***Linux*** or ***Mac*** * OS version: ***X*** From e8366f28eb0ba6eb3c22e46ad07dc91ff947f35b Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Sun, 20 Jun 2021 04:42:36 -0700 Subject: [PATCH 103/489] Implement lyrics always on top #746 Add electron types and set NODE_ENV to development in script --- STORE_VARIABLES.md | 1 + main.js | 63 +- package.json | 6 +- src/pages/settings/settings.html | 2276 +++++++++++++++++++----------- src/pages/settings/settings.js | 33 +- src/utils/defaultSettings.js | 2 + yarn.lock | 21 + 7 files changed, 1524 insertions(+), 878 deletions(-) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index b7c45bcfe..5f0fd3c45 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -16,6 +16,7 @@ | `settings-discord-rich-presence` | Boolean | `true` or `false` | `false` | Integration with Discord Rich Presence | | `settings-start-on-boot` | Boolean | `true` or `false` | `false` | Open player when system starts | | `settings-start-minimized` | Boolean | `true` or `false` | `false` | Open player minimized in tray | +| `settings-lyrics-always-top` | Boolean | `true` or `false` | `false` | Open player minimized in tray | | `settings-clipboard-read` | Boolean | `true` or `false` | `false` | Reads the clipboard for youtube links | | `settings-companion-server` | Boolean | `true` or `false` | `false` | Companion Server to control the player remotely | | `settings-genius-auth-server` | Boolean | `true` or `false` | `false` | Turns off the authentication server & Genius lyrics provider | diff --git a/main.js b/main.js index 0821c9b4f..f0593b1e4 100644 --- a/main.js +++ b/main.js @@ -108,7 +108,7 @@ if (!app.isDefaultProtocolClient('ytmd', process.execPath)) { } app.commandLine.appendSwitch('disable-http-cache') - + createCustomAppDir() createCustomCSSDir() @@ -249,6 +249,11 @@ async function createWindow() { break } + /* For the uninformed: + - The `view` variable is the actual webpage that contains youtube music and stuff. + - The `mainWindow` variable contains the window frame that holds the mainWindow, but you cannot inspect mainWindow elements. + Yes, I am confused as you are, but hopefully that clears up some confusion + */ mainWindow = new BrowserWindow(browserWindowConfig) mainWindow.webContents.session.webRequest.onBeforeSendHeaders( @@ -305,9 +310,9 @@ async function createWindow() { updateAccentColorPref() }) - // Open the DevTools. - // mainWindow.webContents.openDevTools({ mode: 'detach' }); - // view.webContents.openDevTools({ mode: 'detach' }) + if (process.env.NODE_ENV === 'development') { + view.webContents.openDevTools({ mode: 'detach' }) + } mediaControl.createThumbar(mainWindow, infoPlayerProvider.getAllInfo()) @@ -1033,13 +1038,11 @@ async function createWindow() { } }) - ipcMain.on('refresh-progress', () => { mediaControl.setProgress(mainWindow, -1, playerInfo.isPaused) }) - + ipcMain.on('register-renderer', (event, _) => { - renderer_for_status_bar = event.sender event.sender.send('update-status-bar') event.sender.send('is-dev', isDev) @@ -1055,7 +1058,7 @@ async function createWindow() { }) ipcMain.on('closed', (_) => { - mainWindow = null + // mainWindow = null if (process.platform !== 'darwin') { app.quit() } @@ -1198,6 +1201,10 @@ async function createWindow() { __.trans('LABEL_SETTINGS'), } ) + + if (process.env.NODE_ENV === 'development') { + settings.webContents.openDevTools({ mode: 'detach' }) + } } settings.on('closed', () => { @@ -1234,7 +1241,6 @@ async function createWindow() { enableRemoteModule: true, }, }) - await miniplayer.loadFile( path.join( app.getAppPath(), @@ -1248,7 +1254,7 @@ async function createWindow() { miniplayerPosition.x, miniplayerPosition.y ) - + console.log(miniplayer.getBounds()) let storeMiniplayerPositionTimer miniplayer.on('move', () => { let position = miniplayer.getPosition() @@ -1275,7 +1281,9 @@ async function createWindow() { }) // Devtools - // miniplayer.openDevTools() + if (process.env.NODE_ENV === 'development') { + miniplayer.openDevTools({ mode: 'detach' }) + } mainWindow.hide() } @@ -1310,8 +1318,7 @@ async function createWindow() { './src/pages/shared/window-buttons/window-buttons.html' ), { - search: - 'page=settings/sub/last-fm/last-fm-login&icon=music_note&hide=btn-minimize,btn-maximize&title=Last.FM Login', + search: 'page=settings/sub/last-fm/last-fm-login&icon=music_note&hide=btn-minimize,btn-maximize&title=Last.FM Login', } ) } @@ -1341,15 +1348,18 @@ async function createWindow() { './src/pages/shared/window-buttons/window-buttons.html' ), { - search: - 'page=editor/editor&icon=color_lens&hide=btn-minimize,btn-maximize', + search: 'page=editor/editor&icon=color_lens&hide=btn-minimize,btn-maximize', } ) } async function windowLyrics() { - if (lyrics) lyrics.show() - else { + if (lyrics) { + lyrics.show() + process.env.NODE_ENV === 'development' + ? lyrics.webContents.openDevTools({ mode: 'detach' }) + : null + } else { lyrics = new BrowserWindow({ icon: iconDefault, frame: windowConfig.frame, @@ -1359,6 +1369,7 @@ async function createWindow() { backgroundColor: '#232323', width: 700, height: 800, + alwaysOnTop: settingsProvider.get('settings-lyrics-always-top'), webPreferences: { nodeIntegration: true, webviewTag: true, @@ -1398,10 +1409,14 @@ async function createWindow() { lyrics.on('closed', () => { lyrics = null + if (process.env.NODE_ENV === 'development') { + lyrics.webContents.closeDevTools() + } }) - // ENABLE FOR DEBUG - // lyrics.webContents.openDevTools(); + if (process.env.NODE_ENV === 'development') { + lyrics.webContents.openDevTools({ mode: 'detach' }) + } } } @@ -1710,7 +1725,8 @@ async function createWindow() { clipboardWatcher = ClipboardWatcher({ watchDelay: 1000, onTextChange: (text) => { - let regExp = /(https?:\/\/)(www.)?(music.youtube|youtube|youtu.be).*/ + let regExp = + /(https?:\/\/)(www.)?(music.youtube|youtube|youtu.be).*/ let match = text.match(regExp) if (match) { let videoUrl = match[0] @@ -1754,7 +1770,8 @@ async function createWindow() { if (videoUrl.includes('music.youtube')) await view.webContents.loadURL(videoUrl) else { - let regExpYoutube = /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ + let regExpYoutube = + /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ let match = videoUrl.match(regExpYoutube) await view.webContents.loadURL( 'https://music.youtube.com/watch?v=' + match[4] @@ -1873,7 +1890,7 @@ else { }) app.on('before-quit', () => { - mainWindow = null + // mainWindow = null view = null if (isMac()) app.exit() @@ -1881,7 +1898,7 @@ else { }) app.on('quit', () => { - mainWindow = null + // mainWindow = null view = null tray.quit() }) diff --git a/package.json b/package.json index 7eeb6148d..b1c730afd 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "main.js", "scripts": { "start": "electron .", - "dev": "nodemon --exec yarn start --dev --inspect", + "dev": "NODE_ENV=development nodemon --exec yarn start --dev --inspect", "rebuild": "electron-rebuild -f", "postinstall": "npx electron-builder install-app-deps", "build:win": "npx electron-builder --win --config electron-builder-deploy64.yml", @@ -29,12 +29,14 @@ } }, "devDependencies": { + "@types/electron": "^1.6.10", "electron": "^11.1.1", "electron-builder": "^22.9.1", "electron-rebuild": "^2.3.4", "husky": "^4.3.7", "prettier": "^2.2.1", - "pretty-quick": "^2.0.2" + "pretty-quick": "^2.0.2", + "win-node-env": "^0.4.0" }, "dependencies": { "ace-builds": "^1.4.12", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 82bdfce25..44845bbb7 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1,277 +1,719 @@ - - - Settings - - - - - + + + Settings + + + + + - -
-
-
-
- + +
+ -
-
-
- - - - - - - - - - - - - - +
+
+
+
- - -
- -
-
- - - -
- -
-
- - -
- -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + +
+ + +
+ +
+
+ + + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + + autorenew + + +
+ +
+
- - -
- -
-
+ + + autorenew + + + +
- - -
- -
-
+ + + +
- - - autorenew - - -
- -
-
+
+   +
+
+ + +
+ +
+
+ + +
+ +
+
+
- - - - - autorenew - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + + 0s +

+ +

+
+ + +
+ +
+
+ + +
+ +
+
+
- - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+
- - -
+ + + + + - + - + + + + + - + + + + +
+ + + 100% +

-   - + +

@@ -279,42 +721,133 @@
+ + +
+
+
+ + +
+ + +
+
-
+
- + - + + + + + + + + + + + + + + - -
+ + @@ -322,25 +855,36 @@
+ +
+ @@ -350,15 +894,39 @@
+ + autorenew +
+ @@ -368,40 +936,67 @@
+
+ +
+
0s -

- -

+ class="settings-item-child" + > + +
+
+ +
+ @@ -411,7 +1006,7 @@
@@ -419,557 +1014,570 @@ + +
+ + + autorenew + + +
+ +
+
+ + + + autorenew + + +
+
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - 100% -

- -

-
- - -
- -
-
- - - -
- - -
- - -
-
- - -
- - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - -
- - - - -
- -
-
- - - - -
- - -
-
- - - autorenew - - -
- - -
-
- - -
- -
-
- - - -
- -
-
- - -
-
+ + - - -
- - -
- -
-
- - - autorenew - - -
- -
-
- - - - autorenew - - -
- -
-
- - - -
- -
-
-
+ + +
+ +
+ + + + +
-
-
-
-
- -
+ style="text-transform: none" + > + autorenew + +
- - - + + + diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index b16b752bf..d99e02cbd 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -116,6 +116,7 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-show-notifications', 'click', null) initElement('settings-start-on-boot', 'click', null) initElement('settings-start-minimized', 'click', null) + initElement('settings-lyrics-always-top', 'click', null) initElement('settings-companion-server', 'click', checkCompanionStatus) initElement('settings-genius-auth-server', 'click', null) initElement('settings-companion-server-protect', 'click', null) @@ -269,9 +270,8 @@ if (!isMac()) { } if (!isWindows()) { - const windowsSpecificNodes = document.getElementsByClassName( - 'windows-specific' - ) + const windowsSpecificNodes = + document.getElementsByClassName('windows-specific') for (let i = 0; i < windowsSpecificNodes.length; i++) windowsSpecificNodes.item(i).classList.add('hide') } @@ -279,9 +279,8 @@ if (!isWindows()) { if (isWindows()) { const os = require('os') if (!os.release().startsWith('10.')) { - const windows10SpecificNodes = document.getElementsByClassName( - 'windows10-specific' - ) + const windows10SpecificNodes = + document.getElementsByClassName('windows10-specific') for (let i = 0; i < windows10SpecificNodes.length; i++) windows10SpecificNodes.item(i).classList.add('hide') } @@ -365,9 +364,8 @@ function loadSettings() { 'settings-skip-track-shorter-than' ) if (settingsSkipTrackShorterThan) { - document.getElementById( - 'range-skip-track-shorter-than' - ).value = settingsSkipTrackShorterThan + document.getElementById('range-skip-track-shorter-than').value = + settingsSkipTrackShorterThan document.getElementById( 'range-skip-track-shorter-than-value' ).innerText = @@ -378,9 +376,8 @@ function loadSettings() { document.getElementById('app-version').innerText = remote.app.getVersion() - document.getElementById( - 'label-settings-companion-server-token' - ).innerText = settingsProvider.get('settings-companion-server-token') + document.getElementById('label-settings-companion-server-token').innerText = + settingsProvider.get('settings-companion-server-token') // Disable unsupported platforms which may get an API later if (!['darwin', 'win32'].includes(process.platform)) { @@ -485,9 +482,8 @@ document if (e.shiftKey) keyBindings += 'Shift+' keyBindings += validateKey(e) - document.querySelector( - '#modalEditAcceleratorKeys' - ).innerText = replaceAcceleratorText(keyBindings) + document.querySelector('#modalEditAcceleratorKeys').innerText = + replaceAcceleratorText(keyBindings) } }) @@ -518,11 +514,8 @@ function loadCustomKeys() { settingsAccelerators['media-track-dislike'] ) - document.querySelector( - '#settings-accelerators_media-volume-up' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-volume-up'] - ) + document.querySelector('#settings-accelerators_media-volume-up').innerText = + replaceAcceleratorText(settingsAccelerators['media-volume-up']) document.querySelector( '#settings-accelerators_media-volume-down' ).innerText = replaceAcceleratorText( diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index fa26fecd2..e9ed844bb 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -23,6 +23,8 @@ settingsProvider.setInitialValue('settings-miniplayer-show-task', false) // hide settingsProvider.setInitialValue('settings-lyrics-provider', '1') // OVH +settingsProvider.setInitialValue('settings-miniplayer-show-top', false) // show on top always + settingsProvider.setInitialValue('settings-companion-server-protect', true) // Yes settingsProvider.setInitialValue('settings-enable-player-bgcolor', false) diff --git a/yarn.lock b/yarn.lock index d82d12839..79dbb917e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -238,6 +238,13 @@ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== +"@types/electron@^1.6.10": + version "1.6.10" + resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.10.tgz#7e87888ed3888767cca68e92772c2c8ea46bc873" + integrity sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw== + dependencies: + electron "*" + "@types/fs-extra@^9.0.1": version "9.0.1" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" @@ -1329,6 +1336,15 @@ electron-updater@^4.3.5: lodash.isequal "^4.5.0" semver "^7.3.2" +electron@*: + version "11.2.3" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb" + integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + extract-zip "^1.0.3" + electron@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa" @@ -3982,6 +3998,11 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +win-node-env@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/win-node-env/-/win-node-env-0.4.0.tgz#2d9dc991702920c73eaa1d644655b773886da5cb" + integrity sha512-bf4TV/NOBEazlHJW/bOns7u2JaHe3f5bz8BYanm/xuqJ405NG9OK3VAI1Y2WvHJsAo4GMU8EYTHSh59Q3UfHvA== + "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": version "0.1.0" resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" From c4efeaa8b735e743125e43a8abc9e77df1b7bf87 Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Sun, 20 Jun 2021 04:50:45 -0700 Subject: [PATCH 104/489] Add win-node-env as optional dependency --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b1c730afd..5cc6d0d98 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,9 @@ "electron-rebuild": "^2.3.4", "husky": "^4.3.7", "prettier": "^2.2.1", - "pretty-quick": "^2.0.2", + "pretty-quick": "^2.0.2" + }, + "optionalDependencies": { "win-node-env": "^0.4.0" }, "dependencies": { From 505fdae87875ac22de42093f986191726bbe88e3 Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Sun, 20 Jun 2021 05:01:45 -0700 Subject: [PATCH 105/489] Uncomment set null lines I am tired... I have made too many mistakes --- main.js | 8 ++++---- package.json | 6 ++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/main.js b/main.js index f0593b1e4..0607957ca 100644 --- a/main.js +++ b/main.js @@ -773,6 +773,7 @@ async function createWindow() { infoPlayerProvider.getPlayerInfo().likeStatus !== 'DISLIKE' ) { + 1257 mediaControl.downVote(view) if ( settingsProvider.get('settings-show-notifications') @@ -1058,7 +1059,7 @@ async function createWindow() { }) ipcMain.on('closed', (_) => { - // mainWindow = null + mainWindow = null if (process.platform !== 'darwin') { app.quit() } @@ -1254,7 +1255,6 @@ async function createWindow() { miniplayerPosition.x, miniplayerPosition.y ) - console.log(miniplayer.getBounds()) let storeMiniplayerPositionTimer miniplayer.on('move', () => { let position = miniplayer.getPosition() @@ -1890,7 +1890,7 @@ else { }) app.on('before-quit', () => { - // mainWindow = null + mainWindow = null view = null if (isMac()) app.exit() @@ -1898,7 +1898,7 @@ else { }) app.on('quit', () => { - // mainWindow = null + mainWindow = null view = null tray.quit() }) diff --git a/package.json b/package.json index 5cc6d0d98..460e58ebe 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,6 @@ "prettier": "^2.2.1", "pretty-quick": "^2.0.2" }, - "optionalDependencies": { - "win-node-env": "^0.4.0" - }, "dependencies": { "ace-builds": "^1.4.12", "discord-rpc": "^3.1.4", @@ -72,6 +69,7 @@ "bufferutil": "^4.0.1", "mpris-service": "^2.1.0", "utf-8-validate": "^5.0.2", - "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" + "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", + "win-node-env": "^0.4.0" } } From c4b7ca9728a43f915efadd6bf87dffe381180034 Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Sun, 20 Jun 2021 17:37:59 -0700 Subject: [PATCH 106/489] Add nodemon --- package.json | 5 +- yarn.lock | 157 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 156 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 460e58ebe..90de5140f 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "electron-rebuild": "^2.3.4", "husky": "^4.3.7", "prettier": "^2.2.1", + "nodemon": "^2.0.7", "pretty-quick": "^2.0.2" }, "dependencies": { @@ -69,7 +70,7 @@ "bufferutil": "^4.0.1", "mpris-service": "^2.1.0", "utf-8-validate": "^5.0.2", - "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", - "win-node-env": "^0.4.0" + "win-node-env": "^0.4.0", + "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" } } diff --git a/yarn.lock b/yarn.lock index 79dbb917e..e03f91624 100644 --- a/yarn.lock +++ b/yarn.lock @@ -411,6 +411,14 @@ any-base@^1.1.0: resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + app-builder-bin@3.5.10: version "3.5.10" resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" @@ -580,6 +588,11 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@^1.2.1, bindings@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -645,6 +658,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -787,6 +807,21 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chokidar@^3.2.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -1036,7 +1071,7 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@^2.6.9: +debug@^2.2.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -1583,6 +1618,13 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -1670,6 +1712,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -1715,6 +1762,13 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -1959,6 +2013,11 @@ ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + ignore-walk@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" @@ -2029,6 +2088,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" @@ -2046,6 +2112,11 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -2068,6 +2139,13 @@ is-function@^1.0.1: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + is-installed-globally@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -2086,6 +2164,11 @@ is-npm@^4.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -2688,6 +2771,22 @@ node-vibrant@^3.1.5: lodash "^4.17.4" url "^0.11.0" +nodemon@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" + integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== + dependencies: + chokidar "^3.2.2" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.3" + update-notifier "^4.1.0" + nopt@^4.0.1, nopt@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -2696,6 +2795,13 @@ nopt@^4.0.1, nopt@^4.0.3: abbrev "1" osenv "^0.1.4" +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + nopt@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" @@ -2713,6 +2819,11 @@ normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-url@^4.1.0: version "4.5.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" @@ -3044,6 +3155,11 @@ phin@^2.9.1: resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -3141,6 +3257,11 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +pstree.remy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3234,6 +3355,13 @@ readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -3406,7 +3534,7 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3703,7 +3831,7 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -supports-color@^5.3.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -3792,6 +3920,20 @@ to-readable-stream@^1.0.0: resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -3851,6 +3993,13 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +undefsafe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" + integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== + dependencies: + debug "^2.2.0" + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -3868,7 +4017,7 @@ universalify@^1.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== -update-notifier@^4.1.1: +update-notifier@^4.1.0, update-notifier@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== From b0f2bd7cafaeb169a3222346a418bc92a91af10b Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 23 Jun 2021 21:54:32 +0500 Subject: [PATCH 107/489] Create localization --- src/locales/kz.json | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/locales/kz.json diff --git a/src/locales/kz.json b/src/locales/kz.json new file mode 100644 index 000000000..535aa55fe --- /dev/null +++ b/src/locales/kz.json @@ -0,0 +1,65 @@ +{ + "DOUBLE_CLICK_TO_RESET_POSITION": "Орынды қалпына келтіру үшін екі рет басыңыз", + "LABEL_EXIT": "Шығу", + "LABEL_GUEST": "Қонақ", + "LABEL_LOADING": "Жүктеу...", + "LABEL_LYRICS": "Мәтін", + "LABEL_LYRICS_NOT_FOUND": "Мәтін табылмады", + "LABEL_MINIPLAYER": "Мини-плеер", + "LABEL_PLAY_MUSIC": "Музыканы ойнау", + "LABEL_SETTINGS": "Параметрлер", + "LABEL_SETTINGS_RELAUNCH": "Применить и перезапустить", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Негізгі терезені көрсету/жасыру", + "LABEL_SETTINGS_TAB_ABOUT": "Программа туралы", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", + "LABEL_SETTINGS_TAB_APPEARENCE": "Сыртқы түрі", + "LABEL_SETTINGS_TAB_GENERAL": "Жалпы", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Серіктес сервер", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Мұнда басыңыз және QR кодын сканерлеңіз", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Тоқтаған жерден бастау", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Реттелетін тақырып", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Терезені жапқан кезде YTMDesktop қосымшасын өңде қалдану", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Бет масштабы", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Тіл", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Мәтін жеткізушісі", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Терезе тақырыбының стилі", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Керемет", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Өшіру", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Системды", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Tray-ды оңай қолдану (тек Mac OS-ке)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Хабарландыруларды көрсету", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Жүктеу кезінде іске қосу (Mac/Win)", + "LABEL_SETTINGS_TAB_INTEGRATION": "Интеграция", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Скробблер)", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Сақтап, кіру", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS", + "LABEL_SETTINGS_TAB_MINIPLAYER": "Мини-плеер", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Барлық терезелердің үстінде", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Әрқашан басқару элементтерін көрсетіңіз", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Элементтерді альбомның түсіне бояу", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Мини ойнатқыштың өлшемі", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Үлкен", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Орташа", + "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Кішкетай", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "YouTube сілтемелері үшін буферді оқу", + "LABEL_SETTINGS_TAB_SHORTCUTS": "Жапсырмалар", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Ғаламдық", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Жергілікті", + "MEDIA_CONTROL_MUTE_UNMUTE": "Дыбысты өшіру/қосу", + "MEDIA_CONTROL_NEXT": "Келесі трек", + "MEDIA_CONTROL_PAUSE": "Кідірту", + "MEDIA_CONTROL_PLAY": "Ойнату", + "MEDIA_CONTROL_PLAY_PAUSE": "Ойнату/Кідірту", + "MEDIA_CONTROL_PREVIOUS": "Алдыңғы трек", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Кезекті ашу/жабу", + "MEDIA_CONTROL_REPEAT": "Қайталау", + "MEDIA_CONTROL_SEARCH": "Іздеу", + "MEDIA_CONTROL_SHUFFLE": "Орын ауыстыру", + "MEDIA_CONTROL_THUMBS_DOWN": "Ұнамады", + "MEDIA_CONTROL_THUMBS_UP": "Ұнады" +} From 92e350c212b35f34ccdae521aa1a71db16c18244 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 23 Jun 2021 21:55:02 +0500 Subject: [PATCH 108/489] Update README.md --- README.md | 110 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index a9e952ce9..3d01048d2 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,84 @@ -[Discord](https://discord.gg/88P2n2a) -[Gitmoji](https://gitmoji.carloscuesta.me) -[![GitHub license](https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything)](https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE) -[![GitHub release](https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr)](https://GitHub.com/ytmdesktop/ytmdesktop/releases/) -[![Github all releases](https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg==)](https://github.com/ytmdesktop/ytmdesktop/releases/) - # YouTube Music Desktop App +window -window -  - -# New and don't know how to use it? - -https://github.com/ytmdesktop/ytmdesktop/wiki/How-use +[![Discord][discord-img]](discord-url) +[![Gitmoji][gitmoji-img]][gitmoji-url] +[![GitHub license][license-img]](license-url) +[![GitHub release][release-img]][release-url] +[![Download][download-img]][download-url] -# FAQ - -https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ +##### Guide +1. [How to use](https://github.com/ytmdesktop/ytmdesktop/wiki/How-use) +2. [FAQ](https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ) # Available for + + Packaging status + -Packaging status - -## Windows - +#### Windows - Winget: ```winget install "YouTube Music Desktop App"``` or ```winget install Ytmdesktop.Ytmdesktop``` - Chocolatey: ```choco install ytmdesktop``` -- Binaries: https://github.com/ytmdesktop/ytmdesktop/releases +- Binaries: -## Linux - -- Arch Linux (AUR): https://aur.archlinux.org/packages/ytmdesktop-git -- Snap: https://snapcraft.io/youtube-music-desktop-app -- Binaries: https://github.com/ytmdesktop/ytmdesktop/releases - -## Mac +#### Linux +- Arch Linux (AUR): +- Snap: +- Binaries: +#### Mac - Brew: ```brew install --cask ytmdesktop-youtube-music``` -- Binaries: https://github.com/ytmdesktop/ytmdesktop/releases - -# To Contribute +- Binaries: +# Installing ytmdesktop... To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: -```bash +```sh # Clone this repository -git clone https://github.com/ytmdesktop/ytmdesktop -# Go into the repository +git clone https://github.com/ytmdesktop/ytmdesktop.git +# Go into the directory cd ytmdesktop +``` +##### Get started... +```sh # Install dependencies npm install # Run the app npm start ``` -Note: If you're using Linux Bash for Windows, [see this guide](https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/) or use `node` from the command prompt. +**Note:** If you're using Linux Bash for Windows, [see this guide][more] or use `node` from the command prompt. ## To contribute for your own language - Navigate to [ytmdesktop-locales](https://github.com/ytmdesktop/ytmdesktop-locales) and follow the instructions there. ## Contributors - -[adlerluiz](https://github.com/adlerluiz) -[mingjun97](https://github.com/mingjun97) -[kyjus25](https://github.com/kyjus25) -[tbvjaos510](https://github.com/tbvjaos510) -[rickinbsb](https://github.com/rickinbsb) -[KimVuu](https://github.com/KimVuu) -[Venipa](https://github.com/Venipa) -[pinkiesky](https://github.com/pinkiesky) -[austonpramodh](https://github.com/austonpramodh) -[benjaminaudet](https://github.com/benjaminaudet) -[garfunkel](https://github.com/garfunkel) -[ZeusAFK](https://github.com/ZeusAFK) -[SN9NV](https://github.com/SN9NV) -[AdityaTD](https://github.com/AdityaTD) -[vbackeberg](https://github.com/vbackeberg) -[Vistaus](https://github.com/vistaus) -[ddarkr](https://github.com/ddarkr) +[adlerluiz](https://github.com/adlerluiz) +[mingjun97](https://github.com/mingjun97) +[kyjus25](https://github.com/kyjus25) +[tbvjaos510](https://github.com/tbvjaos510) +[rickinbsb](https://github.com/rickinbsb) +[KimVuu](https://github.com/KimVuu) +[Venipa](https://github.com/Venipa) +[pinkiesky](https://github.com/pinkiesky) +[austonpramodh](https://github.com/austonpramodh) +[benjaminaudet](https://github.com/benjaminaudet) +[garfunkel](https://github.com/garfunkel) +[ZeusAFK](https://github.com/ZeusAFK) +[SN9NV](https://github.com/SN9NV) +[AdityaTD](https://github.com/AdityaTD) +[vbackeberg](https://github.com/vbackeberg) +[Vistaus](https://github.com/vistaus) +[ddarkr](https://github.com/ddarkr) + +[discord-img]: https://img.shields.io/badge/Discord-JOIN-GREEN.svg?style=for-the-badge&logo=discord +[discord-url]: https://discord.gg/88P2n2a +[gitmoji-img]: https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+ +[gitmoji-url]: https://gitmoji.carloscuesta.me +[license-img]: https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything +[license-url]: https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE +[release-img]: https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr +[release-url]: https://GitHub.com/ytmdesktop/ytmdesktop/releases/ +[download-img]: https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg== +[download-url]: https://github.com/ytmdesktop/ytmdesktop/releases/ +[more]: https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/ From 14dba3379db8a11a9252fe7e5634ea3f05abc763 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 23 Jun 2021 21:57:24 +0500 Subject: [PATCH 109/489] Reorder html/css file --- src/pages/changelog/changelog.html | 40 +++---- src/pages/editor/editor.css | 2 +- src/pages/editor/editor.html | 62 +++++------ src/pages/home/home.html | 82 +++++++------- src/pages/lyrics/lyrics.css | 4 +- src/pages/lyrics/lyrics.html | 63 +++++------ src/pages/miniplayer/miniplayer.html | 159 ++++++++++++++------------- src/pages/settings/settings.html | 4 +- 8 files changed, 209 insertions(+), 207 deletions(-) diff --git a/src/pages/changelog/changelog.html b/src/pages/changelog/changelog.html index 2bb74454c..9080d9e05 100644 --- a/src/pages/changelog/changelog.html +++ b/src/pages/changelog/changelog.html @@ -1,24 +1,24 @@ - - - Changelog - - - - - -
-
-
-
+ + + Changelog + + + + + +
+
+
+
- - + + diff --git a/src/pages/editor/editor.css b/src/pages/editor/editor.css index e15dea1c7..710d8f9ad 100644 --- a/src/pages/editor/editor.css +++ b/src/pages/editor/editor.css @@ -14,5 +14,5 @@ body { .bottom { position: absolute; bottom: 16px; - right: 12px + right: 12px; } \ No newline at end of file diff --git a/src/pages/editor/editor.html b/src/pages/editor/editor.html index 121ba4a18..abb67010c 100644 --- a/src/pages/editor/editor.html +++ b/src/pages/editor/editor.html @@ -1,37 +1,37 @@ + - - - - - - - - -

-        save
-    
-
+
+    
+    
+    
+    
+    
+
+
+    

+    save
     
-
-    
+    
+    
+
 
diff --git a/src/pages/home/home.html b/src/pages/home/home.html
index f208f1209..b8067d34f 100644
--- a/src/pages/home/home.html
+++ b/src/pages/home/home.html
@@ -1,49 +1,49 @@
 
 
-    
-        
-        YouTube Music
-        
-        
-        
-        
-    
-
-    
-        
-
-
-
-
-
-
-
-
-
-
-
+ + + YouTube Music + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
-
- signal_wifi_off -
+
+ signal_wifi_off
+
- - + + diff --git a/src/pages/lyrics/lyrics.css b/src/pages/lyrics/lyrics.css index badec0e6e..2cc5ce626 100644 --- a/src/pages/lyrics/lyrics.css +++ b/src/pages/lyrics/lyrics.css @@ -26,7 +26,7 @@ body { position: absolute; width: 100%; text-align: center; - color: lightgreen + color: lightgreen; } #content { @@ -47,7 +47,7 @@ body { #lyric-source { font-size: 80%; padding: 0 0 0 6px; - color: #AAA + color: #AAA; } .hide { diff --git a/src/pages/lyrics/lyrics.html b/src/pages/lyrics/lyrics.html index b66c0f64d..de3c69373 100644 --- a/src/pages/lyrics/lyrics.html +++ b/src/pages/lyrics/lyrics.html @@ -1,34 +1,35 @@ - - - Lyrics - - - - - - - -
-
-
-
-
- - + + + Lyrics + + + + + + + +
+
+
+
+
+ + diff --git a/src/pages/miniplayer/miniplayer.html b/src/pages/miniplayer/miniplayer.html index e4c120021..7d084be19 100644 --- a/src/pages/miniplayer/miniplayer.html +++ b/src/pages/miniplayer/miniplayer.html @@ -1,97 +1,98 @@ + - - - YouTube Music - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
+ + + YouTube Music + + + + + + +
+
+
+
+
-
-
-
-
-
- drag_indicator +
+
-
- launch +
+
+
+
+
+
+
+ drag_indicator +
+
+ launch +
+
-
-
- Title -
+
+
+ Title +
-
- Author -
+
+ Author +
-
- 0:00 - 0:00 -
+
+ 0:00 + 0:00 +
-
-
- thumb_down +
+
+ thumb_down - - thumb_down -
-
- skip_previous -
-
- play_arrow -
-
- skip_next -
-
- thumb_up + + thumb_down +
+
+ skip_previous +
+
+ play_arrow +
+
+ skip_next +
+
+ thumb_up - - thumb_up -
+ + thumb_up
-
-
-
+
+
+
+
-
-
- +
+
+ diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 82bdfce25..c82884b2f 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1,7 +1,7 @@ - + Settings From 07853a7906231089adc34197691a69707fc8af89 Mon Sep 17 00:00:00 2001 From: Alipoodle M Date: Wed, 23 Jun 2021 18:26:53 +0100 Subject: [PATCH 110/489] Added Meta Key to Keybinds Adds Meta/Windows Key to be supported by Keybinds. Prevents Meta/Windows key from being used on it's own. Adds Meta key to be allowed from the Keybind. Displays `Windows` instead of `Meta` on Windows Devices. *This maybe optionally changed to display something else* Fixes: #725 --- src/pages/settings/settings.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index b16b752bf..227f2650f 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -416,6 +416,9 @@ function replaceAcceleratorText(text) { if (text.indexOf('CmdOrCtrl') !== -1) if (isMac()) text = text.replace('CmdOrCtrl', 'Cmd') else text = text.replace('CmdOrCtrl', 'Ctrl') + + if (text.indexOf('Meta') !== -1 && isWindows()) + text = text.replace('Meta', 'Windows') text = text.replace('numadd', '+') @@ -460,6 +463,7 @@ function validateKey(e) { function preventSpecialKeys(e) { return !( + e.key === 'Meta' || e.key === 'Command' || e.key === 'Control' || e.key === 'Alt' || @@ -478,6 +482,8 @@ document if (preventSpecialKeys(e)) { keyBindings = '' + if (e.metaKey) keyBindings += 'Meta+' + if (e.ctrlKey) keyBindings += 'CmdOrCtrl+' if (e.altKey) keyBindings += 'Alt+' From 64659ee39c8c6f3d58e028b24fc87c51fe95c8a6 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 23 Jun 2021 22:41:56 +0500 Subject: [PATCH 111/489] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3d01048d2..3b151c286 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![GitHub release][release-img]][release-url] [![Download][download-img]][download-url] -##### Guide +##### Guide: 1. [How to use](https://github.com/ytmdesktop/ytmdesktop/wiki/How-use) 2. [FAQ](https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ) @@ -30,7 +30,7 @@ - Brew: ```brew install --cask ytmdesktop-youtube-music``` - Binaries: -# Installing ytmdesktop... +# Installing ytmdesktop To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: ```sh @@ -39,7 +39,7 @@ git clone https://github.com/ytmdesktop/ytmdesktop.git # Go into the directory cd ytmdesktop ``` -##### Get started... +##### And: ```sh # Install dependencies npm install From c60821dbbc178fbea0b60363b0e267d619054cd8 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Thu, 24 Jun 2021 11:39:29 +0500 Subject: [PATCH 112/489] Delete kz.json --- src/locales/kz.json | 65 --------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 src/locales/kz.json diff --git a/src/locales/kz.json b/src/locales/kz.json deleted file mode 100644 index 535aa55fe..000000000 --- a/src/locales/kz.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Орынды қалпына келтіру үшін екі рет басыңыз", - "LABEL_EXIT": "Шығу", - "LABEL_GUEST": "Қонақ", - "LABEL_LOADING": "Жүктеу...", - "LABEL_LYRICS": "Мәтін", - "LABEL_LYRICS_NOT_FOUND": "Мәтін табылмады", - "LABEL_MINIPLAYER": "Мини-плеер", - "LABEL_PLAY_MUSIC": "Музыканы ойнау", - "LABEL_SETTINGS": "Параметрлер", - "LABEL_SETTINGS_RELAUNCH": "Применить и перезапустить", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Негізгі терезені көрсету/жасыру", - "LABEL_SETTINGS_TAB_ABOUT": "Программа туралы", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "Сыртқы түрі", - "LABEL_SETTINGS_TAB_GENERAL": "Жалпы", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Серіктес сервер", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Мұнда басыңыз және QR кодын сканерлеңіз", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Тоқтаған жерден бастау", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Реттелетін тақырып", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Терезені жапқан кезде YTMDesktop қосымшасын өңде қалдану", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Бет масштабы", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Тіл", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Мәтін жеткізушісі", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Терезе тақырыбының стилі", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Керемет", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Өшіру", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Системды", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Tray-ды оңай қолдану (тек Mac OS-ке)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Хабарландыруларды көрсету", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Жүктеу кезінде іске қосу (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Интеграция", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Скробблер)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Сақтап, кіру", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Мини-плеер", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Барлық терезелердің үстінде", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Әрқашан басқару элементтерін көрсетіңіз", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Элементтерді альбомның түсіне бояу", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Мини ойнатқыштың өлшемі", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Үлкен", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Орташа", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Кішкетай", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "YouTube сілтемелері үшін буферді оқу", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Жапсырмалар", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Ғаламдық", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Жергілікті", - "MEDIA_CONTROL_MUTE_UNMUTE": "Дыбысты өшіру/қосу", - "MEDIA_CONTROL_NEXT": "Келесі трек", - "MEDIA_CONTROL_PAUSE": "Кідірту", - "MEDIA_CONTROL_PLAY": "Ойнату", - "MEDIA_CONTROL_PLAY_PAUSE": "Ойнату/Кідірту", - "MEDIA_CONTROL_PREVIOUS": "Алдыңғы трек", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Кезекті ашу/жабу", - "MEDIA_CONTROL_REPEAT": "Қайталау", - "MEDIA_CONTROL_SEARCH": "Іздеу", - "MEDIA_CONTROL_SHUFFLE": "Орын ауыстыру", - "MEDIA_CONTROL_THUMBS_DOWN": "Ұнамады", - "MEDIA_CONTROL_THUMBS_UP": "Ұнады" -} From 78fcd3330fe7e436af8fcccaa361ad3e1eb81fcc Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Thu, 24 Jun 2021 14:29:53 -0700 Subject: [PATCH 113/489] Remove unintentional line --- main.js | 1 - 1 file changed, 1 deletion(-) diff --git a/main.js b/main.js index 0607957ca..eb971f3b2 100644 --- a/main.js +++ b/main.js @@ -773,7 +773,6 @@ async function createWindow() { infoPlayerProvider.getPlayerInfo().likeStatus !== 'DISLIKE' ) { - 1257 mediaControl.downVote(view) if ( settingsProvider.get('settings-show-notifications') From 8cd8e7e19bf744a82155062bc6c826c12e031daf Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Thu, 24 Jun 2021 15:27:32 -0700 Subject: [PATCH 114/489] Add settings-miniplayer-always-top to initial settings fix mistake --- src/utils/defaultSettings.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index e9ed844bb..3e004d052 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -21,9 +21,11 @@ settingsProvider.setInitialValue('settings-miniplayer-resizable', false) // Not settingsProvider.setInitialValue('settings-miniplayer-show-task', false) // hide from taskbar +settingsProvider.setInitialValue('settings-miniplayer-always-top', false) // show on top always + settingsProvider.setInitialValue('settings-lyrics-provider', '1') // OVH -settingsProvider.setInitialValue('settings-miniplayer-show-top', false) // show on top always +settingsProvider.setInitialValue('settings-lyrics-always-top', false) // show on top always settingsProvider.setInitialValue('settings-companion-server-protect', true) // Yes From 6ccf8db7025262dbd0d0493ca484074251af9f9e Mon Sep 17 00:00:00 2001 From: Flleeppyy Date: Thu, 24 Jun 2021 15:53:40 -0700 Subject: [PATCH 115/489] Sort alphabetically Add non-existing ones (Partially complete, will finish later) --- STORE_VARIABLES.md | 56 +++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index 5f0fd3c45..c8bac5d0a 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -6,39 +6,45 @@ | `uuid` | String | `unique-id` | `unique-id` | Unique id for analytics | ## Settings -| Key | Type | Values | Default | Description | -| ------------------------------------------ | ------- | ---------------------------- | ---------------------------- | -------------------------------------------------------------- | -| `settings-page-zoom` | String | `50` ~ `150` | `100` | Zoom of the main window | -| `settings-keep-background` | Boolean | `true` or `false` | `false` | When close main window, keep the player on background | -| `settings-show-notifications` | Boolean | `true` or `false` | `false` | Show notifications on desktop when change music | -| `settings-continue-where-left-of` | Boolean | `true` or `false` | `false` | When you close and open the app, will return where you stopped | -| `settings-app-language` | String | `en`, `pt`, ... | `en` | Language of the app | -| `settings-discord-rich-presence` | Boolean | `true` or `false` | `false` | Integration with Discord Rich Presence | -| `settings-start-on-boot` | Boolean | `true` or `false` | `false` | Open player when system starts | -| `settings-start-minimized` | Boolean | `true` or `false` | `false` | Open player minimized in tray | -| `settings-lyrics-always-top` | Boolean | `true` or `false` | `false` | Open player minimized in tray | -| `settings-clipboard-read` | Boolean | `true` or `false` | `false` | Reads the clipboard for youtube links | -| `settings-companion-server` | Boolean | `true` or `false` | `false` | Companion Server to control the player remotely | -| `settings-genius-auth-server` | Boolean | `true` or `false` | `false` | Turns off the authentication server & Genius lyrics provider | -| `settings-companion-server-protect` | Boolean | `true` or `false` | `true` | Enable or disable protection of companion | -| `settings-companion-server-token` | String | `String token` | GENERATED_TOKEN | Token to prevent anonymous control of the player | -| `settings-enable-double-tapping-show-hide` | Boolean | `true` or `false` | `true` | Enable or disable double-tapping to show/hide main window | -| `settings-app-audio-output` | String | `Audio devices` | DEFAULT_AUDIO_DEVICE | Define default audio output | -| `settings-custom-css-app` | Boolean | `true` or `false` | `false` | Custom css for main app | -| `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | -| `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | -| `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | -| `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | -| `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | +| Key | Type | Values | Default | Description | +| ------------------------------------------ | ------- | ---------------------------- | ---------------------------- | -------------------------------------------------------------------------------------| +| `settings-app-audio-output` | String | `Audio devices` | DEFAULT_AUDIO_DEVICE | Define default audio output | +| `settings-app-language` | String | `en`, `pt`, ... | `en` | Language of the app | +| `settings-clipboard-read` | Boolean | `true` or `false` | `false` | Reads the clipboard for youtube links | +| `settings-custom-css-app` | Boolean | `true` or `false` | `false` | Custom css for main app | +| `settings-companion-server` | Boolean | `true` or `false` | `false` | Companion Server to control the player remotely | +| `settings-companion-server-protect` | Boolean | `true` or `false` | `true` | Enable or disable protection of companion | +| `settings-companion-server-token` | String | `String token` | GENERATED_TOKEN | Token to prevent anonymous control of the player | +| `settings-continue-where-left-of` | Boolean | `true` or `false` | `false` | When you close and open the app, will return where you stopped | +| `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | +| `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | +| `settings-discord-rich-presence` | Boolean | `true` or `false` | `false` | Integration with Discord Rich Presence | +| `settings-enable-double-tapping-show-hide` | Boolean | `true` or `false` | `true` | Enable or disable double-tapping to show/hide main window | +| `settings-enable-player-bgcolor` | Boolean | `true` or `false` | `false` | Enable or disable setting the background of the player to the color of the cover art | +| `settings-genius-auth-server` | Boolean | `true` or `false` | `false` | Turns off the authentication server & Genius lyrics provider | +| `settings-lyrics-always-top` | Boolean | `true` or `false` | `false` | Always show lyrics window on top | +| `settings-lyrics-provider` | String | ? | 1 | Lyrics provider - Not entirely sure how this is implemented | +| `settings-miniplayer-always-top` | Boolean | `true` or `false` | `false` | Always show miniplayer on top | +| `settings-miniplayer-resizeable` | Boolean | `true` or `false` | `false` | Make miniplayer resizable or not | +| `settings-miniplayer-show-task` | Boolean | `true` or `false` | `false` | Hide from task bar | +| `settings-miniplayer-size` | String | Value represented by px | `200` | Size of miniplayer | +| `settings-page-zoom` | String | `50` ~ `150` | `100` | Zoom of the main window | +| `settings-keep-background` | Boolean | `true` or `false` | `false` | When close main window, keep the player on background | +| `settings-show-notifications` | Boolean | `true` or `false` | `false` | Show notifications on desktop when change music | +| `settings-start-minimized` | Boolean | `true` or `false` | `false` | Open player minimized in tray | +| `settings-start-on-boot` | Boolean | `true` or `false` | `false` | Open player when system starts | +| `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | +| `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | +| `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | ## Window | Key | Type | Values | Default | Description | | ------------------------------------- | ------- | ---------------------------- | ---------------------------- | --------------------------------------------- | +| `titlebar-type` | String | `nice` or `system` or `none` | `nice` | Type of frame titlebar | | `window-url` | String | `https://music.youtube.com/` | `https://music.youtube.com/` | YouTube Music Url | | `window-position` | Object | `width` and `heigth` | `{ width: x, heigth: y }` | Position of the main window | | `window-maximized` | Boolean | `true` or `false` | `false` | Value to define if window is maximized or not | | `window-size` | Object | `width` and `heigth` | `{ width: x, heigth: y }` | Sizes of the main window | -| `titlebar-type` | String | `nice` or `system` or `none` | `nice` | Type of frame titlebar | ## Variables | Key | Type | Values | Default | Description | From 7002f6589f25ac0f09ed7316698ef43483c5a36d Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Fri, 25 Jun 2021 12:33:52 +0500 Subject: [PATCH 116/489] settings: add language (kz) --- src/pages/settings/settings.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index c82884b2f..0e502bf2d 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -236,6 +236,9 @@ + From b507b96bf1abf81f5cd64c1d56338ee17442d94e Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Mon, 28 Jun 2021 17:23:05 -0700 Subject: [PATCH 117/489] :lipstick: Update window-buttons for settings.html * Make it works at Electron 13.1.2 --- main.js | 18 +- src/pages/settings/settings.html | 337 +++--------------- .../shared/window-buttons/window-buttons.html | 10 +- .../shared/window-buttons/window-buttons.js | 10 +- 4 files changed, 81 insertions(+), 294 deletions(-) diff --git a/main.js b/main.js index eb971f3b2..c7efb2de7 100644 --- a/main.js +++ b/main.js @@ -1187,6 +1187,10 @@ async function createWindow() { nodeIntegration: true, webviewTag: true, enableRemoteModule: true, + contextIsolation: false, + nodeIntegrationInSubFrames: true, + webSecurity: false, + sandbox: false, }, }) @@ -1197,7 +1201,7 @@ async function createWindow() { ), { search: - 'page=settings/settings&icon=settings&hide=btn-minimize,btn-maximize&title=' + + 'page=settings/settings&trusted=1&icon=settings&hide=btn-minimize,btn-maximize&title=' + __.trans('LABEL_SETTINGS'), } ) @@ -1317,7 +1321,8 @@ async function createWindow() { './src/pages/shared/window-buttons/window-buttons.html' ), { - search: 'page=settings/sub/last-fm/last-fm-login&icon=music_note&hide=btn-minimize,btn-maximize&title=Last.FM Login', + search: + 'page=settings/sub/last-fm/last-fm-login&icon=music_note&hide=btn-minimize,btn-maximize&title=Last.FM Login', } ) } @@ -1347,7 +1352,8 @@ async function createWindow() { './src/pages/shared/window-buttons/window-buttons.html' ), { - search: 'page=editor/editor&icon=color_lens&hide=btn-minimize,btn-maximize', + search: + 'page=editor/editor&icon=color_lens&hide=btn-minimize,btn-maximize', } ) } @@ -1724,8 +1730,7 @@ async function createWindow() { clipboardWatcher = ClipboardWatcher({ watchDelay: 1000, onTextChange: (text) => { - let regExp = - /(https?:\/\/)(www.)?(music.youtube|youtube|youtu.be).*/ + let regExp = /(https?:\/\/)(www.)?(music.youtube|youtube|youtu.be).*/ let match = text.match(regExp) if (match) { let videoUrl = match[0] @@ -1769,8 +1774,7 @@ async function createWindow() { if (videoUrl.includes('music.youtube')) await view.webContents.loadURL(videoUrl) else { - let regExpYoutube = - /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ + let regExpYoutube = /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ let match = videoUrl.match(regExpYoutube) await view.webContents.loadURL( 'https://music.youtube.com/watch?v=' + match[4] diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index a3d80ca77..e5f4c2f2a 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -32,20 +32,11 @@ href="#tab-general" > dashboard blur_on personal_video music_note picture_in_picture_alt wifi_tethering linear_scale keyboard info_outline
-
+
@@ -293,11 +258,7 @@ > autorenew @@ -322,11 +283,7 @@ > autorenew @@ -765,12 +722,7 @@ + + + +
autorenew @@ -1058,10 +979,7 @@
autorenew @@ -1100,12 +1014,7 @@ i18n="i18n_LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS" > @@ -1219,25 +1100,13 @@ i18n="i18n_LABEL_ALSO" > play_arrow/pause @@ -1253,25 +1122,13 @@ @@ -1280,19 +1137,10 @@ i18n="i18n_LABEL_ALSO" > skip_next @@ -1308,25 +1156,13 @@ @@ -1335,19 +1171,10 @@ i18n="i18n_LABEL_ALSO" > skip_previous @@ -1363,25 +1190,13 @@ @@ -1397,25 +1212,13 @@ @@ -1431,25 +1234,13 @@ @@ -1465,25 +1256,13 @@ @@ -1522,25 +1301,13 @@ diff --git a/src/pages/shared/window-buttons/window-buttons.html b/src/pages/shared/window-buttons/window-buttons.html index b4feb7218..65067119c 100644 --- a/src/pages/shared/window-buttons/window-buttons.html +++ b/src/pages/shared/window-buttons/window-buttons.html @@ -102,10 +102,18 @@ + + diff --git a/src/pages/shared/window-buttons/window-buttons.js b/src/pages/shared/window-buttons/window-buttons.js index 99a189113..3632d2364 100644 --- a/src/pages/shared/window-buttons/window-buttons.js +++ b/src/pages/shared/window-buttons/window-buttons.js @@ -7,7 +7,7 @@ const currentWindow = remote.getCurrentWindow() const winElement = document.getElementById('win') const macElement = document.getElementById('mac') -const webview = document.querySelector('webview') +let webview = document.querySelector('webview') if (store.get('titlebar-type', 'nice') !== 'nice') { document.getElementById('nice-titlebar').style.height = '15px' @@ -28,6 +28,7 @@ if (store.get('titlebar-type', 'nice') !== 'nice') { macElement.remove() } document.getElementById('webview').style.height = '95vh' + document.getElementById('iframe').style.height = '95vh' document.getElementById('content').style.marginTop = '5vh' } @@ -80,6 +81,13 @@ function checkUrlParams() { let icon = params.get('icon') let title = params.get('title') let hide = params.get('hide') + let trusted = params.get('trusted') + + if (trusted) { + webview.classList.add('hide') + webview = document.getElementById('iframe') + webview.classList.remove('hide') + } if (page) webview.src = `../../${page}.html` From cbbd8a8c89e08f4b5660ad261c07ee2a44a83db8 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Mon, 28 Jun 2021 21:21:41 -0700 Subject: [PATCH 118/489] :recycle: Refactor codes for shiny tray control. * Make it works under `Electron 13.1.4` --- main.js | 3 +- src/{ => assets}/icons_for_shiny_tray.js | 0 src/pages/home/home.html | 82 ++++++++-------- src/pages/home/home.js | 96 ------------------- .../window-buttons/shiny-tray-helper.js | 92 ++++++++++++++++++ .../shared/window-buttons/window-buttons.js | 11 +++ 6 files changed, 146 insertions(+), 138 deletions(-) rename src/{ => assets}/icons_for_shiny_tray.js (100%) create mode 100644 src/pages/shared/window-buttons/shiny-tray-helper.js diff --git a/main.js b/main.js index c7efb2de7..1c49a51a4 100644 --- a/main.js +++ b/main.js @@ -221,6 +221,7 @@ async function createWindow() { nodeIntegration: true, webviewTag: true, enableRemoteModule: true, + contextIsolation: false, }, } @@ -293,7 +294,7 @@ async function createWindow() { app.getAppPath(), '/src/pages/shared/window-buttons/window-buttons.html' ), - { search: 'page=home/home' } + { search: 'page=home/home&trusted=1&script=shiny-tray-helper' } ) mainWindow.addBrowserView(view) diff --git a/src/icons_for_shiny_tray.js b/src/assets/icons_for_shiny_tray.js similarity index 100% rename from src/icons_for_shiny_tray.js rename to src/assets/icons_for_shiny_tray.js diff --git a/src/pages/home/home.html b/src/pages/home/home.html index b8067d34f..889f69d8d 100644 --- a/src/pages/home/home.html +++ b/src/pages/home/home.html @@ -1,49 +1,49 @@ - - - YouTube Music - - - - - - -
-
-
-
-
-
-
-
-
-
-
+ + + YouTube Music + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
-
-
- signal_wifi_off +
+ signal_wifi_off +
-
- - + + diff --git a/src/pages/home/home.js b/src/pages/home/home.js index 9ca23762d..8f81d843b 100644 --- a/src/pages/home/home.js +++ b/src/pages/home/home.js @@ -2,107 +2,11 @@ const { remote, ipcRenderer: ipc } = require('electron') const electronStore = require('electron-store') const store = new electronStore() const status = remote.getGlobal('sharedObj') -const icons = require('../../icons_for_shiny_tray') - -let icon_set = icons.bright - -const canvas = document.createElement('canvas') -canvas.height = 32 -canvas.width = 150 -const ctx = canvas.getContext('2d') - -let saved_title = '' -let elapsed = 0 -let textWidth = 0 -let rollInterval = null - -function render_tray() { - ctx.clearRect(0, 0, canvas.width, canvas.height) - ctx.font = '14px Arial' - if (store.get('settings-shiny-tray-dark', false)) { - ctx.fillStyle = 'white' - icon_set = icons.dark - } else { - ctx.fillStyle = 'black' - icon_set = icons.bright - } - if (saved_title != status.title) { - saved_title = status.title - elapsed = 0 - } - textWidth = ctx.measureText(saved_title + ' ').width - if (status.rollable && textWidth > 105) { - // 105 comes from 135 - 30 - - elapsed += 3 - ctx.fillText(saved_title + ' ' + saved_title, 30 - elapsed, 21) - ctx.clearRect(0, 0, 30, canvas.height) - ctx.clearRect(135, 0, canvas.width - 135, canvas.height) - if (elapsed > textWidth) elapsed = 0 - if (!rollInterval) { - rollInterval = setInterval(() => { - render_tray() - }, 200) - } - } else { - if (rollInterval) clearInterval(rollInterval) - rollInterval = null - ctx.fillText(cutstr(status.title, 14), 30, 21) - elapsed = 0 - } - - // console.log(arg) - ctx.drawImage(icon_set.icons, 8, 8, 16, 16) - if (status.paused) ctx.drawImage(icon_set.play, 135, 6, 20, 20) - else ctx.drawImage(icon_set.pause, 135, 6, 20, 20) - - ipc.send('updated-tray-image', canvas.toDataURL('image/png', 1)) -} - -ipc.on('update-status-bar', () => { - render_tray() -}) - -ipc.send('register-renderer') ipc.on('is-dev', (event, args) => { if (args) document.title = document.title + ' DEV' }) -function cutstr(str, len) { - let str_length = 0 - let str_len - let str_cut = String() - str_len = str.length - for (let i = 0; i < str_len; i++) { - const a = str.charAt(i) - str_length++ - if (escape(a).length > 4) { - str_length++ - } - str_cut = str_cut.concat(a) - if (str_length >= len) { - str_cut = str_cut.concat('...') - return str_cut - } - } - if (str_length < len) return str -} - -// TODO: Unused function? -function getStrLength(str) { - // For cut str - let realLength = 0, - len = str.length, - charCode = -1 - for (let i = 0; i < len; i++) { - charCode = str.charCodeAt(i) - if (charCode >= 0 && charCode <= 128) realLength += 1 - else realLength += 2 - } - return realLength -} - document.addEventListener('DOMContentLoaded', () => { let isOnline = navigator.onLine diff --git a/src/pages/shared/window-buttons/shiny-tray-helper.js b/src/pages/shared/window-buttons/shiny-tray-helper.js new file mode 100644 index 000000000..823626f0a --- /dev/null +++ b/src/pages/shared/window-buttons/shiny-tray-helper.js @@ -0,0 +1,92 @@ +const { remote, ipcRenderer: ipc } = require('electron') +const electronStore = require('electron-store') +const store = new electronStore() +const status = remote.getGlobal('sharedObj') +const icons = require('../../../assets/icons_for_shiny_tray') + +let icon_set = icons.bright + +const canvas = document.createElement('canvas') +canvas.height = 32 +canvas.width = 150 +const ctx = canvas.getContext('2d') + +let saved_title = '' +let elapsed = 0 +let textWidth = 0 +let rollInterval = null + +function render_tray() { + ctx.clearRect(0, 0, canvas.width, canvas.height) + ctx.font = '14px Arial' + if (store.get('settings-shiny-tray-dark', false)) { + ctx.fillStyle = 'white' + icon_set = icons.dark + } else { + ctx.fillStyle = 'black' + icon_set = icons.bright + } + if (saved_title != status.title) { + saved_title = status.title + elapsed = 0 + } + textWidth = ctx.measureText(saved_title + ' ').width + if (status.rollable && textWidth > 105) { + // 105 comes from 135 - 30 + + elapsed += 3 + ctx.fillText(saved_title + ' ' + saved_title, 30 - elapsed, 21) + ctx.clearRect(0, 0, 30, canvas.height) + ctx.clearRect(135, 0, canvas.width - 135, canvas.height) + if (elapsed > textWidth) elapsed = 0 + if (!rollInterval) { + rollInterval = setInterval(() => { + render_tray() + }, 200) + } + } else { + if (rollInterval) clearInterval(rollInterval) + rollInterval = null + ctx.fillText(cutstr(status.title, 14), 30, 21) + elapsed = 0 + } + + // console.log(arg) + ctx.drawImage(icon_set.icons, 8, 8, 16, 16) + if (status.paused) ctx.drawImage(icon_set.play, 135, 6, 20, 20) + else ctx.drawImage(icon_set.pause, 135, 6, 20, 20) + + ipc.send('updated-tray-image', canvas.toDataURL('image/png', 1)) +} + +ipc.on('update-status-bar', () => { + render_tray() +}) + +setTimeout(() => { + ipc.send('register-renderer') +}, 1000) + +ipc.on('is-dev', (event, args) => { + if (args) document.title = document.title + ' DEV' +}) + +function cutstr(str, len) { + let str_length = 0 + let str_len + let str_cut = String() + str_len = str.length + for (let i = 0; i < str_len; i++) { + const a = str.charAt(i) + str_length++ + if (escape(a).length > 4) { + str_length++ + } + str_cut = str_cut.concat(a) + if (str_length >= len) { + str_cut = str_cut.concat('...') + return str_cut + } + } + if (str_length < len) return str +} diff --git a/src/pages/shared/window-buttons/window-buttons.js b/src/pages/shared/window-buttons/window-buttons.js index 3632d2364..3cbd21170 100644 --- a/src/pages/shared/window-buttons/window-buttons.js +++ b/src/pages/shared/window-buttons/window-buttons.js @@ -82,6 +82,7 @@ function checkUrlParams() { let title = params.get('title') let hide = params.get('hide') let trusted = params.get('trusted') + let script = params.get('script') if (trusted) { webview.classList.add('hide') @@ -91,6 +92,16 @@ function checkUrlParams() { if (page) webview.src = `../../${page}.html` + if (script) { + script = script.split(',') + + script.forEach((src) => { + script_block = document.createElement('script') + script_block.src = `./${src}.js` + document.body.append(script_block) + }) + } + if (icon) { let elIcon = document.getElementById('icon') if (elIcon) elIcon.innerText = icon From 5b3a909913523f09b4b6c6ad674c4d030da660ef Mon Sep 17 00:00:00 2001 From: Paulo Date: Tue, 29 Jun 2021 10:10:53 -0300 Subject: [PATCH 119/489] Add volume support to MPRIS --- src/providers/mprisProvider.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/providers/mprisProvider.js b/src/providers/mprisProvider.js index 802da325c..80e336e84 100644 --- a/src/providers/mprisProvider.js +++ b/src/providers/mprisProvider.js @@ -36,6 +36,9 @@ class Mpris { setActivity(info) { if (this._isInitialized) { + // 50% is represented as 50 in info.player.volumePercent + // while mpris represents it as 0.50, so we need to convert it first + this.player.volume = info.player.volumePercent / 100 this.player.metadata = { 'mpris:trackid': this.player .objectPath('track/0') @@ -80,6 +83,16 @@ class Mpris { }) }) + this.player.on('volume', (args) => { + if (args === undefined) return + ipcMain.emit('media-command', { + command: 'media-volume-set', + // 50% is represented as 50 in info.player.volumePercent + // while mpris represents it as 0.50, so we need to convert it first + value: args * 100, + }) + }) + this.player.on('raise', () => { ipcMain.emit('show', null) }) From 9429a0d5bbb6240d0fc48bb0ed8cea590398475a Mon Sep 17 00:00:00 2001 From: Paulo Date: Tue, 29 Jun 2021 10:28:55 -0300 Subject: [PATCH 120/489] Fix setSeekbar() --- src/providers/infoPlayerProvider.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index 10e85e31c..13ca6736b 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -454,7 +454,7 @@ function setSeekbar(webContents, time) { webContents .executeJavaScript( ` - var slider = document.querySelectorAll('.bar-container .paper-slider')[2]; + var slider = document.querySelectorAll('.bar-container .tp-yt-paper-slider')[2]; var sliderKnob = document.querySelectorAll('#progress-bar')[0]; slider.click(); From 5ff732134f34275cb4826e983d929862f22f08ca Mon Sep 17 00:00:00 2001 From: Adler Luiz Date: Fri, 2 Jul 2021 12:06:06 -0300 Subject: [PATCH 121/489] :arrow_up: Updating electron to latest v11 (v11.4.9) --- package-lock.json | 50 ++++++++++++++++++++++++++--------------------- package.json | 4 ++-- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7db31d4d..ba967a115 100644 --- a/package-lock.json +++ b/package-lock.json @@ -113,9 +113,9 @@ } }, "@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "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", @@ -125,7 +125,7 @@ "global-tunnel-ng": "^2.7.1", "got": "^9.6.0", "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "dependencies": { @@ -149,6 +149,12 @@ "graceful-fs": "^4.1.6" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -774,9 +780,9 @@ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, "boolean": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", - "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.2.tgz", + "integrity": "sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw==", "dev": true, "optional": true }, @@ -1146,9 +1152,9 @@ } }, "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "optional": true, "requires": { @@ -1345,9 +1351,9 @@ "dev": true }, "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true, "optional": true }, @@ -1431,9 +1437,9 @@ } }, "electron": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.1.1.tgz", - "integrity": "sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA==", + "version": "11.4.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.4.9.tgz", + "integrity": "sha512-3TJG1vAnuR8p47mzorCW5l7uWCjdNUufIbZ+gKjm010dtHmhrO1zchP1a76vuT4BllK8q1iygFSkNnDlZ0i2pA==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -2167,9 +2173,9 @@ } }, "global-agent": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", - "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", + "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", "dev": true, "optional": true, "requires": { @@ -2205,9 +2211,9 @@ } }, "globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "dev": true, "optional": true, "requires": { diff --git a/package.json b/package.json index 90de5140f..5323dc547 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,12 @@ }, "devDependencies": { "@types/electron": "^1.6.10", - "electron": "^11.1.1", + "electron": "^11.4.9", "electron-builder": "^22.9.1", "electron-rebuild": "^2.3.4", "husky": "^4.3.7", - "prettier": "^2.2.1", "nodemon": "^2.0.7", + "prettier": "^2.2.1", "pretty-quick": "^2.0.2" }, "dependencies": { From 07a3330b7cd8030247d9ff4c512cfae9b5ba5ba3 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Thu, 8 Jul 2021 19:46:18 -0500 Subject: [PATCH 122/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20continue=20where?= =?UTF-8?q?=20you=20left=20off?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index 1c49a51a4..d3417ddf8 100644 --- a/main.js +++ b/main.js @@ -361,7 +361,6 @@ async function createWindow() { `) } initialized = true - settingsProvider.set('window-url', view.webContents.getURL()) view.webContents.insertCSS(` /* width */ ::-webkit-scrollbar { @@ -586,6 +585,35 @@ async function createWindow() { } } + /** + * Update the saved url if settings-continue-where-left-of is enabled + */ + if (settingsProvider.get('settings-continue-where-left-of')) { + view.webContents + .executeJavaScript( + ` + document.querySelector('.yt-uix-sessionlink').href; + ` + ) + .then((result) => { + if (result) { + const url = new URL(result) + // Hostname correction as the provided url is for youtube.com + url.hostname = 'music.youtube.com' + settingsProvider.set( + 'window-url', + url.toString() + ) + } else { + // No session link found so just default to the current url + settingsProvider.set( + 'window-url', + view.webContents.getURL() + ) + } + }) + } + writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) discordRPC.setActivity(getAll()) } From 3bdb3828a439ea39486ad8fcf0d6c4f1a4944e43 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Thu, 8 Jul 2021 19:51:00 -0500 Subject: [PATCH 123/489] Add catch condition --- main.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main.js b/main.js index d3417ddf8..80315a986 100644 --- a/main.js +++ b/main.js @@ -612,6 +612,13 @@ async function createWindow() { ) } }) + .catch(() => { + // JavaScript errored, assume no session link found and default to current url + settingsProvider.set( + 'window-url', + view.webContents.getURL() + ) + }) } writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) From b0d9a6ae877569d3c0224ccfc14df393b1123e7c Mon Sep 17 00:00:00 2001 From: Dmitry Chepurovskiy Date: Sat, 10 Jul 2021 18:38:47 +0300 Subject: [PATCH 124/489] Make electron-media-service optional dependency --- package-lock.json | 253 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 253 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2c664c436..5f4d5b8ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -379,6 +379,15 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", "dev": true }, + "@types/electron": { + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@types/electron/-/electron-1.6.10.tgz", + "integrity": "sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw==", + "dev": true, + "requires": { + "electron": "*" + } + }, "@types/fs-extra": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz", @@ -549,6 +558,16 @@ "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "app-builder-bin": { "version": "3.5.10", "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", @@ -746,6 +765,12 @@ "callsite": "1.0.0" } }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -830,6 +855,15 @@ "concat-map": "0.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "buffer": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", @@ -977,6 +1011,22 @@ "supports-color": "^7.1.0" } }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -1525,6 +1575,7 @@ "electron-media-service": { "version": "github:tidal-engineering/electron-media-service#4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f", "from": "github:tidal-engineering/electron-media-service", + "optional": true, "requires": { "bindings": "^1.5.0", "node-addon-api": "^3.0.2", @@ -1534,7 +1585,8 @@ "node-addon-api": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==", + "optional": true } } }, @@ -2017,6 +2069,15 @@ "minimatch": "^3.0.4" } }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -2083,6 +2144,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2179,6 +2247,15 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", @@ -2419,6 +2496,12 @@ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, "ignore-walk": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", @@ -2497,6 +2580,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", @@ -2525,6 +2617,12 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -2536,6 +2634,15 @@ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, "is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", @@ -2558,6 +2665,12 @@ "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -3320,6 +3433,56 @@ } } }, + "nodemon": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.12.tgz", + "integrity": "sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==", + "dev": true, + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "nopt": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", @@ -3354,6 +3517,12 @@ } } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", @@ -3736,6 +3905,12 @@ "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -3988,6 +4163,12 @@ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4094,6 +4275,15 @@ } } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -4766,6 +4956,35 @@ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -4829,6 +5048,32 @@ "is-typedarray": "^1.0.0" } }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -5033,6 +5278,12 @@ "string-width": "^4.0.0" } }, + "win-node-env": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/win-node-env/-/win-node-env-0.4.0.tgz", + "integrity": "sha512-bf4TV/NOBEazlHJW/bOns7u2JaHe3f5bz8BYanm/xuqJ405NG9OK3VAI1Y2WvHJsAo4GMU8EYTHSh59Q3UfHvA==", + "optional": true + }, "windows.media.playback": { "version": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", "from": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", diff --git a/package.json b/package.json index 8c636bdb6..20ee95a7f 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "electron-is-dev": "^1.2.0", "electron-localshortcut": "^3.2.1", "electron-log": "^4.3.1", - "electron-media-service": "github:tidal-engineering/electron-media-service", "electron-store": "^6.0.1", "electron-updater": "^4.3.5", "i18n": "^0.13.2", @@ -69,6 +68,7 @@ "@nodert-win10-rs4/windows.media": "^0.4.4", "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", "bufferutil": "^4.0.1", + "electron-media-service": "github:tidal-engineering/electron-media-service", "mpris-service": "^2.1.0", "utf-8-validate": "^5.0.2", "win-node-env": "^0.4.0", From e8d818156cf81e64e64daa23dc06c10286f7e592 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 11 Oct 2021 19:01:13 -0500 Subject: [PATCH 125/489] Fix position saving for main & lyrics window --- main.js | 42 ++++++++++++++++----------- src/utils/window.js | 70 +++++++++++++++++++++++++++++++++------------ 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/main.js b/main.js index 80315a986..4b50df7e5 100644 --- a/main.js +++ b/main.js @@ -317,17 +317,15 @@ async function createWindow() { mediaControl.createThumbar(mainWindow, infoPlayerProvider.getAllInfo()) + let position = settingsProvider.get('window-position') + if (position !== undefined) mainWindow.setPosition(position.x, position.y) + if (windowMaximized) setTimeout(() => { mainWindow.send('window-is-maximized', true) view.setBounds(calcYTViewSize(settingsProvider, mainWindow)) mainWindow.maximize() }, 700) - else { - let position = settingsProvider.get('window-position') - if (position !== undefined) - mainWindow.setPosition(position.x, position.y) - } mainWindow.on('closed', () => { view = null @@ -1870,19 +1868,29 @@ else { }) app.whenReady().then(async () => { - checkWindowPosition(settingsProvider.get('window-position')).then( - (visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('window-position', visiblePosition) - } - ) + checkWindowPosition( + settingsProvider.get('window-position'), + settingsProvider.get('window-size') + ).then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('window-position', visiblePosition) + }) - checkWindowPosition(settingsProvider.get('lyrics-position')).then( - (visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('lyrics-position', visiblePosition) - } - ) + checkWindowPosition(settingsProvider.get('lyrics-position'), { + width: 700, + height: 800, + }).then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('lyrics-position', visiblePosition) + }) + + checkWindowPosition( + settingsProvider.get('miniplayer-position'), + settingsProvider.get('settings-miniplayer-size') + ).then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('miniplayer-position', visiblePosition) + }) await createWindow() diff --git a/src/utils/window.js b/src/utils/window.js index 5d6134e35..d0bc3f041 100644 --- a/src/utils/window.js +++ b/src/utils/window.js @@ -4,30 +4,62 @@ function create() { // for create window } -function checkWindowPosition(windowPosition) { +function checkWindowPosition(windowPosition, windowSize) { return new Promise((resolve, reject) => { try { - let displays = screen.getAllDisplays() - let externalDisplay = displays.find((display) => { - return display.bounds.x !== 0 || display.bounds.y !== 0 + let nearestDisplay = screen.getDisplayMatching({ + x: windowPosition.x, + y: windowPosition.y, + width: windowSize.width, + height: windowSize.height, }) + let nearestDisplayBounds = nearestDisplay.bounds - if (externalDisplay === undefined) { - primaryDisplayPosition = displays[0].bounds - - if ( - windowPosition && - windowPosition.x > primaryDisplayPosition.width - ) { - var position = { - x: windowPosition.x - primaryDisplayPosition.width, - y: windowPosition.y, - } - resolve(position) - } + var position = { + x: windowPosition.x, + y: windowPosition.y, } - } catch (_) { - console.log('error -> checkWindowPosition') + + // The reason for + 64 in window sizes is because 1px inside nearest display is considered visible but not user friendly as it's quite well hidden and could prevent dragging + if ( + windowPosition && + windowSize && + windowPosition.x - (windowSize.width + 64) > + nearestDisplayBounds.x + ) { + position.x = windowPosition.x - nearestDisplayBounds.width + } + + if ( + windowPosition && + windowSize && + windowPosition.x + (windowSize.width + 64) < + nearestDisplayBounds.x + ) { + position.x = windowPosition.x + nearestDisplayBounds.width + } + + if ( + windowPosition && + windowSize && + windowPosition.y - (windowSize.height + 64) > + nearestDisplayBounds.y + ) { + position.y = windowPosition.y - nearestDisplayBounds.height + } + + if ( + windowPosition && + windowSize && + windowPosition.y + (windowSize.height + 64) < + nearestDisplayBounds.y + ) { + position.y = windowPosition.y + nearestDisplayBounds.height + } + + resolve(position) + } catch (err) { + console.log('error -> checkWindowPosition', err) reject(false) } }) From b40241e8df13bea414b28392b8bde399253ce556 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 11 Oct 2021 19:08:17 -0500 Subject: [PATCH 126/489] Move to yarn lock --- package-lock.json | 5194 --------------------------------------------- 1 file changed, 5194 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index ba967a115..000000000 --- a/package-lock.json +++ /dev/null @@ -1,5194 +0,0 @@ -{ - "name": "youtube-music-desktop-app", - "version": "1.13.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "7zip-bin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", - "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", - "dev": true - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/runtime": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", - "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@develar/schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", - "dev": true, - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "@electron/get": { - "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", - "fs-extra": "^8.1.0", - "global-agent": "^2.0.2", - "global-tunnel-ng": "^2.7.1", - "got": "^9.6.0", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "@jimp/bmp": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz", - "integrity": "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "bmp-js": "^0.1.0", - "core-js": "^3.4.1" - } - }, - "@jimp/core": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz", - "integrity": "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "core-js": "^3.4.1", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - } - }, - "@jimp/custom": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz", - "integrity": "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/gif": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz", - "integrity": "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "omggif": "^1.0.9" - } - }, - "@jimp/jpeg": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz", - "integrity": "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "jpeg-js": "^0.3.4" - } - }, - "@jimp/plugin-resize": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz", - "integrity": "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/png": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz", - "integrity": "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "pngjs": "^3.3.3" - } - }, - "@jimp/tiff": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz", - "integrity": "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==", - "requires": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1", - "utif": "^2.0.1" - } - }, - "@jimp/types": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz", - "integrity": "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.9.8", - "@jimp/gif": "^0.9.8", - "@jimp/jpeg": "^0.9.8", - "@jimp/png": "^0.9.8", - "@jimp/tiff": "^0.9.8", - "core-js": "^3.4.1", - "timm": "^1.6.1" - } - }, - "@jimp/utils": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz", - "integrity": "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==", - "requires": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1" - } - }, - "@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "@nodert-win10-rs4/windows.foundation": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz", - "integrity": "sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg==", - "optional": true, - "requires": { - "nan": "^2.14.2" - }, - "dependencies": { - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - } - } - }, - "@nodert-win10-rs4/windows.media": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz", - "integrity": "sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA==", - "optional": true, - "requires": { - "nan": "^2.14.2" - }, - "dependencies": { - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - } - } - }, - "@nodert-win10-rs4/windows.storage.streams": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz", - "integrity": "sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q==", - "optional": true, - "requires": { - "nan": "^2.14.2" - }, - "dependencies": { - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - } - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/debug": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", - "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", - "dev": true - }, - "@types/fs-extra": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.5.tgz", - "integrity": "sha512-wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", - "dev": true - }, - "@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.158", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz", - "integrity": "sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "12.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz", - "integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz", - "integrity": "sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q==" - }, - "@types/yargs": { - "version": "15.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz", - "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "abstract-socket": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/abstract-socket/-/abstract-socket-2.1.1.tgz", - "integrity": "sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA==", - "optional": true, - "requires": { - "bindings": "^1.2.1", - "nan": "^2.12.1" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "ace-builds": { - "version": "1.4.12", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz", - "integrity": "sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg==" - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - }, - "app-builder-bin": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", - "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", - "dev": true - }, - "app-builder-lib": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.9.1.tgz", - "integrity": "sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A==", - "dev": true, - "requires": { - "7zip-bin": "~5.0.3", - "@develar/schema-utils": "~2.6.5", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chromium-pickle-js": "^0.2.0", - "debug": "^4.3.0", - "ejs": "^3.1.5", - "electron-publish": "22.9.1", - "fs-extra": "^9.0.1", - "hosted-git-info": "^3.0.5", - "is-ci": "^2.0.0", - "isbinaryfile": "^4.0.6", - "js-yaml": "^3.14.0", - "lazy-val": "^1.0.4", - "minimatch": "^3.0.4", - "normalize-package-data": "^2.5.0", - "read-config-file": "6.0.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.2", - "temp-file": "^3.3.7" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5" - } - }, - "bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" - }, - "boolean": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.2.tgz", - "integrity": "sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw==", - "dev": true, - "optional": true - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bufferutil": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz", - "integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==", - "optional": true, - "requires": { - "node-gyp-build": "~3.7.0" - } - }, - "builder-util": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.9.1.tgz", - "integrity": "sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw==", - "dev": true, - "requires": { - "7zip-bin": "~5.0.3", - "@types/debug": "^4.1.5", - "@types/fs-extra": "^9.0.1", - "app-builder-bin": "3.5.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "debug": "^4.3.0", - "fs-extra": "^9.0.1", - "is-ci": "^2.0.0", - "js-yaml": "^3.14.0", - "source-map-support": "^0.5.19", - "stat-mode": "^1.0.0", - "temp-file": "^3.3.7" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, - "builder-util-runtime": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", - "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", - "requires": { - "debug": "^4.1.1", - "sax": "^1.2.4" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chromium-pickle-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "conf": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz", - "integrity": "sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==", - "requires": { - "ajv": "^6.12.2", - "atomically": "^1.3.1", - "debounce-fn": "^4.0.0", - "dot-prop": "^5.2.0", - "env-paths": "^2.2.0", - "json-schema-typed": "^7.0.3", - "make-dir": "^3.1.0", - "onetime": "^5.1.0", - "pkg-up": "^3.1.0", - "semver": "^7.3.2" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "optional": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "dbus-next": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz", - "integrity": "sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA==", - "optional": true, - "requires": { - "abstract-socket": "^2.0.0", - "event-stream": "3.3.4", - "hexy": "^0.2.10", - "jsbi": "^2.0.5", - "long": "^4.0.0", - "put": "0.0.6", - "safe-buffer": "^5.1.1", - "xml2js": "^0.4.17" - } - }, - "debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "requires": { - "mimic-fn": "^3.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "optional": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "optional": true - }, - "discord-rpc": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz", - "integrity": "sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg==", - "requires": { - "node-fetch": "^2.6.1", - "ws": "^7.3.1" - } - }, - "dmg-builder": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.9.1.tgz", - "integrity": "sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ==", - "dev": true, - "requires": { - "app-builder-lib": "22.9.1", - "builder-util": "22.9.1", - "fs-extra": "^9.0.1", - "iconv-lite": "^0.6.2", - "js-yaml": "^3.14.0", - "sanitize-filename": "^1.6.3" - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "optional": true - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ejs": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", - "dev": true, - "requires": { - "jake": "^10.6.1" - } - }, - "electron": { - "version": "11.4.9", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.4.9.tgz", - "integrity": "sha512-3TJG1vAnuR8p47mzorCW5l7uWCjdNUufIbZ+gKjm010dtHmhrO1zchP1a76vuT4BllK8q1iygFSkNnDlZ0i2pA==", - "dev": true, - "requires": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", - "extract-zip": "^1.0.3" - } - }, - "electron-builder": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.9.1.tgz", - "integrity": "sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA==", - "dev": true, - "requires": { - "@types/yargs": "^15.0.5", - "app-builder-lib": "22.9.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "dmg-builder": "22.9.1", - "fs-extra": "^9.0.1", - "is-ci": "^2.0.0", - "lazy-val": "^1.0.4", - "read-config-file": "6.0.0", - "sanitize-filename": "^1.6.3", - "update-notifier": "^4.1.1", - "yargs": "^16.0.3" - } - }, - "electron-canvas-to-buffer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz", - "integrity": "sha1-2pLNc0LkezsN3io655l45aB2FoE=" - }, - "electron-clipboard-watcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz", - "integrity": "sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y=" - }, - "electron-fetch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz", - "integrity": "sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw==", - "requires": { - "encoding": "^0.1.13" - } - }, - "electron-google-analytics": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz", - "integrity": "sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ==", - "requires": { - "electron-fetch": "^1.7.1", - "uuid": "^8.3.0" - } - }, - "electron-is-accelerator": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", - "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" - }, - "electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" - }, - "electron-localshortcut": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", - "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", - "requires": { - "debug": "^4.0.1", - "electron-is-accelerator": "^0.1.0", - "keyboardevent-from-electron-accelerator": "^2.0.0", - "keyboardevents-areequal": "^0.2.1" - } - }, - "electron-log": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz", - "integrity": "sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w==" - }, - "electron-publish": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.9.1.tgz", - "integrity": "sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w==", - "dev": true, - "requires": { - "@types/fs-extra": "^9.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "22.9.1", - "builder-util-runtime": "8.7.2", - "chalk": "^4.1.0", - "fs-extra": "^9.0.1", - "lazy-val": "^1.0.4", - "mime": "^2.4.6" - }, - "dependencies": { - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true - } - } - }, - "electron-rebuild": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz", - "integrity": "sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA==", - "dev": true, - "requires": { - "@malept/cross-spawn-promise": "^1.1.0", - "colors": "^1.3.3", - "debug": "^4.1.1", - "detect-libc": "^1.0.3", - "fs-extra": "^9.0.1", - "got": "^11.7.0", - "lzma-native": "^6.0.1", - "node-abi": "^2.19.2", - "node-gyp": "^7.1.0", - "ora": "^5.1.0", - "tar": "^6.0.5", - "yargs": "^16.0.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", - "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^2.0.0" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", - "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "got": { - "version": "11.8.1", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.1.tgz", - "integrity": "sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, - "p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==", - "dev": true - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - } - } - }, - "electron-store": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz", - "integrity": "sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ==", - "requires": { - "conf": "^7.1.2", - "type-fest": "^0.16.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "electron-updater": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz", - "integrity": "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==", - "requires": { - "@types/semver": "^7.3.1", - "builder-util-runtime": "8.7.2", - "fs-extra": "^9.0.1", - "js-yaml": "^3.14.0", - "lazy-val": "^1.0.4", - "lodash.isequal": "^4.5.0", - "semver": "^7.3.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - } - }, - "engine.io-client": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", - "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "optional": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extract-zip": { - "version": "1.7.0", - "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", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "filelist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", - "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, - "requires": { - "semver-regex": "^3.1.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "optional": true - }, - "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "global-agent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", - "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", - "dev": true, - "optional": true, - "requires": { - "boolean": "^3.0.1", - "core-js": "^3.6.5", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - } - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "dev": true, - "requires": { - "ini": "^1.3.5" - } - }, - "global-tunnel-ng": { - "version": "2.7.1", - "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": { - "encodeurl": "^1.0.2", - "lodash": "^4.17.10", - "npm-conf": "^1.1.3", - "tunnel": "^0.0.6" - } - }, - "globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dev": true, - "optional": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "hexy": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", - "integrity": "sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==", - "optional": true - }, - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "1.0.0-beta.5.2", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", - "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "husky": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz", - "integrity": "sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - } - }, - "i18n": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz", - "integrity": "sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==", - "requires": { - "debug": "^4.1.1", - "make-plural": "^6.2.2", - "math-interval-parser": "^2.0.1", - "messageformat": "^2.3.0", - "mustache": "^4.0.1", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - } - } - }, - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "image-to-base64": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz", - "integrity": "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==", - "requires": { - "node-fetch": "^2.6.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "optional": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "dev": true, - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - }, - "js-base64": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz", - "integrity": "sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbi": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz", - "integrity": "sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ==", - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "keyboardevent-from-electron-accelerator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", - "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" - }, - "keyboardevents-areequal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", - "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "lazy-val": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", - "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==" - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", - "requires": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "optional": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lzma-native": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", - "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", - "dev": true, - "requires": { - "node-addon-api": "^1.6.0", - "node-pre-gyp": "^0.11.0", - "readable-stream": "^2.3.5", - "rimraf": "^2.7.1" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "make-plural": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", - "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==" - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "optional": true - }, - "markdown": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", - "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", - "requires": { - "nopt": "~2.1.1" - } - }, - "matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "optional": true, - "requires": { - "escape-string-regexp": "^4.0.0" - } - }, - "math-interval-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", - "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "messageformat": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", - "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", - "requires": { - "make-plural": "^4.3.0", - "messageformat-formatters": "^2.0.1", - "messageformat-parser": "^4.1.2" - }, - "dependencies": { - "make-plural": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", - "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "messageformat-formatters": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", - "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==" - }, - "messageformat-parser": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", - "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mpris-service": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.0.tgz", - "integrity": "sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg==", - "optional": true, - "requires": { - "dbus-next": "^0.5.1", - "deep-equal": "^1.0.1", - "source-map-support": "^0.5.11" - } - }, - "mri": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", - "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - } - }, - "mustache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", - "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true - }, - "needle": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", - "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", - "dev": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "node-gyp-build": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", - "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==", - "optional": true - }, - "node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "dev": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "node-vibrant": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz", - "integrity": "sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg==", - "requires": { - "@jimp/custom": "^0.9.3", - "@jimp/plugin-resize": "^0.9.3", - "@jimp/types": "^0.9.3", - "@types/lodash": "^4.14.53", - "@types/node": "^10.11.7", - "lodash": "^4.17.4", - "url": "^0.11.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" - } - } - }, - "nopt": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", - "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, - "optional": true, - "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "optional": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", - "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", - "requires": { - "mimic-fn": "^2.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true - }, - "ora": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", - "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.4.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - }, - "parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" - }, - "parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "requires": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "optional": true, - "requires": { - "through": "~2.3" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true - }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "requires": { - "pngjs": "^3.0.0" - } - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - }, - "postscribe": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz", - "integrity": "sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU=", - "requires": { - "prescribe": ">=1.1.2" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prescribe": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz", - "integrity": "sha1-jTEiRF8/uvTExYF+pSehf8gTnuY=" - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "pretty-quick": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", - "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, - "optional": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "put": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/put/-/put-0.0.6.tgz", - "integrity": "sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM=", - "optional": true - }, - "qrcode-generator": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", - "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-config-file": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz", - "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==", - "dev": true, - "requires": { - "dotenv": "^8.2.0", - "dotenv-expand": "^5.1.0", - "js-yaml": "^3.13.1", - "json5": "^2.1.2", - "lazy-val": "^1.0.4" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "optional": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "register-scheme": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/register-scheme/-/register-scheme-0.0.2.tgz", - "integrity": "sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw==", - "requires": { - "bindings": "^1.3.0", - "node-addon-api": "^1.3.0" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-alpn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", - "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "roarr": { - "version": "2.15.4", - "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": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "scribble": { - "version": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", - "from": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43" - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", - "dev": true - }, - "serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "optional": true, - "requires": { - "type-fest": "^0.13.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - } - } - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "optional": true, - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stat-mode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", - "dev": true - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "optional": true, - "requires": { - "duplexer": "~0.1.1" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "requires": { - "debug": "^4.1.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "temp-file": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", - "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", - "dev": true, - "requires": { - "async-exit-hook": "^2.0.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "optional": true - }, - "timm": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", - "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" - }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dev": true, - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "optional": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "utf-8-validate": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz", - "integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==", - "optional": true, - "requires": { - "node-gyp-build": "~3.7.0" - } - }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", - "dev": true - }, - "utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "requires": { - "pako": "^1.0.5" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "windows.media.playback": { - "version": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34", - "from": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git", - "optional": true, - "requires": { - "nan": "^2.14.2" - }, - "dependencies": { - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - } - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "requires": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} From e4a8c901d2e9d7f824ecfc6ce3c75b4a27779d82 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 11 Oct 2021 19:09:33 -0500 Subject: [PATCH 127/489] Update lock file --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 84d544870..b22e527aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1380,10 +1380,10 @@ electron@*: "@types/node" "^12.0.12" extract-zip "^1.0.3" -electron@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.1.tgz#188f036f8282798398dca9513e9bb3b10213e3aa" - integrity sha512-tlbex3xosJgfileN6BAQRotevPRXB/wQIq48QeQ08tUJJrXwE72c8smsM/hbHx5eDgnbfJ2G3a60PmRjHU2NhA== +electron@^11.4.9: + version "11.5.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.5.0.tgz#f1650543b9d8f2047d3807755bdb120153ed210f" + integrity sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From f1db649b9ec412429a988e827859ea8d0de61384 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sat, 16 Oct 2021 15:27:09 +0100 Subject: [PATCH 128/489] =?UTF-8?q?=E2=9C=A8=20Enables=20Surround=20Sound/?= =?UTF-8?q?Speaker=20Fill.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enables Experimental support for multiple audio channels such as 5.1 audio. Fixes: #814 This options enables a Chromium Flag which enables support for surround sound. Although with YouTube Music this will only enable Speaker Fill for them. --- .gitignore | 26 +++++++++++++++------- STORE_VARIABLES.md | 1 + main.js | 4 ++++ src/locales/en.json | 3 ++- src/locales/scaffold.json | 1 + src/pages/settings/settings.html | 18 +++++++++++++++ src/pages/settings/settings.js | 38 ++++++++++++++++++++------------ src/utils/defaultSettings.js | 2 ++ 8 files changed, 70 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index da7f830b4..ace1cfdfc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,22 @@ -node_modules -.idea -dist -.DS_Store +# distribution Folders +dist/ + +# Library & Library Manger files +node_modules/ + +.yarn/ yarn-error.log -.yarn -# package-lock.json +package-lock.json + +# IDE folders +.idea/ +.vs/ +.vscode/ + +# Other Files +.cache/ + +.DS_Store /youtube-music-desktop-app-*.tgz -/.cache -assets/custom-theme.css app-update.yml dev-app-update.yml diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index c8bac5d0a..2dbf58652 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -36,6 +36,7 @@ | `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | | `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | | `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | +| `settings-surround-sound` | Boolean | `true` or `false` | `false` | Enable Chromium Flag "try-supported-channel-layouts" for 5.1 surround sound/Speaker Fill ## Window | Key | Type | Values | Default | Description | diff --git a/main.js b/main.js index 4b50df7e5..e5df64275 100644 --- a/main.js +++ b/main.js @@ -107,6 +107,10 @@ if (!app.isDefaultProtocolClient('ytmd', process.execPath)) { app.setAsDefaultProtocolClient('ytmd', process.execPath) } +if (settingsProvider.get('settings-surround-sound')) { + app.commandLine.appendSwitch('try-supported-channel-layouts', '1') +} + app.commandLine.appendSwitch('disable-http-cache') createCustomAppDir() diff --git a/src/locales/en.json b/src/locales/en.json index fee18c894..72cd03401 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -68,6 +68,8 @@ "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Show on taskbar", "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", "LABEL_SETTINGS_TAB_PLAYBACK": "Playback", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", + "LABEL_SETTINGS_TAB_PLAYBACK_SURROUND_SOUND": "Surround Sound/Speaker Fill", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Read clipboard for youtube links", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", @@ -75,7 +77,6 @@ "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Press any key", "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media keys only control app volume", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Enable Genius Lyrics", "LABEL_SETTINGS": "Settings", "LABEL_SHUTDOWN": "Shutdown", diff --git a/src/locales/scaffold.json b/src/locales/scaffold.json index 17fa1622d..2e51c3ad1 100644 --- a/src/locales/scaffold.json +++ b/src/locales/scaffold.json @@ -66,6 +66,7 @@ "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Show on taskbar", "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", "LABEL_SETTINGS_TAB_PLAYBACK": "Playback", + "LABEL_SETTINGS_TAB_PLAYBACK_SURROUND_SOUND": "Surround Sound/Speaker Fill", "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Read clipboard for youtube links", "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index e5f4c2f2a..2c54e80b5 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -539,6 +539,24 @@
+ + +
+ +
+
diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index f3b7ac353..d1d0ba303 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -195,6 +195,8 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-clipboard-always-ask-read', 'click', null) initElement('settings-tray-icon', 'click', showRelaunchButton) initElement('settings-pause-on-suspend', 'click', null) + initElement('settings-surround-sound', 'click', showRelaunchButton) + mInit() document.getElementById('content').classList.remove('hide') @@ -270,8 +272,9 @@ if (!isMac()) { } if (!isWindows()) { - const windowsSpecificNodes = - document.getElementsByClassName('windows-specific') + const windowsSpecificNodes = document.getElementsByClassName( + 'windows-specific' + ) for (let i = 0; i < windowsSpecificNodes.length; i++) windowsSpecificNodes.item(i).classList.add('hide') } @@ -279,8 +282,9 @@ if (!isWindows()) { if (isWindows()) { const os = require('os') if (!os.release().startsWith('10.')) { - const windows10SpecificNodes = - document.getElementsByClassName('windows10-specific') + const windows10SpecificNodes = document.getElementsByClassName( + 'windows10-specific' + ) for (let i = 0; i < windows10SpecificNodes.length; i++) windows10SpecificNodes.item(i).classList.add('hide') } @@ -364,8 +368,9 @@ function loadSettings() { 'settings-skip-track-shorter-than' ) if (settingsSkipTrackShorterThan) { - document.getElementById('range-skip-track-shorter-than').value = - settingsSkipTrackShorterThan + document.getElementById( + 'range-skip-track-shorter-than' + ).value = settingsSkipTrackShorterThan document.getElementById( 'range-skip-track-shorter-than-value' ).innerText = @@ -376,8 +381,9 @@ function loadSettings() { document.getElementById('app-version').innerText = remote.app.getVersion() - document.getElementById('label-settings-companion-server-token').innerText = - settingsProvider.get('settings-companion-server-token') + document.getElementById( + 'label-settings-companion-server-token' + ).innerText = settingsProvider.get('settings-companion-server-token') // Disable unsupported platforms which may get an API later if (!['darwin', 'win32'].includes(process.platform)) { @@ -413,7 +419,7 @@ function replaceAcceleratorText(text) { if (text.indexOf('CmdOrCtrl') !== -1) if (isMac()) text = text.replace('CmdOrCtrl', 'Cmd') else text = text.replace('CmdOrCtrl', 'Ctrl') - + if (text.indexOf('Meta') !== -1 && isWindows()) text = text.replace('Meta', 'Windows') @@ -480,7 +486,7 @@ document keyBindings = '' if (e.metaKey) keyBindings += 'Meta+' - + if (e.ctrlKey) keyBindings += 'CmdOrCtrl+' if (e.altKey) keyBindings += 'Alt+' @@ -488,8 +494,9 @@ document if (e.shiftKey) keyBindings += 'Shift+' keyBindings += validateKey(e) - document.querySelector('#modalEditAcceleratorKeys').innerText = - replaceAcceleratorText(keyBindings) + document.querySelector( + '#modalEditAcceleratorKeys' + ).innerText = replaceAcceleratorText(keyBindings) } }) @@ -520,8 +527,11 @@ function loadCustomKeys() { settingsAccelerators['media-track-dislike'] ) - document.querySelector('#settings-accelerators_media-volume-up').innerText = - replaceAcceleratorText(settingsAccelerators['media-volume-up']) + document.querySelector( + '#settings-accelerators_media-volume-up' + ).innerText = replaceAcceleratorText( + settingsAccelerators['media-volume-up'] + ) document.querySelector( '#settings-accelerators_media-volume-down' ).innerText = replaceAcceleratorText( diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 3e004d052..87df50f8e 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -118,3 +118,5 @@ settingsProvider.setInitialValue( ) settingsProvider.setInitialValue('settings-pause-on-suspend', false) + +settingsProvider.setInitialValue('settings-surround-sound', false) From aed1335b04e589c4a7b1c22dcde9e7f856e0fd63 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sat, 16 Oct 2021 17:19:46 +0100 Subject: [PATCH 129/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20WebNowPlaying=20Vo?= =?UTF-8?q?lume=20always=20going=20down.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a bit of a short and simple fix for this issue. We fail to actually set the value exactl within YTM but this fixes the core issue of the volume not changing when selecting up/down. --- src/providers/rainmeterNowPlaying.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/providers/rainmeterNowPlaying.js b/src/providers/rainmeterNowPlaying.js index f37ca1e01..d893c69b5 100644 --- a/src/providers/rainmeterNowPlaying.js +++ b/src/providers/rainmeterNowPlaying.js @@ -68,6 +68,9 @@ function setActivity(data) { if (data.player.likeStatus === 'LIKE') ws.send(`RATING:5`) else if (data.player.likeStatus === 'DISLIKE') ws.send(`RATING:1`) else ws.send(`RATING:0`) + + // Store the Volume Percent for the Volume changing + volumePercent = data.player.volumePercent } function doAction(data) { @@ -120,6 +123,8 @@ function doAction(data) { break case 'SetVolume': + // Technically this doesn't actually set the Volume to WebNowPlaying's Standards + // as we're letting the up/down volume set decide rather than a specific value. if (actionParams[0] >= volumePercent) ipcMain.emit('media-command', { command: 'media-volume-up', From 8f18d21a2c5e6d6340269ea6613e673c1fec09cc Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Mon, 18 Oct 2021 22:40:48 +0100 Subject: [PATCH 130/489] =?UTF-8?q?=E2=9C=A8=20Add=20Disable=20Analytics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an option to Disable Analytics within YouTube Music Desktop Adds: #238 --- STORE_VARIABLES.md | 2 +- main.js | 17 +++++++++----- src/locales/en.json | 1 + src/locales/scaffold.json | 1 + src/pages/settings/settings.html | 21 ++++++++++++++++++ src/pages/settings/settings.js | 38 ++++++++++++++++++++------------ src/utils/defaultSettings.js | 2 ++ 7 files changed, 62 insertions(+), 20 deletions(-) diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md index c8bac5d0a..0e26645a2 100644 --- a/STORE_VARIABLES.md +++ b/STORE_VARIABLES.md @@ -18,6 +18,7 @@ | `settings-continue-where-left-of` | Boolean | `true` or `false` | `false` | When you close and open the app, will return where you stopped | | `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | | `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | +| `settings-disable-analytics` | Boolean | `true` or `false` | `false` | Disables the Analytics which the Application sends to Google Analytics | | `settings-discord-rich-presence` | Boolean | `true` or `false` | `false` | Integration with Discord Rich Presence | | `settings-enable-double-tapping-show-hide` | Boolean | `true` or `false` | `true` | Enable or disable double-tapping to show/hide main window | | `settings-enable-player-bgcolor` | Boolean | `true` or `false` | `false` | Enable or disable setting the background of the player to the color of the cover art | @@ -36,7 +37,6 @@ | `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | | `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | | `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | - ## Window | Key | Type | Values | Default | Description | | ------------------------------------- | ------- | ---------------------------- | ---------------------------- | --------------------------------------------- | diff --git a/main.js b/main.js index 4b50df7e5..358785e8a 100644 --- a/main.js +++ b/main.js @@ -2182,16 +2182,23 @@ powerMonitor.on('suspend', () => { } }) +if (!settingsProvider.get('settings-disable-analytics')) { + const analytics = require('./src/providers/analyticsProvider') + analytics.setEvent( + 'main', + 'start', + 'v' + app.getVersion(), + app.getVersion() + ) + analytics.setEvent('main', 'os', process.platform, process.platform) + analytics.setScreen('main') +} + // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and require them here. const mediaControl = require('./src/providers/mediaProvider') const tray = require('./src/providers/trayProvider') const updater = require('./src/providers/updateProvider') -const analytics = require('./src/providers/analyticsProvider') const { getTrackInfo } = require('./src/providers/infoPlayerProvider') const { ipcRenderer } = require('electron/renderer') //const {UpdaterSignal} = require('electron-updater'); - -analytics.setEvent('main', 'start', 'v' + app.getVersion(), app.getVersion()) -analytics.setEvent('main', 'os', process.platform, process.platform) -analytics.setScreen('main') diff --git a/src/locales/en.json b/src/locales/en.json index fee18c894..9983647c6 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -28,6 +28,7 @@ "LABEL_SETTINGS_RELAUNCH": "Apply and restart", "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", "LABEL_SETTINGS_TAB_ABOUT": "About", + "LABEL_SETTINGS_TAB_ABOUT_DISABLE_ANALYTICS": "Disable Application Analytics", "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", diff --git a/src/locales/scaffold.json b/src/locales/scaffold.json index 17fa1622d..716ce72b3 100644 --- a/src/locales/scaffold.json +++ b/src/locales/scaffold.json @@ -27,6 +27,7 @@ "LABEL_SETTINGS_RELAUNCH": "Apply and restart", "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", "LABEL_SETTINGS_TAB_ABOUT": "About", + "LABEL_SETTINGS_TAB_ABOUT_DISABLE_ANALYTICS": "Disable Application Analytics", "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index e5f4c2f2a..ae2d508e7 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -1388,6 +1388,27 @@

+
+ + + + autorenew + + +
+ +
+
diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index f3b7ac353..df350e9fe 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -195,6 +195,8 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-clipboard-always-ask-read', 'click', null) initElement('settings-tray-icon', 'click', showRelaunchButton) initElement('settings-pause-on-suspend', 'click', null) + + initElement('settings-disable-analytics', 'click', showRelaunchButton) mInit() document.getElementById('content').classList.remove('hide') @@ -270,8 +272,9 @@ if (!isMac()) { } if (!isWindows()) { - const windowsSpecificNodes = - document.getElementsByClassName('windows-specific') + const windowsSpecificNodes = document.getElementsByClassName( + 'windows-specific' + ) for (let i = 0; i < windowsSpecificNodes.length; i++) windowsSpecificNodes.item(i).classList.add('hide') } @@ -279,8 +282,9 @@ if (!isWindows()) { if (isWindows()) { const os = require('os') if (!os.release().startsWith('10.')) { - const windows10SpecificNodes = - document.getElementsByClassName('windows10-specific') + const windows10SpecificNodes = document.getElementsByClassName( + 'windows10-specific' + ) for (let i = 0; i < windows10SpecificNodes.length; i++) windows10SpecificNodes.item(i).classList.add('hide') } @@ -364,8 +368,9 @@ function loadSettings() { 'settings-skip-track-shorter-than' ) if (settingsSkipTrackShorterThan) { - document.getElementById('range-skip-track-shorter-than').value = - settingsSkipTrackShorterThan + document.getElementById( + 'range-skip-track-shorter-than' + ).value = settingsSkipTrackShorterThan document.getElementById( 'range-skip-track-shorter-than-value' ).innerText = @@ -376,8 +381,9 @@ function loadSettings() { document.getElementById('app-version').innerText = remote.app.getVersion() - document.getElementById('label-settings-companion-server-token').innerText = - settingsProvider.get('settings-companion-server-token') + document.getElementById( + 'label-settings-companion-server-token' + ).innerText = settingsProvider.get('settings-companion-server-token') // Disable unsupported platforms which may get an API later if (!['darwin', 'win32'].includes(process.platform)) { @@ -413,7 +419,7 @@ function replaceAcceleratorText(text) { if (text.indexOf('CmdOrCtrl') !== -1) if (isMac()) text = text.replace('CmdOrCtrl', 'Cmd') else text = text.replace('CmdOrCtrl', 'Ctrl') - + if (text.indexOf('Meta') !== -1 && isWindows()) text = text.replace('Meta', 'Windows') @@ -480,7 +486,7 @@ document keyBindings = '' if (e.metaKey) keyBindings += 'Meta+' - + if (e.ctrlKey) keyBindings += 'CmdOrCtrl+' if (e.altKey) keyBindings += 'Alt+' @@ -488,8 +494,9 @@ document if (e.shiftKey) keyBindings += 'Shift+' keyBindings += validateKey(e) - document.querySelector('#modalEditAcceleratorKeys').innerText = - replaceAcceleratorText(keyBindings) + document.querySelector( + '#modalEditAcceleratorKeys' + ).innerText = replaceAcceleratorText(keyBindings) } }) @@ -520,8 +527,11 @@ function loadCustomKeys() { settingsAccelerators['media-track-dislike'] ) - document.querySelector('#settings-accelerators_media-volume-up').innerText = - replaceAcceleratorText(settingsAccelerators['media-volume-up']) + document.querySelector( + '#settings-accelerators_media-volume-up' + ).innerText = replaceAcceleratorText( + settingsAccelerators['media-volume-up'] + ) document.querySelector( '#settings-accelerators_media-volume-down' ).innerText = replaceAcceleratorText( diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 3e004d052..876daad99 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -118,3 +118,5 @@ settingsProvider.setInitialValue( ) settingsProvider.setInitialValue('settings-pause-on-suspend', false) + +settingsProvider.setInitialValue('settings-disable-analytics', false) From e7f57ae95aec89f0a14703c5dd604590d4551f90 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Mon, 18 Oct 2021 23:20:05 +0100 Subject: [PATCH 131/489] =?UTF-8?q?=F0=9F=92=84=20Add=20missing=20"Reload"?= =?UTF-8?q?=20icon=20for=20Surround=20Sound?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/settings/settings.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 2c54e80b5..4f94cf791 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -544,6 +544,12 @@ + + autorenew +
From 7b80a32aa318d6b637623f84e7445f047f1a358d Mon Sep 17 00:00:00 2001 From: NovusTheory <3434404+NovusTheory@users.noreply.github.com> Date: Wed, 3 Nov 2021 21:40:55 -0500 Subject: [PATCH 132/489] =?UTF-8?q?=F0=9F=93=9D=20Swap=20to=20yarn=20in=20?= =?UTF-8?q?readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b151c286..256bf2a4f 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,9 @@ cd ytmdesktop ##### And: ```sh # Install dependencies -npm install +yarn install # Run the app -npm start +yarn start ``` **Note:** If you're using Linux Bash for Windows, [see this guide][more] or use `node` from the command prompt. From 2ca25e1cd18a08e86551dd0d4c740c096e0e2b7c Mon Sep 17 00:00:00 2001 From: Dmitry Chepurovskiy Date: Fri, 5 Nov 2021 22:59:19 +0300 Subject: [PATCH 133/489] Fix yarn.lock after merge --- yarn.lock | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0cd3ee3f0..c6b0deadc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1321,6 +1321,7 @@ electron-log@^4.3.1: "electron-media-service@github:tidal-engineering/electron-media-service": version "0.2.6" resolved "https://codeload.github.com/tidal-engineering/electron-media-service/tar.gz/4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f" + integrity sha512-OL2p3epr4wvbxwcSemgzZgV9trvlmTZSdqOZlBxkPiIGr6TflGWP7iH3CH2OTl6fplwV18orvOdEpA+iV8OYSA== dependencies: bindings "^1.5.0" node-addon-api "^3.0.2" @@ -2720,9 +2721,9 @@ node-addon-api@^1.3.0, node-addon-api@^1.6.0: integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== node-addon-api@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239" - integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw== + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== node-fetch@^2.6.0: version "2.6.0" From 95796f1e6100364c99ad7a0c68092f0ebe9b43bd Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Wed, 10 Nov 2021 16:01:01 -0800 Subject: [PATCH 134/489] :bug: Fix reload logic for mac --- main.js | 16 ++++++++++++++-- src/providers/templateProvider.js | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index 4b50df7e5..075303ce4 100644 --- a/main.js +++ b/main.js @@ -336,6 +336,11 @@ async function createWindow() { mediaControl.createThumbar(mainWindow, infoPlayerProvider.getAllInfo()) }) + mainWindow.on('reload', () => { + view.webContents.forcefullyCrashRenderer() + view.webContents.reload() + }) + view.webContents.on('new-window', (event, url) => { event.preventDefault() shell.openExternal(url) @@ -906,9 +911,16 @@ async function createWindow() { }) if ( - !settingsProvider.get('settings-windows10-media-service-show-info') || - !settingsProvider.get('settings-windows10-media-service') + (isWindows() && + (!settingsProvider.get( + 'settings-windows10-media-service-show-info' + ) || + !settingsProvider.get('settings-windows10-media-service'))) || + isMac() || + isLinux() ) { + let settingsAccelerator = settingsProvider.get('settings-accelerators') + globalShortcut.register('MediaPlayPause', () => { checkDoubleTapPlayPause() }) diff --git a/src/providers/templateProvider.js b/src/providers/templateProvider.js index a933622ab..598527f8f 100644 --- a/src/providers/templateProvider.js +++ b/src/providers/templateProvider.js @@ -55,6 +55,7 @@ let statusBarMenu = [ label: 'Reload', accelerator: 'CmdOrCtrl+R', click(item, focusedWindow) { + focusedWindow.emit('reload') if (focusedWindow) focusedWindow.reload() }, }, From 983395f6029ae37d81d59e8f20dcbea858f53940 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Wed, 10 Nov 2021 17:29:48 -0800 Subject: [PATCH 135/489] :sparkles: Allow refresh audio output devices in settings --- main.js | 14 ++++- src/pages/settings/settings.html | 17 +++++- src/pages/settings/settings.js | 98 +++++++++++++++++++++++++------- src/utils/injectControls.js | 8 ++- 4 files changed, 108 insertions(+), 29 deletions(-) diff --git a/main.js b/main.js index 075303ce4..84cdbe9ed 100644 --- a/main.js +++ b/main.js @@ -63,7 +63,8 @@ let mainWindow, updateTrackInfoTimeout, activityLikeStatus, windowsMediaProvider, - audioDevices + audioDevices, + settingsRendererIPC let isFirstTime = false @@ -2150,6 +2151,12 @@ if (settingsProvider.get('settings-discord-rich-presence')) discordRPC.start() ipcMain.on('set-audio-output-list', (_, data) => { updateTrayAudioOutputs(data) + try { + // FIXME: For some reason neither the emit/send doesn't work + if (settingsRendererIPC) { + settingsRendererIPC.send('update-audio-output-devices', data) + } + } catch (e) {} audioDevices = data }) @@ -2185,7 +2192,10 @@ ipcMain.on('retrieve-sleep-timer', (e) => { e.sender.send('sleep-timer-info', sleepTimer.mode, sleepTimer.counter) }) -ipcMain.handle('get-audio-output-list', () => audioDevices) +ipcMain.handle('get-audio-output-list', (e) => { + settingsRendererIPC = e.sender + return audioDevices +}) powerMonitor.on('suspend', () => { if (settingsProvider.get('settings-pause-on-suspend')) { diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index e5f4c2f2a..be6cb4e0c 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -365,9 +365,20 @@ > - +
+ + +
diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index f3b7ac353..3f984b4a7 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -43,9 +43,12 @@ let settingsAccelerators = settingsProvider.get('settings-accelerators') let typeAcceleratorSelected, keyBindings -ipc.invoke('get-audio-output-list').then((devices) => { +// FIXME: for some reason, this ipc update_audio_devices_callback could not be triggered +// So we put a button there to allow positive refresh +function update_audio_devices_callback(devices) { devices = JSON.parse(devices) - + while (audioOutputSelect.firstChild) + audioOutputSelect.removeChild(audioOutputSelect.firstChild) if (devices.length) { devices.forEach((deviceInfo) => { let option = document.createElement('option') @@ -57,10 +60,6 @@ ipc.invoke('get-audio-output-list').then((devices) => { audioOutputSelect.appendChild(option) }) - initElement('settings-app-audio-output', 'change', () => { - ipc.send('change-audio-output', audioOutputSelect.value) - }) - const defaultOuput = devices.find( (audio) => audio.deviceId === 'default' ) @@ -75,9 +74,50 @@ ipc.invoke('get-audio-output-list').then((devices) => { audioOutputSelect.appendChild(option) audioOutputSelect.disabled = true } - mInit() -}) +} + +ipc.on('update-audio-output-devices', update_audio_devices_callback) + +get_audio_output_list = () => + ipc.invoke('get-audio-output-list').then((devices) => { + devices = JSON.parse(devices) + while (audioOutputSelect.firstChild) + audioOutputSelect.removeChild(audioOutputSelect.firstChild) + if (devices.length) { + devices.forEach((deviceInfo) => { + let option = document.createElement('option') + option.text = + deviceInfo.label != null + ? deviceInfo.label + : `speaker ${audioOutputSelect.length + 1}` + option.value = deviceInfo.label + audioOutputSelect.appendChild(option) + }) + + initElement('settings-app-audio-output', 'change', () => { + ipc.send('change-audio-output', audioOutputSelect.value) + }) + + const defaultOuput = devices.find( + (audio) => audio.deviceId === 'default' + ) + if (!audioOutputSelect.value.length) + audioOutputSelect.value = defaultOuput.label + } else { + let option = document.createElement('option') + option.text = __.trans( + 'LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND' + ) + option.value = '0' + audioOutputSelect.appendChild(option) + audioOutputSelect.disabled = true + } + + mInit() + }) + +get_audio_output_list() function checkCompanionStatus() { if (settingsProvider.get('settings-companion-server')) @@ -270,8 +310,9 @@ if (!isMac()) { } if (!isWindows()) { - const windowsSpecificNodes = - document.getElementsByClassName('windows-specific') + const windowsSpecificNodes = document.getElementsByClassName( + 'windows-specific' + ) for (let i = 0; i < windowsSpecificNodes.length; i++) windowsSpecificNodes.item(i).classList.add('hide') } @@ -279,8 +320,9 @@ if (!isWindows()) { if (isWindows()) { const os = require('os') if (!os.release().startsWith('10.')) { - const windows10SpecificNodes = - document.getElementsByClassName('windows10-specific') + const windows10SpecificNodes = document.getElementsByClassName( + 'windows10-specific' + ) for (let i = 0; i < windows10SpecificNodes.length; i++) windows10SpecificNodes.item(i).classList.add('hide') } @@ -364,8 +406,9 @@ function loadSettings() { 'settings-skip-track-shorter-than' ) if (settingsSkipTrackShorterThan) { - document.getElementById('range-skip-track-shorter-than').value = - settingsSkipTrackShorterThan + document.getElementById( + 'range-skip-track-shorter-than' + ).value = settingsSkipTrackShorterThan document.getElementById( 'range-skip-track-shorter-than-value' ).innerText = @@ -376,8 +419,9 @@ function loadSettings() { document.getElementById('app-version').innerText = remote.app.getVersion() - document.getElementById('label-settings-companion-server-token').innerText = - settingsProvider.get('settings-companion-server-token') + document.getElementById( + 'label-settings-companion-server-token' + ).innerText = settingsProvider.get('settings-companion-server-token') // Disable unsupported platforms which may get an API later if (!['darwin', 'win32'].includes(process.platform)) { @@ -413,7 +457,7 @@ function replaceAcceleratorText(text) { if (text.indexOf('CmdOrCtrl') !== -1) if (isMac()) text = text.replace('CmdOrCtrl', 'Cmd') else text = text.replace('CmdOrCtrl', 'Ctrl') - + if (text.indexOf('Meta') !== -1 && isWindows()) text = text.replace('Meta', 'Windows') @@ -480,7 +524,7 @@ document keyBindings = '' if (e.metaKey) keyBindings += 'Meta+' - + if (e.ctrlKey) keyBindings += 'CmdOrCtrl+' if (e.altKey) keyBindings += 'Alt+' @@ -488,8 +532,9 @@ document if (e.shiftKey) keyBindings += 'Shift+' keyBindings += validateKey(e) - document.querySelector('#modalEditAcceleratorKeys').innerText = - replaceAcceleratorText(keyBindings) + document.querySelector( + '#modalEditAcceleratorKeys' + ).innerText = replaceAcceleratorText(keyBindings) } }) @@ -520,8 +565,11 @@ function loadCustomKeys() { settingsAccelerators['media-track-dislike'] ) - document.querySelector('#settings-accelerators_media-volume-up').innerText = - replaceAcceleratorText(settingsAccelerators['media-volume-up']) + document.querySelector( + '#settings-accelerators_media-volume-up' + ).innerText = replaceAcceleratorText( + settingsAccelerators['media-volume-up'] + ) document.querySelector( '#settings-accelerators_media-volume-down' ).innerText = replaceAcceleratorText( @@ -596,6 +644,12 @@ document resetAcceleratorsText() }) +document + .querySelector('#btn-reload-audio-devices') + .addEventListener('click', () => { + get_audio_output_list() + }) + document.querySelector('#saveAccelerator').addEventListener('click', () => { ipc.send('change-accelerator', { type: typeAcceleratorSelected, diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 7024affd4..35a664eb0 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -854,7 +854,8 @@ function createBottomPlayerBarContent() { document.getElementById( 'sleep-timer-minutes' - ).onkeydown = document.getElementById( // use the same function when change/keydown + ).onkeydown = document.getElementById( + // use the same function when change/keydown 'sleep-timer-minutes' ).onchange = (e) => { var radio = document.getElementById('sleep-timer-customized') @@ -864,7 +865,8 @@ function createBottomPlayerBarContent() { document.getElementById( 'sleep-timer-songs' - ).onkeydown = document.getElementById('sleep-timer-songs').onchange = ( // use the same function when change/keydown + ).onkeydown = document.getElementById('sleep-timer-songs').onchange = ( + // use the same function when change/keydown e ) => { var radio = document.getElementById('sleep-timer-customized-c') @@ -1041,3 +1043,5 @@ function loadAudioOutputList() { ) }) } + +navigator.mediaDevices.ondevicechange = loadAudioOutputList From 47c0fb6aa6f2d8b89c8a5814625418f2dc071c7a Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Fri, 19 Nov 2021 15:05:36 +0000 Subject: [PATCH 136/489] =?UTF-8?q?=F0=9F=94=A8=20Fix=20iframe=20(trusted)?= =?UTF-8?q?=20on=20"non-nice"=20UI=20being=20Crushed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed an issue where the Settings UI (and other Trusted Windows) will be Crushed due to not setting the height of it when on non-nice UI. ![image](https://i.imgur.com/k7zlUEm.png) --- src/pages/shared/window-buttons/window-buttons.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/shared/window-buttons/window-buttons.js b/src/pages/shared/window-buttons/window-buttons.js index 3cbd21170..4ff8762ff 100644 --- a/src/pages/shared/window-buttons/window-buttons.js +++ b/src/pages/shared/window-buttons/window-buttons.js @@ -16,6 +16,7 @@ if (store.get('titlebar-type', 'nice') !== 'nice') { .removeChild(document.getElementById('nice-titlebar').firstChild) document.getElementById('webview').style.height = '100vh' + document.getElementById('iframe').style.height = '100vh' } else { if (isMac()) { winElement.remove() From 9ff1c160d2e005d51e2efb9a3492e6338f2ea32d Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Fri, 26 Nov 2021 15:59:18 +0000 Subject: [PATCH 137/489] =?UTF-8?q?=F0=9F=A9=B9=20Nightly=20Patch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patches to prepare for a Nightly release. - Adds a Temporary addition of a User agent feature to test a bit to confirm if it's working nicely for people. This also allows for people to manually update it, however it will not be supported if you updated the Useragent as there are a number of issues with changing it. This is currently set to a Firefox 94 UA. - Added a few fixes to the checkWindowPosition to prevent warnings and errors occuring from it. - Fixed warning when checkWindowsPosition would provide no window size as a user hasn't opened up a window. - Added a Check for Windows for the Power button as this needs fixing for Wandows. - Added a fix for the Volume sliding around a bunch when using Keybinds/API to control. --- main.js | 35 ++++++++++++--------- src/providers/infoPlayerProvider.js | 6 ++-- src/utils/defaultSettings.js | 10 ++++++ src/utils/injectControls.js | 48 ++++++++++++++++------------- src/utils/window.js | 5 +++ 5 files changed, 65 insertions(+), 39 deletions(-) diff --git a/main.js b/main.js index ab47fcbf3..84b4668bc 100644 --- a/main.js +++ b/main.js @@ -271,8 +271,7 @@ async function createWindow() { {}, details.requestHeaders || {}, { - 'User-Agent': - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0', + 'User-Agent': settingsProvider.get('user-agent'), } ) callback({ requestHeaders: newRequestHeaders }) @@ -1888,26 +1887,32 @@ else { checkWindowPosition( settingsProvider.get('window-position'), settingsProvider.get('window-size') - ).then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('window-position', visiblePosition) - }) + ) + .then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('window-position', visiblePosition) + }) + .catch(() => {}) checkWindowPosition(settingsProvider.get('lyrics-position'), { width: 700, height: 800, - }).then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('lyrics-position', visiblePosition) }) + .then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('lyrics-position', visiblePosition) + }) + .catch(() => {}) - checkWindowPosition( - settingsProvider.get('miniplayer-position'), - settingsProvider.get('settings-miniplayer-size') - ).then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('miniplayer-position', visiblePosition) + checkWindowPosition(settingsProvider.get('miniplayer-position'), { + width: settingsProvider.get('settings-miniplayer-size'), + height: settingsProvider.get('settings-miniplayer-size'), }) + .then((visiblePosition) => { + console.log(visiblePosition) + settingsProvider.set('miniplayer-position', visiblePosition) + }) + .catch(() => {}) await createWindow() diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js index 13ca6736b..6f5654c1b 100644 --- a/src/providers/infoPlayerProvider.js +++ b/src/providers/infoPlayerProvider.js @@ -437,13 +437,13 @@ function isAdvertisement(webContents) { .catch((_) => console.log('error isAdvertisement')) } -function setVolume(webContents, time) { +function setVolume(webContents, vol) { webContents .executeJavaScript( ` var slider = document.querySelector('#volume-slider'); - slider.value = ${time}; - document.querySelector('.video-stream').volume = ${time / 100} + slider.value = ${vol}; + slider.dispatchEvent(new Event("change")); ` ) .then() diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index b3c7b83db..4f6fd4f21 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -123,3 +123,13 @@ settingsProvider.setInitialValue('settings-disable-analytics', false) settingsProvider.setInitialValue('settings-surround-sound', false) +// Please note that this is a setting which is not displayed to the user, but will be used in the application. +settingsProvider.setInitialValue( + 'user-agent', + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0' +) + +// Update the User agent in the future via the Application side. +// if (settingsProvider.get('user-agent') === 'previous-useragent') { +// settingsProvider.setInitialValue('user-agent', 'Updated Useragent'); +// } diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js index 35a664eb0..8f5331cdb 100644 --- a/src/utils/injectControls.js +++ b/src/utils/injectControls.js @@ -14,6 +14,10 @@ const settingsOnDidChange = (key, cb) => { ipcRenderer.send('SETTINGS_SUBSCRIBE', key) } +const isWindows = () => { + return process.platform === 'win32' +} + window.addEventListener('load', () => { createContextMenu() createPlayerColorRules() @@ -62,9 +66,9 @@ function createContextMenu() { -webkit-transition: opacity .2s ease-in-out; transition: opacity .2s ease-in-out; - + padding: 0 !important; - + border: 1px solid rgba(255, 255, 255, .08) !important; border-radius: 2px !important; @@ -72,7 +76,7 @@ function createContextMenu() { width: 144px; } - + #ytmd-menu a { color: #AAA; display: inline-block; @@ -160,7 +164,7 @@ function createContextMenu() { background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ overflow: hidden } - + /* Modal Content */ .ytmd-modal-content { background: #232323; @@ -189,7 +193,7 @@ function createContextMenu() { font-size: 28px; font-weight: bold; } - + .ytmd-modal-close:hover, .ytmd-modal-close:focus { color: #000; @@ -370,22 +374,24 @@ function createTopRightContent() { const right_content = document.getElementById('right-content') //SHUTDOWN - const elementShutdown = document.createElement('i') - elementShutdown.id = 'ytmd_shutdown' - elementShutdown.title = translate('LABEL_SHUTDOWN') - elementShutdown.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons' - ) - elementShutdown.innerText = 'power_settings_new' + if (!isWindows()) { + const elementShutdown = document.createElement('i') + elementShutdown.id = 'ytmd_shutdown' + elementShutdown.title = translate('LABEL_SHUTDOWN') + elementShutdown.classList.add( + 'material-icons', + 'pointer', + 'shine', + 'ytmd-icons' + ) + elementShutdown.innerText = 'power_settings_new' - elementShutdown.addEventListener('click', function () { - ipcRenderer.send('closed') - }) + elementShutdown.addEventListener('click', function () { + ipcRenderer.send('closed') + }) - right_content.prepend(elementShutdown) + right_content.prepend(elementShutdown) + } // SETTINGS const elementSettings = document.createElement('i') @@ -516,7 +522,7 @@ function createPlayerColorRules() { background: var(--ytm-album-color-muted); } - body[accent-enabled] #progress-bar.ytmusic-player-bar[focused], + body[accent-enabled] #progress-bar.ytmusic-player-bar[focused], body[accent-enabled] ytmusic-player-bar:hover #progress-bar.ytmusic-player-bar{ --paper-slider-knob-color: white; } @@ -766,7 +772,7 @@ function createBottomPlayerBarContent() {

${translate( 'SLEEPTIMER' )}

-
${translate('SLEEP_BY_TIME')} +
${translate('SLEEP_BY_TIME')}
diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js index 8a69a8248..d0b2c49d2 100644 --- a/src/pages/settings/settings.js +++ b/src/pages/settings/settings.js @@ -220,6 +220,7 @@ document.addEventListener('DOMContentLoaded', () => { initElement('settings-miniplayer-show-task', 'click', null) initElement('settings-miniplayer-always-show-controls', 'click', null) initElement('settings-miniplayer-paint-controls', 'click', null) + initElement('settings-miniplayer-stream-config', 'click', null) initElement('settings-enable-taskbar-progressbar', 'click', () => { ipc.send('refresh-progress') }) diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js index 4f6fd4f21..b9660574e 100644 --- a/src/utils/defaultSettings.js +++ b/src/utils/defaultSettings.js @@ -23,6 +23,8 @@ settingsProvider.setInitialValue('settings-miniplayer-show-task', false) // hide settingsProvider.setInitialValue('settings-miniplayer-always-top', false) // show on top always +settingsProvider.setInitialValue('settings-miniplayer-stream-config', false) // use base miniplayer + settingsProvider.setInitialValue('settings-lyrics-provider', '1') // OVH settingsProvider.setInitialValue('settings-lyrics-always-top', false) // show on top always From 1c8bb6609ea00875524a38f115adb39456eb7364 Mon Sep 17 00:00:00 2001 From: Arcanus44 Date: Wed, 13 Apr 2022 14:16:42 -0400 Subject: [PATCH 143/489] Missed an await call --- main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.js b/main.js index 09e10700d..057a678e8 100644 --- a/main.js +++ b/main.js @@ -1327,14 +1327,14 @@ async function createWindow() { } if (!settingsProvider.get('settings-miniplayer-stream-config')) { - miniplayer.loadFile( + await miniplayer.loadFile( path.join( app.getAppPath(), '/src/pages/miniplayer/miniplayer.html' ) ) } else { - miniplayer.loadFile( + await miniplayer.loadFile( path.join( app.getAppPath(), '/src/pages/miniplayer/streamPlayer.html' From e6dba3437802137de34998fb25e3a7d94fa8fcb2 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Mon, 18 Apr 2022 15:11:45 +0100 Subject: [PATCH 144/489] =?UTF-8?q?=F0=9F=8E=A8=20Clean=20up=20Stream=20Mi?= =?UTF-8?q?niplayer=20&=20Responsive.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 133 ++++++++++++++----------- src/pages/miniplayer/streamPlayer.css | 30 ++++-- src/pages/miniplayer/streamPlayer.html | 5 +- src/pages/settings/settings.html | 20 +++- 4 files changed, 114 insertions(+), 74 deletions(-) diff --git a/main.js b/main.js index 057a678e8..abb887e48 100644 --- a/main.js +++ b/main.js @@ -1272,72 +1272,68 @@ async function createWindow() { async function windowMiniplayer() { if (miniplayer) miniplayer.show() else { - if (settingsProvider.get('settings-miniplayer-stream-config')) { - miniplayer = new BrowserWindow({ - title: __.trans('LABEL_MINIPLAYER'), - icon: iconDefault, - modal: false, - frame: false, - center: false, - - width: 500, - height: 100, - resizable: false, - skipTaskbar: false, - - alwaysOnTop: settingsProvider.get( - 'settings-miniplayer-always-top' - ), - - backgroundColor: '#232323', - minWidth: 100, - minHeight: 100, - autoHideMenuBar: true, - webPreferences: { - nodeIntegration: true, - enableRemoteModule: true, - }, - }) - } else { - miniplayer = new BrowserWindow({ - title: __.trans('LABEL_MINIPLAYER'), - icon: iconDefault, - modal: false, - frame: false, - center: false, - - resizable: settingsProvider.get('settings-miniplayer-resizable'), - skipTaskbar: !settingsProvider.get('settings-miniplayer-show-task'), - width: settingsProvider.get('settings-miniplayer-size'), - height: settingsProvider.get('settings-miniplayer-size'), - - alwaysOnTop: settingsProvider.get( - 'settings-miniplayer-always-top' - ), - - backgroundColor: '#232323', - minWidth: 100, - minHeight: 100, - autoHideMenuBar: true, - webPreferences: { - nodeIntegration: true, - enableRemoteModule: true, - }, - }) + var miniplayerConfig = { + title: __.trans('LABEL_MINIPLAYER'), + icon: iconDefault, + modal: false, + frame: false, + center: false, + + resizable: settingsProvider.get( + 'settings-miniplayer-resizable' + ), + skipTaskbar: !settingsProvider.get( + 'settings-miniplayer-show-task' + ), + alwaysOnTop: settingsProvider.get( + 'settings-miniplayer-always-top' + ), + + backgroundColor: '#232323', + autoHideMenuBar: true, + webPreferences: { + nodeIntegration: true, + enableRemoteModule: true, + }, } - if (!settingsProvider.get('settings-miniplayer-stream-config')) { + if (settingsProvider.get('settings-miniplayer-stream-config')) { + var streamSize = settingsProvider.get( + 'settings-miniplayer-stream-size' + ) + if (streamSize) { + miniplayerConfig.width = streamSize.x + miniplayerConfig.height = streamSize.y + } else { + miniplayerConfig.width = 500 + miniplayerConfig.height = 100 + } + + miniplayerConfig.minWidth = 300 + miniplayerConfig.minHeight = 100 + + miniplayer = new BrowserWindow(miniplayerConfig) await miniplayer.loadFile( path.join( app.getAppPath(), - '/src/pages/miniplayer/miniplayer.html' + '/src/pages/miniplayer/streamPlayer.html' ) ) } else { + miniplayerConfig.width = settingsProvider.get( + 'settings-miniplayer-size' + ) + miniplayerConfig.height = settingsProvider.get( + 'settings-miniplayer-size' + ) + miniplayerConfig.minWidth = 100 + miniplayerConfig.minHeight = 100 + + miniplayer = new BrowserWindow(miniplayerConfig) await miniplayer.loadFile( path.join( app.getAppPath(), - '/src/pages/miniplayer/streamPlayer.html' + '/src/pages/miniplayer/miniplayer.html' ) ) } @@ -1363,14 +1359,37 @@ async function createWindow() { }) miniplayer.on('resize', (e) => { - if (!settingsProvider.get('settings-miniplayer-stream-config')) { + if ( + !settingsProvider.get('settings-miniplayer-stream-config') + ) { + // Square Miniplayer try { let size = Math.min(...miniplayer.getSize()) miniplayer.setSize(size, size) settingsProvider.set('settings-miniplayer-size', size) e.preventDefault() } catch (_) { - writeLog({ type: 'warn', data: 'error miniplayer resize' }) + writeLog({ + type: 'warn', + data: 'error miniplayer resize', + }) + } + } else { + // Resized + try { + let size = miniplayer.getSize() + settingsProvider.set( + 'settings-miniplayer-stream-size', + { + x: size[0], + y: size[1], + } + ) + } catch (_) { + writeLog({ + type: 'warn', + data: 'error miniplayer (stream) resize', + }) } } }) diff --git a/src/pages/miniplayer/streamPlayer.css b/src/pages/miniplayer/streamPlayer.css index a8a7c706b..564959d37 100644 --- a/src/pages/miniplayer/streamPlayer.css +++ b/src/pages/miniplayer/streamPlayer.css @@ -1,3 +1,7 @@ +:root { + --text-margin-left: 12px; +} + body:hover .player-info, body:hover .cmd-btn, body.showinfo .player-info, @@ -6,12 +10,16 @@ body.showinfo .cmd-btn { } .player-info { - height: 78vmin; + height: 100vh; + margin-top: 10vh; } .cmd-bar { margin: 4px 4px 0; - height: 10vmin; + height: 100vh; + position: absolute; + top: 0; + width: calc(100% - 8px); } .cmd-btn { @@ -45,7 +53,7 @@ body.showinfo .cmd-btn { font-weight: bold; font-size: 22vmin; margin-top: -13vmin; - margin-left: 22.5vmax; + margin-left: calc(100vh + var(--text-margin-left)); } .album { @@ -55,7 +63,7 @@ body.showinfo .cmd-btn { white-space: nowrap; font-size: 18vmin; margin-top: -6vmin; - margin-left: 22.5vmax; + margin-left: calc(100vh + var(--text-margin-left)); } .author { @@ -65,21 +73,23 @@ body.showinfo .cmd-btn { white-space: nowrap; font-size: 16vmin; margin-top: -5vmin; - margin-left: 22.5vmax; + margin-left: calc(100vh + var(--text-margin-left)); } .duration { text-align: left; font-size: 14vmin; margin-top: -4vmin; - margin-left: 22.5vmax; + margin-left: calc(100vh + var(--text-margin-left)); } .progress-bar { margin-top: 15vmin; height: 5vmin; width: 80vmax; - margin-left: 20vmax; + margin-left: calc(100vh); + position: absolute; + bottom: 0; } #progress { @@ -103,11 +113,11 @@ body.showinfo .cmd-btn { #background { background-repeat: no-repeat; - background-size: 100px 100px; + background-size: 100vh 100vh; background-position: center; position: absolute; - width: 100vmin; - height: 100vmin; + width: 100vh; + height: 100vh; z-index: 0; } diff --git a/src/pages/miniplayer/streamPlayer.html b/src/pages/miniplayer/streamPlayer.html index 996d33e6c..5ec1a8318 100644 --- a/src/pages/miniplayer/streamPlayer.html +++ b/src/pages/miniplayer/streamPlayer.html @@ -50,11 +50,11 @@
Title
- +
Album
- +
Author
@@ -64,6 +64,7 @@ 0:00
+
thumb_down diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 846af58e8..e9c170f65 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -674,17 +674,27 @@ - + - info - Changes the layout of the miniplayer, optimizing screen space for easy use with live streaming. The following settings will be ignored: miniplayer size, resizability, and taskbar visibility. + info +
From 35b75db3c710f6a5e5c1c5095308e696f6a336f5 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sun, 15 May 2022 15:45:17 +0100 Subject: [PATCH 145/489] Use Win2019 instead of latest --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a10062dfd..bc1199ed3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-latest] + os: [macos-latest, ubuntu-latest, windows-2019] steps: - uses: actions/checkout@v2 From 2393f319aeda3136d527879c58fe2640f904be59 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sun, 15 May 2022 15:57:45 +0100 Subject: [PATCH 146/489] =?UTF-8?q?=E2=AC=86=20Update=20Version=20number?= =?UTF-8?q?=20for=20Nightly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3ebc8b4ec..dfb0247ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "youtube-music-desktop-app", - "version": "1.13.0", + "version": "1.14.2", "description": "YouTube Music Desktop App", "main": "main.js", "scripts": { From d6cd98e8eb0f465f53397ebb00be0d36426653f1 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Fri, 17 Jun 2022 13:02:24 +0100 Subject: [PATCH 147/489] Delete unused Locales Dir --- src/locales/ar.json | 67 ----------------------- src/locales/ca.json | 99 ---------------------------------- src/locales/cs.json | 99 ---------------------------------- src/locales/da.json | 99 ---------------------------------- src/locales/de.json | 90 ------------------------------- src/locales/en.json | 109 -------------------------------------- src/locales/es.json | 104 ------------------------------------ src/locales/fr.json | 65 ----------------------- src/locales/hu.json | 99 ---------------------------------- src/locales/id.json | 65 ----------------------- src/locales/it.json | 65 ----------------------- src/locales/ja.json | 105 ------------------------------------ src/locales/ko.json | 103 ----------------------------------- src/locales/nl.json | 106 ------------------------------------ src/locales/no.yml | 103 ----------------------------------- src/locales/pl.json | 99 ---------------------------------- src/locales/pt-BR | 100 ---------------------------------- src/locales/pt.json | 103 ----------------------------------- src/locales/ru.json | 65 ----------------------- src/locales/scaffold.json | 103 ----------------------------------- src/locales/th.json | 99 ---------------------------------- src/locales/tr.json | 65 ----------------------- src/locales/uk.json | 66 ----------------------- src/locales/zh.json | 106 ------------------------------------ 24 files changed, 2184 deletions(-) delete mode 100644 src/locales/ar.json delete mode 100644 src/locales/ca.json delete mode 100644 src/locales/cs.json delete mode 100644 src/locales/da.json delete mode 100644 src/locales/de.json delete mode 100644 src/locales/en.json delete mode 100644 src/locales/es.json delete mode 100644 src/locales/fr.json delete mode 100644 src/locales/hu.json delete mode 100644 src/locales/id.json delete mode 100644 src/locales/it.json delete mode 100644 src/locales/ja.json delete mode 100644 src/locales/ko.json delete mode 100644 src/locales/nl.json delete mode 100644 src/locales/no.yml delete mode 100644 src/locales/pl.json delete mode 100644 src/locales/pt-BR delete mode 100644 src/locales/pt.json delete mode 100644 src/locales/ru.json delete mode 100644 src/locales/scaffold.json delete mode 100644 src/locales/th.json delete mode 100644 src/locales/tr.json delete mode 100644 src/locales/uk.json delete mode 100644 src/locales/zh.json diff --git a/src/locales/ar.json b/src/locales/ar.json deleted file mode 100644 index f334b8a5c..000000000 --- a/src/locales/ar.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "اضغط مرتين لأعادة تعيين المكان", - "LABEL_CHANGELOG": "ما الجديد!", - "LABEL_EXIT": "إغلاق", - "LABEL_GUEST": "ضيف", - "LABEL_LOADING": "جاري التحميل...", - "LABEL_LYRICS": "كلمات", - "LABEL_LYRICS_NOT_FOUND": "الكلمات غير موجودة", - "LABEL_MINIPLAYER": "مشّغل مصغّر", - "LABEL_PLAY_MUSIC": "تشغيل موسيقى", - "LABEL_SETTINGS": "إعدادات", - "LABEL_SETTINGS_RELAUNCH": "تطبيق و إعادة التشغيل", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "إظهار/إخفاء البرنامج الأساسي", - "LABEL_SETTINGS_TAB_ABOUT": "عنّ", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "إظهار التقدم في شريط المهام", - "LABEL_SETTINGS_TAB_APPEARENCE": "المظهر", - "LABEL_SETTINGS_TAB_GENERAL": "عام", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "لا توجد اجهزة", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "خادم مرافق", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "إضغط هنا لمسح QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "إحمي المرافق بكلمة سر", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "أكمل حيثما أوقفت", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "شكل مخصص", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "إظهار تشغيلاتك على Discord", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ترك البرنامج في الخلفية عندما تُغلقه", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "تكبير الصفحة", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "إخراج الصوت", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "اللغة", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "مُقدّم الكلمات", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "شكل شريط العنوان", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "جميل", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "إيقاف شريط العنوان", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "نظام", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "تشغيل Easy Tray Control (لنظام تشغيل MacOS فقط)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "إظهار الإشعارات", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "بدأ الرنامج مصغّر", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "(Mac/Win) بدأ البرنامج عند التشغيل", - "LABEL_SETTINGS_TAB_INTEGRATION": "دمج", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "حفظ و إعطاء سلطة", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "مشغل مصغّر", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "دائمًا فوق", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "إظهار التحكمات دائمًا", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "تلوين التحكمات بألوان الألبومات", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "حجم المشغل المصفّر", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "ضخم", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "طبيعي", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "صغير", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "إقرأ الحافظة من أجل روابط اليوتيوب", - "LABEL_SETTINGS_TAB_SHORTCUTS": "إختصارات", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "عالمي", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "محلّي", - "MEDIA_CONTROL_MUTE_UNMUTE": "كتم الصوت/تشغيل الصوت", - "MEDIA_CONTROL_NEXT": "التالي", - "MEDIA_CONTROL_PAUSE": "إيقاف", - "MEDIA_CONTROL_PLAY": "تشغيل", - "MEDIA_CONTROL_PLAY_PAUSE": "تشغيل/إيقاف", - "MEDIA_CONTROL_PREVIOUS": "السابق", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "فتح/إغلاق الصف", - "MEDIA_CONTROL_REPEAT": "إعادة", - "MEDIA_CONTROL_SEARCH": "بحث", - "MEDIA_CONTROL_SHUFFLE": "خلط", - "MEDIA_CONTROL_THUMBS_DOWN": "عدم إعجاب", - "MEDIA_CONTROL_THUMBS_UP": "إعجاب" -} diff --git a/src/locales/ca.json b/src/locales/ca.json deleted file mode 100644 index 2687b8269..000000000 --- a/src/locales/ca.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Afegir a la biblioteca", - "ADD_TO_PLAYLIST": "Afegir a la llista de reproducció", - "ALWAYS_ASK_WHEN_READ_LINK": "Preguntar sempre al llegir l'enllaç", - "DOUBLE_CLICK_TO_RESET_POSITION": "Doble clic per a restablir la posició", - "LABEL_ALSO": "També", - "LABEL_AUDIO": "Àudio", - "LABEL_CANCEL": "Cancel·lar", - "LABEL_CHANGELOG": "Què hi ha nou?", - "LABEL_DISABLE": "Desactivar", - "LABEL_EXIT": "Sortir", - "LABEL_GUEST": "Convidat", - "LABEL_LOADING": "Carregant...", - "LABEL_LYRICS_NOT_FOUND": "No s'ha trobat la lletra d'aquesta cançó", - "LABEL_LYRICS": "Lletra", - "LABEL_MINIPLAYER": "Mini-reproductor", - "LABEL_NOTIFICATION_DISLIKED": "No t'ha agradat aquesta cançó", - "LABEL_NOTIFICATION_LIKED": "T'ha agradat aquesta cançó", - "LABEL_PLAY_MUSIC": "Reproduir música", - "LABEL_SAVE": "Desar", - "LABEL_SAVED": "Desat", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar la cançó quan la reproducció està en pausa", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar el temps de la cançó", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar el títol", - "LABEL_SETTINGS_DISCORD": "Configuració de Discord", - "LABEL_SETTINGS_RELAUNCH": "Aplicar i reiniciar", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar / Ocultar finestra principal", - "LABEL_SETTINGS_TAB_ABOUT": "Sobre", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar progrés de la cançó en la barra de tasques", - "LABEL_SETTINGS_TAB_APPEARENCE": "Aparença", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No s'han trobat dispositius", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Servidor acompanyant", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Fes clic ací i escaneja el codi QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Protegir acompanyant amb contrassenya", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar des d'on ho has deixat", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalitzat", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deshabilitar acceleració de Hardware", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Presència Rica a Discord", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Mantè YTMDesktop en segon pla quan es tanqui la finestra", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom de la pàgina", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Sortida d'àudio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Idioma", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Proveïdor de lletres", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estil de la barra de títol", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Agradable", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deshabilitar barra de títol", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Control de la safata senzill (Només per a Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificacions", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimitzat", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar a l'engegar l'equip (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "General", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informació de la cançó juntament a la barra de volum de Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar el servei de mitjans de Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integració", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integracions", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Desar y autoritzar", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Fixar en primer pla", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostrar controls sempre", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Pintar els controls del color de l'àlbum", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permetre el redimensionament", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar en la barra de tasques", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini-reproductor", - "LABEL_SETTINGS_TAB_PLAYBACK": "Repetir", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Llegir enllaços de Youtube des del portapapers", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Prem qualsevol tecla", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Dreceres", - "LABEL_SETTINGS": "Configuració", - "LYRICS": "Lletra", - "MEDIA_CONTROL_MINIPLAYER": "Obrir/Tancar el mini-reproductor", - "MEDIA_CONTROL_MUTE_UNMUTE": "Silenciar/Deixar de Silenciar", - "MEDIA_CONTROL_NEXT": "Següent", - "MEDIA_CONTROL_PAUSE": "Pausa", - "MEDIA_CONTROL_PLAY": "Reproduir", - "MEDIA_CONTROL_PLAY_PAUSE": "Reproduir o Pausar", - "MEDIA_CONTROL_PREVIOUS": "Anterior", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Obrir o tancar cua", - "MEDIA_CONTROL_REPEAT": "Repetir", - "MEDIA_CONTROL_SEARCH": "Cercar", - "MEDIA_CONTROL_SHUFFLE": "Mesclar", - "MEDIA_CONTROL_THUMBS_DOWN": "No m'agrada", - "MEDIA_CONTROL_THUMBS_UP": "M'agrada", - "MEDIA_CONTROL_VOLUME_DOWN": "Baixar el volum", - "MEDIA_CONTROL_VOLUME_UP": "Pujar el volum", - "MINIPLAYER": "Mini-reproductor", - "PREFIX_OPEN_CLOSE": "Obrir/Tancar", - "SHORTCUT_BUTTONS": "Accions de la IU", - "SHOW": "Mostrar", - "SKIP_TRACK_MARKED_DISLIKED": "Saltar las cançons marcades amb 'No m'agrada'", - "SKIP_TRACK_SHORTER_THAN": "Saltar las cançons més curtes de", - "TRAY_ICON": "Icona de la safata", - "WANT_PLAY_THIS_LINK": "¿Vols reproduir aquest enllaç?" -} diff --git a/src/locales/cs.json b/src/locales/cs.json deleted file mode 100644 index bc68ec09b..000000000 --- a/src/locales/cs.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Přidat do knihovny", - "ADD_TO_PLAYLIST": "Přidat do playlistu", - "ALWAYS_ASK_WHEN_READ_LINK": "Vždy se ptát při zjištění odkazu ve schránce", - "DOUBLE_CLICK_TO_RESET_POSITION": "Resetovat pozici dvojklikem", - "LABEL_ALSO": "Také", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Storno", - "LABEL_CHANGELOG": "Co je nového", - "LABEL_DISABLE": "Zakázat", - "LABEL_EXIT": "Ukončit", - "LABEL_GUEST": "Host", - "LABEL_LOADING": "Načítání...", - "LABEL_LYRICS_NOT_FOUND": "Text skladby nenalezen", - "LABEL_LYRICS": "Text skladby", - "LABEL_MINIPLAYER": "Minipřehrávač", - "LABEL_NOTIFICATION_DISLIKED": "Tato skladba se ti nelíbila", - "LABEL_NOTIFICATION_LIKED": "Tato skladba se ti líbila", - "LABEL_PLAY_MUSIC": "Přehrát hudbu", - "LABEL_SAVE": "Uložit", - "LABEL_SAVED": "Uložené", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Zobrazit umělce", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Zobrazit skladbu když je přehrávání pozastaveno", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Zobrazit čas skladby", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Zobrazit název", - "LABEL_SETTINGS_DISCORD": "Nastavení Discordu", - "LABEL_SETTINGS_RELAUNCH": "Použít a restartovat", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Zobrazit/Skrýt hlavní okno", - "LABEL_SETTINGS_TAB_ABOUT": "O aplikaci", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Zobrazit průběh skladby na liště", - "LABEL_SETTINGS_TAB_APPEARENCE": "Vzhled", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nenalezena žádná zařízení", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Klikni zde a načti QR kód", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Ochránit dálkové ovládání heslem", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Dálkové ovládání", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Pokračovat, kde jsi skončil", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Vlastní vzhled", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Zakázat hardwarovou akceleraci", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Nechat běžet YTMDesktop na pozadí po zavření okna", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Přiblížení", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Zvukové zařízení", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Jazyk", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Poskytovatel textů skladeb", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Pěkný", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Zakázat záhlaví", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Systemový", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Vzhled záhlaví okna", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Easy Tray Control (Pouze pro Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Zobrazit notifikace", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Spustit minimalizované", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Spustit při startu systému (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Obecné", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Zobrazit informace o skladbě vedle ukazatele hlasitosti Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Povolit Multimediální službu Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integrace", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrace", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Uložit a autorizovat", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Vždy nahoře", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Vždy zobrazit ovládání", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Vykreslit ovládání s barvou alba", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Povolit změnu velikosti", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Zobrazit na liště", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Minipřehrávač", - "LABEL_SETTINGS_TAB_PLAYBACK": "Přehrávání", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Hledat odkazy na YouTube ve schránce", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globální", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokální", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Stiskni libovolnou kombinaci kláves", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Klávesové zkratky", - "LABEL_SETTINGS": "Nastavení", - "LYRICS": "Slova skladby", - "MEDIA_CONTROL_MINIPLAYER": "Otevřít/Zavřít Minipřehrávač", - "MEDIA_CONTROL_MUTE_UNMUTE": "Ztlumit/Zrušit ztlumení", - "MEDIA_CONTROL_NEXT": "Další", - "MEDIA_CONTROL_PAUSE": "Pozastavit", - "MEDIA_CONTROL_PLAY_PAUSE": "Přehrát/Pozastavit", - "MEDIA_CONTROL_PLAY": "Přehrát", - "MEDIA_CONTROL_PREVIOUS": "Předchozí", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Otevřít/Zavřít frontu", - "MEDIA_CONTROL_REPEAT": "Opakovat", - "MEDIA_CONTROL_SEARCH": "Hledat", - "MEDIA_CONTROL_SHUFFLE": "Zamíchat", - "MEDIA_CONTROL_THUMBS_DOWN": "To se mi nelíbí", - "MEDIA_CONTROL_THUMBS_UP": "To se mi líbí", - "MEDIA_CONTROL_VOLUME_DOWN": "Snížit hlasitost", - "MEDIA_CONTROL_VOLUME_UP": "Zvýšit hlasitost", - "MINIPLAYER": "Minipřehrávač", - "PREFIX_OPEN_CLOSE": "Otevřít/Zavřít", - "SHORTCUT_BUTTONS": "UI Akce", - "SHOW": "Zobrazit", - "SKIP_TRACK_MARKED_DISLIKED": "Přeskakovat skladby označené jako 'To se mi nelíbí'", - "SKIP_TRACK_SHORTER_THAN": "Přeskakovat skldby kratší než", - "TRAY_ICON": "Ikona v oznamovací oblasti", - "WANT_PLAY_THIS_LINK": "Chceš přehrát tento odkaz?" -} diff --git a/src/locales/da.json b/src/locales/da.json deleted file mode 100644 index bde28d408..000000000 --- a/src/locales/da.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Tilføj til bibliotek", - "ADD_TO_PLAYLIST": "Tilføj til spilleliste", - "ALWAYS_ASK_WHEN_READ_LINK": "Spørg altid når link skal læses", - "DOUBLE_CLICK_TO_RESET_POSITION": "Dobbeltklik for at nulstille position", - "LABEL_ALSO": "Også", - "LABEL_AUDIO": "Lyd", - "LABEL_CANCEL": "Annuller", - "LABEL_CHANGELOG": "Hvad er nyt", - "LABEL_DISABLE": "Deaktiver", - "LABEL_EXIT": "Afslut", - "LABEL_GUEST": "Gæst", - "LABEL_LOADING": "Indlæser...", - "LABEL_LYRICS_NOT_FOUND": "Sangtekster er ikke funder", - "LABEL_LYRICS": "Sangtekster", - "LABEL_MINIPLAYER": "Miniafspiller", - "LABEL_NOTIFICATION_DISLIKED": "Du syntes ikke godt om denne sang", - "LABEL_NOTIFICATION_LIKED": "Du syntes godt om denne sang", - "LABEL_PLAY_MUSIC": "Spil musik", - "LABEL_SAVE": "Gem", - "LABEL_SAVED": "Gemt", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Vis kunstner", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Vis musik spor når afspilningen er sat på pause", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Vis tid på musik sporet", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Vis titel", - "LABEL_SETTINGS_DISCORD": "Discord indstillinger", - "LABEL_SETTINGS_RELAUNCH": "Anvend og genstart", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Vis/Skjul Hovedvindue", - "LABEL_SETTINGS_TAB_ABOUT": "Om appen", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Vis spor fremskridt på taskbar", - "LABEL_SETTINGS_TAB_APPEARENCE": "Udseende", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Ingen enhede fundet", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Klik her og scan QR kode", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Beskyt fjernbetjening med adgangskode", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Fjernbetjening", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Fortsæt hvor du slap", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Brugerdefineret tema", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deaktiver hardware acceleration", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Hold YTMDesktop kørende i baggrunden når vinduet lukker", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom på siden", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Lydudgang", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Sprog", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Sangtekst udbyder", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Pæn", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deaktiver titelbaren", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Titelbar stil", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Aktiver Nem Tray Kontrol (Kun til Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Vis notifikationer", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimeret", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start ved opstart (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "General", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Vis sangens infromation vedsiden af windows 10 lydstyrke bar", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Aktiver 10 media service", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integration", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrationer", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Gem and godkend", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Altid på toppen", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Altid vis kontrol", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Mal kontrolknapperne med album farver", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Tillad størelsesændring", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Vis på taskbar", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini afspiller", - "LABEL_SETTINGS_TAB_PLAYBACK": "Afspilning", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Læs udklipsholder for youtube links", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Tryk på en vilkårlig tast", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Genvej", - "LABEL_SETTINGS": "Indstillinger", - "LYRICS": "Sangtekster", - "MEDIA_CONTROL_MINIPLAYER": "Åben/Luk Miniafspiller", - "MEDIA_CONTROL_MUTE_UNMUTE": "Slå lyd til/fra", - "MEDIA_CONTROL_NEXT": "Næste", - "MEDIA_CONTROL_PAUSE": "Pause", - "MEDIA_CONTROL_PLAY_PAUSE": "Afspil/Pause", - "MEDIA_CONTROL_PLAY": "Afspil", - "MEDIA_CONTROL_PREVIOUS": "Tidligere", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Åben/Luk Kø", - "MEDIA_CONTROL_REPEAT": "Gentag", - "MEDIA_CONTROL_SEARCH": "Søg", - "MEDIA_CONTROL_SHUFFLE": "Bland", - "MEDIA_CONTROL_THUMBS_DOWN": "Synes godt om", - "MEDIA_CONTROL_THUMBS_UP": "Synes ikke godt om", - "MEDIA_CONTROL_VOLUME_DOWN": "Reducer lydstyrke", - "MEDIA_CONTROL_VOLUME_UP": "Øge lydstyrken", - "MINIPLAYER": "Miniafspiller", - "PREFIX_OPEN_CLOSE": "Åben/Luk", - "SHORTCUT_BUTTONS": "Handlingsgrænseflade", - "SHOW": "Vis", - "SKIP_TRACK_MARKED_DISLIKED": "Spring over sange markede som 'Syntes ikke godt om'", - "SKIP_TRACK_SHORTER_THAN": "Spring over sange der er kortere end", - "TRAY_ICON": "Tray ikon", - "WANT_PLAY_THIS_LINK": "Vil du spille dette link?" -} diff --git a/src/locales/de.json b/src/locales/de.json deleted file mode 100644 index 28a8569cd..000000000 --- a/src/locales/de.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Doppelklicken um Position zurückzusetzen", - "LABEL_ALSO": "oder", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Abbrechen", - "LABEL_CHANGELOG": "Was gibt's Neues", - "LABEL_DISABLE": "Deaktivieren", - "LABEL_EXIT": "Beenden", - "LABEL_GUEST": "Gast", - "LABEL_LOADING": "Wird geladen...", - "LABEL_LYRICS": "Songtext", - "LABEL_LYRICS_NOT_FOUND": "Songtext nicht gefunden", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_NOTIFICATION_DISLIKED": "Du hast das Lied nicht gemocht", - "LABEL_NOTIFICATION_LIKED": "Du mochtest das Lied", - "LABEL_PLAY_MUSIC": "Musik abspielen", - "LABEL_SAVE": "Speichern", - "LABEL_SAVED": "Gespeichert", - "LABEL_SETTINGS": "Einstellungen", - "LABEL_SETTINGS_DISCORD": "Discord Einstellungen", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Interpret anzeigen", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Titel anzeigen, wenn die Wiedergabe pausiert ist", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Lied Fortschritt anzeigen", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Titel anzeigen", - "LABEL_SETTINGS_RELAUNCH": "Speichern und Neustarten", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Hauptfenster anzeigen/verstecken", - "LABEL_SETTINGS_TAB_ABOUT": "Über", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Lied Fortschritt in der Taskleiste anzeigen", - "LABEL_SETTINGS_TAB_APPEARENCE": "Aussehen", - "LABEL_SETTINGS_TAB_GENERAL": "Allgemein", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Keine Geräte gefunden", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Fernsteuerung", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Klicke hier und scanne einen QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Fernsteuerung mit einem Passwort sichern", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Fortsetzen wo du aufgehört hast", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Benutzerdefiniertes Theme", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Hardwarebeschleunigung deaktivieren", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Anwendung beim Schließen im Hintergrund behalten", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Seitenzoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audioausgang", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Sprache", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Songtext Anbieter", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Titelleisten Stil", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Schön", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Titelleiste deaktivieren", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Einfache Infoleisten Steuerung (Nur Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Benachrichtigungen anzeigen", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Anwendung im Hintergrund starten", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Beim Hochfahren starten (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integration", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10-Mediendienst aktivieren", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Lied Informationen neben der Windows 10-Lautstärkeleiste anzeigen", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Speichern und Authorisieren", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Immer im Vordergrund", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Steuerung immer anzeigen", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Steuerung in der Farbe des Albums anzeigen", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Größenänderung zulassen", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Miniplayer Größe", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Groß", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Normal", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Klein", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "In der Taskleiste anzeigen", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Zwischenablage nach Youtube Links durchsuchen", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Tastenkürzel", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Drücke eine beliebige Taste", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Lautstärke Medientasten steuern nur App Lautstärke", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Lautstärkeregelung von '%' zu 'dB' ändern", - "MEDIA_CONTROL_MUTE_UNMUTE": "Ton aus / Ton an", - "MEDIA_CONTROL_NEXT": "Weiter", - "MEDIA_CONTROL_PAUSE": "Anhalten", - "MEDIA_CONTROL_PLAY": "Wiedergabe", - "MEDIA_CONTROL_PLAY_PAUSE": "Wiedergabe / Anhalten", - "MEDIA_CONTROL_PREVIOUS": "Zurück", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Wiedergabeliste öffnen / schließen", - "MEDIA_CONTROL_REPEAT": "Wiederholen", - "MEDIA_CONTROL_SEARCH": "Suchen", - "MEDIA_CONTROL_SHUFFLE": "Zufallswiedergabe", - "MEDIA_CONTROL_THUMBS_DOWN": "Daumen runter", - "MEDIA_CONTROL_THUMBS_UP": "Daumen hoch", - "MEDIA_CONTROL_VOLUME_DOWN": "Lautstärke verringern", - "MEDIA_CONTROL_VOLUME_UP": "Lautstärke erhöhen" -} diff --git a/src/locales/en.json b/src/locales/en.json deleted file mode 100644 index 455b05ffd..000000000 --- a/src/locales/en.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Add to library", - "ADD_TO_PLAYLIST": "Add to playlist", - "ALWAYS_ASK_WHEN_READ_LINK": "Always ask when read link", - "DOUBLE_CLICK_TO_RESET_POSITION": "Double Click to Reset Position", - "LABEL_ALSO": "Also", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Cancel", - "LABEL_CHANGELOG": "What's new", - "LABEL_DISABLE": "Disable", - "LABEL_EXIT": "Exit", - "LABEL_GUEST": "Guest", - "LABEL_LOADING": "Loading...", - "LABEL_LYRICS_NOT_FOUND": "Lyrics not found", - "LABEL_LYRICS": "Lyrics", - "LABEL_LYRICS_GENIUS_AUTH": "You will need to Authorize your Genius account to YTMDesktop (http://localhost:9864/login) Or disable Genius lyrics at \"Settings > Integrations > Enable Genius Lyrics\"", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_NOTIFICATION_DISLIKED": "You disliked this song", - "LABEL_NOTIFICATION_LIKED": "You liked this song", - "LABEL_PLAY_MUSIC": "Play music", - "LABEL_SAVE": "Save", - "LABEL_SAVED": "Saved", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Show artist", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Show track when playback is paused", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Show track time", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Show title", - "LABEL_SETTINGS_DISCORD": "Discord settings", - "LABEL_SETTINGS_RELAUNCH": "Apply and restart", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", - "LABEL_SETTINGS_TAB_ABOUT": "About", - "LABEL_SETTINGS_TAB_ABOUT_DISABLE_ANALYTICS": "Disable Application Analytics", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", - "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No devices found", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Click here and scan QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Protect remote control with password", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Remote control", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continue where you left off", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Custom theme", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Disable hardware acceleration", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Keep YTMDesktop on background when window close", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Page zoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio output", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Language", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Lyrics provider", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Nice", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Disable titlebar", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Title bar style", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Easy Tray Control(For Mac OS only)", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY_SONG_TITLE_ROLLABLE": "Tray Song Title Rollable", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Show notifications", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimized", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start on Boot (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "General", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Show track information next to the Windows 10 volume bar", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Enable Windows 10 media service", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integration", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrations", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Save and authorize", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Always on top", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Always show controls", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Paint controls with album color", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Allow resizing", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Show on taskbar", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", - "LABEL_SETTINGS_TAB_PLAYBACK": "Playback", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Switch volume control from '%' to 'dB'", - "LABEL_SETTINGS_TAB_PLAYBACK_SURROUND_SOUND": "Surround Sound/Speaker Fill", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Read clipboard for youtube links", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Press any key", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media keys only control app volume", - "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Enable Genius Lyrics", - "LABEL_SETTINGS": "Settings", - "LABEL_SHUTDOWN": "Shutdown", - "LYRICS": "Lyrics", - "MEDIA_CONTROL_MINIPLAYER": "Open/Close Miniplayer", - "MEDIA_CONTROL_MUTE_UNMUTE": "Mute/Unmute", - "MEDIA_CONTROL_NEXT": "Next", - "MEDIA_CONTROL_PAUSE": "Pause", - "MEDIA_CONTROL_PLAY_PAUSE": "Play/Pause", - "MEDIA_CONTROL_PLAY": "Play", - "MEDIA_CONTROL_PREVIOUS": "Previous", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Open/Close Queue", - "MEDIA_CONTROL_REPEAT": "Repeat", - "MEDIA_CONTROL_SEARCH": "Search", - "MEDIA_CONTROL_SHUFFLE": "Shuffle", - "MEDIA_CONTROL_THUMBS_DOWN": "Thumbs Down", - "MEDIA_CONTROL_THUMBS_UP": "Thumbs Up", - "MEDIA_CONTROL_VOLUME_DOWN": "Decrease volume", - "MEDIA_CONTROL_VOLUME_UP": "Increase volume", - "MINIPLAYER": "Miniplayer", - "PREFIX_OPEN_CLOSE": "Open/Close", - "REMOVE_FROM_LIBRARY": "Remove from library", - "SHORTCUT_BUTTONS": "UI Actions", - "SHOW": "Show", - "SKIP_TRACK_MARKED_DISLIKED": "Skip tracks marked as 'Disliked'", - "SKIP_TRACK_SHORTER_THAN": "Skip tracks shorter than", - "TRAY_ICON": "Tray icon", - "WANT_PLAY_THIS_LINK": "Want to play this link?" -} diff --git a/src/locales/es.json b/src/locales/es.json deleted file mode 100644 index b101f831c..000000000 --- a/src/locales/es.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Agregar a la biblioteca", - "ADD_TO_PLAYLIST": "Agregar a la lista de reproducción", - "ALWAYS_ASK_WHEN_READ_LINK": "Siempre preguntar cuando se lee el enlace", - "DOUBLE_CLICK_TO_RESET_POSITION": "Doble clic para restablecer posición", - "LABEL_ALSO": "También", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Cancelar", - "LABEL_CHANGELOG": "¿Qué hay de nuevo?", - "LABEL_DISABLE": "Desactivar", - "LABEL_EXIT": "Salir", - "LABEL_GUEST": "Invitado", - "LABEL_LOADING": "Cargando...", - "LABEL_LYRICS_NOT_FOUND": "No se ha encontrado letra para esta canción", - "LABEL_LYRICS": "Letra", - "LABEL_LYRICS_GENIUS_AUTH": "Va a tener que autorizar su cuenta de Genius a YTMDesktop (http://localhost:9864/login) o desactivar Genius lyrics en \"Ajustes > Integraciones > Activar Genius Lyrics\"", - "LABEL_MINIPLAYER": "Minireproductor", - "LABEL_NOTIFICATION_DISLIKED": "No te ha gustado esta canción", - "LABEL_NOTIFICATION_LIKED": "Te ha gustado esta canción", - "LABEL_PLAY_MUSIC": "Reproducir música", - "LABEL_SAVE": "Guardar", - "LABEL_SAVED": "Guardado", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar la canción cuando la reproducción está en pausa", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar el tiempo de la canción", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar el título", - "LABEL_SETTINGS_DISCORD": "Ajustes de Discord", - "LABEL_SETTINGS_RELAUNCH": "Aplicar y reiniciar", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar / Ocultar ventana principal", - "LABEL_SETTINGS_TAB_ABOUT": "Acerca de", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar progreso de la canción en la barra de tareas", - "LABEL_SETTINGS_TAB_APPEARENCE": "Apariencia", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No se encontraron dispositivos", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Servidor acompañante", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Haga clic aquí y escanee el código QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger acompañante con contraseña", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar desde donde lo has dejado", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalizado", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deshabilitar la acceleracción por hardware", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Mantiene YTMDesktop en segundo plano cuando la ventana es cerrada", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom de la página", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Salida de audio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Lenguaje", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Proveedor de letras", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estilo de barra de título", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Agradable", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deshabilitar barra de título", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Control de la bandeja fácil (Solo para Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificaciones", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimizado", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar al encender el equipo (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "General", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar información de la canción junto a la barra de volumen de Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar el servicio de medios de Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integración", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integraciones", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Guardar y autorizar", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Fijar en primer plano", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostrar controles siempre", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Pintar los controles con los colores del álbum", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir el redimensionamiento", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar en la barra de tareas", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Minireproductor", - "LABEL_SETTINGS_TAB_PLAYBACK": "Repetición", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Leer enlaces de Youtube desde el portapapeles", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Presione cualquier tecla", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Atajos", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Las teclas de control de volumen de medio sólo controlan el volumen de la app", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Cambiar el control de volumen de '%' a 'dB'", - "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Activar Genius Lyrics", - "LABEL_SETTINGS": "Ajustes", - "LABEL_SHUTDOWN": "Apagar", - "LYRICS": "Letra", - "MEDIA_CONTROL_MINIPLAYER": "Abrir/Cerrar el minirreproductor", - "MEDIA_CONTROL_MUTE_UNMUTE": "Silenciar/Desilenciar", - "MEDIA_CONTROL_NEXT": "Siguiente", - "MEDIA_CONTROL_PAUSE": "Pausa", - "MEDIA_CONTROL_PLAY": "Reproducir", - "MEDIA_CONTROL_PLAY_PAUSE": "Reproducir/Pausar", - "MEDIA_CONTROL_PREVIOUS": "Anterior", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/Cerrar cola", - "MEDIA_CONTROL_REPEAT": "Repetir", - "MEDIA_CONTROL_SEARCH": "Buscar", - "MEDIA_CONTROL_SHUFFLE": "Mezclar", - "MEDIA_CONTROL_THUMBS_DOWN": "No me gusta", - "MEDIA_CONTROL_THUMBS_UP": "Me gusta", - "MEDIA_CONTROL_VOLUME_DOWN": "Bajar el volumen", - "MEDIA_CONTROL_VOLUME_UP": "Subir el volumen", - "MINIPLAYER": "Minirreproductor", - "PREFIX_OPEN_CLOSE": "Abrir/Cerrar", - "SHORTCUT_BUTTONS": "Acciones de la IU", - "SHOW": "Mostrar", - "SKIP_TRACK_MARKED_DISLIKED": "Saltar las canciones marcadas como 'No me gusta'", - "SKIP_TRACK_SHORTER_THAN": "Saltar las canciones más cortas que", - "TRAY_ICON": "Icono de la bandeja", - "WANT_PLAY_THIS_LINK": "¿Quieres reproducir este enlace?" -} diff --git a/src/locales/fr.json b/src/locales/fr.json deleted file mode 100644 index 4a9376200..000000000 --- a/src/locales/fr.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "DOUBLE_CLICK_TO_RESET_POSITION", - "LABEL_EXIT": "Quitter", - "LABEL_GUEST": "LABEL_GUEST", - "LABEL_LOADING": "Chargement...", - "LABEL_LYRICS": "Paroles", - "LABEL_LYRICS_NOT_FOUND": "Paroles non trouvé", - "LABEL_MINIPLAYER": "LABEL_MINIPLAYER", - "LABEL_PLAY_MUSIC": "Jouer la musique", - "LABEL_SETTINGS": "Paramètres", - "LABEL_SETTINGS_RELAUNCH": "Appliquer et redémarrer", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "LABEL_SETTINGS_SHOW_HIDE_WINDOW", - "LABEL_SETTINGS_TAB_ABOUT": "À propos", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "LABEL_SETTINGS_TAB_APPEARENCE", - "LABEL_SETTINGS_TAB_GENERAL": "Général", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Reprendre la lecture là ou vous l'avez laissée", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Garder YTMDesktop en fond quand elle est fermée", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom de la Page", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Langage", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Contrôle facile du plateau (Tray) pour Mac OS", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Afficher les Notifications", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Démarrer au lancement de Windows (expérimental, Mac/Win32)", - "LABEL_SETTINGS_TAB_INTEGRATION": "LABEL_SETTINGS_TAB_INTEGRATION", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini-lecteur", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "LABEL_SETTINGS_TAB_READ_CLIPBOARD", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Raccourcis", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "International", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "MEDIA_CONTROL_MUTE_UNMUTE": "Silencieux / Non silencieux", - "MEDIA_CONTROL_NEXT": "Suivant", - "MEDIA_CONTROL_PAUSE": "Pause", - "MEDIA_CONTROL_PLAY": "Jouer", - "MEDIA_CONTROL_PLAY_PAUSE": "Jouer / Pause", - "MEDIA_CONTROL_PREVIOUS": "Précédent", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Ouvrir / Fermer File d'attente", - "MEDIA_CONTROL_REPEAT": "Répéter", - "MEDIA_CONTROL_SEARCH": "Rechercher", - "MEDIA_CONTROL_SHUFFLE": "Mixer", - "MEDIA_CONTROL_THUMBS_DOWN": "Aller à la fin", - "MEDIA_CONTROL_THUMBS_UP": "Aller au début" -} diff --git a/src/locales/hu.json b/src/locales/hu.json deleted file mode 100644 index e9cf11902..000000000 --- a/src/locales/hu.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Hozzáadás könyvtárhoz", - "ADD_TO_PLAYLIST": "Hozzáadás lejátszási listához", - "ALWAYS_ASK_WHEN_READ_LINK": "Link olvasásnál mindig kérdezz", - "DOUBLE_CLICK_TO_RESET_POSITION": "Pozíció visszaállításához duplán katt", - "LABEL_ALSO": "Továbbá", - "LABEL_AUDIO": "Audió", - "LABEL_CANCEL": "Mégsem", - "LABEL_CHANGELOG": "Újdonságok", - "LABEL_DISABLE": "Letiltva", - "LABEL_EXIT": "Kilépés", - "LABEL_GUEST": "Vendég", - "LABEL_LOADING": "Betöltés...", - "LABEL_LYRICS_NOT_FOUND": "Dalszöveg nem található", - "LABEL_LYRICS": "Dalszöveg", - "LABEL_MINIPLAYER": "Minilejátszó", - "LABEL_NOTIFICATION_DISLIKED": "Dislikeoltad ezt a dalt", - "LABEL_NOTIFICATION_LIKED": "Kedvelted ezt a dalt", - "LABEL_PLAY_MUSIC": "Zene lejátszása", - "LABEL_SAVE": "Mentés", - "LABEL_SAVED": "Mentve", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Előadó mutatása", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Dal mutatása, ha a lejátszás szünetel", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Dal idejének mutatása", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Cím mutatása", - "LABEL_SETTINGS_DISCORD": "Discord beállítások", - "LABEL_SETTINGS_RELAUNCH": "Alkalmaz és újraindít", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Főképernyő mutatása/elrejtése", - "LABEL_SETTINGS_TAB_ABOUT": "Rólunk", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Dal haladásának mutatása a tálcán", - "LABEL_SETTINGS_TAB_APPEARENCE": "Megjelenés", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nem találtunk eszközöket", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Kattints ide QR kód szkenneléséhez", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Távírányító védelme jelszóval", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Távirányító", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Folytatás ahol abbahagytad", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Egyéni téma", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Hardveres gyorsítás letiltása", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Ablak bezárásakor YTMDesktop háttérben futtatása", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Oldal nagyítása", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio kimenet", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Nyelv", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "A dalszöveget szolgáltatta", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Szép", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Címsor letiltása", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Rendszer", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Címsor típusa", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Egyszerű tálcakezelés (Csak macOS esetén)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Értesítések mutatása", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Indítás kis méretben", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Indítás a rendszerrel (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Általános", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Dal adatainak megjelenítése a Windows 10 hangerősáv mellett", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 médiaszolgáltatás engedélyezése", - "LABEL_SETTINGS_TAB_INTEGRATION": "Bővítmény", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Bővítmények", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Mentés és engedélyezés", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Mindig fent", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Billentyűparancsok mutatása", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Billentyűparancsok szinezése az album színével", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Átméretezés engedélyezése", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mutassa a tálcán", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Minilejátszó", - "LABEL_SETTINGS_TAB_PLAYBACK": "Lejátszás", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "YouTube linkek olvasása a vágólapról", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globális", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Helyi", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Nyomj meg egy gombot", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Parancsikonok", - "LABEL_SETTINGS": "Beállítások", - "LYRICS": "Dalszövegek", - "MEDIA_CONTROL_MINIPLAYER": "Minilejátszó megnyitása/bezárása", - "MEDIA_CONTROL_MUTE_UNMUTE": "Némítás/Némítás feloldása", - "MEDIA_CONTROL_NEXT": "Következő", - "MEDIA_CONTROL_PAUSE": "Szünet", - "MEDIA_CONTROL_PLAY_PAUSE": "Lejátszás/Szünet", - "MEDIA_CONTROL_PLAY": "Lejátszás", - "MEDIA_CONTROL_PREVIOUS": "Előző", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Sor nyitása/zárása", - "MEDIA_CONTROL_REPEAT": "Ismétlés", - "MEDIA_CONTROL_SEARCH": "Keresés", - "MEDIA_CONTROL_SHUFFLE": "Keverés", - "MEDIA_CONTROL_THUMBS_DOWN": "Nem tetszik", - "MEDIA_CONTROL_THUMBS_UP": "Tetszik", - "MEDIA_CONTROL_VOLUME_DOWN": "Hangerő csökkentése", - "MEDIA_CONTROL_VOLUME_UP": "Hangerő növelése", - "MINIPLAYER": "Minilejátszó", - "PREFIX_OPEN_CLOSE": "Megnyit/Bezár", - "SHORTCUT_BUTTONS": "UI Műveletek", - "SHOW": "Mutat", - "SKIP_TRACK_MARKED_DISLIKED": "'Nem tetszik'-kel megjelölt dalok kihagyása", - "SKIP_TRACK_SHORTER_THAN": "Dalok kihagyása melyek rövidebb mint", - "TRAY_ICON": "Tálca ikon", - "WANT_PLAY_THIS_LINK": "Le szeretnéd játszani ezt a linket?" -} diff --git a/src/locales/id.json b/src/locales/id.json deleted file mode 100644 index 120eca69e..000000000 --- a/src/locales/id.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Ketuk dua kali untuk mereset posisi", - "LABEL_EXIT": "Keluar", - "LABEL_GUEST": "Tamu", - "LABEL_LOADING": "Memuat...", - "LABEL_LYRICS": "Lirik", - "LABEL_LYRICS_NOT_FOUND": "Lirik tidak ditemukan", - "LABEL_MINIPLAYER": "Pemutar mini", - "LABEL_PLAY_MUSIC": "Mainkan musik", - "LABEL_SETTINGS": "Setelah", - "LABEL_SETTINGS_RELAUNCH": "Terapkan dan Mulai Ulang", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Tampil/Sembunyikan Jendela Utama", - "LABEL_SETTINGS_TAB_ABOUT": "Tentang", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "Tampilan", - "LABEL_SETTINGS_TAB_GENERAL": "Umum", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Server Pendamping", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Tekan disini dan pindah kode QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Lanjutkan di mana yang tinggalkan", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema kustom", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Tetap jalankan YTMDesktop di background ketika jendela ditutup", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Pembesar Halaman", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Bahasa", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Penyedia Lirik", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Gaya Bar Judul", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Bagus", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Nonaktifkan bar judul", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistem", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Kontrol Mudah Tray (Hanya Untuk Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Tampilkan notifikasi", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Jalankan saat Boot (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integrasi", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Simpan dan izinkan akses", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Pemutar mini", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Selalu di atas", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Selalu tampilkan kontrol", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Warnai kontrol dengan warna album", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Ukuran pemutar mini", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Besar", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Sedang", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Kecil", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Baca papan klip untuk tautan YouTube", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Pintasan", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", - "MEDIA_CONTROL_MUTE_UNMUTE": "Bungkam / Bunyikan", - "MEDIA_CONTROL_NEXT": "Selanjutnya", - "MEDIA_CONTROL_PAUSE": "Jeda", - "MEDIA_CONTROL_PLAY": "Putar", - "MEDIA_CONTROL_PLAY_PAUSE": "Putar / Jeda", - "MEDIA_CONTROL_PREVIOUS": "Sebelumnya", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Buka / Tutup Antrian", - "MEDIA_CONTROL_REPEAT": "Ulang", - "MEDIA_CONTROL_SEARCH": "Pencarian", - "MEDIA_CONTROL_SHUFFLE": "Acak", - "MEDIA_CONTROL_THUMBS_DOWN": "Tidak Sukai", - "MEDIA_CONTROL_THUMBS_UP": "Sukai" -} diff --git a/src/locales/it.json b/src/locales/it.json deleted file mode 100644 index 321bfd715..000000000 --- a/src/locales/it.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Doppio click per ripristinare la posizione", - "LABEL_EXIT": "Esci", - "LABEL_GUEST": "Ospite", - "LABEL_LOADING": "Caricamento...", - "LABEL_LYRICS": "Testi", - "LABEL_LYRICS_NOT_FOUND": "Testo non trovato", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_PLAY_MUSIC": "Riproduci musica", - "LABEL_SETTINGS": "Impostazioni", - "LABEL_SETTINGS_RELAUNCH": "Applica e riavvia", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostra / Nascondi finestra principale", - "LABEL_SETTINGS_TAB_ABOUT": "Informazioni", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostra progresso traccia sulla barra delle applicazioni", - "LABEL_SETTINGS_TAB_APPEARENCE": "Aspetto", - "LABEL_SETTINGS_TAB_GENERAL": "Generale", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controllo remoto", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clicca qui e scansiona il codice QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteggi companion app con password", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continua da dove eri rimasto", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalizzato", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Mantieni l'app YTMDesktop in esecuzione quando chiudi la finestra", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom pagina", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Uscita audio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Lingua", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Fonte testi", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Stile barra del titolo", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Scuro", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Nascondi", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controllo semplificato area di notifica(Solo Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostra notifiche", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Avvia ridotto a icona", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Esegui all'avvio del computer (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integratione", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Salva e autorizza", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre in primo piano", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostra sempre i controlli", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Abbina i controlli al colore dell'album", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Dimensione Miniplayer", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Grande", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Normale", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Piccolo", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Cerca link YouTube negli appunti", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Scorciatoie", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globale", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Locale", - "MEDIA_CONTROL_MUTE_UNMUTE": "Disattiva / Attiva audio", - "MEDIA_CONTROL_NEXT": "Successivo", - "MEDIA_CONTROL_PAUSE": "Pausa", - "MEDIA_CONTROL_PLAY": "Riproduci", - "MEDIA_CONTROL_PLAY_PAUSE": "Riproduci / Pausa", - "MEDIA_CONTROL_PREVIOUS": "Precedente", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Apri / Chiudi coda", - "MEDIA_CONTROL_REPEAT": "Ripeti", - "MEDIA_CONTROL_SEARCH": "Cerca", - "MEDIA_CONTROL_SHUFFLE": "Casuale", - "MEDIA_CONTROL_THUMBS_DOWN": "Non mi piace", - "MEDIA_CONTROL_THUMBS_UP": "Mi piace" -} diff --git a/src/locales/ja.json b/src/locales/ja.json deleted file mode 100644 index 56e2a104e..000000000 --- a/src/locales/ja.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "ADD_TO_LIBRARY": "ライブラリに追加", - "ADD_TO_PLAYLIST": "プレイリストに追加", - "ALWAYS_ASK_WHEN_READ_LINK": "リンク読み取り時に常に尋ねる", - "DOUBLE_CLICK_TO_RESET_POSITION": "ダブルクリックで位置を初期化", - "LABEL_ALSO": "または", - "LABEL_AUDIO": "オーディオ", - "LABEL_CANCEL": "中止", - "LABEL_CHANGELOG": "新機能", - "LABEL_DISABLE": "無効化", - "LABEL_EXIT": "終了", - "LABEL_GUEST": "ゲスト", - "LABEL_LOADING": "読込中...", - "LABEL_LYRICS": "歌詞", - "LABEL_LYRICS_NOT_FOUND": "歌詞が見つかりません", - "LABEL_MINIPLAYER": "ミニプレイヤー", - "LABEL_NOTIFICATION_DISLIKED": "この曲に低評価をつけました", - "LABEL_NOTIFICATION_LIKED": "この曲に高評価をつけました", - "LABEL_PLAY_MUSIC": "音楽を再生", - "LABEL_SAVE": "保存", - "LABEL_SAVED": "保存済み", - "LABEL_SETTINGS": "設定", - "LABEL_SETTINGS_DISCORD": "Discordの設定", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "アーティストを表示", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "プレイバックの休止時にトラックを表示", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "トラックの時間を表示", - "LABEL_SETTINGS_RELAUNCH": "適用して再起動", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "メインウィンドウの表示・非表示", - "LABEL_SETTINGS_TAB_ABOUT": "アプリについて", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "タスクバーに曲の状況を表示", - "LABEL_SETTINGS_TAB_APPEARENCE": "外観", - "LABEL_SETTINGS_TAB_GENERAL": "一般", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "デバイスが見つかりませんでした", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "ここをクリックしてQRコードを読み取る", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "パスワードで遠隔操作を保護", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "リモコンサーバー", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "中断時から再開", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "カスタムテーマ", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "GPU使用の無効化", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presenceと連携", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "ウィンドウを閉じてもアプリを維持する", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ページの拡大", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "オーディオの出力先を選択", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "言語", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "歌詞の提供", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "タイトルバーのスタイル", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "デフォルト", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "タイトルバーを無効化", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "システム", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "簡易トレイ制御(Mac OSのみ)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "通知を表示", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "最小化した状態で起動", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "スタートアップで起動 (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10のボリュームバーに曲の情報を表示", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 media serviceを有効化", - "LABEL_SETTINGS_TAB_INTEGRATION": "連携", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "連携", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)と連携", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "保存して認証", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "ミニプレイヤー", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "常に最前面", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "常にコントロールを表示", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "アルバムの色でコントロールを描画", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "ミニプレイヤーのサイズ", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "大", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "中", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "小", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "リサイズを許可", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "タスクバーに表示", - "LABEL_SETTINGS_TAB_PLAYBACK": "再生", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "クリップボードからYoutubeのリンクを読み取る", - "LABEL_SETTINGS_TAB_SHORTCUTS": "ショートカット", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "グローバル", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "ローカル", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "任意のキーを押す", - "LYRICS": "歌詞", - "MEDIA_CONTROL_MINIPLAYER": "ミニプレイヤーを開く / 閉じる", - "MEDIA_CONTROL_MUTE_UNMUTE": "消音", - "MEDIA_CONTROL_NEXT": "次", - "MEDIA_CONTROL_PAUSE": "停止", - "MEDIA_CONTROL_PLAY": "再生", - "MEDIA_CONTROL_PLAY_PAUSE": "再生 / 停止", - "MEDIA_CONTROL_PREVIOUS": "前", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "キューを開く / 閉じる", - "MEDIA_CONTROL_REPEAT": "リピート", - "MEDIA_CONTROL_SEARCH": "検索", - "MEDIA_CONTROL_SHUFFLE": "シャッフル", - "MEDIA_CONTROL_THUMBS_DOWN": "低く評価", - "MEDIA_CONTROL_THUMBS_UP": "高く評価", - "MEDIA_CONTROL_VOLUME_DOWN": "音量を下げる", - "MEDIA_CONTROL_VOLUME_UP": "音量を上げる", - "MINIPLAYER": "ミニプレーヤー", - "PREFIX_OPEN_CLOSE": "開く/閉じる", - "SHORTCUT_BUTTONS": "UIの操作をカスタマイズ", - "SHOW": "表示", - "SKIP_TRACK_MARKED_DISLIKED": "低評価をつけたトラックをスキップ", - "SKIP_TRACK_SHORTER_THAN": "値より短い音楽をスキップ", - "TRAY_ICON": "トレイのアイコン", - "WANT_PLAY_THIS_LINK": "このリンクを再生しますか?", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "音量の表記を'%'から'db'に変える", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "操作ボタンをアルバムの色にする", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "ボリューム操作をアプリのみに適用" -} diff --git a/src/locales/ko.json b/src/locales/ko.json deleted file mode 100644 index a21e909ee..000000000 --- a/src/locales/ko.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "ADD_TO_LIBRARY": "라이브러리에 추가", - "ADD_TO_PLAYLIST": "플레이리스트에 추가", - "ALWAYS_ASK_WHEN_READ_LINK": "링크 읽을 때 항상 물어보기", - "DOUBLE_CLICK_TO_RESET_POSITION": "두 번 클릭하여 위치 재설정", - "LABEL_ALSO": "또한", - "LABEL_AUDIO": "오디오", - "LABEL_CANCEL": "취소", - "LABEL_CHANGELOG": "새로운 기능", - "LABEL_DISABLE": "비활성화", - "LABEL_EXIT": "종료", - "LABEL_GUEST": "손님", - "LABEL_LOADING": "로딩 중...", - "LABEL_LYRICS": "가사", - "LABEL_LYRICS_NOT_FOUND": "가사를 찾지 못했습니다.", - "LABEL_MINIPLAYER": "미니 플레이어", - "LABEL_NOTIFICATION_DISLIKED": "이 곡을 마음에 들지 않는다고 표시하였습니다.", - "LABEL_NOTIFICATION_LIKED": "이 곡을 마음에 든다고 표시하였습니다.", - "LABEL_PLAY_MUSIC": "음악을 재생해 주세요", - "LABEL_SAVE": "저장", - "LABEL_SAVED": "저장됨", - "LABEL_SETTINGS": "설정", - "LABEL_SETTINGS_DISCORD": "디스코드 설정", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "아티스트 보기", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "일시정지 되어 있을 때 곡 보여주기", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "곡 진행 (시간) 보여주기", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "제목 보여주기", - "LABEL_SETTINGS_RELAUNCH": "적용 및 재시작", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "메인 창 보이기/숨기기", - "LABEL_SETTINGS_TAB_ABOUT": "정보", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "배경을 앨범의 색상으로 칠하기", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "작업 표시줄에 곡 현황 보이기", - "LABEL_SETTINGS_TAB_APPEARENCE": "외관", - "LABEL_SETTINGS_TAB_GENERAL": "기본", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "장치 없음", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "리모트 서버 (Companion Server)", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "QR 코드 스캔하기", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "리모트 서버 (Companion Server)를 비밀번호로 보호", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "앱 재실행 시 페이지 링크 유지", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "커스텀 테마", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "하드웨어 가속 비활성화", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence (Discord 상태 연동)", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "앱을 종료해도 백그라운드에 유지", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "페이지 확대", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "출력 장치", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "언어", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "가사 제공", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "타이틀 바 스타일", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "좋게", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "사용 안함", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "시스템 설정", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "메뉴 바 컨트롤러 (macOS 전용)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "알림 보이기", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "최소화 상태에서 시작", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "부팅 시 열기 (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "연동", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "연동", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Windows 10 미디어 서비스 활성화", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Windows 10 볼륨 정보 표시에 곡 정보 표시", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last.fm (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "저장 및 인증", - "LABEL_SETTINGS_TAB_MACOS": "맥 OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "미니 플레이어", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "항상 상단에", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "컨트롤 항상 보이기", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "컨트롤러 색 앨범 색상에 맞추기", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "리사이징 (확대/축소) 허용", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "작업 표시줄에 보여주기", - "LABEL_SETTINGS_TAB_PLAYBACK": "재생", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "볼륨 제어를 '%' 에서 'dB'로 전환하기", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "클립보드에서 유튜브 링크 찾기", - "LABEL_SETTINGS_TAB_SHORTCUTS": "단축키", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "어디서나", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "로컬", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "아무 키나 누르세요", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "볼륨 미디어 키로 앱 볼륨만 제어하기", - "LYRICS": "가사", - "MEDIA_CONTROL_MINIPLAYER": "미니 플레이어 열기/닫기", - "MEDIA_CONTROL_MUTE_UNMUTE": "음소거 / 음소거 취소", - "MEDIA_CONTROL_NEXT": "다음", - "MEDIA_CONTROL_PAUSE": "일시정지", - "MEDIA_CONTROL_PLAY": "재생", - "MEDIA_CONTROL_PLAY_PAUSE": "재생 / 일시정지", - "MEDIA_CONTROL_PREVIOUS": "이전", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "대기열 열기 / 닫기", - "MEDIA_CONTROL_REPEAT": "반복", - "MEDIA_CONTROL_SEARCH": "검색", - "MEDIA_CONTROL_SHUFFLE": "셔플", - "MEDIA_CONTROL_THUMBS_DOWN": "싫어요", - "MEDIA_CONTROL_THUMBS_UP": "좋아요", - "MEDIA_CONTROL_VOLUME_DOWN": "음량 축소", - "MEDIA_CONTROL_VOLUME_UP": "음량 증가", - "MINIPLAYER": "미니 플레이어", - "PREFIX_OPEN_CLOSE": "열기/닫기", - "REMOVE_FROM_LIBRARY": "라이브러리에서 삭제", - "SHORTCUT_BUTTONS": "UI 액션", - "SHOW": "보이기", - "SKIP_TRACK_MARKED_DISLIKED": "곡을 스킵하면 '마음에 안듬' 남기기", - "SKIP_TRACK_SHORTER_THAN": "길이가 다음보다 짧으면 스킵함:", - "TRAY_ICON": "트레이 아이콘", - "WANT_PLAY_THIS_LINK": "이 링크를 재생하시겠습니까?" -} diff --git a/src/locales/nl.json b/src/locales/nl.json deleted file mode 100644 index c1dc11f8a..000000000 --- a/src/locales/nl.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Voeg toe aan bibliotheek", - "ADD_TO_PLAYLIST": "Voeg toe aan afspeellijst", - "ALWAYS_ASK_WHEN_READ_LINK": "Altijd vragen wanneer de link gelezen wordt", - "DOUBLE_CLICK_TO_RESET_POSITION": "Dubbel klik om de positie te herstellen", - "LABEL_ALSO": "Ook", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Annuleer", - "LABEL_CHANGELOG": "Wat is er nieuw", - "LABEL_DISABLE": "Uitschakelen", - "LABEL_EXIT": "Afsluiten", - "LABEL_GUEST": "Gast", - "LABEL_LOADING": "Bezig met laden...", - "LABEL_LYRICS_NOT_FOUND": "Er is geen songtekst beschikbaar", - "LABEL_LYRICS": "Songtekst", - "LABEL_LYRICS_GENIUS_AUTH": "Je zult je Genius account moeten autoriseren met YTMDesktop (http://localhost:9864/login) Of Genius lyrics uit moeten schakelen in \"Instelling > Integraties > Schakel Genius Lyrics in\"", - "LABEL_MINIPLAYER": "Minispeler", - "LABEL_NOTIFICATION_DISLIKED": "Je vondt dit liedje niet leuk", - "LABEL_NOTIFICATION_LIKED": "Je vondt dit liedje leuk", - "LABEL_PLAY_MUSIC": "Muziek afspelen", - "LABEL_SAVE": "Opslaan", - "LABEL_SAVED": "Opgeslagen", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Laat artiesten zien", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Laat track zien wanneer afspelen is gepauzeerd", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Laat track tijd zien", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Laat titel zien", - "LABEL_SETTINGS_DISCORD": "Discord instellingen", - "LABEL_SETTINGS_RELAUNCH": "Toepassen en opnieuw starten", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Hoofdvenster tonen/verbergen", - "LABEL_SETTINGS_TAB_ABOUT": "Over", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Laat track voortgang zien op taakbalk", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Verf achtergrond met album kleur", - "LABEL_SETTINGS_TAB_APPEARENCE": "Uiterlijk", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Geen apparaten gevonden", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Klik hier en scan de QR-code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Bescherm bedienserver met wachtwoord", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Bedienserver", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Doorgaan waar je gebleven was", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Aangepast thema", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Schakel hardware versnelling uit", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Afspelen op achtergrond na sluiten van venster", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Paginazoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio uitvoer", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Taal", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Songtekst aanbieder", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Leuk", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Titelbalk uitschakelen", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Systeem", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Titelbalkstijl", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Bedienen vanuit systeemvak (alleen op macOS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Meldingen tonen", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start geminimaliseerd", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Automatisch opstarten (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Algemeen", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Laat track informatie zien naast de Windows 10 volume bar", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Schakel Windows 10 media service in", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integratie", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integraties", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Opslaan en goedkeuren", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "macOS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Altijd bovenaan", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Laat altijd bedieningsknoppen zien", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Verf bedieningsknoppen met albumkleur", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Sta herschalen toe", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Laat zien op taakbalk", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Minispeler", - "LABEL_SETTINGS_TAB_PLAYBACK": "Afspelen", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Klembord monitoren op YouTube-links", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globaal", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokaal", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Druk op een willekeurige toets", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Sneltoetsen", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volume media toetsen bedienen alleen app volume", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Schakel volume bediening van '%' naar 'dB'", - "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "Schakel Genius Lyrics in", - "LABEL_SETTINGS": "Instellingen", - "LABEL_SHUTDOWN": "Uitschakelen", - "LYRICS": "Songteksten", - "MEDIA_CONTROL_MINIPLAYER": "Open/Sluit minispeler", - "MEDIA_CONTROL_MUTE_UNMUTE": "Dempen/Ontdempen", - "MEDIA_CONTROL_NEXT": "Volgende", - "MEDIA_CONTROL_PAUSE": "Pauzeren", - "MEDIA_CONTROL_PLAY_PAUSE": "Afspelen/Pauzeren", - "MEDIA_CONTROL_PLAY": "Afspelen", - "MEDIA_CONTROL_PREVIOUS": "Vorige", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Wachtrij openen/sluiten", - "MEDIA_CONTROL_REPEAT": "Herhalen", - "MEDIA_CONTROL_SEARCH": "Zoeken", - "MEDIA_CONTROL_SHUFFLE": "Willekeurig", - "MEDIA_CONTROL_THUMBS_DOWN": "Vind ik niet leuk", - "MEDIA_CONTROL_THUMBS_UP": "Vind ik leuk", - "MEDIA_CONTROL_VOLUME_DOWN": "Volume verlagen", - "MEDIA_CONTROL_VOLUME_UP": "Volume verhogen", - "MINIPLAYER": "Minispeler", - "PREFIX_OPEN_CLOSE": "Openen/Sluiten", - "REMOVE_FROM_LIBRARY": "Verwijder uit bibliotheek", - "SHORTCUT_BUTTONS": "UI acties", - "SHOW": "Laat zien", - "SKIP_TRACK_MARKED_DISLIKED": "Sla tracks gemarkeerd als 'Niet leuk' over", - "SKIP_TRACK_SHORTER_THAN": "Sla tracks over korter dan", - "TRAY_ICON": "tray icoon", - "WANT_PLAY_THIS_LINK": "Wil je deze koppeling afspelen?" -} diff --git a/src/locales/no.yml b/src/locales/no.yml deleted file mode 100644 index 374e32cbc..000000000 --- a/src/locales/no.yml +++ /dev/null @@ -1,103 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Legg til i biblioteket", - "ADD_TO_PLAYLIST": "Legg til i spilleliste", - "ALWAYS_ASK_WHEN_READ_LINK": "Alltid spør når lenke leses", - "DOUBLE_CLICK_TO_RESET_POSITION": "Dobbelt-klikk for å tilbakestille posisjon", - "LABEL_ALSO": "Også", - "LABEL_AUDIO": "Lyd", - "LABEL_CANCEL": "Avbryt", - "LABEL_CHANGELOG": "Hva er nytt", - "LABEL_DISABLE": "Deaktiver", - "LABEL_EXIT": "Avslutt", - "LABEL_GUEST": "Gjest", - "LABEL_LOADING": "Laster...", - "LABEL_LYRICS_NOT_FOUND": "Finner ikke sangtekster", - "LABEL_LYRICS": "Sangtekster", - "LABEL_MINIPLAYER": "Minispiller", - "LABEL_NOTIFICATION_DISLIKED": "Du likte ikke denne sangen", - "LABEL_NOTIFICATION_LIKED": "Du likte denne sangen", - "LABEL_PLAY_MUSIC": "Spill musikk", - "LABEL_SAVE": "Lagre", - "LABEL_SAVED": "Lagret", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Vis artist", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Vis spor når avspillingen er satt på pause", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Vis tid", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Vis tittel", - "LABEL_SETTINGS_DISCORD": "Discord innstillinger", - "LABEL_SETTINGS_RELAUNCH": "Bruk og start på nytt", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Vis/Skjul hovedvindu", - "LABEL_SETTINGS_TAB_ABOUT": "Om", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Vis fremgang på oppgavelinjen", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Sett bakgrunnsfarge fra albumfarge", - "LABEL_SETTINGS_TAB_APPEARENCE": "Utseende", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Finner ingen enheter", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Trykk her eller skann QR koden", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Beskytt fjernkontrol med passord", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Fjernkontroll", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Fortsett der du slapp", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Egendefinert tema", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Deaktiver maskinvareakselerasjon", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord rik tilstedeværelse", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Hold YTMDesktop kjørende i bakgrunnen når vinduet lukkes", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Side zoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Lydutgang", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Språk", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Sangtekst leverandør", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Fin", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Deaktiver tittellinjen", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Tittellinjestil", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Enkel dock-kontroll (Kun Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Vis notifikasjoner", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimert", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start ved oppstart (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Generelt", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Vis sporinformasjon ved siden av volumlinjen i Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Aktiver Windows 10 medietjeneste", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integrasjon", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrasjoner", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Lagre og godkjenn", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Alltid øverst", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Vis alltid kontroller", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Farg kontroller fra albumfarge", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Tillat endring av størrelse", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Vis på oppgavelinjen", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Minispiller", - "LABEL_SETTINGS_TAB_PLAYBACK": "Avspilling", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Les utklippstavlen for youtube-lenker", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Globale", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokale", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Trykk en tast", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Snarveier", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "Volummedietaster kontrollerer kun appvolum", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Bytt volumkontroll fra '%' til 'dB'", - "LABEL_SETTINGS": "Innstillinger", - "LYRICS": "Sangtekster", - "MEDIA_CONTROL_MINIPLAYER": "Åpne/Lukke Minispiller", - "MEDIA_CONTROL_MUTE_UNMUTE": "Slå av / på lyden", - "MEDIA_CONTROL_NEXT": "Neste", - "MEDIA_CONTROL_PAUSE": "Pause", - "MEDIA_CONTROL_PLAY_PAUSE": "Spill/Pause", - "MEDIA_CONTROL_PLAY": "Spill", - "MEDIA_CONTROL_PREVIOUS": "Forrige", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Åpne/Lukke Kø", - "MEDIA_CONTROL_REPEAT": "Gjenta", - "MEDIA_CONTROL_SEARCH": "Søk", - "MEDIA_CONTROL_SHUFFLE": "Tilfeldig rekkefølge", - "MEDIA_CONTROL_THUMBS_DOWN": "Tommel ned", - "MEDIA_CONTROL_THUMBS_UP": "Tommel opp", - "MEDIA_CONTROL_VOLUME_DOWN": "Skru volumet ned", - "MEDIA_CONTROL_VOLUME_UP": "Skru volumet opp", - "MINIPLAYER": "Minispiller", - "PREFIX_OPEN_CLOSE": "Åpne/Lukke", - "REMOVE_FROM_LIBRARY": "Fjern fra bibliotek", - "SHORTCUT_BUTTONS": "UI-handlinger", - "SHOW": "Vis", - "SKIP_TRACK_MARKED_DISLIKED": "Hopp over spor merket som 'Ikke likt'", - "SKIP_TRACK_SHORTER_THAN": "Hopp over spor kortere enn", - "TRAY_ICON": "Ikon i systemstatusfeltet", - "WANT_PLAY_THIS_LINK": "Vil du spille denne lenken?" -} diff --git a/src/locales/pl.json b/src/locales/pl.json deleted file mode 100644 index c11cea562..000000000 --- a/src/locales/pl.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Dodaj do biblioteki", - "ADD_TO_PLAYLIST": "Dodaj do playlisty", - "ALWAYS_ASK_WHEN_READ_LINK": "Zawsze pytaj, kiedy czytać link", - "DOUBLE_CLICK_TO_RESET_POSITION": "Kliknij dwa razy, aby zresetować pozycję", - "LABEL_ALSO": "lub", - "LABEL_AUDIO": "Dźwięk", - "LABEL_CANCEL": "Anuluj", - "LABEL_CHANGELOG": "Co nowego", - "LABEL_DISABLE": "Wyłącz", - "LABEL_EXIT": "Zamknij", - "LABEL_GUEST": "Gość", - "LABEL_LOADING": "Wczytywanie...", - "LABEL_LYRICS_NOT_FOUND": "Nie znaleziono tekstu", - "LABEL_LYRICS": "Tekst", - "LABEL_MINIPLAYER": "Miniodtwarzacz", - "LABEL_NOTIFICATION_DISLIKED": "Nie lubisz tego utworu", - "LABEL_NOTIFICATION_LIKED": "Lubisz ten utwór", - "LABEL_PLAY_MUSIC": "Odtwórz", - "LABEL_SAVE": "Zapisz", - "LABEL_SAVED": "Zapisano", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Pokaż artystę", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Pokaż utwór, gdy odtwarzanie jest wstrzymane", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Pokaż czas utworu", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Pokaż tytuł", - "LABEL_SETTINGS_DISCORD": "Ustawienia Discorda", - "LABEL_SETTINGS_RELAUNCH": "Zastosuj i uruchom ponownie", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Pokaż/ukryj główne okno", - "LABEL_SETTINGS_TAB_ABOUT": "Więcej", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Pokaż postęp na pasku", - "LABEL_SETTINGS_TAB_APPEARENCE": "Wygląd", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nie znaleziono urządzeń", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Kliknij tutaj i zeskanuj kod QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Zabezpieczenie hasłem", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Serwer aplikacji sterującej", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Kontynuuj tam, gdzie skończyłem", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Własny motyw", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Wyłącz przyspieszanie sprzętowe", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Działaj w tle, po zamknięciu okna", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Powiększenie", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Wyjście audio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Język", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Dostawca tekstów", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Wygodny", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Bez paska", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Systemowy", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Styl paska tytułu", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Łatwa kontrola z paska (tylko Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Pokazuj powiadomienia", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Uruchom zminimalizowany", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Uruchom przy starcie (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Ogólne", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Pokaż informacje o utworze obok paska głośności systemu Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Włącz usługę multimedialną Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integracja", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integracje", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Zapisz i autoryzuj", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Zawsze na wierzchu", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Zawsze pokazuj przyciski", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Używaj koloru okładki albumu", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Zezwalaj na zmianę rozmiaru", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Pokaż na pasku zadań", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniodtwarzacz", - "LABEL_SETTINGS_TAB_PLAYBACK": "Odtwarzanie", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Czytaj linki do YouTube ze schowka", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Ogólne", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokalne", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Naciśnij dowolny klawisz", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Skróty", - "LABEL_SETTINGS": "Ustawienia", - "LYRICS": "Teksty", - "MEDIA_CONTROL_MINIPLAYER": "Otwórz / Zamknij miniodtwarzacz", - "MEDIA_CONTROL_MUTE_UNMUTE": "Wycisz / Wyłącz wyciszenie", - "MEDIA_CONTROL_NEXT": "Następny", - "MEDIA_CONTROL_PAUSE": "Wstrzymaj", - "MEDIA_CONTROL_PLAY_PAUSE": "Odtwórz / Wstrzymaj", - "MEDIA_CONTROL_PLAY": "Odtwórz", - "MEDIA_CONTROL_PREVIOUS": "Poprzedni", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Otwórz / Zamknij kolejkę", - "MEDIA_CONTROL_REPEAT": "Powtarzanie", - "MEDIA_CONTROL_SEARCH": "Szukaj", - "MEDIA_CONTROL_SHUFFLE": "Odtwarzanie losowe", - "MEDIA_CONTROL_THUMBS_DOWN": "Nie podoba mi się", - "MEDIA_CONTROL_THUMBS_UP": "Podoba mi się", - "MEDIA_CONTROL_VOLUME_DOWN": "Zmniejsz głośność", - "MEDIA_CONTROL_VOLUME_UP": "Zwiększ głośność", - "MINIPLAYER": "Miniodtwarzacz", - "PREFIX_OPEN_CLOSE": "Otwórz / Zamknij", - "SHORTCUT_BUTTONS": "Działanie interfejsu", - "SHOW": "Pokaż", - "SKIP_TRACK_MARKED_DISLIKED": "Pomijaj utwory oznaczone jako 'Nie lubiane'", - "SKIP_TRACK_SHORTER_THAN": "Pomijaj ścieżki krótsze niż", - "TRAY_ICON": "Ikona zasobnika", - "WANT_PLAY_THIS_LINK": "Odtworzyć zawartość tego linku?" -} diff --git a/src/locales/pt-BR b/src/locales/pt-BR deleted file mode 100644 index abdaacd92..000000000 --- a/src/locales/pt-BR +++ /dev/null @@ -1,100 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Adicionar à biblioteca", - "ADD_TO_PLAYLIST": "Adicionar à playlist", - "ALWAYS_ASK_WHEN_READ_LINK": "Sempre perguntar ao ler link", - "DOUBLE_CLICK_TO_RESET_POSITION": "Clique duplo para resetar a posição", - "LABEL_ALSO": "Também", - "LABEL_AUDIO": "Áudio", - "LABEL_CANCEL": "Cancelar", - "LABEL_CHANGELOG": "O que há de novo", - "LABEL_DISABLE": "Desabilitar", - "LABEL_EXIT": "Sair", - "LABEL_GUEST": "Convidado", - "LABEL_LOADING": "Carregando...", - "LABEL_LYRICS_NOT_FOUND": "Letra não encontrada", - "LABEL_LYRICS": "Letra da Música", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_NOTIFICATION_DISLIKED": "Você não gostou desta música", - "LABEL_NOTIFICATION_LIKED": "Você gostou desta música", - "LABEL_PLAY_MUSIC": "Inicie uma música", - "LABEL_SAVE": "Salvar", - "LABEL_SAVED": "Salvo", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar faixa quando estiver pausado", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar duração da faixa", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar título", - "LABEL_SETTINGS_DISCORD": "Configurações Discord", - "LABEL_SETTINGS_RELAUNCH": "Aplicar e reiniciar", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar/Ocultar janela principal", - "LABEL_SETTINGS_TAB_ABOUT": "Sobre", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar o progresso da faixa na barra de tarefas", - "LABEL_SETTINGS_TAB_APPEARENCE": "Aparência", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nenhum dispositivo encontrado", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clique aqui e escaneie o QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger controle remoto com senha", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controle remoto", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar de onde parou", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema customizado", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Desabilitar aceleração de hardware", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Manter YTMDesktop em segundo plano quando fechar a janela principal", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Zoom da página", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Saída de áudio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Linguagem", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Provedor de letra da música", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Bonito", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Nenhum", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Padrão do sistema", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Estilo da barra", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controle fácil na bandeja (Somente para Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificações", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimizado", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar com o sistema (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Geral", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informação da faixa ao lado da barra de volume do Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Habilitar serviço de mídia do Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integração", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrações", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Salvar e autorizar", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre no topo", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Sempre mostrar os controles", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Colorir os controles com as cores do álbum", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir redimensionar", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar na barra de tarefas", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", - "LABEL_SETTINGS_TAB_PLAYBACK": "Reprodução", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Leia a área de transferência para obter links do Youtube", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Pressione qualquer tecla", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Atalhos", - "LABEL_SETTINGS": "Configurações", - "LYRICS": "Letras de músicas", - "MEDIA_CONTROL_MINIPLAYER": "Abrir/Fechar Miniplayer", - "MEDIA_CONTROL_MUTE_UNMUTE": "Mutar/Desmutar", - "MEDIA_CONTROL_NEXT": "Próximo", - "MEDIA_CONTROL_PAUSE": "Pausar", - "MEDIA_CONTROL_PLAY_PAUSE": "Reproduzir/Pausar", - "MEDIA_CONTROL_PLAY": "Reproduzir", - "MEDIA_CONTROL_PREVIOUS": "Anterior", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/Fechar Fila", - "MEDIA_CONTROL_REPEAT": "Repetir", - "MEDIA_CONTROL_SEARCH": "Pesquisar", - "MEDIA_CONTROL_SHUFFLE": "Misturar", - "MEDIA_CONTROL_THUMBS_DOWN": "Não gostei", - "MEDIA_CONTROL_THUMBS_UP": "Gostei", - "MEDIA_CONTROL_VOLUME_DOWN": "Diminuir volume", - "MEDIA_CONTROL_VOLUME_UP": "Aumentar volume", - "MINIPLAYER": "Miniplayer", - "PREFIX_OPEN_CLOSE": "Abrir/Fechar", - "REMOVE_FROM_LIBRARY": "Remover da biblioteca", - "SHORTCUT_BUTTONS": "Ações da UI", - "SHOW": "Exibir", - "SKIP_TRACK_MARKED_DISLIKED": "Pular faixas marcadas como 'Não gostei'", - "SKIP_TRACK_SHORTER_THAN": "Pular faixas mais curtas que", - "TRAY_ICON": "Ícone na bandeja", - "WANT_PLAY_THIS_LINK": "Deseja executar este link?" -} diff --git a/src/locales/pt.json b/src/locales/pt.json deleted file mode 100644 index 99449d999..000000000 --- a/src/locales/pt.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Adicionar à coleção", - "ADD_TO_PLAYLIST": "Adicionar à lista de reprodução, - "ALWAYS_ASK_WHEN_READ_LINK": "Perguntar sempre ao ler a ligação", - "DOUBLE_CLICK_TO_RESET_POSITION": "Duplo clique para repor a posição", - "LABEL_ALSO": "Também", - "LABEL_AUDIO": "Áudio", - "LABEL_CANCEL": "Cancelar", - "LABEL_CHANGELOG": "Novidades", - "LABEL_DISABLE": "Desativar", - "LABEL_EXIT": "Sair", - "LABEL_GUEST": "Convidado", - "LABEL_LOADING": "A carregar...", - "LABEL_LYRICS_NOT_FOUND": "Letra da faixa não encontrada", - "LABEL_LYRICS": "Letra da faixa", - "LABEL_MINIPLAYER": "Mini-reprodutor", - "LABEL_NOTIFICATION_DISLIKED": "Você não gosta desta música", - "LABEL_NOTIFICATION_LIKED": "Você gosta desta música", - "LABEL_PLAY_MUSIC": "Reproduzir música", - "LABEL_SAVE": "Guardar", - "LABEL_SAVED": "Guardado", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Mostrar artista", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Mostrar faixa se a reprodução estiver em pausa", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Mostrar duração da faixa", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Mostrar título", - "LABEL_SETTINGS_DISCORD": "Definições Discord", - "LABEL_SETTINGS_RELAUNCH": "Aplicar e reiniciar", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Mostrar/ocultar janela principal", - "LABEL_SETTINGS_TAB_ABOUT": "Acerca", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Mostrar evolução na barra de tarefas", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Colorir fundo com a cor do álbum", - "LABEL_SETTINGS_TAB_APPEARENCE": "Aparência", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Nenhum dispositivo encontrado", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Clique aqui e digitalize o código QR", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Proteger controlo remoto com palavra-passe", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Controlo remoto", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continuar da última sessão", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Tema personalizado", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Desativar aceleração por hardware", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Ao fechar a janela, manter YTMDesktop em segundo plano", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Tamanho da página", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Saída de áudio", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Idioma", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Serviço para letra das faixas", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Agradável", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Desativar barra de título", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistema", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Barra de título do sistema", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Controlos na bandeja (apenas para Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Mostrar notificações", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Iniciar minimizado", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Iniciar com o sistema (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "Geral", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Mostrar informações da faixa perto da barra de volume (Windows 10)", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Ativar serviço multimédia (Windows 10 media service)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integração", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrações", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Guardar e autorizar", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Sempre na frente", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mostrar sempre os controlos", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Colorir controlos conforme a imagem do álbum", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Permitir redimensionamento", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Mostrar na barra de tarefas", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini-reprodutor", - "LABEL_SETTINGS_TAB_PLAYBACK": "Reprodução", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Ler área de transferência para ligações do youtube", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Prima uma tecla", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Atalhos", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "As teclas multimédia apenas controlam o volume desta aplicação", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "Comutar controlo de volume de '%' para 'dB'", - "LABEL_SETTINGS": "Definições", - "LYRICS": "Letra da faixa", - "MEDIA_CONTROL_MINIPLAYER": "Abrir/fechar mini-reprodutor", - "MEDIA_CONTROL_MUTE_UNMUTE": "Sem som/com som", - "MEDIA_CONTROL_NEXT": "Seguinte", - "MEDIA_CONTROL_PAUSE": "Pausa", - "MEDIA_CONTROL_PLAY_PAUSE": "Reproduzir/Pausa", - "MEDIA_CONTROL_PLAY": "Reproduzir", - "MEDIA_CONTROL_PREVIOUS": "Anterior", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Abrir/fechar fila", - "MEDIA_CONTROL_REPEAT": "Repetir", - "MEDIA_CONTROL_SEARCH": "Pesquisar", - "MEDIA_CONTROL_SHUFFLE": "Baralhar", - "MEDIA_CONTROL_THUMBS_DOWN": "Não gosto", - "MEDIA_CONTROL_THUMBS_UP": "Gosto", - "MEDIA_CONTROL_VOLUME_DOWN": "Reduzir volume", - "MEDIA_CONTROL_VOLUME_UP": "Aumentar volume", - "MINIPLAYER": "Mini-reprodutor", - "PREFIX_OPEN_CLOSE": "Abrir/fechar", - "REMOVE_FROM_LIBRARY": "Remover da coleção", - "SHORTCUT_BUTTONS": "Ações na interface", - "SHOW": "Mostrar", - "SKIP_TRACK_MARKED_DISLIKED": "Ignorar faixas com a marca 'Não gosto'", - "SKIP_TRACK_SHORTER_THAN": "Ignorar faixas com duração inferior a", - "TRAY_ICON": "Ícone na bandeja", - "WANT_PLAY_THIS_LINK": "Deseja reproduzir esta ligação?" -} diff --git a/src/locales/ru.json b/src/locales/ru.json deleted file mode 100644 index d834616af..000000000 --- a/src/locales/ru.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Дважды щёлкните, чтобы сбросить положение", - "LABEL_EXIT": "Выход", - "LABEL_GUEST": "Гость", - "LABEL_LOADING": "Загрузка...", - "LABEL_LYRICS": "Текст", - "LABEL_LYRICS_NOT_FOUND": "Текст не найден", - "LABEL_MINIPLAYER": "Мини-плеер", - "LABEL_PLAY_MUSIC": "Воспроизвести музыку", - "LABEL_SETTINGS": "Настройки", - "LABEL_SETTINGS_RELAUNCH": "Применить и перезапустить", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Показать/скрыть основное окно", - "LABEL_SETTINGS_TAB_ABOUT": "О программе", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "Внешний вид", - "LABEL_SETTINGS_TAB_GENERAL": "Общие", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Сопутствующий сервер", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Нажмите здесь и отсканируйте QR-код", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Продолжать, где вы остановились", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Пользовательская тема", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "При закрытии окна оставлять приложение YTMDesktop работать в фоне", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Масштаб страницы", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Язык", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Поставщик текстов", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Стиль заголовка окна", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Крутой", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Отключить", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Системный", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Лёгкое управление в Tray (только для Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Показывать уведомления", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Запускать при загрузке (Mac/Win)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Интеграция", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Скробблер)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Сохранить и авторизоваться", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Мини-плеер", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Поверх всех окон", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Всегда показывать элементы управления", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Закрашивать элементы управления в цвет альбома", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Размер мини-плеер", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Большой", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Нормальный", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Маленький", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Читать буфер обмена для ссылок на YouTube", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Ярлыки", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Глобальные", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Локальные", - "MEDIA_CONTROL_MUTE_UNMUTE": "Отключить/включить звук", - "MEDIA_CONTROL_NEXT": "Следующий трек", - "MEDIA_CONTROL_PAUSE": "Приостановить", - "MEDIA_CONTROL_PLAY": "Воспроизвести", - "MEDIA_CONTROL_PLAY_PAUSE": "Воспроизвести/приостановить", - "MEDIA_CONTROL_PREVIOUS": "Предыдущий трек", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Открыть/закрыть очередь", - "MEDIA_CONTROL_REPEAT": "Повторять", - "MEDIA_CONTROL_SEARCH": "Поиск", - "MEDIA_CONTROL_SHUFFLE": "Перемешать", - "MEDIA_CONTROL_THUMBS_DOWN": "Не нравится", - "MEDIA_CONTROL_THUMBS_UP": "Нравится" -} diff --git a/src/locales/scaffold.json b/src/locales/scaffold.json deleted file mode 100644 index 464f60389..000000000 --- a/src/locales/scaffold.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "ADD_TO_LIBRARY": "Add to library", - "ADD_TO_PLAYLIST": "Add to playlist", - "ALWAYS_ASK_WHEN_READ_LINK": "Always ask when read link", - "DOUBLE_CLICK_TO_RESET_POSITION": "Double Click to Reset Position", - "LABEL_ALSO": "Also", - "LABEL_AUDIO": "Audio", - "LABEL_CANCEL": "Cancel", - "LABEL_CHANGELOG": "What's new", - "LABEL_DISABLE": "Disable", - "LABEL_EXIT": "Exit", - "LABEL_GUEST": "Guest", - "LABEL_LOADING": "Loading...", - "LABEL_LYRICS_NOT_FOUND": "Lyrics not found", - "LABEL_LYRICS": "Lyrics", - "LABEL_MINIPLAYER": "Miniplayer", - "LABEL_NOTIFICATION_DISLIKED": "You disliked this song", - "LABEL_NOTIFICATION_LIKED": "You liked this song", - "LABEL_PLAY_MUSIC": "Play music", - "LABEL_SAVE": "Save", - "LABEL_SAVED": "Saved", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "Show artist", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "Show track when playback is paused", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "Show track time", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "Show title", - "LABEL_SETTINGS_DISCORD": "Discord settings", - "LABEL_SETTINGS_RELAUNCH": "Apply and restart", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Show/Hide Main Window", - "LABEL_SETTINGS_TAB_ABOUT": "About", - "LABEL_SETTINGS_TAB_ABOUT_DISABLE_ANALYTICS": "Disable Application Analytics", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Show track progress on taskbar", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "Paint background with album color", - "LABEL_SETTINGS_TAB_APPEARENCE": "Appearance", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "No devices found", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Click here and scan QR Code", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "Protect remote control with password", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Remote control", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Continue where you left off", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Custom theme", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "Disable hardware acceleration", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Keep YTMDesktop on background when window close", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Page zoom", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Audio output", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Language", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Lyrics provider", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Nice", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Disable titlebar", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "System", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Title bar style", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Easy Tray Control(For Mac OS only)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Show notifications", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Start minimized", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Start on Boot (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "General", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "Show track information next to the Windows 10 volume bar", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "Enable Windows 10 media service", - "LABEL_SETTINGS_TAB_INTEGRATION": "Integration", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "Integrations", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Save and authorize", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Always on top", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Always show controls", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Paint controls with album color", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "Allow resizing", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "Show on taskbar", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Miniplayer", - "LABEL_SETTINGS_TAB_PLAYBACK": "Playback", - "LABEL_SETTINGS_TAB_PLAYBACK_SURROUND_SOUND": "Surround Sound/Speaker Fill", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Read clipboard for youtube links", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Local", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "Press any key", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Shortcuts", - "LABEL_SETTINGS": "Settings", - "LYRICS": "Lyrics", - "MEDIA_CONTROL_MINIPLAYER": "Open/Close Miniplayer", - "MEDIA_CONTROL_MUTE_UNMUTE": "Mute/Unmute", - "MEDIA_CONTROL_NEXT": "Next", - "MEDIA_CONTROL_PAUSE": "Pause", - "MEDIA_CONTROL_PLAY_PAUSE": "Play/Pause", - "MEDIA_CONTROL_PLAY": "Play", - "MEDIA_CONTROL_PREVIOUS": "Previous", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Open/Close Queue", - "MEDIA_CONTROL_REPEAT": "Repeat", - "MEDIA_CONTROL_SEARCH": "Search", - "MEDIA_CONTROL_SHUFFLE": "Shuffle", - "MEDIA_CONTROL_THUMBS_DOWN": "Thumbs Down", - "MEDIA_CONTROL_THUMBS_UP": "Thumbs Up", - "MEDIA_CONTROL_VOLUME_DOWN": "Decrease volume", - "MEDIA_CONTROL_VOLUME_UP": "Increase volume", - "MINIPLAYER": "Miniplayer", - "PREFIX_OPEN_CLOSE": "Open/Close", - "REMOVE_FROM_LIBRARY": "Remove from library", - "SHORTCUT_BUTTONS": "UI Actions", - "SHOW": "Show", - "SKIP_TRACK_MARKED_DISLIKED": "Skip tracks marked as 'Disliked'", - "SKIP_TRACK_SHORTER_THAN": "Skip tracks shorter than", - "TRAY_ICON": "Tray icon", - "WANT_PLAY_THIS_LINK": "Want to play this link?" -} diff --git a/src/locales/th.json b/src/locales/th.json deleted file mode 100644 index bc5a6a08a..000000000 --- a/src/locales/th.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "ADD_TO_LIBRARY": "เพิ่มไปยังไลบรารี", - "ADD_TO_PLAYLIST": "เพิ่มไปยังเพลย์ลิสต์", - "ALWAYS_ASK_WHEN_READ_LINK": "ให้ถามเสมอเมื่ออ่านลิงก์", - "DOUBLE_CLICK_TO_RESET_POSITION": "ดับเบิ้ลคลิกเพื่อรีเซ็ตตำแหน่ง", - "LABEL_ALSO": "อีกทั้ง", - "LABEL_AUDIO": "เสียง", - "LABEL_CANCEL": "ยกเลิก", - "LABEL_CHANGELOG": "มีอะไรใหม่", - "LABEL_DISABLE": "ปิดใช้งาน", - "LABEL_EXIT": "ออก", - "LABEL_GUEST": "แขก", - "LABEL_LOADING": "กำลังโหลด...", - "LABEL_LYRICS_NOT_FOUND": "ไม่พบเนื้อเพลง", - "LABEL_LYRICS": "เนื้อเพลง", - "LABEL_MINIPLAYER": "มินิเพลย์เยอร์", - "LABEL_NOTIFICATION_DISLIKED": "เนำออกจากเพลงที่ชอบแล้ว", - "LABEL_NOTIFICATION_LIKED": "เพิ่มไปยังเพลงที่ชอบแล้ว", - "LABEL_PLAY_MUSIC": "เล่นเพลง", - "LABEL_SAVE": "บันทึก", - "LABEL_SAVED": "บันทึกแล้ว", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "แสดงศิลปิน", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "แสดงแทร็กเมื่อกำลังหยุดเล่น", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "แสดงเวลาของแทร็ก", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "แสดงชื่อ", - "LABEL_SETTINGS_DISCORD": "ตั้งค่า Discord", - "LABEL_SETTINGS_RELAUNCH": "นำไปใช้และรีสตาร์ด", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "แสดง/ซ่อนหน้าต่างหลัก", - "LABEL_SETTINGS_TAB_ABOUT": "เกี่ยวกับ", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "แสดงความคืบหน้าของแทร็กในแถบงาน", - "LABEL_SETTINGS_TAB_APPEARENCE": "ลักษณะ", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "ไม่พบอุปกรณ์", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "คลิกที่นี่แล้วสแกน QR โค้ด", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "ป้องกันการควบคุมระยะไกลด้วยรหัสผ่าน", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "การควบคุมระยะไกล", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "เล่นต่อจากที่ค้างไว้", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "ธีมกำหนดเอง", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "ปิดใช้งานการเร่งด้วยฮาร์ดแวร์", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "เปิด YTMDesktop ไว้ในพื้นหลังเมื่อปิดหน้าต่าง", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "ซูมหน้า", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "เอาต์พุตเสียง", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "ภาษา", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "ผู้ให้บริการเนื้อเพลง", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "สวยงาม", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "ปิดแถบหัวเรื่อง", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "ระบบ", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "สไตล์แถบหัวเรื่อง", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "การควบคุมถาดอย่างง่าย (สำหรับ Mac OS เท่านั้น)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "แสดงการแจ้งเตือน", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "เปิดแบบย่อในถาดระบบ", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "เปิดเมื่อบูต (Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "ทั่วไป", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "แสดงข้อมูลแทร็กข้างแถบระดับเสียงของ Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "เปิดใช้งานบริการสื่อ Windows 10", - "LABEL_SETTINGS_TAB_INTEGRATION": "การบูรณาการ", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "การบูรณาการ", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "บันทึกและให้สิทธิ์", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "อยู่ข้างบนเสมอ", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "แสดงปุ่มควบคุมเสมอ", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "ระบายปุ่มสีควบคุมด้วยสีอัลบั้ม", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "อนุญาตให้ปรับขนาด", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "แสดงบนแถบงาน", - "LABEL_SETTINGS_TAB_MINIPLAYER": "มินิเพลย์เยอร์", - "LABEL_SETTINGS_TAB_PLAYBACK": "การเล่น", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "อ่านลิงก์ Youtube ในคลิปบอร์ด", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "ทั่วไป", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "เฉพาะที่", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "กดปุ่มใดก็ได้", - "LABEL_SETTINGS_TAB_SHORTCUTS": "ปุ่มลัด", - "LABEL_SETTINGS": "ตั้งค่า", - "LYRICS": "เนื้อเพลง", - "MEDIA_CONTROL_MINIPLAYER": "เปิด/ปิดมินิเพลย์เยอร์", - "MEDIA_CONTROL_MUTE_UNMUTE": "เปิด/ปิด", - "MEDIA_CONTROL_NEXT": "ถัดไป", - "MEDIA_CONTROL_PAUSE": "หยุดชั่วคราว", - "MEDIA_CONTROL_PLAY_PAUSE": "เล่น/หยุดชั่วคราว", - "MEDIA_CONTROL_PLAY": "เล่น", - "MEDIA_CONTROL_PREVIOUS": "ก่อนหน้า", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "เปิด/ปิดคิว", - "MEDIA_CONTROL_REPEAT": "วนซ้ำ", - "MEDIA_CONTROL_SEARCH": "ค้นหา", - "MEDIA_CONTROL_SHUFFLE": "สุ่ม", - "MEDIA_CONTROL_THUMBS_DOWN": "ไม่ถูกใจ", - "MEDIA_CONTROL_THUMBS_UP": "ถูกใจ", - "MEDIA_CONTROL_VOLUME_DOWN": "ลดระดับเสียง", - "MEDIA_CONTROL_VOLUME_UP": "เพิ่มระดับเสียง", - "MINIPLAYER": "มินิเพลยเยอร์", - "PREFIX_OPEN_CLOSE": "เปิด/ปิด", - "SHORTCUT_BUTTONS": "การกระทำ UI", - "SHOW": "แสดง", - "SKIP_TRACK_MARKED_DISLIKED": "ข้ามแทร็กที่ถูกตั้งไว้ว่า 'ไม่ถูกใจ'", - "SKIP_TRACK_SHORTER_THAN": "ข้ามแทร็กที่สั้นกว่า", - "TRAY_ICON": "ไอคอนถาด", - "WANT_PLAY_THIS_LINK": "ต้องการเล่นลิงก์นี้หรือไม่?" -} diff --git a/src/locales/tr.json b/src/locales/tr.json deleted file mode 100644 index 219d77d9d..000000000 --- a/src/locales/tr.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "DOUBLE_CLICK_TO_RESET_POSITION", - "LABEL_EXIT": "Çıkış", - "LABEL_GUEST": "Misafir", - "LABEL_LOADING": "Yükleniyor...", - "LABEL_LYRICS": "Sözler", - "LABEL_LYRICS_NOT_FOUND": "Sözler bulunamadı", - "LABEL_MINIPLAYER": "Mini Oynatıcı", - "LABEL_PLAY_MUSIC": "Müzik Oynat", - "LABEL_SETTINGS": "Ayarlar", - "LABEL_SETTINGS_RELAUNCH": "Uygula ve yeniden başlat", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Ana Pencereyi Göster/Gizle", - "LABEL_SETTINGS_TAB_ABOUT": "Hakkında", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR", - "LABEL_SETTINGS_TAB_APPEARENCE": "Görünüm", - "LABEL_SETTINGS_TAB_GENERAL": "Genel", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Tamamlayıcı Sunucu", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Buraya tıklayın ve QR Kodunu tarayın", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Kaldığınız yerden devam edin", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Özel Tema", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord Rich Presence", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Pencere kapatıldığında YTMDesktop Uygulamasını arka planda tut", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Sayfa Yakınlaştırma", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Dil", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Başlık Çubuğu Stili", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Güzel", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Başlık çubuğunu devre dışı bırak", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Sistem", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Kolay Tepsi Kontrolü (yalnızca MacOS için)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Bildirimleri Göster", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Başlangıçta Başlat (deneysel, Mac/Win32)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Entegrasyon", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Kaydet ve yetkilendir", - "LABEL_SETTINGS_TAB_MACOS": "MacOS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini Oynatıcı", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying(Şimdi çalınıyor özelliği için))", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Youtube bağlantıları için panoyu okut", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Kısayollar", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Global", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Lokal", - "MEDIA_CONTROL_MUTE_UNMUTE": "Sustur / Susturmayı Kaldır", - "MEDIA_CONTROL_NEXT": "Sonraki", - "MEDIA_CONTROL_PAUSE": "Duraklat", - "MEDIA_CONTROL_PLAY": "Oynat", - "MEDIA_CONTROL_PLAY_PAUSE": "Oynat / Duraklat", - "MEDIA_CONTROL_PREVIOUS": "Önceki", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Sıradakini Aç / Kapat", - "MEDIA_CONTROL_REPEAT": "Tekrarla", - "MEDIA_CONTROL_SEARCH": "Ara", - "MEDIA_CONTROL_SHUFFLE": "Karıştır", - "MEDIA_CONTROL_THUMBS_DOWN": "Beğenmedim", - "MEDIA_CONTROL_THUMBS_UP": "Beğendim" -} diff --git a/src/locales/uk.json b/src/locales/uk.json deleted file mode 100644 index 24b05bdf0..000000000 --- a/src/locales/uk.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "DOUBLE_CLICK_TO_RESET_POSITION": "Подвійний клік для скидання положення", - "LABEL_EXIT": "Вихід", - "LABEL_GUEST": "Гість", - "LABEL_LOADING": "Завантаження...", - "LABEL_LYRICS": "Текст", - "LABEL_LYRICS_NOT_FOUND": "Текст не знайдено", - "LABEL_MINIPLAYER": "Міні-плеєр", - "LABEL_PLAY_MUSIC": "Грати музику", - "LABEL_SETTINGS": "Налаштування", - "LABEL_SETTINGS_RELAUNCH": "Застосувати і перезапустити", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "Показати/Сховати головне вікно", - "LABEL_SETTINGS_TAB_ABOUT": "Про програму", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "Показати хід треку на панелі завдань", - "LABEL_SETTINGS_TAB_APPEARENCE": "Зовнішній вигляд", - "LABEL_SETTINGS_TAB_GENERAL": "Основні налаштування", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "Не знайдено аудіо пристроїв", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "Companion Server", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "Нажміть тут щоб просканувати QR код", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "Продовжувати, з місця зупинки", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "Кастомні теми", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord інтеграція", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "Сховати додаток у фоні при закритті вікна", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "Масштаб сторінки", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "Аудіовихід", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "Мова", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "Джерело текстів", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "Стиль заголовків", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "Нормальний", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "Вимкнути панель заголовків", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "Системний", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "Easy Tray Control (For Mac OS only)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "Показувати сповіщення", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "Запуск у згорнутому стані", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "Запуск при завантаженні (експериментальний, Mac / Win32)", - "LABEL_SETTINGS_TAB_INTEGRATION": "Інтеграція", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "Last FM (Scrobbler)", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "Зберегти та авторизуватись", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Міні-плеєр", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Завжди зверху", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Завжди показувати елементи керування", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Колір меню такий як колір альбому", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE": "Розмір міні-плеєру", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_LARGE": "Великий", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_NORMAL": "Нормальний", - "LABEL_SETTINGS_TAB_MINIPLAYER_SELECT_SIZE_SMALL": "Малий", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "Читати буфер обміну для посилань на YouTube", - "LABEL_SETTINGS_TAB_SHORTCUTS": "Ярлики", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "Глобальний", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "Локальний", - "MEDIA_CONTROL_MUTE_UNMUTE": "Увімкнути / Вимкнути звук", - "MEDIA_CONTROL_NEXT": "Наступний трек", - "MEDIA_CONTROL_PAUSE": "Пауза", - "MEDIA_CONTROL_PLAY": "Грати", - "MEDIA_CONTROL_PLAY_PAUSE": "Грати / Пауза", - "MEDIA_CONTROL_PREVIOUS": "Попередній трек", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "Відкрити / Закрити чергу", - "MEDIA_CONTROL_REPEAT": "Повтор", - "MEDIA_CONTROL_SEARCH": "Пошук", - "MEDIA_CONTROL_SHUFFLE": "Перемішати", - "MEDIA_CONTROL_THUMBS_DOWN": "Палець вниз", - "MEDIA_CONTROL_THUMBS_UP": "Палець вверх" -} diff --git a/src/locales/zh.json b/src/locales/zh.json deleted file mode 100644 index 3c8ed77c9..000000000 --- a/src/locales/zh.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "ADD_TO_LIBRARY": "添加到库", - "ADD_TO_PLAYLIST": "添加到播放列表", - "ALWAYS_ASK_WHEN_READ_LINK": "读取链接前永远询问", - "DOUBLE_CLICK_TO_RESET_POSITION": "双击重置位置", - "LABEL_ALSO": "Also", - "LABEL_AUDIO": "音频", - "LABEL_CANCEL": "取消", - "LABEL_CHANGELOG": "更新日志", - "LABEL_DISABLE": "禁用", - "LABEL_EXIT": "退出", - "LABEL_GUEST": "匿名模式", - "LABEL_LOADING": "载入中...", - "LABEL_LYRICS_NOT_FOUND": "找不到歌词", - "LABEL_LYRICS": "歌词", - "LABEL_LYRICS_GENIUS_AUTH": "YTMDesktop 需要 Genius 账号授权(http://localhost:9864/login)或者禁用 Genius 歌词 \"设置 > 集成 > 启用 Genius 歌词\"", - "LABEL_MINIPLAYER": "Mini 播放器", - "LABEL_NOTIFICATION_DISLIKED": "你不喜欢这首歌", - "LABEL_NOTIFICATION_LIKED": "你喜欢这首歌", - "LABEL_PLAY_MUSIC": "播放音乐", - "LABEL_SAVE": "保存", - "LABEL_SAVED": "已保存", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "显示艺术家", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "播放暂停的时候显示曲目", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "显示曲目时间", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "显示标题", - "LABEL_SETTINGS_DISCORD": "Discord 设置", - "LABEL_SETTINGS_RELAUNCH": "应用并重启", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "隐藏/显示主窗口", - "LABEL_SETTINGS_TAB_ABOUT": "关于", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "任务栏图标显示播放进度", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景使用专辑色彩", - "LABEL_SETTINGS_TAB_APPEARENCE": "显示", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "没有找到设备", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "远端控制", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "点击此处扫码连接", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "远端控制启用密码保护", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "退出时保存当前播放队列", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "自定义主题", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "禁用硬件加速", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord 集成", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "关闭窗口时保持后台播放", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "页面缩放", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "选择输出音频设备", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "语言(Language)", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "选择歌词来源", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "标题栏风格", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "集成", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "禁用", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "跟随系统", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "启用托盘区控制(仅Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "显示通知", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "开启最小化", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "开机启动 (实验功能, Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "偏好设置", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在 Windows 10 音量栏旁边显示曲目信息", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "启用 Windows 10 媒体服务", - "LABEL_SETTINGS_TAB_INTEGRATION": "集成", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM 集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "绑定 LAST FM 账号", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS X", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "Mini 播放器窗口置顶", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "Mini 播放器控制显示锁定", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "Mini 播放器绘制设置", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允许调整 Mini 播放器大小", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任务栏显示 Mini 播放器", - "LABEL_SETTINGS_TAB_MINIPLAYER": "Mini播放器", - "LABEL_SETTINGS_TAB_PLAYBACK": "播放", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "阅读剪贴板中的 YouTube 链接", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "全局", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "本地", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "按任意键", - "LABEL_SETTINGS_TAB_SHORTCUTS": "快捷键", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "音量媒体按键仅控制 app 音量", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "切换音量控制 '%' 至 'dB'", - "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "启用 Genius 歌词", - "LABEL_SETTINGS": "设置", - "LABEL_SHUTDOWN": "关闭", - "LYRICS": "歌词", - "MEDIA_CONTROL_MINIPLAYER": "打开/关闭 Mini 播放器", - "MEDIA_CONTROL_MUTE_UNMUTE": "静音", - "MEDIA_CONTROL_NEXT": "下一首", - "MEDIA_CONTROL_PAUSE": "暂停", - "MEDIA_CONTROL_PLAY_PAUSE": "播放/暂停", - "MEDIA_CONTROL_PLAY": "播放", - "MEDIA_CONTROL_PREVIOUS": "上一首", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "打开/关闭队列", - "MEDIA_CONTROL_REPEAT": "重复", - "MEDIA_CONTROL_SEARCH": "搜索", - "MEDIA_CONTROL_SHUFFLE": "随机", - "MEDIA_CONTROL_THUMBS_DOWN": "踩", - "MEDIA_CONTROL_THUMBS_UP": "赞", - "MEDIA_CONTROL_VOLUME_DOWN": "减小音量", - "MEDIA_CONTROL_VOLUME_UP": "增大音量", - "MINIPLAYER": "Mini 播放器", - "PREFIX_OPEN_CLOSE": "打开/关闭", - "REMOVE_FROM_LIBRARY": "从库中移除", - "SHORTCUT_BUTTONS": "用户界面行为", - "SHOW": "显示", - "SKIP_TRACK_MARKED_DISLIKED": "跳过\"不喜欢\"标记", - "SKIP_TRACK_SHORTER_THAN": "跳过播放长度短于", - "TRAY_ICON": "任务栏图标", - "WANT_PLAY_THIS_LINK": "要播放本链接吗?" -} From c62b540a2c4bac374128fd571ab46427cd9f5bc3 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Fri, 17 Jun 2022 13:03:57 +0100 Subject: [PATCH 148/489] Create readme.md --- src/locales/readme.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/locales/readme.md diff --git a/src/locales/readme.md b/src/locales/readme.md new file mode 100644 index 000000000..14f6829b2 --- /dev/null +++ b/src/locales/readme.md @@ -0,0 +1,3 @@ +Looking for the locales for YTMDesktop + +They've moved over to https://github.com/ytmdesktop/ytmdesktop-locales/ 😄 From cbdc82cf91d85e81849852c5af1e7baf61000d2d Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sat, 9 Jul 2022 12:06:49 +0100 Subject: [PATCH 149/489] =?UTF-8?q?=F0=9F=93=9D=20[XeroxDev]=20Add=20user?= =?UTF-8?q?=20friendly=20issue=20templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restores the PR from [XeroxDev] back to main branch and will move also to Master to keep changes when the next Merge to main happens 👀 --- .github/ISSUE_TEMPLATE/BUG-REPORT.yml | 82 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml | 40 +++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 34 --------- .github/ISSUE_TEMPLATE/feature_request.md | 23 ------ 4 files changed, 122 insertions(+), 57 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/BUG-REPORT.yml create mode 100644 .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml new file mode 100644 index 000000000..ad43aeb01 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml @@ -0,0 +1,82 @@ +name: Bug Report +description: File a bug report +title: "" +labels: ["bug"] +body: +- type: checkboxes + attributes: + label: Consent + options: + - label: I verified that there is no open/closed issue for the same subject. + required: true + - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** + required: true +- type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: true +- type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: true +- type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true +- type: input + attributes: + label: YTMDesktop + description: "YTMDesktop version" + placeholder: v1.2.3 + validations: + required: true +- type: input + attributes: + label: OS + description: "Which OS are you using?" + value: Windows + validations: + required: true +- type: input + attributes: + label: OS Version + description: "Which OS Version are you on?" + value: "10" + validations: + required: true +- type: dropdown + attributes: + label: Arch + description: "Which arch are you using?" + options: + - x64 + - x86 + validations: + required: true +- type: input + attributes: + label: Installation way + description: "like .exe or snapcraft or another way" + placeholder: .exe + validations: + required: true +- type: textarea + attributes: + label: Anything else? + description: | + Links? Screenshots? References? Anything that will give us more context about the issue you are encountering! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml new file mode 100644 index 000000000..1fad6a206 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml @@ -0,0 +1,40 @@ +name: Feature request +description: Suggest an idea for this project +title: "<TITLE HERE>" +labels: ["enhancement"] +body: +- type: checkboxes + attributes: + label: Consent + options: + - label: I verified that there is no open/closed issue for the same subject. + required: true + - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** + required: true +- type: textarea + attributes: + label: Feature + description: Describe the feature you'd like + validations: + required: true +- type: textarea + attributes: + label: Solution + description: Describe the solution you'd like + validations: + required: false +- type: textarea + attributes: + label: Alternatives + description: Describe alternatives you've considered + validations: + required: false +- type: textarea + attributes: + label: Anything else? + description: | + Links? Screenshots? References? Anything that will give us more context about the feature you are wish to add! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 540d1490c..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -- [ ] I understand that **YTMDesktop have NO affiliation with Google or YouTube**. -- [ ] I verified that there is no open issue for the same subject. - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - <!-- !!!!! If you are using a build from the development branch, please instead include the commit hash you are on --> - * YTMDesktop version: ***vx.x.x*** - * OS: ***Windows*** or ***Linux*** or ***Mac*** - * OS version: ***X*** - * Arch: ***x64*** or ***x86*** -* Installation way: ***like .exe or snapcraft or another way*** diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 925c62ea7..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -- [ ] I understand that **YTMDesktop have NO affiliation with Google or YouTube**. -- [ ] I verified that there is no open issue for the same subject. - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From 255b7faa4528181b986868fcde3364fa81d731fd Mon Sep 17 00:00:00 2001 From: Alipoodle <ali.poodle12@gmail.com> Date: Sat, 9 Jul 2022 12:06:49 +0100 Subject: [PATCH 150/489] =?UTF-8?q?=F0=9F=93=9D=20[XeroxDev]=20Add=20user?= =?UTF-8?q?=20friendly=20issue=20templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restores the PR from [XeroxDev] back to main branch and will move also to Master to keep changes when the next Merge to main happens 👀 --- .github/ISSUE_TEMPLATE/BUG-REPORT.yml | 82 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml | 40 +++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 34 --------- .github/ISSUE_TEMPLATE/feature_request.md | 23 ------ 4 files changed, 122 insertions(+), 57 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/BUG-REPORT.yml create mode 100644 .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml new file mode 100644 index 000000000..ad43aeb01 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml @@ -0,0 +1,82 @@ +name: Bug Report +description: File a bug report +title: "<TITLE HERE>" +labels: ["bug"] +body: +- type: checkboxes + attributes: + label: Consent + options: + - label: I verified that there is no open/closed issue for the same subject. + required: true + - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** + required: true +- type: textarea + attributes: + label: Current Behavior + description: A concise description of what you're experiencing. + validations: + required: true +- type: textarea + attributes: + label: Expected Behavior + description: A concise description of what you expected to happen. + validations: + required: true +- type: textarea + attributes: + label: Steps To Reproduce + description: Steps to reproduce the behavior. + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true +- type: input + attributes: + label: YTMDesktop + description: "YTMDesktop version" + placeholder: v1.2.3 + validations: + required: true +- type: input + attributes: + label: OS + description: "Which OS are you using?" + value: Windows + validations: + required: true +- type: input + attributes: + label: OS Version + description: "Which OS Version are you on?" + value: "10" + validations: + required: true +- type: dropdown + attributes: + label: Arch + description: "Which arch are you using?" + options: + - x64 + - x86 + validations: + required: true +- type: input + attributes: + label: Installation way + description: "like .exe or snapcraft or another way" + placeholder: .exe + validations: + required: true +- type: textarea + attributes: + label: Anything else? + description: | + Links? Screenshots? References? Anything that will give us more context about the issue you are encountering! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml new file mode 100644 index 000000000..1fad6a206 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml @@ -0,0 +1,40 @@ +name: Feature request +description: Suggest an idea for this project +title: "<TITLE HERE>" +labels: ["enhancement"] +body: +- type: checkboxes + attributes: + label: Consent + options: + - label: I verified that there is no open/closed issue for the same subject. + required: true + - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** + required: true +- type: textarea + attributes: + label: Feature + description: Describe the feature you'd like + validations: + required: true +- type: textarea + attributes: + label: Solution + description: Describe the solution you'd like + validations: + required: false +- type: textarea + attributes: + label: Alternatives + description: Describe alternatives you've considered + validations: + required: false +- type: textarea + attributes: + label: Anything else? + description: | + Links? Screenshots? References? Anything that will give us more context about the feature you are wish to add! + + Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 540d1490c..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -- [ ] I understand that **YTMDesktop have NO affiliation with Google or YouTube**. -- [ ] I verified that there is no open issue for the same subject. - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - <!-- !!!!! If you are using a build from the development branch, please instead include the commit hash you are on --> - * YTMDesktop version: ***vx.x.x*** - * OS: ***Windows*** or ***Linux*** or ***Mac*** - * OS version: ***X*** - * Arch: ***x64*** or ***x86*** -* Installation way: ***like .exe or snapcraft or another way*** diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 925c62ea7..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -- [ ] I understand that **YTMDesktop have NO affiliation with Google or YouTube**. -- [ ] I verified that there is no open issue for the same subject. - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From aab38001dd487e1a03575f9a125cbc0080736710 Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 17:08:39 -0800 Subject: [PATCH 151/489] :speech_balloon: Add a link to OBS widget repo #1065 --- src/pages/settings/settings.html | 378 ++++++++++++++++++++++++++----- 1 file changed, 326 insertions(+), 52 deletions(-) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index e9c170f65..16a06cdef 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -33,11 +33,20 @@ href="#tab-general" > <i - class="material-icons left icon-normalize hide" + class=" + material-icons + left + icon-normalize + hide + " >dashboard</i > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >blur_on</i > <span @@ -51,7 +60,11 @@ href="#tab-appearance" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >personal_video</i > <span @@ -65,7 +78,11 @@ href="#tab-playback" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >music_note</i > <span @@ -79,7 +96,11 @@ href="#tab-miniplayer" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >picture_in_picture_alt</i > <span @@ -93,11 +114,20 @@ href="#tab-integration" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >wifi_tethering</i > <i - class="material-icons left icon-normalize hide" + class=" + material-icons + left + icon-normalize + hide + " >linear_scale</i > <span @@ -111,7 +141,11 @@ href="#tab-shortcut" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >keyboard</i > <span @@ -125,7 +159,11 @@ href="#tab-about" > <i - class="material-icons left icon-normalize" + class=" + material-icons + left + icon-normalize + " >info_outline</i > <span @@ -259,7 +297,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -284,7 +326,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -371,11 +417,20 @@ id="settings-app-audio-output" ></select> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-reload-audio-devices" > <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </button> @@ -558,7 +613,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -679,7 +738,11 @@ ></span> <sub class="tooltip"> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >info</i > <span @@ -786,7 +849,12 @@ <td class="right"> <div class="switch"> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-editor-custom-css-page" > <i class="material-icons" @@ -815,7 +883,12 @@ style="margin-right: 12px" > <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-shortcut-buttons-setting" > <i class="material-icons" @@ -845,7 +918,12 @@ i18n="i18n_LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER" ></span> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-open-companion-server" > <i class="material-icons tiny" @@ -906,7 +984,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -915,7 +997,12 @@ <td class="right"> <div class="switch"> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-discord-setting" > <i class="material-icons" @@ -980,7 +1067,12 @@ <td class="right"> <div class="switch"> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-last-fm-login" > <i class="material-icons" @@ -1016,7 +1108,10 @@ </td> </tr> <tr - class="windows-specific windows10-specific" + class=" + windows-specific + windows10-specific + " > <td> <span @@ -1024,7 +1119,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -1043,7 +1142,10 @@ </tr> <tr id="windows-10-show-info" - class="windows-specific windows10-specific" + class=" + windows-specific + windows10-specific + " > <td> <span @@ -1054,7 +1156,11 @@ ></span> <sub> <i - class="material-icons tiny grey-text" + class=" + material-icons + tiny + grey-text + " >autorenew</i > </sub> @@ -1078,7 +1184,12 @@ i18n="i18n_LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS" ></span> <button - class="waves-effect waves-light btn-flat white-text btn-tiny" + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " id="btn-open-genius-auth-server" > <i class="material-icons tiny" @@ -1098,6 +1209,27 @@ </div> </td> </tr> + <tr> + <td> + <span + >OBS Studio(Open Broadcaster + Software)</span + > + <a + class=" + waves-effect waves-light + btn-flat + white-text + btn-tiny + " + externalURL="https://github.com/topik/youtube-music-obs-widget" + > + <i class="material-icons tiny" + >open_in_new</i + > + </a> + </td> + </tr> </thead> </table> </div> @@ -1116,19 +1248,35 @@ <div class="modal-footer black-text"> <a id="disableAccelerator" - class="modal-close waves-effect waves-red btn-flat btn-sm red left" + class=" + modal-close + waves-effect waves-red + btn-flat btn-sm + red + left + " > <span i18n="i18n_LABEL_DISABLE"></span> </a> <a id="cancelAccelerator" - class="modal-close waves-effect waves-red btn-flat btn-sm black-text" + class=" + modal-close + waves-effect waves-red + btn-flat btn-sm + black-text + " > <span i18n="i18n_LABEL_CANCEL"></span> </a> <a id="saveAccelerator" - class="modal-close waves-effect waves-green btn-flat btn-sm black-text" + class=" + modal-close + waves-effect waves-green + btn-flat btn-sm + black-text + " > <span i18n="i18n_LABEL_SAVE"></span> </a> @@ -1149,13 +1297,25 @@ <button id="btn-accelerator-media-play-pause" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-play-pause" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1164,13 +1324,25 @@ i18n="i18n_LABEL_ALSO" ></span> <a - class="btn btn-small white black-text disable btn-normalize" + class=" + btn btn-small + white + black-text + disable + btn-normalize + " > <i - class="material-icons media-icons" + class=" + material-icons + media-icons + " >play_arrow</i >/<i - class="material-icons media-icons" + class=" + material-icons + media-icons + " >pause</i > </a> @@ -1186,13 +1358,25 @@ <button id="btn-accelerator-media-track-next" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-track-next" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1201,10 +1385,19 @@ i18n="i18n_LABEL_ALSO" ></span> <a - class="btn btn-small white black-text disable btn-normalize" + class=" + btn btn-small + white + black-text + disable + btn-normalize + " > <i - class="material-icons media-icons" + class=" + material-icons + media-icons + " >skip_next</i > </a> @@ -1220,13 +1413,25 @@ <button id="btn-accelerator-media-track-previous" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-track-previous" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1235,10 +1440,19 @@ i18n="i18n_LABEL_ALSO" ></span> <a - class="btn btn-small white black-text disable btn-normalize" + class=" + btn btn-small + white + black-text + disable + btn-normalize + " > <i - class="material-icons media-icons" + class=" + material-icons + media-icons + " >skip_previous</i > </a> @@ -1254,13 +1468,25 @@ <button id="btn-accelerator-media-track-like" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-track-like" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1276,13 +1502,25 @@ <button id="btn-accelerator-media-track-dislike" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-track-dislike" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1298,13 +1536,25 @@ <button id="btn-accelerator-media-volume-up" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-volume-up" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1320,13 +1570,25 @@ <button id="btn-accelerator-media-volume-down" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_media-volume-down" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> @@ -1365,13 +1627,25 @@ <button id="btn-accelerator-miniplayer-open-close" data-target="modalEditAccelerator" - class="modal-trigger waves-effect waves-light btn-small text-initial black-text white" + class=" + modal-trigger + waves-effect + waves-light + btn-small + text-initial + black-text + white + " > <span id="settings-accelerators_miniplayer-open-close" ></span> <i - class="tiny material-icons left" + class=" + tiny + material-icons + left + " >edit</i > </button> From 55fa7053c5f6b779d0a1aaeff99fafe6aa552bbc Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 17:41:58 -0800 Subject: [PATCH 152/489] :arrow_up: Upgrade `electron-builder` --- package.json | 4 +- yarn.lock | 2636 +++++++++++++++++++++++++++++++------------------- 2 files changed, 1641 insertions(+), 999 deletions(-) diff --git a/package.json b/package.json index dfb0247ff..ebeb0c1c3 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,11 @@ "devDependencies": { "@types/electron": "^1.6.10", "electron": "^11.4.9", - "electron-builder": "^22.9.1", + "electron-builder": "^23.6.0", "electron-rebuild": "^2.3.4", "husky": "^4.3.7", + "lzma-native": "^8.0.6", + "node-gyp": "^9.3.1", "nodemon": "^2.0.7", "prettier": "^2.2.1", "pretty-quick": "^2.0.2" diff --git a/yarn.lock b/yarn.lock index b22e527aa..8ff218029 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,26 +2,26 @@ # yarn lockfile v1 -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== +"7zip-bin@~5.1.1": + version "5.1.1" + resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz" + integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== "@babel/code-frame@^7.0.0": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== "@babel/highlight@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" @@ -30,14 +30,14 @@ "@babel/runtime@^7.7.2": version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" "@develar/schema-utils@~2.6.5": version "2.6.5" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== dependencies: ajv "^6.12.0" @@ -45,7 +45,7 @@ "@electron/get@^1.0.1": version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" + resolved "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz" integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== dependencies: debug "^4.1.1" @@ -59,9 +59,27 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" +"@electron/universal@1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz" + integrity sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ== + dependencies: + "@malept/cross-spawn-promise" "^1.1.0" + asar "^3.1.0" + debug "^4.3.1" + dir-compare "^2.4.0" + fs-extra "^9.0.1" + minimatch "^3.0.4" + plist "^3.0.4" + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + "@jimp/bmp@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624" + resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz" integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg== dependencies: "@babel/runtime" "^7.7.2" @@ -71,7 +89,7 @@ "@jimp/core@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85" + resolved "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz" integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw== dependencies: "@babel/runtime" "^7.7.2" @@ -89,7 +107,7 @@ "@jimp/custom@^0.9.3": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1" + resolved "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz" integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw== dependencies: "@babel/runtime" "^7.7.2" @@ -98,7 +116,7 @@ "@jimp/gif@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b" + resolved "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz" integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA== dependencies: "@babel/runtime" "^7.7.2" @@ -108,7 +126,7 @@ "@jimp/jpeg@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1" + resolved "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz" integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g== dependencies: "@babel/runtime" "^7.7.2" @@ -118,7 +136,7 @@ "@jimp/plugin-resize@^0.9.3": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02" + resolved "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz" integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg== dependencies: "@babel/runtime" "^7.7.2" @@ -127,7 +145,7 @@ "@jimp/png@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409" + resolved "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz" integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA== dependencies: "@babel/runtime" "^7.7.2" @@ -137,7 +155,7 @@ "@jimp/tiff@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560" + resolved "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz" integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow== dependencies: "@babel/runtime" "^7.7.2" @@ -146,7 +164,7 @@ "@jimp/types@^0.9.3": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e" + resolved "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz" integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA== dependencies: "@babel/runtime" "^7.7.2" @@ -160,7 +178,7 @@ "@jimp/utils@^0.9.8": version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096" + resolved "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz" integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw== dependencies: "@babel/runtime" "^7.7.2" @@ -168,59 +186,90 @@ "@malept/cross-spawn-promise@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz#258fde4098f5004a56db67c35f33033af64810f6" + resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz" integrity sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg== dependencies: cross-spawn "^7.0.1" +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + "@nodert-win10-rs4/windows.foundation@^0.4.4": version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" + resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz" integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== dependencies: nan latest "@nodert-win10-rs4/windows.media@^0.4.4": version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" + resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz" integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== dependencies: nan latest "@nodert-win10-rs4/windows.storage.streams@^0.4.4": version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" + resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz" integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== dependencies: nan latest +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz" integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz" integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== dependencies: defer-to-connect "^2.0.0" +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@types/cacheable-request@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz" integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== dependencies: "@types/http-cache-semantics" "*" @@ -230,97 +279,125 @@ "@types/color-name@^1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== +"@types/debug@^4.1.6": + version "4.1.7" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" "@types/electron@^1.6.10": version "1.6.10" - resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.10.tgz#7e87888ed3888767cca68e92772c2c8ea46bc873" + resolved "https://registry.npmjs.org/@types/electron/-/electron-1.6.10.tgz" integrity sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw== dependencies: electron "*" -"@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== +"@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: + "@types/minimatch" "*" "@types/node" "*" "@types/http-cache-semantics@*": version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz" integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/keyv@*": version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz" integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== dependencies: "@types/node" "*" "@types/lodash@^4.14.53": version "4.14.160" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.160.tgz" integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== -"@types/minimatch@^3.0.3": +"@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*": version "14.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" + resolved "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz" integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== "@types/node@^10.11.7": version "10.17.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz" integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== "@types/node@^12.0.12": version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" + resolved "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz" integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/plist@^3.0.1": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz" + integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: "@types/node" "*" "@types/semver@^7.3.1": version "7.3.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz" integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== +"@types/verror@^1.10.3": + version "1.10.6" + resolved "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz" + integrity sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ== + "@types/yargs-parser@*": version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" - integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== +"@types/yargs@^17.0.1": + version "17.0.18" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz" + integrity sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw== dependencies: "@types/yargs-parser" "*" -abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abstract-socket@^2.0.0: @@ -333,7 +410,7 @@ abstract-socket@^2.0.0: accepts@~1.3.4: version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" @@ -341,22 +418,46 @@ accepts@~1.3.4: ace-builds@^1.4.12: version "1.4.12" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" + resolved "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz" integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== after@0.8.2: version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv-keywords@^3.4.1: version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz" integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" @@ -366,41 +467,36 @@ ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: ansi-align@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: string-width "^3.0.0" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: "@types/color-name" "^1.1.1" @@ -408,58 +504,70 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: any-base@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + resolved "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -app-builder-bin@3.5.10: - version "3.5.10" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" - integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== +app-builder-bin@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz" + integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== -app-builder-lib@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" - integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== +app-builder-lib@23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz" + integrity sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA== dependencies: - "7zip-bin" "~5.0.3" + "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" + "@electron/universal" "1.2.1" + "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" + builder-util "23.6.0" + builder-util-runtime "9.1.1" chromium-pickle-js "^0.2.0" - debug "^4.3.0" - ejs "^3.1.5" - electron-publish "22.9.1" - fs-extra "^9.0.1" - hosted-git-info "^3.0.5" - is-ci "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "6.0.0" + debug "^4.3.4" + ejs "^3.1.7" + electron-osx-sign "^0.6.0" + electron-publish "23.6.0" + form-data "^4.0.0" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" + is-ci "^3.0.0" + isbinaryfile "^4.0.10" + js-yaml "^4.1.0" + lazy-val "^1.0.5" + minimatch "^3.1.2" + read-config-file "6.2.0" sanitize-filename "^1.6.3" - semver "^7.3.2" - temp-file "^3.3.7" + semver "^7.3.7" + tar "^6.1.11" + temp-file "^3.4.0" -aproba@^1.0.3: +aproba@^1.0.3, "aproba@^1.0.3 || ^2.0.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + are-we-there-yet@~1.1.2: version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" @@ -467,142 +575,164 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + array-differ@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== arraybuffer.slice@~0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== arrify@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +asar@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz" + integrity sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-exit-hook@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + resolved "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= +async@^3.2.3: + version "3.2.4" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atomically@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.3.2.tgz#721156e5c4f03e768ab54f3e6c9dc550d4690761" + resolved "https://registry.npmjs.org/atomically/-/atomically-1.3.2.tgz" integrity sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== backo2@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-arraybuffer@0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@^1.0.2: version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64-js@^1.3.1: +base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" better-assert@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.2.1, bindings@^1.3.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" bl@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + resolved "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz" integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== dependencies: buffer "^5.5.0" @@ -611,34 +741,34 @@ bl@^4.0.3: blob@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird-lst@^1.0.9: version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + resolved "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== dependencies: bluebird "^3.5.5" -bluebird@^3.5.5: +bluebird@^3.5.0, bluebird@^3.5.5: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bmp-js@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= boolean@^3.0.0, boolean@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" + resolved "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz" integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== boxen@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== dependencies: ansi-align "^3.0.0" @@ -652,93 +782,158 @@ boxen@^4.2.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-equal@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= +buffer-equal@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" + integrity sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ== + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + buffer@^5.2.0: version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - bufferutil@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz" integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== dependencies: node-gyp-build "~3.7.0" builder-util-runtime@8.7.2: version "8.7.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" + resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz" integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== dependencies: debug "^4.1.1" sax "^1.2.4" -builder-util@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" - integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== +builder-util-runtime@9.1.1: + version "9.1.1" + resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz" + integrity sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw== dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.5" - "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.10" + debug "^4.3.4" + sax "^1.2.4" + +builder-util@23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz" + integrity sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ== + dependencies: + "7zip-bin" "~5.1.1" + "@types/debug" "^4.1.6" + "@types/fs-extra" "^9.0.11" + app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - debug "^4.3.0" - fs-extra "^9.0.1" - is-ci "^2.0.0" - js-yaml "^3.14.0" + builder-util-runtime "9.1.1" + chalk "^4.1.1" + cross-spawn "^7.0.3" + debug "^4.3.4" + fs-extra "^10.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-ci "^3.0.0" + js-yaml "^4.1.0" source-map-support "^0.5.19" stat-mode "^1.0.0" - temp-file "^3.3.7" + temp-file "^3.4.0" + +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -751,7 +946,7 @@ cacheable-request@^6.0.0: cacheable-request@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz" integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== dependencies: clone-response "^1.0.2" @@ -764,27 +959,27 @@ cacheable-request@^7.0.1: callsite@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -793,23 +988,23 @@ chalk@^2.0.0, chalk@^2.4.2: chalk@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" chokidar@^3.2.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: anymatch "~3.1.2" @@ -822,138 +1017,192 @@ chokidar@^3.2.2: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: +chownr@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chromium-pickle-js@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + resolved "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cli-boxes@^2.2.0: +ci-info@^3.2.0: + version "3.7.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== + +clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz" integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clone@^1.0.2: version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== + colors@^1.3.3: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" +commander@2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + compare-versions@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== component-bind@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= component-emitter@~1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== component-inherit@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -963,7 +1212,7 @@ concat-stream@^1.6.2: conf@^7.1.2: version "7.1.2" - resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" + resolved "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz" integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== dependencies: ajv "^6.12.2" @@ -979,7 +1228,7 @@ conf@^7.1.2: config-chain@^1.1.11: version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" @@ -987,7 +1236,7 @@ config-chain@^1.1.11: configstore@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -997,29 +1246,29 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -console-control-strings@^1.0.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= cookie@0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= core-js@^3.4.1, core-js@^3.6.5: version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" @@ -1028,9 +1277,16 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.1: +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1039,19 +1295,19 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1: crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" dbus-next@^0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.5.1.tgz#94bb1a30d744bc75045be40e40b59e7a195fd882" + resolved "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz" integrity sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA== dependencies: event-stream "3.3.4" @@ -1066,63 +1322,63 @@ dbus-next@^0.5.1: debounce-fn@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + resolved "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz" integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== dependencies: mimic-fn "^3.0.0" -debug@^2.2.0, debug@^2.6.9: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.2.6: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== +debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@~3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: is-arguments "^1.0.4" @@ -1134,160 +1390,189 @@ deep-equal@^1.0.1: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== defaults@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: clone "^1.0.2" defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz" integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= detect-node@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== +dir-compare@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz" + integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== + dependencies: + buffer-equal "1.0.0" + colors "1.0.3" + commander "2.9.0" + minimatch "3.0.4" + discord-rpc@^3.1.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" + resolved "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz" integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== dependencies: node-fetch "^2.6.1" ws "^7.3.1" -dmg-builder@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" - integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== +dmg-builder@23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz" + integrity sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA== dependencies: - app-builder-lib "22.9.1" - builder-util "22.9.1" - fs-extra "^9.0.1" + app-builder-lib "23.6.0" + builder-util "23.6.0" + builder-util-runtime "9.1.1" + fs-extra "^10.0.0" iconv-lite "^0.6.2" - js-yaml "^3.14.0" - sanitize-filename "^1.6.3" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.11" + +dmg-license@^1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + dependencies: + "@types/plist" "^3.0.1" + "@types/verror" "^1.10.3" + ajv "^6.10.0" + crc "^3.8.0" + iconv-corefoundation "^1.1.7" + plist "^3.0.4" + smart-buffer "^4.0.2" + verror "^1.10.0" dom-walk@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== dot-prop@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz" integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== dependencies: is-obj "^2.0.0" dotenv-expand@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -ejs@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== - dependencies: - jake "^10.6.1" - -electron-builder@^22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" - integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== - dependencies: - "@types/yargs" "^15.0.5" - app-builder-lib "22.9.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - dmg-builder "22.9.1" - fs-extra "^9.0.1" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - update-notifier "^4.1.1" - yargs "^16.0.3" +ejs@^3.1.7: + version "3.1.8" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + +electron-builder@^23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz" + integrity sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw== + dependencies: + "@types/yargs" "^17.0.1" + app-builder-lib "23.6.0" + builder-util "23.6.0" + builder-util-runtime "9.1.1" + chalk "^4.1.1" + dmg-builder "23.6.0" + fs-extra "^10.0.0" + is-ci "^3.0.0" + lazy-val "^1.0.5" + read-config-file "6.2.0" + simple-update-notifier "^1.0.7" + yargs "^17.5.1" electron-canvas-to-buffer@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz#da92cd7342e47b3b0dde2a3ae79978e5a0761681" + resolved "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz" integrity sha1-2pLNc0LkezsN3io655l45aB2FoE= electron-clipboard-watcher@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" + resolved "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz" integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= electron-fetch@^1.7.1: version "1.7.2" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" + resolved "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz" integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== dependencies: encoding "^0.1.13" electron-google-analytics@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" + resolved "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz" integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== dependencies: electron-fetch "^1.7.1" @@ -1295,17 +1580,17 @@ electron-google-analytics@^1.0.2: electron-is-accelerator@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" + resolved "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz" integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= electron-is-dev@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" + resolved "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz" integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw== electron-localshortcut@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" + resolved "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz" integrity sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q== dependencies: debug "^4.0.1" @@ -1315,26 +1600,37 @@ electron-localshortcut@^3.2.1: electron-log@^4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" + resolved "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz" integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== -electron-publish@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" - integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== +electron-osx-sign@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz" + integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg== dependencies: - "@types/fs-extra" "^9.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - fs-extra "^9.0.1" - lazy-val "^1.0.4" - mime "^2.4.6" + bluebird "^3.5.0" + compare-version "^0.1.2" + debug "^2.6.8" + isbinaryfile "^3.0.2" + minimist "^1.2.0" + plist "^3.0.1" + +electron-publish@23.6.0: + version "23.6.0" + resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz" + integrity sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "23.6.0" + builder-util-runtime "9.1.1" + chalk "^4.1.1" + fs-extra "^10.0.0" + lazy-val "^1.0.5" + mime "^2.5.2" electron-rebuild@^2.3.4: version "2.3.4" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" + resolved "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz" integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== dependencies: "@malept/cross-spawn-promise" "^1.1.0" @@ -1352,7 +1648,7 @@ electron-rebuild@^2.3.4: electron-store@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" + resolved "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz" integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== dependencies: conf "^7.1.2" @@ -1360,7 +1656,7 @@ electron-store@^6.0.1: electron-updater@^4.3.5: version "4.3.5" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" + resolved "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz" integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== dependencies: "@types/semver" "^7.3.1" @@ -1373,7 +1669,7 @@ electron-updater@^4.3.5: electron@*: version "11.2.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb" + resolved "https://registry.npmjs.org/electron/-/electron-11.2.3.tgz" integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ== dependencies: "@electron/get" "^1.0.1" @@ -1382,7 +1678,7 @@ electron@*: electron@^11.4.9: version "11.5.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.5.0.tgz#f1650543b9d8f2047d3807755bdb120153ed210f" + resolved "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz" integrity sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg== dependencies: "@electron/get" "^1.0.1" @@ -1391,36 +1687,36 @@ electron@^11.4.9: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= encoding@^0.1.13: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" engine.io-client@~3.4.0: version "3.4.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz" integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== dependencies: component-emitter "~1.3.0" @@ -1437,7 +1733,7 @@ engine.io-client@~3.4.0: engine.io-parser@~2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz" integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== dependencies: after "0.8.2" @@ -1448,7 +1744,7 @@ engine.io-parser@~2.2.0: engine.io@~3.4.0: version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz" integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== dependencies: accepts "~1.3.4" @@ -1460,19 +1756,24 @@ engine.io@~3.4.0: env-paths@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz" integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: es-to-primitive "^1.2.1" @@ -1489,7 +1790,7 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -1498,37 +1799,37 @@ es-to-primitive@^1.2.1: es6-error@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== event-stream@3.3.4: version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz" integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= dependencies: duplexer "~0.1.1" @@ -1541,7 +1842,7 @@ event-stream@3.3.4: execa@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + resolved "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz" integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== dependencies: cross-spawn "^7.0.0" @@ -1556,17 +1857,17 @@ execa@^2.1.0: exif-parser@^0.1.12: version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + resolved "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extract-zip@^1.0.3: version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: concat-stream "^1.6.2" @@ -1576,65 +1877,65 @@ extract-zip@^1.0.3: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" file-type@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" + resolved "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== + version "1.0.4" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: - minimatch "^3.0.4" + minimatch "^5.0.1" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -1642,7 +1943,7 @@ find-up@^4.1.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -1650,19 +1951,28 @@ find-up@^5.0.0: find-versions@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== dependencies: semver-regex "^3.1.2" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -1671,60 +1981,83 @@ form-data@~2.3.2: from@~0: version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" -fs-minipass@^1.2.5: +fs-minipass@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + gauge@~2.7.3: version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" @@ -1738,40 +2071,40 @@ gauge@~2.7.3: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -1781,9 +2114,20 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.0.3" + resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^2.0.2: version "2.1.12" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" + resolved "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz" integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== dependencies: boolean "^3.0.1" @@ -1796,14 +2140,14 @@ global-agent@^2.0.2: global-dirs@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz" integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== dependencies: ini "^1.3.5" global-tunnel-ng@^2.7.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + resolved "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== dependencies: encodeurl "^1.0.2" @@ -1813,7 +2157,7 @@ global-tunnel-ng@^2.7.1: global@~4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz" integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= dependencies: min-document "^2.19.0" @@ -1821,14 +2165,14 @@ global@~4.3.0: globalthis@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz" integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== dependencies: define-properties "^1.1.3" got@^11.7.0: version "11.8.1" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" + resolved "https://registry.npmjs.org/got/-/got-11.8.1.tgz" integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== dependencies: "@sindresorhus/is" "^4.0.0" @@ -1845,7 +2189,7 @@ got@^11.7.0: got@^9.6.0: version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -1860,19 +2204,24 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -1880,74 +2229,78 @@ har-validator@~5.1.3: has-binary2@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: isarray "2.0.1" has-cors@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-unicode@^2.0.0: +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hexy@^0.2.10: version "0.2.11" - resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" + resolved "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz" integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" - integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== +hosted-git-info@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" -http-cache-semantics@^4.0.0: +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -1955,15 +2308,30 @@ http-signature@~1.2.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.0-beta.5.2" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz" integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + husky@^4.3.7: version "4.3.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" + resolved "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz" integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== dependencies: chalk "^4.0.0" @@ -1979,7 +2347,7 @@ husky@^4.3.7: i18n@^0.13.2: version "0.13.2" - resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" + resolved "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz" integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== dependencies: debug "^4.1.1" @@ -1989,57 +2357,65 @@ i18n@^0.13.2: mustache "^4.0.1" sprintf-js "^1.1.2" +iconv-corefoundation@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz" + integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== + dependencies: + cli-truncate "^2.1.0" + node-addon-api "^1.6.3" + iconv-lite@^0.4.4: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ieee754@^1.1.4: version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== ignore-by-default@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + version "3.0.4" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: minimatch "^3.0.4" ignore@^5.1.4: version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== image-to-base64@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/image-to-base64/-/image-to-base64-2.1.1.tgz#58c16f88494dfd3e84953cf845a5929be04fbdb5" + resolved "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz" integrity sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ== dependencies: node-fetch "^2.6.0" import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -2047,22 +2423,32 @@ import-fresh@^3.2.1: import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexof@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -2070,85 +2456,97 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + is-arguments@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz" integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-function@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== dependencies: global-dirs "^2.0.1" @@ -2156,178 +2554,195 @@ is-installed-globally@^0.3.1: is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + is-npm@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== is-regex@^1.0.4, is-regex@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: has-symbols "^1.0.1" is-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== is-symbol@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: has-symbols "^1.0.1" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== +isbinaryfile@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isbinaryfile@^4.0.10: + version "4.0.10" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== dependencies: - async "0.9.x" - chalk "^2.4.2" + async "^3.2.3" + chalk "^4.0.2" filelist "^1.0.1" minimatch "^3.0.4" jpeg-js@^0.3.4: version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" + resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz" integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== js-base64@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz" integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.0: +js-yaml@^3.14.0: version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbi@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" + resolved "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz" integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz" integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-typed@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + resolved "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" +json5@^2.2.0: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz" integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== dependencies: universalify "^1.0.0" @@ -2335,59 +2750,59 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + version "1.4.2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.2.3" + json-schema "0.4.0" verror "1.10.0" keyboardevent-from-electron-accelerator@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" + resolved "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz" integrity sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA== keyboardevents-areequal@^0.2.1: version "0.2.2" - resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" + resolved "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz" integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw== keyv@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" keyv@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz" integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== dependencies: json-buffer "3.0.1" latest-version@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== +lazy-val@^1.0.4, lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== lines-and-columns@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= load-bmfont@^1.3.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" + resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz" integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== dependencies: buffer-equal "0.0.1" @@ -2401,7 +2816,7 @@ load-bmfont@^1.3.1: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -2409,60 +2824,65 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash@^4.17.10, lodash@^4.17.4: +lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.4: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: chalk "^4.0.0" long@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" +lru-cache@^7.7.1: + version "7.14.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz" + integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== + lzma-native@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" + resolved "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz" integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== dependencies: node-addon-api "^1.6.0" @@ -2470,67 +2890,98 @@ lzma-native@^6.0.1: readable-stream "^2.3.5" rimraf "^2.7.1" +lzma-native@^8.0.6: + version "8.0.6" + resolved "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz" + integrity sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA== + dependencies: + node-addon-api "^3.1.0" + node-gyp-build "^4.2.1" + readable-stream "^3.6.0" + make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + make-plural@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" + resolved "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz" integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== optionalDependencies: minimist "^1.2.0" make-plural@^6.2.2: version "6.2.2" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" + resolved "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz" integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== map-stream@~0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= markdown@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" + resolved "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz" integrity sha1-KCBbVlqK51kt4gdGPWY33BgnIrI= dependencies: nopt "~2.1.1" matcher@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== dependencies: escape-string-regexp "^4.0.0" math-interval-parser@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" + resolved "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz" integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== messageformat-formatters@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" + resolved "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz" integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== messageformat-parser@^4.1.2: version "4.1.3" - resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" + resolved "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz" integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== messageformat@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" + resolved "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz" integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== dependencies: make-plural "^4.3.0" @@ -2539,110 +2990,177 @@ messageformat@^2.3.0: mime-db@1.44.0: version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" mime@^1.3.4: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.6: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== min-document@^2.19.0: version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= dependencies: dom-walk "^0.1.0" -minimatch@^3.0.4: +minimatch@3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.4, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz" + integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0: +minipass@^3.0.0, minipass@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" -minizlib@^1.2.1: +minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + +minizlib@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" -minizlib@^2.1.1: +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: +mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mpris-service@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.0.tgz#0bbfb5b47a9b3e01ce8b9a41a8aef0ad3210c909" + resolved "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.0.tgz" integrity sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg== dependencies: dbus-next "^0.5.1" @@ -2651,22 +3169,22 @@ mpris-service@^2.1.0: mri@^1.1.4: version "1.1.6" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" + resolved "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz" integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2, ms@^2.1.1: +ms@2.1.2, ms@^2.0.0, ms@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multimatch@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz" integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: "@types/minimatch" "^3.0.3" @@ -2677,18 +3195,18 @@ multimatch@^4.0.0: mustache@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" + resolved "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz" integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== nan@^2.12.1, nan@latest: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.17.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== needle@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" - integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + version "2.9.1" + resolved "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -2696,55 +3214,86 @@ needle@^2.2.1: negotiator@0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + node-abi@^2.19.2: version "2.19.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz" integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== dependencies: semver "^5.4.1" -node-addon-api@^1.3.0, node-addon-api@^1.6.0: +node-addon-api@^1.3.0, node-addon-api@^1.6.0, node-addon-api@^1.6.3: version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== +node-addon-api@^3.1.0: + version "3.2.1" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + node-fetch@^2.6.0: version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== node-fetch@^2.6.1: version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-gyp-build@^4.2.1: + version "4.5.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + node-gyp-build@~3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz" integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== node-gyp@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.0.tgz#cb8aed7ab772e73ad592ae0c71b0e3741099fe39" - integrity sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw== + version "7.1.2" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.3" - nopt "^4.0.3" + nopt "^5.0.0" npmlog "^4.1.2" request "^2.88.2" - rimraf "^2.6.3" + rimraf "^3.0.2" semver "^7.3.2" - tar "^6.0.1" + tar "^6.0.2" + which "^2.0.2" + +node-gyp@^9.3.1: + version "9.3.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" which "^2.0.2" node-pre-gyp@^0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz" integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== dependencies: detect-libc "^1.0.2" @@ -2760,7 +3309,7 @@ node-pre-gyp@^0.11.0: node-vibrant@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" + resolved "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz" integrity sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg== dependencies: "@jimp/custom" "^0.9.3" @@ -2773,7 +3322,7 @@ node-vibrant@^3.1.5: nodemon@^2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz" integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== dependencies: chokidar "^3.2.2" @@ -2787,58 +3336,62 @@ nodemon@^2.0.7: undefsafe "^2.0.3" update-notifier "^4.1.0" -nopt@^4.0.1, nopt@^4.0.3: +nopt@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + nopt@~1.0.10: version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" nopt@~2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" + resolved "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz" integrity sha1-bMzZd7gBMqB3MdbozljCyDA8+a8= dependencies: abbrev "1" -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + version "1.1.2" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" npm-conf@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== dependencies: config-chain "^1.1.11" @@ -2846,12 +3399,12 @@ npm-conf@^1.1.3: npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-packlist@^1.1.6: version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== dependencies: ignore-walk "^3.0.1" @@ -2860,14 +3413,14 @@ npm-packlist@^1.1.6: npm-run-path@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz" integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== dependencies: path-key "^3.0.0" npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" @@ -2875,34 +3428,44 @@ npmlog@^4.0.2, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= object-inspect@^1.7.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz" integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== dependencies: define-properties "^1.1.3" @@ -2910,12 +3473,12 @@ object-is@^1.0.1: object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" @@ -2925,31 +3488,31 @@ object.assign@^4.1.0: omggif@^1.0.9: version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opencollective-postinstall@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== ora@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" + resolved "https://registry.npmjs.org/ora/-/ora-5.2.0.tgz" integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== dependencies: bl "^4.0.3" @@ -2963,17 +3526,17 @@ ora@^5.1.0: os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" @@ -2981,62 +3544,69 @@ osenv@^0.1.4: p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== p-finally@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -3046,29 +3616,29 @@ package-json@^6.3.0: pako@^1.0.5: version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-bmfont-ascii@^1.0.3: version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + resolved "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= parse-bmfont-binary@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + resolved "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= parse-bmfont-xml@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + resolved "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== dependencies: xml-parse-from-string "^1.0.0" @@ -3076,12 +3646,12 @@ parse-bmfont-xml@^1.1.4: parse-headers@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== parse-json@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz" integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== dependencies: "@babel/code-frame" "^7.0.0" @@ -3091,138 +3661,141 @@ parse-json@^5.0.0: parseqs@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pause-stream@0.0.11: version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= dependencies: through "~2.3" pend@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== phin@^2.9.1: version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + resolved "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pixelmatch@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= dependencies: pngjs "^3.0.0" pkg-dir@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== dependencies: find-up "^5.0.0" pkg-up@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" please-upgrade-node@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== dependencies: semver-compare "^1.0.0" +plist@^3.0.1, plist@^3.0.4: + version "3.0.6" + resolved "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== postscribe@^2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" + resolved "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz" integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= dependencies: prescribe ">=1.1.2" prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prescribe@>=1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" + resolved "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz" integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= prettier@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-quick@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" + resolved "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz" integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== dependencies: chalk "^2.4.2" @@ -3234,37 +3807,50 @@ pretty-quick@^2.0.2: process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@~0.5.1: version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz" integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= progress@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pstree.remy@^1.1.7: version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -3272,49 +3858,49 @@ pump@^3.0.0: punycode@1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + version "2.1.1" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" put@0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/put/-/put-0.0.6.tgz#30f5f60bd6e4389bd329e16a25386cbb2e4a00a3" + resolved "https://registry.npmjs.org/put/-/put-0.0.6.tgz" integrity sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM= qrcode-generator@^1.4.4: version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" + resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + version "6.5.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== querystring@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== rc@^1.2.7, rc@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -3322,20 +3908,20 @@ rc@^1.2.7, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-config-file@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" - integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== +read-config-file@6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" + integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== dependencies: - dotenv "^8.2.0" + dotenv "^9.0.2" dotenv-expand "^5.1.0" - js-yaml "^3.13.1" - json5 "^2.1.2" + js-yaml "^4.1.0" + json5 "^2.2.0" lazy-val "^1.0.4" readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -3346,9 +3932,9 @@ readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0: +readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -3357,19 +3943,19 @@ readable-stream@^3.4.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" regenerator-runtime@^0.13.4: version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regexp.prototype.flags@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz" integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== dependencies: define-properties "^1.1.3" @@ -3377,29 +3963,28 @@ regexp.prototype.flags@^1.2.0: register-scheme@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/register-scheme/-/register-scheme-0.0.2.tgz#c91a61c735a9f14b2c9f0c2c27d707c0b06615e8" - integrity sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw== + resolved "git+ssh://git@github.com/devsnek/node-register-scheme.git#e7cc9a63a1f512565da44cb57316d9fb10750e17" dependencies: bindings "^1.3.0" node-addon-api "^1.3.0" registry-auth-token@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz" integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" request@^2.88.2: version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -3425,58 +4010,63 @@ request@^2.88.2: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= resolve-alpn@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz" integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.10.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - responselike@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" responselike@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz" integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== dependencies: lowercase-keys "^2.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" -rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rimraf@^2.6.1, rimraf@^2.7.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + roarr@^2.15.3: version "2.15.3" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" + resolved "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz" integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== dependencies: boolean "^3.0.0" @@ -3486,111 +4076,140 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== dependencies: truncate-utf8-bytes "^1.0.0" sax@>=0.6.0, sax@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": version "0.0.5" - resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" + resolved "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" + integrity sha512-eIAqWX3kJaDfuY0OXamO1D1BozOI0sfWeCxmMpYZDadyVgiL3Od0uqsgtmKZGzGlKYjHuuu+xHEvvWyweLLCoQ== semver-compare@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: semver "^6.3.0" semver-regex@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: +semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== serialize-error@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== dependencies: type-fest "^0.13.1" -set-blocking@~2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.0.2, smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + socket.io-adapter@~1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== socket.io-client@2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz" integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== dependencies: backo2 "1.0.2" @@ -3610,7 +4229,7 @@ socket.io-client@2.3.0: socket.io-parser@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz" integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" @@ -3619,7 +4238,7 @@ socket.io-parser@~3.3.0: socket.io-parser@~3.4.0: version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: component-emitter "1.2.1" @@ -3628,7 +4247,7 @@ socket.io-parser@~3.4.0: socket.io@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz" integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== dependencies: debug "~4.1.0" @@ -3638,9 +4257,26 @@ socket.io@^2.3.0: socket.io-client "2.3.0" socket.io-parser "~3.4.0" +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + source-map-support@^0.5.11, source-map-support@^0.5.19: version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" @@ -3648,56 +4284,30 @@ source-map-support@^0.5.11, source-map-support@^0.5.19: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - split@0.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz" integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= dependencies: through "2" sprintf-js@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -3709,56 +4319,55 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + stat-mode@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== stream-combiner@~0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= dependencies: duplexer "~0.1.1" string-width@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" string-width@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - string.prototype.trimend@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz" integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" @@ -3766,177 +4375,165 @@ string.prototype.trimend@^1.0.1: string.prototype.trimstart@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz" integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: +string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= sumchecker@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + resolved "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== dependencies: debug "^4.1.0" supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== dependencies: has-flag "^4.0.0" tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -tar@^6.0.1: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + version "4.4.19" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" -tar@^6.0.5: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== +tar@^6.0.2, tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: + version "6.1.13" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" -temp-file@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" - integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== dependencies: async-exit-hook "^2.0.1" - fs-extra "^8.1.0" + fs-extra "^10.0.0" term-size@^2.1.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz" integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== through@2, through@~2.3, through@~2.3.1: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timm@^1.6.1: version "1.6.2" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" + resolved "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== tinycolor2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + to-array@0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" touch@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -3944,82 +4541,101 @@ tough-cookie@~2.5.0: truncate-utf8-bytes@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= dependencies: utf8-byte-length "^1.0.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tunnel@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-fest@^0.13.1: version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== type-fest@^0.16.0: version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= undefsafe@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz" integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== dependencies: debug "^2.2.0" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== -update-notifier@^4.1.0, update-notifier@^4.1.1: +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +update-notifier@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" @@ -4038,21 +4654,21 @@ update-notifier@^4.1.0, update-notifier@^4.1.1: uri-js@^4.2.2: version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url@^0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -4060,55 +4676,56 @@ url@^0.11.0: utf-8-validate@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz" integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== dependencies: node-gyp-build "~3.7.0" utf8-byte-length@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= utif@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + resolved "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== dependencies: pako "^1.0.5" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= uuid@^3.3.2: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.0: version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz" integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +verror@^1.10.0: + version "1.10.1" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -4116,33 +4733,33 @@ verror@1.10.0: wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" which-pm-runs@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== +wide-align@^1.1.0, wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: - string-width "^1.0.2 || 2" + string-width "^1.0.2 || 2 || 3 || 4" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" @@ -4154,13 +4771,13 @@ win-node-env@^0.4.0: "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": version "0.1.0" - resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" + resolved "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" dependencies: nan latest wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -4169,12 +4786,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -4184,29 +4801,29 @@ write-file-atomic@^3.0.0: ws@^7.1.2, ws@^7.3.1: version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== ws@^7.4.2: version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz" integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== ws@~6.1.0: version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + resolved "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz" integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xhr@^2.0.1: version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + resolved "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== dependencies: global "~4.3.0" @@ -4216,60 +4833,70 @@ xhr@^2.0.1: xml-parse-from-string@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + resolved "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= xml2js@^0.4.17, xml2js@^0.4.5: version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: sax ">=0.6.0" xmlbuilder "~11.0.0" +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== xmlhttprequest-ssl@~1.5.4: version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= xtend@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== -yallist@^3.0.0, yallist@^3.0.3: +yallist@^3.0.0, yallist@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== yargs-parser@^20.2.2: version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs@^16.0.0, yargs@^16.0.3: +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^16.0.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -4280,9 +4907,22 @@ yargs@^16.0.0, yargs@^16.0.3: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.5.1: + version "17.6.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" @@ -4290,10 +4930,10 @@ yauzl@^2.10.0: yeast@0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 5a810bb194d7ba695999205a384cdcd40c1e3d34 Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 17:53:59 -0800 Subject: [PATCH 153/489] :green_heart: Fix `ssh` usage in yarn lock file --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8ff218029..72824fed8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3963,7 +3963,7 @@ regexp.prototype.flags@^1.2.0: register-scheme@0.0.2: version "0.0.2" - resolved "git+ssh://git@github.com/devsnek/node-register-scheme.git#e7cc9a63a1f512565da44cb57316d9fb10750e17" + resolved "git+https://github.com/devsnek/node-register-scheme.git#e7cc9a63a1f512565da44cb57316d9fb10750e17" dependencies: bindings "^1.3.0" node-addon-api "^1.3.0" @@ -4105,7 +4105,7 @@ sax@>=0.6.0, sax@^1.2.4: "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": version "0.0.5" - resolved "git+ssh://git@github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" + resolved "git+https://github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" integrity sha512-eIAqWX3kJaDfuY0OXamO1D1BozOI0sfWeCxmMpYZDadyVgiL3Od0uqsgtmKZGzGlKYjHuuu+xHEvvWyweLLCoQ== semver-compare@^1.0.0: @@ -4771,7 +4771,7 @@ win-node-env@^0.4.0: "windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": version "0.1.0" - resolved "git+ssh://git@github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" + resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" dependencies: nan latest From 7c0dec19b5aa23d2798b413d92728d8b49c16797 Mon Sep 17 00:00:00 2001 From: Mingjun Yin <my@lyric.today> Date: Sun, 1 Jan 2023 17:57:57 -0800 Subject: [PATCH 154/489] :green_heart: Upgrade node version in github actions Upgrade node version in github actions --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc1199ed3..6acdaf66f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 16 - run: yarn --frozen-lockfile - run: node ./script/build-current-platform.js - uses: actions/upload-artifact@v2 From f3207700b8b3efdcdab48234e62f3b8627922e41 Mon Sep 17 00:00:00 2001 From: Mingjun Yin <my@lyric.today> Date: Sun, 1 Jan 2023 18:03:37 -0800 Subject: [PATCH 155/489] :green_heart: Donwgrade node version in github actions --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6acdaf66f..9521f50f3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v1 with: - node-version: 16 + node-version: 14 - run: yarn --frozen-lockfile - run: node ./script/build-current-platform.js - uses: actions/upload-artifact@v2 From ec7103f0324aaa6841355f408216d3deb2091232 Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 18:41:30 -0800 Subject: [PATCH 156/489] :arrow_up: :heavy_minus_sign: Upgrade `discord-rpc` and remove `register-scheme` --- package.json | 3 +-- yarn.lock | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index ebeb0c1c3..fd06fc730 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ }, "dependencies": { "ace-builds": "^1.4.12", - "discord-rpc": "^3.1.4", + "discord-rpc": "^4.0.1", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", "electron-google-analytics": "^1.0.2", @@ -59,7 +59,6 @@ "node-vibrant": "^3.1.5", "postscribe": "^2.0.8", "qrcode-generator": "^1.4.4", - "register-scheme": "0.0.2", "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", "socket.io": "^2.3.0", "uuid": "^8.3.2", diff --git a/yarn.lock b/yarn.lock index 72824fed8..5af7273ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1452,13 +1452,15 @@ dir-compare@^2.4.0: commander "2.9.0" minimatch "3.0.4" -discord-rpc@^3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/discord-rpc/-/discord-rpc-3.1.4.tgz" - integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== +discord-rpc@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-4.0.1.tgz#a89aa04a048aa83ad4f347d53fa0162501eae0d8" + integrity sha512-HOvHpbq5STRZJjQIBzwoKnQ0jHplbEWFWlPDwXXKm/bILh4nzjcg7mNqll0UY7RsjFoaXA7e/oYb/4lvpda2zA== dependencies: node-fetch "^2.6.1" ws "^7.3.1" + optionalDependencies: + register-scheme "github:devsnek/node-register-scheme" dmg-builder@23.6.0: version "23.6.0" @@ -3961,9 +3963,9 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -register-scheme@0.0.2: +"register-scheme@github:devsnek/node-register-scheme": version "0.0.2" - resolved "git+https://github.com/devsnek/node-register-scheme.git#e7cc9a63a1f512565da44cb57316d9fb10750e17" + resolved "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17" dependencies: bindings "^1.3.0" node-addon-api "^1.3.0" From 3109cc68e2ba3e319035aef518537d147798c2bc Mon Sep 17 00:00:00 2001 From: Mingjun Yin <my@lyric.today> Date: Sun, 1 Jan 2023 18:52:14 -0800 Subject: [PATCH 157/489] :green_heart: Fix node-gyp issue on windows --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9521f50f3..463c56746 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,6 +19,12 @@ jobs: uses: actions/setup-node@v1 with: node-version: 14 + - name: Upgrade node-gyp + if: matrix.os == 'windows-2019' + shell: powershell + run: | + npm install --global node-gyp@latest + npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"} - run: yarn --frozen-lockfile - run: node ./script/build-current-platform.js - uses: actions/upload-artifact@v2 From a6dadeebf5e3846c5c881f35fa7ec6a50dd833d1 Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 19:36:42 -0800 Subject: [PATCH 158/489] :rewind: Revert multiple changes --- .github/workflows/build.yml | 8 +- package.json | 7 +- yarn.lock | 2644 +++++++++++++---------------------- 3 files changed, 1005 insertions(+), 1654 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 463c56746..bc1199ed3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,13 +18,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v1 with: - node-version: 14 - - name: Upgrade node-gyp - if: matrix.os == 'windows-2019' - shell: powershell - run: | - npm install --global node-gyp@latest - npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"} + node-version: 12 - run: yarn --frozen-lockfile - run: node ./script/build-current-platform.js - uses: actions/upload-artifact@v2 diff --git a/package.json b/package.json index fd06fc730..dfb0247ff 100644 --- a/package.json +++ b/package.json @@ -31,18 +31,16 @@ "devDependencies": { "@types/electron": "^1.6.10", "electron": "^11.4.9", - "electron-builder": "^23.6.0", + "electron-builder": "^22.9.1", "electron-rebuild": "^2.3.4", "husky": "^4.3.7", - "lzma-native": "^8.0.6", - "node-gyp": "^9.3.1", "nodemon": "^2.0.7", "prettier": "^2.2.1", "pretty-quick": "^2.0.2" }, "dependencies": { "ace-builds": "^1.4.12", - "discord-rpc": "^4.0.1", + "discord-rpc": "^3.1.4", "electron-canvas-to-buffer": "^2.0.0", "electron-clipboard-watcher": "^1.0.1", "electron-google-analytics": "^1.0.2", @@ -59,6 +57,7 @@ "node-vibrant": "^3.1.5", "postscribe": "^2.0.8", "qrcode-generator": "^1.4.4", + "register-scheme": "0.0.2", "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", "socket.io": "^2.3.0", "uuid": "^8.3.2", diff --git a/yarn.lock b/yarn.lock index 5af7273ea..b22e527aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,26 +2,26 @@ # yarn lockfile v1 -"7zip-bin@~5.1.1": - version "5.1.1" - resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz" - integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== +"7zip-bin@~5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" + integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== "@babel/code-frame@^7.0.0": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== "@babel/highlight@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" @@ -30,14 +30,14 @@ "@babel/runtime@^7.7.2": version "7.11.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" "@develar/schema-utils@~2.6.5": version "2.6.5" - resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== dependencies: ajv "^6.12.0" @@ -45,7 +45,7 @@ "@electron/get@^1.0.1": version "1.12.2" - resolved "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== dependencies: debug "^4.1.1" @@ -59,27 +59,9 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@electron/universal@1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz" - integrity sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ== - dependencies: - "@malept/cross-spawn-promise" "^1.1.0" - asar "^3.1.0" - debug "^4.3.1" - dir-compare "^2.4.0" - fs-extra "^9.0.1" - minimatch "^3.0.4" - plist "^3.0.4" - -"@gar/promisify@^1.1.3": - version "1.1.3" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - "@jimp/bmp@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624" integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg== dependencies: "@babel/runtime" "^7.7.2" @@ -89,7 +71,7 @@ "@jimp/core@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85" integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw== dependencies: "@babel/runtime" "^7.7.2" @@ -107,7 +89,7 @@ "@jimp/custom@^0.9.3": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1" integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw== dependencies: "@babel/runtime" "^7.7.2" @@ -116,7 +98,7 @@ "@jimp/gif@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b" integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA== dependencies: "@babel/runtime" "^7.7.2" @@ -126,7 +108,7 @@ "@jimp/jpeg@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1" integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g== dependencies: "@babel/runtime" "^7.7.2" @@ -136,7 +118,7 @@ "@jimp/plugin-resize@^0.9.3": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02" integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg== dependencies: "@babel/runtime" "^7.7.2" @@ -145,7 +127,7 @@ "@jimp/png@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409" integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA== dependencies: "@babel/runtime" "^7.7.2" @@ -155,7 +137,7 @@ "@jimp/tiff@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560" integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow== dependencies: "@babel/runtime" "^7.7.2" @@ -164,7 +146,7 @@ "@jimp/types@^0.9.3": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e" integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA== dependencies: "@babel/runtime" "^7.7.2" @@ -178,7 +160,7 @@ "@jimp/utils@^0.9.8": version "0.9.8" - resolved "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096" integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw== dependencies: "@babel/runtime" "^7.7.2" @@ -186,90 +168,59 @@ "@malept/cross-spawn-promise@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz#258fde4098f5004a56db67c35f33033af64810f6" integrity sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg== dependencies: cross-spawn "^7.0.1" -"@malept/flatpak-bundler@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" - integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== - dependencies: - debug "^4.1.1" - fs-extra "^9.0.0" - lodash "^4.17.15" - tmp-promise "^3.0.2" - "@nodert-win10-rs4/windows.foundation@^0.4.4": version "0.4.4" - resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== dependencies: nan latest "@nodert-win10-rs4/windows.media@^0.4.4": version "0.4.4" - resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== dependencies: nan latest "@nodert-win10-rs4/windows.storage.streams@^0.4.4": version "0.4.4" - resolved "https://registry.npmjs.org/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz" + resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== dependencies: nan latest -"@npmcli/fs@^2.1.0": - version "2.1.2" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz" - integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== - dependencies: - "@gar/promisify" "^1.1.3" - semver "^7.3.5" - -"@npmcli/move-file@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz" - integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@sindresorhus/is@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" "@szmarczak/http-timer@^4.0.5": version "4.0.5" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== dependencies: defer-to-connect "^2.0.0" -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - "@types/cacheable-request@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== dependencies: "@types/http-cache-semantics" "*" @@ -279,125 +230,97 @@ "@types/color-name@^1.1.1": version "1.1.1" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/debug@^4.1.6": - version "4.1.7" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" - integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== - dependencies: - "@types/ms" "*" +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== "@types/electron@^1.6.10": version "1.6.10" - resolved "https://registry.npmjs.org/@types/electron/-/electron-1.6.10.tgz" + resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.10.tgz#7e87888ed3888767cca68e92772c2c8ea46bc873" integrity sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw== dependencies: electron "*" -"@types/fs-extra@^9.0.11": - version "9.0.13" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@types/fs-extra@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" + integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== dependencies: - "@types/minimatch" "*" "@types/node" "*" "@types/http-cache-semantics@*": version "4.0.0" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/keyv@*": version "3.1.1" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== dependencies: "@types/node" "*" "@types/lodash@^4.14.53": version "4.14.160" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.160.tgz" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== -"@types/minimatch@*", "@types/minimatch@^3.0.3": +"@types/minimatch@^3.0.3": version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/ms@*": - version "0.7.31" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" - integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== - "@types/node@*": version "14.6.0" - resolved "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== "@types/node@^10.11.7": version "10.17.28" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== "@types/node@^12.0.12": version "12.12.54" - resolved "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/plist@^3.0.1": - version "3.0.2" - resolved "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz" - integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== - dependencies: - "@types/node" "*" - xmlbuilder ">=11.0.1" - "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== dependencies: "@types/node" "*" "@types/semver@^7.3.1": version "7.3.3" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.3.tgz" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== -"@types/verror@^1.10.3": - version "1.10.6" - resolved "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz" - integrity sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ== - "@types/yargs-parser@*": version "15.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^17.0.1": - version "17.0.18" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz" - integrity sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw== +"@types/yargs@^15.0.5": + version "15.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" + integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== dependencies: "@types/yargs-parser" "*" -abbrev@1, abbrev@^1.0.0: +abbrev@1: version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abstract-socket@^2.0.0: @@ -410,7 +333,7 @@ abstract-socket@^2.0.0: accepts@~1.3.4: version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" @@ -418,46 +341,22 @@ accepts@~1.3.4: ace-builds@^1.4.12: version "1.4.12" - resolved "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.12.tgz" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== after@0.8.2: version "0.8.2" - resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv-keywords@^3.4.1: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: +ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: version "6.12.4" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" @@ -467,36 +366,41 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: ansi-align@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: string-width "^3.0.0" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: "@types/color-name" "^1.1.1" @@ -504,70 +408,58 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: any-base@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -app-builder-bin@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz" - integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== +app-builder-bin@3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" + integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== -app-builder-lib@23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz" - integrity sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA== +app-builder-lib@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" + integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== dependencies: - "7zip-bin" "~5.1.1" + "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.2.1" - "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "23.6.0" - builder-util-runtime "9.1.1" + builder-util "22.9.1" + builder-util-runtime "8.7.2" chromium-pickle-js "^0.2.0" - debug "^4.3.4" - ejs "^3.1.7" - electron-osx-sign "^0.6.0" - electron-publish "23.6.0" - form-data "^4.0.0" - fs-extra "^10.1.0" - hosted-git-info "^4.1.0" - is-ci "^3.0.0" - isbinaryfile "^4.0.10" - js-yaml "^4.1.0" - lazy-val "^1.0.5" - minimatch "^3.1.2" - read-config-file "6.2.0" + debug "^4.3.0" + ejs "^3.1.5" + electron-publish "22.9.1" + fs-extra "^9.0.1" + hosted-git-info "^3.0.5" + is-ci "^2.0.0" + isbinaryfile "^4.0.6" + js-yaml "^3.14.0" + lazy-val "^1.0.4" + minimatch "^3.0.4" + normalize-package-data "^2.5.0" + read-config-file "6.0.0" sanitize-filename "^1.6.3" - semver "^7.3.7" - tar "^6.1.11" - temp-file "^3.4.0" + semver "^7.3.2" + temp-file "^3.3.7" -aproba@^1.0.3, "aproba@^1.0.3 || ^2.0.0": +aproba@^1.0.3: version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@~1.1.2: version "1.1.5" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" @@ -575,164 +467,142 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - array-differ@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== arraybuffer.slice@~0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== arrify@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asar@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz" - integrity sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= async-exit-hook@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^3.2.3: - version "3.2.4" - resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atomically@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/atomically/-/atomically-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.3.2.tgz#721156e5c4f03e768ab54f3e6c9dc550d4690761" integrity sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ== aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== backo2@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-arraybuffer@0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64-js@^1.0.2: version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" better-assert@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.2.1, bindings@^1.3.0: version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" bl@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== dependencies: buffer "^5.5.0" @@ -741,34 +611,34 @@ bl@^4.0.3: blob@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== bluebird-lst@^1.0.9: version "1.0.9" - resolved "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== dependencies: bluebird "^3.5.5" -bluebird@^3.5.0, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bmp-js@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= boolean@^3.0.0, boolean@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== boxen@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== dependencies: ansi-align "^3.0.0" @@ -782,158 +652,93 @@ boxen@^4.2.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-equal@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= -buffer-equal@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" - integrity sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ== - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" - integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== - buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer@^5.1.0, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - buffer@^5.2.0: version "5.6.0" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + bufferutil@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== dependencies: node-gyp-build "~3.7.0" builder-util-runtime@8.7.2: version "8.7.2" - resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== dependencies: debug "^4.1.1" sax "^1.2.4" -builder-util-runtime@9.1.1: - version "9.1.1" - resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz" - integrity sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw== - dependencies: - debug "^4.3.4" - sax "^1.2.4" - -builder-util@23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz" - integrity sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ== +builder-util@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" + integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== dependencies: - "7zip-bin" "~5.1.1" - "@types/debug" "^4.1.6" - "@types/fs-extra" "^9.0.11" - app-builder-bin "4.0.0" + "7zip-bin" "~5.0.3" + "@types/debug" "^4.1.5" + "@types/fs-extra" "^9.0.1" + app-builder-bin "3.5.10" bluebird-lst "^1.0.9" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - cross-spawn "^7.0.3" - debug "^4.3.4" - fs-extra "^10.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-ci "^3.0.0" - js-yaml "^4.1.0" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + debug "^4.3.0" + fs-extra "^9.0.1" + is-ci "^2.0.0" + js-yaml "^3.14.0" source-map-support "^0.5.19" stat-mode "^1.0.0" - temp-file "^3.4.0" - -cacache@^16.1.0: - version "16.1.3" - resolved "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz" - integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== - dependencies: - "@npmcli/fs" "^2.1.0" - "@npmcli/move-file" "^2.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - glob "^8.0.1" - infer-owner "^1.0.4" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - mkdirp "^1.0.4" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - unique-filename "^2.0.0" + temp-file "^3.3.7" cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -946,7 +751,7 @@ cacheable-request@^6.0.0: cacheable-request@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== dependencies: clone-response "^1.0.2" @@ -959,27 +764,27 @@ cacheable-request@^7.0.1: callsite@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -988,23 +793,23 @@ chalk@^2.0.0, chalk@^2.4.2: chalk@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" chokidar@^3.2.2: version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: anymatch "~3.1.2" @@ -1017,192 +822,138 @@ chokidar@^3.2.2: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.4: +chownr@^1.1.1: version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chromium-pickle-js@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" - integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: - version "3.7.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz" - integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clone@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" - integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== - colors@^1.3.3: version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== - dependencies: - graceful-readlink ">= 1.0.0" - -commander@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -compare-version@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" - integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== - compare-versions@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== component-bind@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= component-emitter@~1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== component-inherit@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -1212,7 +963,7 @@ concat-stream@^1.6.2: conf@^7.1.2: version "7.1.2" - resolved "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== dependencies: ajv "^6.12.2" @@ -1228,7 +979,7 @@ conf@^7.1.2: config-chain@^1.1.11: version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" @@ -1236,7 +987,7 @@ config-chain@^1.1.11: configstore@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -1246,29 +997,29 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= cookie@0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= core-js@^3.4.1, core-js@^3.6.5: version "3.6.5" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" @@ -1277,16 +1028,9 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -crc@^3.8.0: - version "3.8.0" - resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== - dependencies: - buffer "^5.1.0" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1295,19 +1039,19 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" dbus-next@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/dbus-next/-/dbus-next-0.5.1.tgz" + resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.5.1.tgz#94bb1a30d744bc75045be40e40b59e7a195fd882" integrity sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA== dependencies: event-stream "3.3.4" @@ -1322,63 +1066,63 @@ dbus-next@^0.5.1: debounce-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== dependencies: mimic-fn "^3.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: +debug@^2.2.0, debug@^2.6.9: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.2.6: version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" debug@~3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: is-arguments "^1.0.4" @@ -1390,191 +1134,160 @@ deep-equal@^1.0.1: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== defaults@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: clone "^1.0.2" defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== defer-to-connect@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= detect-node@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -dir-compare@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz" - integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== - dependencies: - buffer-equal "1.0.0" - colors "1.0.3" - commander "2.9.0" - minimatch "3.0.4" - -discord-rpc@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-4.0.1.tgz#a89aa04a048aa83ad4f347d53fa0162501eae0d8" - integrity sha512-HOvHpbq5STRZJjQIBzwoKnQ0jHplbEWFWlPDwXXKm/bILh4nzjcg7mNqll0UY7RsjFoaXA7e/oYb/4lvpda2zA== +discord-rpc@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" + integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== dependencies: node-fetch "^2.6.1" ws "^7.3.1" - optionalDependencies: - register-scheme "github:devsnek/node-register-scheme" -dmg-builder@23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz" - integrity sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA== +dmg-builder@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" + integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== dependencies: - app-builder-lib "23.6.0" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - fs-extra "^10.0.0" + app-builder-lib "22.9.1" + builder-util "22.9.1" + fs-extra "^9.0.1" iconv-lite "^0.6.2" - js-yaml "^4.1.0" - optionalDependencies: - dmg-license "^1.0.11" - -dmg-license@^1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz" - integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== - dependencies: - "@types/plist" "^3.0.1" - "@types/verror" "^1.10.3" - ajv "^6.10.0" - crc "^3.8.0" - iconv-corefoundation "^1.1.7" - plist "^3.0.4" - smart-buffer "^4.0.2" - verror "^1.10.0" + js-yaml "^3.14.0" + sanitize-filename "^1.6.3" dom-walk@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== dot-prop@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== dependencies: is-obj "^2.0.0" dotenv-expand@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv@^9.0.2: - version "9.0.2" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz" - integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -ejs@^3.1.7: - version "3.1.8" - resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz" - integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== - dependencies: - jake "^10.8.5" - -electron-builder@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz" - integrity sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw== - dependencies: - "@types/yargs" "^17.0.1" - app-builder-lib "23.6.0" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - dmg-builder "23.6.0" - fs-extra "^10.0.0" - is-ci "^3.0.0" - lazy-val "^1.0.5" - read-config-file "6.2.0" - simple-update-notifier "^1.0.7" - yargs "^17.5.1" +ejs@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== + dependencies: + jake "^10.6.1" + +electron-builder@^22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" + integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== + dependencies: + "@types/yargs" "^15.0.5" + app-builder-lib "22.9.1" + bluebird-lst "^1.0.9" + builder-util "22.9.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + dmg-builder "22.9.1" + fs-extra "^9.0.1" + is-ci "^2.0.0" + lazy-val "^1.0.4" + read-config-file "6.0.0" + sanitize-filename "^1.6.3" + update-notifier "^4.1.1" + yargs "^16.0.3" electron-canvas-to-buffer@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz#da92cd7342e47b3b0dde2a3ae79978e5a0761681" integrity sha1-2pLNc0LkezsN3io655l45aB2FoE= electron-clipboard-watcher@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= electron-fetch@^1.7.1: version "1.7.2" - resolved "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.2.tgz" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== dependencies: encoding "^0.1.13" electron-google-analytics@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== dependencies: electron-fetch "^1.7.1" @@ -1582,17 +1295,17 @@ electron-google-analytics@^1.0.2: electron-is-accelerator@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= electron-is-dev@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw== electron-localshortcut@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" integrity sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q== dependencies: debug "^4.0.1" @@ -1602,37 +1315,26 @@ electron-localshortcut@^3.2.1: electron-log@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/electron-log/-/electron-log-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== -electron-osx-sign@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz" - integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg== - dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - -electron-publish@23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz" - integrity sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg== +electron-publish@22.9.1: + version "22.9.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" + integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== dependencies: - "@types/fs-extra" "^9.0.11" - builder-util "23.6.0" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - fs-extra "^10.0.0" - lazy-val "^1.0.5" - mime "^2.5.2" + "@types/fs-extra" "^9.0.1" + bluebird-lst "^1.0.9" + builder-util "22.9.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + fs-extra "^9.0.1" + lazy-val "^1.0.4" + mime "^2.4.6" electron-rebuild@^2.3.4: version "2.3.4" - resolved "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.4.tgz" + resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== dependencies: "@malept/cross-spawn-promise" "^1.1.0" @@ -1650,7 +1352,7 @@ electron-rebuild@^2.3.4: electron-store@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/electron-store/-/electron-store-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== dependencies: conf "^7.1.2" @@ -1658,7 +1360,7 @@ electron-store@^6.0.1: electron-updater@^4.3.5: version "4.3.5" - resolved "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== dependencies: "@types/semver" "^7.3.1" @@ -1671,7 +1373,7 @@ electron-updater@^4.3.5: electron@*: version "11.2.3" - resolved "https://registry.npmjs.org/electron/-/electron-11.2.3.tgz" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb" integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ== dependencies: "@electron/get" "^1.0.1" @@ -1680,7 +1382,7 @@ electron@*: electron@^11.4.9: version "11.5.0" - resolved "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.5.0.tgz#f1650543b9d8f2047d3807755bdb120153ed210f" integrity sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg== dependencies: "@electron/get" "^1.0.1" @@ -1689,36 +1391,36 @@ electron@^11.4.9: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= encoding@^0.1.13: version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" engine.io-client@~3.4.0: version "3.4.3" - resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== dependencies: component-emitter "~1.3.0" @@ -1735,7 +1437,7 @@ engine.io-client@~3.4.0: engine.io-parser@~2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== dependencies: after "0.8.2" @@ -1746,7 +1448,7 @@ engine.io-parser@~2.2.0: engine.io@~3.4.0: version "3.4.2" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== dependencies: accepts "~1.3.4" @@ -1758,24 +1460,19 @@ engine.io@~3.4.0: env-paths@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: version "1.17.6" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: es-to-primitive "^1.2.1" @@ -1792,7 +1489,7 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -1801,37 +1498,37 @@ es-to-primitive@^1.2.1: es6-error@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== event-stream@3.3.4: version "3.3.4" - resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= dependencies: duplexer "~0.1.1" @@ -1844,7 +1541,7 @@ event-stream@3.3.4: execa@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== dependencies: cross-spawn "^7.0.0" @@ -1859,17 +1556,17 @@ execa@^2.1.0: exif-parser@^0.1.12: version "0.1.12" - resolved "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= extend@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extract-zip@^1.0.3: version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: concat-stream "^1.6.2" @@ -1879,65 +1576,65 @@ extract-zip@^1.0.3: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" file-type@^9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filelist@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + version "1.0.1" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" + integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== dependencies: - minimatch "^5.0.1" + minimatch "^3.0.4" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -1945,7 +1642,7 @@ find-up@^4.1.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -1953,28 +1650,19 @@ find-up@^5.0.0: find-versions@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== dependencies: semver-regex "^3.1.2" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" @@ -1983,83 +1671,60 @@ form-data@~2.3.2: from@~0: version "0.1.7" - resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= -fs-extra@^10.0.0, fs-extra@^10.1.0: - version "10.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== +fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^2.0.0" + universalify "^1.0.0" -fs-minipass@^1.2.7: +fs-minipass@^1.2.5: version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0, fs-minipass@^2.1.0: +fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - gauge@~2.7.3: version "2.7.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" @@ -2073,40 +1738,40 @@ gauge@~2.7.3: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.1.3, glob@^7.1.4: version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -2116,20 +1781,9 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1: - version "8.0.3" - resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - global-agent@^2.0.2: version "2.1.12" - resolved "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== dependencies: boolean "^3.0.1" @@ -2142,14 +1796,14 @@ global-agent@^2.0.2: global-dirs@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== dependencies: ini "^1.3.5" global-tunnel-ng@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== dependencies: encodeurl "^1.0.2" @@ -2159,7 +1813,7 @@ global-tunnel-ng@^2.7.1: global@~4.3.0: version "4.3.2" - resolved "https://registry.npmjs.org/global/-/global-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= dependencies: min-document "^2.19.0" @@ -2167,14 +1821,14 @@ global@~4.3.0: globalthis@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== dependencies: define-properties "^1.1.3" got@^11.7.0: version "11.8.1" - resolved "https://registry.npmjs.org/got/-/got-11.8.1.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== dependencies: "@sindresorhus/is" "^4.0.0" @@ -2191,7 +1845,7 @@ got@^11.7.0: got@^9.6.0: version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -2206,24 +1860,19 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.3: version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -2231,78 +1880,74 @@ har-validator@~5.1.3: has-binary2@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: isarray "2.0.1" has-cors@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hexy@^0.2.10: version "0.2.11" - resolved "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz" + resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== -hosted-git-info@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: lru-cache "^6.0.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: +http-cache-semantics@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -2310,30 +1955,15 @@ http-signature@~1.2.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.0-beta.5.2" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - husky@^4.3.7: version "4.3.7" - resolved "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== dependencies: chalk "^4.0.0" @@ -2349,7 +1979,7 @@ husky@^4.3.7: i18n@^0.13.2: version "0.13.2" - resolved "https://registry.npmjs.org/i18n/-/i18n-0.13.2.tgz" + resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== dependencies: debug "^4.1.1" @@ -2359,65 +1989,57 @@ i18n@^0.13.2: mustache "^4.0.1" sprintf-js "^1.1.2" -iconv-corefoundation@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz" - integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== - dependencies: - cli-truncate "^2.1.0" - node-addon-api "^1.6.3" - iconv-lite@^0.4.4: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ieee754@^1.1.4: version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== ignore-by-default@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= ignore-walk@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== dependencies: minimatch "^3.0.4" ignore@^5.1.4: version "5.1.8" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== image-to-base64@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/image-to-base64/-/image-to-base64-2.1.1.tgz#58c16f88494dfd3e84953cf845a5929be04fbdb5" integrity sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ== dependencies: node-fetch "^2.6.0" import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -2425,32 +2047,22 @@ import-fresh@^3.2.1: import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - indexof@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -2458,97 +2070,85 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.7" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - is-arguments@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" -is-ci@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-function@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== dependencies: global-dirs "^2.0.1" @@ -2556,195 +2156,178 @@ is-installed-globally@^0.3.1: is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - is-npm@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== is-regex@^1.0.4, is-regex@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: has-symbols "^1.0.1" is-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== is-symbol@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: has-symbols "^1.0.1" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isbinaryfile@^4.0.10: - version "4.0.10" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" - integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== +isbinaryfile@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" + integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jake@^10.8.5: - version "10.8.5" - resolved "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== dependencies: - async "^3.2.3" - chalk "^4.0.2" + async "0.9.x" + chalk "^2.4.2" filelist "^1.0.1" minimatch "^3.0.4" jpeg-js@^0.3.4: version "0.3.7" - resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== js-base64@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.14.0: +js-yaml@^3.13.1, js-yaml@^3.14.0: version "3.14.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsbi@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/jsbi/-/jsbi-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-typed@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.2.0: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== dependencies: universalify "^1.0.0" @@ -2752,59 +2335,59 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.4.0" + json-schema "0.2.3" verror "1.10.0" keyboardevent-from-electron-accelerator@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" integrity sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA== keyboardevents-areequal@^0.2.1: version "0.2.2" - resolved "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw== keyv@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" keyv@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== dependencies: json-buffer "3.0.1" latest-version@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" -lazy-val@^1.0.4, lazy-val@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz" - integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== +lazy-val@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" + integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== lines-and-columns@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= load-bmfont@^1.3.1: version "1.4.1" - resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== dependencies: buffer-equal "0.0.1" @@ -2818,7 +2401,7 @@ load-bmfont@^1.3.1: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -2826,65 +2409,60 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.4: +lodash@^4.17.10, lodash@^4.17.4: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: chalk "^4.0.0" long@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" -lru-cache@^7.7.1: - version "7.14.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz" - integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== - lzma-native@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== dependencies: node-addon-api "^1.6.0" @@ -2892,98 +2470,67 @@ lzma-native@^6.0.1: readable-stream "^2.3.5" rimraf "^2.7.1" -lzma-native@^8.0.6: - version "8.0.6" - resolved "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz" - integrity sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA== - dependencies: - node-addon-api "^3.1.0" - node-gyp-build "^4.2.1" - readable-stream "^3.6.0" - make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-fetch-happen@^10.0.3: - version "10.2.1" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" - integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" - make-plural@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== optionalDependencies: minimist "^1.2.0" make-plural@^6.2.2: version "6.2.2" - resolved "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== map-stream@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= markdown@^0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" integrity sha1-KCBbVlqK51kt4gdGPWY33BgnIrI= dependencies: nopt "~2.1.1" matcher@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== dependencies: escape-string-regexp "^4.0.0" math-interval-parser@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== messageformat-formatters@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== messageformat-parser@^4.1.2: version "4.1.3" - resolved "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== messageformat@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== dependencies: make-plural "^4.3.0" @@ -2992,177 +2539,110 @@ messageformat@^2.3.0: mime-db@1.44.0: version "1.44.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: mime-db "1.44.0" mime@^1.3.4: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.5.2: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mime@^2.4.6: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== min-document@^2.19.0: version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= dependencies: dom-walk "^0.1.0" -minimatch@3.0.4: +minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz" - integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^2.0.3: - version "2.1.2" - resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz" - integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== - dependencies: - minipass "^3.1.6" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^2.6.0, minipass@^2.9.0: +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0: version "3.1.3" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" -minipass@^3.1.6: - version "3.3.6" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz" - integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== - dependencies: - yallist "^4.0.0" - -minizlib@^1.3.3: +minizlib@^1.2.1: version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: minipass "^2.9.0" -minizlib@^2.1.1, minizlib@^2.1.2: +minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mpris-service@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mpris-service/-/mpris-service-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.0.tgz#0bbfb5b47a9b3e01ce8b9a41a8aef0ad3210c909" integrity sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg== dependencies: dbus-next "^0.5.1" @@ -3171,22 +2651,22 @@ mpris-service@^2.1.0: mri@^1.1.4: version "1.1.6" - resolved "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.2, ms@^2.0.0, ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multimatch@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: "@types/minimatch" "^3.0.3" @@ -3197,18 +2677,18 @@ multimatch@^4.0.0: mustache@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== nan@^2.12.1, nan@latest: - version "2.17.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== needle@^2.2.1: - version "2.9.1" - resolved "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -3216,86 +2696,55 @@ needle@^2.2.1: negotiator@0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - node-abi@^2.19.2: version "2.19.3" - resolved "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== dependencies: semver "^5.4.1" -node-addon-api@^1.3.0, node-addon-api@^1.6.0, node-addon-api@^1.6.3: +node-addon-api@^1.3.0, node-addon-api@^1.6.0: version "1.7.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-addon-api@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-fetch@^2.6.0: version "2.6.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== node-fetch@^2.6.1: version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-gyp-build@^4.2.1: - version "4.5.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - node-gyp-build@~3.7.0: version "3.7.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== node-gyp@^7.1.0: - version "7.1.2" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz" - integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.0.tgz#cb8aed7ab772e73ad592ae0c71b0e3741099fe39" + integrity sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.3" - nopt "^5.0.0" + nopt "^4.0.3" npmlog "^4.1.2" request "^2.88.2" - rimraf "^3.0.2" + rimraf "^2.6.3" semver "^7.3.2" - tar "^6.0.2" - which "^2.0.2" - -node-gyp@^9.3.1: - version "9.3.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz" - integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^6.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" + tar "^6.0.1" which "^2.0.2" node-pre-gyp@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== dependencies: detect-libc "^1.0.2" @@ -3311,7 +2760,7 @@ node-pre-gyp@^0.11.0: node-vibrant@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/node-vibrant/-/node-vibrant-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" integrity sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg== dependencies: "@jimp/custom" "^0.9.3" @@ -3324,7 +2773,7 @@ node-vibrant@^3.1.5: nodemon@^2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== dependencies: chokidar "^3.2.2" @@ -3338,62 +2787,58 @@ nodemon@^2.0.7: undefsafe "^2.0.3" update-notifier "^4.1.0" -nopt@^4.0.1: +nopt@^4.0.1, nopt@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== dependencies: abbrev "1" osenv "^0.1.4" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== - dependencies: - abbrev "^1.0.0" - nopt@~1.0.10: version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" nopt@~2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" integrity sha1-bMzZd7gBMqB3MdbozljCyDA8+a8= dependencies: abbrev "1" +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== npm-bundled@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== dependencies: npm-normalize-package-bin "^1.0.1" npm-conf@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== dependencies: config-chain "^1.1.11" @@ -3401,12 +2846,12 @@ npm-conf@^1.1.3: npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-packlist@^1.1.6: version "1.4.8" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== dependencies: ignore-walk "^3.0.1" @@ -3415,14 +2860,14 @@ npm-packlist@^1.1.6: npm-run-path@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== dependencies: path-key "^3.0.0" npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" @@ -3430,44 +2875,34 @@ npmlog@^4.0.2, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= object-inspect@^1.7.0: version "1.8.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== dependencies: define-properties "^1.1.3" @@ -3475,12 +2910,12 @@ object-is@^1.0.1: object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" @@ -3490,31 +2925,31 @@ object.assign@^4.1.0: omggif@^1.0.9: version "1.0.10" - resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opencollective-postinstall@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== ora@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/ora/-/ora-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== dependencies: bl "^4.0.3" @@ -3528,17 +2963,17 @@ ora@^5.1.0: os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-tmpdir@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: version "0.1.5" - resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" @@ -3546,69 +2981,62 @@ osenv@^0.1.4: p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-cancelable@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== p-finally@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -3618,29 +3046,29 @@ package-json@^6.3.0: pako@^1.0.5: version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-bmfont-ascii@^1.0.3: version "1.0.6" - resolved "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= parse-bmfont-binary@^1.0.5: version "1.0.6" - resolved "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= parse-bmfont-xml@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== dependencies: xml-parse-from-string "^1.0.0" @@ -3648,12 +3076,12 @@ parse-bmfont-xml@^1.1.4: parse-headers@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== parse-json@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== dependencies: "@babel/code-frame" "^7.0.0" @@ -3663,141 +3091,138 @@ parse-json@^5.0.0: parseqs@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" - resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pause-stream@0.0.11: version "0.0.11" - resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= dependencies: through "~2.3" pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= phin@^2.9.1: version "2.9.3" - resolved "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pixelmatch@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= dependencies: pngjs "^3.0.0" pkg-dir@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== dependencies: find-up "^5.0.0" pkg-up@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" please-upgrade-node@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== dependencies: semver-compare "^1.0.0" -plist@^3.0.1, plist@^3.0.4: - version "3.0.6" - resolved "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz" - integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^15.1.1" - pngjs@^3.0.0, pngjs@^3.3.3: version "3.4.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== postscribe@^2.0.8: version "2.0.8" - resolved "https://registry.npmjs.org/postscribe/-/postscribe-2.0.8.tgz" + resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= dependencies: prescribe ">=1.1.2" prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prescribe@>=1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/prescribe/-/prescribe-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= prettier@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-quick@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== dependencies: chalk "^2.4.2" @@ -3809,50 +3234,37 @@ pretty-quick@^2.0.2: process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@~0.5.1: version "0.5.2" - resolved "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= progress@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= psl@^1.1.28: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pstree.remy@^1.1.7: version "1.1.8" - resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -3860,49 +3272,49 @@ pump@^3.0.0: punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== dependencies: escape-goat "^2.0.0" put@0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/put/-/put-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/put/-/put-0.0.6.tgz#30f5f60bd6e4389bd329e16a25386cbb2e4a00a3" integrity sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM= qrcode-generator@^1.4.4: version "1.4.4" - resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== qs@~6.5.2: - version "6.5.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== rc@^1.2.7, rc@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -3910,20 +3322,20 @@ rc@^1.2.7, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-config-file@6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" - integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== +read-config-file@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" + integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== dependencies: - dotenv "^9.0.2" + dotenv "^8.2.0" dotenv-expand "^5.1.0" - js-yaml "^4.1.0" - json5 "^2.2.0" + js-yaml "^3.13.1" + json5 "^2.1.2" lazy-val "^1.0.4" readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -3934,9 +3346,9 @@ readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.4.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -3945,48 +3357,49 @@ readable-stream@^3.4.0, readable-stream@^3.6.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" regenerator-runtime@^0.13.4: version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regexp.prototype.flags@^1.2.0: version "1.3.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== dependencies: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -"register-scheme@github:devsnek/node-register-scheme": +register-scheme@0.0.2: version "0.0.2" - resolved "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17" + resolved "https://registry.yarnpkg.com/register-scheme/-/register-scheme-0.0.2.tgz#c91a61c735a9f14b2c9f0c2c27d707c0b06615e8" + integrity sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw== dependencies: bindings "^1.3.0" node-addon-api "^1.3.0" registry-auth-token@^4.0.0: version "4.2.0" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" request@^2.88.2: version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" @@ -4012,63 +3425,58 @@ request@^2.88.2: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= resolve-alpn@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve@^1.10.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" responselike@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== dependencies: lowercase-keys "^2.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rimraf@^2.6.1, rimraf@^2.7.1: +rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - roarr@^2.15.3: version "2.15.3" - resolved "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== dependencies: boolean "^3.0.0" @@ -4078,140 +3486,111 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: version "1.6.3" - resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== dependencies: truncate-utf8-bytes "^1.0.0" sax@>=0.6.0, sax@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== "scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": version "0.0.5" - resolved "git+https://github.com/dittodhole/node-scribble-js.git#a2b37f585c5382863319115db36201399477ed43" - integrity sha512-eIAqWX3kJaDfuY0OXamO1D1BozOI0sfWeCxmMpYZDadyVgiL3Od0uqsgtmKZGzGlKYjHuuu+xHEvvWyweLLCoQ== + resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" semver-compare@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: semver "^6.3.0" semver-regex@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== serialize-error@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== dependencies: type-fest "^0.13.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-update-notifier@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz" - integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== - dependencies: - semver "~7.0.0" +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -smart-buffer@^4.0.2, smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - socket.io-adapter@~1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== socket.io-client@2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== dependencies: backo2 "1.0.2" @@ -4231,7 +3610,7 @@ socket.io-client@2.3.0: socket.io-parser@~3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" @@ -4240,7 +3619,7 @@ socket.io-parser@~3.3.0: socket.io-parser@~3.4.0: version "3.4.1" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: component-emitter "1.2.1" @@ -4249,7 +3628,7 @@ socket.io-parser@~3.4.0: socket.io@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== dependencies: debug "~4.1.0" @@ -4259,26 +3638,9 @@ socket.io@^2.3.0: socket.io-client "2.3.0" socket.io-parser "~3.4.0" -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.7.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - source-map-support@^0.5.11, source-map-support@^0.5.19: version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" @@ -4286,30 +3648,56 @@ source-map-support@^0.5.11, source-map-support@^0.5.19: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + split@0.3: version "0.3.3" - resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= dependencies: through "2" sprintf-js@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -4321,55 +3709,56 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz" - integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== - dependencies: - minipass "^3.1.1" - stat-mode@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== stream-combiner@~0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= dependencies: duplexer "~0.1.1" string-width@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" string-width@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimend@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" @@ -4377,165 +3766,177 @@ string.prototype.trimend@^1.0.1: string.prototype.trimstart@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== dependencies: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.1.1, string_decoder@~1.1.1: +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - ansi-regex "^5.0.1" + ansi-regex "^5.0.0" strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= sumchecker@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== dependencies: debug "^4.1.0" supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== dependencies: has-flag "^4.0.0" tar@^4: - version "4.4.19" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tar@^6.0.1: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" -tar@^6.0.2, tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: - version "6.1.13" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== +tar@^6.0.5: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^3.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" -temp-file@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz" - integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== +temp-file@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" + integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== dependencies: async-exit-hook "^2.0.1" - fs-extra "^10.0.0" + fs-extra "^8.1.0" term-size@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== through@2, through@~2.3, through@~2.3.1: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timm@^1.6.1: version "1.6.2" - resolved "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== tinycolor2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= -tmp-promise@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" - integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== - dependencies: - tmp "^0.2.0" - -tmp@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - to-array@0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" touch@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tough-cookie@~2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" @@ -4543,101 +3944,82 @@ tough-cookie@~2.5.0: truncate-utf8-bytes@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= dependencies: utf8-byte-length "^1.0.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tunnel@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-fest@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== type-fest@^0.16.0: version "0.16.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= undefsafe@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== dependencies: debug "^2.2.0" -unique-filename@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz" - integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== - dependencies: - unique-slug "^3.0.0" - -unique-slug@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz" - integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== - dependencies: - imurmurhash "^0.1.4" - unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -update-notifier@^4.1.0: +update-notifier@^4.1.0, update-notifier@^4.1.1: version "4.1.3" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" @@ -4656,21 +4038,21 @@ update-notifier@^4.1.0: uri-js@^4.2.2: version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" url@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -4678,56 +4060,55 @@ url@^0.11.0: utf-8-validate@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== dependencies: node-gyp-build "~3.7.0" utf8-byte-length@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= utif@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== dependencies: pako "^1.0.5" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= uuid@^3.3.2: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.0: version "8.3.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" -verror@^1.10.0: - version "1.10.1" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz" - integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -4735,33 +4116,33 @@ verror@^1.10.0: wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" which-pm-runs@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: - string-width "^1.0.2 || 2 || 3 || 4" + string-width "^1.0.2 || 2" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" @@ -4779,7 +4160,7 @@ win-node-env@^0.4.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -4788,12 +4169,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -4803,29 +4184,29 @@ write-file-atomic@^3.0.0: ws@^7.1.2, ws@^7.3.1: version "7.3.1" - resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== ws@^7.4.2: version "7.4.2" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== ws@~6.1.0: version "6.1.4" - resolved "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xhr@^2.0.1: version "2.5.0" - resolved "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== dependencies: global "~4.3.0" @@ -4835,70 +4216,60 @@ xhr@^2.0.1: xml-parse-from-string@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= xml2js@^0.4.17, xml2js@^0.4.5: version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== dependencies: sax ">=0.6.0" xmlbuilder "~11.0.0" -xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: - version "15.1.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" - integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== - xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== xmlhttprequest-ssl@~1.5.4: version "1.5.5" - resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= xtend@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.5" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== -yallist@^3.0.0, yallist@^3.1.1: +yallist@^3.0.0, yallist@^3.0.3: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== yargs-parser@^20.2.2: version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^16.0.0: +yargs@^16.0.0, yargs@^16.0.3: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -4909,22 +4280,9 @@ yargs@^16.0.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.5.1: - version "17.6.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" @@ -4932,10 +4290,10 @@ yauzl@^2.10.0: yeast@0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 716d04ae9ce3f5e3ef48fb0b530627d204e623f1 Mon Sep 17 00:00:00 2001 From: mingjun97 <my@lyric.today> Date: Sun, 1 Jan 2023 19:21:51 -0800 Subject: [PATCH 159/489] :green_heart: Pin macos build env to `macos-11` --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc1199ed3..15a8eda3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-2019] + os: [macos-11, ubuntu-latest, windows-2019] steps: - uses: actions/checkout@v2 From c64b381f7718c0280f5856428849195a070345fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=B1=E5=87=8C?= <36478298+KageRyo@users.noreply.github.com> Date: Tue, 17 Jan 2023 13:13:23 +0800 Subject: [PATCH 160/489] Translate for Traditional Chinese(TW) + add Traditional Chinese(TW) --- src/locales/zh_TW.json | 106 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/locales/zh_TW.json diff --git a/src/locales/zh_TW.json b/src/locales/zh_TW.json new file mode 100644 index 000000000..f9776dcc1 --- /dev/null +++ b/src/locales/zh_TW.json @@ -0,0 +1,106 @@ +{ + "ADD_TO_LIBRARY": "新增到資料庫", + "ADD_TO_PLAYLIST": "新增到播放清單", + "ALWAYS_ASK_WHEN_READ_LINK": "在連結前一律確認", + "DOUBLE_CLICK_TO_RESET_POSITION": "點擊兩次以重設位置", + "LABEL_ALSO": "Also", + "LABEL_AUDIO": "音樂", + "LABEL_CANCEL": "取消", + "LABEL_CHANGELOG": "更新日誌", + "LABEL_DISABLE": "停用", + "LABEL_EXIT": "離開", + "LABEL_GUEST": "無痕模式", + "LABEL_LOADING": "讀取中...", + "LABEL_LYRICS_NOT_FOUND": "查無歌詞", + "LABEL_LYRICS": "歌詞", + "LABEL_LYRICS_GENIUS_AUTH": "YTMDesktop 需要 Genius 帳號授權(http://localhost:9864/login)或停用 Genius 歌詞 \"設定 > 集成 > 啟用 Genius 歌詞\"", + "LABEL_MINIPLAYER": "迷你播放工具", + "LABEL_NOTIFICATION_DISLIKED": "你不喜歡這首歌", + "LABEL_NOTIFICATION_LIKED": "你喜歡這首歌", + "LABEL_PLAY_MUSIC": "播放音樂", + "LABEL_SAVE": "儲存", + "LABEL_SAVED": "已儲存", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "顯示作家", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "播放暫停時顯示曲目", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "顯示播放時間", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "顯示標題", + "LABEL_SETTINGS_DISCORD": "Discord 狀態設定", + "LABEL_SETTINGS_RELAUNCH": "儲存並重新啟動", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "隱藏/顯示視窗", + "LABEL_SETTINGS_TAB_ABOUT": "關於", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "任務欄圖標顯示播放進度", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景使用專輯色彩", + "LABEL_SETTINGS_TAB_APPEARENCE": "顯示", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "沒有找到設備", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "遠端控制", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "點擊此處掃碼連接", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "遠端控制啟用密碼保護", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "退出時儲存當前播放佇列", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "自定義主題", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "禁用硬體加速", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord 集成", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "關閉視窗時保持播放", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "頁面大小", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "選擇輸出設備", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "語言(Language)", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "選擇歌詞來源", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "標題欄風格", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "集成", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "停用", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "跟隨系統", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "啟用托盤區控制(僅限Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "顯示通知", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "開啟最小化", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "開機自動啟動 (實驗功能, Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "偏好設定", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在 Windows 10 音量欄旁邊顯示曲目信息", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "啟用 Windows 10 媒體服務", + "LABEL_SETTINGS_TAB_INTEGRATION": "集成", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "集成", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM 集成", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "綁定 LAST FM 賬號", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS X", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "迷你播放工具視窗置頂", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "迷你播放工具控制顯示鎖定", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "迷你播放工具畫面設定", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允許調整迷你播放工具大小", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任務欄顯示迷你播放工具", + "LABEL_SETTINGS_TAB_MINIPLAYER": "迷你播放工具", + "LABEL_SETTINGS_TAB_PLAYBACK": "播放", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "閱讀剪貼板中的 YouTube 鏈接", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "全域", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "本地", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "按任意鍵", + "LABEL_SETTINGS_TAB_SHORTCUTS": "快捷鍵", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "音量媒體按鍵僅控制 app 音量", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "切換音量控制 '%' 至 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "啟用 Genius 歌詞", + "LABEL_SETTINGS": "設定", + "LABEL_SHUTDOWN": "關閉", + "LYRICS": "歌詞", + "MEDIA_CONTROL_MINIPLAYER": "打開/關閉 Mini 播放器", + "MEDIA_CONTROL_MUTE_UNMUTE": "靜音", + "MEDIA_CONTROL_NEXT": "下一首", + "MEDIA_CONTROL_PAUSE": "暫停", + "MEDIA_CONTROL_PLAY_PAUSE": "播放/暫停", + "MEDIA_CONTROL_PLAY": "播放", + "MEDIA_CONTROL_PREVIOUS": "上一首", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "打開/關閉佇列", + "MEDIA_CONTROL_REPEAT": "重復播放", + "MEDIA_CONTROL_SEARCH": "搜尋", + "MEDIA_CONTROL_SHUFFLE": "隨機播放", + "MEDIA_CONTROL_THUMBS_DOWN": "不喜歡", + "MEDIA_CONTROL_THUMBS_UP": "喜歡", + "MEDIA_CONTROL_VOLUME_DOWN": "減小音量", + "MEDIA_CONTROL_VOLUME_UP": "增大音量", + "MINIPLAYER": "迷你播放工具", + "PREFIX_OPEN_CLOSE": "打開/關閉", + "REMOVE_FROM_LIBRARY": "從資料庫中刪除", + "SHORTCUT_BUTTONS": "用戶界面行為", + "SHOW": "顯示", + "SKIP_TRACK_MARKED_DISLIKED": "跳過\"不喜歡\"標記", + "SKIP_TRACK_SHORTER_THAN": "跳過播放長度短於", + "TRAY_ICON": "任務欄圖標", + "WANT_PLAY_THIS_LINK": "要播放本連結嗎?" +} From e32bdcd7d7adbce8730579620c3053bc010df8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=B1=E5=87=8C?= <36478298+KageRyo@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:24:29 +0800 Subject: [PATCH 161/489] Translate for Traditional Chinese(TW) - 2 add option at settings.html --- src/pages/settings/settings.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index e9c170f65..7e21e4a02 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -343,6 +343,9 @@ <option value="zh"> 简体中文 </option> + <option value="zh_TW"> + 正體中文 + </option> <option value="ko"> 한국어 </option> From dd970d141e5047fb89a26671c43c084acb090437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=B1=E5=87=8C?= <36478298+KageRyo@users.noreply.github.com> Date: Tue, 17 Jan 2023 13:13:23 +0800 Subject: [PATCH 162/489] Translate for Traditional Chinese(TW) + add Traditional Chinese(TW) --- src/locales/zh_TW.json | 106 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/locales/zh_TW.json diff --git a/src/locales/zh_TW.json b/src/locales/zh_TW.json new file mode 100644 index 000000000..f9776dcc1 --- /dev/null +++ b/src/locales/zh_TW.json @@ -0,0 +1,106 @@ +{ + "ADD_TO_LIBRARY": "新增到資料庫", + "ADD_TO_PLAYLIST": "新增到播放清單", + "ALWAYS_ASK_WHEN_READ_LINK": "在連結前一律確認", + "DOUBLE_CLICK_TO_RESET_POSITION": "點擊兩次以重設位置", + "LABEL_ALSO": "Also", + "LABEL_AUDIO": "音樂", + "LABEL_CANCEL": "取消", + "LABEL_CHANGELOG": "更新日誌", + "LABEL_DISABLE": "停用", + "LABEL_EXIT": "離開", + "LABEL_GUEST": "無痕模式", + "LABEL_LOADING": "讀取中...", + "LABEL_LYRICS_NOT_FOUND": "查無歌詞", + "LABEL_LYRICS": "歌詞", + "LABEL_LYRICS_GENIUS_AUTH": "YTMDesktop 需要 Genius 帳號授權(http://localhost:9864/login)或停用 Genius 歌詞 \"設定 > 集成 > 啟用 Genius 歌詞\"", + "LABEL_MINIPLAYER": "迷你播放工具", + "LABEL_NOTIFICATION_DISLIKED": "你不喜歡這首歌", + "LABEL_NOTIFICATION_LIKED": "你喜歡這首歌", + "LABEL_PLAY_MUSIC": "播放音樂", + "LABEL_SAVE": "儲存", + "LABEL_SAVED": "已儲存", + "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "顯示作家", + "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "播放暫停時顯示曲目", + "LABEL_SETTINGS_DISCORD_SHOW_TIME": "顯示播放時間", + "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "顯示標題", + "LABEL_SETTINGS_DISCORD": "Discord 狀態設定", + "LABEL_SETTINGS_RELAUNCH": "儲存並重新啟動", + "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "隱藏/顯示視窗", + "LABEL_SETTINGS_TAB_ABOUT": "關於", + "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "任務欄圖標顯示播放進度", + "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景使用專輯色彩", + "LABEL_SETTINGS_TAB_APPEARENCE": "顯示", + "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "沒有找到設備", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "遠端控制", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "點擊此處掃碼連接", + "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "遠端控制啟用密碼保護", + "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "退出時儲存當前播放佇列", + "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "自定義主題", + "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "禁用硬體加速", + "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord 集成", + "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "關閉視窗時保持播放", + "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "頁面大小", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "選擇輸出設備", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "語言(Language)", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "選擇歌詞來源", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "標題欄風格", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "集成", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "停用", + "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "跟隨系統", + "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "啟用托盤區控制(僅限Mac OS)", + "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "顯示通知", + "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "開啟最小化", + "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "開機自動啟動 (實驗功能, Mac/Win)", + "LABEL_SETTINGS_TAB_GENERAL": "偏好設定", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在 Windows 10 音量欄旁邊顯示曲目信息", + "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "啟用 Windows 10 媒體服務", + "LABEL_SETTINGS_TAB_INTEGRATION": "集成", + "LABEL_SETTINGS_TAB_INTEGRATIONS": "集成", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM 集成", + "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "綁定 LAST FM 賬號", + "LABEL_SETTINGS_TAB_MACOS": "Mac OS X", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "迷你播放工具視窗置頂", + "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "迷你播放工具控制顯示鎖定", + "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "迷你播放工具畫面設定", + "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允許調整迷你播放工具大小", + "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任務欄顯示迷你播放工具", + "LABEL_SETTINGS_TAB_MINIPLAYER": "迷你播放工具", + "LABEL_SETTINGS_TAB_PLAYBACK": "播放", + "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", + "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "閱讀剪貼板中的 YouTube 鏈接", + "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "全域", + "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "本地", + "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "按任意鍵", + "LABEL_SETTINGS_TAB_SHORTCUTS": "快捷鍵", + "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "音量媒體按鍵僅控制 app 音量", + "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "切換音量控制 '%' 至 'dB'", + "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "啟用 Genius 歌詞", + "LABEL_SETTINGS": "設定", + "LABEL_SHUTDOWN": "關閉", + "LYRICS": "歌詞", + "MEDIA_CONTROL_MINIPLAYER": "打開/關閉 Mini 播放器", + "MEDIA_CONTROL_MUTE_UNMUTE": "靜音", + "MEDIA_CONTROL_NEXT": "下一首", + "MEDIA_CONTROL_PAUSE": "暫停", + "MEDIA_CONTROL_PLAY_PAUSE": "播放/暫停", + "MEDIA_CONTROL_PLAY": "播放", + "MEDIA_CONTROL_PREVIOUS": "上一首", + "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "打開/關閉佇列", + "MEDIA_CONTROL_REPEAT": "重復播放", + "MEDIA_CONTROL_SEARCH": "搜尋", + "MEDIA_CONTROL_SHUFFLE": "隨機播放", + "MEDIA_CONTROL_THUMBS_DOWN": "不喜歡", + "MEDIA_CONTROL_THUMBS_UP": "喜歡", + "MEDIA_CONTROL_VOLUME_DOWN": "減小音量", + "MEDIA_CONTROL_VOLUME_UP": "增大音量", + "MINIPLAYER": "迷你播放工具", + "PREFIX_OPEN_CLOSE": "打開/關閉", + "REMOVE_FROM_LIBRARY": "從資料庫中刪除", + "SHORTCUT_BUTTONS": "用戶界面行為", + "SHOW": "顯示", + "SKIP_TRACK_MARKED_DISLIKED": "跳過\"不喜歡\"標記", + "SKIP_TRACK_SHORTER_THAN": "跳過播放長度短於", + "TRAY_ICON": "任務欄圖標", + "WANT_PLAY_THIS_LINK": "要播放本連結嗎?" +} From 1a310949e3ccbbef5bc88577554482447c6ed6ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=B1=E5=87=8C?= <36478298+KageRyo@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:24:29 +0800 Subject: [PATCH 163/489] Translate for Traditional Chinese(TW) - 2 add option at settings.html --- src/pages/settings/settings.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 16a06cdef..4da9b053b 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -389,6 +389,9 @@ <option value="zh"> 简体中文 </option> + <option value="zh_TW"> + 正體中文 + </option> <option value="ko"> 한국어 </option> From 9d9372c8ef6764d86f1e91010b0585d4e4f6014a Mon Sep 17 00:00:00 2001 From: Mingjun Yin <my@lyric.today> Date: Mon, 20 Mar 2023 13:41:32 -0700 Subject: [PATCH 164/489] =?UTF-8?q?Revert=20"=E2=9C=A8=20macOS=20Media=20I?= =?UTF-8?q?ntegration=20(with=20package.json=20fix)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 16 ------ package.json | 1 - src/providers/macMediaProvider.js | 90 ------------------------------- yarn.lock | 16 +----- 4 files changed, 1 insertion(+), 122 deletions(-) delete mode 100644 src/providers/macMediaProvider.js diff --git a/main.js b/main.js index 7daa88889..abb887e48 100644 --- a/main.js +++ b/main.js @@ -66,7 +66,6 @@ let mainWindow, updateTrackInfoTimeout, activityLikeStatus, windowsMediaProvider, - macMediaProvider, audioDevices, settingsRendererIPC @@ -157,8 +156,6 @@ if (isMac()) { ) const menu = Menu.buildFromTemplate(statusBarMenu) Menu.setApplicationMenu(menu) - - macMediaProvider = require('./src/providers/macMediaProvider') } if (settingsProvider.get('settings-disable-hardware-acceleration')) @@ -419,7 +416,6 @@ async function createWindow() { if (isMac()) { global.sharedObj.paused = false updateStatusBar() - macMediaProvider.init(view) } if (infoPlayerInterval === undefined) { @@ -479,18 +475,6 @@ async function createWindow() { ) } - if (isMac()) { - macMediaProvider.setPlaybackData( - title, - author, - cover, - album, - seekbarCurrentPosition, - duration, - !playerInfo.isPaused - ) - } - /** * Scrobble when track changes or when current track starts from the beginning */ diff --git a/package.json b/package.json index db7b4984f..dfb0247ff 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,6 @@ "@nodert-win10-rs4/windows.media": "^0.4.4", "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", "bufferutil": "^4.0.1", - "electron-media-service": "github:tidal-engineering/electron-media-service", "mpris-service": "^2.1.0", "utf-8-validate": "^5.0.2", "win-node-env": "^0.4.0", diff --git a/src/providers/macMediaProvider.js b/src/providers/macMediaProvider.js deleted file mode 100644 index e1a416e8c..000000000 --- a/src/providers/macMediaProvider.js +++ /dev/null @@ -1,90 +0,0 @@ -const MediaService = require('electron-media-service') -const mediaControl = require('../providers/mediaProvider') - -class MacMediaProvider { - constructor() { - this.view = null - this.mediaService = new MediaService() - this.lastObj = {} - - this.mediaService.on('play', () => { - if (this.lastObj.state === 'paused' && !this.attemptedAction) { - mediaControl.playPauseTrack(this.view) - this.attemptedAction = true - } - }) - - this.mediaService.on('pause', () => { - if (this.lastObj.state === 'playing' && !this.attemptedAction) { - mediaControl.playPauseTrack(this.view) - this.attemptedAction = true - } - }) - - this.mediaService.on('playPause', () => { - if (!this.attemptedAction) { - mediaControl.playPauseTrack(this.view) - this.attemptedAction = true - } - }) - - this.mediaService.on('next', () => { - if (!this.attemptedAction) { - mediaControl.nextTrack(this.view) - this.attemptedAction = true - } - }); - - this.mediaService.on('previous', () => { - if (!this.attemptedAction) { - mediaControl.previousTrack(this.view) - this.attemptedAction = true - } - }); - - this.mediaService.on('seek', (to) => { - if (!this.attemptedAction) { - mediaControl.changeSeekbar(this.view, to / 1000) - this.attemptedAction = true - } - }); - } - - init(view) { - this.view = view - this.mediaService.startService() - } - - setPlaybackData(title, artist, cover, album, time, duration, playing) { - if (this.lastTime == time) { - return - } - - this.lastObj = { - title, - artist, - album, - state: playing ? 'playing' : 'paused', - albumArt: cover, - id: this.hashCode(artist + ' - ' + title), - currentTime: time * 1000, - duration: duration * 1000 - } - this.attemptedAction = false - this.mediaService.setMetaData(this.lastObj) - } - - // hash function to produce a unique id for songs - // as required by macOS - hashCode(str) { - var hash = 0, i, chr - for (i = 0; i < str.length; i++) { - chr = str.charCodeAt(i) - hash = ((hash << 5) - hash) + chr - hash |= 0 // Convert to 32bit integer - } - return hash - } -} - -module.exports = new MacMediaProvider() \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c6b0deadc..b22e527aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -593,7 +593,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.2.1, bindings@^1.3.0, bindings@^1.5.0: +bindings@^1.2.1, bindings@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -1318,15 +1318,6 @@ electron-log@^4.3.1: resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== -"electron-media-service@github:tidal-engineering/electron-media-service": - version "0.2.6" - resolved "https://codeload.github.com/tidal-engineering/electron-media-service/tar.gz/4fdb3d43a74b274a53261b11aa5c11a4f5a9d62f" - integrity sha512-OL2p3epr4wvbxwcSemgzZgV9trvlmTZSdqOZlBxkPiIGr6TflGWP7iH3CH2OTl6fplwV18orvOdEpA+iV8OYSA== - dependencies: - bindings "^1.5.0" - node-addon-api "^3.0.2" - semver "^7.3.2" - electron-publish@22.9.1: version "22.9.1" resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" @@ -2720,11 +2711,6 @@ node-addon-api@^1.3.0, node-addon-api@^1.6.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-addon-api@^3.0.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-fetch@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" From 9fa7e881c00fa2845b37467cc7e0778a4cbf0937 Mon Sep 17 00:00:00 2001 From: Fabian R <32802058+menof36go@users.noreply.github.com> Date: Wed, 17 May 2023 15:04:55 +0200 Subject: [PATCH 165/489] Fix Discord invite and License in README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 256bf2a4f..a8780f9b3 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # YouTube Music Desktop App <img type="image/png" src="https://ytmdesktop.app/img/product/main_5.png" alt="window"/> -[![Discord][discord-img]](discord-url) +[![Discord][discord-img]][discord-url] [![Gitmoji][gitmoji-img]][gitmoji-url] -[![GitHub license][license-img]](license-url) +[![GitHub license][license-img]][license-url] [![GitHub release][release-img]][release-url] [![Download][download-img]][download-url] @@ -76,7 +76,7 @@ Navigate to [ytmdesktop-locales](https://github.com/ytmdesktop/ytmdesktop-locale [gitmoji-img]: https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+ [gitmoji-url]: https://gitmoji.carloscuesta.me [license-img]: https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything -[license-url]: https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE +[license-url]: https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE.md [release-img]: https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr [release-url]: https://GitHub.com/ytmdesktop/ytmdesktop/releases/ [download-img]: https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg== From 9105e8e779ae47245297f92a66b4601b06503438 Mon Sep 17 00:00:00 2001 From: NovusTheory <novustheory@gmail.com> Date: Mon, 24 Jul 2023 19:39:01 -0500 Subject: [PATCH 166/489] Remove everything --- .github/ISSUE_TEMPLATE/BUG-REPORT.yml | 82 - .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml | 40 - .github/ISSUE_TEMPLATE/config.yml | 1 - .github/workflows/build.yml | 41 - .github/workflows/main.yml | 12 - .gitignore | 23 - .jshintrc | 3 - .prettierrc.json | 6 - CODE_OF_CONDUCT.md | 76 - CONTRIBUTING.md | 18 - LICENSE.md | 39 - README.md | 84 - STORE_VARIABLES.md | 54 - commit_hash.js | 2 - commit_hash.js.tpl | 2 - electron-builder-deploy64.yml | 51 - electron-builder.yml | 59 - electron-builder64.yml | 59 - main.js | 2296 --- package.json | 76 - script/build-current-platform.js | 31 - src/assets/css/material_icons.css | 34 - src/assets/css/materialize.min.css | 13 - src/assets/css/styles.css | 143 - src/assets/favicon.16x16.png | Bin 585 -> 0 bytes src/assets/favicon.256x256.png | Bin 11817 -> 0 bytes src/assets/favicon.512x512.png | Bin 30453 -> 0 bytes src/assets/favicon.icns | Bin 96472 -> 0 bytes src/assets/favicon.ico | Bin 56643 -> 0 bytes src/assets/favicon.png | Bin 11817 -> 0 bytes src/assets/favicon_pause.icns | Bin 1036 -> 0 bytes src/assets/favicon_pause.ico | Bin 2862 -> 0 bytes src/assets/favicon_pause.png | Bin 704 -> 0 bytes src/assets/favicon_play.icns | Bin 1036 -> 0 bytes src/assets/favicon_play.ico | Bin 2862 -> 0 bytes src/assets/favicon_play.png | Bin 709 -> 0 bytes src/assets/fonts/normal.woff2 | Bin 55208 -> 0 bytes src/assets/fonts/outlined.woff2 | Bin 83272 -> 0 bytes src/assets/icons_for_shiny_tray.js | 31 - src/assets/img/controls/pause-button.png | Bin 299 -> 0 bytes src/assets/img/controls/pause-button.psd | Bin 20998 -> 0 bytes src/assets/img/controls/play-button.png | Bin 572 -> 0 bytes src/assets/img/controls/play-button.psd | Bin 20396 -> 0 bytes src/assets/img/controls/play-next-button.png | Bin 542 -> 0 bytes src/assets/img/controls/play-next-button.psd | Bin 20518 -> 0 bytes .../img/controls/play-previous-button.png | Bin 1095 -> 0 bytes .../img/controls/play-previous-button.psd | Bin 22916 -> 0 bytes .../controls/thumbs-down-button-outline.png | Bin 912 -> 0 bytes .../controls/thumbs-down-button-outline.psd | Bin 22147 -> 0 bytes .../img/controls/thumbs-down-button.png | Bin 1028 -> 0 bytes .../img/controls/thumbs-down-button.psd | Bin 21849 -> 0 bytes .../img/controls/thumbs-up-button-outline.png | Bin 901 -> 0 bytes .../img/controls/thumbs-up-button-outline.psd | Bin 22145 -> 0 bytes src/assets/img/controls/thumbs-up-button.png | Bin 1025 -> 0 bytes src/assets/img/controls/thumbs-up-button.psd | Bin 21849 -> 0 bytes src/assets/img/notification-thumbs-down.png | Bin 1340 -> 0 bytes src/assets/img/notification-thumbs-down.psd | Bin 24475 -> 0 bytes src/assets/img/notification-thumbs-up.png | Bin 1333 -> 0 bytes src/assets/img/notification-thumbs-up.psd | Bin 24489 -> 0 bytes src/assets/img/null.png | Bin 463 -> 0 bytes src/assets/js/materialize.min.js | 12335 ---------------- src/assets/pause.png | Bin 101 -> 0 bytes src/assets/play.png | Bin 135 -> 0 bytes src/assets/trayTemplate.ico | Bin 56643 -> 0 bytes src/assets/trayTemplate.png | Bin 1650 -> 0 bytes src/assets/trayTemplate@2x.png | Bin 691 -> 0 bytes src/locales/readme.md | 3 - src/locales/zh_TW.json | 106 - src/pages/changelog/changelog.css | 32 - src/pages/changelog/changelog.html | 24 - src/pages/changelog/changelog.js | 20 - src/pages/editor/editor.css | 18 - src/pages/editor/editor.html | 37 - src/pages/editor/editor.js | 32 - src/pages/home/home.css | 0 src/pages/home/home.html | 49 - src/pages/home/home.js | 25 - src/pages/lyrics/lyrics.css | 64 - src/pages/lyrics/lyrics.html | 35 - src/pages/lyrics/lyrics.js | 297 - src/pages/miniplayer/miniplayer.css | 207 - src/pages/miniplayer/miniplayer.html | 102 - src/pages/miniplayer/miniplayer.js | 154 - src/pages/miniplayer/streamPlayer.css | 146 - src/pages/miniplayer/streamPlayer.html | 96 - src/pages/settings/settings.css | 284 - src/pages/settings/settings.html | 1780 --- src/pages/settings/settings.js | 694 - .../settings/sub/discord/discord_settings.css | 233 - .../sub/discord/discord_settings.html | 117 - .../settings/sub/discord/discord_settings.js | 36 - .../settings/sub/last-fm/last-fm-login.html | 53 - .../settings/sub/last-fm/last-fm-login.js | 18 - .../shortcut-buttons-settings.css | 233 - .../shortcut-buttons-settings.html | 121 - .../shortcut-buttons-settings.js | 41 - .../window-buttons/shiny-tray-helper.js | 92 - .../shared/window-buttons/window-buttons.css | 9 - .../shared/window-buttons/window-buttons.html | 124 - .../shared/window-buttons/window-buttons.js | 126 - src/providers/analyticsProvider.js | 45 - src/providers/assetsProvider.js | 26 - src/providers/companionServer.js | 512 - src/providers/discordRpcProvider.js | 113 - src/providers/geniusAuthServer.js | 93 - src/providers/infoPlayerProvider.js | 624 - src/providers/mediaProvider.js | 254 - src/providers/mprisProvider.js | 110 - src/providers/rainmeterNowPlaying.js | 169 - src/providers/scrobblerProvider.js | 103 - src/providers/settingsProvider.js | 78 - src/providers/templateProvider.js | 324 - src/providers/translateProvider.js | 123 - src/providers/trayProvider.js | 236 - src/providers/updateProvider.js | 39 - src/providers/windowsMediaProvider.js | 94 - src/utils/calcYTViewSize.js | 77 - src/utils/defaultSettings.js | 137 - src/utils/fileSystem.js | 40 - src/utils/injectControls.js | 1063 -- src/utils/systemInfo.js | 26 - src/utils/window.js | 86 - yarn.lock | 4299 ------ 123 files changed, 29690 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/BUG-REPORT.yml delete mode 100644 .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/main.yml delete mode 100644 .gitignore delete mode 100644 .jshintrc delete mode 100644 .prettierrc.json delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 LICENSE.md delete mode 100644 README.md delete mode 100644 STORE_VARIABLES.md delete mode 100644 commit_hash.js delete mode 100644 commit_hash.js.tpl delete mode 100644 electron-builder-deploy64.yml delete mode 100644 electron-builder.yml delete mode 100644 electron-builder64.yml delete mode 100644 main.js delete mode 100644 package.json delete mode 100644 script/build-current-platform.js delete mode 100644 src/assets/css/material_icons.css delete mode 100644 src/assets/css/materialize.min.css delete mode 100644 src/assets/css/styles.css delete mode 100644 src/assets/favicon.16x16.png delete mode 100644 src/assets/favicon.256x256.png delete mode 100644 src/assets/favicon.512x512.png delete mode 100644 src/assets/favicon.icns delete mode 100644 src/assets/favicon.ico delete mode 100644 src/assets/favicon.png delete mode 100644 src/assets/favicon_pause.icns delete mode 100644 src/assets/favicon_pause.ico delete mode 100644 src/assets/favicon_pause.png delete mode 100644 src/assets/favicon_play.icns delete mode 100644 src/assets/favicon_play.ico delete mode 100644 src/assets/favicon_play.png delete mode 100644 src/assets/fonts/normal.woff2 delete mode 100644 src/assets/fonts/outlined.woff2 delete mode 100644 src/assets/icons_for_shiny_tray.js delete mode 100644 src/assets/img/controls/pause-button.png delete mode 100644 src/assets/img/controls/pause-button.psd delete mode 100644 src/assets/img/controls/play-button.png delete mode 100644 src/assets/img/controls/play-button.psd delete mode 100644 src/assets/img/controls/play-next-button.png delete mode 100644 src/assets/img/controls/play-next-button.psd delete mode 100644 src/assets/img/controls/play-previous-button.png delete mode 100644 src/assets/img/controls/play-previous-button.psd delete mode 100644 src/assets/img/controls/thumbs-down-button-outline.png delete mode 100644 src/assets/img/controls/thumbs-down-button-outline.psd delete mode 100644 src/assets/img/controls/thumbs-down-button.png delete mode 100644 src/assets/img/controls/thumbs-down-button.psd delete mode 100644 src/assets/img/controls/thumbs-up-button-outline.png delete mode 100644 src/assets/img/controls/thumbs-up-button-outline.psd delete mode 100644 src/assets/img/controls/thumbs-up-button.png delete mode 100644 src/assets/img/controls/thumbs-up-button.psd delete mode 100644 src/assets/img/notification-thumbs-down.png delete mode 100644 src/assets/img/notification-thumbs-down.psd delete mode 100644 src/assets/img/notification-thumbs-up.png delete mode 100644 src/assets/img/notification-thumbs-up.psd delete mode 100644 src/assets/img/null.png delete mode 100644 src/assets/js/materialize.min.js delete mode 100644 src/assets/pause.png delete mode 100644 src/assets/play.png delete mode 100644 src/assets/trayTemplate.ico delete mode 100644 src/assets/trayTemplate.png delete mode 100644 src/assets/trayTemplate@2x.png delete mode 100644 src/locales/readme.md delete mode 100644 src/locales/zh_TW.json delete mode 100644 src/pages/changelog/changelog.css delete mode 100644 src/pages/changelog/changelog.html delete mode 100644 src/pages/changelog/changelog.js delete mode 100644 src/pages/editor/editor.css delete mode 100644 src/pages/editor/editor.html delete mode 100644 src/pages/editor/editor.js delete mode 100644 src/pages/home/home.css delete mode 100644 src/pages/home/home.html delete mode 100644 src/pages/home/home.js delete mode 100644 src/pages/lyrics/lyrics.css delete mode 100644 src/pages/lyrics/lyrics.html delete mode 100644 src/pages/lyrics/lyrics.js delete mode 100644 src/pages/miniplayer/miniplayer.css delete mode 100644 src/pages/miniplayer/miniplayer.html delete mode 100644 src/pages/miniplayer/miniplayer.js delete mode 100644 src/pages/miniplayer/streamPlayer.css delete mode 100644 src/pages/miniplayer/streamPlayer.html delete mode 100644 src/pages/settings/settings.css delete mode 100644 src/pages/settings/settings.html delete mode 100644 src/pages/settings/settings.js delete mode 100644 src/pages/settings/sub/discord/discord_settings.css delete mode 100644 src/pages/settings/sub/discord/discord_settings.html delete mode 100644 src/pages/settings/sub/discord/discord_settings.js delete mode 100644 src/pages/settings/sub/last-fm/last-fm-login.html delete mode 100644 src/pages/settings/sub/last-fm/last-fm-login.js delete mode 100644 src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.css delete mode 100644 src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.html delete mode 100644 src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.js delete mode 100644 src/pages/shared/window-buttons/shiny-tray-helper.js delete mode 100644 src/pages/shared/window-buttons/window-buttons.css delete mode 100644 src/pages/shared/window-buttons/window-buttons.html delete mode 100644 src/pages/shared/window-buttons/window-buttons.js delete mode 100644 src/providers/analyticsProvider.js delete mode 100644 src/providers/assetsProvider.js delete mode 100644 src/providers/companionServer.js delete mode 100644 src/providers/discordRpcProvider.js delete mode 100644 src/providers/geniusAuthServer.js delete mode 100644 src/providers/infoPlayerProvider.js delete mode 100644 src/providers/mediaProvider.js delete mode 100644 src/providers/mprisProvider.js delete mode 100644 src/providers/rainmeterNowPlaying.js delete mode 100644 src/providers/scrobblerProvider.js delete mode 100644 src/providers/settingsProvider.js delete mode 100644 src/providers/templateProvider.js delete mode 100644 src/providers/translateProvider.js delete mode 100644 src/providers/trayProvider.js delete mode 100644 src/providers/updateProvider.js delete mode 100644 src/providers/windowsMediaProvider.js delete mode 100644 src/utils/calcYTViewSize.js delete mode 100644 src/utils/defaultSettings.js delete mode 100644 src/utils/fileSystem.js delete mode 100644 src/utils/injectControls.js delete mode 100644 src/utils/systemInfo.js delete mode 100644 src/utils/window.js delete mode 100644 yarn.lock diff --git a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml b/.github/ISSUE_TEMPLATE/BUG-REPORT.yml deleted file mode 100644 index ad43aeb01..000000000 --- a/.github/ISSUE_TEMPLATE/BUG-REPORT.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: Bug Report -description: File a bug report -title: "<TITLE HERE>" -labels: ["bug"] -body: -- type: checkboxes - attributes: - label: Consent - options: - - label: I verified that there is no open/closed issue for the same subject. - required: true - - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** - required: true -- type: textarea - attributes: - label: Current Behavior - description: A concise description of what you're experiencing. - validations: - required: true -- type: textarea - attributes: - label: Expected Behavior - description: A concise description of what you expected to happen. - validations: - required: true -- type: textarea - attributes: - label: Steps To Reproduce - description: Steps to reproduce the behavior. - placeholder: | - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error - validations: - required: true -- type: input - attributes: - label: YTMDesktop - description: "YTMDesktop version" - placeholder: v1.2.3 - validations: - required: true -- type: input - attributes: - label: OS - description: "Which OS are you using?" - value: Windows - validations: - required: true -- type: input - attributes: - label: OS Version - description: "Which OS Version are you on?" - value: "10" - validations: - required: true -- type: dropdown - attributes: - label: Arch - description: "Which arch are you using?" - options: - - x64 - - x86 - validations: - required: true -- type: input - attributes: - label: Installation way - description: "like .exe or snapcraft or another way" - placeholder: .exe - validations: - required: true -- type: textarea - attributes: - label: Anything else? - description: | - Links? Screenshots? References? Anything that will give us more context about the issue you are encountering! - - Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. - validations: - required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml b/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml deleted file mode 100644 index 1fad6a206..000000000 --- a/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Feature request -description: Suggest an idea for this project -title: "<TITLE HERE>" -labels: ["enhancement"] -body: -- type: checkboxes - attributes: - label: Consent - options: - - label: I verified that there is no open/closed issue for the same subject. - required: true - - label: I understand that **YTMDesktop have NO affiliation with Google or YouTube** - required: true -- type: textarea - attributes: - label: Feature - description: Describe the feature you'd like - validations: - required: true -- type: textarea - attributes: - label: Solution - description: Describe the solution you'd like - validations: - required: false -- type: textarea - attributes: - label: Alternatives - description: Describe alternatives you've considered - validations: - required: false -- type: textarea - attributes: - label: Anything else? - description: | - Links? Screenshots? References? Anything that will give us more context about the feature you are wish to add! - - Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. - validations: - required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0ce..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 15a8eda3c..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Build - -on: - - push - - pull_request - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [macos-11, ubuntu-latest, windows-2019] - - steps: - - uses: actions/checkout@v2 - - name: Setup Node - uses: actions/setup-node@v1 - with: - node-version: 12 - - run: yarn --frozen-lockfile - - run: node ./script/build-current-platform.js - - uses: actions/upload-artifact@v2 - with: - name: dist-merged - path: | - dist/*.dmg - dist/*.exe - dist/*.AppImage - dist/*.blockmap - dist/*.yml - - uses: actions/upload-artifact@v2 - with: - name: dist-${{ matrix.os }} - path: | - dist/*.dmg - dist/*.exe - dist/*.AppImage - dist/*.blockmap - dist/*.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 5854b3660..000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Autocloser -on: [issues] -jobs: - autoclose: - runs-on: ubuntu-latest - steps: - - name: Autoclose issues that did not follow issue template - uses: roots/issue-closer@v1.1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-close-message: "@${issue.user.login} this issue was automatically closed because it did not follow any of the available issue templates" - issue-pattern: (I understand that \*\*YTMDesktop have NO affiliation with Google or YouTube)|(I verified that there is no open issue for the same subject.) diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dfce3f582..000000000 --- a/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# distribution Folders -dist/ - -# Library & Library Manger files -node_modules/ - -.yarn/ -yarn-error.log -package-lock.json - -# IDE folders -.idea/ -.vs/ -.vscode/ - -# Other Files -.cache/ - -.DS_Store -/youtube-music-desktop-app-*.tgz -app-update.yml -dev-app-update.yml -commit_hash.js \ No newline at end of file diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index c50d58e85..000000000 --- a/.jshintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "esversion": 8 -} \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index e74ed9ff3..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "trailingComma": "es5", - "tabWidth": 4, - "semi": false, - "singleQuote": true -} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index e1053c9a7..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at adlerluiz10@gmail.com or rickinbsb@gmail.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index f43927a8b..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,18 +0,0 @@ -Thanks for taking the time to contribute with ytmdesktop! -If you have some commits to send our way, please, send a pull request to ```development``` branch, and if everything is good to go, it will be merged and included on the next release. - -## Commits -This repository follows the [😜gitmoji](https://gitmoji.carloscuesta.me/) commit standard. Please, follow this standard to provide an easy way of identifying the purpose or intention of your commit, followed by a small description on the changes you've made. Here are some examples: - - $ git commit -m ":bug: padding on main window" -> :bug: padding on main window - -(note that there is no need to start the message with "fix" as it is implied by the bug emoji) - ---- - $ git commit -m ":sparkles: last.fm support" -> :sparkles: last.fm support - ---- - $ git commit -m ":arrow_up: bumping electron version" -> :arrow_up: bumping electron version \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index b823bcc44..000000000 --- a/LICENSE.md +++ /dev/null @@ -1,39 +0,0 @@ -CC0 1.0 Universal -================== - -Statement of Purpose ---------------------- - -The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. --------------------------------- -A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: - -i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; -ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; -iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; -v. rights protecting the extraction, dissemination, use and reuse of data in a Work; -vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and -vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. ------------ -To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. ----------------------------- -Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. --------------------------------- - -a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. -b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. -c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. -d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/README.md b/README.md deleted file mode 100644 index 256bf2a4f..000000000 --- a/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# YouTube Music Desktop App -<img type="image/png" src="https://ytmdesktop.app/img/product/main_5.png" alt="window"/> - -[![Discord][discord-img]](discord-url) -[![Gitmoji][gitmoji-img]][gitmoji-url] -[![GitHub license][license-img]](license-url) -[![GitHub release][release-img]][release-url] -[![Download][download-img]][download-url] - -##### Guide: -1. [How to use](https://github.com/ytmdesktop/ytmdesktop/wiki/How-use) -2. [FAQ](https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ) - -# Available for -<a href="https://repology.org/project/ytmdesktop/versions"> - <img type="image/svg" align="right" src="https://repology.org/badge/vertical-allrepos/ytmdesktop.svg" alt="Packaging status"/> -</a> - -#### Windows -- Winget: ```winget install "YouTube Music Desktop App"``` or ```winget install Ytmdesktop.Ytmdesktop``` -- Chocolatey: ```choco install ytmdesktop``` -- Binaries: <https://github.com/ytmdesktop/ytmdesktop/releases> - -#### Linux -- Arch Linux (AUR): <https://aur.archlinux.org/packages/ytmdesktop-git> -- Snap: <https://snapcraft.io/youtube-music-desktop-app> -- Binaries: <https://github.com/ytmdesktop/ytmdesktop/releases> - -#### Mac -- Brew: ```brew install --cask ytmdesktop-youtube-music``` -- Binaries: <https://github.com/ytmdesktop/ytmdesktop/releases> - -# Installing ytmdesktop -To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: - -```sh -# Clone this repository -git clone https://github.com/ytmdesktop/ytmdesktop.git -# Go into the directory -cd ytmdesktop -``` -##### And: -```sh -# Install dependencies -yarn install -# Run the app -yarn start -``` - -**Note:** If you're using Linux Bash for Windows, [see this guide][more] or use `node` from the command prompt. - -## To contribute for your own language -Navigate to [ytmdesktop-locales](https://github.com/ytmdesktop/ytmdesktop-locales) and follow the instructions there. - -## Contributors -[<img alt="adlerluiz" src="https://github.com/adlerluiz.png?size=120" width="120px"/>](https://github.com/adlerluiz) -[<img alt="mingjun97" src="https://github.com/mingjun97.png?size=120" width="120px"/>](https://github.com/mingjun97) -[<img alt="kyjus25" src="https://github.com/kyjus25.png?size=120" width="120px"/>](https://github.com/kyjus25) -[<img alt="tbvjaos510" src="https://github.com/tbvjaos510.png?size=120" width="120px"/>](https://github.com/tbvjaos510) -[<img alt="rickinbsb" src="https://github.com/rickinbsb.png?size=120" width="120px"/>](https://github.com/rickinbsb) -[<img alt="KimVuu" src="https://github.com/KimVuu.png?size=120" width="120px"/>](https://github.com/KimVuu) -[<img alt="Venipa" src="https://github.com/Venipa.png?size=120" width="120px"/>](https://github.com/Venipa) -[<img alt="pinkiesky" src="https://github.com/pinkiesky.png?size=120" width="120px"/>](https://github.com/pinkiesky) -[<img alt="austonpramodh" src="https://github.com/austonpramodh.png?size=120" width="120px"/>](https://github.com/austonpramodh) -[<img alt="benjaminaudet" src="https://github.com/benjaminaudet.png?size=120" width="120px"/>](https://github.com/benjaminaudet) -[<img alt="garfunkel" src="https://github.com/garfunkel.png?size=120" width="120px"/>](https://github.com/garfunkel) -[<img alt="ZeusAFK" src="https://github.com/ZeusAFK.png?size=120" width="120px"/>](https://github.com/ZeusAFK) -[<img alt="SN9NV" src="https://github.com/SN9NV.png?size=120" width="120px"/>](https://github.com/SN9NV) -[<img alt="AdityaTD" src="https://github.com/AdityaTD.png?size=120" width="120px"/>](https://github.com/AdityaTD) -[<img alt="vbackeberg" src="https://github.com/vbackeberg.png?size=120" width="120px"/>](https://github.com/vbackeberg) -[<img alt="Vistaus" src="https://github.com/Vistaus.png?size=120" width="120px"/>](https://github.com/vistaus) -[<img alt="ddarkr" src="https://github.com/ddarkr.png?size=120" width="120px"/>](https://github.com/ddarkr) - -[discord-img]: https://img.shields.io/badge/Discord-JOIN-GREEN.svg?style=for-the-badge&logo=discord -[discord-url]: https://discord.gg/88P2n2a -[gitmoji-img]: https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+ -[gitmoji-url]: https://gitmoji.carloscuesta.me -[license-img]: https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything -[license-url]: https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE -[release-img]: https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr -[release-url]: https://GitHub.com/ytmdesktop/ytmdesktop/releases/ -[download-img]: https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg== -[download-url]: https://github.com/ytmdesktop/ytmdesktop/releases/ -[more]: https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/ diff --git a/STORE_VARIABLES.md b/STORE_VARIABLES.md deleted file mode 100644 index e1094f5c4..000000000 --- a/STORE_VARIABLES.md +++ /dev/null @@ -1,54 +0,0 @@ -# Store variables - -## App -| Key | Type | Values | Default | Description | -| ------------------------------------- | ------- | ---------------------------- | ---------------------------- | ----------------------- | -| `uuid` | String | `unique-id` | `unique-id` | Unique id for analytics | - -## Settings -| Key | Type | Values | Default | Description | -| ------------------------------------------ | ------- | ---------------------------- | ---------------------------- | -------------------------------------------------------------------------------------| -| `settings-app-audio-output` | String | `Audio devices` | DEFAULT_AUDIO_DEVICE | Define default audio output | -| `settings-app-language` | String | `en`, `pt`, ... | `en` | Language of the app | -| `settings-clipboard-read` | Boolean | `true` or `false` | `false` | Reads the clipboard for youtube links | -| `settings-custom-css-app` | Boolean | `true` or `false` | `false` | Custom css for main app | -| `settings-companion-server` | Boolean | `true` or `false` | `false` | Companion Server to control the player remotely | -| `settings-companion-server-protect` | Boolean | `true` or `false` | `true` | Enable or disable protection of companion | -| `settings-companion-server-token` | String | `String token` | GENERATED_TOKEN | Token to prevent anonymous control of the player | -| `settings-continue-where-left-of` | Boolean | `true` or `false` | `false` | When you close and open the app, will return where you stopped | -| `settings-custom-css-page` | Boolean | `true` or `false` | `false` | Custom css for web page | -| `settings-decibel-volume` | Boolean | `true` or `false` | `true` | Replace the volume control with a decibel based system | -| `settings-disable-analytics` | Boolean | `true` or `false` | `false` | Disables the Analytics which the Application sends to Google Analytics | -| `settings-discord-rich-presence` | Boolean | `true` or `false` | `false` | Integration with Discord Rich Presence | -| `settings-enable-double-tapping-show-hide` | Boolean | `true` or `false` | `true` | Enable or disable double-tapping to show/hide main window | -| `settings-enable-player-bgcolor` | Boolean | `true` or `false` | `false` | Enable or disable setting the background of the player to the color of the cover art | -| `settings-genius-auth-server` | Boolean | `true` or `false` | `false` | Turns off the authentication server & Genius lyrics provider | -| `settings-lyrics-always-top` | Boolean | `true` or `false` | `false` | Always show lyrics window on top | -| `settings-lyrics-provider` | String | ? | 1 | Lyrics provider - Not entirely sure how this is implemented | -| `settings-miniplayer-always-top` | Boolean | `true` or `false` | `false` | Always show miniplayer on top | -| `settings-miniplayer-resizeable` | Boolean | `true` or `false` | `false` | Make miniplayer resizable or not | -| `settings-miniplayer-show-task` | Boolean | `true` or `false` | `false` | Hide from task bar | -| `settings-miniplayer-size` | String | Value represented by px | `200` | Size of miniplayer | -| `settings-page-zoom` | String | `50` ~ `150` | `100` | Zoom of the main window | -| `settings-keep-background` | Boolean | `true` or `false` | `false` | When close main window, keep the player on background | -| `settings-show-notifications` | Boolean | `true` or `false` | `false` | Show notifications on desktop when change music | -| `settings-start-minimized` | Boolean | `true` or `false` | `false` | Open player minimized in tray | -| `settings-start-on-boot` | Boolean | `true` or `false` | `false` | Open player when system starts | -| `settings-volume` | String | `0` ~ `100` | `100` | Playback volume | -| `settings-volume-media-keys` | Boolean | `true` or `false` | `false` | Enable media volume keys for the playback volume | -| `settings-pause-on-suspend` | Boolean | `true` or `false` | `false` | Pause media playback on `suspend` event triggered | -| `settings-surround-sound` | Boolean | `true` or `false` | `false` | Enable Chromium Flag "try-supported-channel-layouts" for surround sound/Speaker Fill | - -## Window -| Key | Type | Values | Default | Description | -| ------------------------------------- | ------- | ---------------------------- | ---------------------------- | --------------------------------------------- | -| `titlebar-type` | String | `nice` or `system` or `none` | `nice` | Type of frame titlebar | -| `window-url` | String | `https://music.youtube.com/` | `https://music.youtube.com/` | YouTube Music Url | -| `window-position` | Object | `width` and `heigth` | `{ width: x, heigth: y }` | Position of the main window | -| `window-maximized` | Boolean | `true` or `false` | `false` | Value to define if window is maximized or not | -| `window-size` | Object | `width` and `heigth` | `{ width: x, heigth: y }` | Sizes of the main window | - -## Variables -| Key | Type | Values | Default | Description | -| ------------------------------------- | ------- | ------------------------------ | ---------------------------- | --------------------------------------------- | -| `genius-auth` | Object | `access_token` and `token_type`| empty | Authorization token & type to make requests | diff --git a/commit_hash.js b/commit_hash.js deleted file mode 100644 index 5ec0c8285..000000000 --- a/commit_hash.js +++ /dev/null @@ -1,2 +0,0 @@ -commit_hash = 'DEVELOPMENT_BUILD' -module.exports = { commit_hash: commit_hash } diff --git a/commit_hash.js.tpl b/commit_hash.js.tpl deleted file mode 100644 index 5912dd489..000000000 --- a/commit_hash.js.tpl +++ /dev/null @@ -1,2 +0,0 @@ -commit_hash = "DEVELOPMENT_BUILD"; -module.exports = {commit_hash: commit_hash} \ No newline at end of file diff --git a/electron-builder-deploy64.yml b/electron-builder-deploy64.yml deleted file mode 100644 index 3c19b5464..000000000 --- a/electron-builder-deploy64.yml +++ /dev/null @@ -1,51 +0,0 @@ -productName: YouTube Music Desktop App -appId: app.ytmd - -files: - - '**/*' - - "!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}" - - "!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}" - - "!**/node_modules/*.d.ts" - - "!**/node_modules/.bin" - - "!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}" - - "!**/._*" - - "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}" - - "!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}" - - "!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}" - - '!LICENSE.md' - - '!CODE_OF_CONDUCT.md' - - '!CONTRIBUTING.md' - - '!README.md' - - '!STORE_VARIABLES.md' - - '!.prettierrc.json' - - '!package.json' - - '!package-lock.json' - - '!.cache' - - '!app-update.yml' - - '!dev-app-update.yml' - -protocols: - name: YouTube Music Desktop - schemes: [ytmd] - -electronDownload: - arch: x64 - cache: '.cache/electron-builder/' - -win: - icon: src/assets/favicon.ico - -mac: - icon: src/assets/favicon.icns - category: public.app-category.music - darkModeSupport: true - target: - - dmg - -linux: - icon: src/assets/favicon.png - category: AudioVideo - -snap: - slots: - - mpris diff --git a/electron-builder.yml b/electron-builder.yml deleted file mode 100644 index 1ebe5c607..000000000 --- a/electron-builder.yml +++ /dev/null @@ -1,59 +0,0 @@ -productName: YouTube Music Desktop App -appId: app.ytmd - -files: - - '**/*' - - "!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}" - - "!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}" - - "!**/node_modules/*.d.ts" - - "!**/node_modules/.bin" - - "!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}" - - "!**/._*" - - "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}" - - "!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}" - - "!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}" - - '!LICENSE.md' - - '!CODE_OF_CONDUCT.md' - - '!CONTRIBUTING.md' - - '!README.md' - - '!STORE_VARIABLES.md' - - '!.prettierrc.json' - - '!package.json' - - '!package-lock.json' - - '!.cache' - - '!app-update.yml' - - '!dev-app-update.yml' - -protocols: - name: YouTube Music Desktop - schemes: [ytmd] - -electronDownload: - arch: x86 - cache: '.cache/electron-builder/' - -win: - icon: src/assets/favicon.ico - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/win' - channel: latest - -mac: - icon: src/assets/favicon.icns - category: public.app-category.music - darkModeSupport: true - target: - - dmg - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/mac' - channel: latest - -linux: - icon: src/assets/favicon.png - category: AudioVideo - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/lin' - channel: latest diff --git a/electron-builder64.yml b/electron-builder64.yml deleted file mode 100644 index cbacb8187..000000000 --- a/electron-builder64.yml +++ /dev/null @@ -1,59 +0,0 @@ -productName: YouTube Music Desktop App -appId: app.ytmd - -files: - - '**/*' - - "!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}" - - "!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}" - - "!**/node_modules/*.d.ts" - - "!**/node_modules/.bin" - - "!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}" - - "!**/._*" - - "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}" - - "!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}" - - "!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}" - - '!LICENSE.md' - - '!CODE_OF_CONDUCT.md' - - '!CONTRIBUTING.md' - - '!README.md' - - '!STORE_VARIABLES.md' - - '!.prettierrc.json' - - '!package.json' - - '!package-lock.json' - - '!.cache' - - '!app-update.yml' - - '!dev-app-update.yml' - -protocols: - name: YouTube Music Desktop - schemes: [ytmd] - -electronDownload: - arch: x64 - cache: '.cache/electron-builder/' - -win: - icon: src/assets/favicon.ico - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/win' - channel: latest - -mac: - icon: src/assets/favicon.icns - category: public.app-category.music - darkModeSupport: true - target: - - dmg - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/mac' - channel: latest - -linux: - icon: src/assets/favicon.png - category: AudioVideo - publish: - provider: generic - url: 'https://dl.ytmdesktop.app/lin' - channel: latest \ No newline at end of file diff --git a/main.js b/main.js deleted file mode 100644 index abb887e48..000000000 --- a/main.js +++ /dev/null @@ -1,2296 +0,0 @@ -require('./src/utils/defaultSettings') - -const { - app, - BrowserWindow, - BrowserView, - globalShortcut, - Menu, - ipcMain, - systemPreferences, - nativeTheme, - screen, - shell, - dialog, - powerMonitor, -} = require('electron') -const path = require('path') -const isDev = require('electron-is-dev') -const ClipboardWatcher = require('electron-clipboard-watcher') -const electronLocalshortcut = require('electron-localshortcut') -const electronLog = require('electron-log') -const os = require('os') - -const { calcYTViewSize } = require('./src/utils/calcYTViewSize') -const { isWindows, isMac, isLinux } = require('./src/utils/systemInfo') -const { checkWindowPosition, doBehavior } = require('./src/utils/window') -const fileSystem = require('./src/utils/fileSystem') -const Vibrant = require('node-vibrant') - -const __ = require('./src/providers/translateProvider') -const assetsProvider = require('./src/providers/assetsProvider') -const scrobblerProvider = require('./src/providers/scrobblerProvider') -const { statusBarMenu } = require('./src/providers/templateProvider') -const settingsProvider = require('./src/providers/settingsProvider') -const infoPlayerProvider = require('./src/providers/infoPlayerProvider') -const rainmeterNowPlaying = require('./src/providers/rainmeterNowPlaying') -const companionServer = require('./src/providers/companionServer') -const geniusAuthServer = require('./src/providers/geniusAuthServer') -const discordRPC = require('./src/providers/discordRpcProvider') -const mprisProvider = (() => { - if (isLinux()) { - return require('./src/providers/mprisProvider') - } else { - return null - } -})() - -const { commit_hash } = require('./commit_hash') - -/* Variables =========================================================================== */ -const defaultUrl = 'https://music.youtube.com' - -let mainWindow, - view, - miniplayer, - lyrics, - settings, - infoPlayerInterval, - customCSSAppKey, - customCSSPageKey, - lastTrackId, - lastTrackProgress, - lastIsPaused, - lastSeekbarCurrentPosition, - doublePressPlayPause, - updateTrackInfoTimeout, - activityLikeStatus, - windowsMediaProvider, - audioDevices, - settingsRendererIPC - -let isFirstTime = false - -let isClipboardWatcherRunning = false - -let renderer_for_status_bar = (clipboardWatcher = null) - -let mainWindowParams = { - url: defaultUrl, - width: 1500, - height: 800, -} - -let windowConfig = { - frame: false, - titleBarStyle: '', -} - -global.sharedObj = { - title: 'YTMDesktop', - paused: true, - rollable: settingsProvider.get('settings-shiny-tray-song-title-rollable'), -} - -let iconDefault = assetsProvider.getIcon('favicon') -let iconTray = assetsProvider.getIcon('trayTemplate') -let iconPlay = assetsProvider.getIcon('favicon_play') -let iconPause = assetsProvider.getIcon('favicon_pause') -let sleepTimer = { - mode: 0, // "time/counter/else" - counter: 0, // "minutes in time mode/ songs in counter mode" - interval: 0, // "valid in time mode" -} -// Keep a global reference of the window object, if you don't, the window will -// be closed automatically when the JavaScript object is garbage collected. - -/* First checks ========================================================================= */ -app.commandLine.appendSwitch('disable-features', 'MediaSessionService') //This keeps chromium from trying to launch up it's own mpris service, hence stopping the double service. - -if (!app.isDefaultProtocolClient('ytmd', process.execPath)) { - app.setAsDefaultProtocolClient('ytmd', process.execPath) -} - -if (settingsProvider.get('settings-surround-sound')) { - app.commandLine.appendSwitch('try-supported-channel-layouts', '1') -} - -app.commandLine.appendSwitch('disable-http-cache') - -createCustomAppDir() - -createCustomCSSDir() -createCustomCSSPageFile() - -if (settingsProvider.get('has-updated') === true) - setTimeout(() => { - writeLog({ type: 'info', data: 'YTMDesktop updated' }) - ipcMain.emit('window', { command: 'show-changelog' }) - }, 2000) - -if ( - isWindows() && - os.release().startsWith('10.') && - settingsProvider.get('settings-windows10-media-service') -) - try { - windowsMediaProvider = require('./src/providers/windowsMediaProvider') - } catch (error) { - console.log('error windowsMediaProvider > ' + error) - } - -if (isMac()) { - settingsProvider.set( - 'settings-shiny-tray-dark', - nativeTheme.shouldUseDarkColors - ) - systemPreferences.subscribeNotification( - 'AppleInterfaceThemeChangedNotification', - function theThemeHasChanged() { - settingsProvider.set( - 'settings-shiny-tray-dark', - nativeTheme.shouldUseDarkColors - ) - updateStatusBar() - } - ) - const menu = Menu.buildFromTemplate(statusBarMenu) - Menu.setApplicationMenu(menu) -} - -if (settingsProvider.get('settings-disable-hardware-acceleration')) - app.disableHardwareAcceleration() - -/* Functions ============================================================================= */ -async function updateAccentColorPref() { - if (settingsProvider.get('settings-enable-player-bgcolor')) { - await view.webContents.executeJavaScript( - `document.body.setAttribute('accent-enabled', '')` - ) - await mainWindow.webContents.executeJavaScript( - `document.body.setAttribute('accent-enabled', '')` - ) - } else { - await view.webContents.executeJavaScript( - `document.body.removeAttribute('accent-enabled')` - ) - await mainWindow.webContents.executeJavaScript( - `document.body.removeAttribute('accent-enabled')` - ) - } -} - -async function createWindow() { - if (isMac() || isWindows()) { - const execApp = path.basename(process.execPath) - const startArgs = ['--processStart', `"${execApp}"`] - const startOnBoot = settingsProvider.get('settings-start-on-boot') - if (startOnBoot) - app.setLoginItemSettings({ - openAtLogin: true, - path: process.execPath, - args: startArgs, - }) - else - app.setLoginItemSettings({ - openAtLogin: false, - args: startArgs, - }) - } - windowSize = settingsProvider.get('window-size') - windowMaximized = settingsProvider.get('window-maximized') - windowMinimized = settingsProvider.get('settings-start-minimized') - - if (windowSize) { - mainWindowParams.width = windowSize.width - mainWindowParams.height = windowSize.height - } else { - let size = screen.getPrimaryDisplay().workAreaSize - - mainWindowParams.width = size.width - 150 - mainWindowParams.height = size.height - 150 - } - - browserWindowConfig = { - icon: iconDefault, - width: mainWindowParams.width, - height: mainWindowParams.height, - minWidth: 300, - minHeight: 300, - show: !windowMinimized, - autoHideMenuBar: true, - backgroundColor: '#232323', - center: true, - closable: true, - skipTaskbar: false, - resize: true, - maximizable: true, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - contextIsolation: false, - }, - } - - switch (settingsProvider.get('titlebar-type')) { - case 'nice': - browserWindowConfig.frame = false - browserWindowConfig.titleBarStyle = 'hidden' - - windowConfig.frame = false - windowConfig.titleBarStyle = 'hidden' - break - - case 'system': - browserWindowConfig.frame = true - - windowConfig.frame = true - windowConfig.titleBarStyle = 'hidden' - break - - case 'none': - browserWindowConfig.frame = false - browserWindowConfig.titleBarStyle = 'hidden' - - windowConfig.frame = false - windowConfig.titleBarStyle = 'hidden' - break - } - - /* For the uninformed: - - The `view` variable is the actual webpage that contains youtube music and stuff. - - The `mainWindow` variable contains the window frame that holds the mainWindow, but you cannot inspect mainWindow elements. - Yes, I am confused as you are, but hopefully that clears up some confusion - */ - mainWindow = new BrowserWindow(browserWindowConfig) - - mainWindow.webContents.session.webRequest.onBeforeSendHeaders( - { - urls: ['https://accounts.google.com/*'], - }, - (details, callback) => { - const newRequestHeaders = Object.assign( - {}, - details.requestHeaders || {}, - { - 'User-Agent': settingsProvider.get('user-agent'), - } - ) - callback({ requestHeaders: newRequestHeaders }) - } - ) - - view = new BrowserView({ - webPreferences: { - nodeIntegration: false, - webviewTag: false, - enableRemoteModule: false, - contextIsolation: true, - sandbox: true, - nativeWindowOpen: true, - preload: path.join( - app.getAppPath(), - '/src/utils/injectControls.js' - ), - }, - }) - - await mainWindow.loadFile( - path.join( - app.getAppPath(), - '/src/pages/shared/window-buttons/window-buttons.html' - ), - { search: 'page=home/home&trusted=1&script=shiny-tray-helper' } - ) - - mainWindow.addBrowserView(view) - - view.setBounds(calcYTViewSize(settingsProvider, mainWindow)) - - if ( - settingsProvider.get('settings-continue-where-left-of') && - settingsProvider.get('window-url') - ) - mainWindowParams.url = settingsProvider.get('window-url') - - view.webContents.loadURL(mainWindowParams.url).then(() => { - updateAccentColorPref() - }) - - if (process.env.NODE_ENV === 'development') { - view.webContents.openDevTools({ mode: 'detach' }) - } - - mediaControl.createThumbar(mainWindow, infoPlayerProvider.getAllInfo()) - - let position = settingsProvider.get('window-position') - if (position !== undefined) mainWindow.setPosition(position.x, position.y) - - if (windowMaximized) - setTimeout(() => { - mainWindow.send('window-is-maximized', true) - view.setBounds(calcYTViewSize(settingsProvider, mainWindow)) - mainWindow.maximize() - }, 700) - - mainWindow.on('closed', () => { - view = null - mainWindow = null - }) - - mainWindow.on('show', () => { - mediaControl.createThumbar(mainWindow, infoPlayerProvider.getAllInfo()) - }) - - mainWindow.on('reload', () => { - view.webContents.forcefullyCrashRenderer() - view.webContents.reload() - }) - - view.webContents.on('new-window', (event, url) => { - event.preventDefault() - shell.openExternal(url) - }) - - // view.webContents.openDevTools({ mode: 'detach' }); - view.webContents.on('did-navigate-in-page', () => { - if (view.webContents.getURL().indexOf('watch?v=') === 26) { - mainWindow.webContents.executeJavaScript(` - document.body.setAttribute('player-open', '') - `) - view.webContents.executeJavaScript(` - document.body.setAttribute('player-open', '') - `) - } else { - mainWindow.webContents.executeJavaScript(` - document.body.removeAttribute('player-open') - `) - view.webContents.executeJavaScript(` - document.body.removeAttribute('player-open') - `) - } - initialized = true - view.webContents.insertCSS(` - /* width */ - ::-webkit-scrollbar { - width: 9px; - } - - /* Track */ - ::-webkit-scrollbar-track { - background: #232323; - } - - /* Handle */ - ::-webkit-scrollbar-thumb { - background: #555; - } - - /* Handle on hover */ - ::-webkit-scrollbar-thumb:hover { - background: #f44336; - } - `) - }) - - view.webContents.on('media-started-playing', () => { - if (!infoPlayerProvider.hasInitialized()) { - infoPlayerProvider.init(view) - if (isLinux()) { - if (!mprisProvider._isInitialized) { - mprisProvider.start() - } - mprisProvider.setRealPlayer(infoPlayerProvider) //this lets us keep track of the current time in playback. - } - } - - if ( - isWindows() && - os.release().startsWith('10.') && - settingsProvider.get('settings-windows10-media-service') && - windowsMediaProvider !== undefined - ) - windowsMediaProvider.init(view) - - if (isMac()) { - global.sharedObj.paused = false - updateStatusBar() - } - - if (infoPlayerInterval === undefined) { - infoPlayerInterval = setInterval(() => { - if (global.on_the_road) { - updateActivity() - } - }, 300) - } - }) - - view.webContents.on('did-start-navigation', (_) => { - view.webContents - .executeJavaScript('window.location.hostname') - .then((hostname) => { - if (hostname !== 'music.youtube.com') { - mainWindow.send('off-the-road') - global.on_the_road = false - } else { - mainWindow.send('on-the-road') - global.on_the_road = true - - loadAudioOutput() - loadCustomCSSPage() - } - }) - .catch((_) => console.log(`error did-start-navigation ${_}`)) - }) - - function updateActivity() { - const playerInfo = infoPlayerProvider.getPlayerInfo() - const trackInfo = infoPlayerProvider.getTrackInfo() - - const progress = playerInfo.statePercent - const seekbarCurrentPosition = playerInfo.seekbarCurrentPosition - const trackId = trackInfo.id - const title = trackInfo.title - const author = trackInfo.author - const album = trackInfo.album - const duration = trackInfo.duration - const cover = trackInfo.cover - const nowPlaying = `${title} - ${author}` - - if (title && author) { - rainmeterNowPlaying.setActivity(getAll()) - if (isLinux()) { - mprisProvider.setActivity(getAll()) - } - - if (settingsProvider.get('settings-enable-taskbar-progressbar')) { - mediaControl.setProgress( - mainWindow, - settingsProvider.get('settings-enable-taskbar-progressbar') - ? progress - : -1, - playerInfo.isPaused - ) - } - - /** - * Scrobble when track changes or when current track starts from the beginning - */ - if (settingsProvider.get('settings-last-fm-scrobbler')) { - if ( - lastTrackId !== trackId || - (lastTrackProgress > progress && progress < 0.2) - ) { - if (!trackInfo.isAdvertisement) { - clearInterval(updateTrackInfoTimeout) - updateTrackInfoTimeout = setTimeout(() => { - scrobblerProvider.updateTrackInfo( - title, - author, - album - ) - }, 20 * 1000) - scrobblerProvider.updateNowPlaying( - title, - author, - album, - duration - ) - } - } - } - - /** - * Update only when change seekbar - */ - if ( - lastSeekbarCurrentPosition - seekbarCurrentPosition > 2 || - lastSeekbarCurrentPosition - seekbarCurrentPosition < -2 - ) - discordRPC.setActivity(getAll()) - - /** - * Update only when change track - */ - if (lastTrackId !== trackId) { - lastTrackId = trackId - - setTimeout(() => { - if ( - settingsProvider.get('settings-skip-track-disliked') && - infoPlayerProvider.getPlayerInfo().likeStatus === - 'DISLIKE' - ) - mediaControl.nextTrack(view) - - if ( - infoPlayerProvider.getTrackInfo().duration < - parseInt( - settingsProvider.get( - 'settings-skip-track-shorter-than' - ) - ) - ) - mediaControl.nextTrack(view) - }, 1000) - - infoPlayerProvider.updateQueueInfo() - infoPlayerProvider.updatePlaylistInfo() - infoPlayerProvider.isInLibrary() - - if (isMac()) { - global.sharedObj.title = nowPlaying - updateStatusBar() - } - - mainWindow.setTitle(nowPlaying) - - tray.setTooltip(nowPlaying) - - if ( - !mainWindow.isFocused() && - settingsProvider.get('settings-show-notifications') - ) - tray.balloon(title, author, cover, iconDefault) - - if ( - isWindows() && - os.release().startsWith('10.') && - settingsProvider.get('settings-windows10-media-service') && - windowsMediaProvider !== undefined - ) - windowsMediaProvider.setPlaybackData( - title, - author, - cover, - album - ) - - /** - * Update background color for Player - */ - Vibrant.from(getTrackInfo().cover) - .getPalette() - .then((palette) => { - hue = palette.DarkVibrant.getHsl()[0] * 360 - sat = palette.DarkVibrant.getHsl()[1] === 0 ? 0 : 70 - view.webContents.executeJavaScript(` - document.documentElement.style.setProperty("--ytm-album-color-muted", 'hsl(${hue}, ${sat}%, 20%)'); - document.documentElement.style.setProperty("--ytm-album-color-vibrant", 'hsl(${hue}, ${sat}%, 30%)'); - `) - mainWindow.webContents.executeJavaScript(` - document.documentElement.style.setProperty("--ytm-album-color-muted", 'hsl(${hue}, ${sat}%, 20%)'); - `) - }) - - if (sleepTimer.mode == 'counter') { - sleepTimer.counter -= 1 - if (sleepTimer.counter <= 0) { - if (!infoPlayerProvider.getPlayerInfo().isPaused) - mediaControl.playPauseTrack(view) - - sleepTimer.mode = 'off' - } - } - - /** - * Update the saved url if settings-continue-where-left-of is enabled - */ - if (settingsProvider.get('settings-continue-where-left-of')) { - view.webContents - .executeJavaScript( - ` - document.querySelector('.yt-uix-sessionlink').href; - ` - ) - .then((result) => { - if (result) { - const url = new URL(result) - // Hostname correction as the provided url is for youtube.com - url.hostname = 'music.youtube.com' - settingsProvider.set( - 'window-url', - url.toString() - ) - } else { - // No session link found so just default to the current url - settingsProvider.set( - 'window-url', - view.webContents.getURL() - ) - } - }) - .catch(() => { - // JavaScript errored, assume no session link found and default to current url - settingsProvider.set( - 'window-url', - view.webContents.getURL() - ) - }) - } - - writeLog({ type: 'info', data: `Listen: ${title} - ${author}` }) - discordRPC.setActivity(getAll()) - } - - /** - * Update only when change state play/pause - */ - if (lastIsPaused !== playerInfo.isPaused) { - lastIsPaused = playerInfo.isPaused - - discordRPC.setActivity(getAll()) - - if (!isMac() && !settingsProvider.get('settings-shiny-tray')) { - tray.updateTrayIcon( - playerInfo.isPaused ? iconPause : iconPlay - ) - } - - mediaControl.createThumbar( - mainWindow, - infoPlayerProvider.getAllInfo() - ) - - if ( - isWindows() && - os.release().startsWith('10.') && - settingsProvider.get('settings-windows10-media-service') && - windowsMediaProvider !== undefined - ) { - windowsMediaProvider.setPlaybackStatus(playerInfo.isPaused) - } - } - - if (activityLikeStatus !== playerInfo.likeStatus) { - mediaControl.createThumbar( - mainWindow, - infoPlayerProvider.getAllInfo() - ) - activityLikeStatus = playerInfo.likeStatus - } - - lastTrackProgress = progress - lastSeekbarCurrentPosition = seekbarCurrentPosition - } - } - - view.webContents.on('media-started-playing', () => { - logDebug('Playing') - try { - if (isMac()) { - updateStatusBar() - } - - global.sharedObj.paused = false - mediaControl.createThumbar( - mainWindow, - infoPlayerProvider.getAllInfo() - ) - } catch (_) {} - }) - - view.webContents.on('media-paused', () => { - logDebug('Paused') - try { - if (isMac()) { - updateStatusBar() - } - - global.sharedObj.paused = true - mediaControl.createThumbar( - mainWindow, - infoPlayerProvider.getAllInfo() - ) - } catch (_) {} - }) - - mainWindow.on('resize', () => { - let windowSize = mainWindow.getSize() - setTimeout(() => { - view.setBounds(calcYTViewSize(settingsProvider, mainWindow)) - }, 200) - - mainWindow.send('window-is-maximized', mainWindow.isMaximized()) - - settingsProvider.set('window-maximized', mainWindow.isMaximized()) - if (!mainWindow.isMaximized()) { - settingsProvider.set('window-size', { - width: windowSize[0], - height: windowSize[1], - }) - } - }) - - let storePositionTimer - mainWindow.on('move', (_) => { - let position = mainWindow.getPosition() - if (storePositionTimer) { - clearTimeout(storePositionTimer) - } - storePositionTimer = setTimeout(() => { - settingsProvider.set('window-position', { - x: position[0], - y: position[1], - }) - }, 500) - }) - - mainWindow.on('focus', () => { - view.webContents.focus() - }) - - mainWindow.on('close', (e) => { - if (settingsProvider.get('settings-keep-background')) { - e.preventDefault() - if (settingsProvider.get('settings-tray-icon')) { - mainWindow.hide() - } else { - mainWindow.minimize() - } - } else { - app.exit() - } - }) - - // LOCAL - electronLocalshortcut.register( - view, - isMac() ? 'Cmd+,' : 'CmdOrCtrl+S', - () => ipcMain.emit('window', { command: 'show-settings' }) - ) - - // GLOBAL - ipcMain.on('change-accelerator', (dataMain, dataRenderer) => { - if (dataMain.type !== undefined) args = dataMain - else args = dataRenderer - - try { - globalShortcut.unregister(args.oldValue) - } catch (_) {} - - switch (args.type) { - case 'media-play-pause': - registerGlobalShortcut(args.newValue, () => { - checkDoubleTapPlayPause() - }) - break - - case 'media-track-next': - registerGlobalShortcut(args.newValue, () => { - mediaControl.nextTrack(view) - }) - break - - case 'media-track-previous': - registerGlobalShortcut(args.newValue, () => { - mediaControl.previousTrack(view) - }) - break - - case 'media-track-like': - registerGlobalShortcut(args.newValue, () => { - if ( - infoPlayerProvider.getPlayerInfo().likeStatus !== 'LIKE' - ) { - mediaControl.upVote(view) - if ( - settingsProvider.get('settings-show-notifications') - ) { - tray.balloonEvents({ - title: `${songInfo().title} - ${ - songInfo().author - }`, - content: __.trans('LABEL_NOTIFICATION_LIKED'), - icon: assetsProvider.getLocal( - 'img/notification-thumbs-up.png' - ), - }) - } - } - }) - break - - case 'media-track-dislike': - registerGlobalShortcut(args.newValue, () => { - if ( - infoPlayerProvider.getPlayerInfo().likeStatus !== - 'DISLIKE' - ) { - mediaControl.downVote(view) - if ( - settingsProvider.get('settings-show-notifications') - ) { - tray.balloonEvents({ - title: `${songInfo().title} - ${ - songInfo().author - }`, - content: __.trans( - 'LABEL_NOTIFICATION_DISLIKED' - ), - icon: assetsProvider.getLocal( - 'img/notification-thumbs-down.png' - ), - }) - } - } - }) - break - - case 'media-volume-up': - registerGlobalShortcut(args.newValue, () => { - mediaControl.volumeUp(view) - }) - break - - case 'media-volume-down': - registerGlobalShortcut(args.newValue, () => { - mediaControl.volumeDown(view) - }) - break - - case 'miniplayer-open-close': - registerGlobalShortcut(args.newValue, () => { - try { - if (miniplayer) { - miniplayer.close() - miniplayer = undefined - mainWindow.show() - } else { - ipcMain.emit('window', { - command: 'show-miniplayer', - }) - } - } catch (_) { - writeLog({ - type: 'warn', - data: 'error on try open/close miniplayer', - }) - } - }) - break - } - }) - - // Custom accelerators - let settingsAccelerator = settingsProvider.get('settings-accelerators') - - ipcMain.emit('change-accelerator', { - type: 'media-play-pause', - newValue: settingsAccelerator['media-play-pause'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-track-next', - newValue: settingsAccelerator['media-track-next'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-track-previous', - newValue: settingsAccelerator['media-track-previous'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-track-like', - newValue: settingsAccelerator['media-track-like'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-track-dislike', - newValue: settingsAccelerator['media-track-dislike'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-volume-up', - newValue: settingsAccelerator['media-volume-up'], - }) - - ipcMain.emit('change-accelerator', { - type: 'media-volume-down', - newValue: settingsAccelerator['media-volume-down'], - }) - - ipcMain.emit('change-accelerator', { - type: 'miniplayer-open-close', - newValue: settingsAccelerator['miniplayer-open-close'], - }) - - if ( - (isWindows() && - (!settingsProvider.get( - 'settings-windows10-media-service-show-info' - ) || - !settingsProvider.get('settings-windows10-media-service'))) || - isMac() || - isLinux() - ) { - let settingsAccelerator = settingsProvider.get('settings-accelerators') - - globalShortcut.register('MediaPlayPause', () => { - checkDoubleTapPlayPause() - }) - - globalShortcut.register('MediaStop', () => { - mediaControl.stopTrack(view) - }) - - globalShortcut.register('MediaPreviousTrack', () => { - mediaControl.previousTrack(view) - }) - - globalShortcut.register('MediaNextTrack', () => { - mediaControl.nextTrack(view) - }) - } - - if (settingsProvider.get('settings-volume-media-keys')) { - globalShortcut.register('VolumeUp', () => { - mediaControl.volumeUp(view) - }) - - globalShortcut.register('VolumeDown', () => { - mediaControl.volumeDown(view) - }) - } - - ipcMain.handle('invoke-all-info', async () => - infoPlayerProvider.getAllInfo() - ) - - settingsProvider.onDidChange( - 'settings-shiny-tray-song-title-rollable', - (data) => { - console.log(data.newValue) - global.sharedObj.rollable = data.newValue - if (renderer_for_status_bar) - renderer_for_status_bar.send('update-status-bar') - } - ) - - settingsProvider.onDidChange( - 'settings-rainmeter-web-now-playing', - (data) => { - if (data.newValue) rainmeterNowPlaying.start() - else rainmeterNowPlaying.stop() - } - ) - - settingsProvider.onDidChange('settings-companion-server', (data) => { - if (data.newValue) companionServer.start() - else companionServer.stop() - }) - - settingsProvider.onDidChange('settings-genius-auth-server', (data) => { - if (data.newValue) geniusAuthServer.start() - else geniusAuthServer.stop() - }) - - settingsProvider.onDidChange('settings-enable-player-bgcolor', () => { - updateAccentColorPref() - }) - - settingsProvider.onDidChange('settings-discord-rich-presence', (data) => { - if (data.newValue) discordRPC.start() - else discordRPC.stop() - }) - - settingsProvider.onDidChange('settings-custom-css-app', (data) => { - if (data.newValue) loadCustomCSSApp() - else removeCustomCSSApp() - }) - - settingsProvider.onDidChange('settings-custom-css-page', (data) => { - if (data.newValue) loadCustomCSSPage() - else removeCustomCSSPage() - }) - - settingsProvider.onDidChange('settings-page-zoom', (data) => { - console.log(data) - view.webContents.setZoomFactor(data.newValue / 100) - }) - - ipcMain.on('media-command', (dataMain, dataRenderer) => { - let command, value - - if (dataMain.command !== undefined) { - command = dataMain.command - value = dataMain.value - } else { - command = dataRenderer.command - value = dataRenderer.value - } - - switch (command) { - case 'media-play-pause': - if (infoPlayerProvider.getTrackInfo().id === '') - infoPlayerProvider.firstPlay(view.webContents) - mediaControl.playPauseTrack(view) - break - - case 'media-track-next': - mediaControl.nextTrack(view) - break - - case 'media-track-previous': - mediaControl.previousTrack(view) - break - - case 'media-vote-up': - mediaControl.upVote(view) - break - - case 'media-vote-down': - mediaControl.downVote(view) - break - - case 'media-volume-up': - mediaControl.volumeUp(view) - break - - case 'media-volume-down': - mediaControl.volumeDown(view) - break - - case 'media-seekbar-forward': - mediaControl.mediaForwardTenSeconds(view) - break - - case 'media-seekbar-rewind': - mediaControl.mediaRewindTenSeconds(view) - break - - case 'media-seekbar-set': - mediaControl.changeSeekbar(view, value) - break - - case 'media-volume-set': - mediaControl.changeVolume(view, value) - break - - case 'media-queue-set': - mediaControl.selectQueueItem(view, value) - break - - case 'media-repeat': - mediaControl.repeat(view) - break - - case 'media-shuffle': - mediaControl.shuffle(view) - break - - case 'media-add-library': - mediaControl.addToLibrary(view) - break - - case 'media-add-playlist': - mediaControl.addToPlaylist(view, value) - break - } - }) - - ipcMain.on('refresh-progress', () => { - mediaControl.setProgress(mainWindow, -1, playerInfo.isPaused) - }) - - ipcMain.on('register-renderer', (event, _) => { - renderer_for_status_bar = event.sender - event.sender.send('update-status-bar') - event.sender.send('is-dev', isDev) - }) - - ipcMain.on('update-tray', () => { - if (!isMac()) return - global.sharedObj.rollable = settingsProvider.get( - 'settings-shiny-tray-song-title-rollable' - ) - updateStatusBar() - tray.setShinyTray() - }) - - ipcMain.on('closed', (_) => { - mainWindow = null - if (process.platform !== 'darwin') { - app.quit() - } - }) - - ipcMain.on('show', (_) => { - mainWindow.show() - }) - - ipcMain.on('btn-update-clicked', () => { - updater.quitAndInstall() - }) - - ipcMain.on('window', (dataMain, dataRenderer) => { - let command, value - - if (dataMain.command !== undefined) { - command = dataMain.command - value = dataMain.value - } else { - command = dataRenderer.command - value = dataRenderer.value - } - - switch (command) { - case 'show-settings': - windowSettings() - break - - case 'show-miniplayer': - windowMiniplayer() - break - - case 'show-last-fm-login': - windowLastFmLogin() - break - - case 'show-editor-theme': - windowThemeEditor() - break - - case 'show-lyrics': - windowLyrics() - break - - case 'show-lyrics-hidden': - windowLyrics() - lyrics.hide() - break - - case 'show-companion': - windowCompanion() - break - - case 'show-guest-mode': - windowGuest() - break - - case 'show-changelog': - windowChangelog() - break - - case 'restore-main-window': - mainWindow.show() - try { - miniplayer.close() - miniplayer = undefined - } catch (_) {} - break - - case 'show-discord-settings': - windowDiscordSettings() - break - - case 'show-shortcut-buttons-settings': - windowShortcutButtonsSettings() - break - } - }) - - function checkDoubleTapPlayPause() { - if (settingsProvider.get('settings-enable-double-tapping-show-hide')) { - if (!doublePressPlayPause) { - // The first press - if (infoPlayerProvider.getTrackInfo().id === '') - infoPlayerProvider.firstPlay(view.webContents) - - doublePressPlayPause = true - setTimeout(() => { - if (doublePressPlayPause) mediaControl.playPauseTrack(view) - doublePressPlayPause = false - }, 200) - } else { - // The second press - doublePressPlayPause = false - doBehavior(mainWindow) - } - } else mediaControl.playPauseTrack(view) - } - - async function windowSettings() { - if (settings) settings.show() - else { - const mainWindowPosition = mainWindow.getPosition() - const mainWindowSize = mainWindow.getSize() - - const xPos = mainWindowPosition[0] + mainWindowSize[0] / 4 - const yPos = mainWindowPosition[1] + 200 - - settings = new BrowserWindow({ - title: __.trans('LABEL_SETTINGS'), - icon: iconDefault, - modal: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - resizable: true, - width: 900, - minWidth: 900, - height: 550, - minHeight: 550, - x: xPos, - y: yPos, - autoHideMenuBar: false, - skipTaskbar: false, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - contextIsolation: false, - nodeIntegrationInSubFrames: true, - webSecurity: false, - sandbox: false, - }, - }) - - await settings.loadFile( - path.join( - app.getAppPath(), - '/src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=settings/settings&trusted=1&icon=settings&hide=btn-minimize,btn-maximize&title=' + - __.trans('LABEL_SETTINGS'), - } - ) - - if (process.env.NODE_ENV === 'development') { - settings.webContents.openDevTools({ mode: 'detach' }) - } - } - - settings.on('closed', () => { - settings = null - }) - } - - async function windowMiniplayer() { - if (miniplayer) miniplayer.show() - else { - var miniplayerConfig = { - title: __.trans('LABEL_MINIPLAYER'), - icon: iconDefault, - modal: false, - frame: false, - center: false, - - resizable: settingsProvider.get( - 'settings-miniplayer-resizable' - ), - skipTaskbar: !settingsProvider.get( - 'settings-miniplayer-show-task' - ), - alwaysOnTop: settingsProvider.get( - 'settings-miniplayer-always-top' - ), - - backgroundColor: '#232323', - autoHideMenuBar: true, - webPreferences: { - nodeIntegration: true, - enableRemoteModule: true, - }, - } - - if (settingsProvider.get('settings-miniplayer-stream-config')) { - var streamSize = settingsProvider.get( - 'settings-miniplayer-stream-size' - ) - if (streamSize) { - miniplayerConfig.width = streamSize.x - miniplayerConfig.height = streamSize.y - } else { - miniplayerConfig.width = 500 - miniplayerConfig.height = 100 - } - - miniplayerConfig.minWidth = 300 - miniplayerConfig.minHeight = 100 - - miniplayer = new BrowserWindow(miniplayerConfig) - await miniplayer.loadFile( - path.join( - app.getAppPath(), - '/src/pages/miniplayer/streamPlayer.html' - ) - ) - } else { - miniplayerConfig.width = settingsProvider.get( - 'settings-miniplayer-size' - ) - miniplayerConfig.height = settingsProvider.get( - 'settings-miniplayer-size' - ) - miniplayerConfig.minWidth = 100 - miniplayerConfig.minHeight = 100 - - miniplayer = new BrowserWindow(miniplayerConfig) - await miniplayer.loadFile( - path.join( - app.getAppPath(), - '/src/pages/miniplayer/miniplayer.html' - ) - ) - } - - let miniplayerPosition = settingsProvider.get('miniplayer-position') - if (miniplayerPosition !== undefined) - miniplayer.setPosition( - miniplayerPosition.x, - miniplayerPosition.y - ) - let storeMiniplayerPositionTimer - miniplayer.on('move', () => { - let position = miniplayer.getPosition() - if (storeMiniplayerPositionTimer) - clearTimeout(storeMiniplayerPositionTimer) - - storeMiniplayerPositionTimer = setTimeout(() => { - settingsProvider.set('miniplayer-position', { - x: position[0], - y: position[1], - }) - }, 1000) - }) - - miniplayer.on('resize', (e) => { - if ( - !settingsProvider.get('settings-miniplayer-stream-config') - ) { - // Square Miniplayer - try { - let size = Math.min(...miniplayer.getSize()) - miniplayer.setSize(size, size) - settingsProvider.set('settings-miniplayer-size', size) - e.preventDefault() - } catch (_) { - writeLog({ - type: 'warn', - data: 'error miniplayer resize', - }) - } - } else { - // Resized - try { - let size = miniplayer.getSize() - settingsProvider.set( - 'settings-miniplayer-stream-size', - { - x: size[0], - y: size[1], - } - ) - } catch (_) { - writeLog({ - type: 'warn', - data: 'error miniplayer (stream) resize', - }) - } - } - }) - - // Devtools - if (process.env.NODE_ENV === 'development') { - miniplayer.openDevTools({ mode: 'detach' }) - } - - mainWindow.hide() - } - } - - async function windowLastFmLogin() { - const lastfm = new BrowserWindow({ - //parent: mainWindow, - icon: iconDefault, - modal: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: true, - backgroundColor: '#232323', - width: 300, - minWidth: 300, - height: 260, - minHeight: 260, - autoHideMenuBar: false, - skipTaskbar: false, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - await lastfm.loadFile( - path.join( - __dirname, - './src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=settings/sub/last-fm/last-fm-login&icon=music_note&hide=btn-minimize,btn-maximize&title=Last.FM Login', - } - ) - } - - async function windowThemeEditor() { - const editor = new BrowserWindow({ - icon: iconDefault, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: true, - backgroundColor: '#232323', - width: 700, - height: 800, - maxHeight: 800, - minHeight: 800, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - await editor.loadFile( - path.join( - __dirname, - './src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=editor/editor&icon=color_lens&hide=btn-minimize,btn-maximize', - } - ) - } - - async function windowLyrics() { - if (lyrics) { - lyrics.show() - process.env.NODE_ENV === 'development' - ? lyrics.webContents.openDevTools({ mode: 'detach' }) - : null - } else { - lyrics = new BrowserWindow({ - icon: iconDefault, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: true, - backgroundColor: '#232323', - width: 700, - height: 800, - alwaysOnTop: settingsProvider.get('settings-lyrics-always-top'), - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - let lyricsPosition = settingsProvider.get('lyrics-position') - if (lyricsPosition !== undefined) - lyrics.setPosition(lyricsPosition.x, lyricsPosition.y) - - await lyrics.loadFile( - path.join( - __dirname, - './src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=lyrics/lyrics&icon=music_note&hide=btn-minimize,btn-maximize&title=' + - __.trans('LABEL_LYRICS'), - } - ) - - let storeLyricsPositionTimer - lyrics.on('move', () => { - let position = lyrics.getPosition() - if (storeLyricsPositionTimer) - clearTimeout(storeLyricsPositionTimer) - - storeLyricsPositionTimer = setTimeout(() => { - settingsProvider.set('lyrics-position', { - x: position[0], - y: position[1], - }) - }, 500) - }) - - lyrics.on('closed', () => { - lyrics = null - if (process.env.NODE_ENV === 'development') { - lyrics.webContents.closeDevTools() - } - }) - - if (process.env.NODE_ENV === 'development') { - lyrics.webContents.openDevTools({ mode: 'detach' }) - } - } - } - - async function windowCompanion() { - await shell.openExternal(`http://localhost:9863`) - return - //const x = mainWindow.getPosition()[0] - //const y = mainWindow.getPosition()[1] - - /* Commented code since the return above blocks its execution - let size = screen.getPrimaryDisplay().workAreaSize; - - const settings = new BrowserWindow({ - // parent: mainWindow, - icon: iconDefault, - skipTaskbar: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - resizable: false, - backgroundColor: '#232323', - width: size.width - 450, - height: size.height - 450, - center: true, - title: 'companionWindowTitle', - webPreferences: { - nodeIntegration: false, - enableRemoteModule: true, - }, - autoHideMenuBar: true, - }); - await settings.loadURL('http://localhost:9863');*/ - } - - async function windowGuest() { - const incognitoWindow = new BrowserWindow({ - icon: iconDefault, - width: mainWindowParams.width, - height: mainWindowParams.height, - minWidth: 300, - minHeight: 300, - show: true, - autoHideMenuBar: true, - backgroundColor: '#232323', - center: true, - closable: true, - skipTaskbar: false, - resize: true, - maximizable: true, - frame: true, - webPreferences: { - nodeIntegration: true, - enableRemoteModule: true, - partition: `guest-mode-${Date.now()}`, - }, - }) - - incognitoWindow.webContents.session.setUserAgent( - `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${process.versions.chrome} Safari/537.36` - ) - - await incognitoWindow.webContents.loadURL(mainWindowParams.url) - } - - async function windowDiscordSettings() { - const discord = new BrowserWindow({ - //parent: mainWindow, - icon: iconDefault, - modal: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: true, - backgroundColor: '#232323', - width: 600, - minWidth: 600, - height: 220, - minHeight: 220, - autoHideMenuBar: false, - skipTaskbar: false, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - await discord.loadFile( - path.join( - __dirname, - './src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=settings/sub/discord/discord_settings&icon=settings&title=' + - __.trans('LABEL_SETTINGS_DISCORD') + - '&hide=btn-minimize,btn-maximize', - } - ) - } - - async function windowShortcutButtonsSettings() { - const discord = new BrowserWindow({ - //parent: mainWindow, - icon: iconDefault, - modal: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: true, - backgroundColor: '#232323', - width: 600, - minWidth: 600, - height: 220, - minHeight: 220, - autoHideMenuBar: false, - skipTaskbar: false, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - await discord.loadFile( - path.join( - __dirname, - './src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: - 'page=settings/sub/shortcut-buttons/shortcut-buttons-settings&icon=settings&title=' + - __.trans('SHORTCUT_BUTTONS') + - '&hide=btn-minimize,btn-maximize', - } - ) - } - - async function windowChangelog() { - let changelog = new BrowserWindow({ - title: __.trans('LABEL_CHANGELOG'), - icon: iconDefault, - modal: false, - frame: windowConfig.frame, - titleBarStyle: windowConfig.titleBarStyle, - center: true, - resizable: false, - backgroundColor: '#232323', - width: 600, - height: 580, - autoHideMenuBar: false, - skipTaskbar: false, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - enableRemoteModule: true, - }, - }) - - await changelog.loadFile( - path.join( - app.getAppPath(), - '/src/pages/shared/window-buttons/window-buttons.html' - ), - { - search: `title=${__.trans( - 'LABEL_CHANGELOG' - )}&page=changelog/changelog&hide=btn-minimize,btn-maximize`, - } - ) - } - - ipcMain.on('switch-clipboard-watcher', () => { - switchClipboardWatcher() - }) - - ipcMain.on('miniplayer-toggle-ontop', () => { - miniplayer.setAlwaysOnTop(!miniplayer.isAlwaysOnTop()) - }) - - ipcMain.on('reset-url', async () => { - mainWindowParams.url = defaultUrl - - const options = { extraHeaders: 'pragma: no-cache\n' } - await view.webContents.loadURL(mainWindowParams.url, options) - }) - - ipcMain.on('update-custom-css-page', () => { - loadCustomCSSPage() - }) - - ipcMain.on('debug', (event, message) => { - console.log(message) - }) - - ipcMain.on('bug-report', async () => { - const os_platform = process.platform || '-' - const os_arch = process.arch || '-' - const os_system_version = process.getSystemVersion() || '-' - - const ytmdesktop_version = app.getVersion() || '-' - - const template = `- [ ] I understand that %2A%2AYTMDesktop have NO affiliation with Google or YouTube%2A%2A.%0A- [ ] I verified that there is no open issue for the same subject.%0A%0A %2A%2ADescribe the bug%2A%2A%0A A clear and concise description of what the bug is.%0A%0A %2A%2ATo Reproduce%2A%2A%0A Steps to reproduce the behavior:%0A 1. Go to '...'%0A 2. Click on '....'%0A 3. See error%0A%0A %2A%2AExpected behavior%2A%2A%0A A clear and concise description of what you expected to happen.%0A%0A %2A%2AScreenshots%2A%2A%0A If applicable, add screenshots to help explain your problem.%0A%0A %2A%2AEnvironment:%2A%2A%0A %2A YTMDesktop version: %2A%2A%2Av${ytmdesktop_version} ${commit_hash}%2A%2A%2A%0A %2A OS: %2A%2A%2A${os_platform}%2A%2A%2A%0A %2A OS version: %2A%2A%2A${os_system_version}%2A%2A%2A%0A %2A Arch: %2A%2A%2A${os_arch}%2A%2A%2A%0A %2A Installation way: %2A%2A%2Alike .exe or snapcraft or another way%2A%2A%2A%0A` - await shell.openExternal( - `https://github.com/ytmdesktop/ytmdesktop/issues/new?body=${template}` - ) - }) - - ipcMain.on('change-audio-output', (dataMain, dataRenderer) => { - setAudioOutput(dataRenderer !== undefined ? dataRenderer : dataMain) - }) - - ipcMain.on('change-volume', (dataMain, dataRenderer) => { - settingsProvider.set('settings-volume', dataRenderer.volume) - }) - - function setAudioOutput(audioLabel) { - view.webContents - .executeJavaScript( - ` - navigator - .mediaDevices - .enumerateDevices() - .then( devices => { - var audioDevices = devices.filter(device => device.kind === 'audiooutput'); - var result = audioDevices.filter(deviceInfo => deviceInfo.label == "${audioLabel}"); - if(result.length) { - document.querySelector('.video-stream,.html5-main-video').setSinkId(result[0].deviceId); - } - }); - ` - ) - .then((_) => { - settingsProvider.set('settings-app-audio-output', audioLabel) - updateTrayAudioOutputs(audioDevices) - }) - .catch((_) => - writeLog({ type: 'warn', data: 'error setAudioOutput' }) - ) - } - - function loadAudioOutput() { - if (settingsProvider.get('settings-app-audio-output')) - setAudioOutput(settingsProvider.get('settings-app-audio-output')) - } - - function loadCustomCSSApp() { - const customThemeFile = path.join( - fileSystem.getAppDataPath(app), - '/custom/css/app.css' - ) - - if ( - settingsProvider.get('settings-custom-css-app') && - fileSystem.checkIfExists(customThemeFile) - ) { - removeCustomCssApp() - view.webContents - .insertCSS(fileSystem.readFile(customThemeFile).toString()) - .then((key) => { - customCSSAppKey = key - }) - } - } - - function removeCustomCSSApp() { - if (customCSSAppKey) view.webContents.removeInsertedCSS(customCSSAppKey) - } - - function loadCustomCSSPage() { - const customThemeFile = path.join( - fileSystem.getAppDataPath(app), - '/custom/css/page.css' - ) - - if ( - settingsProvider.get('settings-custom-css-page') && - fileSystem.checkIfExists(customThemeFile) - ) { - if (customCSSPageKey) removeCustomCSSPage() - - view.webContents - .insertCSS(fileSystem.readFile(customThemeFile).toString()) - .then((key) => { - customCSSPageKey = key - }) - } - } - - async function removeCustomCSSPage() { - await view.webContents.removeInsertedCSS(customCSSPageKey) - } - - function switchClipboardWatcher() { - logDebug( - 'Switch clipboard watcher: ' + - settingsProvider.get('settings-clipboard-read') - ) - - if (isClipboardWatcherRunning) { - // TODO: What is this? Doesn't make much sense - clipboardWatcher !== null && clipboardWatcher.stop() - clipboardWatcher = null - isClipboardWatcherRunning = false - } else { - if (settingsProvider.get('settings-clipboard-read')) { - clipboardWatcher = ClipboardWatcher({ - watchDelay: 1000, - onTextChange: (text) => { - let regExp = /(https?:\/\/)(www.)?(music.youtube|youtube|youtu.be).*/ - let match = text.match(regExp) - if (match) { - let videoUrl = match[0] - - if ( - settingsProvider.get( - 'settings-clipboard-always-ask-read' - ) - ) { - let options = { - type: 'question', - buttons: ['Yes', 'No'], - defaultId: 0, - title: 'YouTube Music Desktop', - message: `Want to play this link?\n\n${text}`, - } - - dialog - .showMessageBox(mainWindow, options) - .then((success) => { - if (success.response === 0) - loadMusicByUrl(videoUrl) - }) - } else loadMusicByUrl(videoUrl) - - writeLog({ - type: 'info', - data: - 'Video readed from clipboard: ' + videoUrl, - }) - } - }, - }) - - isClipboardWatcherRunning = true - } - } - } - - async function loadMusicByUrl(videoUrl) { - if (videoUrl.includes('music.youtube')) - await view.webContents.loadURL(videoUrl) - else { - let regExpYoutube = /^.*(https?:\/\/)?(www.)?(music.youtube|youtube|youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|\?v=)([^#&?]*).*/ - let match = videoUrl.match(regExpYoutube) - await view.webContents.loadURL( - 'https://music.youtube.com/watch?v=' + match[4] - ) - } - } - - setTimeout(() => { - ipcMain.emit('switch-clipboard-watcher') - }, 1000) - - loadCustomAppScript() - loadCustomPageScript() - - if (isWindows()) handleOpenUrl(process.argv.slice(1)) -} - -function handleOpenUrl(url) { - const loadMusicByVideoId = ([_, video_id, list_id]) => { - let url = 'https://music.youtube.com/watch?v=' + video_id - if (list_id) url += '&list=' + list_id - if (!infoPlayerProvider.getPlayerInfo().isPaused) - mediaControl.stopTrack(view) - view.webContents.loadURL(url).then(() => { - updateAccentColorPref() - }) - } - let cmd = url.toString().split('://')[1] - if (!cmd) return - - if (cmd.includes('settings/')) - ipcMain.emit('window', { command: 'show-settings' }) - - if (cmd.includes('play/')) { - loadMusicByVideoId(cmd.split('/')) - writeLog({ type: 'info', data: JSON.stringify(cmd) }) - } -} - -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -const gotTheLock = app.requestSingleInstanceLock() - -if (!gotTheLock) app.quit() -else { - app.on('second-instance', (event, argv, _) => { - if (isWindows()) handleOpenUrl(argv.slice(3)) - - if (mainWindow) { - if (mainWindow.isVisible()) - if (mainWindow.isMinimized()) mainWindow.restore() - else mainWindow.show() - - mainWindow.show() - } - }) - - app.whenReady().then(async () => { - checkWindowPosition( - settingsProvider.get('window-position'), - settingsProvider.get('window-size') - ) - .then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('window-position', visiblePosition) - }) - .catch(() => {}) - - checkWindowPosition(settingsProvider.get('lyrics-position'), { - width: 700, - height: 800, - }) - .then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('lyrics-position', visiblePosition) - }) - .catch(() => {}) - - checkWindowPosition(settingsProvider.get('miniplayer-position'), { - width: settingsProvider.get('settings-miniplayer-size'), - height: settingsProvider.get('settings-miniplayer-size'), - }) - .then((visiblePosition) => { - console.log(visiblePosition) - settingsProvider.set('miniplayer-position', visiblePosition) - }) - .catch(() => {}) - - await createWindow() - - tray.createTray(mainWindow) - - ipcMain.on('updated-tray-image', (event, payload) => { - if (settingsProvider.get('settings-shiny-tray')) - tray.updateImage(payload) - }) - - if (!isDev) { - updater.checkUpdate(mainWindow, view) - - setInterval(() => { - updater.checkUpdate(mainWindow, view) - }, 24 * 60 * 60 * 1000) - } - - ipcMain.emit('ready', app) - }) - - app.on('open-url', (event, url) => { - event.preventDefault() - handleOpenUrl(url) - }) - - app.on('browser-window-created', (e, window) => { - window.removeMenu() - }) - - // Quit when all windows are closed. - app.on('window-all-closed', () => { - // On OS X it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q - if (!isMac()) app.quit() - }) - - app.on('activate', async () => { - // On OS X it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (mainWindow === null) await createWindow() - else if (mainWindow.isVisible() && !isMac()) mainWindow.hide() - else mainWindow.show() - }) - - app.on('before-quit', () => { - mainWindow = null - view = null - if (isMac()) app.exit() - - tray.quit() - }) - - app.on('quit', () => { - mainWindow = null - view = null - tray.quit() - }) -} - -// TODO: Should this be removed? -function logDebug(data) { - /* - Commented out since it's never going to be ran - if (false) - console.log(data); - */ -} - -function songInfo() { - return infoPlayerProvider.getTrackInfo() -} - -function playerInfo() { - return infoPlayerProvider.getPlayerInfo() -} - -function getAll() { - return { - track: songInfo(), - player: playerInfo(), - } -} - -// TODO: Unused function -function bytesToSize(bytes) { - const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'] - if (bytes === 0) return '0 Byte' - const i = Math.floor(Math.log(bytes) / Math.log(1024)) - return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i] -} - -function createCustomAppDir() { - if (!fileSystem.checkIfExists(fileSystem.getAppDataPath(app))) { - isFirstTime = true - fileSystem.createDir(fileSystem.getAppDataPath(app)) - } else isFirstTime = false -} - -function createCustomCSSDir() { - const dirCustomTheme = path.join( - fileSystem.getAppDataPath(app), - '/custom/css' - ) - - if (!fileSystem.checkIfExists(dirCustomTheme)) - fileSystem.createDir(dirCustomTheme, { recursive: true }) -} - -function createCustomCSSPageFile() { - const oldCustomThemeFile = path.join( - fileSystem.getAppDocumentsPath(app), - '/custom/css/page.css' - ) - - const customThemeFile = path.join( - fileSystem.getAppDataPath(app), - '/custom/css/page.css' - ) - - if (!fileSystem.checkIfExists(customThemeFile)) - if (fileSystem.checkIfExists(oldCustomThemeFile)) - fileSystem.writeFile( - customThemeFile, - fileSystem.readFile(oldCustomThemeFile) - ) - else - fileSystem.writeFile( - customThemeFile, - `/** \n * Custom css for page \n*/\n\nhtml, body { background: #1D1D1D !important; }` - ) -} - -function loadCustomAppScript() { - const customAppScriptFile = path.join( - fileSystem.getAppDataPath(app), - 'custom/js/app.js' - ) - - if (fileSystem.checkIfExists(customAppScriptFile)) - try { - require(customAppScriptFile) - } catch (_) {} -} - -async function loadCustomPageScript() { - const customPageScriptFile = path.join( - fileSystem.getAppDataPath(app), - 'custom/js/page.js' - ) - - if (fileSystem.checkIfExists(customPageScriptFile)) { - try { - await view.webContents.executeJavaScript( - fileSystem.readFile(customPageScriptFile).toString() - ) - } catch (_) { - writeLog({ type: 'warn', data: 'Failed to execute page.js' }) - } - } -} - -function registerGlobalShortcut(value, fn) { - if (value !== 'disabled') { - try { - globalShortcut.register(`${value}`, fn) - } catch (_) { - writeLog({ - type: 'warn', - data: `Failed to register global shortcut ${value}`, - }) - } - } -} - -function updateTrayAudioOutputs(data) { - try { - let audioOutputs = JSON.parse(data) - let selectedAudio = settingsProvider.get('settings-app-audio-output') - let result = [ - { - label: __.trans( - 'LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND' - ), - enabled: false, - }, - ] - - if (audioOutputs.length) { - audioOutputs.forEach((value, index) => { - audioOutputs[index] = { - label: value.label, - type: 'radio', - checked: value.label === selectedAudio, - click: () => { - ipcMain.emit('change-audio-output', value.label) - }, - } - }) - result = audioOutputs - } - - tray.updateTray({ type: 'audioOutputs', data: result }) - } catch (error) { - writeLog({ - type: 'warn', - data: 'Failed to updateTrayAudioOutputs ' + error, - }) - } -} - -function updateStatusBar() { - if (renderer_for_status_bar != null) - renderer_for_status_bar.send('update-status-bar') -} - -function writeLog(log) { - switch (log.type) { - case 'info': - electronLog.info(log.data) - break - - case 'warn': - electronLog.warn(log.data) - break - } -} - -ipcMain.on('log', (dataMain, dataRenderer) => { - if (dataMain.type !== undefined) writeLog(dataMain) - else writeLog(dataRenderer) -}) - -if (settingsProvider.get('settings-companion-server') && gotTheLock) - companionServer.start() - -if (settingsProvider.get('settings-genius-auth-server') && gotTheLock) { - geniusAuthServer.start() -} - -if (settingsProvider.get('settings-rainmeter-web-now-playing')) - rainmeterNowPlaying.start() - -if (settingsProvider.get('settings-discord-rich-presence')) discordRPC.start() - -ipcMain.on('set-audio-output-list', (_, data) => { - updateTrayAudioOutputs(data) - try { - // FIXME: For some reason neither the emit/send doesn't work - if (settingsRendererIPC) { - settingsRendererIPC.send('update-audio-output-devices', data) - } - } catch (e) {} - audioDevices = data -}) - -ipcMain.on('set-sleep-timer', (_, data) => { - let counter = parseInt(data.value) - const clearSleepTimer = () => { - if (sleepTimer.mode == 'time') clearInterval(sleepTimer.interval) - sleepTimer.interval = 0 - sleepTimer.mode = 'off' - } - if (counter == 0) { - clearSleepTimer() - } else { - sleepTimer.counter = counter - if (data.value[data.value.length - 1] == 'c') { - sleepTimer.mode = 'counter' - } else { - sleepTimer.mode = 'time' - clearInterval(sleepTimer.interval) - sleepTimer.interval = setInterval(() => { - sleepTimer.counter -= 1 - if (sleepTimer.counter <= 0) { - if (!infoPlayerProvider.getPlayerInfo().isPaused) - mediaControl.playPauseTrack(view) - clearSleepTimer() - } - }, 60 * 1000) - } - } -}) - -ipcMain.on('retrieve-sleep-timer', (e) => { - e.sender.send('sleep-timer-info', sleepTimer.mode, sleepTimer.counter) -}) - -ipcMain.handle('get-audio-output-list', (e) => { - settingsRendererIPC = e.sender - return audioDevices -}) - -powerMonitor.on('suspend', () => { - if (settingsProvider.get('settings-pause-on-suspend')) { - if (!infoPlayerProvider.getPlayerInfo().isPaused) - mediaControl.playPauseTrack(view) - } -}) - -if (!settingsProvider.get('settings-disable-analytics')) { - const analytics = require('./src/providers/analyticsProvider') - analytics.setEvent( - 'main', - 'start', - 'v' + app.getVersion(), - app.getVersion() - ) - analytics.setEvent('main', 'os', process.platform, process.platform) - analytics.setScreen('main') -} - -// In this file you can include the rest of your app's specific main process -// code. You can also put them in separate files and require them here. -const mediaControl = require('./src/providers/mediaProvider') -const tray = require('./src/providers/trayProvider') -const updater = require('./src/providers/updateProvider') -const { getTrackInfo } = require('./src/providers/infoPlayerProvider') -const { ipcRenderer } = require('electron/renderer') -//const {UpdaterSignal} = require('electron-updater'); diff --git a/package.json b/package.json deleted file mode 100644 index dfb0247ff..000000000 --- a/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "youtube-music-desktop-app", - "version": "1.14.2", - "description": "YouTube Music Desktop App", - "main": "main.js", - "scripts": { - "start": "electron .", - "dev": "NODE_ENV=development nodemon --exec yarn start --dev --inspect", - "rebuild": "electron-rebuild -f", - "postinstall": "npx electron-builder install-app-deps", - "build:win": "npx electron-builder --win --config electron-builder-deploy64.yml", - "build:mac": "command -v git > /dev/null 2>&1 && sed -e \"s/DEVELOPMENT_BUILD/`git rev-parse HEAD | cut -c1-8`/g\" commit_hash.js.tpl >commit_hash.js; npx electron-builder --mac --config electron-builder-deploy64.yml", - "build:lin": "command -v git > /dev/null 2>&1 && sed -e \"s/DEVELOPMENT_BUILD/`git rev-parse HEAD | cut -c1-8`/g\" commit_hash.js.tpl >commit_hash.js; npx electron-builder --linux --config electron-builder-deploy64.yml", - "publish:win": "npx electron-builder --win -p always --config electron-builder64.yml", - "publish:mac": "command -v git > /dev/null 2>&1 && sed -e \"s/DEVELOPMENT_BUILD/`git rev-parse HEAD | cut -c1-8`/g\" commit_hash.js.tpl >commit_hash.js; npx electron-builder --mac -p always --config electron-builder64.yml", - "publish:lin": "command -v git > /dev/null 2>&1 && sed -e \"s/DEVELOPMENT_BUILD/`git rev-parse HEAD | cut -c1-8`/g\" commit_hash.js.tpl >commit_hash.js; npx electron-builder --linux -p always --config electron-builder64.yml" - }, - "repository": "https://github.com/ytmdesktop/ytmdesktop", - "keywords": [ - "Electron", - "Youtube", - "Music" - ], - "author": "Adler Luiz <adlerluiz10@gmail.com>", - "license": "CC0-1.0", - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged --pattern \"**/*.js\" --pattern \"**/*.html\" --pattern \"**/*.json\"" - } - }, - "devDependencies": { - "@types/electron": "^1.6.10", - "electron": "^11.4.9", - "electron-builder": "^22.9.1", - "electron-rebuild": "^2.3.4", - "husky": "^4.3.7", - "nodemon": "^2.0.7", - "prettier": "^2.2.1", - "pretty-quick": "^2.0.2" - }, - "dependencies": { - "ace-builds": "^1.4.12", - "discord-rpc": "^3.1.4", - "electron-canvas-to-buffer": "^2.0.0", - "electron-clipboard-watcher": "^1.0.1", - "electron-google-analytics": "^1.0.2", - "electron-is-dev": "^1.2.0", - "electron-localshortcut": "^3.2.1", - "electron-log": "^4.3.1", - "electron-store": "^6.0.1", - "electron-updater": "^4.3.5", - "i18n": "^0.13.2", - "image-to-base64": "^2.1.1", - "js-base64": "^3.6.0", - "markdown": "^0.5.0", - "node-fetch": "^2.6.1", - "node-vibrant": "^3.1.5", - "postscribe": "^2.0.8", - "qrcode-generator": "^1.4.4", - "register-scheme": "0.0.2", - "scribble": "github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43", - "socket.io": "^2.3.0", - "uuid": "^8.3.2", - "ws": "^7.4.2" - }, - "optionalDependencies": { - "@nodert-win10-rs4/windows.foundation": "^0.4.4", - "@nodert-win10-rs4/windows.media": "^0.4.4", - "@nodert-win10-rs4/windows.storage.streams": "^0.4.4", - "bufferutil": "^4.0.1", - "mpris-service": "^2.1.0", - "utf-8-validate": "^5.0.2", - "win-node-env": "^0.4.0", - "windows.media.playback": "git+https://github.com/NovusTheory/nodert-windows.media.playback.git" - } -} diff --git a/script/build-current-platform.js b/script/build-current-platform.js deleted file mode 100644 index 30309b3e8..000000000 --- a/script/build-current-platform.js +++ /dev/null @@ -1,31 +0,0 @@ -const cp = require('child_process') -const path = require('path') - -let npm = 'npm' -if (process.platform === 'win32') npm = 'npm.cmd' - -let platform = '' -switch (process.platform) { - case 'darwin': - platform = 'mac' - break - case 'linux': - platform = 'lin' - break - case 'win32': - platform = 'win' - break -} - -if (!platform) throw new Error('Unsupported platform') - -const { status } = cp.spawnSync( - npm, - ['run', `build:${platform}`, '--', '--publish=never'], - { - cwd: path.resolve(__dirname, '..'), - stdio: 'inherit', - } -) - -process.exit(status) diff --git a/src/assets/css/material_icons.css b/src/assets/css/material_icons.css deleted file mode 100644 index dd7bafb30..000000000 --- a/src/assets/css/material_icons.css +++ /dev/null @@ -1,34 +0,0 @@ -/* fallback */ -@font-face { - font-family: 'Material Icons'; - font-style: normal; - font-weight: 400; - src: url(../fonts/normal.woff2) format('woff2'); -} - -@font-face { - font-family: 'Material Icons Outlined'; - font-style: normal; - font-weight: 400; - src: url(../fonts/outlined.woff2) format('woff2'); -} - -.material-icons { - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 24px; - line-height: 1; - letter-spacing: normal; - text-transform: none; - display: inline-block; - white-space: nowrap; - word-wrap: normal; - direction: ltr; - -webkit-font-feature-settings: 'liga'; - -webkit-font-smoothing: antialiased; -} - -.material-icons.outlined { - font-family: 'Material Icons Outlined'; -} \ No newline at end of file diff --git a/src/assets/css/materialize.min.css b/src/assets/css/materialize.min.css deleted file mode 100644 index 74b1741b6..000000000 --- a/src/assets/css/materialize.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/*! - * Materialize v1.0.0 (http://materializecss.com) - * Copyright 2014-2017 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:rgba(0,0,0,0) !important}.transparent-text{color:rgba(0,0,0,0) !important}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}button,input,optgroup,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default)>li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.clearfix{clear:both}.z-depth-0{-webkit-box-shadow:none !important;box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-small,.btn-floating,.dropdown-content,.collapsible,.sidenav{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-small:hover,.btn-floating:hover{-webkit-box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2);box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3);box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{-webkit-box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2);box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2)}.z-depth-4{-webkit-box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2);box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2)}.z-depth-5,.modal{-webkit-box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2);box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2)}.hoverable{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s}.hoverable:hover{-webkit-box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax-container .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax-container .parallax img{opacity:0;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 1201px){.hide-on-extra-large-only{display:none !important}}@media only screen and (min-width: 1201px){.show-on-extra-large{display:block !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;color:#fff;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table;border-collapse:collapse;border-spacing:0}table.striped tr{border-bottom:none}table.striped>tbody>tr:nth-child(odd){background-color:rgba(242,242,242,0.5)}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:rgba(242,242,242,0.5)}table.centered thead tr th,table.centered tbody tr td{text-align:center}tr{border-bottom:1px solid rgba(0,0,0,0.12)}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{border-bottom:none;padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid rgba(0,0,0,0.12)}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar:not(.circle-clipper)>.circle,.collection .collection-item.avatar :not(.circle-clipper)>.circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;-webkit-transition:.25s;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;-webkit-box-sizing:border-box;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px;-webkit-font-smoothing:auto}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-left:auto}.sidenav span.badge{margin-top:calc(24px - 11px)}table span.badge{display:inline-block;float:none;margin-left:auto}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.col .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width: 1201px){.row .col.xl1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.xl7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.sidenav-trigger{display:none}}nav .sidenav-trigger{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .sidenav-trigger i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{-webkit-transition:background-color .3s;transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{-webkit-transition:background-color .3s;transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-small,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-small>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;-webkit-box-shadow:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);-webkit-transition:color .3s;transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.sidenav-trigger,nav a.sidenav-trigger i{height:64px;line-height:64px}.navbar-fixed{height:64px}}a{text-decoration:none}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.3}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.8rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:2.3733333333rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.9466666667rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.52rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:1.0933333333rem 0 .656rem 0}h6{font-size:1.15rem;line-height:110%;margin:.7666666667rem 0 .46rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light{font-weight:300}.thin{font-weight:200}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{-webkit-transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .2s !important;transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);position:relative;padding:16px 24px}.card .card-action:last-child{border-radius:0 0 2px 2px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;-webkit-transition:color .3s ease;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;cursor:default}.toast .toast-action{color:#eeff41;font-weight:500;margin-right:-25px;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;-webkit-transition:color .28s ease, background-color .28s ease;transition:color .28s ease, background-color .28s ease}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:rgba(246,178,181,0.2);outline:none}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.4);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden;background-color:#323232}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-small,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.disabled.btn-small,.btn-floating.disabled,.btn-large.disabled,.btn-small.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-small:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-small:disabled,.btn-flat:disabled,.btn[disabled],.btn-large[disabled],.btn-small[disabled],.btn-floating[disabled],.btn-large[disabled],.btn-small[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;-webkit-box-shadow:none;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.disabled.btn-small:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-small.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-small,.btn-floating,.btn-large,.btn-small,.btn-flat{font-size:14px;outline:0}.btn i,.btn-large i,.btn-small i,.btn-floating i,.btn-large i,.btn-small i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-small:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover,.btn-small:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px;padding:0}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.btn-small{width:32.4px;height:32.4px}.btn-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-floating.btn-small i{line-height:32.4px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:997}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.direction-left,.fixed-action-btn.direction-right{padding:0 0 0 15px}.fixed-action-btn.direction-left ul,.fixed-action-btn.direction-right ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.direction-left ul li,.fixed-action-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fixed-action-btn.direction-right{padding:0 15px 0 0}.fixed-action-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fixed-action-btn.direction-right ul li{margin:7.5px 0 0 15px}.fixed-action-btn.direction-bottom{padding:0 0 15px 0}.fixed-action-btn.direction-bottom ul{top:64px;bottom:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.fixed-action-btn.direction-bottom ul li{margin:15px 0 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0;z-index:1}.fixed-action-btn.toolbar ul li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;-webkit-transition:none;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{-webkit-box-shadow:none;box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s}.btn-flat:focus,.btn-flat:hover{-webkit-box-shadow:none;box-shadow:none}.btn-flat:focus{background-color:rgba(0,0,0,0.1)}.btn-flat.disabled,.btn-flat.btn-flat[disabled]{background-color:transparent !important;color:#b3b2b2 !important;cursor:default}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;overflow-y:auto;opacity:0;position:absolute;left:0;top:0;z-index:9999;-webkit-transform-origin:0 0;transform-origin:0 0}.dropdown-content:focus{outline:0}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left}.dropdown-content li:hover,.dropdown-content li.active{background-color:#eee}.dropdown-content li:focus{outline:none}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}body.keyboard-focused .dropdown-content li:focus{background-color:#dadada}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px;-webkit-transform:none;transform:none}.dropdown-trigger{cursor:pointer}/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;-webkit-transition:.3s ease-out;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all 0.7s ease-out;transition:all 0.7s ease-out;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{-webkit-transition:none !important;transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, white 100%, black 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}.modal:focus{outline:none}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%;text-align:right}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-small,.modal .modal-footer .btn-flat{margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-25%;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:1.5;padding:1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header:focus{outline:0}.collapsible-header i{width:2rem;font-size:1.6rem;display:inline-block;text-align:center;margin-right:1rem}.keyboard-focused .collapsible-header:focus{background-color:#eee}.collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2rem}.sidenav .collapsible,.sidenav.fixed .collapsible{border:none;-webkit-box-shadow:none;box-shadow:none}.sidenav .collapsible li,.sidenav.fixed .collapsible li{padding:0}.sidenav .collapsible-header,.sidenav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.sidenav .collapsible-header:hover,.sidenav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.sidenav .collapsible-header i,.sidenav.fixed .collapsible-header i{line-height:inherit}.sidenav .collapsible-body,.sidenav.fixed .collapsible-body{border:0;background-color:#fff}.sidenav .collapsible-body li a,.sidenav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;-webkit-box-shadow:none;box-shadow:none}.collapsible.popout>li{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;-webkit-transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip:focus{outline:none;background-color:#26a69a;color:#fff}.chip>img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;-webkit-box-shadow:none;box-shadow:none;margin:0 0 8px 0;min-height:45px;outline:none;-webkit-transition:all .3s;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:16px;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;-webkit-box-shadow:none !important;box-shadow:none !important}.chips .autocomplete-content{margin-top:0;margin-bottom:0}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;-webkit-transition:opacity .4s;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}::-ms-input-placeholder{color:#d1d1d1}::placeholder{color:#d1d1d1}input:not([type]),input[type=text]:not(.browser-default),input[type=password]:not(.browser-default),input[type=email]:not(.browser-default),input[type=url]:not(.browser-default),input[type=time]:not(.browser-default),input[type=date]:not(.browser-default),input[type=datetime]:not(.browser-default),input[type=datetime-local]:not(.browser-default),input[type=tel]:not(.browser-default),input[type=number]:not(.browser-default),input[type=search]:not(.browser-default),textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-transition:border .3s, -webkit-box-shadow .3s;transition:border .3s, -webkit-box-shadow .3s;transition:box-shadow .3s, border .3s;transition:box-shadow .3s, border .3s, -webkit-box-shadow .3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:not(.browser-default):disabled,input[type=text]:not(.browser-default)[readonly="readonly"],input[type=password]:not(.browser-default):disabled,input[type=password]:not(.browser-default)[readonly="readonly"],input[type=email]:not(.browser-default):disabled,input[type=email]:not(.browser-default)[readonly="readonly"],input[type=url]:not(.browser-default):disabled,input[type=url]:not(.browser-default)[readonly="readonly"],input[type=time]:not(.browser-default):disabled,input[type=time]:not(.browser-default)[readonly="readonly"],input[type=date]:not(.browser-default):disabled,input[type=date]:not(.browser-default)[readonly="readonly"],input[type=datetime]:not(.browser-default):disabled,input[type=datetime]:not(.browser-default)[readonly="readonly"],input[type=datetime-local]:not(.browser-default):disabled,input[type=datetime-local]:not(.browser-default)[readonly="readonly"],input[type=tel]:not(.browser-default):disabled,input[type=tel]:not(.browser-default)[readonly="readonly"],input[type=number]:not(.browser-default):disabled,input[type=number]:not(.browser-default)[readonly="readonly"],input[type=search]:not(.browser-default):disabled,input[type=search]:not(.browser-default)[readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.42);border-bottom:1px dotted rgba(0,0,0,0.42)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:not(.browser-default):disabled+label,input[type=text]:not(.browser-default)[readonly="readonly"]+label,input[type=password]:not(.browser-default):disabled+label,input[type=password]:not(.browser-default)[readonly="readonly"]+label,input[type=email]:not(.browser-default):disabled+label,input[type=email]:not(.browser-default)[readonly="readonly"]+label,input[type=url]:not(.browser-default):disabled+label,input[type=url]:not(.browser-default)[readonly="readonly"]+label,input[type=time]:not(.browser-default):disabled+label,input[type=time]:not(.browser-default)[readonly="readonly"]+label,input[type=date]:not(.browser-default):disabled+label,input[type=date]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime]:not(.browser-default):disabled+label,input[type=datetime]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime-local]:not(.browser-default):disabled+label,input[type=datetime-local]:not(.browser-default)[readonly="readonly"]+label,input[type=tel]:not(.browser-default):disabled+label,input[type=tel]:not(.browser-default)[readonly="readonly"]+label,input[type=number]:not(.browser-default):disabled+label,input[type=number]:not(.browser-default)[readonly="readonly"]+label,input[type=search]:not(.browser-default):disabled+label,input[type=search]:not(.browser-default)[readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.42)}input:not([type]):focus:not([readonly]),input[type=text]:not(.browser-default):focus:not([readonly]),input[type=password]:not(.browser-default):focus:not([readonly]),input[type=email]:not(.browser-default):focus:not([readonly]),input[type=url]:not(.browser-default):focus:not([readonly]),input[type=time]:not(.browser-default):focus:not([readonly]),input[type=date]:not(.browser-default):focus:not([readonly]),input[type=datetime]:not(.browser-default):focus:not([readonly]),input[type=datetime-local]:not(.browser-default):focus:not([readonly]),input[type=tel]:not(.browser-default):focus:not([readonly]),input[type=number]:not(.browser-default):focus:not([readonly]),input[type=search]:not(.browser-default):focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:not(.browser-default):focus:not([readonly])+label,input[type=password]:not(.browser-default):focus:not([readonly])+label,input[type=email]:not(.browser-default):focus:not([readonly])+label,input[type=url]:not(.browser-default):focus:not([readonly])+label,input[type=time]:not(.browser-default):focus:not([readonly])+label,input[type=date]:not(.browser-default):focus:not([readonly])+label,input[type=datetime]:not(.browser-default):focus:not([readonly])+label,input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label,input[type=tel]:not(.browser-default):focus:not([readonly])+label,input[type=number]:not(.browser-default):focus:not([readonly])+label,input[type=search]:not(.browser-default):focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]):focus.valid ~ label,input[type=text]:not(.browser-default):focus.valid ~ label,input[type=password]:not(.browser-default):focus.valid ~ label,input[type=email]:not(.browser-default):focus.valid ~ label,input[type=url]:not(.browser-default):focus.valid ~ label,input[type=time]:not(.browser-default):focus.valid ~ label,input[type=date]:not(.browser-default):focus.valid ~ label,input[type=datetime]:not(.browser-default):focus.valid ~ label,input[type=datetime-local]:not(.browser-default):focus.valid ~ label,input[type=tel]:not(.browser-default):focus.valid ~ label,input[type=number]:not(.browser-default):focus.valid ~ label,input[type=search]:not(.browser-default):focus.valid ~ label,textarea.materialize-textarea:focus.valid ~ label{color:#4CAF50}input:not([type]):focus.invalid ~ label,input[type=text]:not(.browser-default):focus.invalid ~ label,input[type=password]:not(.browser-default):focus.invalid ~ label,input[type=email]:not(.browser-default):focus.invalid ~ label,input[type=url]:not(.browser-default):focus.invalid ~ label,input[type=time]:not(.browser-default):focus.invalid ~ label,input[type=date]:not(.browser-default):focus.invalid ~ label,input[type=datetime]:not(.browser-default):focus.invalid ~ label,input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,input[type=tel]:not(.browser-default):focus.invalid ~ label,input[type=number]:not(.browser-default):focus.invalid ~ label,input[type=search]:not(.browser-default):focus.invalid ~ label,textarea.materialize-textarea:focus.invalid ~ label{color:#F44336}input:not([type]).validate+label,input[type=text]:not(.browser-default).validate+label,input[type=password]:not(.browser-default).validate+label,input[type=email]:not(.browser-default).validate+label,input[type=url]:not(.browser-default).validate+label,input[type=time]:not(.browser-default).validate+label,input[type=date]:not(.browser-default).validate+label,input[type=datetime]:not(.browser-default).validate+label,input[type=datetime-local]:not(.browser-default).validate+label,input[type=tel]:not(.browser-default).validate+label,input[type=number]:not(.browser-default).validate+label,input[type=search]:not(.browser-default).validate+label,textarea.materialize-textarea.validate+label{width:100%}input.valid:not([type]),input.valid:not([type]):focus,input.valid[type=text]:not(.browser-default),input.valid[type=text]:not(.browser-default):focus,input.valid[type=password]:not(.browser-default),input.valid[type=password]:not(.browser-default):focus,input.valid[type=email]:not(.browser-default),input.valid[type=email]:not(.browser-default):focus,input.valid[type=url]:not(.browser-default),input.valid[type=url]:not(.browser-default):focus,input.valid[type=time]:not(.browser-default),input.valid[type=time]:not(.browser-default):focus,input.valid[type=date]:not(.browser-default),input.valid[type=date]:not(.browser-default):focus,input.valid[type=datetime]:not(.browser-default),input.valid[type=datetime]:not(.browser-default):focus,input.valid[type=datetime-local]:not(.browser-default),input.valid[type=datetime-local]:not(.browser-default):focus,input.valid[type=tel]:not(.browser-default),input.valid[type=tel]:not(.browser-default):focus,input.valid[type=number]:not(.browser-default),input.valid[type=number]:not(.browser-default):focus,input.valid[type=search]:not(.browser-default),input.valid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.valid,textarea.materialize-textarea.valid:focus,.select-wrapper.valid>input.select-dropdown{border-bottom:1px solid #4CAF50;-webkit-box-shadow:0 1px 0 0 #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input.invalid:not([type]),input.invalid:not([type]):focus,input.invalid[type=text]:not(.browser-default),input.invalid[type=text]:not(.browser-default):focus,input.invalid[type=password]:not(.browser-default),input.invalid[type=password]:not(.browser-default):focus,input.invalid[type=email]:not(.browser-default),input.invalid[type=email]:not(.browser-default):focus,input.invalid[type=url]:not(.browser-default),input.invalid[type=url]:not(.browser-default):focus,input.invalid[type=time]:not(.browser-default),input.invalid[type=time]:not(.browser-default):focus,input.invalid[type=date]:not(.browser-default),input.invalid[type=date]:not(.browser-default):focus,input.invalid[type=datetime]:not(.browser-default),input.invalid[type=datetime]:not(.browser-default):focus,input.invalid[type=datetime-local]:not(.browser-default),input.invalid[type=datetime-local]:not(.browser-default):focus,input.invalid[type=tel]:not(.browser-default),input.invalid[type=tel]:not(.browser-default):focus,input.invalid[type=number]:not(.browser-default),input.invalid[type=number]:not(.browser-default):focus,input.invalid[type=search]:not(.browser-default),input.invalid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.invalid,textarea.materialize-textarea.invalid:focus,.select-wrapper.invalid>input.select-dropdown,.select-wrapper.invalid>input.select-dropdown:focus{border-bottom:1px solid #F44336;-webkit-box-shadow:0 1px 0 0 #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).valid ~ .helper-text[data-success],input:not([type]):focus.valid ~ .helper-text[data-success],input:not([type]).invalid ~ .helper-text[data-error],input:not([type]):focus.invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],textarea.materialize-textarea.valid ~ .helper-text[data-success],textarea.materialize-textarea:focus.valid ~ .helper-text[data-success],textarea.materialize-textarea.invalid ~ .helper-text[data-error],textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error],.select-wrapper.valid .helper-text[data-success],.select-wrapper.invalid ~ .helper-text[data-error]{color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}input:not([type]).valid ~ .helper-text:after,input:not([type]):focus.valid ~ .helper-text:after,input[type=text]:not(.browser-default).valid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=password]:not(.browser-default).valid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=email]:not(.browser-default).valid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=url]:not(.browser-default).valid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=time]:not(.browser-default).valid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=date]:not(.browser-default).valid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=tel]:not(.browser-default).valid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=number]:not(.browser-default).valid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=search]:not(.browser-default).valid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,textarea.materialize-textarea.valid ~ .helper-text:after,textarea.materialize-textarea:focus.valid ~ .helper-text:after,.select-wrapper.valid ~ .helper-text:after{content:attr(data-success);color:#4CAF50}input:not([type]).invalid ~ .helper-text:after,input:not([type]):focus.invalid ~ .helper-text:after,input[type=text]:not(.browser-default).invalid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=password]:not(.browser-default).invalid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=email]:not(.browser-default).invalid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=url]:not(.browser-default).invalid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=time]:not(.browser-default).invalid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=date]:not(.browser-default).invalid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=number]:not(.browser-default).invalid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=search]:not(.browser-default).invalid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,textarea.materialize-textarea.invalid ~ .helper-text:after,textarea.materialize-textarea:focus.invalid ~ .helper-text:after,.select-wrapper.invalid ~ .helper-text:after{content:attr(data-error);color:#F44336}input:not([type])+label:after,input[type=text]:not(.browser-default)+label:after,input[type=password]:not(.browser-default)+label:after,input[type=email]:not(.browser-default)+label:after,input[type=url]:not(.browser-default)+label:after,input[type=time]:not(.browser-default)+label:after,input[type=date]:not(.browser-default)+label:after,input[type=datetime]:not(.browser-default)+label:after,input[type=datetime-local]:not(.browser-default)+label:after,input[type=tel]:not(.browser-default)+label:after,input[type=number]:not(.browser-default)+label:after,input[type=search]:not(.browser-default)+label:after,textarea.materialize-textarea+label:after,.select-wrapper+label:after{display:block;content:"";position:absolute;top:100%;left:0;opacity:0;-webkit-transition:.2s opacity ease-out, .2s color ease-out;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem;margin-bottom:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field>label{color:#9e9e9e;position:absolute;top:0;left:0;font-size:1rem;cursor:text;-webkit-transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:transform .2s ease-out, color .2s ease-out;transition:transform .2s ease-out, color .2s ease-out, -webkit-transform .2s ease-out;-webkit-transform-origin:0% 100%;transform-origin:0% 100%;text-align:initial;-webkit-transform:translateY(12px);transform:translateY(12px)}.input-field>label:not(.label-icon).active{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field>input[type]:-webkit-autofill:not(.browser-default):not([type="search"])+label,.input-field>input[type=date]:not(.browser-default)+label,.input-field>input[type=time]:not(.browser-default)+label{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field .helper-text{position:relative;min-height:18px;display:block;font-size:12px;color:rgba(0,0,0,0.54)}.input-field .helper-text::after{opacity:1;position:absolute;top:0;left:0}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;-webkit-transition:color .2s;transition:color .2s;top:.5rem}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .helper-text,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;-webkit-transition:.3s background-color;transition:.3s background-color}.nav-wrapper .input-field input[type=search]{height:inherit;padding-left:4rem;width:calc(100% - 4rem);border:0;-webkit-box-shadow:none;box-shadow:none}.input-field input[type=search]:focus:not(.browser-default){background-color:#fff;border:0;-webkit-box-shadow:none;box-shadow:none;color:#444}.input-field input[type=search]:focus:not(.browser-default)+label i,.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close,.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons{color:#444}.input-field input[type=search]+.label-icon{-webkit-transform:none;transform:none;left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;-webkit-transition:.3s color;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{line-height:normal;overflow-y:hidden;padding:.8rem 0 .8rem 0;resize:none;min-height:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.hiddendiv{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem;position:absolute;top:0;z-index:-1}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}.character-counter{min-height:18px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;opacity:0;pointer-events:none}[type="radio"]:not(:checked)+span,[type="radio"]:checked+span{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+span:before,[type="radio"]+span:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;transition:.28s ease}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after,[type="radio"]:checked+span:before,[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border-radius:50%}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+span:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+span:before{border:2px solid transparent}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border:2px solid #26a69a}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:after{background-color:#26a69a}[type="radio"]:checked+span:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+span:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+span:before{-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+span:before{border:2px solid rgba(0,0,0,0.42)}[type="radio"].with-gap:disabled:checked+span:after{border:none;background-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before,[type="radio"]:disabled:checked+span:before{background-color:transparent;border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled+span{color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before{border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:checked+span:after{background-color:rgba(0,0,0,0.42);border-color:#949494}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;opacity:0;pointer-events:none}[type="checkbox"]+span:not(.lever){position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="checkbox"]+span:not(.lever):before,[type="checkbox"]:not(.filled-in)+span:not(.lever):after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:3px;-webkit-transition:.2s;transition:.2s}[type="checkbox"]:not(.filled-in)+span:not(.lever):after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+span:not(.lever):before{border:none;background-color:rgba(0,0,0,0.42)}[type="checkbox"].tabbed:focus+span:not(.lever):after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+span:not(.lever):before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+span:before{border-right:2px solid rgba(0,0,0,0.42);border-bottom:2px solid rgba(0,0,0,0.42)}[type="checkbox"]:indeterminate+span:not(.lever):before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+span:not(.lever):before{border-right:2px solid rgba(0,0,0,0.42);background-color:transparent}[type="checkbox"].filled-in+span:not(.lever):after{border-radius:2px}[type="checkbox"].filled-in+span:not(.lever):before,[type="checkbox"].filled-in+span:not(.lever):after{content:'';left:0;position:absolute;-webkit-transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+span:not(.lever):before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+span:not(.lever):after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+span:not(.lever):after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):after{border-color:transparent;background-color:#949494}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):after{background-color:#949494;border-color:#949494}.switch,.switch *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:before,.switch label input[type=checkbox]:checked+.lever:after{left:18px}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a}.switch label .lever{content:"";display:inline-block;position:relative;width:36px;height:14px;background-color:rgba(0,0,0,0.38);border-radius:15px;margin-right:10px;-webkit-transition:background 0.3s ease;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:before,.switch label .lever:after{content:"";position:absolute;display:inline-block;width:20px;height:20px;border-radius:50%;left:0;top:-3px;-webkit-transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease}.switch label .lever:before{background-color:rgba(38,166,154,0.15)}.switch label .lever:after{background-color:#F1F1F1;-webkit-box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(38,166,154,0.15)}input[type=checkbox]:not(:disabled) ~ .lever:active:before,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default;background-color:rgba(0,0,0,0.12)}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#949494}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper.valid+label,.select-wrapper.invalid+label{width:100%;pointer-events:none}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.select-wrapper input.select-dropdown:focus{border-bottom:1px solid #26a69a}.select-wrapper .caret{position:absolute;right:0;top:0;bottom:0;margin:auto 0;z-index:0;fill:rgba(0,0,0,0.87)}.select-wrapper+label{position:absolute;top:-26px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.42)}.select-wrapper.disabled+label{color:rgba(0,0,0,0.42)}.select-wrapper.disabled .caret{fill:rgba(0,0,0,0.42)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.42);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}body.keyboard-focused .select-dropdown.dropdown-content li:focus{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li:hover{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li.selected{background-color:rgba(0,0,0,0.03)}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large,.file-field .btn-small{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.file-field input[type=file]::-webkit-file-upload-button{display:none}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;top:10px;left:0;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;margin-left:7px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;-webkit-appearance:none;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0}.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-moz-focus-inner{border:0}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s}.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:16px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:15px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:14px;border-left:2px solid #ee6e73}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,0.05)}.sidenav li>a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0,0.05)}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-flat,.sidenav li>a.btn-floating{margin:10px 15px}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-floating{color:#fff}.sidenav li>a.btn-flat{color:#343434}.sidenav li>a.btn:hover,.sidenav li>a.btn-large:hover,.sidenav li>a.btn-small:hover,.sidenav li>a.btn-large:hover{background-color:#2bbbad}.sidenav li>a.btn-floating:hover{background-color:#26a69a}.sidenav li>a>i,.sidenav li>a>[class^="mdi-"],.sidenav li>a li>a>[class*="mdi-"],.sidenav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.sidenav .divider{margin:8px 0 0 0}.sidenav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.sidenav .subheader:hover{background-color:transparent}.sidenav .user-view{position:relative;padding:32px 32px 0;margin-bottom:8px}.sidenav .user-view>a{height:auto;padding:0}.sidenav .user-view>a:hover{background-color:transparent}.sidenav .user-view .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.sidenav .user-view .circle,.sidenav .user-view .name,.sidenav .user-view .email{display:block}.sidenav .user-view .circle{height:64px;width:64px}.sidenav .user-view .name,.sidenav .user-view .email{font-size:14px;line-height:24px}.sidenav .user-view .name{margin-top:16px;font-weight:500}.sidenav .user-view .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.drag-target.right-aligned{right:0}.sidenav.sidenav-fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.sidenav.sidenav-fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.sidenav.sidenav-fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.sidenav-fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.sidenav>a{padding:0 16px}.sidenav .user-view{padding:16px 16px 0}}.sidenav .collapsible-body>ul:not(.collapsible)>li.active,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.sidenav .collapsible-body>ul:not(.collapsible)>li.active a,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.sidenav .collapsible-body{padding:0}.sidenav-overlay{position:fixed;top:0;left:0;right:0;opacity:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;display:none}.preloader-wrapper{display:inline-block;position:relative;width:50px;height:50px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{visibility:hidden;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item>img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.carousel.scrolling .carousel-item .materialboxed,.carousel .carousel-item:not(.active) .materialboxed{pointer-events:none}.tap-target-wrapper{width:800px;height:800px;position:fixed;z-index:1000;visibility:hidden;-webkit-transition:visibility 0s .3s;transition:visibility 0s .3s}.tap-target-wrapper.open{visibility:visible;-webkit-transition:visibility 0s;transition:visibility 0s}.tap-target-wrapper.open .tap-target{-webkit-transform:scale(1);transform:scale(1);opacity:.95;-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-wrapper.open .tap-target-wave::before{-webkit-transform:scale(1);transform:scale(1)}.tap-target-wrapper.open .tap-target-wave::after{visibility:visible;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;-webkit-transition:opacity .3s, visibility 0s 1s, -webkit-transform .3s;transition:opacity .3s, visibility 0s 1s, -webkit-transform .3s;transition:opacity .3s, transform .3s, visibility 0s 1s;transition:opacity .3s, transform .3s, visibility 0s 1s, -webkit-transform .3s}.tap-target{position:absolute;font-size:1rem;border-radius:50%;background-color:#ee6e73;-webkit-box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);width:100%;height:100%;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-content{position:relative;display:table-cell}.tap-target-wave{position:absolute;border-radius:50%;z-index:10001}.tap-target-wave::before,.tap-target-wave::after{content:'';display:block;position:absolute;width:100%;height:100%;border-radius:50%;background-color:#ffffff}.tap-target-wave::before{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.tap-target-wave::after{visibility:hidden;-webkit-transition:opacity .3s, visibility 0s, -webkit-transform .3s;transition:opacity .3s, visibility 0s, -webkit-transform .3s;transition:opacity .3s, transform .3s, visibility 0s;transition:opacity .3s, transform .3s, visibility 0s, -webkit-transform .3s;z-index:-1}.tap-target-origin{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:10002;position:absolute !important}.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small),.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small):hover{background:none}@media only screen and (max-width: 600px){.tap-target,.tap-target-wrapper{width:600px;height:600px}}.pulse{overflow:visible;position:relative}.pulse::before{content:'';display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:inherit;border-radius:inherit;-webkit-transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, transform .3s;transition:opacity .3s, transform .3s, -webkit-transform .3s;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;z-index:-1}@-webkit-keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.datepicker-modal{max-width:325px;min-width:300px;max-height:none}.datepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.datepicker-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:280px;margin:0 auto}.datepicker-controls .selects-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.datepicker-controls .select-wrapper input{border-bottom:none;text-align:center;margin:0}.datepicker-controls .select-wrapper input:focus{border-bottom:none}.datepicker-controls .select-wrapper .caret{display:none}.datepicker-controls .select-year input{width:50px}.datepicker-controls .select-month input{width:70px}.month-prev,.month-next{margin-top:4px;cursor:pointer;background-color:transparent;border:none}.datepicker-date-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;color:#fff;padding:20px 22px;font-weight:500}.datepicker-date-display .year-text{display:block;font-size:1.5rem;line-height:25px;color:rgba(255,255,255,0.7)}.datepicker-date-display .date-text{display:block;font-size:2.8rem;line-height:47px;font-weight:500}.datepicker-calendar-container{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.datepicker-table{width:280px;font-size:1rem;margin:0 auto}.datepicker-table thead{border-bottom:none}.datepicker-table th{padding:10px 5px;text-align:center}.datepicker-table tr{border:none}.datepicker-table abbr{text-decoration:none;color:#999}.datepicker-table td{border-radius:50%;padding:0}.datepicker-table td.is-today{color:#26a69a}.datepicker-table td.is-selected{background-color:#26a69a;color:#fff}.datepicker-table td.is-outside-current-month,.datepicker-table td.is-disabled{color:rgba(0,0,0,0.3);pointer-events:none}.datepicker-day-button{background-color:transparent;border:none;line-height:38px;display:block;width:100%;border-radius:50%;padding:0 5px;cursor:pointer;color:inherit}.datepicker-day-button:focus{background-color:rgba(43,161,150,0.25)}.datepicker-footer{width:280px;margin:0 auto;padding-bottom:5px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.datepicker-cancel,.datepicker-clear,.datepicker-today,.datepicker-done{color:#26a69a;padding:0 1rem}.datepicker-clear{color:#F44336}@media only screen and (min-width: 601px){.datepicker-modal{max-width:625px}.datepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.datepicker-date-display{-webkit-box-flex:0;-webkit-flex:0 1 270px;-ms-flex:0 1 270px;flex:0 1 270px}.datepicker-controls,.datepicker-table,.datepicker-footer{width:320px}.datepicker-day-button{line-height:44px}}.timepicker-modal{max-width:325px;max-height:none}.timepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.text-primary{color:#fff}.timepicker-digital-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;padding:10px;font-weight:300}.timepicker-text-container{font-size:4rem;font-weight:bold;text-align:center;color:rgba(255,255,255,0.6);font-weight:400;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-span-hours,.timepicker-span-minutes,.timepicker-span-am-pm div{cursor:pointer}.timepicker-span-hours{margin-right:3px}.timepicker-span-minutes{margin-left:3px}.timepicker-display-am-pm{font-size:1.3rem;position:absolute;right:1rem;bottom:1rem;font-weight:400}.timepicker-analog-display{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.timepicker-plate{background-color:#eee;border-radius:50%;width:270px;height:270px;overflow:visible;position:relative;margin:auto;margin-top:25px;margin-bottom:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-canvas,.timepicker-dial{position:absolute;left:0;right:0;top:0;bottom:0}.timepicker-minutes{visibility:hidden}.timepicker-tick{border-radius:50%;color:rgba(0,0,0,0.87);line-height:40px;text-align:center;width:40px;height:40px;position:absolute;cursor:pointer;font-size:15px}.timepicker-tick.active,.timepicker-tick:hover{background-color:rgba(38,166,154,0.25)}.timepicker-dial{-webkit-transition:opacity 350ms, -webkit-transform 350ms;transition:opacity 350ms, -webkit-transform 350ms;transition:transform 350ms, opacity 350ms;transition:transform 350ms, opacity 350ms, -webkit-transform 350ms}.timepicker-dial-out{opacity:0}.timepicker-dial-out.timepicker-hours{-webkit-transform:scale(1.1, 1.1);transform:scale(1.1, 1.1)}.timepicker-dial-out.timepicker-minutes{-webkit-transform:scale(0.8, 0.8);transform:scale(0.8, 0.8)}.timepicker-canvas{-webkit-transition:opacity 175ms;transition:opacity 175ms}.timepicker-canvas line{stroke:#26a69a;stroke-width:4;stroke-linecap:round}.timepicker-canvas-out{opacity:0.25}.timepicker-canvas-bearing{stroke:none;fill:#26a69a}.timepicker-canvas-bg{stroke:none;fill:#26a69a}.timepicker-footer{margin:0 auto;padding:5px 1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.timepicker-clear{color:#F44336}.timepicker-close{color:#26a69a}.timepicker-clear,.timepicker-close{padding:0 20px}@media only screen and (min-width: 601px){.timepicker-modal{max-width:600px}.timepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.timepicker-text-container{top:32%}.timepicker-display-am-pm{position:relative;right:auto;bottom:auto;text-align:center;margin-top:1.2rem}} diff --git a/src/assets/css/styles.css b/src/assets/css/styles.css deleted file mode 100644 index dc81f023f..000000000 --- a/src/assets/css/styles.css +++ /dev/null @@ -1,143 +0,0 @@ -html, body { - margin: 0; - padding: 0; - height: 100%; - overflow: hidden; - user-select: none; - color: #FFF; - background-color: #1D1D1D; -} - -.drag { - -webkit-app-region:drag; -} - -.no-drag { - -webkit-app-region: no-drag -} - -.pointer { - cursor: pointer; -} - -.bar { - position: absolute; - top: 0; - left: 0; - right: 0; - background-color: #232323; - width: 100%; - height: 30px; - max-height: 30px; -} - -body[accent-enabled][player-open] .bar{ - background-color: var(--ytm-album-color-muted); -} - -.bar .title { - padding: 3px 0 0 6px; - color: #FFF; -} - -.bar .title i { - margin-top: 4px; -} - -.cmd-btns { - float: right; - color: white; -} - -.bar .row .col { - padding: 0 !important; -} - -.cmd-btn { - display: inline-block; - width: 40px; - height: 29px; - margin: 0; - padding: 6px 0; - text-align: center; -} - -.cmd-btn:hover { - background: rgba( 255, 255, 255, 0.1 ); -} - -.hide { - display: none; -} - -.hover-red:hover { - background: red; -} - -.center-flex { - width: 100vw; - min-height: 100vh; - text-align: center; - line-height: 100vh; - - font-size: 20px; -} - -.div-center { - width: 100%; - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); -} - -.is-offline { - width: 100%; - min-height: 10%; - text-align: center; - color: #EEE; -} - -/* width */ -::-webkit-scrollbar { - width: 9px; -} - -/* Track */ -::-webkit-scrollbar-track { - background: #232323; -} - -/* Handle */ -::-webkit-scrollbar-thumb { - background: #555; -} - -/* Handle on hover */ -::-webkit-scrollbar-thumb:hover { - background: #f44336; -} - -.text-initial { - text-transform: capitalize; -} - -.text-disabled { - text-decoration: line-through; -} - -.mt-1 { - margin-top: 0.7rem; -} - -.mt-2 { - margin-top: 0.9rem; -} - -.ml-1 { - margin-left: 0.7rem; -} - -.ml-2 { - margin-left: 0.9rem; -} \ No newline at end of file diff --git a/src/assets/favicon.16x16.png b/src/assets/favicon.16x16.png deleted file mode 100644 index 2d5f08d60d96778d678f6f443b3541d270bbafab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10oF-G zK~y-6l~Yehlu;a<_qn=8gqRz3Dk*}nKN18TiYQA&FI~EJa-oA-VBPZQRVoqcP!M$7 zdx34zA&3aULtBR~Vh0Ii6SQLY`(~ztyUXsEh7CNJ$NSBXH}iWhAce~H@zbXAHm{26 zwFsNbqKlND?tlB@Q*(W&6Aw>hEA4my@s`C%5-h?Z8l0k)Jn3E!lc7|oHX3+%A{%$; zmFO!if>v?!ej&HnJ{(GgY6Jk44nO=4F)R*z&;FVLfKc<i)O_tq5+fcs4;0@aOQgkh zPRRX{seIaVEaJf3Jh~oFW3y`yxc#l#tavoCcrD!>BDC=nohOdr(DNBoFP=rh<S$F4 z2O~*`xAP1b0FdeF#=)uE$lf1Al}Sq;5|3modb_~Vu)TF=HEJO`WAU4$zI57kBx_}? zPCr6ec#lkzcx!1TBl)$(zVxV~eS7iy%U7(9PoZ;d9Y~35d_I&f-#ir<FIjABjFB-s zbP0U9fDU@cF)|5f0sxdR+?bO*wu=YU<lnPLmp|T#0HAw4Oxk?2Td}EPxkvW^AOe6; zDpYeD?IWV*Eb<>>LZ1DR^T@fy#kl1+*0I_@bkd4PNe^1=t);yzah^$dc6{Z-=jQr9 X<3n$qJXy!l00000NkvXXu0mjfxDx{W diff --git a/src/assets/favicon.256x256.png b/src/assets/favicon.256x256.png deleted file mode 100644 index 14185fbe488dfbb00fcd4242134e60fbba420f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11817 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/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 diff --git a/src/assets/favicon.512x512.png b/src/assets/favicon.512x512.png deleted file mode 100644 index 64ff0a5c597c93cb40674b780fb9b6c65203e6dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30453 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 HP4NE%!p)Sa diff --git a/src/assets/favicon.icns b/src/assets/favicon.icns deleted file mode 100644 index 57014a763d6ea37d7e2270c93c215ee8d42901f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96472 zcmd3OXH-*LxAsl~p?9T2f=IK_i-?2(3P^8ukt%|sRH=c4CI~19C<xL7M6ggqlpeZB zM--6WTcno+Lh@}m=f3xC_y70f3>{}=ueD}-<}>G9OK1BBo&dymz}a3_6#yPBJT^7f zWntuJ1OR~LqTYFP0Dyvjg#z?&@Q+R3zFqJ~Z!ezLwDkQ=sHVdUUKr6pd75w{6*=^@ zw2%y!*#$C*zX1-hI2vjVkuf9_jXTa(RimMHqS!QN;N%G-h}^(@nnc_vJ%dzS7|l^V zk^PJ5H5(b#l_O~tUp%{>R}Xd3tq+g-INtF=`FzRf>TK^cJvae?o<%PO9{vsJ6P7*r zKR}!&{_syU90EK13m*;h;hzrd|DXJz8)=hQw%q@GN&Q<k0r{)n$L8q_tApwax_Lf0 zu^0AOm(@;nTj%=#kRE7FnHo*tsNfm%L{Nf|_O@oE9j#VMhA^ej>dej6notR!^%C#( zo7Lno?pu_lu#%3%?hfJH)cm>ovn^w<mh1~x_y@LjgV{!kvqx`208@TY1#!^Q*fhmc zEd!GA_SupfI&0mMvE4nY`Z}`BtkWy|SlS-PT>T#kvM<gRs=pLF89dX`u!ON!sI9N6 z@4^bHFfD!MyVkE&_4$@{TSZ_xasSbEPi6qe%nJZ-Ap<Y(lzI6Gug;=$#x&0<r%*R_ z%=C5Kiv^n!NC72Rj`<nY5+&5lYH!<~##$M8j-LIMq(Xmh5LhSI>@D9k$}?K>oB<b7 z0ZoVwFaA?%z&0S-?{j49`qNEGwJ3QHX13Z0s=zBAols>*L-I`8CPDpNX_P=nc$jY+ z@zPyCCZSTB72OB^9a%O2pbvoV`JE>9tWv)^wpwO=CHIt%qA0=Y97d6<(q2N>Sc}CF z;Wkp)E*Cqe3IiP`Pza&w5aYB(Rly?w?ijcNQe@!k<50C$+|KOEJl`IYhn%37<%((@ zWv4E#7AMfnt{V&*>U$_`kKV(d@*gv*6f&j(<e5MTitvbJ6{PM{(ZuL#T~s6Xbc@H@ zV0PSfp5l{f84mhnBT@h<gNIbhN1jyv)FdDqSSUeVEoo?lpdA6wZ7&dbRn{`q_1dIv zI-u$v&NjT4JtL#F+h`o?aD#jw^L`?!f-k06SMql3@=oKQR3T$tAcb2NKs!$COzgCe ztqOnSkWkP!p3UMS)<Q^%r$3cFo2F-{ZmvzZbFH2-@jur>{WG#xsQmlauO(9kz=<DJ z_)9H{^w>SsXEPo*SF7D`s<4`EC_Wo_E`938r0e&}m!`YNw^$(e%dsmh4}yMXnFHP3 zI0%p;Y&9hlnAb9o-RQ885?z@oERTt@GL$Edw+h!DleQBMEXvK@Ne>jRwa?cUgJe#C z(kY5nh~LEIv|L9u&{7r1e}+W7-CM^SzC~!5apYpNRK164VyW)o+PRQSk%OPJobCMT zaAeDa>nr1{*4p0)W-g?+T<f@~2%?STbC>`2sMVhORvwR_9)RnE!T~2Iub4E<86kXU z_jwJVkriW^5{qXx^_UAX8K%63Nda*uKxtX%lqu1B-p}gp$Tdr6hE;c^_v|(chYtkD znwyE|wr9nVvl6`a{q%-Py`caL4KI*s+a35jx5c-7_<W6@veYT}dvt%TE$d{smSkAd zWnZ2;+U>nJ#To`dkAUaS;U}~|-t&3LvWuv%G9dPEsW&-2PJ8c4FpCr-N*?_jUCXS0 zSvGd~#l6;j;RIHQGn^TS)2H{@%b22WKQ%{s8;1wSQZ_i?R-{a;#P|U9*^yH0P@0M9 z7buXq2<qM(=KVcsXZd&bMl|LgCw5O+`za@FVkc8E3}K83s|(sFj<<e*9h8e4l_&IQ zEPF^Y0|jtUkYy(Xmed`bvtl0f^Hsgf@{6BaNbm7%+a~KAZ@RIXpV`y9u%TsQtacq> z>JF;vq4r#!c&%8!fw+Rc^rY)f$bb~bs+k6=-sU;c=6&kSw~?67H+P!LG*ByU?7&-I z8vvJ*eP=j_%`Y+NiEFw})R<;u8Ycv?H6_aY>k-@RvzIX?2w~a%k9%^)z+16{pW}>P zohb^~M`G*KWj0*Futqf+KgPxGu5rMZ>gWQVTE}BQQ^!Ai>4^|t^f&_nB$+^Gzcj&w z?b_9}wh6PU8xww$t4+Y`UMJFrKAfAntu@HDJyyPQ-)q81omBz`7=!vMfGR({`!S$r zDPuPE%7%}t{A@62?$T8bxJ6S-8<{h3i?aDM)%nJa!iL8X^f6HKqZf{o347$Ft;<U@ z>~?gh-g;eL!_$b9eA)d~woY9_UcXCG5eYQ7s|UY@)H?KhWcZM0(OlCqR-+b^vaa>_ zfmrHVJoFd(_VdR4*x*di=KwR%?doOhr2dkL`Wds4EXlZLV$Mi>D~hl!njl`)&)?Yx zf6F2YY#xX?I4|7qe=eKQg4ys@rJc;kIkIY|3o2iGL+)gYhxKpjOSL&wODLcP9-?zV zDd_tux7NpL>vSg4(5qMfw6YX&HDGL61U7$#)pxx!N$3O(0Iu#)q)=OW#plk>ZSoCI zTIwR<-Z$G(w!dX{Ig9e%!1jOH+1z)VCO8YRK8MMJK#$}&D^dD1yM2$3`aMQ|4o8%b zqQ&$*i<KSd!;m9*JemX?hxc`3*Z_S99EiNI^R;zl%VSd_@fq8YrzSZe5sF&;rpwz7 zN03);&OW26yUmVx3Z7tgV3q}N9DnR3SOm_<`Y4T^i?ufL*nY)MJ)Vn;J-f~US7?c7 zp^glzOYVHgG8z6{m$i=80Rv5MRrko2p_6(N$F?YC8&6zfYt*<XHJ<$x3<ATA;wQ4Z zpJ9$<lFvLha30i=$XSiRh2)#AZLXxFlhYVra>X*dB3g)8L{q2BVY1^l+8BDrIG`?= zJ@YZhAlSX@`yf_()u@-|9!Ig2J|eu85vq(}h&fM)GKa8*$Ffp9Mg-JG-HvkeLu~;0 zr^_avYoh%KJD80DS^71f0<965<?#ki8iX9?+??O$>rlrL^|9dNnXLdU&TKkkVP#>D z-*!}mG!$&6MYuI934%&ac&scvigUH6ExUG+uc}2QLVdTz3d9v7C@+rr^;Aq7>V-Yw z3;DHMSR(MxTNq<ZOH%wDCLs#cbxW;YoH&FT{RnS-2HUl~zmxV|rM7;oHFjH*oK|4E z6RmbA@k<QRf&B4P_J%<N&*&Gm1!J^542~3?PwDnQPJKMqs<Gx%Zq<&YT-1jk9!`TI z$1<)Kzmi`shdCPEAQUNdXW}4E9<tPOih^`yWHGrQFjRyh_S(7jYbcumJH|3D)>vzy z59TQ7r!Hop9ub0r!<f-r_H%jCeDdD}d=<vdeP9nJw&?r_a;HPQKoZ|_B4Pt_W~xH( zP)L^|puun`Gdkh5XMLiHsg~<ZY6BxjB-Tao50B5PEkj7`-SxUJDr;CC;d7q9t66Db zETDqKL#e*jCO#{l$+|=O^<6xZ2mzzLCLzq#kn!xx7}I9TKy}x+!P-|FPY68oakmm> z-G_5=q(fzl`+^9ixTn;5xGqAB9<_*X@t{x?=sL+u@)4mBDL8nJ%%zxLpNOtoKF5>4 ztFZm^LC&uC7)w^K;$Qw)_C6ySXO0IH&yfAdl{;f(SPe-@Ol<pp{CN=f^;i(L?3kQT zHt!z-m8`EqwrKbTWC0dtZ^xxNb@k~ka=mAKJm;SB#bXD4@aVt~%$r*j0@XJav}a9j zthgORM**<z%y~YInNZ<e>_lqA%#lbe36rewSB%u@>XUrK<Az_-b*3l}O@!eR0eB{) zC$RZ87oWYxTx#g_zy16>X+AeBXz9tPWl|Q1dr|;18YZHVL>1WH7o&~@_Qdi3%W3!@ zvBi?}EA#g3-ivjg0d3DtNSAeXU~(o&jA3Ha8P{Yo*gWBf2!$j%p;6o%@dDUxf^*@S zSEo!RK(zoB;)bdzSWC9mj%WTS8f!7Ac0RnW5Q#o?JUf`=`$W!rx6YGN_H803_$&ZN z&djT3Zykw!=8W;wP(M0pjY7;aABMK(Y7Y&jRH44}tnc>Niq9Fp%w`-!Pp(4Zrnd-{ zV?V`}wcA33GP7aZ2^_)=4Z^5V7co{t&K$&2bG5~A{7^VDd|U(Z8`RB}b?brWzXau6 z6OJE%_FXWGjAu)cY&P%Eb*k<fT)loK5L}#ZApb+aCbQiac`c25tsMWNmy}et-7l>1 zYIhEC@+ho;nHP5?IPmUzuzFxQR#qS7@NXZ;*SEYH6-<?N`8B3;){^}#$T!VHI@gkF zm2`K79TK0)fw-E~6`=|{%nR%ohiJBv-}YXFxN@x3jHy|sK6oHVMY9nqYT6@qtwXzA z75OjH4o-?PyAU?MNomjR@2f^I!Y+Z9O*?RemR0M1QSu%4OjVEq|C9PfZ(y8)KP2`P z({=6-2}VT0j)Fcf)T5BK)j*bT*HA!Bt-$`p0MAaNPTl6}HCC6O$n?WvdxL?@5FF$! zmw&Uh_pxlkEsE$s%d7wLiEe78XH4KCzMSgY7fhe21%3nb*H9vPb+s8yX@sbE{D&wF z=4CZkRCr#0VollDsa0i%T7tPtNvEIKhBA<<Orz4nQ#{e+wz-B^ki$eok1A=3$aPUe z1SS^C2rI5+d{JYEZE}I%oZsO~N^8SfsVGeK)u8@eWew)u&Zu4DnvAgg3Igkfq@Sm= z0q%w^uYIsMGo)dEx$|E=YH$+#zyrlAR=Sm0epMrr8<Yf6(dDF`f$gH=YZp~LS^qUQ z%ZNpZe>x*F+*<2AsqP6dTQnc|iF}24DMdws)I}B;vFn8VO9*}AM!YBi1)I9osp>nb zv8;cd&y?E+D2V*%o@A7%Ivcy)f~$4-?Eb%b=I~Hd(!70Gp!c_7>}Y})9iBxNxTMt; z_A7zZPewh`-H-p(oX`01Z;S>#%V6;NRCcQ0W{e0EWi77ZDH<dbmJoF=={=d{n}`|f zvFiV36Ym+)KnJhd!*Aq(3~xz558%ZyX79!P+F6rXo+4LP7XGJ$UH$%17@;P)VT^L3 z1a1g1Lct;}Gh{wRcE(BHNr1Xs)AQdP=1NBF{YH=%TytCb#7Ya519irJw#AzAOK>ZF z*1At*R*;>#PLjO?{GFm))@-FJy)o}4P7@lm9mgtvXW8Jv%)p3yvWKPHD)s7`)F@K9 z;n7%Q6i*MP^8ABT9((xFHl}Kt#fgM3x`rK_cLVUCNI@ZKq}*!%ihz9-m0B_#8JK#U z1LQ~M4Z6HEh(l#}kR)?tzt3)M#dAf-RJnd>2nJ|nfqj4)(wn~a!ADlVvt%~X@4tLz zYR>!8dzHKs^dde#y#WG&fM20^h`$8B5~&)V{|b&^bb`uLMd<5q?p1kzBk$ErxS68C zn0`4viRIwIw%z>sUz9M5k(A<BcUkWy?d*S_7)Nu+0=F}FVx;o6<@{yjq?eff)7kEI zM#S57_USV0_tkAs{W2OZ0yJ<upH)T$L8#GQfjCR~H`xB)laXz`*Kd4^WqwH=w~I(< zJ!b<57TqH!PQWD78dP)_^Z$<nwi10mhfhD%aHD8Y|G1gI1Yt*u7`yk-XQy*Ibww_x z`9JM+AeS+wJG^pxbS<mr{{1voiKJ_I;Q0Ceu(k)Y)}=D@Qvb(hw^!>f{4t^Hs$IDm z!PS1s2H?!}#4H`rZ|&Opx6F7DtX7_=#6)=_y{avtH;ZY7`lR8pBd07N)~)_=%lC!o z57I0W<mCUHl@39%{}r29uEwM_n(g*<jtJ9A>V#YUOOW_5|8B8Hc_IJY_~y(nlJ}p8 zMM&Am%GtCg!>V4`kF*F@tv>4)G(Km6gB0P?WFMmYDTNxE4EvG)#t;s$?(j=XV{)|L zV7rLR{$sC+df^C02e>T2?PcP$FGbzGDX#lp(5r)FYJNhRa>3Mp3iOe{!7R>~5M~_2 z>P~5TQ>}*2ceDQlutS~PeT-$#n*P)<JBIzDeOn&F3(#6|y%Fqie%Yb2^Yk@4b-?NO z-^BOt7%??3I7PWYunQB?aH)fJsaX~*KwwDRlhiX`)xNZ7)sU1$3LK(N*9jgJ;RjV& zo$fy@@H-M)^kaQlGc;C6HQ;)L_Dl-c$%2Aa2;~u%hx?I#CXk1KdEmq57He!f`%Og` zcD|goEXs$#OwZ5pSs3TWpwL>z$bVvb|4?6_Cb{7l?@PQ9aGCYEEZ|2V_laq5ufnA# z#uBo^=^HhaQ?~!6&Hp&rE~tlr^PYq>?OBblqgnMvkJ|+R%EQbNt~bM7*3FMN#Iy;c zZ~m9n|L<m?mCwmLOu+KYzeK4B$-4q)B@9WNVw<|*KL1sFy`mJ&=@MHe1W~nBR{lQl zckbUH&E8_Ca{hz2{$qn26LO%J*{}7QtmtK{Nwk)Q$R{{1?RSOl4pKhWwT5fb`q+Pp z;}wO)-Bu5UBa(jV!W8ZS72uipL`y;9_1}IRjb$gV6<uH>XTU^^LJj$GPu(qyzt7B1 zHD(~qX&T4=EypO$X<u|^Uh6`DJthgEl5vVMom~p_r2;@`m-+K^WTZ08wfdrQ<Vf3p zbAe_K>i9@Oy83p|m0uN5`8yzwEWOpDv01368Ch#_bn)-{;UDJj^_@gCe&pLGgpPS3 z^CzB3!MgYJfBDG8lCmjukN%Hu-hv@psC#2n12YjAE%@!OlS4C5#Px=CKB!^IlQc&e zmHe0T@2{M3fJIMEQ)o>~eCKN_W3%tyuV&3rIwfy^Ky^uHvE|~-=)X#?fGDEP{&Z-w z_(7{8-yssKM9NGI^qa4bcwkt6HCvPmp1HBvHfngIYECbx9syl5>1cZIPP7q|-;7|p ze$3Uo2`mZ{Kxlc~SQ|MqOjDJRic`Ai<7BB=4OuNLROh;m0JHun`o>x13ku@ix$+L- zu{lXY`fHjAF90ynJ)8m!fLfE8y=}r`wYl1o68Hi4Mg<s|x*=niIFg8k{Z&jlKAaS7 z4UawgSTcf5-}w|m@gogby1W$tbI+$JtecPxfvnA~fk|!XWQlmA4E$ZOe+hA|flQ9s z@O(PE%HeaoxvF4QGhaR0?>$iSKWWm`Jmn@idZ2x*W<Tx@;`g+vo_1C~3%Wn7^~>ss zbhb5<wx(0nn1QF3Uw`ylR0plvE^g%Yo#VvmYhpB}Z9Z*)S^YrSgX~l!=0{Nzn-#&- zR6EO=<sfJ7$bRQuWs|+rMGH1l^ugbfM<Sj({!VZAKOLiS=kB=n9wa4&X8jFhj7@cb z@ISfqQDZIdI&Vj{EAcfQ_t_%@vQGN2ach}Mal@CLGG7r-J8nlQmk+2~zFr^|{WLm) zRf@iI?nU`?Bp~LWq49HF(uWev!7lCC8uZ?Xyl+a>d!#cBQo;jJEs>!3t&WYfXLX@A zCmaRY2NL0bm5<MNjRQbh7;m2PlFecyncXrsgJEyJ49C}&+uVbBZ$nQLIcbvn^)A!q zx#yFjTVr5bg;2|5FnAC>t#66Ca=T*<8G);Xtl=s&DV@L(?!AR;bsEJDr&Zf~#JMZ` ztcNX5QR-f_xZF;bHV*mrZnBU(`L_G3Nz;|J&av*(nYt;&y{y$|%ul}koi!Xln@HVL z+gUm1;dSFiUW2B2>>CBZYAWw$tM!`{u!y>-@9c<*kE$JDU>_wJ^fwY6u>y$6ky@gn z4LeVh^<9=oB?u@!J5lfHKg35;Y#DD8qHLoP<-aG;`MMT-xRE?-`PX79<Fqy9U%*1~ z&`McKqjX&x_pqXC{o&T59uwNG<fN8;v&&A~dCg>TQG8-u_ybHMSVIVarN%*4rJXEX z??K_VtGCAQAOe0);PQ3Ar9Zk`ERQRly<rjz_M&nJNqQ$J!KDGWir)Pe!yD@AHAb8{ zh2->`Shk)=Wj@+pADSG8zR6Q*+7V?|-dkz<%V0=~GU|bv!&<|fnxNuOCw|yrj@KDH zRc(CGf>KmND6h#JU)tF!APTJPUCZY(@0DW7PWh@($KH*U7Jw9R=W?&$buWHYs)?U7 zYS+DaWYSt2l?ajwK}67}@wJF^JKxSlgywM@fxysg^0LGFX;SvV$_~M7a(9<DR32+2 zMA`CRJ2fZ}=x=>uheW3h$?rXF^MHkYnasjP->R_)-wO(>bEH=PMFbfeYmXx+_Q4I@ z8f1|OF1^z!^#Isa6w>9Zyz*2F?6bwwq6kLRna8yY1E(IbT_PK?K?;0GHLLH$GmAQM zeuZFS7Jtx~Eks^)jv)3w0*inH7Xvjo8#*(P-@v23Uexe7hm*w>Am6jyAxcqB8Ld2f z{iceKy)x|iw<Cx*l~{`(H76)NQUU&|x7S4&zWB;<U8gB6hFA_HEm%QG(zHLu@x6IR zQz4VqEdQ|I%J-If&@EIy_DIm(^@VjSWo^}xzPMcnv$%wm*hx(C3gvdN4+r+fJ+1st zKg6jV(vG%_KljL@T<pW7Ha}iD7Iue6_Rq(!zq_(twGD!3LS&k1iq%>db*A<+LqmEX zan!v0N6aH-z-6)T=FaPmuJsQ-+@iA>K90(qhwYq*-I3biQW?}@p3+`Rq{fd<x$*(p z*xi{gp~;ECi&jt%ZOt>maWxtVH(<$GWX?PEYp#xmW+Y)u%e)3YQMVrGzwyuA)<4Pr z8}Kqp_E4stTb8T}JvhAqX5MG%Stgw`g&7-6G;ro#V>=z<+hLR2Wt`4^h8<h%Y8~|C zI_zqX>^BpJ$PbJ?HHK%>N6$FFQa7E7yxJXU*KbpsQ~+{7G<mO!?)Dwwbwc*enO8Oi z-9=#T_H#7w>F=H+%?=?ct&7P@sOd_qRd?t@U{fVEXA<G2I$osx?N%NplCYMZP26^i zA96+1d;7$VUQv$wICnYjsl=Ux<=gM-_uuvkBV3_Td-Q&xWw3oI$eZWcFJ$smDhG0B zcI^JbSaz!ZS}{3p4&~;RT?SQr4>{;Uqp}Iyk=T;6j?dV{T^=V;WRFGG{MxiO-7%jW zlix&^P^Ue=r6W{3tHKI#%egXf_ch9&Z@#}S&}?`QdVVMz7Je&uF@OCP<omRy;Y+Ky zL|&vGl5(A9G9!*_wGL~TAy7knre^RwUPmzpV#6iDO1P!rBsRuxZ`hSN&~*FTF@)hD zCkswOnPlKY?fIb2_1&}y8#^_6k@aiI^Xcu8)Z?^Ee?-+DR797K?c+9slf%z)V()%? z+aV}f2ABOQIDcDLj?=?5s;Re?ooWcCG}*P{#W+~S)0~5pEs@3uZaXimar;=UB=uL~ ziwnikZE=@S$;2y19&$%k{@$@3w%bM4tttktX>2>KH{Yu@oW}>VK8)#By~i==zf~Cd zC0jkF^#kM)3d^aux1>O?XV-O#i_R>|<zWiav6B9f@Ba_jT$&0sUtx+k6-2lk!DT|r z-w6~c<gqR;|DN_K0EZd3EeS4sCG8Q4SnM-;lQXY|$%w~T)6!uvQ<rUx`6tukH$Hak zZ0yhl3aBKUw!rFFWMIvr=nmZYL*UMOc2L<u$mg%J+ekgGT14?Dy5^uG?9}&<L6K*z z0=_{;T%AiV;~pshBV6Kv>2m(5{9Ppjn&d6A9XI#W&7_q@COH{S%#RUlH-NVuBUV$z z0)jRJK~Yt;YYoP~_{4A5p1VpeVr(%_{d4W>>6*pZ-BtxUojsmg(T<we<s?btXtf=7 zYD^Tk;q*-Z%TKze{0Pz!`h7wyAaQFp33^dmbtC4s6`_=#7+2z#j=6*2!_6;SD*{;z z?CG4mvUh3tJeD4c(UHqvdp1K$w)kreY_9M!v2r}Ft+;LzXA;!c<pQ0)a@4~B7Tv+L z=1OxIp?`>(4il?QvBFEH&nmLBn9*~@R>YhH`7Lkg!OY6`D0TdEH@Pqxn<)Is(c#E; z^{Rryn5V{!Y1j1pjoQa9q)rpPov5GYMw^<L67)Nt-AV6FFI>FDyj@YEQDRBQaNY$1 zKVirG;o)u_q)bJhNs(y81JAdnRz0S0+}QqJv<&8$FI%z2v2pF+C)!u<$OGvUgV;KN zellZhGL>%M?gXFL<_)36#mE{|$&`;zLYmL$NuyH^0{A;Ae5N$ddqa*H#<DNoj=nvA zuv_nXK=EM_3Z@Y&;<(gKtnYG<JL~g;ll;wqSDJULnw~*h{P-&oZ+#k!-U<}u1v4dg z*#NKAu$*sbW|%8ieD;OONi;$xU7|M%Ni1u>o1`H#%frW}7qf%xlF+_$h3aDX$vI{l zkI`O2be&g_#yZ$x*D}UOh$3RjN~@+oqIP}Rw7eqAof!}EG&hf~oiBgww%RyW(^rac zxxoyGYK>01;F<<j^OljvlRV#glI8>Niw=6^j)@iN6l8qujCF@=Zau9{mZ84QaK|AP zO5yV(wBfvs2(Xh9fAj)Y1Jf$XqiR|7z=<B#jiRh)!7i?xttpo{7z46BVH2<BIj=F? zW&@ma2W%466oDW2&VBt-80$hE$=I-h_BLv2aZeF~zek1CU$`g-iJ6aOWW4>UHxwp9 z*_u7bX?fwXAA?~F^PxPb^%U(3OCgVBL53q?-C<n=IWQJDeSQFJ&S1qr^<|fFM&AB4 z3>@i^vk$VJ%uLft!o};>re1-Qr2=-X7|Te|$+9NiMz9ngWLI0YoeV8OFk_e3T-7Yg zr1h#HHdErP%Wq)RCXHm+X;u9rre|G6!TC}*DUJnK1<h2Zb#qIpw}6~))BP5CmJdKs zETE}*l;hVe-_qwJte=szK4Fh9r#KgN@ZlT1#B(2$Q!+T6Vpbw7Y-h-~3Jxk;SCGrU z!M_m9ieS01J}(__moo}@Jx%TXesTY$>QPXoUZ~`v+|$tGjFrS;4K8sS&UM-;hDB#! zeeTB(?K0{vYcJ}Lrj&Fcl(%CwuMGaylYZU`x;U=2F^(1&x^cY9y$11^DU_I`_lVd+ z`}JkI$G6^=pas*llxzqye)=|fMo*m<+@>8PyH?l%_-gT>DX&;YXtYRM$^hhSx|BD= zbOtB=a`$c2W=&vjG_w74GOnl+-Fag`WAZ0C5p5r+!Fd!8O0hp@KeH+pD|B&${;ibx zec-I|y?xmZKa(Y?1I^Agl(OO+faGpk_UX&aIEm6DM7?Op>a!Kjuj?&20p-JDNb}=9 z3`d@X$fIR3EsfHU@<EO3Pr6OZ+}usPMJ~4Nz`#@9ZH~~@I5SDoy`vguYLNpb?I)=i zHHr0`hjY9&jI30K9gx$qzxfa_w4z1zI)G|=zQReg7!YHBl}Aa$o$5|uu+e%@Fnvja zr#GF`H09h>*BPZTwlA*_=H>{DsmD^}obX-<j6><dT^2xX3Om;QvwwqeOz_ls1A;@K zeXR1=fnYZE!k++*&wf*Mg7Yz?%&CjA0C_Aj@5gNbO5~!u&rnIj*qy;?dMjUkT*g5% zMdxaO2l}MR11VV{8Lf&ML~C>i*cS=f=;=vY;zRkn4=K}W-F?)@4+O3v8awlgm^W+{ zfm0QquFS#dK~)h>K0UfR_QZF$i}h6>cQrNWNfjjx@htt)(s7hw0&Vz^p$iN93P`H( zk)!<RXr7&cL0Ilo?#kY?Q+%M#PBhSEyYyxm2va}9q?EM%S#Y(B2&T*Xp#!Q%U$~<b zVeC=Z;z11pls#piB^218@+jmD0@GbzD!avs6vo8Z<!lro?Wh17MbDx?Qo)>`=s4wG zbgt-PJnF{`c*8(R;xVWAiZ|DMRM{;Qa(V%9ibUF1jcu2zI@kh^a)2RE(+Yloq3d^= z9I;d8c(c(`0URLoV=n%5KRMp_Ph~^$@y^#oIv<Lq>#T&<ad6LJQfdWFj1F=)Xx@{t zz^Ul(og6Tx@oL`0UR|EE?3P^MUSOzf1_a&ZK@;MII4}e6a#VKO;7FJ4q*)r|c`K$& zGiF@uD7IGr7IiyTuWRw4`OR0OSJE{yiTe4y1Z#3z<U?F$xf0F^@#Nt)zK?wC)a@HP zp`b|9nANd1*9e(F0w-Pk-H<*$z<V|)u;T2(JIuW?V$3g<Z6_`;BNpY*94j=WJ;e{i z&W8d`kdVnWfmTp=Y6MPS^y{`w2Xs*y4|d7|N_)d5O<mR(A*o?-Ccx%ykj#sc4||#f ze1rnxPiTeOBLum=J&o1jl2E<^kT#WPc)We@zKb}>Ya&lxta9Xi1APIff#()G1p-=O z{ct4!;;pf+IOwr&6!y^T(Xeyu4#&03nLL_g<tQ{pAFT|zuy&<_rq9G6!y>M44J3j? z6$o$&nb=Av$`j*DSxXh7e|OgW4sf>FD7{UFZ{?FC4ivgE&pDm(O!DXzYnJXRZd|O6 z5`glj&iF74zx82oVgumr#~8}1UZ5SI^kx-I$)jQi4u?!-gsxq&NI4J&;`J*sH#Sg~ z&-$}w0hqF#lb(vGR{ZwA1tP$+Oi6LdC1#xNrY0`@7Ifn}&|w3tZ+-J&AU`9J+hF=p zpmW)&1iNqJ>t84aAb(WS#C)P-%*b+nkDF-U(mRcnu|2rBvD-n{_L-U2^V?)ZzgX){ zrkw8wAV4+>nyCJsd@urFh%ParB|Lk}grgrS`wTR0ID5g^ZTcI2wEkMc8eF||<?5Av zsbJ9E7UaZ{UsJzy2wxr0IB`?`#m#iagIeDFg!gy@jegBpyVj|GiLtB-z2}g5L7xS? zApPBqcu<lFd<0Qh7N~Q=wgQm`z@0{bIPXV#u9bvONy`0trn(Tdk<m&|9Am3CK)Y<m zZXaDCZ_SwLv$7v|+E&r|aSB|%u_c6~OT+zDgYl&ccMrIY!Ps{h@spnqnlo<G+Dbrh zkpUcOtqy7_Oz{ikTmQRvsV@5q9Xb0Mu?&6BlhxxSKheoo8{jyqm5__Z$cbY8PT{xd zGL0G{662zOFuw0sIz*E`fAAhCzpM8IGSBa`;6t35t2Ae~<4IsfxnLq~yJYEQlSlhY zxp9L4(E>8|2X8%vU*Q~>^kE1yVc_M4m|I7GAw70vv%Iyj*VKvpwn^V;9jhD(qF)*t zWuG#;I+yXaISW@Hq6E+M9L|{|wVBxhhs#eAZR+3oDdCYX8i6B3-Zeu{egL6<k7{(Q zcGAE1)3S#7@Gw9A^@Xr7>EQWJYXYZ@$34KpFw9%<jS$<UYou}<xQXKlm$k^b4BuF7 zkxSYqn9==TrCjYBZ*ag5Z;WLhLBz-1dk0DBhsp}zGCyaQv!H8gf|BsDSd-r?fj6Vt z#6j$6>=Ne9VUTm==Rpd$c$xqDblU7?FG&PMdT|V|_uAMjy}Ac+Beu{@^8E?DaL7Eb z3aOGTzn(@Gh&;IXrdJ;!F&lRordUX8qYT^%j<?GkWI+P~NjOb%G=`6kj*;Vs1+>J> z=6mt<N(3s;hWQ|ga1b-6)gq(=C-+!sFVp7Bg7GYVdQQeQVxUPZG&TnlDb;fqH~SfA zhvP0b*Xe@EkgfLQ_?GJk+W*$>75r;2x)tqLL)OB`Z_~ek1`BBTl{P@r7QxXx2)mRs zGbx-De*yIJM<s(B5h&_(4{P{k+J|7{FYilDTXtadUl;Jg*;)bLU;^E2W+Eh#In=l2 znmj=A_wfP&cmEN=-=X5X6M+z1LyZ0aX;*fSn|ZE-k>C@2dpwB|4Yo52h)%ZCZ?#{j z7Y}ExMrAL<Gwp|SR?Kv2gf1Yx*{PH@5p&xcOgNe$&7e0vY&3HOSD_TSgBa7k?<YEL zB6y^3GZ9F*0Zn$kiIWdNKC7hBTI+|?%Qvji<g8A9%yqa4Vg)Njz1E|#SE6Rl4R^T5 z#^yyPVw)V;GFOYlQb{)Th#%JhN7#6{9U_NB|BK~Y0Z13H`k4b_NRQJ`N0Y9@v_w=o zkXH%frq^NhA48CZ_qWlnmnC$#D7Wg7AlmgMu$`Ujp35NO8Z=Klt>DL{<&_DaE6R0M zU!%LAML<%XkBgqW<wlp$2oz1)p-Uh(_2qZKU|0p~?9=^}6oNm2PwK(-^LjBYEbK=l z;3sqv17Dh!)zReaPTrEYaCtP#1ri&*1<`7+`K*%}0|d9CsMjCinNyn=Gv*}R1R9?v zN`SF$UM-nh3ZZv|CxZ2^7lin&0zyCT!{EYNNi*$;F(QXvDPSft8AQKfEoEUnMKB3d zpSHg+le;|03YuArG(I*0mRter(h;!BN4AuJJfn()O7bT|=K~~a)a5;JP9?z5nhD2{ ziwEZCgVw}K7H+7-fmx5A_T~LaB<MX45e3svQWekv`gqxZ%!NiU0z@BTx`)`Twj2Fe z={`s<IsyZI`Q;yJ1<141(9eqZ01#>QslEw(I43c558!L-{u*L443NbjErXg_2IE)4 zr6CIshUEin*t5%iLHV~u24<P*-ymPaHk3}~&P}Ex3wiJRANZ+Zs?MpsZ?a&YC5QEG zDr7)?xp&Glrv38N-{*H|KIaI-Yw4edjWg`&TR^y=FdNMp1DpT^D_#e9VAX$A&_tdf z+^r}!z@49zsWNMU%i4W?3#J?0DAKo?f#QZF)aULAniG#I_;62uNEqdYSxGe`y~Xqa z@DkFe*&i%89^;jh{6I69cr;H2v+)9I>sHXQs`O3DoDyhXqwYBce<)fJ`u>c4X1)RP z?sjYiS7XVR8L(~vWmi)@yteZNRMj+_pz&+Fx7m=dUeX%Gy^tODN=`8xn}IAPLRtW4 zm!To*5t9t^wVw=dq%cW3_#O75w>m1DS8g~f+KM)w!RFB~+*>{*=DlghNvmoX6NbM1 zN#RtHP*Bxg?bGmaZB_|$xxOag@WQa>``fTq4GLZH$!k#Xc9+3i(q)Q$&%HPq{y!k$ z5Nu}hvjyU__7So1r&UJJUo|n|-3T92{DLjD%lu$~4%A0?y{mba!D-`v>*N6_J-}?r z$vb`fc01O^{Y+L=rZm{W-ZVh9V83JKJz$`na$k!DRe_$_XsrwgGo<WZfU#c#iXX@V ztv&no{3Q#i{m(|P{F)m}eY0~^;7^AYG+fQMKoR!V9#+3znnyFeqDu~E1tnQ*rxT-k z&Tp9fBp<VofVnN)ulk)4G4Nax0^ZtMyWIxIGf8o<;D|MGGRa4glA#wZ>w&LzL!VP! zUR2O97J*qT1-DwkJDvOcD{x=d_U)dSBU|FZz+-DJ)YEO_+l-0TxSQQkO{+tC@o`2x zF!3c5m^J6eVy_Ud9p!<=(`tYWMj1%&rbXuz!%#NB_l8dFIjyo`Fz7ZP$!)#P-d?x| zqts(kV6x}LY=n_cXN4O(i@?h{TnMk9S#9Z<=!VuyG)gK!WwQxi`o``pIZp_9fPL!P zqu!3l?IV9t7-^`x6;OOK6TDWi-c#+tGRW)Aa6Ti;y%W%}yTX!FCm7tEN7D|Y=@19( z^8SDqm%i(=*+#_N`c*bMaeVJdiU8O|xAGUKy6arAh)fd$P}4RZsAPPE6A*&J4uTPf z67OSyXO@5j>E@Pa$<pJO<~QXb^|~$!klvu)RUF8}Pk3@oKY3&>{ukB-vF!HQp8QRj zaC^P4^M?h$kVFon^2#KYA5gpR`@T({%*<%n)>!A$IAn&i5*oZj5yDk9C9{+8L8JD< z0%vBguHZ+$Ok*LzHz)VZ_6Wh@9w6S`5^j`U7z~bGT&sJ)TVD0&B&)=bYu_;76_cu% z(NDY@nRXgHdZrp;QrPZCjSG-yMg_0tX!l3`bog<!#{vpzwT!d7hG%+#UgBh5nf%NR zv$%(Lo6E4-Mz1v{8kwIc<UJS?Ph;Bo%E|dD(rh;^VEASu!QqS7%hra9gWYqkZa=tH z97?<qGP5SKJTv$P%00?MiB$k7*MT2`owSm)g(JVjGF|6ruUlO{<Fd`R-peVD_FF_g z*hVWIRJL~;bWPfB?N!+l>-W6XUisFVTEM#9f9G)dea?sxZHf`+R*S3^yNW^>`YIXI zwi_-e!%Tg{A#b4}(!m)cc3>z~Y_J*P#3^<6rh#c*g{Lw$=UrJO39#Z%Z*Z{%>vhz< zZ?<iD8dGlT`&#!|@B;?5O|itl$TX1jcobnVvRO3uPuLubf!LIEFTs&1Jm57M|M}}R z1+wnl?*!ia>8p#`1X#-Q{waLI5-EVxYqzKMI>^G|q|9jnki=OnnFa@CHJ=8OP>m;d zTc-mQi^2Zh={m}W$j5h5BNKFmk3rB$lVC<aoVY)BQQ2r;ZXvlGNkxrY-7Vv(L0nJ5 zZR<0s6@`7GE6|2q%a0ZX{lzkvO=lTV{`&qaZL!_(6h7eKKJ`7yZol6pHodR98&N`y zW1R1q5q4)@F`h9rumi&KU{N!8pbu!04nD0>{jzAZM)s8PI#-RvMML0O8++Mi9!*F| z{&sb*%mGI>Q$m#qSCGR(C0{N+<Ii*i;ilAJwC-N1;<e?!6|M>vhU_D)b5uFo3hQi0 z<Y>g+nuh2da1Tb1$2Gf><2Gx`irFQDG}=QR$V1IO)%qrNfdxnAX_<DHDQKhlp_X!q zt4?iZ5i$XG<=Wxjbvl^QEzU{lEhjPe7G4>h@@B^x6qR6PZ4LNg_{M;M1c>P`DDwC# zWnOq@8GQwfch_nq&1;j=QidYMJ&Qn%A@j!GAaiEBB=BZ-k1MKE2=sUp*5@Y#l)$nq z&&mT<xK54k`q^klxAukRWLLz1FM=Ns_kz%GJy8HAlR+#v3v%eMYV(|WUta(U4<X%> zR#Eg|8Do8HgE_>J3tDXPdORD7DO%F`m`qWMh<g5nzYMs!E{P@i8h%K<0+Ny!HV=t5 zT8b|r^lu<fdmBkG45$${tF~K-l{8UtD+Adp5d&hG%6qz#ov-DSe~a13Gs&;t)+S6# z65lc-V$PlOxIL85`uwE8XGMTgYOVd@^MlKW;q!A!dy!Sr83>bu*82mCNDu&aU%L*m zmMnZnJbQYLDcAQ*8XH)3IjphWiteD8XVfM;f`tayO^Oji2s)WO0!g|3`bp6%r9z9Q zbtPt8u%eB=U!io<{>mv9saO9xI?1N@qdOce{AZ;$_66f3h@Mc46?FYL_`*Q#pbXx9 zt?41`=VlXhV}aA=(Uc}39>IZ0G=8ukO2>vR{_`**>P2`8FRrtg2m8uw_igd7juVF_ z+{Hvj6bk@vMiv6nQS`DzHIHU>);ShSuCy+ciSjLX^@X9*YrFD#7IaLcTu8|I2itky zk9P0s*~$hW6~H0W8jtxwWi=Dp!=?Mt<(}tTmuqhyLk0qOo2a^c)n<hbP-(-S(&$5{ zXF>Gd#p%G1&5T2owAuwJ-1t#A(h7uO%$yFGTEm<#;PuF%J8vK%9-nIc!21B>c=iL2 zXGJ95M0t=lGgK|Vp6Y7^yk2>?o+i&=^5g#&!W$#I@Zm0SE{iGCi9SS;7uT#+V=#^? znQ6fy-xtb|2?rtc22&7;T|JQkI2tBg=MM`GEB1t=3HrxFW0UbKx*wB+o@wW{Y2B{? zj4K^P3V#PQ=qtZFgoEGfwkp8nK2}a#nui(I9XEe-^W30Y)59FsAKX&XTT=$^d(0tk zq#<CdXOYw9x?gV)NMBmVv(MWIs{kuLZ+)-5t$^4_7z%Zl@9d^wJiFffg^K~Gb~ySf zQ)cq4pBd{QFs}pN<Q<tGsz`I$tfX<2;e2gaA)ul@CetCT$7}^{FJ(*EU~i%c`|$O= zOe4R@HEy-lEM0GRSP|lRl5+l;f(Jl_aWzp-MmI_6^WnL7SF=FFvOrG_??<afZd;-g z8DZV*;~8URLsb1T^164>;E`XPrZtEjU!Y+e{d%k?HG{jm?WEwlO+XVgs$M-E^;XU8 z>8QLbs&V5n1z=vammw+U64KusJp^_Q5NF221!>?&OrMDYP*23I9))N2bQilx4bJ;8 zRMlK459KLi*(bjKO4mVI?`=3WERPZc$KykE^jZYYL;%H@S+2l(gVLuV6zQhJ!i;Y$ z1p9OkbKgCPd}DR!_JLrv^5QIgw*@zh^EZ8>9AL%(@(zBcz#C=Ho{ZHz^J>3#yy-R< zlCktJe>}1>%_5FoveTmn1t>~d#YTKcrr6WTzcPct+}31Bn&QvjN;;o83|o-*T*QjP z;;?<OAh|>xEph;eRM9*2fTAE-I(X>dzYqw*?=9C(q!qM;c(Ty^9&R=1xia@;|D_;( zz)pg$P8Xmk?GAo>{zJwG*~oWE1rV~A@r%16^9rn~8(Ak^8Qz4lfvjM%47<;^vMKfy z^iaGF5Op5hL;5WDDJet2P5;$I^n}8tN}7<dm@-S*$CD)ts|lw=8FEj)`y&O3OcSI* zFd}w@%hnedSaZ%~!{IiQ9zn@pZk+t>bcmHd8t5!WX<-yE7`~pY1H*?&gIM`U2lRii zRC!uHD-C(0G?ALb$eqC%`Ct=V*m?8ePmsQ{@{AcqTG=VfH@28R07e(kF$x8D!Dg%F z+(7gYX?FY#SS;3xB}=0kT_y^GQXn=j@&E_n(7tC1)J0QW<nz^YC0jc_&py;vCWMJ< z21<^-v(ZBCVIWNm;ZE(njatRK7SQ&uv3xH%D#O09g0EOQ8?K<LGhnKnZwnw!2sP)c zObY=Y{?<|~n^~iQ5v_|NQ11*k;Q(*Ivz?vQxZ<mCvvGMrMHKY~p>_w?eTn@gZS@i7 z4AUKhc40{oHM=C{!6|!O(!0gi=u1jKrAhUsuU7S-7@vOSVE}lo*U_N#jcDKV0pc%s zU()j8W<$VP%S6=D#g^eaxo3{n80c`ZN7b&MD22;fv_TBO5^hsE!0yUA`r35p%u_W& zco{A0dDW~6_;{%Ss_k0U$+BH%o<qIdLQVg&>H+30AO>*!SAHZj`bRz34j-{{Fc=Us zCBFacxNkF_aUY){D~;ng){5OsL{}BZJx#h)9Ia-mL$ZkpnqB32bLIZ&^#brl7>LTD zSC;PH+xj7WfXcEXV83102H4EUi5*(>wEzS>{DqdPrtr@+%C65R`zr1WBlX^!Fv!|R z2j9H)RT~_Ze+wD7#+GQdwxh|nxA=`Gy?iuSR>HC$c;&z5O4`A`F8-gh2Y~}H{3#O% zyXxr&Cv13eZ**23^|wB9y=ickM<!vi9vTb|Lv=_$^Jw~%gU@gwskiLzuvuE9pb0T* z4p+$=nS}m`55A6^`JAA~ct5Eoas=Tl_>B(()_zq)00=x`(+cQ;J)}J7_7}ELh?76j zfYEhtKcn@<*a*j#s9d${Eh_^gj*^IeJP3PicOtoM<|{*!@rcOM<Vt9K1nZ5p%>kOQ z=i!TGz$@>y4f4mux4kZncW}i1g9lV+K-$qpK7y9Jbe*O9+)+0h1{<IRhP4@g<VxbA z%eR8|sGMY9uHUZ)#}a<qXsz=@NcD$EA>DL!(^@^1{DH@6Xfn+5p)_uh6)LFau8!s7 z?|Rf6BN$BVj|G>%3TBhSCO|fe2`LMS0(%z}Szz!Wp)B>sbvCs{KdaxtE7xU!6B_XF zKVQN>OT+)@&E|%unh?MuZ)oCY!)260y)B)DWd}eM|7uTYl&(?j?);}6d@;#j-<cWU z+EFo~B}nZx01j-nNq8e{yzptWymhd;l#~m|G>_W8ngw=Vj(tHZ=7SEsB~(!k8ECMT zI9S+4)o+p#z<O+m;No=jxhOmJ;2EGm0-K|+1luOl_sHe7CPi^U4mdEdzj?D{LQRF; zb+3~gVDY2M`3B~w5n5yxE5g#o&SmGPg?0*dIv_GjxvNR)bfp9}hif+~8#*7GDZ#q^ z78^y+>0i#fb!gnFbz86@G7qJ{0R@p?N|)s_?3@cXGx|kOWspUULFQEXjQKfE2drBr z3Xz$wgwzmW|1rm8a~`3FTsDYmIidQnNGiqqaH}KMyH0KMJtv2LsUC^ry`%s}Z|!to zPFHH`+t+q9lhy|>C+!cWH6Ud$lspMeh#xAUn_2K<f@dHp96?FA+86j2seNF5EOXn2 zrd=EfR_~p{PC;5|J+On$e8=hOVFvM+vQv^$+g^RH0A5^+Kimi9w{~^e3n6*UOb)tM zhyb4xu93Q#(Y`w?R0Yr)99r$~Al$!cz!#T5<(n=Mfx@b1oA)<BGV7XJRaKO)guA#z ze`Ni!n8nB`$xrMlPcKCI8R=CY*vGujN|H2fdoshXF)Oq2Z3@`-4CpD3=^3&=c|r$C zIe6NsOoxbv95g<`oxnyqT7@p0o*6*C_Sx4dp}f12&?$B@=j#YfWCx|^D-QFiR{o6a z5p1sEP!){jB!~>vM;dbD&34PpPG;2n$SP`ldy5AzArbUAi6VOMLKA&sZ4mgJZ+1eP z90{VSAPOou{cJlF0-OT5co})}a>>>&=ia0~kU)cMlyT^d1WlqU?WrH|wokN@b1(if z%vG7^g!KmN<TZr|C|9<>6_964hRBc^Z#=L6pY<oT-<uCx;)S_9*=?23fu{jp0RPD9 z{wF3A20|R&-Dv3jjI&pjAg9`Ir<>~CQo(ycO#af(r1bMd%*yKXuA2*{PIi`sOyhmg zK^?W}NmmOjBhlog7F}K!6l&TzxWfYSNj9T`ADQqJfC0yY%MI}78mu=_{wzGajMt%I zx?u5-yLdZH*YE)8x6Ji#o{+j-d(LGhMv9eILg#2DAYGGsW1uVf9nD(dNzlZqB=(ff zNatgj;G5hYfVlADGXS!GAQ$Pw;5(7@O|c<kw6^Q@HQ2R819^tuF(K=FeIRGGmJzGV zjSr~Ph`ml~zs4F4u6zTK4obE@r(x!E$RRq~=n^R3;ds$U!9nkxjvB^7>H*;Cz)$69 z7h>74m`%!r2{(08IlJB$usDeu&SlRz3?+Z5R+;B)!jyW2JXJxYTmjf?-=54XXQC8c zei(_}2VYiobVPu)ZEWOy==rOMGo!B>%)ofaXuopYmUVfQm$cPO><Tv8Fq9OcO0#~f z%P<t0?{b9M9>S|&_08h=fv+SsCVj6`bpf*&pTt?g<8lRe0OM*mlnmu+{t0%hD(L)- zi1yV^t_ncQy=#XyxgQF?|J`N!HKMIdo!)U+62h|Czu}`m*Vw*1&OeIdYk|s&CtW({ z@tEr*AC7n>nyo=PmuQpNF7(->d5x7$Kjs9A)~!eW7V(+wB_zcI3}PjeC5(N0jcH}$ z=co6y$QR&K(M=vT!~;=*k5$i#IzN*4Y#!B;%cvR0DaWHMeq4protG^a$mEUD;5*QQ zEFnHFHaDX7O!f%_=#^sH@z<Zpw=F4Tk;BC=p&H#}-<$k3Q9GQpP}2Z(`TWgosNe0$ z{>S|_(d@6gRwbfqod9057U*;f*TLd(>BkNMC{cof`sD^&6_0?4>nO3{{VDQCCJWCa zDVOH7kGOB##hJY?g-FKCqFj{0m&h7~^iPph9t-^&`)1&H3SlYq2hms$!D@bV!e^kk zaZT3k;4O-&hN5UuM4>xOc6cK5v6&I9=s8x_Rq|SEd@DOPvQ_{Q6A6{(1unC1%6<SZ zZ%tU%gO7{FiWVxYpWUY<1EG;^9{@uECZsg&D+gm7`vIui4m72)RghMBGE~1!;2)bc z`2o_u>z0aKUBnFBfHj$fSlMJF)Hx|#v+vb*8ya%w;ChB|+)=4u2yh~z=Dymu3X3kW z(T^j)Eg*~b!M|<rMNRl~61X)x)&uN&Wc7X8erQ6b^9+7s99;Y-AhWJk377a#lg_*r zK}>3)OBm$|A1*l<WfiRo+5$Lz`-U%t5^5BZQ_zj71RfrUISXLFdj`<r?dgZJ1Ai^L zTc@k00_??~$V`D}Ce#w1<?Q;)HzE$6fW$-Sb#_1D1ry}~!`C!$;H~0sM26<Az1o%8 zFF)Uq^~j<yQzByl9LKQ7!8s!d1@F|C+cu8r(y0KU7mu16!MYo);fVz=56`y~%eM9o z9GD=_BEU|1eHwQ4x}Jt0xG1~-tr7IE!1Y(;vfqh?{D9nPetM^LcFExo@VdqW$+exH z1{ORrg6m?;U2wo0DRhP54ET_+_299R{L#NANCyqiHs(jnU_3vEE-fB=7ptaT`$2go z8jj9jOuownb%p~6hnr{|>lzoLOty1JBwUO+Apme&qZ(_em@v&%5rhn(gU#L>W=c3_ znhrfA66jo{08lQaaU@_iZ*Z1g^1-{mmJw+hqyC75k86RfBOMlreR;URl~@K>13tjy zrD!H#GKc^rJMvl@aKs#um7(O=0LSX?9AAXWw!`rHCUneeg`A*4Pqgc@sQ^!Y(Yj^H z(|0$s9;p2qD)~s10zev~%s;RmzPud)I!Aat5}!}HpBmQ&$8r2{!A%6kggM)aFoFRv z*-&I~lsG>Q)^c#jEhk^*xI`cK2(V8Gj#qW%Vfd(MNGlv~@suM+7`2BG<AdXlOP+%h z^@4`Pr=LM=n%96u%X%~L`gT5<MVx~AT@G=2-vanx*R=wVAtSMd@{P6Tm_%hDTxHP$ zNC#m~3rx0AnX(++s=v>pDQ;4KE&>Itz>(hQSi0|_fCwdbT_uyaH_*(24mG0Le9ZJ^ zy*E1_Cqj_}uPExTbGQOwy8AS+aSp8*3rK|3!Ha!r@j?W}5+D9t?B}KZ(z+lxEVGc+ z$(ji?nHY+>((+|&NA~3om-qQNpEUmo|63VZ{?$kd_%D_m)cS_pq)CeK;|d_T0>KQJ zicIssDyHxC*rCJ1-t7)9Q$mv+fU66i0VIV%--&r`XYGUvAS!6AC|95g9~Yy@^G_m@ zKx@De;P~Yj7xI<o>MdnpHwB330;BS~?%W2&18;p=n(n>K!pW!GJbA#cUFzvc#7qcL z;zX8v<5<gGuplG2l{_}<@B?0~@e5uniT?#O8ncFgL(X|Hx<S`u!L>9B219Jj`ReZC zK!M8#NUIhO4L%Q$??0WSqS&eAvNC#hmJO$U>ibPCG&_|>Oz{PAZwY-$sM^0-P009+ zT)`kzHlzQ~z<~aB*x@whCNYi$tqJme;HvNPcT4<t+j_8=1n?a1D<i5XQ)A(Q6qMzf zOqC9d_}+(Vm<~ufNzu27u~W~BDJBzn<b3)HUbd*c^0EW@X(@KHexYhL7EQi*34D;z z_@}L2&9?^#i`~5l$19@1e|1KZjpCrORJ#uAE%&;>`{^-Ovpu{C8~Oj3d-H!N*Z*<+ z9((qEjUhy3%^rpjp-^;?nCul1*$qSX>`NuPNVExM$uhEq>?upuu_fzJ493j&nmXsa zU+41|eEm`$uKT*5*YkSr+wHyEADMZU@G1<yn-4V1yQNk)fp@od;+Q4!c)y_NXYB2A zO~sy{0YOwM_`)WeGM2%AGaR-V3xZefT%f2&TO8=g`?jXN$5t>QnmE5zMn}Uotxk!_ zLj_!8AeXkNF!68+5O^*=;Lh-K>t|{?C<luw>KPBCQCFkC1cA?fFWGzVItBa*Z1emu zHS3pFpdd57l(gXh%O~D|g2cV0nv_>H6Viw0jX+=1h(7VfT}s}ze74qeN3qjrKwV(U zgVtTjI}dfK*^BN=Lp+50m}~qtzQCQPL+rQ4D2A2PmV<ny9!*%3+7?OUvz|8C`X-3U zrZ((6*!W`u#^Y&kg5v0nxF!#XTtt^BOAL)hCS295|5C^vcj+AEX8Q&Xi@E*k4<-&5 zA`DXt0+GNx7ou#Y8<e292ZM|pEx)-}5^Y8dFA@>YrHPjU&uJ5wKG5)>(@1Af{y*cZ zO3qjSyFi6&Q$nUT$8t`h<GC(D`s^kMva~hc^Ew>2XtvL_%5YJF5(L7~XL1-)sN0nG zmOg)CM|&k>i^5y3WYKdFbqJ0|H`sCg5kp@u$@USVbe-9Yf*c`4;H+9kg_aJ11I%A2 zmxMow6?jI$z0!Vx0~Y7Z`P<l_n$IR+g1DAZ9*;RKUGWTaQKeP*c<1|A_yfb|s6(^M z!bGK|2;_r4p~hP~w#;0>#9*dqm`Nurh}=CC_VWg#6Vh1p^<X?qVF4u5gcq=GazKqt zTMi>X)tp*uUW<l&^FNOh!^$S@und6#4QW*;hzPtZx_kD83u4i%tgUqMLfA+7#oo^= zv=!-~pM3}wa5<?NqU%4Pt*?{>^^Tc8=_w)nMWT)8`*e5W8hr1O)c(V`i$8z-Y>FCr zlBr8b=c2(`rZqb1zsjrXEOhweHf`~I{8>Gq<o!345ui9zwmWo`T3F+Us}l5{EezJF z95mv2QgKgqC!0{@nfbohla~eQi?f9PQdoTSx@XJz%xNZIrHv+F`x{;0d`d2BFTpsH zM`RZ!+w^cEG&msGBL@Es%xk!c>IAvJmEy?-0Vc@2`y_AlrMvb}<^9sGY0#CNhkvoX z3!oI!C4{W11>}cBO9%Qq(xv7ox<%7$aBzYL{{qQ)Z?p{D`bAI>DV_+s?$G80WxRu8 zwb0u33^c;QDFDK1@#l6*N+SKVYZr+fA;Lf;yIvxwoiTWo_YQ29Yj&G*lfS&{&3rI9 z!2)UwhNiJE?3J2F-$Cb{c!8<y#Ly_9ocasdc;81uAYp5S`pmRS|GnF|2V>cUZ6L<+ zPO+FU%UYP~aABHBX(bGgy-eIna;hVjl$=J%iSS=wcxg%{#t%75L+nyqjFc(o$R^oK zQpdYu&+V@cZMKBOi^M&r=L?pfqVW=vA_CYAS;{)6;pbx;-le4+&u>FQv$D@J`i_8v z;{$TQUhXB0qyTw4k#Z}3M(u4~&#iugcgIQEgezW;9<5x-B1A=nJZac542{hMwKH@s z+60F17;wv)UkfWuKoDy*u$w2e6*J89=%o@l@sq-Ge2w1~x_90Q(pb0(qfBAq%p#N@ z7wkvK>iLHEfyPpA(Cu;#F<K5bQ5Y+1F)8(9Xdc=7q*U<^qyUoXw?%|H0KqBK4OG3R z>8yp-j?6ZM>$j}e^{4$pV)Sop?Ow{myIlloiVE11ZeeNVNmrE)f?|x+3%h}sK|Msj zlQ!oi&t~w&%e|uEt>=c0{KcTi7uMn!DF<Do1J%u;!7)SgaOrx1CKj1=setkZ{)2;f z^aJvRZtD_6H#a^$jw#RcP1bGCHM>Ij=3t&7dDnZ&-SHLq9*q8k*#T+Lr9Yy7_*x*< z8qBtk!TTQ&wK0?3RBli3@t^mOv!Q*DL!gnyIez*|&n7L-a&QU6(y&h-GaNm+5&6Rp zhFWbYEN-_czrqfZh|fD?CLu{T7+&5>UbqXATLvNIz&F8DSe<mzicN8V8rIW&OM;a| zZbuM9F&-W8A1FMvblXq3`3Q*lg^rB8Hg6j3Q=yGvi_L8Ssb*E6bqiin&v*t827{ow zIjj{@guT2-BqD7K4lx}FQf)oa;Sx3qbZef`YMbUAQw#dFdU%xXj{X&<u;d-{rrI1# zgP?=!C=6v0#WD%W-DbUxgFz8wRVxSehBrxnqrXV3;xY2NMEJr**gr+Au6%sig)<Vr zOZJGEdTGUt^)0=a!&*e1C+wKZ1cZHCt6)`krX^?YoXDVQXX0aP93YKP=D<=(Okl=z zkpxCkrY_z}$B;%Y5?);-wm%UjdVwoeL40p4vh2^A(T-FA@qNGCt#;&A{c}TdfSi2I zeB}I_Al3IHRfk=`irXe{$izUj_h?*@o&S|T>2BR*$$djyDmHM6J=0*1R(`gg4kzIp zYpVr(t07L5+}7toHy2VlC0}3ZIi6-qRmYKb%Sl#p+W0h?g*$)i>lmIAifTTHNGc5k z@J6E2Nh;;y^{$Vz2qAK7uQ9w2r{b}m4J#5YVOqvxXDi0rx&Np^MJBk=-q80)E~K__ zR#%HjXjNk`KEEU*s$X7bH7y5J7O=p_uR_IlD0wHB<DUs%pmskE{kCS9B9iv{fv~`g z56y3g*5M6|_q*#ri(Nc0-+O6)_3<{oe{Y`h7uZpCfl#x+Yis|C+&pZN$x_k~|B&J@ zpbmCD<;amLF#ki#NO^Bb;pRo+)qE|cp>sGDsXfrppUQ~aV1Y|3?v}Lv)qi!49R2oy z$dmb2$E*99xe@fd<{==3Pzu2vl>6WFvH~N3kw&<o1B9k2_NzT)6Snfj`yU_cfB($$ zV;tt!>uFN!s`E#RzfUd*Pgv#uHI#EGDI!#M4D5_r#p8Jvw<!e$Y<_Rc3cs`+A~sV} z7WRrpTlFGu*v}%z5A2mhx6pKq2GU3k3zuF#wG@r7=cLA!L-4!$<&U>vwBFr17a6q= zK4R`Dlz-)U`6Y%dHON73Yzc)jKV&K;|3e0xSOg#Qe(g0nWu%;RJM_dfw7=E3I8u59 z$r<S4xh1<!iAy$)##=_S1bzOlRAv0K_#1k-1IpQolJz=`c6y2UgGtl<HQ?&x(OW5y zLvY^yV8qb-ftuUu)}&r|+N8pwu~!JS)?X9Hhh7*Gikt&`u(CDB^qe_F8h0=};!j1| zWoFe}^$FX`Z+&~R#xQq;%cO=&sb?CJ<<o+XI#?c~N1SY-P4}iEds9~6+LbwW@4?QC zp5c}eU%~isEl=`}%;#Sq6e-4{heWf|MTlGr5knmM<$0Qu;iZ*k+47LY1&vtd)hUat zL_8zN5~fCynHBI<>i3wNz;K~%hKixH>7+yzwy&QBqJJGne{R#%$=AAaE|1MET`L^_ z$OIrED><C9@wp5IXTfor=8t{J`J|I*wYER8T7cY0pj!U`IDRYaJ#3Sd7!4~uML14k zvb<*C*PAI3(!6hrNp=F)^~terg(t&SDqC`o>=%G}UyBjwa-zbm-kelsrw55w`NItG zpFqWaEczWeskL_^>{#&^DB?9V22u6TkW<mQ{pDi64dU$|(V_8}92%TykltP3Eg7LS zRD*hRKC^%R!ZO@Lruv4JG6T%fd<Gyu_xnKz>MA3|U~=U#<9R^!s>i@Y8e!$V-5vdV z?(SQb66<k~8%@VYSV8w4=vA;xWHAa=4f>T+E+O_3S^5}uLu;?0|E_0fw&w3)ebFqR zEt<WxFahte7R{-!&5WWJXqY?Xn_mjk^uEa0ubu{-W?|x%Pt((OWaH@A!~I|JX|6vV zjUJQz0MNaKjX3SySNdpiA~mvt_{7f^lF0Mtyjj?vZBEu9-YB`&`T=rs;5n#ByLllj zz==0(yzuTAgVW(73=-(LK^C0K<ZSj9XwKvY#IFojG)Ox7?pEJ@y~hV}pq_%{|0Q&5 zuY9{#g+DV@6x{qE3*sfHOy5fGvsQxgmQO%L*Pkffu;-%F^CZ)){X~qk;@*;@*F|C! zV^BUu^)=F+^7_tk(u@@=DHC)?GT}!xz$HbL34}Wrxd19iO7BO9!SB3mNgx*uf0u=W zlr_+%ws-V^i}^&0+HBtOC*c6Zp|4%Kv4zQ74RSHzbn@~)jAHb{$}YL=)Q6(8%O2_I z|BQu!lFn`WQSo|IO0YrsV}%dSF~ovunwhyJboy!U2hG1<P)Y^Qg3)ad57CQdVVdl| zuviN!7cg}zs8eMRy>N19yW8#30MIp8@WRCQ8_(OBvE{7?<KLCGU*DZ5a~~dtRtb0> zM7LJBa;)w0<z|CD)Oi~1KZy}ZqEYCv`QH^c$4T%#j)R|(_Klb+MXzMki0l#%=|?Y~ z75xY(n|HHCDOv{KW0;W&t|fCx&P63OVIea;jpMsQ4T+x2X;|PNQXux*V@_^Ho$fJ* z1?$17B-bo^=qb&tL6<>ibeYz%wPa1*w*E``zNSe)A|kesT`#I7C6Vx}7k|gww811& z-j!ohGb#yoBVU(m?~aw0!8Qkpxb4L)mbno7cOrh?RH&cXEEPsx=CJq(idM7`!!CO= z1*Msqk4$jtOVW=k#Y<YD>1a~hG>@;BAu<*{4v^tFQTAr~<)CcuLBU+#p-wMTGq}G4 zHm&cEw!TD-c7Y*`Y=1|TX|FtzfNhZihuE$|C+W(5TgRL?oll1}c4=X%{6=KsF?(HM zZ%|%f=QuzZxABsTvg<m0b)m!Kbx2>S0%R%3zXWat<}b?bYOiL{;Y)czX_I3XU1$2% zbKrbj1O-|T!fV|83%f{z&*Ir^3B7<S8jj<V5jQ?LhL@a;OdB+#h_pIZ+)b8|Cw@b3 zI3aET6k5=_mLS72&#h_d%?gH?pkmj?2Pvv#Tl(IU%%7m>PH2!8W@HOy-*6d>Y+adG zLd%dyR7HeOJZRkG5P6<9tw6hAASskloZFx3-%L#u6nfen_8k9s57ZzDKyY=0-xNRb zw7#eqGg(%?k^BbY_iW#&?q4x?rHq7?N>)#A3y=A%$wn>&KR%9KJdUn_BWqV!b``Yv zgcm@1Y5v?<f?KPBJf`m>gQH#6fil=R@eE(sw&%hXgz59pqo5YD71WjoEFH0h?1MtR zg+YZqnAD>SaPhJDaBx{C!`gMy_!#lS^H616O|JkeACtKD`3sR2d%I7H6`z7Iexf?x zUIChSdnkuNkYPpThXYidk0Op`RH(Q8up!q8CZS4!l|$x0#;mUtte?VQcML!|T-0$A z8go+b69?%!JQgF8bqmm&fPW?K!>DV=%UqS-issNF1kDTwPeba?j>r5vkGNiPH-q!0 zNOVLX>E{>78b=bNY0js|htd)&<AHs{f;P0Ok*i>NAiE9(g$~WTE{rg7QG&7!6{QL= zeTkJczImy~bE(Mly1z$fC#h!&Yjp#2iHCB=@ncthek)%9Mu`%r(TuJb$*ILJP!WU0 zO-i#-ub*JPl4?Nxna++4V(co)={+Zy43Oh18;6f!qT$BX(4$4H<FpCJ3o&@hh-3$1 z0Kz39@aB4qAj2y<P)J;zPuMFXjNf@GPoAx`|ACg{$^JhD?@>#1l-CVLx*gI<7`q49 zg;-3$NPe;oVd1yL08GLOPY8AE8CSDZ<G#i=+z;ghtRLJ=>KkMy7qRA(z1}Ao!QrC< zLX=|1DVxQNu0uVefuuR7*4<DeD@#k>Q?XStM3>nS*A<4PEyp0CSoGF!y$nQ0rWOod zcU045_=j5jQHF9dsN|aG-2R4nEnW>VdLy--1M7$}PEfGoYCm-FB*o?{xwqhZADpH+ z0ib&~^nxE^;&}Tx9M5kOaS#YMBs}G&Zhad6brs8uQ+Y^%d*pA_@o^upxuD4;iy7N6 zNUe?r4lQlWsL;ADO>3_@q<x5C0MTVuD$U2RO)~gCWbf;kCMoFL{YRq2Tj{{qXT3<S zj5%nhb*xFWR^LFyP+D;MDnZ{&&+J|^T3%zVuXWm-?T(S!1R>xjK7)T3uLG?g4(lXq zlf!)WuVu=62Py5-GK8oT(3j)rLON#|^dB3={FvX2?x+4=8!rdl7KvlC!d&M<Y#@`v zmJcsq^yhP{@~}Ek0HUbf{1B;CLhe#17&R);pk_^w0EO$D*#wmkl7!PoT~kBgS+ra4 zrp02ErOa;2o7r%3O6oGjTAX+P!z|jXr<(yI3cy1mXi^JfUgy+|;k3DQZGrnD2tOd8 z`r3iNp~Q#E_(aQrKkot}7@61KsBm=mSHixBE<0BeKWPcuy4gJhM1sDf!h%cgPw@aO zV;RY!?~)AAf;q};;Wa!7xohDXHZK1N`Itd&LR{Dcf%fKGpwE!WOvBz(O&?g<)AJbI zftGk)Mb~u9=4#VP?5x|SyVmDOt;|_dWD^fI|7Yytd<MCpdh<h*g3B6VL;dJWY-v5& z<hW}PZ08ZjPc~sexb3oJA0&AS#(wNE45w<X08Oof>N#31admjWWvqE9mFei~FuZ^b zXY6bMnB&uRle6Asz9<uO0pV@8-g!y3-+DHn`Tmpj-`cy+wgZ{OIHmi$!ssPROaY1t z1I1yVu0qzQp-I`p_?M(^mh-zmd=I%vGaf=%<ogUCknF>>fM&ZYzp478%vM~*Ex=n@ z&N;Q$ANm}_RAFpJfsb7%dJBuivodLi)?EjiIdW^5-H$CHBLP4vYG>fu3A^%|J#C;0 zc$hjgUKtp}P7&foS-*=N2J&bUzV@C#*b70Ht6t>2RdG2rTQ8c8Vr}oSgK-!LEa+g! zbp)-uWc}|<b)ZrY+jQOf=CfAbnS{|4`-05(P3EdGG{il-bmDTJu)EtOxej5Xc$x?? zv5mIqr?f$XqW^=|@E7+icp>;VlYIhv=m*uS^g64IAg*(tr5+YbLx@{iWeZ^yPT%qH zpd4uIfG>~^QJ*oLNZ@Q}egku5E*o(J@|4WZkUoQby7y7_Xf3(JX*6`GZW=2)7<)c8 zSA-6cwrQ^nZG~Z=Jl1q3D4kis#UAt^Rdi{UmQT$iQGQwh@Yvc68Iz??u_p;<^Fajw zNiGXk;U<K*zjvyc7Q8a#=leh{AB})3Dg2ag){3{23fgRP(UcVmV6^OIa%IZz^g<Y$ z1Bza|VVmX0S9coW>3Q^Ic~?@fP)2})>|1j_T+KU4)?<%O<eGuev`A?Xa}7)G-W(hm z+AUEjx2x@#rFtGcOvZ%i8Gkm3RZYMTbco;KZ7&b>aRKPkj5FnoVa$<wD613lDL?eL z&mcX2$L<QmrbaI4^)ftR%?_m1y*_~|zx4w_lY-}<Rc+L7XbEHT*#F{|CXkt;9!PGb zWd>ks$pHVwJGA1Zi#&8I9WB&xoKy-&Zfx@y?43%cI$6$&7SB3S;pRg|KsW8dR_42H zPaloA=OVT=GonjLCDQH}E4RsQtF^jsu%yaAq3j&y%#;!(=p|@QBQC=`tJR4z61*Gx z>2a8S(WgPF(Up%MA`ydWFyKr8SDpfKvYXbFPcEou+*&q0L--2dgB_0k$E`>s#Z<Bp zF=3y%d5}moDLOdWWc7$p6fX9i;sydx!MYaEo;=7jj-zc_>#vb0793zm7J=_Q@@`9^ zowIt+lZN@iZcBu$AM5^papx$o9oW#q%W5QS6X*f}nJnBoQkfB(D)0qbMa{(Nq?6W@ z<n+sWBp>XrT?`=}$64kvzBvlV=3l9Bvj7Nq(M;>S%1|`Yi}`|cdVU}5ohXr0*DvIg zY`M4C1V-ioow=yX9$+|eg;H39U$Qvf_qGLPisu$-3?M<P>mu<9{u8jN#yjFLIW{~b z)Yt`Cb=4=o94P-J9-9rW;71Vw{v)yW0uNWcRSTbs`T|^3r}ym%Vjx>d1K@&)^1-oo zdBWc-VXRmzxgNE-78a1ANFQV;qqyhaD6Fyv)I|_b7g{$@@R5rw=NB+#$nAQPA+yBq z&RBP?<<(ubhuH$4XKS2!rnQ@v!|s(Ej4Dv0@PT%hY2<FA12mqWX{c-$NQv{)SK$wj zeSw9?)d~+uz3xJGoyuUrSw7+8uJ4!w66`)|USlKklC12t`GCt;3{C<ez9x~kErkwL z`Q17ZyAW|ioOgtR)t~7-)N-gt3Bn{f-jrs*^LXrDKj+B~e}Z4}Kg40n%V#7Qf~=Iy zqcCPxtL<Rkp4M-+c)o?303<gJW(Ja5l$#BgF3e8n<m;|x2$BU)@e)CtQh0(yiwS-K zV^yagx(#hzBqAHLd>Y@ppT>H6Y{lRuq{-F(!;Be&#s=lty8<yBFZeFILDe~^MWVE3 zgx!Lxs#St62<g~XgQ(HL`GHm$FmV|a^YwsE$XuH1Bk2lV(WlUQ4Y}&A>0A<1Z0*SP z8lD5fToz%W!2uDAVUHSBVuiO8zAP0*ROZbVjYv-|26!u-z4aR#q3eEq3w0lYV{Ox_ zDB<s6tonNj-}JOE@q~Aty~+fwtg{{8iNmMxY{^gl;<@F_jy`-1u<X0B@`yPrD_*^A z+6oK-T11)Yd+;@S5P1YmUYDGI2OGr=-bM6C29HlikBX~-YxXp_C!@I}J8YRnZ}t5& z-PYbW11Y0q7<op6HR;QX^Giby*x^7xG=e*1z}1lZdRc5}WDOAb5~XcdwVdl0Q*QwS z@W4Q;CIRW0G;B_`h_5MgRO_7O`HPZs`-VB}6ixG~rV`MH6m*MwY%^CNuBJ+JKH?U} z!8{!^nrzy7Sn8V}doC8ENj4taoUGJ>)(E0y-weNUE~`KiISNt8473cHhFk5F(}~<W zpO5de{gA#$EyW8RKUz6OqwTSkj5p&Mx1X)v{~<%XIz~S>NFU}UVRss2V7NhYxY>Yd zZ?kh=)Gm*7DklA<+GS73PEf^bb0)W**sj7Nr6=rHG1#-s78g+Haj$^k=7sYrn$$Ca zTk_<w2!Jf=vwUQ%MR2pnh{HoCA)KjM^$Ge4H(|ipZl69rY*c^GZ2YYUeG+VoazFS! zW{EpBq$1)c{^apeQA$g(turO-Jl!{1tDgwa<U5H8$O+;L19d}P(Hj%m4T5X4V_?)K zr;`m2Q5a)L=ryI8uK~lR`G%xHYh=bIu2J-BFJ@>~@Aq7aHMqLl4Nti3N0nX1h{xob zOzCqP36oGPt`iFA_yX~%KrCuG{-h84`<)Mw6GqijXD;FkGCty{PM91c?tmDuUF(l9 ztiPC%$zZ!6w)_#<#C)y^w^h^8Pqb4(H_ml^J<4SN`yAHj8Ozd^IZpCx(AVyR4xced zuL^dbrrB{2@x!9oKq??C<yzk?;gdoCsg>;_LjA)=$uIrq2u}wO7_rj?P^YW1Zb6H{ zdoGm7uPh>011f#bw(^DvO62@fP99i@d~jyTg}k@>{mK_NJ<wiCVa=eNAv6^hyOkL9 z!(*tD6w2%?$uii6ShK$%=v;2nq<gzu@#^Tu9Vd_+v_7#63d+%7Y@YPXg;KIHbm@7q zVu3wq(7z2d`$nwhm%O4e;B3OP9q^Oci#wLU*to#VSpq6!h@Ne|Dk+-NAsM=w6W2Yq zEQLNQ5Uw4F5;L+saj!eEhfpj6Pq>#{ien3Id8LhZx?%U?%A)BVjoJ5w6^zYs`3Jn1 zt6Cl=x5?#WA4{x4KbF)To}&arbD;AcAuuB#k#E3UJ5$B%YnYU0sglA(Y(w;8gxhV~ z@@YQ(q~SOK8RDn1>t*vGC+oK-xmYd=C+zMH0{x@47BJ+is|$vId_x3PV~VlC^Eax1 zp{Aw$v@LYVJxtGo>-wx4!96UZ<EXyA$wA`HueqUT;S1%-l{~at@(%A;lH2m5>&LS| z!H}V`VGS_-%|FtLG9(2A61|uuZ2c8;fOXSiy(Fhk;ysr|E;z3^@zR3Xw+%he24DF6 z7rn(6)n2qMntJTO5$;`Tc_A@4xN9+g>O%G5vZqlx+Gpnnedr+<+Njr=cH%ov1gGtU z2r=jcD?0Gmne7i~B&l_SNWunSeb2RmDF;1m;oo*|A_1FuhW<uX+tFx4bgw_*EVGw# zvs_6v#pVc1msw1dwB?re4ULT1U;b{3DU++{zx(NFZ9G2a6-CCm1090lJDK$|P@=(r zFI9m%^<wnb4y!r7jRy&uG_BuI1rq4n5m(zzt?cPC+#)-fsEoQ!%H6ghPiJ5=%V(7w zO+Er6IhW5(8#C`MTj<a-`INdw+M4!@3xIt2^0y|1gtDU5FLA-cs3-WCK&xx%7(2gO zfi~n^>q4v&$ejOvFR?#4cemsngNMKBo<)HOnCG$G^Keao7GGoPdBpLeIN;dP3@VhI zE=VQblOBYqVpvDmSU>R*!W}yY+%RXo57yEfszcLB{hlJ<JV-AJyD(;zK_jv{oFwf5 z<2bb9wQ#o2!a8YSlqjged%EuMh?`7)eK9PaU%-ijor)$84{n?Xr(H4VBWhqM-}g>? z$oxjD>ZXVbmn+`9SW6K)E7h>fQ%@gxW*<$<D4@f<zol2XYY3N8lY4U)ce-+U9GUw1 z!Hd?+GXt+P@CN>eXNlJ>W6|4WBFjZ_ZfzG=O}+K_kS};Lg&$1!lB}kXT7dU_`!lab zwhc1{<}88_DCm?QsYBIxx>L*XQ7>2!&=LBHVh4GC>|-mn{;A<b%)O@E^J_nZHA$gS zK2q0=#^H};q_B>x{`|S6lGudIEJC{hW&DeMzV0Zz#A`i~EI**QogM-I|NS=GB2w99 z@}B<|^6`>YoJD~>(1_A-#6eX?W&O_#ea_$atA>)yiM>l9cT?8cMceWHEn!B3q}kS= zy2dAovsH)UZOFXAeiZX^Q>`u`@#(PbD)>T&JbH4EbxUD?nXC#_J{lF%Fx`fDA7_2r z8RX%{CHlt=va6?F4*WA2X!&EZCHJj8lRU#<Zu7?Pxh~A0$)HuCIc~2Yd`m!2gB4xZ z1qae)DC3W$^G6gDjQ1u<^#Z@vrww#L_{m1gdx!K<D+R+nrSt^wp`-c!-rN;+>YjMY zb4#5qZ=YD3C1K0Nqh*c}^~w}Y!j35Xdc03)KTaxGbx2qSA|m(XrPz{OkY5{H07la~ zN^<Y+RIRApRUeGwxyw<}DiE=EpgK86^AR#D`P75Kt>XxKT)7CC#TgaaaADugquY{p zkLx`wGvi}=w<5CGIGi4p*?!f1i-q|*H#&q3UXtOwC^{IY3u;hf?0GgXc_Q9c@+1TX zemE$tPdDV^p90~At=ay(4%uiwiHAnN3C&{j;|m1mjjZ_?!-WnFK4Bqic_!ua{d)=v z>$z0y<;r`f4s;2Izhu@=kPE7Q%Qkg*P^i(EM8`{8e5s@J<(LvV2vHq6U!}1334QZO z*`Mp=l5x3kpU!*ZTwUhP__&AKJfz|TvnZBdg<9#GF&oy`{+Om^|FB{S;pbzZ8A-9a z&X?m$<e_f}pB;IrrQW&hI=RfhAzgOpc$@M4Xc0G5vNn5S!Qeog2fdw(k$Wjyh+k=u z9l5~ooU#)i+}#BCCD+FM4QmHMsB4gfX;gqEy{O&3vn$ZWQ?2GsCxScHd!APcrMD$+ zGu2sv3-?s7G^~8XX)qe)%yHQ|ruX;*hRdp4^g7Cs_eb0*IGw_W{|bAmqw1hMW6aOT zm`Uy4f1bNi%$S>(^5N6vsnANN-a&=Kt3wwsfg8J5j$i`Ilb1bR_IDqpxGY99fBAY# zrt?8S3G`<9+MO@D4(BX)r|vk9iVzg+y0%;%z7(F!CNL68kz1cBxu?IzJ(}Mj%n|!T zjW%~f-k6eJ;X~=r$<cx>$nmb)WW}`;W8C+LCkyI?N3dlS1+U&Ow&-vN7-)FR(e}L; zUu7lomCxT$Ft)o~qOxbWw|Dm1U`ptE58}pzC)3lWUF0pi1g1;4Wg2&Et2L&W0hPIv zT775$>yzM7icG#C)%_*lIrK*DuXoGSl283}nid|u(Z#zqq_y@Y7%NxJo0$?$XcJ(f zVtWlG$$D602ysWBofx<A{bPC%%M@+PbODPY4{86qo9Bc<^iCw|nb_4`h2C>@{QX=| z>JK-ATn_cU>VVq&P9to@k`OUl`8SWf3=e!fw?3Ea?BH~kpBWO=No_)LvT9kVDA)bh zT9c9<(-Ye(d#N1oG?`8NafAIG>@PpbzcxRBFR0PJSL9v{(y)X^QD*PTqRqDgwgMwD zH{phsj2<qPBs83KT+4NFrtFnMe;bzH>}LKj3kCm;3}QVo{1Pkiu|VzA-xvtg#yz*Q z;eT~d)X}m<Vag3D=Q6w=mk}C}-I><MtMh(v%?^HVmW)n^=P4Gtmqg}Esty~Z2bBb? zG~=zEWd9oRTn{7=I`98`_!tLm6C}OTu*}dkE4!IVitBd0jO=fIwAn+m8`r7ep6it= zTZ@z%xNNV`D|pxaKFsd5p?sWqV2>z4FaaC%=d9#S9EKehKAb;9B(^Uw<w-;CXL#Jl zPYR6>YmI5+mj(=mxE^`9l>OL88_moUzk@k-UuZ9GUoPHzUl+W(C+`IIA^sX1nW|-J z4|_J^i!K#G#V=yFXiRyaSMg0-k6X;$F{&CHJ%*8(c`@Z(J+8{?<wb!kmaJLv*iC=s z`zs;m-#5qHgx`mmB5!RhFFv~H!Cd1eC0D-b1H1nD(mUK4qvh%;0XlS-q5FClB8OLP zdl`z@JZrd^%v#8&?{&Di9<dbj5TFGwx27w9on*S8+IVKv>L9j*Vw<_22ij4whFjc5 zC2<5%w`lDF5H282_bU<*rBA|d!n@;8JA^xmskk>0EYcFLGJ}uqF};i5KKx9y2xtPl z^s?!B?Cu+t_F3z`AYlUShUoHr1LdlWq3gUMX0%1My#_|K`C3}VMZ7HPHFz>f#yB*G z8|SyF<^~x$u8H)XTNG@Pgxr&)M{BJ$nr()q*@zLlsXp!L*?g7+rLb{Y-y!8>)Xbg; zUwgo4UAqA?cn-ly*@1jAZ&P?<QZp;Q#~5V}ZT|RiuP=|mFRt}I<11ET#Lk}`P|YzB zaS1Vks2ggAjHL1FZ)?-iBpmn|dTqcnqdtG#&XQ?DS7~)r$o)Fmg5E@=y$<kIh+x5+ zU3Ah|oxm2AH+liIbIAUZ({XvEJiPYh+Knmf3yS7Nt1tQoXi9ezjrdJ?Lvrz{yosI} zO2p9%;4u)oHS9ig^na*0j5c*F3{2jj4{Lp(RMda6;GnI@)_b3^Me8Z0vOhkIWeFi> zJJb3W&_x+y>fQI+<@Uif2_^3AUHof+*&K|Q$g}x#xB~N~Y`zw)Ij(XKmrWS_`9BBx z^+EcUv{cg9rk52~rZb-?noEkFFWPl?sigIb5^|^1;qL#tJQdISY+dFi9oojRBJV>D zHH2(JIW6HT>f2|3DlE-QD@<8bOVFX0t!q60^VmVa=O=S6dus-yLwq%WDic$f!2XH& zB5aTj{cN|7Hk%J1`PQ*Hds_HalX-+m8t-GlTlAR1itDDcD*&dd=ZgXf>A~jZ!a&gC zez?%UHw&{m14ci@JWT(I@HnCrxiMn(W@$47CY(qA*3qulJR|MF5!ZD76CkJ%vFZQ4 z?c9G}F@!IOB$m|{t{atOMlkf#Jdm>V_E%f8^9*)8F+9fzTvb8;cZKA;2!h|{epkX{ z;AW%9y=G_z{T#e>rRsvlr#$f=EY9(ivl~vFBmX(F;YKS_F8NDg$G$6g!rBaK8$@h; z!aT{Cm<XnvHAPiC{y>W=J$_oqZ?kYgEFC1l+3rVU$|`P{Mo<VRo&WW&sAD&0R2LXQ zb>iR?P?E2w$+Tg?!N;PGAMj2a`$%M~U{jD#S|eCE&gRijYqJ|Hja;Z!ofc*O_{m0? zkeh(r?`1^H=qmlqbdN)FuIKcgxIIyi1P{<shehsmXZdDqX{B&#(V-=ZYD52}S@MBh z;5puvCq{WgbsT4#AZl&?GmE!tZNBe)ZRU%_q+hy*`Cs_;79!H53vb~45~B`iIH8*} zU%pW1+H&MCWmo_rO8kEyxdoS1QckdWpW?nTXw~4U4ND21+NBl#%j#$-f~e7g^!~c` zpUbj9sH*kozqvm|8Jv7eYRa+zG8?daXU}Xu?<{hwI7DDpR&8bHKWDuKw~e%B(1~$# zQ{vuGH-l7XMhQ$L;k;suKHj+ReaQcwG>#H}Y}A8MIg+I7h-;#v4$~b!rQ*&(y7nlD zdKScww{`%#sNqDGDc~g`k~BW^5n9)V%+QG)*boMKDCX$vmwcL8Z!FvF_nNIEF`xMs z9<ljt+IRj@M}@ot;Vf)7eYpke3sm197Dq$V_b9X@incA0dV#YtxQ6V=O@BlY;dBc# zf^jd!C!FOokV|Li(OZa>6PY&q#P#D$uqGPnu;YT;Dj8lKNUj*yXSX9aEwAYV+86m( zxwy`f*xrrayY95H!cT!>p$|JdaH-CNPvYlIFRK)9w%PL91R!~J|CJPdEtqU;C+C}D z1Xm_l7?^FMDEMHdoX51iZTj>%{3#jH)tT0me`I|@)n<+P>Y|w<!Ho%4z`_aX7KBXg zOJmjQ>UL>bkY0R%Yok&Bs29O#EeS$jTJ-+LO*+U6Y)yeZVW__N3Y{sp^)9k%tNNyi z!`&Dbd}r3b`+weiHt&VYC0(&FrHG}ZZf1?MK&s!G=$ezg-x^4Vz6U_x#s7;OVqbm( zd%@i6=KKRDCQhie88^0aJg2gg*(<<sOUZp5To=v1(B#ID&f0aJ#0imfX{np#29;fP z%g&7<+h<+(`|a=g%Tb`3Ki)a`cW)MwXih5i)0kFTC9yC?0K9(EmDi8EYk%>0slu}B zBiH~BMt}SFZUgZ(cRj8=QvTZXR0QS(ffsyM_FQA^{%(xjoQPx?oe-Cpr9?DvlX<)? z5D$NrAWbhgW%En~CJCsX`pn|17fuPIo<{Q3yHv{lU4}rKmq(HHjF%8GUoKu6BUZVK zRuY3~3!qN+wYw@(i;<erd5uMH>Ll_bS@4@z$pVmLX%>Cotf@roDoKLrNVA9}RM|OL zw_?fBm&X|s)faS~jO~G~e+gKKIGMA}^fd98soQyoAMAYk)!nZiZ|L?kQ$swoDMlv% z$Z!7#f#`(GLB5h#cQd1@3Xaf+9UVXfPfp+MhI7U|Y@q(Ffu#SX!=>5&b}E$zieEjy zq(C$<uzC>TIw_5{J~U3l9?ez<QvP2PqCg)XUyeR`n{K*X1jfkD38@u_^o?UUOxH<b zu0(%Gc{hXke>BzLUWHa6l0|7)vlJ|cf#oH)*Rw8We2!`V+{l_8e3=$t?~7hXD>LG4 zjw%aDsBhW#X`(L+IHWG%YFJXAU87EE4e88v3ql~$(}hm`kAeomE^d2sgPn9}WT<<H z2FqI^dPw(ZZhdu@95F-nsO$93FPCUQga5O+sg%hGjlfFYND35vgcG8<nO*hzzV}W- z09%f<=WIkTBVdVtR4lklIJ=2uhT_-8=Kyk1Nr>^T&-!!kzL!gFvu$ms5TiY;fI$9M zXW%xcZ(93U%U!N9(52vYF@tKucIsAS9OZZJ1%NjFkPe_MfwcHX6JRw6Ha8Qlv5~bU zph18anZj4zzDMG$``KHJ`g4B%_<v#dR}-~-D8vjOPJt?^=pi1Qy>oA%ZH3H%iaqIT z)qgivB`llR@!FUNUEjFGbVNA50J_7s@jwc$Mx3}ud!i6|ar&gGibAB|znZMg9?y_> zluf{^x40xX|JHfP8VD~2Hd&Ez<=|f|k`h`eb`O4e9sC!j!@m5q1D(Om+sE7ik)=?A zGiO#meo@YmJU}_$^YO^i@_*Mekc2AGlP6n9FeaFA41h`PRn=Fil1Qx+cGrh?>F*r= zzsos}*(pcy|H%8o3VAcqhiMczFW&!j;vLaI!wSuTp8ECQL-!acNccG4)Sa|rf;B^u z&=$~?5Aq!~zrx!;y=ZA#1A6s;ulHxJ)~gkl3Z+LvQ{P^S0C`8PEo4uMY93qSCe#Pu zrc#2w0OR9-udI_69pL0Xe-VF?M1X<SLuc+TC}9h$&=oE}mlb5j|3eS&l4ZPps26r@ z$|`cRT!R4g3pe)e)4N!sS!Fxo6_oXW46yl^UB4i*q`KYi7yYUyuciR2OX?iHv_T8W zajoq`G=S*u#Q!UITWBQ+&Yw<Ba3-vJe6iBF!v@ZJ)XtpaMtoj_c|(gzI{qVv{j*v| zxZ3tV(xYcJ!rUk{(4As$r{_+sjU%qvxd7UvlUA^N#m2I@5qlU4qf>8p#&<sc=PlP= z;1ZG&Bh&(|rZ=RH)^c(}LfFoiSDd*WljCE2yMfZoeXfae>iS2h%2g$+P)2%6-6{n} z=4^92*q%4_$B#=zTKx6rG~U#VYn2%{CB2DA&iPj*l<a;u@zlm37h7XHe3YmMo>~A; zNxtHG@sPD8^c1t!H#D>T(se34@B4qD0tTH!^NMcbul^fS{PRa7A&m>4-iq^BMTu5> zwOAfoJ(>W)b$9<c_JyU0bS+xRx@zEd={XJxCu_rIylM{zTNX}v%x6r9dL+eR!rmAo zj=**Q6|@-#swaqbnxni;$v>p|=lLWdl+N9~`=6wYgt%f9Sp6!~H|53tm7I0SHKpws z{)FL;&sK7s=4KF{?x2dQBmeec>|LTPwq)TY4<Mm`eS_!8Q<$}6E>vyZ&*pHMMCu3) zz-KHsUs(OsUi<FKQ9H8L_@CtwkyY6`iNVNWE2&LD)2RE0OZSSBlIv_WV8kmEM^ncs z08KOhV~^r4vpgjb<@5c}yDeWs;BHdf0aTn2;@LaYn4$+sF)VG2(v{8cgdi9%$oa=; zXP0g4P^&L2u0Xu3Fq@G#gP;mo!oaOl<&9@oS^PO#I*zTTooP1sA^Ar@GhW-bVB9Ra z?zp*>p~3dqN^(<J5^CnVS|WYoICVH}n@fclv7ubWKN9`#6BE6UZc5#8EWNoK%pXrB zL_-aopY2R=R>~MUXrI+Xdal!vhA;hb)0P|c)Xz<S(@lJ5gY!QW7UG1oyHjPQwDP^Z zX`jspc`2j>e4))&Z_)Y(deykN@>iOggoE_#)-`?xDg=xg>Wn?4(aBIau%&vGhnS1# z6`ajKbN`P6n?s1Yx|$uJ3r_*UznM*X;gh9T#|Bq_=Jkyu<sSbB2(VlE_UsHDCw2K5 zC=t}u(48I|XC=|&oI)f6lkdsxy|`tY#pT7MO;bVOmwt$8-PxJOktU8gZk$Z=&?>8t zn{fn)yq)xy)S<hSK3cN6um=NYMFaczU)W8!rN<HM1wMDZ-d3M;yaW|MP{a~IOH~`k zccBXLUagShrvHb=;k9L?TKr_R$~G(lfWv$G71HW`rq`Cam+Gm#td;*;$ho#_X0$=4 ze=Gm16(e*4?AogDDWcuUU19m)Ta7KIPLyD7AP=0E)Y+y6Luuk1_B`H@psB^nYzBqd zpIbG0>pPzIAYq62WF{fw#r?kLJ9H$ezYW~|Z`+4CL(+xkCq*4vUHBPb!ayf#|Mf-- zS>W99nki>HKQ=qv_T9g)5UFEl`+&BTy!@7F;~PsQj2=q465#85_U=;WixaccJSy=E zi5U{C#Ie6wFC`-9O@8E)4+g9R;cNi8+6Q8s_V!!BQ*8?C^;km{m318><6nIDHsQ>_ z*{?4qz;@L+V=5Srl~0zLXlgW=>!XyD1P96atP$eHB@&M2R-Xw<+eA>%p|1p&19jJ? zG&6thR_ei~&7trJctwZmwd%KGtTQ$DTLsz?s%Q4jv}hTVt!>dIgo&34$rv?xWxO^R z(;-N6eN-C;C44@8yNg<0$D<^2`k05w+kO!cEK1P=EJ%q!aAvP>ybq=iRj#|abinV= z9cE7pD2J(+>qW=F`fE2no+wD%oL%M^L0rNX?zcIJj!rui(+^d8pMALVWN}l1-=8z= zWjF;?o3>bHd@{4W$wciiYt*z~2QQKD<2m}_Bi|~^Lg3X%lIOjcTgbNTU8sh<Ix8t{ zVXj`^A1UtFm)+Lu?aLC0@!^a__n}6o*K86H76TlkXUc9a$tSAQYMY#eL0i$HpLrh2 zbJu45Bn}Cy$-bj*L7t&+(c(cQ#ghnm)?Yo1nAbaEw!<1Az)k9ax7AK{j2_on{^c<D zO02Qp@z4IsA+e`?XrH-%vxfU?hT5+*B`dA7LLKB6WbMi#Psd%Y_?3g>$NA(LVDmoH zsXyCgM);t95_RArrg!)QisxtgDEa-VAWLwFfat|fO+NBR2Hxdt@|%1|1)c(z_5I*G zO9<}Qjqd|_{z~f*^cqn9rkH_?1<$XaRA0@84${M$93cBgJM^ex&;=6GJ?8k~{G>WR z2W1KmxZAv?^J7m=^c+JjMj}rr?>xqyN~wz>0qGi4-qx06Wz38I>JTmw&+pgxN?rsC zq@{;uPG!m1Du!DTj3bBI9X=yPOhRNTqC8tbd1J#y1e~jW#?R<GgIGu2$)vB<H!e_V z+eJ`7_^jv?3_v+pUhd|JkHkMwy^=Z6p>F@kr#*ib&XGOkmaxgwwzGR-b6{N%tNb|= zg8IWKpfCh~$zQnwGf|dz^dDX}dfrxMyrr=^)c>P=6K&w`Th7{-S40@zZXX;$4DfP7 z{rA8libok`5W&NpdDaP6ujFj*VcU=02Q@p665ICAnjD3g(cOm0szJ6Bs4E&S<#I1( z7SbZr#}#QPnpFTcnnirMxT2QO8lhR|0=WuzkldS5#T%a)g3kiC(Y5`fml0mbWcfux zs-=F;lX8<=<9lVF`yf0YCj>FFAKaed|HN(Ug0reS-&q#<`6iZ2>A_E;gGdYVODHR1 zHMu`T7q!MQy}Tg`yNt#K*ArRbm6XjhfMc5FI38aLN&0e8hNTV9nR>x_0?YM8HB&|= z@#2lx%||(_hy5pTzG3YAi#eEf>4PGly}avA{x71XpfC#X?s<sK?Jsj{-xLM!y4ovJ zO%c*qEYhosc=A|Rd$@aKEjq2Q#52F{QU}c#Bf0_yzF@B3W^ZwUla2avq?HuAaJY(u z;3(S%&qd0V5FnCgD6(YB@<v7JDNGDgol_l5tWpC4x#Qjv8e)5nJn5qH(m36e9N&sD zM)}54JkxcTyXYWzNheT`Q*%(r<y;WGiM|9zz@z__J*0hF5`sE8#=D<?%)9>VIHz0? zqVOwK$FiQ$D3#7K)yex*`fZq;{8L%nvE_I5VtIx>YgzM3H(^OZ_QT6}kA!=WuoH#{ z1sf7LiG#je)_T2~QaS{y;~2(%`b3k>#tgS-4SqR=XWPe0V?fC9WyoqKn;=iayTizv zmJp-_-VJ`>fGWVxCU70eKmULGmBd0iGK21a7*|V%&hVUx-fNxf_ij4Mse%(|#+jKI zFwyhVgFi7Dp4Yn!K``)N7(_<{{<-E|>H<NE1Vg>E76IdHwzN51?T4h^V1MDu)Ou%* zULP*tjUbg?qEwC@8lG3oy75w&{$yOE-V-awM1GqKtBHDvOjLvENp~!64xK$gOM7%= zy1r&Re@t27V5ebZdUYMOcgNFzs%dhguV=UZGf()vdpg&{w=Qa*Ju8AXqbVq0y)H>< zW=1EM0h5%Z;_ZewIVl*OA$odP^l6AX3ex2ZyQdQdK6-Ojr1_uan=s}C-bwkRx{Ykn zQ)1`p?IYEN6V5;#g6G-c^iFWOx5x8iQPr(hBx{8&jCfd+`9-3^Pcz1YaG@wKah=+0 ztv6KEJnQtUQ=_}(heGM>->Q`;x!+Qld$)y}uGa}NqnTlw2`^$0jrovzRZ<bMM<vkU zC7&!EOS^YYZ{Ss}XcUX9Y6s39S6`c2P@Dc&+MC|_oNU&DFJbQ%#N5w)3hDh?FvL@| zm!uF?0sz;U!D8<eH#wq@>OM;Wtv!0zDbMQ&Qg@gO_=vp!q45k$k{5cbSdn$jQ|*Li zk3m7N$5@k}c$S9R!;RW2tY8C*foH+Cj|RF#!p`y+Akzvs;+~9)oj6mY-3iL(=e)w4 zY62rWuhHE^){K91czsfQ9^MTcvgfHPN4dW~(KXZzR%QESEmmsFt>;SU#o#9cEYc?f zo#xVc@3D-dapPZKo~za=GNVb+9Zs%&tyNZ!Jb%A^DRr`FTlh?kt~R^SDY*`Kq|SK# zE7yj)lN`8L1Bw|iC%$*09b6*CiDKE0QW6kmrw6;bBY2^#gtr6gw~g$q(~TNViP1Pi z)(|2XmAx<5lsW8MK6K6#%~m6l{@rPzA~t6(zk(aT#%w;Nk#e4JN{rbV;?r{)9SsL4 z&vLiBaN6_Ktg&aDiN27pSXJmt`?YpIanBGKJzx0gFvYWZJH17{o9$WAo?`WsJ!T)z zdI{LE<-XK-Xy0sFt**Gw4e&=ne?pf}`~E=uUKHM&3V%Fptp4t_DsuwMZs~WY`HJ{e zE%@_fV&hsvSMXVpo0630*_B$$m;YjAo;EtY$K_Px44sn@O+FbpvvA%bcz!@_!<{xN zvXD{u><n9xy1q`YC&f!!Q$L&U_8+)&6Ex2ILKyZh^v8wHtRxB+42WgG6k(_-U%_MY zih1rP!ojy!HwmtO?L}TfU&P!n*Q{dUH<aeqYzqb?!AgqpTAmXF9#oO*!u2h0u63QR z#}29{(?{YCZ|~kREqw62Vt}a|x@M+wi$Is=l_#7XlE^9^n!IggI<%eSS2dl>NKcUg zyAzwELbMuqD<P-<tint@6pqUbPgO2F?CCnCeKzJaL~%`{@SGTb<AeEB^-hw`x<K_p zW6$e=+U*<7bR^Lrvu*V=rooN;6iLkj+CIa0bEN^hW0$<B6w@AS<cx78>jyULGi_!j zRZTPeENyA#hY-6Re!s4^w$gq05~LxCqfMn9)Ar=lJH|1N+CD4%NQI#oHk`!kA0!!R zC%){NFk_BoIg^|#_H&E5O2RZMOvH>P%ph4NAw$qdqU)@GdSeQk<k1h+gzPac7JngL zQG(Aw$oEBIUp|@+=tqA&PIAD(Gp%=SLg6tx23t61Q~aTQZHc<*nJ_C2E1%N3H{*Bf zftbycxKlzGw@N?oC#<P%XqAWe&$>~{mHcQC6*DYX(T!wTGSOB5*p*}<I2_y`2+*=T zf^vhDS|xlKVg$Z-mZv8G#I}oy3&opB{><K~k~r`lyo}`6_L*nGw4BerFjSe&_N1*m zptvuh)X9}`fI4@P;L43>Y*Gl@zgvz8o6oWAT0E;C3qVXg!;)kiS-Q}jbeD8MgQsgc z9oE_DrE)zo@A~f3-&^R;JLDV{t*x1x*d^Vckeye<w?LaSanys#!Fl3XcyAOvyid^j z^keL-p-{O`DPuBDcdlTG3F1M1JIQ|peLn3wql^Xq&U%1Y`UxTL?aV1N^ANkGh0hwA zg`J;iv_Ebec&(bJ9mmY;M6oO-eFPhcs3b>4mClUV*`*AF59h{9yiL~UFG(rJQ}die zsrqYVb#bzk1<r^wMMde>_hdB)XwaF0i(VS<8*JHBOoKk&DQt<k`|;c33%Hb=kGD8) zslJ$NFb##0Kis7W>&H|WTf~Q4WM94W8!Y@Eu&ijA3eUzoY}zRM607M91+?X>>+7bn zvo9Rhna#G=%~f3}3Fz!~d_^-}(8`UPfBYa;(-Eo-@cDM5c#n~Nf%4C)&tTR0UP{?h z?%e9HCRa^&!)a%ZP&SL|!;dm4<r_WOwfOT+b%2Vr?Mzx)6@j5LCvUFv%*y~_rtaK{ z8R+OMS{UrCw9sefL_y`F51M$X<3!%UQabep?|wWKaQtZ?l5ucnol5FAHu09vJQ45N z#iEC4SOwMAg_sKCr1avDxbwL&o#F->tnXiZRw32H#iHKQm}zb8Ps3U~!?Q+<0-VCY z-=As7eSovr{KTyYixewDXY!G{<35#RJ#?3_mKv9rM7+Bgl7j|jdQ6_e`)Rs_b72GF zh*YbW8SZ}aWExG9A|p5*Y*en{7e&9RJ*LlK<P7<Yt?%3RVvZG?DF0{GISL`V#f>tx z8)oRZ5;kLJ$hW9N%akrrekTLZ#j>%@T6dj)|H9I_`~+G<;Y65TUn7w{p`wnl3Q*~6 zh|n<}?r7Hc4WC<*k+37eQLs$ewSr%v?>xXC8HA2KQWa9N*QQi|7}`LymCzsn+16_f zG4@MXgq8pz#)rprKD{IqzdJ05y4>`Qa?1lsO`U_c(-B{iNxW5e9?K-eJD{6utW_tt z72CkC{j&iVp~%!k_3MdAyC@TQxhZY{a&z^y(^xR><k)h70!Bx5k5Sw2Q*?MF1;BRc z64fPB9^2yXsMV;ndmi4fx%+A?O!r}EEqp7iflvFeZVq`|1sx@7*Q}{C$4u|!VyQ7d zFXC+&MH`x$LD8Wtl)^(<s_8#5!&-6<?HvNRyR}tAPv*pSbI_IRUBi4Sj`I`H9b6=L z>UkfvvDIg7)2b{v5DRAkJ|z`gz-^(GC%ra8-yEmruXc)fdqBU6It~+26UA*{Kx&|V zJndH%IYB*aH)T8R-Z6yJ0=QaMmN44$S7uDW@>@{qb_YCOsUdd4EqtycQQDAQ1+I}Z zYq6=p;w}_^RLgfCc8V)N9pSVH9+XU${Q7q8z0?6pe4Y+`i|Nu_NqVfhd99b5aavoi z63f~7Me{rzj!=$%%EtnJ6vx^^mL~BjWO_WM(X?9W)XkS7I^P3?rQoi>z>HQ)qK!?O z*lR}YGxTG;yz1N$uO;n?ykGN6##Dp~yI7X7z}Rb*A0v42rG3UFp;T(xCX8V+t9)hC zy75Yf*kgv^oi+GZ$C{#<W*xU1GD%AQmuv`h3AeYqOm+ACDCSfDyn97M+2YC*VoZ7d zWfp6F6UKtj;o5JVA)35AhQHsgl1F$smAou0Kk|uJpmSn~IysJ7xRsOjjo!J%vvl)G zzv1w1r<|N{Ud}KO`2?D)ers5>Dki6@M0U*PyBB!*H*$SUQq}uNn*qJq&Uv;cSQTSR zzXM3wi1O>Nl!zE9oQMKTs<BC+g`%EUzR)SH{vX*fRp7Ej%Y!4|1BF4}MClZj<Lv2C zFa4D+Pp$)BQMpzh%7Uk`gxWM{MNAJjzr_zf4R~cfkG6|}#m9C(@UMF6s#_3#6&IsV zkJGRG(#@PM=CwW9pIo6&wILJQV|)CyNXj?X`v?1QDxbd|;O13y#^e`yDONA|)agku z0Dz_fEJT@hmm5%5`J9eeE0Gm|X&NIcBE<L~)Re%&tml^6OpWQHVs@h+@+5{WQYJ^6 ztvnof<EuW5Qe$~OwU@#9>c{GfH}AD*-n@X?7*|iiUYv>5r1g$7;RgKKupRJnrLy1i zo|K3ijhUwRwGoQu|Bton42vpR+I=RG6)~WqBt?wmq@*DVf`F1i5ET&vhSfETJu@g# zC71(ZSaVu)1|zs;cU2T&$T=%f<a~7o!wd}Q?){$Y{jr>?x2vnGtE#)Ydn&A^7fnpQ zziq}!?fzFnEE>kq(|Xli8Mu1%#T&B?*d{|(JlLqR{7%lA<cQK0dny-N9@359#)#9g zX<MCzeKpR#m-^r+p&yX{Y}}USQROq`tKQCfx5L+WvdMf1wZCWcAIZg)EF50VdJsU) z(Q_)@-J);PX78B>k7gCtyp@??W+~-nHE=L}v;BemU2hMx^5(YgI(_uU6c)0owEm2h z7uH>fQ_n0@|Fik@InC=@dm1$}Xy<35)@kJ8&@u1ep}hRR(rgrOJxu<zJEvEg`IkSJ zc-%;hiyUxt|5mqYZ^I3HH=4K6a?AZp4XZRQYx~nqP6}#N&uxB%m+oBR_Ub`SqI+Av zZ4Dz|T?n1)`0%Z4Mhx-Kmcc7Duf;l^AAV-6*(c4^QOg5bLk#gY>A0$A<Ql@d>izH` zd^vs%u1}30edqeqkTU*|zN%4sw@IVeKZpYXs<=%3w}d2#H!s4nz1Ftt1P_Gs>gy7o zTi=WhF4S6RJhGalne^`7nrrr!e#{q7v>WE(xzYhnIST2YMkv%IjI3PW>Upev@$TE& z7GK5<L$@-wTusDb(m@yd4osKO46xOzuU8#)VcnurVN;GM_IY}hu(c0d!F=>w`$l$( zlk9ayi+0kCM*TPRph4KT@yd1LcY1Sc)z*U4#tP=Sngb<PCr=ExF6nEBHC9K>ABLXn zil_){)}~-Ts*d{IcSq6Rfg5Di3s`Q(`PXL`&SJY87bq8|I&a)?R@a-Ewt5YIi9&aB z1NBsuvR~<-n2li<C)JwRzFjoKb?FU7e5p4!TrF?9TK1|Qs-Js3YMR--S##eO{k?@J ztA2>(rr&lwDZ_pCLauS&fpto1UIUfB9QAb#f7Wj?OO~D5>$rl48OidP-2NolF4VAD zci6e&K0bY;pS;3u8fjX)?q`8!>jw0e+u&0AXXVF5sx}$NV7RVUPmd@pIv?dSLiv<* zntl7+oxc<Fil+>hy#CagkH-Gvyob4lgh79Q{px7WQZyw>$vo6UYTA(@Ys{eAfrXsF z^2;;dhi1s@K|m?&f4X8xY*m`v=djk0X|p76CO`VHGLx0^XCOM+$F1NYdO>D~+)kRO zca`fU)%c-dq^<FS8FD<I1w$?-H=LTJx>@5~HFK2-04Ensc|CS&R>O-+OGm5GGj<aH z$f>N5Q?0r-e9^-q=k~sq>j%xzX3P2<Pb+6;TqH_&9P#9q<lw&^?H}yAB3*ul{0WB7 zST&!3*vxS^Rt^KeoMNjJi@a9^SbW(ZPXxm+rUW{@ZB^P?`Skt+-21`v_32Ht`=<`3 zJ{&>Jc?{iNYw`Cfg?}FQuW2D{mn@ai*%Nd>ykOI^KG#<6mvH1T1H9KRQ4dCgbn*3s zSzA<p@7s99-O*OFZ|{@pL59r_@bC2cTj-q;lAdrp^m+D{@>>j54=J7bLkz5+9)Iv* zC#|H^>e1hJh50JVegnT8PJdNap*lJEJ}Qr#zNYu6p)Sr1A#GaW1@|VrIn~5_EtlcS z_zQkf&8#%-KuKWaUrnb*b4)H}R%;ook&0WqM2k=;R>;_)r4BdVRUH@4dAn$i8JerE zuYvo#Jw5zz_~<>Q!TB@7=2;u3%u<*4*@SD3B+8CD(0V~3^YhNvPHCHlFwXeDkS!`v z@bRP_;J6)JMr7P99bWL~sjMsd;jFppVf14v%b&h9>F1|*2%tEp$>qkX70e)3%Ajm~ z;kP;PQ>WuBO;$^t)47y+?U|~Q$?(m}%g*@iJ-e*W-w#vGta14JhAeF_o52oQXx_wW zYqTH9uQ<9!e~E6vusZipuc!f*ifMt$PYfcbDdA@)Eoh&UR}MO1u{*>|YKUCKo4=>; zbV{@DJ+s<4BmH1fv_y2%n(L=`F3~>BxhR*iu=x@{aZ9^i44ChL4Og$Bpp7#QNwbxh zH%jiHu^z5!p4`-1Xt$fj;$<?s52(#giC=Z{*)_(s@D&Gc_m{8R<MaMY)}Xm^axRb2 zyl2XM^M0Gdl028`)t!6WQc^<mvEdjl8M)X(4y#{pS(CZ0gs*yi$(S*%vu-bm-=xfl z(w58oL*mAyT+Nq`59sq>E^bPme{@k~zl7~ztxBf5_vUR_F!99O2fd5`&Nhj>hn~D# z-{=-31-~NXc!IG;Wqq`V)R8Pt+8d{|0R#VdoWPr<MWhxZcH{JEqmN7uy1(eY?#40K zPq)_d<JDj3<GfjxswyQR`cuEChL2dEgEA~PO;>yYkA=$S-U?1qpP%B%t&iMKpXRNi z85*udoZr}oem<R5yHu*Op4;12vwv^dn%}246m5uCpK6567B8Ez?rrTt>y*={K&kKx zKnvvKL(y(uT6{Vh`Dyf>p<Cidb6z?HJ=a>MHCEk2s`-Ka`H%TihglTdo2GC_Bg5FN z@pn^?iik;*2CFg;FF=>>ogL(?&^Bh59ZZ4{v|!Y^oxX<Wyjhn|qTdGLXE!eQ`b%Z? zfD=ca{nNDJ8skF}|CoZwn_-24Q$pI_^oh>tyU)YSVQuoOup;lJ0=$NMXRl498|W$} zlpEJAopVvCE$%?tc4DUu=V>C2V+9?U_m}s5$<S>n&x)dJeBwL+Zm=Yw`dV>Ex&NfL zvFOge?9?x#|Cqu#z5{IxFx_;x(pN7Qj3l#AO_ur4{?F-awNpN@*nP4u%Kf!)y#pD% zXvBb%43vKrEy<1d9iH~aAb3Z{wt!{7)is|=KXG=Wm9)bnw0Oyqt7p#48vp1<*z5uO zoXt)xowqp<-D0FH*@RV7iPEMi?lMKaEo5Hr_xGe}>A!Q2wOa2vNRl4;<Ql_g?G}!F zQjR>ZHLjR$c#O`C9y~mHt87a7-udeX*sqMPq>S4rwf}13lmfw*K^GN+ew$jB;Oeo? z{v?CcStFG;;G)k^bY=(MV^ylRBhBVuQjEkqiz6lFiHp=64+o>)OX6<z8rJ4~WZ}b_ z{G;b0X&+^{p<YVptqjT?MNf%3l`VOrX5~QjtmWsTtyNvdEq`Xjh}!QI<S8{xJz&zy zNB4R6vkbGnx7|dJ>KgQ8L&KlWFTB1ZI6s7|8vbPHoj}>YjA`cs(cm|;E?<$wlmj=b zl|8QTgjO;4*$8=G_t>(jg>4m&GfS;bPC|_}g^JKs2l#nZ#^OQ4qyLc&$~1iZC|$QK z$Jy=v^MFTxjyyISJ?U3^R8cOCc3Q!0SjsS|4GFxv4%X?D?uQJ&cI$+5$V<nEv*vDj zt>O4w#^F6GMJd;x9T<K7-PnD5q!ODqg;lI}p}&ZDh2O&bJRd^enlReR<E%oE*TofH zQdjGUg=a_4`aAZI{vbyAilNiqwKl(c6>1$FtUed~+4$vnz`e(>uI);R=5J5c_-$+> z?Y_aEea@v<lEagRPqjXIhGX7jDfjyCkasig?xvyT+tOM$8?%gVW!44KAm{84addO_ zrSg;8;u(oX`2CDoBwMTTx*`<=8aJwjTgf+a<x>aY4SzKqy_-C7`imW^7m|yg9e-fI z4J)yOy`}1#@~5tQY?E(1tMOp+NvA|VS1pjsv}AXr?%gXZt-uGREsrw%yv3sBv=MS@ z%{8T`96RdC%~Ix;Hf0rT@4M7x#Q6ukPZ_B0<OWlguu)?5nU>aP!LLRD%=kG^CKgT{ zmUwHIYV3aU+3woD_q1#{clNW`Rwo%ZYSu`fIQsle(}pHFpXaMCObTk~dv%4%1pD5_ z{*=9+D=9zw+{s{aGrYcasU*(V%3^aPmkJ^MU&SS?2b`y~Ld#Ophmg=a`r%1#?HNn) zA-TK3>Yt1Lkhi>)d1ivD(P}qx-;jezc5TbdAN_IbP53?!SN3SuVm$5K?+1+!-CtBS zm>9fy5hM64OCL`A8=;ui*A)jU-$<yo-gCKe@_E?2B_F016|+t%1Xn-!1LX`zeRSwx z$?jcMiH@;{WpmS_UJjL+8M@-2and5nZWT@VlA%iI@(DCp7n38lt152{)VSK@c<lU1 zn0F*@DZH{>U2%tse!j;Lli&!ZPus(g18;7>jd}N3VRGbQ*_76|-lU53hTD#XA;HuP zHTXRL4IttRN;-%YWXswZv%-Q~uSw4Jl9DxmACbA%i_`zY@tarwIZT|9SmoT-&rdQu zXU*#;8qp)Hrb42&V43dmlebFxgK+oG9OaDY#ki|=3t8!+z6~ee+|hzG+J5V6X6fa& zoiEs-+vGnajtR;)&X)@Rd)Ct@O?@|gE|ksPt7{xDW6?6pco=Ns=Fh0+=*VYOvx0A- zWhdvP$zto1CpMmscC~JZdl&S&>gn$jH)yVx{F7@r-{4}d-VRlEzH#-?>HJwwPaW;M zsj2V;Dw(!UCA#s(P4x-8RtDwJbSwus6ugntx!wC9F)(44msIjf$FmAP?A%xEj7=j7 zcMR=k-<##!W?yZ!zUop)@qODvW~0C*7`3Vt&M<tl>3AIFtcow68^D)I*_C?OlbgJh zJ`as3_YRjZ-7uQ-`Jb8X8XC`*F!8=!S!BL(Y{K(TZ42Kt+ZIfCG&-%cDT5ia&v`aA zGZ)a)>TV(314?egSn-SdKf4m;IRu}-p}e8oSLV~Yia&-wG%6mT`ui$f$6<@cy}8mh zHk>AR$Mn|QC)Y>5T<P)*JyX`_O)FcLy!{C!(Ph_BjkHV+qQcaV>Bb7ewtux>Atj2o zB#pMRq1R@w_j)K-_nOc-$(UAyq~n`6+0=dt<UdtT4DF{m7ab}an?}IqwzHYftdz&+ zb9ZOTq{y;uv#-pb@pfF3&9cuf2ktyqFb`PqVs*Xg8i`7myQ)$AsO=iJ-aKhtb#Td^ zQ^W$*9p%Gv9Kwga9%FVY2EUdJ)t1>@P(m9?kD9n(J+tz9#UeNT3Z(;gTx$j)n>Muz zhA(s&3rEawyT7RNbj79Rjjjrt-VT?`Ee|U^bi<o+CASsRv|8ueN3(Z=EGbLkqq07q zU6IoE&O0i1Q|3YS-ZSR^qdN0Q&{L(fJANJ!A1dA?&!5vY$zW2FA=dkCSmgEWpfkf> zJLS)*pR)*sRG^?p;)Q)$@7>O^s)y>6w1Z0a^_F=M{^fY@%56pY=wMJ3zb*51#f^9S z`fhq097(IuR0&(UQvXasxnZ6E`qP>>U&@v4lnGil@di;ciXJL$y6Bq9=%d>+<--3# zpGa8d8L|fFdMhtq0Ov3IeU2h7x*8~hB!lZ;-W>zO6M1gz)ur%AcNl$jfA%1D(y?&? z1b=$F<}-9IKrY2Sc3&0BPgCW`?9U0EeD=}>{}F??JQ~cVUz=(&$GAYU=|uDCqp3^A zr%yvVO2p*R1~+%;;Sp9l)cA|@9S&ULpJ16}5hH0A_xi+bMbZkJ(m|1<Cs@GGi560( zVYDhLmOFT3&{NjMjkGcJ(80?l)NM?%mrB}r%FaH_CihLRs5Ni#xjd!1ztK#z^n3^k z>8}dyM!mRcH}Ab!elg9*ZhhrI=~J?*Y6Cs7)RHk08?G7=OFV*9?=SKqii1x|FW&Z2 zva}C1=e4Aealg#Has!usqJ7%kG{d^APjKbU*@@Ybp|4wxH#h7^@MEDmr`XSaZLG!w z1@`5^#M#mG8%l2Bz-?oI7CdJKCvhvKxzIzmmbzs(l;oQivhQD_2km%?(-t*PZQGiD zCa0n}__)&IQqNYl>RD?2_5>NMF-kG-w{yCD#Db>XXJym+x3W{N9BA9MzJks<wIgz% zIm*y#R|+FI0d_0L=;FX=`?=>euw3Ejb?4XVhxfHyVJ`p}c=bS9G3=tREVbd(thL=g zG$VC<#z5(~%A=|NiYanr?Ed2YzuQ$5hs+tdxZ%Z^9f@0JU09_b-Y>Neck<}9FZm<; zfUZZ=7ay$7GCcS3h~vXx)yU>|@<HKx^2<*tN^&4DUcTCN{TjXRrmVt^wBEPsWqym+ z7x*Thl8ceFrFQEtk36P_h-DLM{Z;NJrw8gBp=*u`mu*8S?5O=YH5UUbihE5qh)L4J zCk}Yua?)C6Wwh|&^ZYBvd}xXT7<cNH604t*(+@i4``>R=!2v50)X66;t+!w2Qjb#d z|5SBgKUkC>HkEeO1iZ)@X`RBq<~R<XRv~cM%F?nQ+=BA5aq)`PQmUCOb_rQ?b63BX z^_eqL$E1CEYE_qSoVKN1W^41P<PogJ>kcm2x0Uedbt^w`>Oa@BC_|UHY-5;yFlDAT z%C5epn!*a|-=ea<&tik!xcR}%R1S)rZfvtNbN-hPsUrp#J@O=;U9V>;TyPC358<kZ zS5H#alAbpRhs5wR!8^a0eP_j&BHd%HGq)?dE}x>zQw_hd#x<JXARlq5Voli2{rhI$ z8T0)5`GIO}fg=`<aL6~le7fS=6XrQ5`W*v2;ktC~<fcI<(Vh#-n|0fkIIT5&m3x%b zO3OEXzAn5*E_#cG>lwM+Q)4!3E=kqN-XpcUIjm*YNjY{UGirQ}T;`fP6Qf5&Us3DV zqNE_7y4rs+%?twFmz$M02Un)$z8q@vbnx<{OZBb#S*|yqqm4t1B<oMoB<`S#CkAK! z-g{KN>;B_4rf+Ne&iPa}F*Cnp6U`>b|8w>#0|U#$p-UgN+y1Rq_Lk=@cP$@XbDpm) z*n}7dZNIR5s^i71y+XWLK~$&Mwb!hW)c$xbVo2(Vvm?WUcMw~fhnkI!dGq{nPQ{&3 zCpJ#Iy?0vKPDtT1@=H=LtR`lz^+%z19oUvi><8;DHe~m<m^Gkf)4;jY+D`3PVMkjM z%1+V5kR8sehlinUa{}5e>klOaQgI)CAmW;4YCwN<Mh-8hhZk7VQ)E__+O^O1O5pz) zsIq)iJ$=o~$l3ksUhZ81Gqr$sQ10V1*O6AuS6x}2Hd<@sXD##pp5HVTUO7pFB})|w zhnm&viy4+u2eU3`1uVaN<BQJDn)Z8V@>e`PTp#5!Sb2EO2mYLUZ8sDg`^r30O53#~ zAg<49{e(S_u2Ac3j?{<M^%q8CU8A%!wB`)-Nu9KLPTOqTSKjish%t4Vj|x`UDHW$? z1s`1O@BnRAW1agTL%G|K^-q)A@?QmcF^RP^(8Y}Djc+wSd9E3mS!p&l$}Gai|9103 ze%iAV*Ig3QcU;$;-IIF#(fz#miv(4aKly&*iHs2achq`rL1gH({<ww}+?RWEAzGb4 z4wzcVzpL2d+h_X7;u}#aOA@{FU3X6WQmia-X~OBlhYytXn+XZ~$kETQFBo;L`p<>V zvlT$QPt0>AXft*!WKWoTEaM)F&3}KPB1e;W`&v`Ay;<|N!ur3=1|;RLzgvNPV6oL} z@2Yq63nO=!?D}g2BrW$(OUJbYBAt`WhuXJ7k>Bs*wq`rUwoPBsuwqH87XOk&+8})V z6Vl4v1tmNM`c>IP+j$yTUt7gVvW<6CL$GmiZQQBxYY049YQ*}O0jnRQ^0%iVhZ^%G zUY^bxzvQES^Gbd6`S0qF>CW|&+D3gG=zej=o!I!{Q^CpTYYoLyLU&PXw8$`Ia$8aL z;Rbi5k$%lf^d2R6gN1y4qMkbF&DG|XGZq@{PwG-O9lyH%Y=exKRU&ky_I~t%6Yusk zCO*B~u?V&JBU45mGGCur^Jy#Zz<^rz2`}2J-LS62J$d@2^sB4R3{9J-B>CRS^!!~L z%e>n;N{Y*D7i8~>NJu2yJd#(v^GHm%b}7BEZ%48Mv0;thxl4LF8H-TDCjX%H{hA5S zpIU#}_xj_zyF(Y|UkUk4jI2AFe$PZL`nl`sMSCr2Q`zOL#Sc|T>ycj!ml_vLue;!W zJ`fKy$dMa)ff#7le$*i$Rg0+m7_e?q+dFwn=Bi45&WZwVBrMJsqB#M2lJgHJ2-f<L zp{%Y~+Qd1f$cE>o7Zr>fcK2*srPIDYnsdxYgwH?VQh9!+E1Le#E)C_%h)-uXT5C3C z=`7MZjNzxrdr6*H;63pzD|F8mhla%FU2P8t_F8RZIrM61o~Gj;c9;9SyXv|Bw$i(E z8=gK$uUpsh=0(7V%+|I^ZG&>}xP*q^SmgA4z`n$xC|GSaJ;h}4!#`@0wtW0;=<&e5 zsSR%xt~M0TSxSth>pVFSnqbCCi)m|+ikiOm?wGnc0d30)vMu%uXzMlAb~S5pv4(fj z>YUi~)HYJ%`P|IeT3Gqn8%F#cw0NC)Wq7HITU~p<b^PSmEp~Yy|6Wm5)BMLR{IsO$ zNNI519hZ#tvGL1Sy@X9(c8mjTB(ccbYivf|9M`f(YWw$`<y;8;{DHJ}^$V!^Q|u`3 zo9a95qK&+z-ee+eRCss}n1ADaSGvr>4cTiJ?zu2@s;wW3y(IUOlefJ3M9pyhJAExb z@0+ECmfuv%FtdP_Tx{Fyr1oBZVF9%KIb&MfM%K;YNthmx+49Faqwu7Eq}eWq!%+XD z(<k&HZfpLzN9suPrpLa~r9Scu(~UHna9Or?y=B`FkG3ZLb<=(Rl=x^DzNGa`d*O;x znfLZ^jqRYQvfO%wa&t8($%ShWA1)PCJA0z_$jg5A9SIJeHBzT|BW(}A$@kM-=}`$2 z)c0I2JDY!E`jt`PFMB<)Y`EjuwsyqS{OA38FTeY6rRosV6QN7X20PH_DxnAMe{1_% zxh%W5fSOOCsB#_Ftt^Funa2r_aD$=CEo%+#SE`d+qW6DEpVa1Cc*muAnA!GE?>;?! zu10N>j&`}R^|p3x;5#Zs4nc#j^g@}QXw68SmcNf0d}iT_VQ%gJJU&N0?HxDg`qBr= zPZV3^YL_-~vM%2<8#lps<+;A?1AE8SR;@GEa-RE1WlP+^G>*R37pXTFFKMkfcwamD zWpaZey;09?lgwKu<ZFa8ifbCw*B9Q{w7i%6fU2~7cYbp+e}H0D#_!jo=Jqv%UCaZu zd0&j4`1hWxK8(elvgEx=>6m+)6&=RZE#=Qjk~Z!)kiA~_SO7DF13jETU;ejO`|kIQ z``Rx2OPf9OpR+(mjFnF`ACO6^)Mj_3N?WAv@W0I#UD(E^b|arXY9js5vaaMv?}gv_ ziEUf2Y1eN2q{;sJ=}caWda4PpcR_RiHNWlCn)#mL)z;6u4}IkzJsdZP{Vq4(>*<t_ zRVjf=#edOx4f`vYs-Jg<G>{jVR;^pZw+GHNk<YHbrF(8pmHoLRCF$eda{zBv_3g(8 zhhB40)D5GJYd_&|;qIA<XZE>E4Prl(#WTsdsq1%{*`0A{3*oATOM}`?HqvJ0peKP? zb}-s^>&lu}?yWTC$+4E<t!EV08?8Fmcf_572Vh8>IkIX{$IxwV(oEd4N>Fpi>^1uf zxmpS;TANPN4lhFX3FLGbxTc1r!2xTv#xzR873jZL+?o9#dD_v~okrpLcU*RQSlHFZ z-d0l7ilE@wf3B~sp;FMk*LUHl{WlaOW4W}qGC?~eQLC2Aa}=7ezT|0>&6gEQ&75m> zvCGlbnCWLxP=$B6!oIO)nNmrGe@2*n`MdgaNx~9(rg3xrV+U6271@J*8|$CkQ<i>` zsw5v5h`#iV+p+Og)iT+Xc@Kw-+|z6lx^0_O)P7?^qy0lI{Dkdxi8~tiQ4XexKWs(m z<DmhU5*93f4)MEB>bUi?s!y0`iEYYj$;=&Igxhb9HnDAMl-DVb9<lz!^b7?P){g#b zmg(&swfOH9o8Gjy9r@N%+7^{^zc-)CQh%Gx(2I(rX3ibOZ2Qq;dSB0WmWQfE734}1 z%<*rSmF5LQB~@MxP_SE8(c3;@eHH5s*8Hcb#jyF^m1ku)z=^{w+9};Tak+8QQSwmy zjNo+Sa;;fj@}AfEcQL83PsDG{_5XZ&W@<JoXt&ML$c2$!HsRacrg=}^b38R7>2}<O zxpm+qG{VnD?N3p#_S<q>$!U!0Jt+CPdC1;wcC>EaxHk6Lpk!C&jl{V(;cxn;NX;U4 ze>vQH*_wh;Y$kKlL+y3hjj$7jW18Zawx_S(+Hkf1n&#OzhrsaeIGD6S!gR(7Gly5^ zZx;Q1caN$}#%{u6e`}=H%lOO5FD!kc`R^Yz9<41*KQ-mWyx|MX+hj{kme5ibn^d28 z8D<((GA=14ykYelEb+|I^h1m}JdOH#|NaW90O1N_>|R1#+VJPbaPuqU99O;GuVV8? z79X7X;=z`rqaPSol=`jsq78fMjWgZ6YD@0<j5^Sgu<k(BY(;i#-_5+md%RkQC!aX3 zagJ;tX=hGfc%F5&`Q0Ro))kZ50{dEKuQ^;(Y<I<ad%P#zM5p=SW?i|^E$oVvSUxvI zWu_K0q-yR#waoojmnff_^8ABDdW`u_?fO{#&uyawj_8O+c-+awR)-g*$~}Ip>XdPU zaH}L=+x1R7wRX?vFD$3F%=S@ZTC>z8PCCVpliOJJ_*xXd@Q&-t{$7=L)+S8fd#A+p z<)gd2eL7DyEyFJE`)AJMyEoKgp|U^3q~KMrKSP7*KHBn9=bBIJJPDieRKfJ~<LAAC zx8G5X;WsPgdw<mJ?Umnjrdg^{F|=Xb>ac)6d!LUwrG&#Zj|Q&Pw=eCZ5k9f_+=geC z4TIJ%m@{H*vf@(S+P$&MgXE__V1Af?WnD)n;0HkZtylk@)Kq<(5l!T_KX?j1ZhBUA zkEPW0=Ipy0%JG+d#o@QE&iD07yZ?MQV_Wmmdm!<!{Pc6T&v=HB&RbfS+Q5;Bnf&95 zo7GiR9@<%<2hYR*x@#Dl`fwX9e`V?OwWfQ2CnoHun3)${8?Rw;^AYgdxQ1UJf2wA? z-L8Os2m8QrjFFAWtMf_<xi(vy$3L4UA2PXpfxN>ovt}tXuWhKZrcFzr@esGR>GE~^ znd7Y&%H?`LNJqWKjo8DS)RsTs;j_h0HtVRgw|?aRDX(&Oro!mDk{B>c)&mte-tq-C z<6^ySHpjcuQ!+oFlu@S1WuJhfDZ_4OE?VI0$++#g-_oS|>5bd{1YSjdWccpOO%3nP z*J{Vxz`2*&cXN#S-tR(2y_=w?l}OVHuhX3Tk-ac)P_dfR+6+n^N%@-1S`mIj{V!fS z-0Qcfy)fBtyT?k*h`T-Wtv4KIx|s$<_wwJyACarR5LP!fL$`h=>i5~@cCN<Mb+;zL zfhoyez0*0F7P&3A{hiXSmE$ex1J^Dz{or<$Yiqq?;zhQ5!U;Gkv~o*i0ekt&)AAdM zcRMTgOV)<~O8BZfXLasQPrRC2e3LrZ7haHO5+AU2bF0M#{`OaARb4Yqf?<v?;zss) zctuk85OpAFBj8jYEaZRra(V1+88~tTCzfoNEs9-t!7=X3-8jXPJ`bl;hk%xv4UvdZ z9Cv!YXVc?pvQ1xf3*l!?{&E>zt=KD1V|bunG=C(t7+92N;&wCCQ2GF8ozb}8RvlWt zP;CRWX@0zUW?bza!HKZi(a^zO$^#EsHfCKfHH=5E2BHT!N$Wq$M&GXxoWQDIJfyUc z^D=4O6|LPUkv*FJB8$Fz$8*&^N2y-rK(Aihp%c5kvra5ue7oX{*<n2tbDkViJ!Ev+ zAH!c=AFKxF7V;0QY#Rs-)tN1~Hw?>7@b$|!_H=+M=WI=~@t^pON0Tz<Ypw0mOr55C zbZ<$J*_H{i2lQLRd`%RG^R`0t56^E=oXJ>Z^TGB?N{HSA8yDrx^nz7Eas^Jk`PWSj zX*WFSci0fc)F(Yl-D6vDYczEVjuQN?jm_fpygg1T3`aOE=eBkK;`Wb+hwF^E+Hpp$ zfW0DIyD59>>i!P0WpcPtcB^9bk(!%tb~s9Vjc|vvSkSp`61%U5Ii2it)XI@ApqlwP zt&fDU_Q;*qG42n?ETt#Fxx?|ROnNO-ByYCvey{dr#o1G|M|o28l#!Nsl}3KYT4bjl zpO8cTXwpe$ap9*0sV|1P*TxZU@rms8yIih<Lf)4Li`uq+Lo2BZyQpT?d`#u`D2Xj; z?husM<hBH)us`o!pu8}mdDOQqJ}bDPBP}=j{msRiD<zZlQA~hloY`1L-dyw^k-=Ye zmA&fJ!WS3yXDb!$kTjbM*6BKExr4z}oec|;bH9AmdWz|mS3dp1*WGV?Wu9xb@(oP> zUSk(#xyiR|J$(0(eUzd;oWazDQLHu#DY(m>5qWm{Vq_-m3bX1NVdJ;4*StCl$IWW1 z@looqCPjG0?8QI4L(RqkS9ZL?k$J1=DQP?j#meJzKN>iu%^$))H?Hg(sg{{R8hN5L z>dg4t7Y(G9BeiAItlyEFZgSR|xwJ<XJ`0YC+zUqk@MGFw>n7#ft6tjHO0As@29&;~ zb)0I|@8?&^XYbJds*{1w4<)yy9<15^>Pp(g+I=wYazmC#kD@z|h|YQ^nV|8VY?j2v z7mH@^eZF67EhxoQV(;5g|D4JjD%)(37n=qro^8MYbdu96b<&u(u57JFDtE6yy+=vn z@d<xd_2cVK_6b@~U*gZnsEmosxVI#QCt+Rs;MUMu6H9|eL)LU9ydfZc%hia(txJP1 z%w7yfch$fqM+RPuIktWo|7mOvYyU8L7}t-A!(!r(+;V)?H2k{CDLB;}1wEBkw2M_8 z(z=eniN98YU<W~c;;e$lrRy@YocZYkdfCHKL0gyv@9cD~YnO#RzP@L+-(}M*$*qJ> z=I<YBlNL)Ry+T?s<QrEwekc#tdB2g!vOe%a!)}jaxEx`lDu-v*r0HkbUkqtV95_&- zHBC+0a&||L<^8A6Uu3YwF!j&$rjL!*sE-f*oSRYY+oPc-pA;U+Ol;M>Fh*G&#`j_I zYV~$q@Kx;!w74{|gClo%y(g5W-MOL`w@7o<p+TP?#(r!51(Gx$z}?<A)@a8+R%r)h z@x9HnA{)~Wyy)vNos-!?7L_M??;rWl_2su_*UfW#aX>bWd1JHE>LaYuQHd+UM~4qv zD(LlElfX!Ws~4WXdG#no6?VOc`MgWL>ihZbi3-Q!0|6Vuik=C^qZi+mR+II%PjchO z(A&#kuU~3Gh2_O{R%!?B+5EB```ZFdf4Vg<@zVZLFUpl0|EmAc0^7q3s~y89$|dY^ zuuyW<%e-@U2S*X&Ps+yNQurym-mAlY&sl3Vh@F^ezBqJ8DE;=X1+P}zzT|Z<iJMNu z<^G|wapJbxB%U7b_vh!Rgwuzf&OfU<rFl-G+!~)eLSdh*Sybjr8K&QbqpQRAosMZ8 z1@iBHp(Jzfb9f{%S=IOBoYg6*cAE4p8o{5VZ&lTqo>-!7K9ZiHdRaw3IED2-RN=TH zaavij_GW4Q(?f~DZ+q+BJ=>6dwN}P00|q~snEgfK$~;NM_RS-UM<;G^tvy#7oU6OP zjhs_;=XFiv^igEi@>|s9hKG%ZTxyszmT9r3IiHZyys+r-fPlbNL5!0b1BPDw=;c;i zR3h^i`YlR@wRbrq_r(TVw~~Yf;bR|FZf@><syW*7?$r7g!oD;>qxA!5Bl+CYw0IXe zIXRw#be!sqdyd7H_gl48^EDr=^5Dw1UnTC$0e4ZmZonb`1ARu)<I&ZtCO6l;PVVdY za)tbxPfbJG6C*D7?H!X<ySuq5A$92^a{Ryzx2ta)_)KFY&APUEKC{nXXgFhI^ntL6 z+u95wa)agWISx-?#lL7zo9wxLTH7a$!55WNhp_i3TCZIGyg|l$SgY4K=J6ESv|%X~ zgBFgnnF!0}!SV;IBqk=jvR*Vb;>hFOmwq3zZ%iFjWcECII3n%+;Jfn&_4ypLDcgVT z3O`3jo7)A>2jFT&Epd6s(!bQM68$&mmQN0TH<|tqG50Ec)raM5Y)X?JI!XC<*e9Ou zL4Bn%h0qO!>&LjixVUEAr2DS1g%VHB(F<!9CR#Phdyh=Vf7$qq(M)aQ?48v&Cc^mS z%N03rv7wuLLce&esCoUg=87Z-iFf_sI@FKLQ_J-A5OP(Z{`N)af9H`T+0xk9(9qb_ z$ZJ3!@h4j2N3sB+MqU#a{=)l&Khi#ZYRE!}#LeIS#{G!vX?6AFYlK=jLVx8^f31Ik z2(pDM@@H-xQD6NS(a4rgA9!{2+S;0ibc8<PE}yuyL`~H_Kx-EFjZ=g8X$UoO#PIQI zP}MEy1Xt`gT#YKOBh)PZE4La|U4ibxPg{%hfmg?^<<)SjaTOvjQVQzkJGTneo=50& zci(wcL}mFoXuf*_T#2gAAk^AD1-BAaoa&K+S4mV<oaj*wUL~$T<;Q*k!>c&bqp-Y6 zZUwEpyzKB#+TvDl%MZeMb>ArpiC2z_Q+m)oud0KJR#x_UKS<u)7=EMUlqL5t(%-1K zWvFy-xAwxV{zk_uBT6gwpr19$E5oI`p;=+mBtF8V;lMno|7J)(K)I!GyO$KEW_<iu zUsuPeq1D#aa=#j$Fg;P6wF3z=$WaWn)m4>MRn^rswO9-ft)!%MJ9JWbGO;MOnyLz1 z&ZwxUtgeX=n7D9DoDx*A4bfVKXD<FoudA&r=afm5mX=pg4dO0*yppY*<~#l<Utd>M zURK`H-db4#oaL3(8(=~Sx5g_Wii?vFA>110BeTAyvaGZjlhW;V#l<D1Wfjm%P8U{M zadA;%XXnGLtF9<3Zs(FRjm3pU0^aJHF07nl#7_WkCOqYt^|jUIrNt4XbX!?rQBg@5 zD5#3lNnCC*DoQ}YY^-_#U(p6qw!J#P0GceXs01B}c9UC76cxpT0So(2T+e_eONt^% z$;QHhLg;CEWyDv5=aq3wc_rLpT!f0ZAYm>J#Z^{P6h%t6mgEB))nFy=#K$Q@g_}Eh zaV~IH0cSKR(_WdEUsx<)?Zn6{LQgg!Vdu}QXVg$^u_Soyd?v_QR#CwfOx|x&@`{MU z!cB;17IC3WFg4(dBV}8Qas{dZ#>!5Nw8FxIO_ay^8i2STdG)M10cYVRQtC@ZZXTtY zvT`0ciy!UbLR1ikP=hcVuA>AkF5E&&ear*4qT<rBaxB8eEkyaTNSKL3F_jh<#*>oG z1$@v7jQj?nhIr6WEaD1D#|4f`;7A~)zm)Mi+9@sLi0}{vz{C+^;?*&#DW)V+rjF0g z%`b#;D=Qb_!38nYfQc|MYbmaRt)z5QUQRBsfhJ11Uu}a|#4F?!peNCY*3u-x#;T?G ziVC)YF_&cL0ACSU7Z&2<7NDYNL^O)9;aW<_qJkZybWL_nhcZe<n27xRXmIKsxdJs* zygCjrRRGgYQo1ph;-cCr!2;{0B;*#*^79LTtAQiPFgm!nwTvo?YZoc=x$r|aKd%6W zt3-&2Lp9WZMOc{Nx`1alIELyER8zoH%!OIf(GC|_L>X8$0*?H>q|~RJEKmg13Kn8O zAQ(aALcCAk<ia(SWQF<rNa@c7Ss!xvl+wSmL{MUh&~qsIlEVCCQlh;)D=RxUzlir$ zAYML^mlutM(YZif4%8_mtK$6!z%Jr^C&oa_6_SKk!>Ig9+x9*y2WAldPRjvWjtDKY znj+3iAtfndfoeL`!pr9ZF%}_aRa4XjKrI1c2&lgi^MIIW5TVA^AV_gR9@WLN_gNoc zj3Wdi%gg8Gp<HU9e&~-^!vXR#Am2wye9i}Qfd4^G<Wlq>x!?6oC0Pvc*#&vjC}qF@ z0Q4|DxZfMVz#vM_tP;>uc2EWQl=X-*AU<eEqy<)$fG2ksHLC9^QxN6hLL*p&16NT} z<>!K3H-J>xAXPz;kXYPYltXDsgo#5j73JsdASJ7*o>Oz^N8h=*1Rr>Kf_c-CUUGq< z6d1OVQf-AG7v)bxIB0x+HYkkb2r==h808exRtOw9AR4q%u;IJDxVe~*p2Q$5!ojQ* zuq46M&H}-5DNpy^ns|BKTn;}L5uZeOSd{`MegY};rI->f4}|N?g>qvdou@oOM~`?_ zxRMetj~`FUH1jF(@}VtJHZEVl*1#2F<4|mcdHgNlA_XE+Y{eon@_;Q4afFz-zywy$ z-$crODG`VWA+al0_9jHFRes3Gt7Mc>d=Q*k@&q!1Yv{s9<m5n96Xj!8P>eaTq*VO} zN|981KjtN+Ngkh;lLIZnqT;(wc$KUQiZM4Q8mzVy`~+nhT{$t-{5B)u91vH4qy@P- zQKUpm9%bzL1-MItz{ZC(L8v(nuoVMaBm~23m{U{$7V<S6a&mG|ZagAth4{D?3<x;6 zIU7LCa>3l92JeTH`p%dQ2~_>JA*Zr*CS*^*2np2Zf)Cl0oQ1_*7<oCsR>cv@A0=Qh zQCygp4LO_SryQ7Pl%zjAXh(b893q>ah=lV_T+S4XU?V1_+AE<wLA(;jm<<_by-<ss za``fF@VWVo?af6wFyo-Xh)#CK&7oyyzuSr^@ANH|lP@VQ%+Je(@C~nGP*(OmDo}oq z8g~I#&NhT9gws`KS!qd8VFAvQ$S)9>v=}~|jriLU7HSQb(MzF0ZUKX8Nel}odk18{ zwLj$JmeER!A!B4x6F@u%%7UdwrEpe@N;xH1C?@{s3MU(V*p2Y_?*B->sG$CXj+?y) z5f#5chH_!iRn6^^aCU}6Imw9g6DnTzepqi*{getlf#qdQ$0D-(4iGsXV69rk>6Dv_ z3Ko%l7}2`qubpXN_1q&0FB@gS8oX0pDvCnUoIpgmNb1^^1a<_<xFRW}@UQ^L2iR4B zwO)7qj>tX-jdc5&n+<A#t&Jk#e6v#vnXolNisqHVhC$>!fxQ)x4D!ckUN-E?R0t=E zKfZCZQSL1iA=c_qP8!&K>5nw-2OF4d7VIFEis7SYXXoUnBYM~1AegjoAH(?nNP(!y z%*mngbFy9_T1k;mY^DB=vR{Mo!HgD~2lVWm>{Qq{%l)Py4n%=megR@WDS~OAACV`S z3%(;ahoAFAbW2Y3znGp*&Q6miVMne5$DTgX&epR4(VQnw!cG|e$Z^0EIri9&Zfk32 zmxYKB7wpUt`GRe+4b9qG|24vsyME)?U~9sP4SRN;F5P{{Ry4MiEo|RScIknJ!zL`v zL7y(JJyT&z!h(Gdp%6}wVAzslf!HvxE|c+332El$X0YGq%>5}PHm8}Hn_fr66xW}( zkIgw|Xu=glW4rwlH8#VhgxQ#j2>&8E$CNf<g4uaQb8-D;4m^PvZ+h-uvf%N^_{_iN zp_!N%pZeEaT$2<3LIHRJ9?vnM85<iN``299m@qOr@*mi+5i$hdJ>}nMoe~opbBqW> zql1Vx^}n!UL!_UAXd(ZNmu6rvW<Mf+)f73V9jc{d#)jAc=_MoLzqO1FX!`mFdlBLM zFRb*NzNogj`mkyG3v&~jb(Wf=Pw46H{?E)<59vaJ<0)>g(`;>QIMy^PYin%9VN?DF zn~M_w>(O*|hwp&$i8x2Z0u*a&E5HCJ`4b$hi*#TI)>#}5ox;IZkv$56b!j>}`rD8= z0IECKiq5vQWb-W1PhdDYusb_NoTHYuwY9OfV!Qv<{BADSg42Umur5c3(AI}s+Ewh( zGOVqv*neS?^?9p>xw(ZouUq|6NLU-TZpFtSCMA$%E0?6-aWpsMm=hL1K_awtU{N7f zD8RC|vb2OXNok0gnW-5B4)bnCy+bOjl^`~7vZ!GPWp5yfmN?4on{ve%FV_2pg2u&D zVOvZH#x|fSwxvZRNl%+-I)P(~dH~{R5#zMBz)Tba#Ia$3#w{#hVVD;%VZ!(crW0@{ zC&1DFCJ{#qkJ}9Sf><0T44tKgMKnn?@wnr;0vG+wkBCALWA$NOD<<jS*sws;&@J;= zl77X?#Dp^*^?-xN!X9&%%!SHM7;Ltsxp^EZmE#NH$Yi{U$yY~AITlf2@K`hkmgml5 zahO(YHrU}Nl4w}VH6~1qvA~^+Lm|eDiG##LEDQ@&44pFHLQ0-BGcqzZGB)lO2aiFT zuop79b3#US3tKTP0mm$!lzKbG$gl&c!&7(e6n6}ObjtUzZ3hSwOwhv2EP<5#xWdrT zi28>G?!Ge!XAChKa744lZzwF#v8B10St6{QkBv7lFf;%lahl<b!J}gk&C{t<irFCy zW;3WRnQkSeo;e!mQ#b}<28jY8M(M*|nWI=3jsV8g6gI1C7C_(uAo$m{LwGc8)F@5Z z3v(9EgunHP!)8*dF*V&zvf5J&_4M`icp}!1$5MjeQ3xQ!17J%!^u}~2Nj$cT&_iOm ziIKogQ2F_{RQ!hk*pfl1W5O<yD4W62W$5YY>V0(x)b#r%0Bt0N0V6CHf@uL56DI5? zS#3M@baZufxB_n}48R!)JrK)`E$HT^6DI5>i941&9n^)B3!H?bSXPb&9Yi0$k0eS0 zINF4cHU=Lp+A5(*$=wY%1A0Dwd@?E7vO!B*TT5G~3p)mGaZ2M@Fu^TP7(YIRMDbXQ z+o@F!u;H)E9${Tm@tY13o4_7+^*AjpXtNV1)+9!ZfDSu!!_9yWn*cjeJ&vP=x-etl zMcuG6A(((`N+Id-<Fv-{ghrP$5^LfS0wWWw)H;id&FCPrNixZ3i4eoer39YX4JU)@ zt}$$@7yAP%{KK6Z=8PaT0DucC#IEf!O@ZCmcrPiDX4V}$)_^e*%Z*Lx6HJVacSCt$ zySA1VC|peISOX1*YSct~u@D?nI*4zyi<B%2r1-mmAcg}5(H#VXQi0J<Qt~gW9x!Ob zheJ<LH)1d$TEYrsJ4tKbrybcvhggF{^#WGdU6n{BtaQ+W;Wm<16FN>DGagP1Q->aS zcEiq~I$*e!q&>CihMzWUm_F>^fA#sI$trXFcoQQd!$gq%4?Uh3v*nDy8hAKB42S)E zTd^2;Jlz;D5=i3XZyYT;3}+YP??B-UgHUAG;q67mz~dRv3nPPgl6XByfYEjKeZxTN z6bcqZ!Okd52=YdT23ttlNquch$<jRzp{@dP8q!`d89X+j8ygxLY$ByU{SK}`;DWmC z6rrxZ330@ra7^eBQ}yFW>1?;3qR`aUhd~x27KTA}N<WrlUN8b@*u|$|&2PHlfFuN4 zECv%y6hdJ%$!uCn^@rDOf3P~CroS19U)RtfD(gp)l6;R2rHJv%--MxXR3Y265xcNq zK$i^kB1z(=Db}U~SdU0FH8quZ)Oon6H8m4V&p=-fGU?`s2yOH;6!io|gIuobf(;wd z4I#=$K*XB%GaQau0t7xWARHqGs7Du88^kR$9>l#K#ldQXsw$Kr#4MATlydYQ!l9MV zak@I79QgNhELct1hylZfa{79D_79ui1nTGjj+kKl!-TLpR->t^j@XKjB^I+(q8aGx zb95mc_!SftIQ(NOe!+$H=(;*Ox)DF=6-RYD;)q#e(P6A08~Qo>4n!McCI*0`&(wo_ zNT*9yLxtQQCXCfMs%ZF5#OZNa^&=e<!>zI#5oZ4bJM4b+xDfl633hFoP*K^7dS1o# z#5@!VCq1sZI#OV9?W#gOg$*mn9#&i3G1F93V4th!<z5fG!ww?C^uIN$d>D1?(sj3Z z!K1qN6{{RUME9$>?j*%3#}Eycf8rNy-Eo0#RN+|Wf8aWWx?9;%tC+6cf|iueAWk<6 zFmW7M1?oTg|AK*P0(P&#(}`Q1iEDzUqO5We0-OOByP6W$3swCqh%o#`a+ojI5$slq zS!Q*`2I5<&V}nL?VbjHZsHGvKPi<2Dgl;$#o3wsHMpso)9h!~^Bb}bWz=114$;DVp zOg4&#bB1AchMJnH+Hk1cXn$WxigpnquKH`x_1AT-@J9xuD(dVkL?1PJjEM0tAx%_Q zSA{B-zNY3VO>m^#5fU02kUbAq(-$pFiT;<g=e*E4b3*2Xgv_4J31-cjIb+t$U?^2F zLPO_<hT=Im1kc97#H?9(CZ55V9yC30W)^IP&xNODi7wx95S~sC3=9Z)jp*~|&+C>3 z2hsxqrUgPtE@Z)c+yfaA5P+xA{QW&2BRY`&oEH1j{QRcDC@l)Zze0`uXuf{__b5RY z{2~MPrTO>-r6JnFf5F1=@$vTdy@lvY!u|yp;p2n7X<ptwP+*;pe_cQUANC?Vy<iIB zh5w!tdlDX=FyH5e{TE)khli*8dBGU`Ynibp_Mo}Ddw@q<@ShsT9)!C)o_Yom3;!2> zVv5_T|4{@y1-U`>|9=t#PocTFxgJAA*#FWQJO#T!4GF^K{|tj&k;`F3%>Q4-!LBqH z7gxv_{vVLA3o&_e3T%r1??O=(8srH#6#hS;Kq~AE_Za@u1pI2p)X-t5U<t4YCnq?0 zv*f?bNpW!42~FICX#d(HVJ~Wy3Z|Kec-RRxRCgoV{D14>x(CFQki$+y!}Gg!B($KQ z={S%JaRU2eKkWO}_jM;BwPOs&t-8l!0v?1gE`*(FzYd8Uwj(06TOkFY0RTty^Y`Qa zs+=?jhly|ot=mW@ONkmV&EL<@*U#5C;@3J)2T+Hth|_I!lmtk>`7c{?)?puxFZwl9 z!QL!lC!y|xC=+D$_j`#+TH8SgYaAb%FBRT;8hh+0z$NVM5+Oo&AO2a>rw97``F`e- zv_~^Mu@~Lj$NSfyu{~nLjzafY2n7vd`@rr*#cJ%y^z!od^8OW}u{~jD3+2pi^^B)8 z0s{PfePI8jbvO3Fo^&ryuWn}+Ww!!lVAu<V3n*dTr%lYjfB-*VZ>URV1bDb(4{kS; zRRof-wcdid$7I2jnC9o>9Yr#WmP~b@3b5!`V6p9H7`dJ@LB_OczCPa3B&|7d3ZBYw zr+HA}yOUoL5f$4KHc-7Jy3avzAQPsAua6fT?oIQVGG*!%fyh5WrP<h6K~c1abd&`H z=I`t66-N^JVc3l+K>i6TohmrP_F^~bG7gl0RM_9&$J=WY$!Lsqb#ujT^eJvrg#CU; z_3!)eQwo61(>TOfFt=-xP9@<uP!dqVGx&IWZXw~7P$>1ga(@I8@qmPtT`Z!D$@@DX z1<5$W&(FupGoGY<m`xq<az#G_#a6M1)}53BNG3QiZ!gaTlGzYBd9ur7jtg~ULlE%9 z%ZaTJ8}`KKc3z$ciOKQ@f8g!qkw`My&$~H0<H<}HI0i=r<nAyDHaiA3`+ESz{tRDV zZ%>b{B>kU2XD6t8_W+042uh_K(FK%{gxH@6PTR}VV;f1-t>ZW`o#DJ72r4M8b{=YM zh2fZ<6%;dIu_m%46G3D_B!JQJpb8=<p}I;qP2zToM}smeR5wC;z{7s9Zt?Q)fJ*91 ze~u#r<8INgB{GLXO^;wqaQL1c?r?RZa+!mJql4olM@M0|_SLSb&QhlhK|0#(5aIQw zNN2Gh%NIO{r@Q-ZlF@e9apFYmzywf7s!T|ENf9_2lw+Z{b9#Woz6@_~@IFv=&G6t( zq)MD!V6cUtn?0g1VJ>^PPlXC>*&>cTZQ?}nK!iC6B(%8h)H&?S0^NIgOr4rcO0_20 z+1cAqw1+-+?ijY9PEkVFX8%~HcY%_C<)@dI`_!pWn%&2-BkaZD&;bX4P!Bkg)H2q~ z(|zg`0IJ2dP*dtE4|EIz&i7q|F4726G=`_A`xJnYsI|3$3SCE;@M}?s8h>mdz(J<b zh#nl=vHu_*iRtC(IhBGU_S(Rh+jS!mVG2;R9+6mHFnOj<aZ4tdt%)`^wzgbRBl;>6 z2B5DyBH|^&UJMV9scvrjNP1ZqxN2KYH#lel=v%P0(j5@f)5Bwmo7-NJmOjOXV@tOa zR5QEk363&N05IB&nXpgO9T>|Krr#7d*WDz&?Vw%Ha2U{tp1`mt!`&T@V(ud86^m`5 zlMK7=g~Jojc<5>mvO#VIbI;Ay1)R+bFK)N0r_Rv=6fI~*x81~^EDxA~ZZ0mABRpnL z8AT6xG^oTvUxRzV!yb&O5JO$SSJ$rM*hX|SoYcupWCRB5IXy@ag$41g%esUK^T*X? z@>Y`hw~wuztu3}g-PmkL1%WVuDl*X%A`3=>f=nct?PnbUlk-zZ6S&t3d4hNeCEP(o zIA=H+?#6zCADo5%*~1*|<Ws*-2ddw2=-3D%ebDr7K_vkcCYOtgGZdTO2Vy%Wh1%W3 z@8~+6Dl0>*pV=*{U>VAAb90&OyoDq#IdbjjKLcd|sIh(=>aO<!NG8m>$&;Po+*xA; z*N$QTGf=_=N}`((wf))cT9h>fCg0@APH`kXFPKs%w?~x<AdwLykKH2TDGXQF$<9u( zB<rR#rOjV~B#b~%g53is(@lU1CF|xG7<apfpUX)zGJ?`I4YJNI_WpIJfCW2QFiMkP z4N))$#@!AUU*h7B!0&&vd{8Pjf>O4Bx3Jia0fy={DUzh!pJK=RRZL_MkGhi-QhS)} zaD8I~NpDG@1f|1Km|v3>8NzzfzuP4~%aziBlOwDr%NBAeT(L2|s}2Z507l*7Vpm9T zohLcM8ko30727ib_*bE6hK4$Dir25(r9MlbV8<tzWPaY|K%EMjNc&ZAY?y>lVE6kn zGN5M1X-`_-FP=EjKH}GOOdZJIis+E+ieKe3K*Mmf&w)D;!T-giOkLFrkOpu-TRffw zI07dS(-Au`CQ|z+VlzW=poD=ToE#UA+Ofi!M1!0aI}ra0R3B>Vp51Rl&_Gz~;?XaQ z33n8zO8c+vK8WPiA~8VVu&8P$;ORl_{TH`0ehtuY52eUo+jJ0@A5lT-yMS=7LLV+h zc>O=YaSW1?_#M$MI~RgePeKW<h@+#*-$;KyqO)OH^YdMhpJEaEP|zn}x8^6C6u+P^ zC@>#H|1UWD@Z^yD&o+2|p=)|j&zSo2ZIX`Vq<A~U286x=90zc9`}sCTPh$pphQk5> zD~177oLqml_0h8!dS?&=LRU}w96bXVoD*D|=zbgG`^v0~;esm9Bf4vkn;1QD8&L-g zde{KziI+NS&~dn3+}25VoE!r<bTE-R1paTh=x{n-9}Xb=D<<mj7SxRO|Am{UoHA6V z?HztCf-$H|1iI;nX47*@{oMy5BRHr4i-n)MU&s%PUm&^_byEpWIEptQI-CZC%c^v^ zP1P+89J_(T3&@=FV}0LYMc9NeGAuxJeYn3uZLv@{GVuh)c(@DG>GZ<fQ0hfIh4yN= zxZB)}8{vf$&L^Uw9O`25(w#(86ZI<ICwTsjQ4cS1kvox0OG|U}k3YjRPjz+hcHK54 z+uSPhh1u~1*PuE$8Q3Bv%q8=ctERfTs(K66l<4<fLf@+@E6F${N5a!v!VvPJBo!4T z-0BcTkrO4MUU`Gl!#|;+-f)Y8&WN_w1q$wm<FZK9Te#2gh#0&$CI#A{`UP@hc>AHe ztgN(jBN`%%_p!dFysV-|n2>ty0SHTqBhV01sG}c0)|IuimX%gjf5(*iN?KA(^58)# zp)r!HEg{MF>f-XMug!l$g_jI?NMr<P^|eJDlJ%*uv_c@L%y-b@q9QJmB8A47USD5R z1lP`5i;K%R6>`Fqg~c2sDMU(HNlhV-?AKmZP*PqYLQ2s}G=DcJfqhgLZXkPo%quGG z=zR%1T~-87Smkrz!6JHx;dNM8b-_jups=7AmoiJflEGtA9K`%)pb{OUT~z>un)Zs^ z0$f7xK*K=A_-e(HUrnMaA1WmEIr*4+e+(DW3*aU?2Yqc(>YLqE=EuMx;~aRd185i& zO&$l)1k*wK8%=d(UJS`-%7({4a3NDb14INhWrVD}A}^X`)MvvRP`HrQL6pm(UVHo~ z`yHsdsv<WMHXO=3$Rxg!0iFCOFs+VxCa{9?+>Io&C68Y~!AX9j;|mCd=_<?l8%Sn- z4m1mdQr`)4fU-e^u(FKL1GSas<iQ&%h0@<C`4nlnP}7x_6=i&|g_b<fFp$a!krs1N zZ-F!TYO3(COAgo=sJTOf!nAxIlBWE|cdM2u<%8{(<>VI$wEaU^KF$H#C51`LOLLo= z^K%P3Nach?$jK%nkc1Fwx!}be02QE$lICng%x@EwB{0<zctA#A5Tb<Hk%&>(F`-4~ z2`=m<(suUyC`9WzokX>igR|j1Gw=;PLuJLHUSx&H4C;cj8T|w!9!Uwj%GU|gN!kyI z@CL>AY0~LqCam5%bRjepoE$hjKo-Ne3oD49L+(X##l_Tf4taUGx%`}*;%Zcl<UFAQ zGs)2b7NT~x*6e+#&)0Qd$6o{&Y<HplkX{K^gF=6WtA*RpAZNkS9@dGXU(C(MCn6=- z_Y%hjTkfXg<I&I_KEp+s%}9mH>clil@xzrX6Qek!_7f7g$`FH8e@cW6qmYJk&#eIz z9R1giL>isCOx+!&?pc17s)J5XcO&X8N@!z+E&FvP)YH}8fcl7Z)Q0^kD-c^Kbb{1_ zv-uIIujl|-Task+298-Dfl9tMPEl%U^H6Wt&=DFND+><U|FSi8mr8Jthq}rjAk`Yn zMe?Gw)@*Yw*+17G?yyp~Tz-&_8><igMg$kGDVy`)a`7f?+*_1%%vhim76Ei+X$Iy0 zOXhG-;Cu7q#*P^?nnLYlN2VJ|g71a(Wxt9kpc@5*o#-qkM3V9?vAVh)z3Ctu33Q#! za(pz|>%w@rlmPd)s5VE9)C8(7wi`pry`t{We50X=1T#c1A3Da+gd(D@aec+n96=Gm zEE1wIHHP-i8^MjW??f6v)rn|=5hZ;Tbt&!#*>DK2wsO>U^6w^Nw2|zS;|_Pvgvo{h zo=B50wuYeK3&vPWPK1!6v=#vzZ(=|VTQo<jmnfwgkg|oF1{=_aUAFA09If7>r0Rnq zq6i5|S&JT+*##5o@=zyQRUYd5qdx+}(kIELby!=W3$2=31nMI?t@NI~n<|!6bpz@p zIsx@KI{mt~52uhfA`Q`rDq=F4nj<uZ4;!Ygrm6}PeSFu6(y2p0ryPZb!R^t`lcdAA ze!!{3AZ56O*lBu<rY!Iq5mt>uDzKywo@--7C{$HdHlx9UD@fnP79qf@@o1pow^<Fs zcKVu#2I-6E1n6z3|JR8j!lkOV3-!?+D~hG6whzhaj~xxSnmfc-8%%{0G><b!GGulz zoT&~9^n_@#VE$a{taZm<sFPdMAet<gKd;kYsgny3O%{fU`vNs#PlzT9#IjLUUQbVm zCJVd&3`I7GCOr~Bkp`m4&q!QdV$iT2<bVnsR6D?zLpb?47Q{A3u(D2lrjEu?yS&h? z?{MJ5HzIja!a#pt?ANy|p`*hFq#&ZkK)=k~-@LI;pH7hA93#-E1tMb+;7gJ%TRq{# zmq_bCYHthiM1(eQnm30eQvI-p{I`Bn8^%CtX9w|Qrsx>^dqF%YTs(!UhY14XS5jM> z$>43~h+2uCC#+9e_rM;ND5<qIxWzegLiXhE>jB>Gwg;XpNA0Q$TBkg)6$L76cyKVt z1HwtcJnSSZM8~$E2!#Q`6g{A@(z??DJ4#cX5jb>9icXZw$J-s;`%M?v9sf>b4pcvk zT`-VdQz25krHVgaf#6{fBrljE9Y-0dG4z~55!pgHnexzrrwM?Fnnpipygb~Xy&KNL zL=%8Yl*rTFl?o@@M6f1MbRt+#^mhSu<j=--vOn5{%f&z_+$L2$p9~tlF&W#*i4d9q zC3Qqj$XeZ;Vc1%>i}V%l^n-H*T2B$uDXvZsP;!H@y}VGL1+@AQQG`*UemV&Z?S_jO zS|c7BHBDr?Om>8XC>BaJLi+BI!RY_myY}Fysxy9qBnUo`q9Q~L5#$x367nP@gph>1 zd4!;Yg0^avDrFoYzNU78ppgog!r*kI*y)UdZKri=$F|VNbVds8s5m?VA_*Z0$%Z7G z2O%LL+1uZD?%uuk?tScT_HNeBaQ?{NbH2y#JKuSqd+tdRMwHdcmQ|Q{s`_c$lJ99* z6SlECaH3Mt3i5OD3TV6zXFP@!B_mC^lr;jARsP*~LOdEfokq|!0I9?!KFmg^(%Wdy z%I~Te5*yx-N7LI?nma0MG_O4pQ#{5LZ!A06WSUeO>X`Q~i{$Tu^s^O@y`#Ll^=XM1 zRPuC+A|W1wN>;YJvWw;>VNfZ`TtwGMh)$d5VC!C>-LKKx53pN=UTjTZ#{mm%VHX>V zJs50qQJij|@4%hf<FJFHOlo(uz0K~zzjE+M#pUzDn{0wEp|wTW#wO^Av|^=K&L$d> znwz(<NZF>YR!3(CEuFC($HLWaZ`{molMT5%aHZMi7~`g5S<9mMj*gfiJ8H4LRVFt! z3XIu$XG-}6-8o>lyL2~U>D-8$$YpmlZ4o9pE;SP{5gY1p^|d71+0nRFn0U1wH`~*y zv!NbDnbv-(T)3yduE9mB!wt!ji`yMUb2{mER7llb1kL4r<g|g)a7!pBfhLpM>H+BN z$NkbGtrpiP^FreeB4YOiNv^gAm$OoViq5OsA{4gNQVxJeH<*IzCbnE8H#F2K$mg+D zDap262ECWIR@~Axf{jJW<x+RO{UWv~WHL5WA}_d0tqD0*QmgB?u!*$GAQq|QB5qer z_4#r(!GKhQIweR#N^`2KQ4{YH#EnH2RJHIn8;9#x)drk@hmE~}5>;4?+jDOb8eQ(G zJue(!Xe*_~d@+@iy?Ajc+Da)-OwghU{TE#-m4dcH$4A^rG~}dhXX7=A3+5-k#qPGz z+E~SmOHY!M(1xh@(Gn8l(NJ`B@o94W+%0TOsVry9xQ)6jS0@=a7wgMNnVQjb5SJmz zRD7Av3QA?rbU`>#tRO%1U@7h~l5I*8gn{;F#j6_l)HgPUG3uj5Uu2}&gnI`EchiUc zB6-eiTyWziFI<3z<owq{H*prOk&$E<rl+Fn4m6a|iZT|n;hDH~#ibWnnvVuCaP0{f zX$E65X+biltrewaOvim6R5E<zpP$5)E|29JF}=nO6mD8dBH8oL6iM)bX^cs|C_I>8 z6N&~0cS(>~&D;;VOE0`14{tc0q{SAkJcv9Mch2$aow)z896O$=l*UppQZAji#$U&& zs8Jwi$fbju0~D&GqwYm>Nplyh<Rp$8JtYdwg)fO@--;%Igf@Y-k`AGQjZf4jPub4K z;rn_O_!Qi@F*f62r9IJD9*yR!e&jrQ>OtO6o?nOQA7)xlJWdVeMa+j?@wGUkUW$hD zV^tEJFW=7Y)F$G)1GER*dJQ+7KeVC!YeaBl7Q=TDnu-yrFdt)z!X#J(e3u-S512Yf zVy^Ep__3Bh(V==#E2z2I)KuK$wT}wI*=J}%2T&sCWTUC9lcX`7N9E{zjpiLLa#j{& z&&l3c#hc2n_&F((#)ct|Ka0+TvsRZ<)jWn9w?yKig}6GEdzOfgu0*XKY<f1A3*z!O zoVq2ibJ`;%)ExR=#MBmzAUzEyMBSuS%Q<aBmPks)kxEGlGh%8gO;1U*`Hac5l47#w z-^FfX3S%xf@=+0QD(_2>SnDS<CVoJ`U04Wjbhs@7IVk~6MfQKbAe??gA)S<n!jS!+ z-~78gu}!DrUaJ(;W{{thOGn&srOb-d6f_l8*|@UHMdQ#^l;y&mB+AX(hVEG|F$E<K zZ3UZpuEKBwVcIwj{hQjhIBF~Eq>No`j4g|LBm%;bfpss@Ol(94UJ+p)gMq)(u@xf^ z-uTfo##9WgKNb4jQOu+;B~e5#+Zh*Zv)kJp7((q$O`K{U?5)Q(It_JPmHoPK9si65 zqg*}L+;p9KtvW<6a-c?vw_Uu12?57#0DoOQMQc0LU`K2HU{CcWieIR~JGs`DhWc6v zQ}kOV0=uG^YG736NJOpv!iEgFqcvY_WuuxJNpH=!n;G)Gw6Fk<%gjK&^Dw~X=Aa3r zrN$uNc}v~Vlq8HW%4kBI7|kpPGpf<NxesyXjNUVaJo;cPSCxKQXx)SxT^^h>n`=(J zEC`){co@-{94Lk2zem?Sb2`UOx-7J8;L&NBX{0)#w<?pkr%$_|BgMZ?x+r=d6M<dP zDU8J=!wy$8Y98_(6DLKd%tO8(iWLQUzF+v!v(NkhD^cWo{d)eq1`WCt`NpOMkq|8{ zS%&UJ<P@Vt1!8o~9()8*vaF~ecL`@+eeL}Bc{C@J%RbU3ILgVhix+WKrLBU{_2(ss zrgP0JDE?VCqNyAR{}Q?F4IWKdn?}Gzz2{aDcWO%F8bT^~n+qeF#8!$(B9&S&+2LZ2 zr+k;XqY0GnC0Kuu;AXZldHwT@W!%hegc}~X;Q{|V5HV}{%li)>JyGrG>vL3}IC}V( zFE5`J;h&D7a!0P&e-1;0HeCN^|KpQ}s?|5S@Z$H*YJrt0XZIF``=-l(u9%8uC6v*# z;};A3*X>neY+02Npf<g#Y^+y>elgr>b7)b_Qo1T9`UPOhJfY&M8J0e+yYgOBr9KnG zH+1VGcuVcESuwgT@}t~6E&4Xs=Uf^vMt<z6)4%w^z<Pv2Oils|9VG@i^C5YpZ7?u! zl6F=OwPT)qBye=n@L%jw3?ZbqSpzQ!ZCG;p9g2Ibg2!g>O26Ts&>iE3YSO?D{WM^M zbEr`Ia!#9H2E4AXC6LtD{4ijx#knWDolpC0K#`?oFF9>sg^vcL3}LjBK+Jx7d~1eL zeh&3!kZM}%eLi>~+@fAj4K2ow`Op>b&=a&O4WBG~3Hd>&`m*)TVlVKKmUa3vsPd`B z%d{}S>4p+Y|M^2x2W0CDS(&=n#DEAds~aoqI5*1JfH$lF@TTKcL;Oe!hkRozt{PUs zUB*IIQgG?HZWw>XN)%&V-FNE3vu(yA)>1a>;*V{&7R6Xw#~peGlo<<HP1&f2f68hU zV|}M}@Dq*Mt*78shiBMrJ&LhLd~)Rx!dr~Ft*10=HmQoO2QkxF;E{dyo*B3GG<?Ia z4&PXhVW!cu1xzwy4hGF*Ut~=%FwAtWR=a<{8E-IX@2l~Lx%dU)j0!&@C@VfQzg<`L z0JF_lgG0lK896Ku4u+Xl)k@?QGtS`9Hp#hX?1SK7m}$ia#&S4h#u*&iVHusVqrt&2 z)B2SXe;DUJl1(^5DTi7qb@+bqJ%=2Eyz17=)m0gtu|7SH;HC|Hm+(XF|4`Sz5VXHq zW%-Ao|M^mhAA<h(kP`oc;I=hA?W*x7)Z_0mJqv@IR;2X*tl(nlX`imdAO87gziR%; zLOlOwp<aK4di^!r>rbcWCg?EiJS$s)=lYxNRZ@fhtl57k3O=S1Az#`0>3Jl+IU2s8 z-G5>~A3k(J*y)*l#uA1Tf36mvog6*`G_{}13HAQ-?IGTO5B2*87V7seZ0GRQK-|8g zA13t-hXLL9=%XX`C&PjNiXl9UI1_vWzA<_K%CdrwpJ|+ZP(u9volOe(z@NDXy`4W` zAwGY>*gNJK2#i``TKJqe^7FtT%%qR07ajV>L<Ma#rggGDqDN}-5YPLX<(z0e3p{{~ zq9Hzi#@L!5971wFWt3f=^w+%k(to<~u@fD97UJ`lxZ&K=H&O%7=w;G0t;oX3z_p<q z!d_t6P|%9cT89uOThtT&Cwd6rBx2F|b6+}L0}HbPUX`|JR=NgI`pFYN^1r1kB|h}r z=g@~SNnIGg-uSs36UDxg!Z!@@T-a5c*;Lb4c<|kA>rndCx92OB9!DJf0MxLKxA{3K z=&Bg6Q4&zX?Hm252d6gP9uSzma7=|yt+6dA-=A@lMi%U;GB5qpyYoltTW?kB#K-oX z>DM!&|IEJC#!E}9;JKdg8B5Fd9Xej;K+C-1s5^dW-=?KA0_bKfHSUJ88y@)o@xXKZ z9)QtSd@1Q)rf<!!`1Gu!zu$4@k8kDO>P0pz?>E<!eNOMkxnU+Er6-ik;`7&rpZ`4Y zH!U}%9K!8GI-$gHFz)g=)JMW$Hhtw{YK3Pm!n~XV-RmLnmYH^<ZB^v}m*98{k0}Hm z@L}fDi9430VBknKr2OK2rJ7(ATkcXHrc<hVGGDuVl&443OIsoW{8o>qmv(^j-=?aO zdVEq^&lnQGl{&r#K5eb=m0Q3iYY3nE&i@JV`|-+|AJ+6^2G~OS{W#NfZ7BTy+T+I? z)+(~cUw?XSigNjEBmF*CPeI5g{#$!x1?Epzd42PJFZm-<kIUW6waQf2sw(VDImztl zxYTE@FyoSG#iBX*`<a|*{Pb5hJDb*J%qCGflwV`7l2VO-)qQ%oF{4Pa$=1+Q*j{si zJ!*EuUN#fZ+dp1m_};MVQH^#=nEDreh|i*R*^#*HxK`pTxtO$KVM`A5C`Ecc%8@F8 zmRU?0lk?^$Rc(EJZB?Ia%N8rJ5o<8gU*Pkgk$%jBZc5*Aw7I{(`RF@oH)$;z{R-~0 zl0tLYXb+B64H8ZKty6s=A7;~R06Qy2xK)hMeM@xE&0x?ImAe!eReGnmOE|htZJHcw z;KlN)oZ$IX285dw`SzsS;i!e4iOM*3=uKb3;?uojN`BAhBaE5A3xeItu!Mogbl3vj zn|{-yl%IQfzl86T(>(K}jL(OEo0SRbXFFAaGIg3V_7c^An{jQdeyA5~=}JxI6WN{8 zM9knr#Vw?r!ia-<`VYA4Cnm)j2xa|-iV}}Xcu~UU0QhtBCc6w`->B1WM=bc+5qn>s z{mAxI8CeoH{C$b{17TcWY~`u$?o;p15t&Er9TX7<_Cz3M)IVhWzav34ao^2iUCb_# zm`a(Oo_3yA$4`39v~dZvDs+1CzpEk(JLU{169#6pJ<50`V-bqU`C-~CiP-HD8K|Tv QLd?#SSFW7gF`J(M2gJL$ApigX diff --git a/src/assets/favicon.ico b/src/assets/favicon.ico deleted file mode 100644 index 43e96216016df6ea9c24c8467cdee5aaa9607eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56643 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 diff --git a/src/assets/favicon.png b/src/assets/favicon.png deleted file mode 100644 index 14185fbe488dfbb00fcd4242134e60fbba420f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11817 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/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 diff --git a/src/assets/favicon_pause.icns b/src/assets/favicon_pause.icns deleted file mode 100644 index 39b0e4ce4b2a938cd33af168d89497530e824ba4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmZ9K-%FEG7{{MNG_b#+E0MWhw&|F<n)B7RnR80{mIyN{BFxr}bX8H3H{FP$SXdWf zQ4mB|(M?HU7X?MpmVwUL54U%0?_M{zntM0*bk2EAUFX2d`JCr_p6~lToRN#y#sI1g zkBl`L0S=bNp{B5v|DDTbq`OdyTgp1UA>kdkjq)yvNd(xdipfMA*uhjhz9CT*1SXDe z=Oamqu^4L`FJdt&5R68sOIj!*mZUJj5XFrcWpQ<7EgYgKtrPvPFY8j|^J>OTSd47{ z3HXX-EXyAx>a-pS28D7EgJl5}<Jd|X17zj^nQ?S2O6w>9ATthslgq^A);QD(u}C<y zx){oYy+E?}xq6)T6P%4??{>RRI_+JY?YKolvUm6GVyjsLupdoE1-S_#ZZ(^l42?`| z%l~vS)azI)YXZgV%}oZqR?RwF5{Q{sM+vH!Q7h$_T6Ke}p81*+nDkm6F3p?jI5%x= z$}e-rqyow*3v+6|VbDF2+pw+R1I1XcUcw_}=0MXz{zI>An5T7eH=r?6V^wpifMu4w zQKweb*R_4!$$s_9<x3aN4SPs-ua~VoLxTf6$?hHfhy3Y&9zao&D#6|!1wFHa3OXH3 zJhT-!PpeKlN85VNrcj!ox7*o4aflZYH{Uo2S}6{mqWrqk)^4>><oiWT-E=?wxL`LA zyQx!ee&tMmT1Hvw_E4vudycMWvI|}EG7KnAwohmzGY32~?reWT>ohyhjIDM_-pTIZ zI;<A6<2%hh*5VxnIB*Ea&`tYuIscTFt^sQ1wvmm}Y&FG2h3NMk*|@)lh%=zu5i7eT z&Gh~<;^dD?_GK%1bF-2&|LOfxmG#HkQpLt|n62RVQ2ln_Mqv)1dS>@XAw?cBc@&er NY}UW<V(EdQ>Mye7cBlXV diff --git a/src/assets/favicon_pause.ico b/src/assets/favicon_pause.ico deleted file mode 100644 index 3c67ab677a3307a638e8c2ac8cffb521839d538a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2862 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 St@vO4mb=77{-)C=0)GQvl%uHt diff --git a/src/assets/favicon_pause.png b/src/assets/favicon_pause.png deleted file mode 100644 index e75218f0fe845b1bd179fd93a1ca012963d2b5a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmV;x0zdtUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10!>Lo zK~y-6l~YYfRACf7@6CHN{*3sOWs0aZL86q@#!W<85<(OhwQ*A@M5G0_%#Go07>pz` zauL}ga2XVlm5Wvp5~T^YDJLeZP>1oSdGFnOT1@KrnoVbQKDg&{&$;(A;6wUM&jE^d zlX6@|>!<=!zNm0Ql%r*nW7FC7#s*<~ZzyeJ2r8GTVyY^r0;*t>iwe~nDP1=DjG1v~ zvjN+CLvB!?sjy|6V7oZ`{i=M$ZZ~Ge9TNc3LEicgF{skI5L$}?fbrM!`|PpPo(s3N z8JKv3kiakA-~wfnNzrb<XIBL~uXm&P?jTl*^C7vX3Q*lHlPV|t-Jt?ats<{Jg53{d zaE=^;C*D7nMA&AkYE3TB0098jj#5<gUq$G~6*%H;%R^OaEvhhAV1B47(w>LkDhQCU zNkD}bRpP4J;7@x4-mgW(Zw_H;>H{jST|`0sKCI5pVd4HG6fY&?mMULRrNO@{v#1d3 zv!9XZ>BqX`;NX*o2ox5;2-+xVK8%X9r||Z4=Q~rBqnQia5*t(`25;j>XD_UuizvTv z9)WNH=36=d0Q1K>V1>hojKo4_+2q(X)f>s)ghjx5`WitY9PyC9KLW$H;eAVFY<)|> z2-+yxQ&VXIK<Tp4N6O1wVFpO7&d!0Z3#+;+vzh8DfOJx+)Tgb_)Oaqq5L%0oayfG( zTg?{3d1!e47*;q8BWMGpBdRL{0|Q45`0%~yWFyt>5@8!v>Zk%oy|3|IB~y_*(Y%tq mwUx<aawZy$-Wwhs{`d#hWiu!&CuNZU0000<MNUMnLSTXx>o~Xo diff --git a/src/assets/favicon_play.icns b/src/assets/favicon_play.icns deleted file mode 100644 index e1d1f54d2c8e64c4d1c2f0687e16a0d0eb2fe127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmZ9K-%nCu9LB#jr)~B(<c)L4F9Ts{6ynhUQ_+=_bHi4xH8Z+#T~#ZWH+8{uGIQ2N zvsSIGdDXfp*Jc;Fm1Tf!icLT`49+=%kRTj+d*An%O6TJ2{k+ffexLK4y#rTn4gr)M z9T=+D0vr~Hp<+9i{gX+jga=TGa?(1vA)xzk59RleOCW%Kl}p59Ko9b<*oHumWvMx~ zlMN>bMx%6Wtbhs;7Goq#Qj%-|AyEin3=-Uk66RKxS3^O9!aDZ<{<bcJzpkY0n7Q!I zR=``xWsCXG0!dmAudT5~KEM}Qkb<MjNyG;NsSF?*99fMJ9kBq228Vv&B1pVD43%s& z915<?22&vy;O<==?KaD4#*DkS**nhIEUk?Blu?1Zw{`7dqd@_15cOIKnGtMmH0bL! zb<}Lm{_3EpR?$(WIO1;U>NRSmoK7~z5lYP*$0(ygjfCGS<+ZXJnrn!ogv<D3Zc1Ox z*vV*pc8NJDEY9b7BTdrX)~KH5-BpjaydVXu<#Wh=tm<_J6b<-0)XLf^q8D&?g_Z=% zbo}Cck#?_B$z?UwC%*4?zj6KA)yo(Aow&QpMc2;0-W~_;?i&1uj&t1(0Lh6}jGgTg zIz7D-+N{*vmkV4Xs?EZXvCa!T5=O}1ZD}Uh=im_9d~d~QBG`MD@VgdslgUWX(aj<L zj{U`#X^WxXPLeva%jdh3{)N2I<|Ik&53Q{)^OIUnZV7s%B=bC))aqt3;Gn@RP0xug z;_eO_Y_bUc1*yB0X*L-R)}N&NP=jj_;Ls7kk7~@9$@oT<WDQU;v4iL%dddmTN<`it z@y6qQL}(mTyJl%uRE!;z5pw%W*_$rq&COCy{pa_Mmg>)xV#&rU@RaZ;DF1L^V|xOi Ze0=Z7Hjghcz7%e6I_;Z&GdHOz`wIs7a)JN= diff --git a/src/assets/favicon_play.ico b/src/assets/favicon_play.ico deleted file mode 100644 index 5c7ab86b88ced7244f928b8dd19578a847520550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2862 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 diff --git a/src/assets/favicon_play.png b/src/assets/favicon_play.png deleted file mode 100644 index b7d6209000cb68253b2dd3e34c8c30a03c76d4d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10#Zpt zK~y-6l~YYfRACf7@6E57KVz0jpq4?Rq`6QRMvx`pB3eY$qJ^PQVis7mDF~xY3}PUb zQ47fyhN}v)$jU{_uqe&2O)`>AggVWPIrH8<w?+QUOta~%&IjMQ+;i@|22v0^a(1^0 zTUF%%g(XUXs(hvBs8H|ajSWsD{x?>MHg$MnF7$wMS}7(;C<RKv8W)Pv?)NPkoyO#F ze64^sb$Bc{M<}{KNsuf~e80+%xSEW~;kXF^F}L3Q4>6R|5cDi{1AwvO`F&#BG24RG zPzQ{@fk%)kUgZL6m8rtkRL>R#n=iB?=k|3(axx(4yK*S47E>t)Q>%jlhNJM7m165a zH{yG%VT=8bB@t~jNfxE^3@8A=xygruE9c<3+>W@|NqLY`>{N=T3oI2R5wmS9Q{YgA zOBJA~Qz-$G<*8|}!u~mrz_lJMjDJAE`BT_XwiD5*X$0>+K+ZxaV3PVG-Kfm0O#Ghu zf|=uOh`yUZ<&*o!udPOg+l_6_Cs6rp2*HB9w~kB2m9voK?Gp;Z-@YSq;}*=w60*;n zL{?1|em#7I9~Z9zBr@yk;I6OzZ03y(PAKjE#7Q_6a6Wwvw<zLbBV$)743}$V=YfU3 z0fZlqAZvS3p$P!KMWa(yUZxAvp^E6#G}N-zuE*EjjO?R_<Kb}l)A})09CHUfOWmr{ z_IF9vi_LHJqWt*~I6DVjj=@{ACoW{9tE+3DffUSD9jZ`TEh5^eloF*NPJ1S>C3n2E r&+pCMQCt`bg(m%e|DE36-j9C(o^3f}0#7?P00000NkvXXu0mjf-%3I8 diff --git a/src/assets/fonts/normal.woff2 b/src/assets/fonts/normal.woff2 deleted file mode 100644 index 373c2c52c10df1f7f2b5a572312d354f0dd4244d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55208 zcmV(`K-0f>Pew8T0RR910N1Dh4*&oF0(;Z|0M|_b0RR9100000000000000000000 z0000Q92*cEf`C#6U;vO%2m}!b3WvE!h0kRRl3V}*HUcCAl3)ZN1%iABAX}9DaYALo zW+2|HyQ=ircXW<!1=DSE3Y=GP0Y19NE5<g1dbb1G9_9LplKubxc}ZoAZCCem5G1p* zg5ZWzl+4=p==%_kEL16?=A`09aFL_?qa-4eDo%*bNsbd|4a|Iwk`=S&*^@H&V)SUu zi15Xi`8pcL5tN%dFy43}=tEBaY#4>Qp(Q%X95YcDI=OXk;xRC?q^Xs@W{m9B$nE`1 zr@GYF{+cnZT_IC4B~vn*!`THF3wqz?B~u%|5SDOTAK%K4|11vH^0NLapd6c1YS)cU zo_t9kp04%&%p`0ZXdkWWARV$P|6L1|3Xvnph&7kM*q(^{7jb=}NB;f$C+{u>JBxz| zecYvn>Qp8xP#;h&j<!{2BCI;2-VtZ5A<d*A4Qm`BEYnOnMp)zAf4_U(G@F`DKKFLt zwk}(jHCj_5&JiQV%cYc;qr`|&m1#C5u5+eNn+<!Hu|5ooNAx456!;u3$MNqWMqo+{ z?*mkr8DR!iT$pTbrcf$z!SNlQr|0LMJTv#@L$W|cTe*saD+|w(z*bhH(sj1R5&b;n zW)I~GXC`C<gd-s!kpIIa1Qn1B5CSA1*Zkq|00GfVJS&Iy%vvj8yRB^#R%q+dn@M|X z?TT%%=c@EvLbtn(w%cvH;1c)fvF&cn{lBXAGvuo?z^k(CZ1bjrfGxKa7ZP+yx}8wu z+!;yuF$F95`6YkJUxJiNy3}2^xyogm)2b-$#;^Ol6C&JQ>$$avN-&cEG{D6BKYp+4 z{)V%pznbp+y37Ml@GuXt6ntLxB$#G?)$iNZL-Cu6rJ^@2`jN0Qh<+?xCIwGdu-Ot; zg6Kd_M@rc%U&=6Irm~j%+HMRK6aVjB>fh<-%<o8AFcg+$2-r?yYS}69j3%)jIXbO= zex+aO^lzaAc1;PlykO^1!n^iBfn5MM<_CjP&Gu$rZP7@Lkg<%hLo&&{ygkmd{@3?^ z`udd5BpYS|Gyn<<A%2!e($>}a=Mh@bdwGIdK*H!)s5?Lq-1gGT^UI6DAc(La2Fv3k zG$7*lTf>X{iC()~sYB?{sG_ZjwLAau7QcT@H^Bt=EyVCTDBz6JndTu!9FX?+m1=cG zlBP=ZN>y)k&nC|*&uUjh-)q#fZl^xnCg!+izWn(U`G5Wd@skMw2|^?RQYJxB!a~X< zB+AGI5SXOhBt*&dQXR5vSKG3yTP2sfmJI~WDw2}jB3*Kq<=WNzcABu3-nQj%>|@Vu zuJ?&K-sd>SIi2Tnp6gBhEaj8^kR{|iYa<yKWIlH$Q>I+L(eHI(8a*RoG-UB(2UA+O z(sH?!HF$5Zs=<62f=j7@A*8|#u!j79Wg~^oMk+-rMGD<TR~NbPlE8*nm)!+Hes$Rq zXp`Aq76OxGA-;|Vqp%L<8XoZip#?@8j5b)dEOBc;vMla|kqPUs>C&oIGY;r8c1-NX zaqa*+84-&cnsEa_e=qEN^ZK>W$9Au(sv09AB1S|+bgzG0e(aa^--SrU9+ROsC?XIy zh<Ev0-}~Hl`@a90>YjP`{hZxBTn>#CA|gRT2yT!dAq0^g#%4Xv<&~@3t=>5SK|ujY z<1;RqT7y%IlgNG_u_-c!E`&e=wMB6EN9b0M_PhS5L6M^+6a@(_bvN5)c4rc;fM5WA zpry>+2&*h%?bfSHx4g_`#P_EK>$8;m{=iNEWElLvquHhpwr(B<uN~Pl5|lsC@E=;S zw;#w|?CAMyn$m7ym78p@eov=*isx%SF_A`ayq}}<eK%>v$x8wJm4B5jb4B&T<0@a< zT(|1Qxdee@eYRw0z4SJ~C{xU{!X~@2Zj6Qs9!&yITZTCd{<LJ6eL<6_(BKKwxr7>z zp~?kRIEON4P~uTiG<x5hjv*RK00~;DU&i3fM%9C1FbMiVZ#4aHZ+v}IjyXCuXM1+9 zkIlfT5O72YA_|8+^LB$p@w%ySPB3E3svIMfV+rwYI#Xt@+>qhT317ci&#A85;d#`X zyFI@Ka-SE{Fb75c|86JxgumVVlfEC{>+17P-lsJevLFcI6_kIA*~aEn{UCE&Ht!3D zYL$-1$S7NM@@h$j-ic@+;o`Wr*Mb%A8re0n1n9*}g;h-AnDk(r0^#CJE;vT)q+>>g zChl~)=y1Kw6;*Agmxa|Ux+<&Rr(ZeS1{6LdJF6LrfJR{fDj)zsq=Lf2QM4#H2?9+8 zB%z4Fo@iR8=|}}*k`BWi3gv{YZ=5~Wq)4-52MqH<_pC$+21~kK+FYngs~v$ABEh1b z7F76hT>ow}8m4OWmqwmRfkuKZ`yJS|&QSi<>fxkWqU@G1Xf#c;jlq%$TZd9ofQ+(M zwEGUUBaw$ye=vWW01Tx#K<#Y=jCki3xIiViO@WMDf(7$y#Nb2P&noMq1r`JRaTrO2 z2EuDE^@yUi-S*W5C}NI6S-*DY-@?3d$0Oy4T@|Gn+InPLo242Y5ZM6vQ~&00d_yW^ z{Yc-Q>KVEfu!^D8V{||r9tX&n0ZoP0;hKf2``7^AL5XN*`rV~c_X+n%;?G^m0`IPt z4nk&x+wu5nN-%48S?sR_m{rSqq*wOFIvy4YJaE)f_#OfOkSfO`RD+umiap1u!GOLn z-5X8>MTA2~T}h;MojU|>5dG^jN0AWCh2=HSfm!wup}QNlTPloab!JFwlF!k0^M#a8 zY?wZ9!*nG4h6m-e5zsbEH`)rqr0}MD7Y(4rCKry{`Yk8De00K}FJX-7-wO%??Y>*n zDp~{B#=J5Si>CkklnQsq=G$>QI2hR6fbXem&JO5aBot*2`iu{E5Dy^ZjW8{q#eutZ zK?0uk*OgQ{%cQJnL~N&pBra(3s?Li;UgD@P@gJ_6vN~pfJ2i@?*bBFwBB-t1e$4y* z^T~}BY*@j{h5zBE&;dxTPRoqn$Bq?qYCzpLef2UiEykx#)cB-Z4A=A&$=b^HA<%Go z5B2;^?nFqedTRwPuUL!_F^y_l;^zIDOic%An7#?VMsjA;dw*sE4nJ=Lz9j`NV!a1a z#Bja%{}rj5tXqla?*)Xf+U-zw;`5+{QFkln2S*KYFK3{H`|T_nQlcg7qX_&9JW=Wo zoAU=U4VrKZOx|}-47jBS>`HTL{$y6X4*CpBu|wTdq4Q~2B3p9!`+S0}h9Gxua%A@O zY+QeY+Zb?`NgW?-Kt66$q+z=9etKI>fxH#@xEfWsL;tN)YV3c9h+%uKb;4`>9vA1J zn8~Fb-ZG_I-%7QL%1f)J8RPLCG<2?~I&yR{O=iwXfmmi(-JWJ3SM}$uloahWSUnle zzpN1V;D(RC@a1mdJ=P*s5X6a;?YR($3D~Jg2=dc2mDAj0$61l1Qny%U70%%z$4q8I z7D(kv!36d34K*3UV3T>hhG&phV$L!l+Tq?@27DR@cH}+NXrt^1HJT_Agc{Wez<Cus zIQCFyk2Ua{)^3f{BwcEg78!@Z%@^j!Sh~dq6FAFSq5z~FvX)}(S)^*W<omiE7O)72 zkSsnakcmu<8|(xwv`4$Mz^s=Bd3hSUqP{9m7Xi<X!?+7XWrHM28i1ll2_TXe&nwER z2dc4!@#>FoMN?v!4~DUxy!i&nmS){qJX~p+2|4t5O-gd`H5rowuSr4nza}}^SI?;5 zNrGx&66DaMPq3;3SY%$<Kp=pd7r^w)khyc3<_|_~0k_4+ISOd7Pt)v05N9+^(kOs6 z$!<(Gjs~JUZ(^2B6R*q@xG{pd$h9ziftQNBdI^+sc9@zX6uj2S;d~PuYLOlbFL+8# zA=9cZ2y(yCDUqk(IHfIwEe8!D;7nOQ^<Sre?3A?z+yf9%RsVzB4CLU}1p$~^<Y@u- zvIV0y8$}x-_51~<cNtjnv(R7g9$>_gMp90kTce@Lh`eEH97bcdGI0N^afX-pH|r-n zG$<;kcJ=K#;6BWrNqMv}ITT(&Q1~(jjf?G=)|Ccw*L1n$tYB_9QU?hQDl8~nuY@Ip zCC$v)?UH489JOxgtq(AszylCbv4~Pd01*M{d6db7Q;8HKyNL#eWf&Mcvc(j7r@fu5 zx5<_YD^)37KGV}cvT5j%Ry>HPg%}hAKQgx1Bo!><9ARRox^h=!9cp^5x!7E&a?!0@ zoTuKUTAKLd!2T(#PQD)Z=A?wlI+Kb|r;_9NT}rCK$)faUz^jSqvm>@}nb|gYnlwzB z%~J%3@e37m9+*gG+_P=&jAByhRY}+YwGe6Gyu$lwDMaKUih^a-^2(mWs_l)8NjC6o zrj18g!V9Y*u1D;^_j#mao34~df~^32Ld1baelyQX@VU!AYHW}SRWu7c=CyRS!Eu3$ z2HP*3)uOWCbRYUX7ke9aPOvRNu<14g=XvN)18c;Dt^D9zEo-|uABi-=1XO^a_CD@= z##7JXZfr^3MsL%~Dq3d=;(7o!1txXUG+g@@aiXYzChsOuC>&~f%TcL260Pcuw=EKO zxvCg-CzZ$<u5_>BnN7wNjY1VS@k5<ub(Y)+!ja131R)E^k)}~+2?;F5SjEQM(7OaB zgL<P?Q-y_>5^`uMg{UldiAa!t=fol-RDo&__||Ndly;b`X`8(RLtF~TfF}6j^D%(c z^j!)U&i&Eo{bK7$jtZ$89!E<#3LU~#^m(`@%-~$oZ#4&-rn|f>pHMQ!R+P)bEs!%- zH3!!l2Cd}<Sgy*R#+@MQh1ydo)FQP!BrE~g0~$)0f_^OL=DOfHEYT;um&<6F0L3<R z9;?xs%dL=|dj}TqRV#6~WV}@J1u)u>%d58#4PlEl+|nn-tI-E}b0<*$WcenyBM_MW z?gU^N8eect_O3j^33?o@fR`5HkyjuV%`AO(g*iS10fnt@R#qo(GIzW8KvhlyGItvU zh?3s#A!OY6Xk>4-Y}Gc?$gAL;3#Fa8`NHLL<OP7%fnxQ>i{4PvdWrii_Rgc%?^RhJ zlV+4#t%93u3}}>{aN`eXw1i0SpKO5y)xU5rYcz#k{7y2ycdR>X(Y^)m0JVm^m-9G7 za+_Ltpjq7f647Lfa?+73nfJI7diO%c7O}QQTSXJZpS#Dw5jPv7iAt^2!aML9^^9+! zlzHq<S)n)IO^t21e>cshSv8_e{r%s8>z(x#smC&jX(g9IWL+IAwpG|>?J3gQ<2`uH zK_i9-Go2;fE~xuXU8N|WW7C0Z(ay_dw@O^HP}h6T1GjYY(c3?8==8I%fAfRhKTVKe zG99&0h(*(-h}K`_E$6c_o>FpE8SHH}Ym8$xOR+A>C%n2g=?{k(_OA45^jHp%mK)SH zxPT+4D_5?Vk$Xb>pfJI{rOvX*3>cw1?$k~FlU%D`f{osZPi5fDJDNfM1Z#8@w<r%z z;_3q$worQ4FG2#uDE|0*Z9Yp)YrGgjw|gYW<QtTW6cGXw&$94auNDk}UcV6G0hO)h zP8a<m_p#I1rUa!`zRIgW#8%lVut++`xuNdPw(!>MkmSiy6cfZ|3TlUZ^k>WTn!?I8 z3*(<=0#(Zi0-QAX85UZG=Ga-*d80zz?$~7HwwPsno<R8TK678%{TGDJZpv8B^yh|{ zfgM~7Zsyr(8)vI-BsYw84SyGZ2Ul|k>44ZD6j2Hcc{%MRX?`&hI{hLQYsj=NYQanZ z@G&zPV<A%G!_OncJC~WTkVY=M9(BlatPbx-P|dYv1n^PM(SqcM6(o`)p@^5<0;RTK zH=V0H4u#DF#4dGY%L)|PPnCH>VH;iqYzG$&@I?8|=Kxeg`~VBu^K;J!YzvgI4$AeN zC|lWohVd(TF+W1@e|upG!79L)p<}LfK-^AQF6{dS_8s`Bg*wW;(-JO@6UhHA_B6u* zckvBL66H7th9(>{kMTRDlxyAK;?kZsSG!v6o`%qhV>tHXJ%xco=AQ;@lgrU3DK`#o zdG8dt!qo_v|Dt_!cEc-cN`QjEhLMtt$}eT+_8_B9JcCxJ#sn?aS~#kGEELBc{rh%K zO`{$sV;CGFR8cLD&Xr!Cks1CD9KquCvdseTW4cL-&$-V!u5W&@Mv9-1img>%_O>3U zh0L7$n<Ch{R7-1sb^!(3(+Yg#@fV-l(xqg4-1HqIK`c8xW<-v4HxUICfoN}_0!Q15 z$(+g~VO@lsOrU$w?)yHetSlmexHLCbYSFNlu<I%x0X$@rH#Fb2RR0u|SW_npfoz8> zC$B(gls^q7StF++d5~TwZ@NTd`6&93s{MEG6c6!lHcxt9#13z_j>WZW_IHZ3;e?Mq z-$o2y^<}yum%ctNw(tgW#m#<;-L&n^MmDwiC&H<HazDYi*?&%c&T=W9t<Rxna_*et z=lWTl`6bOQdojKEUc`%jd2vA(cF`{Un&gqZ>R+9&g+Klyx3B2x?n7SDU46IQy?0?J zJKc}><X+wFeY~UH-s591<0XEvEMx`-r`)OtTuRLOMrnOZ9<1Lyn5&`aNo(74T1dPQ zgk4>jvS|WaaSmb2#}=Mh=S<k_YZ-SX5Jh!l3(9HwWC_X#H@70E#gRbj@w{W*ou>7L zEN6k2@p-?$qNdkP@gxh`cmrt9*0f5m=JEyQ<5JQ1M(Gp-lh4l)`a2NTEr~29^i0Y+ z%3EfbRX|4Val8ciDq~xCwjnTofxMldNu3v8$~L`AJFFC6EniFh#3<v(kCC#8P7-k9 z^hVm?tte)Z=YKDWcVn@!Ww{P*kdBMmZxS&Qze#1{Vw;yEhJ{WUY3+wJZMwIO47Wma z7@Y)gRiQ$$?cT1Q914-JH0xJ%iw(^Qyy?a7e4%QUMZZy&7|hrXhgF(&^zz6xJf(mI zNf+Es^D8aIl00?W?>22BMGHs;Os2dKfD(#ol3v#7N`ysXr5j>a6J}RgPr!)mE#^g` zCSD*dyA*y)i-2HKTLueg3Jj{J{5JASEKYmmy?<opI;UJD_n-jKiuUG>Y^OWND+$*% z&iS&RxF*7Z9}zl&6J_J9igq|N;YnCQ7P4VR&lZ?MwnR7f$OmUA-jw;nwU$@ujgdo( zZm|xNglp!#ZMQIE$lo|kyBaN8SoSOKTdaXEHK`o1TG~A-w0J-VI0)U%n1P2ot>fo@ z1w3}q_N+tzCfuqx6~$UFFEGL>iLI<gzF1W~Y1z=9$jBIrpRCyiBp&UXKx;%PvC7#{ z(wW=&MW?~$of3b|QJOq}&;W0J+OF=?SJc87?esbC7#35%2(%vXSAGeK#^m|it18H| zSCx~eaYlzZ>j58;#owS&k@em0uWC--zN#5{Q=ifyw(JfzAFzOH|F($xx}a!6UcFr` z@ikb^&($*AUhxH!ySf;L-<^l(BKU2l;77o$4*o%T;IDq|5Qu_>I8J}u4cXTab8K?L zb+7RaeoaBdqaO3Prw|wtEv*~}WRA2f8ZWBm6_Zky4x!W>z`(_Ip&xh^?J0=qd+d?% z%tK&N><>VqnZ+(N5%XZul3EQTm}F6KQIf2L4EJLD{s-^GB>wwSL{x}!9s{oX*cNRN z=#{I@*9#d;M_>ml>1Ze@K9HuXKeZV87@DCypJa3LSs?%JcN8}0KKi$wGUs~TRZ|ZC z^)J|wlPz(?U3`Y$!=f3-lp?1U5F9sJSmG9xc-3oO*MbT~m8+GlRV>P8yElX4MFtU* zP`HeNJt#>aQ^cSsgw|W*iS#A&WZV?SliCKQ0b4SE&sK{g(8(3UEZ+w)`0p$Wx_Q@X zXIFSBsjM;KG5!~C!9jqArX>#Kccs{{aPe=T+MvRr7>(&Pw1W<nroz4kHwYmRdwXM0 z7E;8ZR08YOKjD_Kv;}gJl1>(wZ1G(}v_m+q2Wmxt+*s}jh2n9WT`Y~z`_QE%6`#|C z-Jtp<Qh@u#QK%0tnbKB=C#nNy@1Nszn_Tu80ZXd!jFjyZBEy@fRBPYJuGVU@dfko- z%jQ=DolDWptlDtMW!_)U0+mEy@X-obIXQ4Uzf^hP&5n?g>)VjXELR4EIX(7XGE`~_ z^pGExJ+j;5XJ7&Vv}I$Nho>1_<67Js;%DFAzqJ>Narsz2LwvNYKV7hz;HZL3k4;bK zZGtJbyvxNP{$+>T%RGy`y1>e}jmjXf%7$|l$&lQ@K#tUv1#sk8B!;Es7uPteZ7~d2 z!qid2zagx^#$b-pX;??r`^Jtu8;%os%YLa;6K~(E6>Rp~?`eV^Zu*L(iF({4hUPlC z1Yu71PTMuf7Q)8%Dza!1{o;FGv=UT1Air{H@NjecrAn73yo2`?nDH?{xMrKhhZSk5 za#(oTJ5<$<@-IkhRuEtH5NXM!u-XwW4bHuUl5X${Z@G|4l#*=9a+HI7d)uVOOkw4? zruI!P5L<fUmydTC1S1XuaZovGQf$k()K|kuzLqy3rQKlcE8j&>S)iuP$EYSlFNDOT zi5qyBGjCwgsx3!dweZH(FF6I{9>cf+EFoiHaSfyjqmKs0Cfvc$Gc>T79X6uTHT>-= zz}%-vaR4XL$^>;Nxk`}Swn37ss*Q_~mnI6@c7Y&YE6Y;k;ch3?^n==anr2($sX_ko zGNnp|1ZX=)^54^2iq|-7RvIU5f#g$XJxQ0MjUZHOLTkp{;<)5*^2jnQGH8O9vnz*- z)-`DcjnFGrh_w8T?F!DW@>YU+^vHw+MXP;M&&~kf$t9JO4`K!4)~-T;V1D2DxItO6 zx@^9bWuLw`NoH4kBVMf8G(YN{<Z(=OpQlsHU{ygne|<XXhIUy|`JGtxgDf=KzAP<| zFxjTNXh$mg#l))%89SsYT6;N0p`t+;km-b0Q)Cl!b{T1@XJCWAQCS3c=P*tem7oVN zO>fE*Cs`4|BaWTl!(ppwre$-dUp&Ws&J@}`wG~hst>{@P6-l#hOw>v+BLSY9?~K`+ zO8HGc)0HilC$O7^9LzAIL)WrBvtf<Kr^|DiCFH~kYZxdEeK%c_q5x*U*BBP6ZW534 zo`*XtvMa4|pjeefLZzpK57@n%)u4-`t9U^<fkpyHWoBi0v}cyQLf~i@V`lkJ<NVJq zC81ceRz-<W9uhP5CId!R-rwQ2mvV^76qR3=X>7AfJ_bd0h7zfTxQ64o?9lLt=Rl<^ za)Ick!2zJfBwGa+C&nTy`5j}??;3Kzpk_=T(4Dv#XM+%cq@Y2}i;_8pOY<ya=!+9d z`1>oDl+gB=dO<y0jI<ND>lAe1LwY!!{xU3@mKcRy$B3xkT^!L!w#zwaW9&#yRBm5f zfd#n`C7Co{H-8hV+d;XMWf=1#b6#bu4UVoaFMjY@Y|gp1xVoVIAotW_2BjJM>u;la zUAt7RFIuQ5t{g(Ej`ai%8hv&rIr_8*Pq+$3a%nHy<-3H1m%7+GTwtXaUgmOFf6W(k zL4orWT>Jc%Wj?4#E^aEBU_J$ab?j4aocOuu4~*??MiX<Lrrp%GH>uma5P>zwo^>vc z$qq0_DSaA53ht=EOk1k<KApc~`9#wuGBdu<P$7R+YTz&ObbSJ4ZFsTfldyFL?Q3lB zZcdC(#1Wa7iWGW|E{ostLq%rM!oLD%*gxgAaz{pT+x_;!xH509neAA{Z|7)sDz?r# zjxB!N^rT}V-3u{_wp$d}<Bo0lj<(qxpMnj}p%Ez598!s^@=C(grKm$qEy9|n%Q@c$ zF_*K5P^Ezf^g)3n5Z2VCL!%&8CTJdR%exA+=NX!GDeL!TwaW%wvq_xQ3!L1Z--fae z(DY`4au%83XB4xKX4b`+A0?!8Ut(Lvup^#tdkVUIbD7Kz@W3f%GK1&3+mRC=IW1}m z)gp6vAf}PE_rGN<McX7~^|Z4Xi`l7D18Hs@b`)%9KHY$qqYmB<JviSE^P7GmRbrgb ztmj3_>6uXfayV9~TD!UOqJ~q_(xW|=<35=Yv_@@grK;mi;)ck~!6PhZk0;CXse!WA z-b7~FQG;v4VFgfjqH09)Msa~>(1cu`8|>Aww|1~0xzY!*JZbcl4Y*cOsmbb`<4d&N zNu8jAjd$j|4ODEwhpyZEz&}YC4M#BB9p(|QG}>W58FjRyCC{6YPN*##4cI6SR7m(! zP!uX_;LlzRcqf@cb4Ng1GpcAMY=NK+htm~GGAldQvdy}JTw{@Q9b5xC8r0`EK;RKo zcyy<!7^rCE-tV!9HHq<ym`K=`TA8GxuYHRQ;oFdFsh@waEF;t~CJ=1Sp(a@4n48|i zPxONzKgR3z={{M53VEpp1%fAz3109Ah<Qurcsk;8fBJRWQVvx|V}1$UUtPG5U&d7| zRf-`RXYop9l;UotcVus!8=owC{|9oa$M`=RCo#KWal5E@*O~Wee1a}c5Ef;gQFcZp z+7e$?rTn2fp_<{_Di-T1EF`A5n2=63o_4|OwvFAkNxDRMO02U>4i4rJk->xmqs0yk zjf!2+QLcQGUFvFC&kvFPzGmf;a}<1{hw`C+SRd|3=2$rJp&az^tvyZ9_nm|9(nqih zuv?+tXBy2}!wmA+9WNtz=+)fSxoVId-~uD(Uxviga}ezR@EUQ0YBX>SY@1z^O5rI| z0AIQb6pBsvnp6Kl!%iUvM}i64{Hm=4r<o2%*M4ELn^Nv4-~O##{uh9#Wp-86vmLLB zDXCv1FjH_oExN*e1;#$KfTUP&5ql2lm(uSs=PR^KKc*4x*CPHUfV*>ri?Jci$TU0e zF4ia~FRWR9f-cUJ0CB<vxaI5b(QIO5M|?m|z=ZqFbG;I-MwT2ktEPx!<v#lnUC9|i z?F|wk7H;yAkeYR)rw`5l`D$s1V9q5d+}Y%zaE-f2oBlokdx-elg=)lcy$e-|BedD% zF%bBB_l<&xkoO~%MFzij5LXKIZTrl)ynDM)nsR2Y23-3swFRAxW4|B#la^EC#Oz<G zQ+uswWyb;_nj&?8ny-jh1C;jaQ>>225~|A!oI2q$XVn^ScK2f(<*0^dU~Isw-PO$2 z-(-E)->U%;ys0Ybzs0xm145zp23O?$4U10khw7A>vsY9#4aKCE0P<CESlgimUx-0E zb}T1!-cQ;Uv5q}OQ%fT}d$FF~#S*1(9CtKLcW@{Sm&pI0z2XuD1i!|)4v8akaNmVb z!jvqu<O-K|EEn0!FMGrI<St#dKA&~|l~MGzr&<ULYmAzEsdRBZIiGyn2G}yoBJ3+) zc6BOd**-a#HDY&!C^?vGR*Qr+if>H^n`zrDsxB{U&OR*=TBw*H7yg7(X}GTtEG_hE zfs2wT)_IpPgS0?Hc`zVa<GM{}11lz{6uF50_J#ujf5*Y)4-qm7?_;l4uzJvWx2sJo zNWXQ$WbZ@^`vDkDae`8Go4h>s4?XsC{3yg|B|#LpjAARwju|he&Gl{zEpWrVrV$!V zSx#ej7n+sBc#(%SMr)!&q&L5#7N01Q<1~-ew}SO)wO_qGr(5QjyZ8uuRU{a>&FnBc zw6v?X^ve`^WIraC2;25Fc;oA$wB2RUD8TRpc6&>$WFQMsAKq!aCHvsImK&AqO{e~T zZpFn8c#hwL@y>eQ1)F}qOAq@6hsG8k8=OQiOcW7=R}|nNLZ=xzZdgHC=B3EGQlwBt za#wHD1<M7K)9Z8`pwZSSh>3|%!6Vp{N~EnCqcZn>R36M7(SM>vx>>m6IYt^lgfT35 z&a%^84G+FVueVD5R5qXVB<pfYL|1l4;qd?=KbwNwfr%>uLvpFq)NxPe8NxnXin-zq zWTD<bND+fXMj!mVn3|*>5M8qt!9@lTnrEA)gx0@cr-}TIfp(+nqCSTBVhc}UH*BGE zXBowT@W7&;Uv<OxCSgZ-)oJn8vzA5uU*7MTWxImHsJJ&?8QC|tPs7!wLkzPIfAY#C zl4Hjj%KhS~CKs%H6&Sd1>7Lg%Yd}$*)ivX$B*=TbJQS|!XFa{H2kS?a&HV|4CfTj$ z9DtCjzABiIGk!ONb6J5APQO(4pdS)`9ew4OW!<;=esfA%ts(BbSn_TV=42R{xE825 z{QY9fnV?;#q_$d6ss_-Jteqvev1=T5^*e2*gmqm+O4ujMN;({y-z6eu#YN1axv-8j z5I}Q&e+D5w@M$2)k1j+y`2jQ@-F@kS8PrWNr}G`Cs)z0p)kf(5uXmTlWQYCRr<NUV zJ-iQV@5K64=s@_lsaxU)g<)7cwI9h0ER__OqEF%y?%HY5rVAc8#^40f0wHk&8BZZf zUWMc_aYaW9N@^9AmsUOVCST@}XTJ2aA9{zc{^*Z?^y$C;)!+W~%OO=avjYZ=KK8(& zqsAV!uupb&lM7eb&R%bB>Gqbce?toQ;6~4TnOiz?`k8lm=_?<-=4nSy++oSN!wBCJ zex4<^KHHM*EU%R}1>LkB3bCLVTa%7ErX7z$)7mzH#q!7>yS}5OSrsql%Phq~zW~6* z@yYe*UCx!#EcG$co6KhE4f+FL=b6T{Nsk(L3j;tH>;IZGmTlm-lPQyS;_jigU5g32 zohdFeJ!E)Sw^M^`60hn8H0U5h&k6#qEt7>G)&PDgXmaW0)d8ZQkEw|9CezN1o#d67 z%*0Vb{j^7|(TUL)!YXCkgjh!Wv@H?h+Sn3wSCpmLoUvy5?lBX0fYL24*9_d@g(B&B zL@u|a8D(eIl5n9tA?x2n{VLjB$k%SqGOto0?LKg}vC<?KHiFB%Mn$)~X06GI>C2$m zv8pH;Dj=Ftd9k`S<!txO>7|sB7_?SNn{BtHQ0CctYHRn0UCyLfmK)R8Mvf4>J@Iu* zsfTW3<<-^50_2I;gs8KOxSyjM&PhE${8gykl5F#$RdVKwyP>n|?`}|ocEfas0KOk8 zTFi9h9Y)I{E4NM(ec%<Y*v!!(rEo`Np}G+X3>-6ZZmmlarw8hi=swcCQ;LI47?R1K zYD25T1L)Xms^OCb#z3^pic-HN2W2eYFy;qGH=?-j&-H(;Bj=T^6^FwmPfM;7@rCz= z6%C8s82KV|YpGaaHy?B<DS;y89Jk8m3)LwwxE0r`gwji+P`p@JBNc5Sl<KDW+GLCE zUh9S51<&0~&RtMuuZ42NB7nUj`ab>)cTFS$v((z>_wT%UfW#RQYUw1@pYDpZi00d# zlV}m~>7sz4--uZ~X8BD>r-NKX`!(n}p$`K&gyaX_C*d}|m9ET>K4fC;e#2$POP=ZL z{qAlN_Xb6Z8LWmJsE{0$W}qU<wlQ;Gfyub}3E$P7gyYToz03i<JyHlxFH^~F4x+s( zmuF}Wf+TAb-oXjOyP#@*EpmE>^YXI<!<Ih?{ciQZnd1~dyb2MSg;R;%vI^om-gz>J zKHTBQH8+}GA|TTMq!#@I<P*d1Iow;)6nuAp$q!)C(n8)z8>_TDRpU_(z5xnXP+-I3 zcvl;ccQ61zpPS*o37D-Qouoge!ugXmtw!ptvNcfjcBi`)O^{%1K0N9r)NNp$j1Puf zC*yEv4BX72nUbiOkixR_!+NcdK)gJ)Rk##Lz@SB7D0Hy5q8`A%o=X5~LGnH1&l}2P zPIf^b7?P-!2C*zh0pK%whBqy%Y)sz5K`iz?7qfZ#On-RND}5l&SSrzfjE~n7&v*r^ zUhl=X_sk)`m8@rWNp`PM_;F$Dai~Jf*oE4zUV24a+vM?&r!l=9H~8{E_3-G^vf|zM ztW~$;fi9cjN`5}Q-O?mVm=zI!dJ664Vex+PN)NEbVE>;3E<cU2)j2;#q~&LUw(WR- z!2!|mdqFm}`I9+2akGoQv;NH<y!@y3K7V4P10x^!cwxgN08HZtmuW&d$b2Htf77C> zmQkw;p(2n&kD4r4A(T?9)8Z8}<4uFH+#bJS(dOsn6zQl&yV)27pkR!4DRRlaPX7e3 z%<7a`Y()#q&e~l+LC9SA`{(ocA@Z&Tu6VP(6nUbD_T$V<r=uoI3WK&3mHc9bGN^88 z^Q1GGC#cS&&=D5dE!_0+5~m7WxegIB^y`GXCRwB_x_Qwpg2j|kJHB-6;68E{KPPje z>lwA-2JL?<F4F{6xQ~3I&ZvrEJ4is91XrxfBlkj;6eI>h9E_@V5u~V#J85^CKHyd$ zXO5piW_NcFg?yj32ZWNJgHg%U*Nhn{BSh~5uba4o${lwF_KD*KSmD@5xYwGEgBg|W z!99T3HElu!hu0Y@UJ!@?a?RC58EurrCMKwg-rKws+6hlBRJIqA)}GNdgLvwx)WM#( zoSa~rlXFE~5XzjLRegiv-Yj5@ubI4YN}&;p+Ybes0cHI@gA#I&#PWzEodQ^$sj}|3 z&oH9QjNfi8C}U&$C=e06?mOdW($IVk!ui%t2m4d+^L^aDF=&x~g_X>(ZS<k|p;`2t zZ_j+!UTZQ;*M0N|b!cWS8=@|>-P3%iYYuzx+5*mX(bg?jYyA!ZC2P5z%m2J}*;OA? ztgy|2`0)Xn@ojSX;3l-Cz7Hv2+f#Tl*g85mz3o9)n_vIsv}^sF|H7<u{EHpwn>bFD z|EW-{ai|5(cnd#A#5BQ?vmF#38r7!8^)9SdyQp?Ib*G?Z$9OzvVb;f-@RWzoX2b%S z$WmSAiC0Pdq-W8-gt$EWBSgz5$S+*W7mpNoPTa@d`?JB+FWI~~b?j>7CZXID9-x2@ zBbWFLM_eEIqm>-u>UIw4MoCf!&O;u192tN~39ZyRM3CWZ!uhM{j;3)`1AdlF_J?b5 zVRo36-J`iyxJFSdMcLX2Y3+Nj*kPO`f9#^=dJJ0;kd-~2tBh8+Cp(Zz2t?>IITlxh zqEDos!Z9hDFxitevZycTjzbq=-|a=2q>Qc;xDIV9?R7AZ?00xid(LS@{OTSc!i613 zFSaq|*?ixLge*b^$FXDZGC`c?@gu?4GqU@7*o4ky2B*p>SYEmN@KZ4r9RVLXso*F; z{$OrkoD{%+LQ)T>y%h?dG4PEW-}z4!+1(f$oc9iX4#Y6Nsf8sPGlQ@kN+{);*Rz#M zHM-kqaoK^9&o=A#$;p^;H<6AYKyk-x&mEOA?3h9G+(;h*p5)Uks?SU`sWYv(P}AY* z({q;;iT6>sN}UzzyFWUTs38_rCR&ZC9l{%sHC5$y$7f2NCsnP_PDFDrVO7NjGvJ?) z`uT8JCl)nF%z36-eGQ0#;cGl16V*Z1pJXf)G1=dEBA3G{DviC_o4f_=vl2(WswP+v zgFf#10jN2m_*HS`PTTKC@z_exMwH_3po)159ABK4)`Na_CPUAr_4zIAK%l^sWE<~m zJdt%7`(fL8<T@IW;2-Coj&N_OAZ2`kf^_u+weEi^^+p{SOUUSpd!%rgI}f6q1P<39 zj8H!3HeX-d0Z^n4FY#Rm$x+wXHxT;iLuAM>$AE3{eGBf!@poG#kWp9~q%k1AK{9xx zczDKFjkx`G3OSABEfWy~FnFOx?cWREK&brjoLG_dpb?;l>Uq++{92lCBTUbV_WZ3c zViAJ_b>bv*jvr>wq>+Jv0@lz<Df_v@#jf5oCLo7=k}>%ulqTc+I8MK4U(aWgCHbW; zwynx7rp^0s&$8as%?b9${uwbWGhyOom$=y_-f4*>NYGiprn&|%zXQikox5}+Bq0St z^2(|-w;ZXoVOq9>>-l1PC&gAT`PkK8!2f_L0c;ptNg|zWaw((~!X_vVeka!&6i`Bf z49JRLqT(tp2d8~Km(w))SpMo>bt=DedQHF0s?*LpP5IgoX35+|Zg7apyxTo1x#jY& z#pB-N`WS;ZvSxl-6H7Z_{NitP4PLqJZr#6uxXgaxlJ9XSutq@Y#qmY#A0O<04GRl1 zlS6&EkRx{3ri$vB%L}o91z)f=_|7NybJ<_JP0q|MoOjMj%WWz1`DE?qr^g319Q1o# z*}mtF#qQ{B-Ox#`Qo_YN%%qZuXc*jFU7Vku93AWjo4G^BC2oLvNLGG)m?uC6LssZ_ z!j^y})hUR<41$@^3_}V`=uya&86_A%KUB($Dhyz@qqJ^fL7x#@CagHJ5yC^5Qi(R% zuhBt=^gHIbK_`8P;WFz+He2O@L1R9dZ@wRvIp*g$y`4mwTyU9;+wM^?V~$Gxlg&}B z9`<eLDmwN%uGmRu)Qt0>kOtXfuI46<cu8s|&DxL!W^6U*op15+^n_g~8iOZd^r<uC z_@wozUYnC3R_eq!W;PbjXM)s<<Pa5Jt~&07pB{MNw?`iNGiJdJ^;h=%<%9gocgS9l z{4aaKmx5qGv$05!V9J_2KS9)lD50&)PCj<Ks4p)gdx=~wdr9GR12-XevACEUZeTJG zNRx{!q=Ha`#THv<rBxc;?QYHPbDtIudQdAuSZl07tg{YhgN@p3wpoX5cIdRrE*tH& z*Cvd0IpBb9k9yo@1qBJD+G&?GdmWJBm}7FBa6+!rF3EGnb!Be4qsjvh)R{4>-V;wW zdghrXFTK?4jkj97_g<S%K5O^YH=Ta^soNia^o)O?Fuk%@Xo~dVAsmC{wG9kj`<mo0 zz~;}^iticxJ!95Oy2?QQ|3BE+XEyj3Pqa*^OE$3~+xa9p8Mg9|$Mel_eM?Nuk4fN@ z$)5Hwf=o%x=8=fZO+Y>i2sCjNhRMFhcqvs2D)3t=%wA%<j3ZfmL2)MSd&sY5E={=? ziUE)vPZD-iA?tiBIEh0I;wu_u5GsJ?Zv;H_vjma4BKKl}o)`rbDqpcD>kxDRWz}P$ zC8XM{k=7daUw`~1<=n8jd}VZK*yU(>?F<qWrohr7pj2{HCfwz~APS+~1Qc`N34$G# zr^GPcNZgvV&01?yph5v|2d9(U`Q!Qgv;uO->@=CZzjHw$qHoZg!m3i3G1|4XWISEA zd2t{+$m-rvA*|!-LITCuF6i_+IfOxgtWOSujwLE7{#~vlwgo?~&Q)~uFe9?5^`^8@ zDq%FWqBLS@C|px&fH62s5$7dny{+UJun;_n^=|Kb-PUMkCSpIxab(~y@g!^tAez<q z66!qc^9H@fqJ{<9P_y*5SE$WAZ-&%L=|wFzS#X@lh0H9Yp}~W?bCX>%1Dgr8qf`c< z2=3fjjG<SVzI@3Ntt8Ywb@N&FJhOcfsgLtQ#)K~PU53;$o1`mveIeahq=eXZllFGu zuutyXH`+{Q(zmW4E=YD>3S^7x!`0y8dyW=^Ym5D?$i})C^(k_NK4GkvlDzEJCgdj% z%s*-f(&WH1FNr!;T7D!$Jxs_%gdc};wF4MVfzJDXe1l^+?W99322jB3CLf}};0`aG zGqBAg30d6U;X@3Mb&VIf_>FS)C;+0A7QiTlLOwwvC2c2oQC?a`KRekFFGaaysP?A> zW0dp-ofJ;od;~=#g{zC)+#Jlq5>uLKywx$r^WX32F?{Mxj_KhTO)Y@#770L(it?Nd zkr;|EA$|ddt7wr8g9lBtYnGZ1L~T(=snV(CNOI-zrW90Yn&~Y~TMh2^7UE!%BhePs zme<)%>|^6Lq2=cKcrOT$CEQUm@I)BVOn;ZunuC2h&xue@{;B6{K2i>j+*VZ5_+fpA zKOC5yC<kc5WQSOAY>jdit(*HOb(0)Ad@W^JHcAHhAWzF^OPH2FECL~-uPvV_MS=y^ zk>(wm3R0Mem63!zS%=`(Pnse7Q`BCLO|upTfi96+5ta?()uv_hKoVQGQsiA)NN4-( zQ4e6q7~{Z5sbQO}C1J-Sk(Osj?A}BgVqvOpaMEqF{S<@zzMbr<e<g*vH1HH_DNmku zHS}_&dmVeqeXc3F;(X^>1+(?O;OX;ZnQO?biTdZ%$DaWFTP)*WwBuivz$RTwi_+#y zj9A(W9y3^Xfr&p=RUC(|!V&j`$h6eNl*p9anmG!ZWd)yCDAbMYz|nL7$dM6~`^%y4 zk!lKWl%aTs*HDw(5BHt2t55hG45acqI@w)m`6R5<UJRUQ$MhWmKQs6CS~n6d`G^8Z z>1;&_=R)SV<iyuNX0A&S1F`Ha*@<Dsb`{BbFom=zWO02;!lM{$*ASFwja-O<I9G=g z`J}rAlcW&Rl24krt^5F<M9uuJASh+XRk&HuXb1<Tt=UqtGTZ-lPNJYm`@MwNQfMx> z=s<6&Sq)#jefU=PvdK%4<!}NXbw|sd5W3`3-QPb4LdsD^ugF??+E)5m8>}g8;B^j{ zS{z9GG?km3J9NL>r=oO{9_3E}v}-R_ih74oLtzQb0?WouIWsZ`S9Rqa1uKm8mP@fU zKh8|U-1Lxyh*vHmZ-m!yx9Bkf5=YSeKCZ3vRYV*hm7Hm14v$(M`UXo@!v$up;eL_b zfmM=otcWy1IK_qyO*citP{Hos>GvN7>`7dJOU`g<VYzVU;byxpY3~V?oOq7nqFEQX zK#xkS>!m?w$Zo~Gv~{0x_bz=U_rB@_7pmmU4S936JS1fGAWso#uNc1N=RijK1`g>P zkG0z=$v6;CdkCI%s7=;d%^lVFsR;2Y@AOz3J0+Cnaw3Roy;#3J$ZQV@5UmSGY2;k4 zX<X1bDX@hb%Eg8=bD%-#{^bjOv%HCMQ#-^V{IsRVFCJ!cc?I9x$Q>PReWrm;$jpx( z;st6=sY-OgI4LeEF%@^8h=34UNpB$_TI(QjI3?&EP)|WE9|j-N&s<EwbRZ4uS<{AB zp38ex{5=g;w?E%|R=fw&Ht03Hj{GW|6e;3hrh(YnJX`&MXHW-A<>ABqynDGg>rEaB zmxO_FxOLnzM>1_Cy`D{*&zGg0)`+EJ$sJlAIg5Z<K56nkeWYPlYhc7vuSF4gM}~Ao z4mWhD8n|YvwE>@|aVbQ2NyVcV&PtV!Tt5^?qYkAK>zXD55`m&zEE(hPn=>1A|BZ}B z`WkMy02i_nJA!1>NxI*HsWL<}0bSM36Z=$dLeh9$b<a_A1-`yynUsWZG#5a!9kB$o zeqO`2b7B^oUx$73>v5akjxi%Rk-S!h81P25DeWij;Bu`wo3T0koUBuQ%`4^KCa}%0 z>`36g@H%mFW1q=e6EC|4^A<xA?(h3z{-2frv<q`D`7K}=yj|!*KiSuo8&qg1<-0(V zD>sP_@BI1q_z*@hia>~rvEc9o-@N(;`aZe6D8|-NyjA3E@1!w;Xd+>_@s;VyJG-t? zNi=#Mt=^=XfW8GqutCvh7`R+8C$#zFvVKauRjoBwu})e&xlKX=rjd#*YC3c{aFghJ zDL2P3127D2H=rT58-i1QhpV0FKrzs`V)FURc)7}-uU)c*_JVlC2oT+vLm06O^iW&0 zyl8w*2Zp3PZ?iAVKgd(~#V0er44NL-))T5X8NGATL_F(=@)D$<Z)&WSmGu%ggc^Uq zMX|P9uz@yXW-k0L6L8f|)r)0IMGcvYKI)xYg&uKhuWe_2K(rQ&F482yh$`Xe!4WiC z4|(6(g(fx#hj74I=x~qtTd39Xb|YGchFt<azN5A5he}Hc1;h9Zl~x8x#x*~8@viUh z`5qS9v9JnjtA9!6$JJuUM}=@HRm*KLIUTK_Bl~nlY(J+TMW2T5EL|?55-mz1r51tm zl2JJM_&r1yl}Flzm+jG26`rZUEA@UMV9>RcP?YZc0Pk9uj!xLqO!}2jy|usON5S2u zJHj~oIg7M_seHr&PNJtlcavUflU1=(!FXT-Xo=5388g0|z%45i@_cqfhvqxbgKKo7 zXxLaXzx_IpE-^v?H~xYD&O0T_iuS+dIXf4Wi}a!RaEb&D&;LWJBAMveq$bvhjK04f z77PT0Q4*3&uO?E)%Vu;H@UV()a}3+t=_YVrL5*7*$(HDBp^=FqfeaP8`oh1o5!I7s zEYtmXFX>07dNXciQj;U5ZjWzX5K4hA(A%I&4NCn4Pz!GT5Zg_xojTBJ5bL%OcOje& zWvy-9O-QW`+;z6luDwl~(mVpWk&IOlE$EKY%n22pS%K8h*RM-s5@=?!Mwr&>$Pa2J zwqAVVeG|PHY{g=_yN#^X$FOf5Iaj+iaT%pa6+~0Nr(pH$iJQZ37xMrap5(F^7`fYG zoIVr*bDMQ^g7QdAmgXOm{H_AW!t*~lE_^j<$;W{3BaKW_S5zilB<)_>0b1Fb_q%~u zPV4PvQddxS^XCFxn3@(4mg64I>rtoqv|ir4#!L;GW8KzfM&inQW+?b@W|?uo#2<u_ zyj}Sw67(@PqRn(05j29%P|b;`+(E70P&1cylHQX`F|HM+yEn@kgw4Gq<N{HV3k3zj zS)h`jO;^zP_AQe*G1Dz)+0M}!%2q>3hw@m#Lx(EJ0<fC2+DSL=5n89oNKe=fr|5xS zUjF~2y||mSqviDH!X$WrZ1eyl;e=x?G=#d)Y|<k8A{P=aP@{g7d!Pmggg!dKl#uWU zyPL9BSu!ybWLTR>T@|RR#t@$gGYK>jAF>KfV>Uqsu{^^>*JhRtc4;IMTH+TxMJeK* z38g_loG84dR{S1GTi1d+;QW@K=(_jrd*_4UH}IgUnmNS+O$9q>pdbuE(tWo9I$oB_ zvw9Ph_nw=Ct)P^)PU7OF^X3zXbuNf+OyRPtpoFZ=ww}SE+vQE1f2u|6ZIi>HiX_A9 zW}mu(t!JRAf(p)+Ur+{DaKMnv8oN9VnL_w_;nS=W>}WsjCC9ad8U&@2aYe7dK=2!% z&800uXZrw2KW<{su^y1mwL%obrR{#xZn$(AB~)EjZbU2#HNq$Gd6u>zo`%YhOH7F~ zigX3^y<;9-*u${)5`fybOMo7TL31A|?bTTvZ;(gC23TiD>p_8bGSH4L$`&%R>PlT; zzP65!&onZA#Dp`G*@sF?)c@TeQF!v<TRi^eGYOHJ%%5e!6}^JC2{kzb_l_BCZ(+S% zaW_vaGb2%QdgH;m+kq|%m8D|~MqAWP*Lq#BCW+`W&=u_uC#rS)BiWNYJ6;aU2B(4w zQe@ptjvUIyI6@x9ekdB=pY+Epl>JYdnqbQ?^y1n%D>4-bw{@W&!um>05B;np8o60t z-QrFwVWS>t9{_GFrAK-NAH*fmY?`7Z|NV&Y@x?!Z!&A}CX;{+U+vC9>@3)IXbl&9c zcgMr8m)xl@SkK_jt12^)DQ*D`dFKK>1|?aZ6xr&*c9zcM>EQ+(LD}|YUZ3`VUV+%V z4%y=;sEpI@isCYyyZil2D9T8lbjfSLk`uKPuTqvyb=69zSX}LNT8_D;epLc>qyebG zS_Q7xg~kQ1$Z2Q6TX-xMC6-DY&S`nbtFGI5)$dHLO&2P?#IE;aXY?A+BU&rE)@Er< z`N(G=l+Y+KN3djZS|evlX!t6wrf}SENzLiywT8@4uZ4{az3LYs_+p@<o=HA<f<7n^ z0s^VDpmGAUbsZ|Wic&kcIq<jOVZ&&BN?TJj?YX2*Orh23gqHI<Ol6)4h!J<-OdW#E zwV|^lz_8i)W#V>d`}T}O6b08Ij%(GiN>RmH9d=SudfLa7jUmbE4CWFgCqr|0)R+S5 zMeve!hi?n&w=r~Aqr8%@NB<wLqmenyc<HCX3aoQoaf>}#tCJmE+93~gzD>vaTUu+B zd5xTPGP-_~P=QRBQEq*oZpT~6Mx_1epxnvqKy<c>v+bt0t5ZbLD^%a#yUqo1&%+JZ zQ_uzz-_%4COcVuiS5m4@D2?gn$MHOPV%OSLlx{c#7Sq<x^q5Cu*Et@t+;J$pvaIIu z0OcM4K|sF0291|9zVP5&oaa69!p_^#JG;f|gc#0k?WmLXJUq|6f&AsRlW*XuH<K+p za#q(Xp;?Ad3c6-DHlZTPta(f=TT~yIss`UBFN7m@FI@=Ml1k=*KWpFy1nWIfq{1AD ze)zsRIHiuD)lc@2w4(_y)R^{uIso*LIh0LaZY{}vtLjW5axl?w+?fqxyd7BKHH6p$ z>kNqt5??`GYr|5=#wlEZur3rAsD#FBha}kkI9UbguC2DwH%TJm>3p4j3C+Zwb!@b) zMwM{AW_P0bc|mb4W8<}`OO<lEt7kveqdQs^7lY3F_7gpOqTh0&b~A3F%f7Q`U_Ci- zeku}wtV1=oo*r1c^EwS$ji@fj905(T>)|zwlkhp=a`!}`RX3hR2q(#LwP&b_b{k~( z9pCWHYoaKeySyoEvOkf^@K4ASwMyR=#FeFZ#hVN2USM-4o@*8Kh(a%+8UsY_KoU6v z4@^mn^_0ef^rGPpVr&^|hV*3stu{t&CD~&LS@ZdeiWrdHnIGxwGdYqw<tp#NtC#zB zHZ0X91J3`T^=NV+k$oek8A!|S6>KIZIHwUQ_!0&oNMj74qmi+s8~cNs>2+%WH7TtV zR?GT*`r^R4vU6VcFu60rm(oeTpcOO4y)lAL%y3)l4lerWRU(^L@Qq`N$5t{!AG;Vg zYm*0c1}-#63&#h2Ch|=04}Zm})5w3;1SDJ_r>3?u*q0tZM}Xv3l=z`HZTNH3JQeQj z8F6eYRk`Cdfs>NCW-rL8ohNRodf%6Ga>r|3%GzBFX$aSb{nxW6jyiY+vQ3Sbcr%R? zIpml@`FsvYYx%#IfaS&$T8(-ScR$l$puXc&c#zbiM%v=MKMi(%JKfA?WvvcUYch}i zWlqRUrK#S2qbr+R6zIdO51vDYjDdbZKt)c_2@<B=3!@8X!G;$PoOQx4!Lf@&^KTI5 z*C+o(xI4^1n|+KfO0(2|-!ukWsc+EV-9h=@g}2^v*6n_P9`NMg0k)NN2T>m@azB&8 zkRZeVH9>!ZD;fEa2>b*j4X6c5?|o@x2m=r0(FMT>$bo*;GgRF4!MlWrn;?ljOt<;& zgvfUwq<9X;NFYe$RG3ZRf@=z4irFC~VuP~F!VD0GXz+n70rZ4IeVL2fOxxR}oWOJz zn=}zrfL|pOVcA8-jwZwhFY7A)!f!Ojyd!kq2RuVle1JJZrkcxSqlJNMeCYJ16EJcn z^YYC!n5-4gG#q2_6pD2(hKfuM3mbq}@U7BOz|T0a3Hw0{PtzQ6srIN3U;!dPaugd% zUrs+75W~qDQisF5PKq=^z`OMc<|L826UF0ad*X#QbeK|<|1LYA*oMc*$#D4s>Qrn* z#anrx<px!a9B9N2%I%moO0s_v*>Q<&20!aP0VAQvoLY^@$2`-Or+gvLUOhH6s#s}j zux2ARNjTkeD^sXJ3KHb~Xg_vL#kt9RFR;NCD*G{2e@ss-lG2%7!YJJM8OG8rZybr= zv$J6EW-pV?ei#8-)`P~uNSdt;xTR|kr7Hv;=I#I{Io4aKb%IFYfi5vj(2LD5Ux3@8 zsQhTnT^dES1)+ductL*|!nI+k{8=P{Rn7^AKn0JWpqT?z#+)_{Lce1;>m?dcpm5QT zJ=tdWjEqp&0`H6L*iHvXfRvda>a}Og=Zc{SRTd|NqscQv&MM_tg2JNH)wCKbKgwg= zL99BQgkEtk#{C+6D7+F+NaHM+Nm)sFCz}(1b^1{avtkx=57NOD#1v@*f^e0h(^mp) zaCUbTT)m`wYEuHr8UcTnGaN0$mN&=~U}>3DT5N$@NnCN+tZIxbEuOl9{S{cq$m)*; zrtz~T@&m%CB?q92y*GOjzTbE9hh}LI?kipMig2=l&R+ya%IR*t8qEdq?MVClmAsnM zeIYZ4^Z9~8xO^;rMJ0eKJS{~oSgSM_G{ripmu1^T+m4P>p4l`g*xzhe1hYGhvW!5o zm!h6=V4wnPQluLb!p8}RxvUJ1VeW+UX4+-MAanAZQlPOA#zvTZVvIgY4^yayjbl|r z_|aWvUsFgnVBO6}#QXaaxv`G+_<a=!T@Cdh8Qmj@#aSF#_&9DVHivWFTbD)11Kr+L zoIcQopkp$9D7Tb!WLAt0?v?opVJFL)Mf^G|xIv%-Px)TjenD99vNQh4^YKj6g4)a| z<tfO__CagihCbh#ei~XkykTuS+Q;Z~%~c%=4iebi{0~`lnVF5bxG8#_P+0-BFO3Ap zRX@d#oKy2QaHpWexzR;NEC8ck2h*Pa{DvBxKA=ZNuW{)s^ds`*#D>wCR8XRCrL|Mp zK^7TgwE&ZuNox=lb~9)kKYD6p1&|3dMK`}`!guG~{3UPNxIUZo%#lX*^TfTDjfGXo zuXMDSCR)~BE>OlWIop|i`o<+d;a02#7nxdvbRVsYYnz*3dkP4zbw~JZ!fljKY_)tR zGF(m2JGil)p)Qo3@e3YjBG4AHK;sM<lhfP^D}_pD(;V6~$RU=gn6PCt4oWyMK8`3- zH_q)$9DM@*GyIbVk!3<?MPn3ZSTP6D2l2C+;t0lQYfN8C>a;>I(jt~m+7JySuZ5~I zmX{eO7YJ8Ta7^=t^sx7&(?u?r8tzqHmXr^G321sDWmMkU1dmyAU;%vWK!U5K^aWzm z<pYB%R-jrkiC~Os)6z4SSbM8EsF`|z<fP^>O$dmCCC$KNM1Y{#<ObtoBEYbJEdv1s zL3M*;27bJSjZhF~@qD+OOo_rtNvgS0JmV|xp+Azg^F7fWM6G8diFZ={rEPP83Ym5- zc8AOCz2MBUO2q~i&GCAa)S2}gO2S!>YO_Vv@?9lZ_w%%4bdUTq{1f4g+433Ioa!m! z(1;U2pS{rNlrpkXYcuDRAU_amj=Hn|<3p}6Hxp4nFF{B-wZZCsBu^1Y6h*1R7vZ=2 zd<ZpcoqnLWG7FCNfeKV4!yNSwD1K)u=vk;zx6-#v^IiHgSU_@=XfXw5AE50akdyr$ znxaF_%PHh;xsGVyK2~M739T|<RPTZYhg`uUF#k`MFz~$$;%s$LF$geDh_B)jVk6AO zrQ&pcxLZEtIRc`_vn(HS@EzJYD4V5DQ!lOP1GO5~S&%K5&0Z_rLf*#6^gt`OsNF<& zC|!#gUj?%2rdih{|LIey3kh`|u2Kr>jlR&=VG3Y{>ArSlnrM>OEi}3g4F`8Ei$HmT zEd|aE`ZMic#66LwkswBfx3qEy6*)HlP(&s}F*7x*mddkHC9wWYY6U{pO*=>PTY{;T zCCu`9j|o>RwpTLkgoWt{rS}oSDjenyo<IVP+vfKnl><iTeGa^;CgQWLtTM{b0QDqG zq&k9taxRo{wixqgdRb8n`WjN~;ang44z<a{0~8f7r%HiH9q=YRgJXRB1RVvRyg*bf zy~AV+@^x~C3kAk@G7W+ZRmd%iNC(w4BSK$k!`e*SA6^~6Iqggw^Vk*V2HJqz#cpTD zvD8LGCihG!zT8kpaTdsYute4yD4pa>%{a;9;RfiTXbp5D*GTWE`_|A|o*DfIu?ho2 zhrcduF(d<8NyR4QoKp@;kGrhGk7(aWuDK%JBOM*WJpx<lTZ^_ALLKLd7^Kj7{bs{? zZzq6$qn|=a{8S0}SeQjX6;Lj-?-&rC&_NvPy`{j6N-$O#nN2U$btTo+>?XG6!4CO0 z1<v5T^iXj@KwfCpO?t_z`5b{B5g=;{$Jl-(IHm^}6xwmHeaO+|g7DQT&otG(iCv4+ zokDYgX5hgIkOhc5er}nv<q~UrIpVK1gKT(c(5>Hvj=t#z`BFbPTl7b1%P=sbWn7e@ zD}Grz0eB;?nuw&dQ>RP7P#asB#9%AaR1jH>ECy<uQ|KEHS^vI*&}tE+By@zf(B(Z6 z#D-RXS7xZp#$jY3yw1~t@|JmP_{YL57~DUi>BatJ@2YK6v$DLDHH=EQPWbp;jQQ{$ z;X;c0kLPc!-_Pz$9JD0c(nuV9Zs0Hi&#sOhfnwQox9>7Go|-*&O)<3qkoY`87NtP~ z%UD;wvEf==_Ims+M!j|$tU|4(J9g6GHQmlV6$C-+rDV4)EiPUvx3if7O39B%-4*hd ztO%)aPqG^>@H17U&mLUb>d4|PvjB@Wl`SYJo^6iZL*HEit6&8P*HF5sivd$TJdDP8 zwNHsu*ER<(MYi&e_aSn7eH&p*tLGf10#GbMUEwTzQdbqUe9cjzQ~45D{m136!Ks4y z%uH3pxrG?zZYf#0?YYp$4l%3vaFsbf++Cnk7v%-nN)Y2n^PrK$Hj=RC{DBNd@tE?M zLD~VdRtnOa19&GUj8X<Efi<s~j8r6K6#-XJ5~|T{QZsjA3Cj1)^KOI@>tlN0YkMTi z(6*VwGt4fe>%CR1QT4v%)C2UxO9XzOom(Y}Re~~wMpY>J9%cQejkDtH1taJ$Z3q{F z89&MgHyEl)+jD?IDhAWZaQgH}&b6m1PW@=QEG7F(NM+<~Ued)21Bw6Lk1_lC59_H7 zUwdiP?JZlX-`h~Qx*P3GEeiW~W!CbV%-K^gY0jX&o}Ho50vd3%Za?Y&49k9u#jgI+ z6azEqRwRbUa!U(G=TMrJv!JZ#xRKpdY)sb;VR0lt>vKilVnZd_^nr6(ISkeG|F}8S z7_7%>_Yh0?$U-(nOl^Ltkd_+)%Sky8iP#!57zf<pWJ7GohCt42L`3Wo$NqcElUWIi z8&Azq6_RZ_NFsT$t=Y$b9eE=k;QP&l#ggV!DnV!qv%{#;N@X%9cSX4B36dZe#sS|e z4}u=fSLLvlnugE9lg!g_Lpt1MOs(XeVEud_<P*-*4{(-e;;N)*Gy)sbBsbJUuMbT? z={&k4JGKPKeR@He?kvIjpa5r-IGgpSjCz(X2cfXm=%{Dxv5@c;G(OG75`<=RwDtS| zrF{+qLaP^hGQMVdaGtJI;!czGA?1f!cW$W9Y40vIaF*{vnVcTY+PVITq%Vff1Fd3C zm_Lt1+JuMC0@SMXXm6GH(biByBWlH9cC=(^r&ef)q)<<oJR<|L+&ZvwU`Q{O-i%Fk z_+F8w5`8ktm|54dw*f%~Rl*l;n3xJcV_qw$ANquu|9l`?tAv$T{8DilM)p-~Tpy)) zB^W1o1s}gv$>ZCx7a=)fDnpS*&5lwejFj+$i%KGL#pRx(v2V^_Rd;<g_yHw(#+4$e z(8syP&0OX@b4T>V&<(r(JmUIX>5Iqg$|%pv%$A5ZjRD%v(tKwk`on!1+?v5f#nA1z zrYaE|gw@tg!E0fi+*;g)BgSkF?o?btFW$L<QEQuHPc2<V4}>TBDF5xQ?t&)X!>XmS zMU`M{-$<{fRt~EQgc8KjkHU;~kE350(YAXmEQQ%oMHbaWgPBWDrmz&Sqng{njSBnN z3@>$WqypBxgQk@5UyA*OB4}0RZ9*CX)l8?khvq3&zw8#>i#~)}O;QkWco4_yTz&kS z7h%0*#(fBHZN|+vp)q)+KSqlC2t?B}47~Ty!&86`0XRmu6FLB~X_&P{f;?wYSn#~r z!fu+NG#~YzL|#g32AyN*P*%BC_3WT(3_1uVWqRIdU@9Xd9FxjE+lsW=<F;W9w=byZ z8`Tor?F^X{hTdCR@I3!(t6NSmsESY(WC81FT`zEMf<~kaMbGp|p;xwqj!K#7?jwt~ z8>FpvH2eCv|G0~nzsWLOqW}%jTu^VOrLW|}-!Evo^`zVlVLS)A*2=^KBx+!<9R_{7 zyN!N%_=!l>CWPszCOlcC3F`o6VmpD$`n*DF2?|e-k=7=eFIzUe*R5{0yaKs4acr`? zXob!zH}MKeQrS>T#qW}qQjtnY=>BGp$*Nolcts6QtJS|@sRo98REo;ZZT5ZsB!R&S zW<*HR-9->f#)aCJxclnMpWf%Ct9&^j>_Tc`*jqT$rJ9L^)-V-=Lz_j12ctMQ{$5|u z5M0SY+;vboqc|TFkiHAj)x`Oej|_3P<B1{RJ@u2u_)ni6j_>??(S5^Id>G%q4O(-1 z>f;Kpzj}l#Z<6?z))y_2>qlhaW0b=pwGcGlVNl+(iw;^GtdipjHlj+IgyNh1uMlta zS4Ty%@(sppv`BcfcO|}DyNin&aF;n#bfST0(%~m=Dq1bVHScUTxIAJj8G3gzUC;A{ zF<Ev?H>Qlv)uKzD;P0fwFMKrfk}%j?o#^iT>hQQD`WtII;gHhT%Q^nB-J@@TSccZD zGyOMX5>l%fAI%}#>0dr)mlXo7+ICfN_+^EGSXNBiTP&L<O=p-cX3s3;&eL@dHZMgN z>Fs3Eup3}ICsFeSaJm)0kvfC7y!M@}jp5M|rMZ>&MN<e)^)M#98|j)QPc%cH*?oH{ zMvo2JOBNy8rT!UH!?LeromE&ac<t)CO}Ggt^(L{aU}YugR*YCVVeFm+p<gsDned$H zWhX*ok<|h~@$A@Bjq)tez_#vOI1*8ickPo=zLC#e>14Yr1%CkZV#Y6rVLzQo)pXzx zxbuDqSS}L+_ign;?g>k$ihq_K?$oa=VJ)X6;98vx)8iVGRPZy!NOSMqvs@m+PyjYl zA+QWMP(ytc+EGg|hc?2Nf8r%kFoSl=B0t8)FM7A+zsSzm&3=1XnG~C3Qdf8P7l?8; zvg`o<DFKG~BZ9)F$qgeB>L69^AdWJ{>|WP2LQxc4_hsD6DzVNrR(TBcpV}*nR)laG z7LfOgpkTZv(i4Ct_sYA=i%6Z2uqhmlJ`E6(B}P^mmzQQHB&cVL>qeD?)zVB<3FZXW zDTJJq%As0r-BtQ6PM-m#J=ar#c3Y<+*QsL^8<ZdiWbH04e-W?iFy!$tTy}d{$+K@t zU)fJK+JVU4UV?aU<Secw8{xY3dnY?`cw*PVL%Zem*Y@vy<<)&j&6zsJ$NS$q*{iSY z-T&I_2i(NrBYSoqI=FjFGC&3Ypt#Z++@@ThnbJ&jgODq0#5*r~j($AKE8N@-3_-To zVY1ZC4f7%Ff4N?AOMykeultn5;K#s=yIi0Pz7}tuksULuEW_tB*@{D~@&d3}6$z54 z<}HGb>s<xWrH~~c06|E5j6g(JiVvA8=n~J~C`+WIA&kC5l~qzYi{W1qu!Axel#igH z%%IPRBfYdLu7e0YpK{Ijl@jj?+`Nc)K@1*O<bydpvnet}RJC$VdU7!%)LFdkINmOz zvo}aCAER?OsW(L0s9JA`ot2{(;9=yTtnm`z%~oetX&vkPQ*0Grj3564k<O8cbH4QZ z24H-?>EsRdCK;?RN$6$#B;%&ax^5>DeLZXLhP>Afi5?-6kmj_rusrQ5YjfopeRDdD zN~`l{Br(vEgEdwvbg~Chb$;v@8%3LED3`8FCW0-J<2ycAJzoS*ThX`0J9QLDT72W} zA+ckuYiGgM?U!a&FJ(;ts*fmuU#?kYw@fMenR#xQ_B^7-{$vwe_NM@qmi?p4Kf~JP zB@79(Qpp?;NGV;EYnhF$)Oz(c@90u#+{%z|@-JzIGCL%L1n_>?kOL12Ad~i-9)ri? z=%G?<zskD>mgZ8K$GU5*MGU;zqs{@Pzh3(eCG&G;sJ|7ZayI`D!?I^vEg0Beix8&b zMcLLvGfY&>loU0-06}~)YDJGPwVWlX4t-YCK45R;$V%y=XqGH1gXK|kcR+mS?)HE< zP}pPl?Ntdi#!7ioN1M-|2Uk-*HFMhf^5r@aJpA9oOU$*eQ`2dnM_S-V_XGOe6?ffq zWM$<)OxI%9H6?J<>Is5?|L5e#dmJ9omfdGi9HPQ6Y-EaiPA4+6`n~_Nt|896R>w7G z15`-VuPhanvAZ{lW6t~x3jFCYmGN9n6JJx<ma)7g$9DCvHX!{4onL-{R3^589rvkR z``e4Md_+~#5b84s5_9K%P*sj8XuebM(1d|EBg&V9St1v_W0>cyb^+L{`>$iEi_{)I zvC#Y?)1A(q5tv`FMVQ_FYf?Io{IUXsary0VFna{uCkJ-O$a3Z-u~1+%@8Bs?MeE+o zqmj1UJW`PZ1>rUk!pTOdrpST0%%~a6w#j(XK@wU!7(RMc9#TVta0BeVdA_I`m$WWb zr7u`$>R);|3-+?F35%vOnf{63>ujq-&LNQQB{GKH-ttui$t$+av5k~5(EI#qC{oXV zK(^LO&G{OClwvAV?Rnyb|NlRTu}`$lV!PW`T{@pMOOfb%k{$OI)V2IZ?s_`y(bK+s z0s;n7hN-9p7JP%PVT~zh4C7ZJJ{zS$-?F20Ef1I)0XJ4RU`4?{9NZ2#wF9%xMbwV( zzKisZhRJ91m}EpzkY3LkdGT53d<?IDt$o#JzW{GfhsDBMj2AX8@mPug1hJ1sgDF`N zhRIF!+QumLFZ3JE#Vgo;Y3-@U$_=OyaVcO(r*yh=t)e=al-!j&{LF=4^kTmN1DR<U zry3@yV%=5ve-Od@RqWQ?6BaYtQq?V&V6LXA$1`qxp->8k;mQ%<Op_PHlS4BF6RC?t zZ*2e=%G0jrsa7x%9vyJ&wg-WRLc}dn3j)>%_=Nzf6U->TN3B3)oA{JnqwUrWrv_s~ z1u9Cygk7{!uBC@^1!`-QE&|wjs9O>6tqhO$5;9OjmxwE?B~>S}$t6riruY)<y2A5u zG`XA>8>KVYuS&h|YDOAAJ=y`b(j=F?%*o=_^o1**tanuu@4aYwR6H9O31am<mrl_Y z&<1q@O_g`QYXbc^*Ea=)hd3o~f;{DVD8L9d{Fp@p0#E!(eUYS#xR=3^55}9h;BCT# z$o&A8@kV|7B=TgrQX^ahIfqHAT^{TXAmf#|m$jv4A8z`+Obg$efLVo|VQYYM8KMf; z24OsY1KqF)>YU<}Cq-p~R4*zex{TFUM|&>YWrs)MLIDSk&eQv3t3Zvl<%+CF!{stD zV^8f{(7vMhbjquKpIL(6$#3jC2(vd)2OfQ!?@Vx!V5x*2MsQ(<KdPCzyxxb+#j|i) z(5@6&AlK9Z!Qo)-fl6==g@Rl;v1v6gRA&IDdHUIVD8)H+x8@2)Z7qnwl4+Fe6g=<k zu;1E=uk1d#z+6YZG>{gYWjmWc(;R!y&t}anc0g5Vo`-5sQINk*MFD}F!MwcRJv~@E z<C8B^D3t{mb@l@`fxB88^0_=wtz9>-ad$0nfl}wIoKo&}Z#(39C5P@T!S9}PZmIQ0 zl-=1c$@|v3+n-zcI~ze#quca(mAhB3lhSz(Sl*?3V++#eP_7=PbvBfjhwM7B`d>q) z+nsHbOprHkHZcvx<?^srA;iXy+H@>Gfh0r+V&mN`N2ieh3_o%N_I>(ddF@7Wtx{P} zt2G_H#>-m?Q|ponEHwpjM*(IyTGhVidl#-z?%R(qR;zcPn$}fS?|Z}dekAA9F0`OW zh9lcYxBC#kyUzyFtF9{@d?g5bcLU`(%79_8AJzKM;N}*@uo(Se_$F|}K%lz*#R)x< zuQy4dq)$?2l$kqZ2$=%+9pevQ40J5T4sbMbZY-=#>d<ka)TxaQNp{LtQvV3$P;tlh zk_?ypB6qG;V!XE$e=;B6n`;JoUzE34eWW<qW_?--{)kiFl&m;ZoV2i|V-tLA9-ysA zJzo5?0RBJ=RqT6Nj>&DOTE7Z}LI;KN2TmVM2!OuGwlH1@opPGxAgz#036`1%?6}-} zfE1>^lVrbJB`kZB<u4MtQE9cKdYlp`j^!U6G0Hnz-3DPiIXg&RLY{TkWc7&Be^50s z8C<=djOlO13mtnst_?n5tw(({oAm9b>st%(Ie?8x3)8b>(%ZxIu1PRcz)!8$D6IeE z0&HJRb^xRI*;g>oLCfLo-4>Zzw7jZb4B|yHZasQ9eiQ*KS$^RiU5kc%c0~@+sCu+n z0RQ82lMvQ!tH~Dq$Ha2fk#+Y|(xyD{gWnMz)Jco`=f;e8Eqaw7Pi&-Pa&%{!a%t0= z$`AH{1ky7A>Z9FHer{eVq$liP)IpTVhSO`z24JWxtc&>TM3<)xtw8t!2+x1WqAUr| zFk2<+toocbFB%i)y6I5odPGxK2kDk1;ypyo%&V4)D2Eo;B#)?DPV1FMF0wy^9sgSe zq~%gUh`zJ*L)$uqKDx83)syx%=+X&@gB1)DRWgq<J}tYvYSq_o*uYs_7i5EH<#IAc z@2W)4lHd!sk~;~yee;e7qbU&Db~}bsiv=K0Xz^cD(YSaF?$mB7Nn`)Q!cw(^_z$@Q znlRTr;W~;>4_k<Fen*`Qpm7X2s{bmZA=xGAcqFllnXY{@q(=v6glK|GHy<m?A~>2o zoa0pcuJn+M?r5eXj26NQNzWZ3tderyQN$_%@JwxmxVZufcknK+FARp!{WQ-=6L*b= z%$teR#lyI$Hq)IN?B$Rzjpr)MBj=EQ+m(HDjzD;91>8H8^XO!r2%nx-Gi}0U4<i=W z+<k5sgn(5PNvCjlgNX4hhmqnPIDA|DhPY|5p)VodzETeREvvLlSd0b@Iy52V^Q-o^ zq0UVzOh?to>@+nc?oA9|sIAAv;GjrxNQM=Vt*MNw_)z&z$R0>Wswv;k`eY2o>_@B7 zjk>O)7>^^AdT_<FOUgyMsDZJ8=ai^pARAmpoZ3DELzxfu@yOy#_x*`fuw)e1^aDUS z1lDPEI&|e$a;HYf{a&=~Q1kO{990IXRV|fQvyF^R*Lt@8PS@7-q-*Ggs;;UbV^OYr zRyq+ZVaUKyOG0!GHAs_bFA={O!Y3YVj3+cxb?<wA7#bdsx|)L?4LxXTIanj35IjLu z*0WD8`i0(*^>91F=vB*&Vq#EP0%r3zP0?tDBZG8qkeMp;vquwEk~172yYk#1<a*>J zHIedG4WL2c;#}bYX<(5QqJ-*WCOFloO-CorJr^+a#3t)O`OSV^7t>LZ2*2v;%Th!4 z!ab3{sL#@Sy?xTQv*L>ko%;%-4W1ix7PgrMre2ioXM%8RPcPxapn$2M2f3~z%=2Az zU2iXQb4|%tbOUSWMy-roTP55d<qKY?KSUoI!s}JN0@kFK0pJ~MezKIt467OqS!DbO z27wyp3Q)GpL0isdUJg=NoW<WA!PRO77xd84#^fkYPd|Lde!G0BU7;A|2^alr%hWhf zi|&w^g^<a(a=S!fMy(7V;XtPXJmb3wBgr$%&Ir|J;HR01kCZBc`RRfK)m95}cB0x| zl)9%|e7nhS^Sk(E%bd)!!k<xKN|27P!{_51osHP?-8^0JUTu6n%DO9~^tSiz<if2C zoV{JVJfeIq&L6%{adC*>;pgs@E)8#`H0JWIKaIE*Y`&(m{W7|hs-z2KTKDN_IX&iL zU4WduD^cgwWcDE5vV@uAefa3ZwA>HYVXxxCCScHf?X)4mrMS}9Go!|Q?n7ASi|RYI z^ptJIOyxM60yU08DR5UB)z4?zz;Y3cWg9=muWAH_?4oWJ7z3$tLlMPUP9v450vc=8 zY+dt^7Wtu|0Jjex$J^I^kb}H62f0#xN{ce-8wGLkQDNigNy68fo-!?7Q|VaeO=6&$ zBY4mFj8qkY9e>7=oFr_}Ia0!O%IsrtN!Iw;XWY_?Y_*BhjD(fA^1T@x{c^mY@Mf_T z{r$8;7)(n^YMLP(JGf={*x?g&MyO&MGm(2XG5e^Im)W*`u#R@CrJZ0^QYiX!y!-fI z7^VP-vOPF{8*_v2zDT!mOg9sioJ!ArZGryMT)S!ev8B>0JzM)uwI4fi-?4%9>az3r zp&POuT`azyYwqWod2|rl(ZJr{r_c25U-WMc(Vz9`bE?VS9%z+%krfOk?aQ6#bL;2% z%^_#!z<E|ZrUL^z%u|u?Kl1C{lr$#$^R#1OZZ3g+X}THpc>*8!`<7uCAx9;KQUDZ$ zE+~vU@!U{QvJkx)6?ah0OTp&gs<Mdj(@obw3sB~ef_0uPGj)JXyoSGUn9bIvbZTi! zB!r>k`=5X{KzYr$ZyjTUufb;Apnun<yP}Whp%j&uVDeyi1I@0*qsJBANKc*AW8~^7 zzY#pRd7_UDGZ~wGadrLGl2JH*bGw|9e}Dh0<O^E6DcH?64QTuw7Md2X9T9oJICSi^ z9~diqi&F+Bw_+Q-Ms|<DACHXO{9N6K%WP$4-Z4n~A6NG5sTv^66?Dap^<7+ANbZLB z12!^I)lB1{RHwN&bOuWc8Ya24FX$FO0jQ*ZfJ&7%RW)fEVMR&!R;hTYt3w%c1nC-r zrHU(fI~@>P2v4q24s{PNP!;{H5Lg?pvfwE&aD4`B&Zb0HG%kIlN<3A=tI3Xa#l%EH zYZ=xjrOuOfaFl=2r5w;N0l{BQmN<U@k<+&|cRps;?^DjdDm|Xz$!H20oNsG&<UvqI zUHF~xA{Ks&FRnGROyI>L12f_7T68B1EjosOt{(?d)&m`T*(SU6E_c6sgfCV9bksmo zJTEI_X+zbym}_vp4Q32=CxKt38Y%b@V`d4;8jL~PDDzh1G%w(85?gjF;~E3bQrBgG zy263ksGS`RRQcCW00G+XCc}G(L0vW|D?Ng2bZ6?*Ux)a$IzjIn8MJW7({TjZ{XLsh za7pj{zukV9cM9=!a>M-9GeYN)79<>kslZ(dDxSU$T@!1H^6sls9elF2z~3C23KZGi zHH@06L*97?rVvHINGHzw8DAG5?;q>FS6|sgO(q|t11gw*q<vu~rJT7R_VSh)X1OWq zz|o%Na2D)j+X<$%y|PjUqiVQlB(;Icff|bO73O@x(k<^fd~%<|XPwL6puJW5v=82o zZ@f-7nLN|?o<3yyytBa+Zk$h*Hts0zv!0CLonlNud(+s7&a5@9of%?pgAz^+X+rz# zM)kdE7$XGri#^vLMZ5#FNQ<JRVu6St3q6mv;eAX%*A~}wT?t}80s``}`5L@v)qV$M zUJIvKG2oz;xUf2%)1G(Q_qWo9mC_isuNY}YS;t<>bynJAf^HMzXRGJha$e$Gnfp9_ z^3!o8Wqted>@9u###k@t*q>pX?1cbyeNN7#wqf7Z)R2|NTy55Hfq8sWmx@o~GX1sW z0la8#TJi5@4G0rHx$ljW2j1WV?Wwtvtj)9szU9XvAidQxZfm5)i(RDZqk1g8r4o00 zJYCEwvj<5#nPaeU)_L<>UwiGZiwwC{x&snGZ!J5$6>EqYXh12GwlOL}I5Fy{)9Yr` zN^IIYT}g7TVO#uhuoh=Tx}2YEo-1Ab<%P4+xgzqe5?C!VoqfZGUinZ(dyc+@{0`>C z(uMK}Z3L#SF5KeO)Z$Oqb#39d7gcVHZ^0K<q&5YFzLcf;pUv0bpckfk8f!<|*GA4= z*meg!XT3Zi!j#B+7OQ#3T@<9FHpzl4ET6iu-MLxM9}c4z;y=ZU<x5c|J|E{c9fcV4 zxhDj|mIXk%X51HMf{51^b43DG-l5vVvUt<oGbkRlmL6RxIQ~JXD>^kv68<Per)<e9 z?Ovze8<B$(x~+e^M>;vUK&suBk)y_4J->1>y41Oz-gNIFYrXJI^3r$l%j+gp)kYdA z5{O^401r*pbUn4yQ_?#s4Z06jzQNE(4B)cqoBlR<iIgFK`56Z4Mb?x)tAb*O!punv zh40O~K;6-n6|?(FS4Ktj$mR%mz8FE(k{PWrKB|<4k^TA)W1qSa6DkkejN{vpm7qS4 zB^oOv$=KG&%I>KcheF_Z@HL9zBsDsFTQ8*K3sS%wYavEK9mg&I#FeB+9IRhh#8N4j zs+B0NhUHic<QM=m$bbH4=5RaZ))PC2X_-j_(OX^5B4AuTH*{yzoSlXOnWYu_GBjJY zqM;TjqXs4gHd54$Am10B&l~;hxt%W1!E+gr@GiZWhzxYXdp5oBS?Zv!DKJy+W;K$E z6~)kvG?0T}#JXm34d9*4z4qMF@g978F#W*L!&DUUz@cV1$+TK1D9;%j3_;>nm)5|) z@yl|jqY2tYmQtjVi*(YCNVrE2hL%Anp@q`W2^Soe-N6zz*t1?tdk>>aYed6k>j->^ za(#-uy#Hy3p5~)vxyUarCaVJhL+m+(xoiO9=p<TMMOX^n!uEENmp1|5dpd{(oQJMQ znaqO_Q-c3+2p)oh12j2?YPfKelqJTd<eYcX!$F~;pW$L4C{tX^C%`Jj@&?*LTeH;i z6D&ZPuR8@sVVYRM0c2gS57pkMorOAQcm&~;oB>IMjXpzk?}o}A-nA8yR12yVFp^Z~ z%F4?Q`4$l)JwmFk+^wctOX&hz5JP9JL6(qsSG(C^3&wDR4d$vQ?u(9Gtm=h@h#;!P zu()3c2^qFPTeVizj+}p{^axQvOsGYU43!$iw-}Xn#1uBHHh2@$XN$z(GIVd=5jG+r z=!*#W&*r-#^BFj3jw2@psg}4vus=78TF>|2j@u=S$WF#y4fQn8U}taDZw17GC-G`) zn<t4G>Bf<_tRqd--OY|HL1){0Q>un81ipp^3{+qkN1k1G8T)>|Pik1|vpYg%&y|<# zRG??6wXkwg_kAa#aSx{z18=OEQs9bk<dmp-25&yq0N~B5H|}Say2{nFo4EJf7db*E z?i;EhSQXV<p7_oYbcb?Lc#1F(#8_oq0Iq0N?pp=$#kU`;46LBKxGHd>RiAg7xg?_4 z1cz?nA|Q3`cl6+uqkU_H^lmzJg<GjllNyt-X@^jAHW;=^reU-g4D3PBAe$~ax@@CG zr~xUom)TY0HYw7k?bD9q_dBq)Po)=GE_c{wKs}N7$$=!ct8BB0<+^viF9y^r>WGyx zjZ6iBr+?q~7d;r?sTD~N%MOH9u0YvT658dYE4axn>;M7Gq!(#xL+2CfFY#WUO>Npt zO<-<W+Y7=#=!Q0ZwWa3>8)e0oQynC>nzxp<lQ2)6VXsueXjO3+*!o6eE_$)gO*E{Y zA3b(0OB`&*Fl(UzYjQu~$YBWZd>SzjmXqtLEGJ+McvSU8i-OzUqGP=%RKJ1tY&F6E zhq@-Z|DlmW+s@)5hajcZzf7BiQeC(sd9bEqy#!%Qx}MjX<GKc@S^C6mx1L1O(06g& zv^r@OEp-3SXs5##JBu%5G{wK9$2lP}Hp_cUiGpO5Shh-CkW;R;WRI>m4_A2b9-+H| zgg37(-x*SRGVp3wwL=x2ifMw)2FXB|0qQ3+q0X%B-g;~~>wJ-ca}pv5aVyozCaDqb zYD;B+a3L<+Ln_cIv7UR~!cU}zZ}TCYwzn2jODWvQxVKI(Oy|K><pOJGY_x=@PG%cN za=YR(y~3}g)cQ!jbp1grJHIulI-GkQHsV{Sy2jn~h5>Fd=u62H;nK%qRZXG(%vtm0 z_xT*UdR_oW6j7V+_!ZLo3Z7=q-r$DJlf^tXuqw;tM0XF@^KsvK*9&QSI5J(v=cB-k zAh$qty_$}AaFYx(cS&IU4)k3>OosHc2bQ%-b@b^nO{Nw!T(0#=Zn5y~*G(EFGo8ZN z81(3$yU&BW#axzl<T7-ZHVZiiJr8u6L#<CxK*M7=-mq<tOOGA0H*W)-DL6UPp_OJo zFs&J{z)PE}mi$tr-`F;b<LFzZ7E*jP_wgt`6I1YjQ>o-lI|vLeR`PeO=fnO-K(T3Q zkzX&Mq>J=63W_N#yUnFDr R42~I0ch66%({`OSaAn5wOyx`|t6*vB?rcInd1>j1 zvp9Ph=wMz(F27{);H|o`VBEiga-yhh1r)W-;7_!3w$s6ywxeybB5Am898mF@1>+iR z<G*V2+YZ(Vt3cH?oybasu%h#xcG~vhxH%@b2(DA1YO+lY+um^Afc^~(Mp{QrhhUUi zCrBl1`K?$5VwuD~Gz|k&oX~)<bhi>SH1a4c2b}}^J^uQlto<Ur<7O*y$A!ZAHXf$m zdTZSQuiJ-=pK^A;4zzn<jm_k0g(PDxoZ52up-51;n@S_GK&2E2qMbFA2}70?pjr+9 zIN?emuZ3gWW`ckzQ^p=ED3JqkQXOg19vIl`vh=P=71!RP#4pf=k3WobYxbZ!0{TN^ ze{Ub)C1^MzXo^iZwBrp_66ZPtIub0pho*`&cf~xT#Oxu8k$o4nNgl!#GVhv;=jtsZ z`I-eu@rx*AXC76S!G|K~yV0FVsOl^SdlgBHz=g<&aNJ1KIg~+=u?8ODR-;ICCqmZ9 zG2RIotR%pX$XJP#tag)T#gk%){!cmZuO?xbCY)CzmCZ`+Hhcs^tuv*A;adJ^=#Jb* z_MJX?UA-vt*3n;0s(lx~+$Jyl?E#Ss-~jURQFY@W8ZHvXdxQDx@Ky%tNR>(584~sR z0I~FFw?XCuk=pnlI*~)2rbDr?MZO2~?E>55k3TQ1jVyI@{n$C*D_?QHPM=*JUhHJ^ z=r<}FHC#Tl3i-y$QTE|;`YY|XE-nk46Vg(-6olmvJDN%uh1HHywe%RpS&8&)G!wXb z9e1;53Ak8-ojbfaG)CLc*Y1vP=dt;!yYrfjUk6Qds|Fa>41CCqybxr9CK6*$UDYJ^ zKM7$J|A$(*hNXMG>b{Om@lsOgt#nEhr-3-KrRxMf)y+vSs3h`??YKIu-B;WjnI#*h zoYi~ktOUqrXQQ@7j+vtN7WT#6=j0w100I;pS_As5WU`C1MALL(=OQpila{gt;pnU< zc4O@F?7PMt{;R7V{u7zoRJKr9DsAadKlcL>F&yPK$X_&R6;Mi~I1f@8r26H99zNR9 zOYEOKC9YM;@SjK&M^108`D@GXC`@w^9T4<<qc4~y<ELoX?^Kh;CsgC{zlnV6jYQgo zko`XlrASj`lnlxH3;S~+c|PGqB<cx9xYG2}p+ob(1)BAJeSLFU)Hm}y3M3*dlR!8Q zae6lOc}<H>$_4!uW*F4V%dZ!Qn`Yz1_}N4G6|IZ0F@?#6F|iS*rozi}EH$PZgCG?n z3XVFpe2yTZXAwd!iRNgDU%9gGT5Pl;SrHw3Z7o^}-wDO^<j*L!H4V=V`#+0O{BB>n zuB`v0ycLg1bknX~XE!gask?r4(8-g&y?2Eh%Q@~4$Ca<HYi-k`n~KY7jcEm-P|2oc zjO@CMgT|z(Ds3cYaO9xsnsIqbR^C+?H9-MxLyA!aTqJ14-Qu9B+Ko7l1EsJyFJgiT zB6v!GDhK@_@Pg@@0ZKqe=*e@Jjo?N#C=Ld?x&nc~HOkrbN=-g=j5FLZ_+{dr%fn}f zeP;7p{V)G-PEunOPN&l2emthy^6qbowjmQoju2wPIUjWTa<nmjE;)SeUB_N1Z(}g? z3s<`#xmK%{m*1PtNKtFVMy;sD7++m%%#Tn&hGkj8So-=bE1&f*rWvi)BJ@a&cN@YK zkx^`Is<9wT&74!5kylx^!5zfOi-=lOlckUQ-?I}h9gFZsMl40bk}h|YcM4~b-*&C- z>yz5sHwMqoo|||;w<lCh)N(-xJR}?mhFp^sR%j>hjt69dsWFO!0DUSwVRR=#gbCrl zodFV<kPPpkMqwz_dD1$Huoxq}^W!K6GRTVr35$4+#a_G!7t?quWtE5w{#l_4sOe;? zA>NKr?p%!md`alKdU;k=ZL0KTRn}9*T_vTV4XKW*dU+O>uPG}N^l-vl?zRGN-oAZ3 zml8~VO-Te1HzEiWOISjf8?VnJB4Yvf5ciEbpF8OXrUls!u2JYZR>OeX$EPmNG}$0I zD%KN3ILz$}SQbMR;wp(b&mfPPnLk39-!uG=Xa#a3R-myw2f`7EA{;Cgk@cFfLD4(@ z_@d<(#Xbe}nyui_00u+WDOXh_mgypu{H}L1XCu;R>=d@G*Apf^vd#1uVKBrY5e#<` z%gmpy1rSzCw5lg*BIPv*RMXpQsp;#z&;1QG*l4x#2_wgwiE!rMD=VjmhNh>e>f3(V z$Vgvg<dI6>&YeDJPJSyC5Q<?u?+`FVU<DR4>pL2-m{s3y^&H~bObfSz`PZ|%cAti2 zBd6``=9U+)X*M^%NE-k|004G)9(!5LVYFysumY07GY*VEyVOmr!%t*qs|iX;wp95^ zQL*`Oh=l^ga>abN>!zpU@=!E|g-Ug5D;~nKi!5uC?CxpVyp#{W!0q2JRaLcyW=xV# zIL&|a`;VP$+6G1up67U;XiTM@&vpJANO5+4vk?f~IXhg@*C$O!UNaou+}U}urc2!N zb`k88g(VG31}3_7n>nxJpHjVSd0}4XS0JCAhex|UCfcxcsr3&-MfaE0J-2UZGAn2b zj5FMfk|(#w;;tS+wM2o@wswhg*v=CKk0=D%Pz(Cfxnj>z-D^pQUpu_z=w7xdzX{Rr zjDGm;e>6-kD9rj$N}*Psw}paFUO^2b0*g#i(y&c9Jnts^v4Td=c#ebhv>xi*&ssaK z{G=V~ymV>w#kaNuA86{V(VfHO$Fxv+)5qk+oK{dOXOT~pdsfF*=lP57y}dQsHpCU# zth@_t>o#I@e7Mm2=hS;oqEt8<&jF>=-|yJ0l|p=Kmyx2?q@vrW8P;O>@TJFyUpAgc zi*jnmSFuOgWf;o!8xf0~hh+;k`%q1tVY#FqV<ON1e*Y{WgvWkP_QFm7C$Vbxh7?f@ z!*DA*%&IoaveoaZ*yAjx^kZaU7hqT~$1M|Jzf!Pl^^H1ui|_C2Ic?GNuYBvkuma+G zQ8d!*8P79x$A%rMw1;H$r~A@(3pW0VCGw8||6XoC<$qU5-}$U}k(=9PzLul3BFP0Q zpm{%6C>y05Si%m)$SB}T%x38rD#j*iaiUsl$bQARLeSE+%35uPP@!RB(xPpmEjmrP zWFbsEe9SawFoTsQOk*fGhq^n#mSjulPIAbu%ZO~+*`7p1l4OiGVse79PgL8CRyAje ztuc#%U6_LoLm-{qBp-xVa3i-DB9IUPwAn!8i;d?6k(!{;Hg@|7G>s)Z|2C!s2}z)v zJFr|ZI}g{aA96b!HW&&l*2M<$X3hojt|Foi`{OYOX2#WQkza{KB(T=c#KY2{Suo!l zm~>O46bIcMMm{R`Z3I#Z9Oj^y4LDuhT>-{~Xe1#r*OT#p<2sQSov<=OzdVUmj4C87 zi4aRH@Tiu>Y?UqYRqd{Na>xFrF#H|q7D@MaxG8LDx3BaE{CH)O@yxonZyeoJfB5_+ zjFKw<^FZ1UrM~QM(35^YlMjSm<kb^&jP)k56_ad5)}-k$qxHC`6_Hitr@}Fc#pe{l zH7AsMhSrEPqDMl~-e=8-jBv$+K{Loh@C+8D>@y6m8JFMzSyewY_=BWl1pIXhq!%3Q z7a$b%L1$`tQCt+1v^Ie@5LnTbuNAfVU7Z>&&1l!*?p`!?r*4kXzyCPP^H5V;QCS?n zX;Xah-=oT5pN&isyY403ZC2ap7&(c}IyQP;2xu|J=+gjcGUavmqcG`2D1hW~p{Zwg z9HF$dO9?8**r*inMv~|Sep)syvnJ9muh&H<TC<mz^=jGZ-8o%-`7$C4k(WYHMK>yA z&)*p#3SvflTdz(l=T+IX^D&hgu;lfk-~RNIkA{B>jk?P;wv7scZ|_~hLRf8$k2V6^ zjL+k7I(x9&jeCZMfLFKa2<JS&F-)0q9zEXI2k9YEgipHX2h<oM7O)#TFhtThbVy^C z6;E+8Saq-x?g$WsU}M3w%hO(wW$_Ok9BTp?(k9fVm|anV_Q;>Jr{j7Dxb8da#vF!i zlnXxu+u-=z-1zB(3evw^HtILFw6yyB!<QG7X5Cb&R91$;m<~)KRS1iisv^jtazMKu zFIkCO-s(;yrnYRkY5HxW6#NqtCya>#IlvlAyqpqCcF8mRxU&he>oPA(utu*@)@1q_ zmc3=hV0s2L4LvjC$ms-MspAZU2V;Hf*6rIzD1OuA#2>eA+43M(wFbyP)LW&AZ^}|E z$rH)dDT!VGmL!BA9$A>2uCOT55yi<x&Q6|4i$uB;2@hg~r&#I~g{cXO1Oh}cs=%RT z!#`%vcT`nLHI|>&PEK;gh2~5~)2xX!ZeQ8UFNgKV|I1vZ_(fgLapn2x=K6-11eG7Y z${PG@9xlxT^y_<QQX6sgb6@>4VPJV%*OP&+QJ3AXGh?WZB&0tz`Lg{3d#CqZ2%mpU zygj^m+0Xy_7d4))3asvzw_!t`f8u;;HWPGZzpB6Szy-zXzCP*9*`R!Cf?7`fMp<ym zJcH6R%Wp&%=jN>IH%G4SDY3qOc`g`N`BT@nA3D@t_SZY^dP`ql{-1TrW$9G9EMM2I z)_gx~H7sxghJo~-CsWdXZ}@#$%H+=jES=Jp(bSfaLQe$5fwizjkVGVb@}`DV5=E@@ zb@D&|tor2_Sb1Dso&1K)wqt}x{AZodurFEc{|9pW??0$_W7|Mq^TDzQOF(J2=sq+T z;fweP^Z;shBcjZc-IX=#8$Jyplt%n!`pEQ>zteB<E;)~mc&SlJq)t)u5JV2<)D7Mv z!WbH5tBKhZnI()Xow88rF6Qf|T+B>e9TNZU0V8;!{9TXsP`q*8mb=TP@=N6lxO{q+ z)}h>od#b8jpSeI)z_3}?TvdQy?0yj!z!Ep)&N-%gywt~GLdeFqECnl!x>|UJN&)!^ zLGVsyF!pj@jG4sQ35$kiMmuY6XU!XAp(wObdFs3<?fQs7q%9&gaxmhb;TpLUfvUz_ zlj?;FDGh<t+<eAdM8L$@6q+t7T3MYCUr{mW7$6@uUI+Y&d}`vqM0=5!?q3nB?UP?7 ztadnLbD@HbtC$*ivNR;b5E@eY<iJ!#oEeUSn=_%oA<H)FmWO@DkPutJpDq=|vDr{? zK{ogmLWEmn45C3Gvf6oro$;e=-3rqWri!dgP5qfw!TrI@<@c=J{2Y1FTKr=W1_f^k zUh|^O`r?Zagv4_s;AOjH_nK3EqDUI$0&=&-sCG;d*M5Q_N)-DPUd18oz5eO~vhPPy zcXoXJ<df3G-Iyqb74va_fj{RG*AEVA$hsVPn0(hxN-?a64U}RE)TO?2=Z1zxp)VPy z6ZF{jg9qE!mbbT;Ul@Dqt+BE_r%&(sDo)Ct$d=-i5`1Qd(|Ym#mku3j*J$0EEFsYD z|2W*BiB4CiM{6u{U)JJ4j&`u)`?}|6Rk?8;%@G+@rmFG|(vA07#0>Mf0CY{nypTV4 z{l<L%=-Z`miuU#Qd-Xi$6p^I`&LA2<Xe?oN${#(T49yKgoL1zllMK4xeXV<-h_xqP zP#gS)WuXrTsfa3)l)KfhJEqH_zAA7$_jq7>w&}72{rbYnH7?&PzDv3Xbz4dZ%fiTd z>$5ZIV?AT(Gf!=TcQWIZYMo~tRqQyB+_F`~nix8WAl@d5NEFw<B7|KE?+lv`>kM~? zb;iY2yxkpwArn|qWTsC^G0j%*^t>@0AY`=V+3{!nsW{)m#H*Zq(;erFL-4#CJ@RdL z3S`qV5r-E1Z(TXNmKJIAJPG8pMW25g7>_uvt}th;JHw83`+{|A&VnNLg>f)}GL4W9 z85po)4qMR!kHkh?zAqy7k++L5OhZ7A+v+9k>%;ZjS}*0+MuaoOC_laHIT`s>2|<H- zV;lZ@`}W&AB?NE(Xv_VaX1xdaz77OZco8p5)4;hjoXFI$G9?zqYg>kPx+INNrBdB< zL3b+S6s*K=cT4S)hlbIN(@E`A{yP}%_A9@osBiyR5lC~0nP(99m|$nm6C$Zo6bFXT z>K#2lp`Uu7xvsylv7aaiMLP&LZ{2EaoX`ZpKeFS+ev>-3+{*`syoseVyXoUl3g{6? z<rJ~#oWmT3lW?DReE&Wda?C)`oTR^*asWR-z`t$@#!QbnZ~W{Bf$=HNf2$rDmNaoW zn$(N0J<(JXF8hi+@xL|bc$(2z6k_(JB@ZQ~mDbq9Lh857MI@Kh27kEsaiqzJeS-Ss z8+3W12grJ{m$MC%022VI`W5>W2&;lIh8yiS44j@z>M!n33dME-Nhm1q5aEJ-t84zf zi&;6yRzEY-Q2$eT;ijs8YUru~Qb&M1LWmLH;CZBAz>U}|=g~YkwKZn9NOjh4Ki%fE z^+5bG1=A!7{~`Nwo@~7ediN0S&^SJn&nci3@sa~`Jn>0VF3Z9IiCZPw4oRAip}-*J zdUh{Ja9l!7$R&i)Tz}@Qpu!7?kVfTt_B$$|!xpJsA0PrIM^oMqJknr7l684JpxB@# z*j_B^!ws_drVT5~4SkDR_a$j4zuJKif-GCNm#C^V%iEdN<v%sl&&=5BzlCdN<ZP$2 zx6?VozMUG~8*lrLe2)jscF>X~r$r3M*!k8+Ls0dU{@gZml==7(c?1~-BIJ*}<#9h_ z<S$?Yfe6Hbom_!v%WmaGZqb^cn{|<>Q&euIKpWtgoRFF88@1~uD2F^m9g@xJ3}Psd zgh0mCgh)!SMYakaILSpXg$ubvf(gijcQrMwu_0UbaMN&hBnkv@<eC?dgr&3FFF_;$ zI?-Wuh+?N(^p4j#T*x7T+$r_-NrYXo;-4ibcKWC?F{v9bWk~I~^j!lAo~R;OQN?3^ z^Q-Z}Dd@Pjixm90OR8_sT{qD+)JvCkDVv-7eWm>mKV$;&-yt7NG{racArd^;MZ^g% z>_R|}v0KfK4yC}5>K!qKly7f$vde)Td;^eSaA2TO5WEBp=gPT0o|jbB)%m8k@9@2s zZAr7}EDDS8XkaGF9LOz>ZGs*j5?Q3tZYK&da@@Dux2^lv7@KXI-D*7&6yOvi3QU#r z4=5&aC$j1%;j*hs<OkzWiu_SZ@u<9H-m0L6Q&8MN`B7)~!NZ$^^dY96I%pZw!q>c! z@X^!jiwnZG6%-d-Gw`Xq_def_otJ%v^G47j3Jm;HFJ3KlcCD<S9oH*c{MQ9+7>-$V zVG%C|dY+;x5^VpXUXMkwuT%fBB~(zS<nX+nJ6P_TdN*6}b6=@g+4I0_n&%Q+<EmVu z@wLP~>`GbhTCrktPZM=D)%foZJ*^(d^1HiM|FWw}%%?fkVi2k_$DF<B#`qPb?volD zr33pLU({NabxQ4-!Kos2q>)!kJgQPY{q(wMomv+SmZhS>@Z=Of7<llY#Dj1S<bX?- z=s{7?wI(Vy>QQJlX{mI?A@G_#gNNv-JvYOS(`6ixIpIHkF;POaF6r+}^=M&XyiQKV zbnCPAoAt3LpS5FOb9nQ<wd?Je{rl+0H*X%x#c&NiP6J6vn#@@r*}>0Et_))S@V;}t zRjYh(ZSC!Z`|k6ES5G?V>M;!CQ$VjAKGU-EzTW%Q+Opu$y7oFkU|rwDQ*Z+7%^u`R z^b6+EJ=K<KSwxyeU4H0$`}KqdNx{e3NyIgeJGjv2LeRl87DEv+rc;sXAq4@AuLVi( zZAwi_l{Ry?iQ8^=uhzPAUsD*<R@b_^oa0)ybz)i2ny=dZh}v}znx=(_TAoi3GBx=& z+qAE;>a{PCrM#PVhNrzyw(@2J;AotT^B&o>%qzPr6J@hu!gU#qZp|}TKq&1KF;I|M zO+Bk{ji5!O^nkF^v&>UmIyO9Sm>hjhZf!9j!_MB`Z|Bgr(|7u;KLa_d6u$&&SAG2P zjFN^~(sYF^OUN&perHR(Vb$bUExjRY`G0^@F+RUjrNHg;&#YGYY?9dZ%OTQrOE4!) zNk|g@YzR(DQ&aFnZz!}$F2H%$>|^ir$c5RLL`WJlO#b@B>9H_zeLgitxz<k9Bf`|4 z58989qw$y;7hKm#<PvVB-55Efs~j$v);()tLCP3?aLY&gY{&3McmKNK;dOIjqomX4 zfX}3=NEP8%`Q>A>>GdAt6eAfU3YG8lc6uJovjJeEW**!K5={AHX!2ZWMYz2fSr-{= zPG#j2vy41awMc+P`hGh^d_UdP^l{%qBVj#Sv(?Vue=2EW<oK9+A`qB}j+!_=GMYSE z=)1me_+S4T-sks0W5spc33c}Cu_Gga0CFBX4Y02NEn#FwfR){1Mn_JFiM~G(GrPX3 z3y?yL-dd8N+7s}K!Xg1|9W>x-hHhG^ChCOXJ;B!8WM@f`%5U(ifcH&FUm1}gJX9W@ z8@Zvm57jwI5-JlC65;m7ox7yTgO@KK9~s!P>$TS)RQy!bEiOS-akX{hk4Coj4;$~j zQ(}K7_Z@r5oqIR_p_RSZEYF!8tJeztCA3`l2jL`qHrxS?q>r;U-k0lF!3Bq>)rmEA zlEu=}|5H)K+wR%Uy(ho;%T<E_S|E&A6DM)3%WOR(#q^%v1)vP!X!UPtrsA>WICr)? zF8Q$vrd-wVSd#Km<|SqFeFjFtCL)Jni9s|tE(Moep3REN9MDMmYS60uhC3>w-QY8< zwe|$qU95H&yV}+Sd+bYx4tA8R?ulgkbJyisdVBBh?X~3PG(e6Acd+g0XvTc1z)FTd zNhB%<PDbcXLC87IHVh5>+*_m`xm<$YUX%--M1<)Pwr7=HR$OLZd0~}dseQ??>IG@~ zy0)O<@ZrPK#Hpqx$@oXR)$I+vGx133{JM#g-u{n2`mp2V#Drwl49br;y~1h*ub5km zATS~mAPmRAji~*>4!4ZiTo942vnbNPY=#Nfwby0W71Od};I<*43jCPE&%Md@?}e1+ zIGxMnhEB=z%1Sj)$7Te2RTU|xe#~X^!f;exa*_HQMGBA*ZHF)=#`IJBcEp-s013%( zc8-b~Dk#!F1U+ZHPlTKl<|I}O5<>Q1*o@3c2qFC@B%rfzMWAR9O(7geSWE#~Q>^U+ znMdd{kb*#J=fDl8(}s#83Cay85T>G#$e8AR6OD}%nskoY?DaM^!3I+2sM#7)g$`t= zkcj4_%fNM6s;E$a0rBJ`VP3!{P;F%VJ%ZbfJ}FBiK`=-X=DmnaL}Pv@h~-Tp=#@$c za}@GYO}_mB5sUg7GE`v@3#x0&2<$t+3W};or))%or7E<eft_K!;8l|8Qy>!83p6Lv z*#g-$C+Vt$919XurK}u=sL>+g+JYc1PO4#Ph-n+~*4OY=rE{!71BoG72$>?w9*Bid z=D6jzNK`1ZAW<<$y`X>`I<_Df(k9~-kx0zzkV-;1vaD0$ARCk|$|3rBJkPR7T(}lR zLXHA8LR5G}dr6gVS|oYFl^`Kcy4E3nD9{GW4k^Sa)QT7zGs7@^?;FLc&bcDphq~Y4 z;~7D<fP|StX^q#vE}VXtEi97u?b9|eg$Evf7!pW;vM(f46S^@fs`?SN;e-Ay_cl(b zPYn!=Z5tUJ7>$V@-LXTr1e5PuwMrUk%o{JIQFp;&L8oI4uU%YYz4?^o0K6IQSb4k_ z4WRs8$A$a>6C?oMBQIK{7ZZfq<at<DBJ{g!L`Di=?~To}j;li*yP2{YDUbOv!PzE= z@Z3-j5|Ts4x;kr}QHdm4=tCyLG}MI78ZMGJ@)QbnT5=jJ#g1JH$YY?zX8CraVw8?7 ze=+N08Cr!ny+_4xj0#22Dmns?8Mk}J(I>&a<s}?@oD4e8%7~M>03_)N!~2rt7TRSI z0TpNvc1cr{L^C|ZkO$=kgY89(shHsHfoVHfWZ4l3F_S5!&yDac2_x9RbZURX5>|g2 zZbbqGCyminR!$GQWmt2m{E{XRV=3b<JFj+dF%Z=Y@-n(GrtR}+9*@@xAm_RFd|&wt z@B0Lyh6V?m8n+;T@)1sskbU~3f1Y`)+XlUmmp;`#FN4e?T3iq?rmeq2)R=<Cwo{@# zj_O$batm#BU8qa&_2!D|;>Sf^$MLMSA9%FSIHybg8ziDAvR;G{pu!?2VgeBK)N}KA zla76zE8+BL*@cI#^+JLkIeDzzRZ*QN|BZQk{>taC$|>w#zrro_>ra>LXlkEZ@t9%y z>`z|z-IyM<;V>7FSi%y<i@cx(hq%BL%d#xPA<nMfCqUb#TZmv9LGvPv0|A^bffpqq zA|Q@emBQ4$#jB*-+R&+4`2Ff-EB<J$Ye^`rt$kG+=k?DkcX{4VBlHMpi@7z3F9rVj z&FZA)jP16C^jc49jYrqDz}fapA~gS5GdZ=LWFCv+*DHd$>9f8M%5r?OH|`P;gLsbv z@_`q5Xe^gFhciAZ|ELzzGknFM{XCu*m)}q|B#Ifv%c~g2-LITM3oE0F*LJ85C&fOI zkQ0v*UO;QmyOl|++v)q#qWhAKt59}j3|cd|wDyjM5i<xe%v{6FIBqf21iytEqZn80 zqXNRM9ndT9x!_oIfDxEm2V2kM>I!iwkiC&ZgyjS`uh0Bs%%SZ#LZwn!!zRJA)}zV0 zn+_f;0P;pbpd>MV9VGnR#A%D=#W(qlqLz6v<3;!2%m89oX7`Lig(l9x7$Wfhs|9mh z9}?@u;}~jusaQI!FGFQRA2XjYpga<h0Mmwm%NOTa&+p50g@sDLpt@rSsLtZYWwh)f zbxLoJ`cgApeo1p3UoU`7<BmRx41NPGzR!|ZY5kkUmX}k!!3H-nwGN6*SEMKXz-yJz zY0K6sUn`F8yU(|C$Fz^CJO5fSo*^7zc>d9;$mCABqImYlv9Y=?pZeu0uc)RjEe$nq zX4OajpiDJUYa<J)stS@Hy|XRvffE))3CLvMd@}a@StX}GBt661<!Lb-x5rsXf=WYl z(P_655%~vLB9gl-IF{Uu<D5}ABlL1!5;(O1Q34`W+|xx*$EmhRx(VGWIhv^hqt>nE zn@c2Ts|Juxe>#QSJT|r&H|^flh|Al!a%}J$u$rhDNwDg6i;V1l6l+iHLe9jOEAaFC z$~Sd=olacoaL_fNFymWZKJdm{H!sc$0h`Hq*BM%(&$t%KZUf6P92WxWO)o<DWkL`{ zB!bsr&n@tTA%e-lIRbiwkuawY!JSkIeNIClxTGZrwDn5fsT4H~L4uR8HqhtaS`<Fw z&+gjYI9`#Io8W&I>Bq#)Y^?FdFk${FMeL$UIH4h~odN4Y<Mjkfn0EPsevZg<nW#}} z9*jdt*nF`aOI|B%Uc7k|_LYm^sm-Tu+5FTPD^RYj{!t7e0A-EM##-73L9j$JEntMt zfOR3RXN$v}zMx+sB;}-=ylyKcn(K2AgPjO0BgLNh>em_Np*)xp{>CG;cKX_X0`bcj zQMQLgUK7pHU`~uO5`1UekmFq`i`*hj*2O@gwnbsFT@$6#3#5z84Y{*)VL^%XfS(Ev zMAAfB*yjfS<<xiu*TrcGN0tl3Jv+ZEODo1<GU6}sWMT6JNlnxoFq#4y@eFQZ6_&ig z=Tx^<JeYe^1qjmeI;tc%kULIxNgWSMXMFRGyr!uMVM?M7)HR8Hr2oB&M9B<lf=y^K zLK<TwPa=sJLYwyzO!Du6^M`58@X1(x)ZGR7cf*^N<+BPc^;Z0}CC4BCHhK_$wJ5y( zI|$wqv17+W&2b`5FRnxMI6aRyZwsq*U3OL+0AmRzhFzXO5J7B_@v;aTI(w8RNF=&A zqMLm!4KhAk{gjD2*6#l(<W-8%j8TO=66?_S3I%-y021+HuVPd|&Rj4A47Uw_!$%g% zqOj;J{Y$!286yg6BqO&<-Y+kdZ;`($Ct)fl2SSjb!CS}`{i{<UY%rvlyxWHD(wra~ zfCz~h>mjnqyYQLHuNnu#s2PNiZ#H*VoAYm>f81ORK@SrwLB?~i94?=DQ%GOY@T79T z<T{vwXVJbvAs8kOM+Ms<;fgSZ5Z0V2%t54SA=4~%B^?;H8#mZ4xUdT>x{2F97yd=K zH{2I4hJO$SXTyiCmjA-)HfOdbCAVgh%*vGH%1l9kBqGgFEMj;dBvT(&MY9=G``>l8 zmeM)+n27q|NFmeySdIFMku-^Wl$mtYhUHPQB$dQwYA*cQN_tK>{zFNUd`D#rdHbE1 zOvEpL(&Sn_ZLusW4K+*4O-;LYH$J>=TRAG{+Wv~jQvJHmLb?{UgT66G+OkCI^)@uu zX<GBBETwQ+mT<6jG2~WIVbcmnY;g<?!@T0MuAeRJ-xv`Y;T}fh7HdhSNq0}GU@TIm zNQjI)P0dqGD=sT$75}@r#cI`=9y3N~WJDBY>RPnxt<lKMvo`xl3I<W-(WqLb&Vkre z6Bnt9j8Mr)!SO`{A{Np21i3o`OXApuwI8VBZ|^CzhG7x^7$6}rkL-qlIdkOMP~Ju~ z6;WZzH0^6E>2NKmM3Nqes#zBV6Z$*7&hc_5LZ!~mON~uI!LpynTtgNtpH^$4qIJ<x z|2j8)AphWHR@U_7e<FzRZJGsYD7*Zo@MFDpx~Aq$j=cH97&5i7P#iOLG9U|y<}(!? z-c@o6234`HHqk1t&yIy%@yYZbG_0UH($}4dt@UuhYD*U)UHGydS52(!Q9w7+>5j0= zMRzhuZ(haV5^*5nH?`WkjjiIFowAAtfZX#jO*S@N$8&B+$^Rm^?ip}Jk^ckh+Q%of z>;6;`*RuP566cyfIobX<SnZCvzyAIh_dD-7?W*c39K<ex&DG2y_XSu&h|?E|uuRO< ziO{@>D9D>{N=^!20cn3LBI<N1y(l8~={PkUJifSLq_W}o-o_+N!mG}Y)*b)2(xSQJ zxO8?^oKD+%%(^l`kFjrgv2#*6BlVwkRNO%p-lbaRR0z^KGkRyltb1?u@ZUio_a*w= z_)@BzIvxmM9`TqN?LR2##=69WPJPe^0jU%p)twp_a!82HT~aL0s>0Ph58DvdtFH?% zCQ6BsR3YdAmLV#AkU+-LG&KQa3hWHQEc>*d5Il#*tvT{yJ?cCjDQI^nbSrGjzsF(W z;_`za5f!nQ<B?1(Bz5KM-c$#*N{1=9GZZOX3>K#tSca{WKM?2hjk|km3`>R;F^cHO z|3ncgCOkU_9x`tCsC((_{^NgFSvl(Sz4^wLEpNQ(^Nm(k5(NQLLK^Thc7f(GF^R#n zo3zu6pIi+jAIrEiT|p0x*v71a#=P9UHN6L1@!s6cIko!i3J>*cAP#gj=78Bsgyf0V zamu7t(CNKET%q$X)N5>)a?O3RXCBS#t%_R^CmR}!D^`Z0B#_aYyDIYnq2qNk%icW4 z8r~Vc-smci`_bCBxW@L-Q<ZB*G8$vgRW=_Xhb;|r9sR#S)=OAoa*+fpaCpu<omEKm z5FOZXIU_A{9axL6Mwb%l^~!+Op`H4GrHH=%LA5tM)D-l^LE>O85p5ANUe~sFQ|~(D z(aMSB+=ASU;ZeM-wA8AMDd{mr^aCSa<N;w`{b8TO#yGQ^^S-x=B@V^PUwBkW`=kUO z^8Jlg1@Twa21UZpubOX;f*g~5*68Y0^}38_v)8P?zc-RT`*QZ0yF&-sE28bmhM>|T zH|KuP{9*3V0TWp32$mycnMAf`Ywn#nUS(!V8;?aSG{MXO09%59i-$xKS#mB*7Li&y z2_^{t?$<`^qFoG)#W<=ISb@4#zSjFLDc^1Dy;Wj;FxFNHMMX3`3ihJ8Z7Cq4h&a3h z$AW~7FokfIfGz?8xA7tpjzvHp{X3Gdh?NKu5$jD95w17TfG8=H)GCI<TGZE-z8_WP zv&P;q#QhG(>`hP%E2O|;0H#E4KZ=f(hF)$l<3yq@H?hv<e$3Ex!2Q^wX%&$5KP#8$ zl%_Z(=adURQ}XWdn0uiZcj~zEOUh3anGJaGzP&ZQWo7odfErqXqwYGZ)w&rIwHvmc zaXS#@So<9hBzgk#D0K-5rA=pA3g*;?C@wt``Az9k_BVU@x7T6)m(_Q6XX?DgdM^$) z?CE;dR}MVjvwgFW?9G^hkGUqh=!fpdxw?-vU8m)}E!w+}o$k_ntjonIq3LL52Bn9l z%o$#hXHh2{{)K;ObIK-y7a|fL6@51PRF03`{XRTa3qER3J`!bnVteMvuQ-?{MFe+T zw=$uj&g{`IniutE5B9Pi;tb5hU}X6D^SSe6>O<$cMyaj6{^$(TXy<|4mUFJzyGWsE zW5SfZv}jJ4NAtqDp_5~$+=&L;{y5Mk;`0a|1eY>=FdQ(Q987OZv@vFrW8)YVm=C0w zf)_b7CcU#%H!8Wn0O=L6C^N%J?>4a$PN~V(8P$Q-8vkkQw3X8fk8vV!Hl*q5?#3E_ zioJSOlC0DyWtG^}qa+O3HxixHEOR(6N&;)Z4}MsfKJeNb81(AOi<^6lD~HaVtE~&z z1NS!^J}~g3Gdz$Tt&7$Ny25Epqpt8FyRBS{j?Xk`Q38lI1~K|B))*XM6@S56ap9;* z)@<99`dHE)ERuv8molmdbwZj&yFt?34Hxm0*L&Q0TyvFxTQ0Ms_4N%Y`&9v>wsFDy z|M2qqd8vj=x@jBiD`eSzdH?ziL>56>S(YUVvSEXl*1lE}A>-Ed*SE5v^-_&*+tsNV zp&Gn(EJ-+vcFhrod#)je)}gN}Y`yIJI$HU^?)P24oY|gB1t2q!8Cbt%DBibgR}&H@ zM#OO<&fYX!RQeke&T~~%P*N(28daJS{2h57wb}lc?JUwES~;`yq#0*u+j(=vDh{Vu z5}N(@uSB}X+uBkk3Pr&lrySX8h}PU~V(!C80Sf;EW2l%Iiac)=##?P~!M8SpHUd*i z8u8}miw?B4ZC|*Z3sE^Jn#Z-%$wk5m&J-Z`X%`9hmwYsYr-T>=@viduQ%0S<GazZ6 z!`SV7mu`XU9g2yPba4=4FVFWU`_gt%Gr0Zt+1Wr-@0>3>eL0!Q!zDw>V~;d*EJjOV zmW;DqJ-+Hrv6EJ(BUsU%Pfs(zm88?_LF{Q2-G>`wSJe_@d0X2duC07kJ%NcLS)o=S z+8&or>2GBa;b{&ZcOpkK?${dq=Wq4ea@dpj2sSgULPy4E2?!#C$e;4i7+&M3n39;N zWd&Wj_uTw~Wg|<y))2q3y(Rwd&G8*`F5IpE9^dkk5{GbenF{9PV)n)9y58#?BaPs3 zp4<?tYoRKRQ&)@b<+zw|TYVpiUf8|hQRF*6zaSd8YJ#bG-n8Uy>~cHxNIrZ~m1b_` zD&BaRWoTw`Al9!U*lAVKs++Wy5w%FG)v6kqXhn=sG{z|SVpX&*+9+xf9j&|YoYBr# zlV<RHwS0!fC(mZezMOd(NW^g(hI5mypBCDZYQz%S1|JkGTj|rTtJF63Z*4Ak=FS%i ziJupqUila`U0&T`|HjVhptSGaXlO4Rn|NXj#NO|?uA{ueclfh1%cd`n&sw`Tb$1`$ z<L{osKdk<3{ZGE_8<|asC3wTTaOabu4S3`EJ@j0+zx0QP-@px_OK-PTSF_gT7+%k8 zDtD>R&hxAQj2%_$<&O_433KMuoCUQbbuVk8mG+AUXwAx}RzyU7_r#-2OGMO8t36O` z?3*VaV~&PLZn7F1e!N*wcxVPx!D@So#p0*ByyqzIvx{~RF<x6|ts7s*5*15quoDJR zwV@X|FRPz_UVGWfI|~7(l9y8SiM4z0vaU<VxlJ4U`!m<K-&88lYN!fS^Q5CgR6(!L ziZf2`jE}f$N0BihAvj<V))ySG>}b_ztzV<x+0wc*sVFr*W<~Q`zgcnDp9ZXTkt^PO zRk0@27NL*nlBdOowzqh*oA0`4h|hfNRVqE-q(*eyE3d8T%Ls+&tsgLRXmnC!P*ibG zEB)yWeVy%bt3NqAy8G|!srb)@vZRDx!ODzR&ZazOSh1(q`i%}NpSen*mRxmOqV~8l zGBZ>C@Cq5q`FAkOe7M%Dq6nQ2NiZi@EfD<Bq$$ag*mUFnmruK;I7<6IZ9-=iUB6zS zFX!5RLk=8}h-S6!d#Qxnx1@L5Q&And(a_9m^WAV(1|{UY<xlj*&6Q`z-N{>(T%FJa zI~}cYs&<)P$`DlL|G8;DqjGBK2TUp<<E33|mE||<8d}cEdCLb4h+O0I3=m#?j^I8x z!slF%MDR#4NKi_|r{*Cn>qTCK@OLiES#^fp$UUduOV5i)w8SI`@nYKy;aW-lqMak0 z$J1+kk*DN2j+@cYC+t`OC~}D|^(ETSu#~_@oL%L?RXzz5!dzL{vqJM5X^@#<Z7wXR z>Fv9(zhg~Ho;>lm=D6-HppQ;yh;INGTu4b<ElghU1@S4bGMM4-p3$f4EH|32pV=xd zdN6~%cN~!E4=tRJgYna+s903at+SgeHO;-;lHo6iFU1N<=0#n9y!HL`z&;=G0SC9k z-Do_|ibbiE&hLu2CYR(0u%{tv4$63|I*ZIZy0&2NLNUSuR-xS8Etg8{W+u_&G^KVE zqi4x;ul_ZY#C-_G6%h8aBhs>wK6oWUB+3m`0cFU%IJYKY>Ux1~VIv5=m<!L~{k>M+ z!F^r+d&-mz)+INHuPWU~d=;TS&bMzrG9htO9zE6>xv+2=B$;8esKjOimwd__8Z70# z;t_;AKdAP4Q`7R@o31`ZmQPB6#;SvpQzlZ9MP>U^A-~%@&Ij8G&}ZgF=GvzFlaKdm z$$IGuoH2X#aLLeWXn8t{pM{3Sf`0RT=tevG4P$q^c=NH5K;{t)`2T#k3!ZqQv=kHi z5~n0-QktRwB;rgs!<<1cGB0A>9{Ts6oSd5K;q|49EOww7LDHVVGceVu<gMy3R&6{# z%{RxOM1>lGl7`nG%m&=CrZ?YKiX&P+E8V^^B`k<udF`=keoIQYGHu;kW!nrb;W&0= zYA>?2KevxZ*7kb`OZf7Hm)MJvS8WU=btd-A6w64b<p~nQ{Gi9&EP`@n@EdL$0*2$s z6&1e9iu={sTbt}#w%Yn<1JG&LSRJ8~quKsN9CC&@Fa~MNQ@ccx!S?k@`}eO9^>RWz z9&qdnedo^EY(Bl_aY#w$JhxYpIkd8Q&{eFnw$<p+Ur#^`_e2a)kXq-%rG}YR<(JB* z%iZP4W1YUvFFI#C%^SZwhIn)7MU`TD`k*TA)@Z<hO|$UU(dCktdpM;@`@o1#bNwGw z(iO&ZfWiU!gMx%<J+Bz#Jnk)QOMBXl7J8FgGZ|JADoHhI^!Pq9TfqpV>0124LTb$` z2E*A`u;4x?s=fuipBuZez$Pvx0wNLgV>5!4S-%YmiTUQ)UU=25jL0zkz0X>D_xcLz z>be~-AgcH6bB^up+<PpiAon1@fj_vZqBY8TQFeQ=h2jRo&&k&{mo$M$=n@DkTrUKa zJeWx?RXj%s`LeK0SM#sv3csxK3P0?Yb4m?4nbIW@pS||cTn#FJyZLYQ@^i~~=Jw&* zO<lDO{tANdO30+^(q}M}y$--L?(tFqu(p2S<0p4-@Hjor4G-)({pbPovJ`>~{QVC| zjZOAu7I)It65o|L-|x-Fjt=JoPd@+5GdG`B`j0NXA#TdLu~Hr8qE#3X6%&M0PlZMs z!T9wmu6j*Ju(nm6r!&~HM#b6krE1+6MY2BVW^1X}%Tch!ywwp?BYAjN`(9r1U=ei5 ziIN0D<Esf{TwIn(SEP&Sx^yoXe?GBm%@J#!8gym9r8*?pWeF)7a?d#u7PcfTjxVHF z>!M}<-@pHRI=WqvtQgK|Q%uVN9UL@PT*c^ih8aeM=t(L+@pC3dC2<@lsTc;qave^z z;bi+l5mCqe{O^C8YOq?U645cufP7v)pn+UHZbIV5Z&auG{b{OzDs~}Q^*(%C75sBd zA^#k?qoV#04B3kZ|4FX+=-0vt^h1q8QwnBDcjYpCBrozSO8oKH<BmGCXXi=v5p~gh zv|HA2F4^SWQ7XSGBV~3A)S%8zwn4PhvZhRSSr(LS8@rHrMz<^^<R=XJu!y>M>d)bw z$k4P89Y@Ijb?u8vkk9jPPEptGR!W5XoEakSEN)awU~sWwRq61)(TsG;0{!&T6HU7t zt-BX@HQ8jDU5mTnUEjWBz?#$yHXIv=HCb$8S<4W%0~rw>2&lqA=1)nl^*{wq@D%kq z1$UalCx7q2bjGyH<ue}7w8Eb)tC)s<f;xGWs^(0RZ1ZLqk%*wde_Zl_&%r+eo}OJ4 zn@SY%mGnrlb_*}m&Mj~|togQ{^+>g|jDL=V@n{JoT|BskC_3B17Zy-A8abi~_9o}7 z&i;oU@;Qlrvh&eL7h^~Lws2o~y?-?DjJl&^)H3RFHf^n`Gs?g5rss^tuC@~+d#$r3 z)^QYd@mOlNUdJ7C)xm`tv51X{@bO$rT^5dPTd}S!BMKi6KYjQEjXI{>%BC$J1GG%% zQP~K}{3;lJ{XQ!)vNC+naCZ7v_h4<+LrQalYrMyQ(j>MY41UeD>q8I$M75G6$EJbr zzrV4}a*(#RV!E!z4i8G*#)lpn9wI~ia~*W;d&Nhm+n_A`y<4X#=i17#;fBFcq2|;J z`n+2bkch;@(movD8{)i3V<pcid8LFotYggkT4ju8jL1RgZdf^d6f#J$L8yZjuht$> zxIL+57ZaG&(u;|*>oN(G5-*mfG6@&UdU$54NkldO%OnB*c8fFlz&2&tb35x$-_G3S z=a$odt9Z+VYvw+>dKQaUYp?0MYor|YaF~{<R9m(329^|3%Y!Muzp>F`@w<nk37Sjx z3amXV(5oJNa1{-~^;W+X_iWL#alTq_#^~RLZL3^nk|@H*?H_!&E}Y`6_Al0bIJ$Yz zn939*$tV@uc^7i&KBi`jGt|dAG_Qmefsu7$2YUuzw-(^{(F;ZQK^>T|4_aDgkK5qn zubPHDSXg5zX3`dgWj<Dev4Hy@&a6l*FEuA-J{%8yW`}14$^zQ(;dm&?c`>IdCqYWc znU{O<?Bkc5UWfM~#dJ{+9gQN;f2ZIo%A~pIsDn84EK-DW{o5-TS|ypic(QpiUz%Al z>D9(+FwQaW*wB^eTf+I6<agD}0ugwkc_Kf8>ibXpd3{ytx!8W~yw(!<Do#N#@0=1t zPKNYn5ucm>=)D@067^ld6N$2(T{(TIrmMSFylf!Vt}s_;4r+@!pbf4ZEK}c74sADW z)7t26t)nPfG-;8xagwyi|2A}p+Wc;9cRr{#x3%VS80?p;pBnHiLa!srJqaE*G!r;? ztwb%~5J_)Xk+}k89Q74$<n?d=?3?3Ic@!Nh^NpRH;@STEHIqm!yk1ASy}Yfhe05z* zTV+yfrnCY05h^`O#W#`6)+BFXo31rj9&BJ>k9p}(xgpI`bg#kgkB&Ojtm<i29g2#5 z<+~D=Wl42KL`!jo0oK3K(c!aMxBBC@W$tX>nfcEipnA{W%WQEzAU){Z3OQmBV`3`` zDk?U{Zi=Ne^DbQ>a!dFTbVRyM1^$<s`8L$%NZ*v47L7le%j(P&FD8stFHm-Sd;6h- z9c^}g`r+3suF4CrfJP3gH%Odh5;zry1fD3yL^HEf?naP=Ks%aRy#i?wjQO7gO&0=_ zfdvX48um#x><ixmAUV(T5S%8`vZ=tMu-k)M#<5875-Bi`6G1s1=00g!<{GlQzxv7- z2tz|YUAG@9C@biBclqGvi$UN^N#c3LFeWd97SrPzxt?Q^p!I|s^m=n@p?AH6IH<5V z!UuYsDUU@A?UMS^_-62+(9Q&xH<wnutvPe3@o}@66mjg0d&}_I`kK-p=b}_gGTgj+ zi?u4d>#0>QaR~Fh?t5*#{cM8Xmx-mJA-%)!5P0Pqd1oHOHxTqBki8$i4bh=@HuHhw zA_)Ah(v*}Tdi0i0zT(mxNABp6|FHj0JNfiBSg_}dxp7}S`wX0-TyWOj$ib$c<7RCt zq_WM<$|0N|fO@|Sf=D^%tf(drhw&mkp{1YJaG^BHCYg`}S>Y6_u;Mk1e*gDH(o>Mt zkIFj;INnA!LXbDzQT6Pdgzq4!?juL4s`_WQZjCkkI_fVhbS>Pw7^FkvC}5Ahn$n5q zF)SjvWmio|a;1n<cvpIezwz&SyL1~TRMh+7j6h<oX#02ux0^lfRPtY|=!5r+m8%%p zOv`jGsc0?nx72vRkZNne?@vWt*~8hPl_`wM<+`%0n_~9FxaARjw>isR$}WuCg&#~h z_W9jzKU|fa_4#HanwMl<K2G_df|{r?6QuW*U8cvZv@U+7U_D2~lGN(hh)!+-8sUR~ z?_mYU_Txs1(e*0dwP{6BYwPL~1hdnnm3-VTOb@P_$45vYl`v6^2+t$lB3;jEnqCQ8 z=!lR6k)`T*0+XxMvdQYqx~ddQO5Wt1B{@}Vz@N@5O6wXW>hPf9u48WZ1SZBP-IChu zx_v(jo`r3k<WW$TQmXNi6{@Ph9g(F&!~^&VTvTwI$R3$b%_E)&;So{u)kbq*i5w)W zpy$OC%O2ZX&c3*LbhHOG?%v(#NH@l%>m!ljiLMUv&a*L83<EY36?~88@w_seyxobS zJkk>Yotv#PyX}Kj3zt$h;bJtet?J)mQdN-dUthzaF&&2vwWGbG-PXv8n^y%$c3Fmz z-%C@5);#*AIVShzh}i0rHK-#GLN9dtQm_4WnM<OyDQYS%IZ;=Tq!vmgBw`7RQ+7m) zGwBN0ILf7<lsh{VRK>T?TQ|mB=!v}VoDY81ou-qz^Ok=Xw#l&XLdDk9L{q_&#QAwV zZYFpopWo-0xUeq0*6C6cwObTzksIr3oCnU2+}juK^}M3thG7Ol0i)BB)1tdwafk!w zXX%C6A-|2m<l7{{WaL$pcjRWqb~8#=O!~*V-kBPe3pMsYSD?xCkgCC$d^jj1h&uT1 zpd}`Vx{AJEll#*rVq6c4$20#(^dBSr)#CDma>c7HrJ0}qxu+EP8o$-LT}{*n<7VT6 z;sPIc8d2w!A8E9{soV(mw`$r3QRSF4x*i^F;S4pVxNlXAO6xtrN+)r$0YpEK8GfZS z{CIV>pS59sh=Udl57!;=b{#NFn%*ce@=5ui)ynXU*9H>_f@Y2q1XEGHv;LGYSmpc< zMr4fVO7}!Bi{4YZjAJ5%v)aLc)(>`2dlroU;>FoXYN2R>k|e7XSoE8_<GQ=0#&uu1 z#h_Vb%W`x07!ClBU8%;yDv?QJoy}J=2IB+QF1uWr;GdTk-Utj&^)Gi{tH$PeX)<?R z^yvFT*|Q2EGNMosl(RQhF{+5H+xb%#`~}thHBafmF9*@oDe9Fk{xa|uML~{<;XR>u zjS?M~CcwBrz-}3@^fH906^u}Oy(<xt3=mS&Ff-0@=s|CpwVHbCl&0^}nKPH%q>2~o zRV35ZKVBlItrHWY57pDFVV5j&mV@d$)9*P)GhqGg|5!?sHf@^P+slV6v(!jc=5Hq_ zuU#|lbwZp}+|t2m((QomhaaXYt1bSLDeMpH`1G1UK!a-Cr_V@})@@4k$o#Yt_H^G| zon&{v;Tj)L{G6Hy>fd>1`IS=tkJ%3u*{t^;%$aN@`$Man<fn7sz@x|S=}?Ixy?*Q- z>M31RgWOl1P@BVH3zbNm#dV?wy(u+??cD#gN`R;~Kb%{f9&(g){nYZ^wlJsD-qP~) z%H3Y-lfImro8~TYVY_;5pL~_ftzSKyk~~y0l$-)C&(vB&YjDeNNjFObA#mmlOUkNC z%%tuKUyZ4=-?FZ(3aVyKJMZx+-}&n-0aR+DPNPP3(>~vH`t%3BUpGpnZC7$&gzKFo zRaMr*==6UrdJOTYq`%)>Ztl0fK}}GRe0ez^sTl17U^VTND`NM?8%3kxvF_imPNCi+ zY>eMKyrvl2Q(bgyMTvG{M|@M8E(Jq0C_1(JNIYh+?qto3lBXh$A~QM~an{ZC)7-|p zf$S#CL^f+anR=a`n-aa@M#no401ucSy2Srt(zYEPxtq9dVWB&@s}7n({rtLly*Ni- z+dCI@lEkYAeC5qQXr1z)mZ0Wkv+NxU8HV7Wi+8WtckQEgNm@Zm4t?w;H<ZbYQHm(Y zC;S>$ACJS0@Az6w!Tl>o-!U}C;YG|!q5QZ^KC`r>_Hp6&lx#9W^)D|vXhLWQK{RoQ zqug$~MZbvD6Hf%X83Z!;4YH)1wPE$l10xE(ua7olLV#55l(DAFaQyJd^@QsZ*ZsM6 ztohBe>Ih3xhI;*T(Q55WxOQk5p+;S}D^pW4U!s}U$9W+k@VeVRkei7)ocTeA(@>IK z(0P2W@|asT_E&!98f~7jQ44B@W7G?^pD2xzHN^|<L>m<!93Qpw%gl+)Q?e42FYHp$ z=&zk!LGXTftcaPUbm8ics*EM%-!g-J5tdz-A#5l})2Sn^hRHLcw`{3WR6r*t2D>P@ zvD33{?j!BaX6fLZO=kz(t1e1Zn^&6E5zEKhw24LdxJ0dsOAP7S?88kcaJ3~yB>t{V z13wxpVZ-nLUKM@Wm^@T@{6AJF+d%$#XS=yMJnfA%?R`4s-f{?ysuDNAhQ~8>pUN|W z&;~10aA01ZQIR$k##`lZmq?2cSXHt@cO~6@o_I!4E?E$AEv6DbE{WU{fQSA9^X}=| z)A1dNFX6GhRv&#Q;dy$Nenv4nIx;rBBQrFvXNVf3;v=R`-$JtMvKiT|3=SSi@^4o9 zl>drs>dan89?uPXHS?e|abFEKQhRc@asJZN-$d(Kg+{b7g!}Gp)VcQdor)^GPsB-# zVzC~CryBE=otCv5!_vuI<-cNu<JLJ-WKoInQI(w;ul_tZ^gVPutVe4#V=I2A@BC#= zp7LN^#)B#<x80a)Q-x=mNqT{l-*PEAqHcZFt;B@S;*%nmqLPa>a+N$~r8+S_nezW% zJmLNL#F}|tLGWWJps|QVtd+MuwrBkfL5DxfV;9!5%s8XBGcIN^5Tk<2$KayIcR`Uw z@=8|IvAS;|PiZrYCSeqiXy^pP^6b5_K6l1pXp!;o$?axqmcg0wDTd>rbAPub{p+lI z$zix2vaBhoO|N&3TSs=7o1HF2%Tr@*w5Ag^`E!NODQl}qpj&mm+h*LHx|I7#*C(GO z8kMxBML+Df*%IQ-l7DB7JGEI#Qr!xe{^?z_FXt>#cvoA}zSxJ+)FDGw>`3zK`vC`s zU*Bf$7lf)R5_9g|=50N^fq9Blw2H$o%M)eQ6)@nVuIb@l`vZ?@)V{zh-&W?7S{Ln# zNmHlAxS~15t1NrP3$2zdYWv5sp(w1{c7u=zP9`GJ)7<t$8#$R3806rw$K;QRVM=7v zsJ0D<(L8dIOKUGOyVVgQ6Jav?6q?j-R9=&MEX4;Fu)ZT;CD+e}+{x^7voOU=YfA{% z%j4mh@W2|Q0UN+*b1Zx35`719BuT#e?(O%D{+GV5_SuzMi2{ZtEX!P{Q<rvEMT@n! z{F5tYq*(wmK3GPI#);D;lxP~>F4FTfpUcaqBxS%~A-|ME-YJxm5>A_28iu9h;IgR4 zEssZ);caVJDEzAnmHmCU&bRc})W0tIbmE`jpQd-&5VW^nxl-OF_XT>i88@yEtY6>U z79H^QZ2B57Ff2=0Q_O2m_+OZ#)ci8v)cziVz;nc%7(DX1yzHJ=Hm6U|8hVEI97cg= zVw5*`b6h)q0s`$X4fdY0xo2~a`JLUXH4gP~*1LT2Igt}#CJjMYx9En}Ca)+i?UKZS z;CY8yS)RRS0sufS;yB}`n_bdrtgj=mWM_jEEK$XgY1-nZNL-e2(8OfrvUVrS)IY|! zxg%hAef3w{!O#a#`ju~9)z^`-6bQpZOYQB)-#$L#a}{%<mDhAA$UqvAS3|KQYU_vS z!>#o1xo})d(+e*&VNMpir!&_W<?N4AC<xUZ!yT0tr*~+xHbI^*PtZ0GKRGBrh;v#k z4w|oX_2u`-qO!9|xqU@WZR0v!NR*}G%#*dK?x+G{?TQ(k4}{ZhHU3&s#ibNfR;?`A zu%TpS*myx!Ve1FxwUF8S%U@y|RN5(RqI)oV(4EL7s)qG{`GwWh5T`4J`>5~N##@VZ z;SZ`=*22EcgO+V6NDAJmZ*ES~kf%b&G5cTMxapagg9fa1UkbPUxqqvFYyYAApv2Fq zX;CEpoQ#+6!sg#Tnej;v9&D{!J#9BAVszXa&;vxB{OPUXU|6w3ZEz9RCq%xqggM&D zUd1TIQ@I;R(V2D$UTe(-*jqL4J?M)E_)Q3`$(W+VbSI_q7D_T_*BkD1H*K;r*nsfu zr8OXK=dMH<Efe=BOs0=>v?>-#(@uULYo%Q{nj5*SYn)XfXl<v}@N;MJnz_@vcb#?1 zH>R!A_TQLZTi(VUY9m-$l_5mY(!w->)4ZFR^T_&)n-@6<S(dd)wkZ$G4$^Z1q}RH5 z_aK07G<lB3{C_E&?{Qo$NP0>OL<RZiBP0=t-J&B-Qmb?Er|Z4;R&6uz%*>;ChGhlm zl3~-?SPpZdLF6b`US_!7*wI0ZMK;@W|D}H0+gp=jNj6izrS|QE*^4(w>WXS{V{#W& zpvlJ5$rtCNmL{Lab*^@O>iXIYL-vW04fCeoB{Z+mj6Q6v;K=LOTduG6UXqV&e@}XE z`$*yM8ucw&Mk|+IpZ<1-@%)An`K9ODm7ZW-E?ocd$37RYx9ithm-r?XI_kzR;$~W% z&JwRyZ{MC7>UlU6!Yuu*g>`)lqhl2);leAC?#}r;KDjyYUZRTk2fk^KR}CI}XXkT~ z(5e_CZyzoV;-Z^43yDQ|txStpm)8Go5+q9)5sAz~9@N2`v&W0P#VLV)WhtAMmSGB9 zacZYc;J!_HOx$>kRn9mRZlCY-{au|s4BdUO`;Y#!sh=6+4R`2~{8wN}=?U?p{HPl8 zi^g-_Uu($=4UVVdyfyWH&Ul&-GZEua5Ie7HWAO)3EqXCnLB(>3cLsG+%OPXVD45iJ zTNWIOLW9fpx+W`><{&7cx|fA53k%w;i!;YnOkQj$o!3!X@FyWIomob0zW#o)ZmM$Q z#>()NpCk#sJIE*%6TDrmS4o4ALl#@R8l82MFG*4Mgtd|>kRCx<_d6hlU}s!nKr*&9 zX@l1#tu}Y-T2d-UhdTpn0wseT67nQgltduzk}&C?xT@!wXfhlN^B<^M)86!X2Bv0Y zk&C__O;yTGIAwiSH`msCkrz={VOt)RwMV)5Cl35^yfQW4cXiv1fHb%fuoHJ&&o*%f z4&Z%cU*91TJL1q@z94IF)F6+fDE289!MKR#8L#rwN?&-v5r~QP!`6PzgsN2)6~f#q z-6Pg^2iY0Axyo)2xED*2rlOLj#(}1$fySm1y67VUhYRJ?S3mDB$lmI!MRmnT&Fj7y zP6+416Na;*%twn+U2Wf6p~<0hUOr6zRvG+LmGO@m&Fik7=jf2K(2%wtkFTpRehMWa z@}Gjg9!(yy9Bxl#tomuihq{c|-Oh5*dc=MnhT^0uRg<r?;LK4{DbBL2jxCnQJI7gX z4>yH14X<6_xqkir{XmAc;a#Qxvv>%NXa)x64uLQ!n(GX76_<pdkd>$1=`;oc#{N-n z#<`#$=GE^VJ0dphGIt&en*f71Jn+P06G+6YBy92CyGnKtX=30(OKq($5PXwm`9Cu( zzw7lKQ$2dQ;jpXqgv?Idd75wpi=v1L3l*0(4nrt3n~+KRhG@=dJ(wv-%ETJV_ORsy zeg9K5yP{%d1|b#dPh?)CMU%itOrH{IhO{yTl~$u-l(ls+=gH65YeqMfyfrrVzxB}B zL<dQKR4Zbb7{#M;bP+#g&p8*BPd&v7oV5s9t-^(;IPvlr>8>I!7JuSA(BgSicDAmt z-H<tc1#14A@7-E3&^=R4rwuJ$<n^8sdqZ!f+4qSiRt^`Z4^8`KuVh@AEjf!nCVWHa zBp`x%Xbg}nwl=d%ZfQ>C<)ia#Ztx<{B$wo?e;$ix_%p1M#~hv%>C$C4E#fbZ&^*`y zcEIGo1WS%Z2@MJ#%7<G^7&HmD2x-XfThN||Hmp1;nl|p-*e|;-`(4(_%KNn{?fu4g zgM!O1==~e+ZI6ns1-9pD?8cJGhj`t=$<JQwySI~j-fx!ru3d9%_cg2=f4v<KvNs>t zC**8bX1mp(2IKo1&D+AWyRy5tg+;MAp~KjgT7>zB*b>cJ#N15IAFfwI^9Zb0y^C}6 zUB>v{ir8`5+Ne?IFXpS|T@^kbENL7_oC2%bCN{moQy0s=x7pZ&w*})BVTLslOpI3R znQMc2hPuW(E0FRr@ecHklK#F!CMC-<GiZhZYrJma?U=o;Q66#s?$pE<DL8sk?&wt= zw@=8{s%urO$?U!N^^Zn}DL0So&eZTM#x;=wUOorU%>R<`{twjvZ8Am?eQ(UDeH+}7 z&3Phpmuy;=v^+k4_ua}y_FM4DZ<ugi5y`12hpRggC+V;Y4zQ>z8`Q`a@gs&7^5>ko zg~*(<=4OR>0IXT#>uA64ZKq%AyeE@$u{2c`>`go2g8;I;;Ap*qI`u2pl9FsO!_`!+ z+tA(>z`_;*cLnMlkrfrZ-M5`TIDl*3{B+Z8JdO|=$EGtmO?Ci{aOa&Y`xp=Iax8n# zJ&=M6niasMlej3tmauq8@v@6$o2sDAQq6C5gaE&33fSsbm_y%U@pA*_nAi{)=^0w7 zWM~Gv+tYwZZjr{f>X>;3G&yJo<XEEtqJAIa63{JmX^5nI;vULu0v9J!D7F)JlVAxF zXiXpqb`GiyPdGy69>kn;+<L>JNPSf4WOl1h_*Zdor1>r3ia6d_3Mj7N3PZ01B(^bZ zK4Q$Ywp(pX75whc{)<|!ChFkRD=)?y{D%00@cB&E35_2gm-g?M%vHW~D;wjjG39TX zc7IZ=%<}EbZ9MWebU^02OIiOXMm*#!8#hqS7Z9alSaIt<&a-+U`~upocX%hp1la1# zuQTIKSj0S9GhxbmO$3A;fUeqYp25`~7lOe!yZtuL%gO(%=<L7Vv50GoHMO>}&8%@v zbMu;#CfP7_GaKl)bIF0AQfw+sPDs+kq@}Ul-)>eq6@t{5sW*Q7F~i4bq0*E78;|1i zj~HX9Q@T?WN{{)k&VhVZ0cRD7NG!g&FooxBVfO`zG5!CsZQzC2XOEPFc0`jT1;s3l z=_l!QBuvIwD-LM1-CAvRk4JOa2tu7bVEjDMLEL0#Y=_;%6qqED6PZl&l_}q7RvpwN z?)<L6p7hd*63_0Gx8F0At$%B4<v1RPchBy4_w9q)W_ou@q9eccyEFErwo@k_8r_rf z_Q+Q=ljv~KgTIzZ=6f`3Ypr1fXb3~o*Ko1hrZGO!${?*4pXdTNFsK!^z?r&%IcLOo z_ak@z{l4A1M}6K$@H|#%KM#QN6;)N6|G)DNSzFtoHgbrZ(B?3a8-Lob|9SXCom~=I zk{z2LotfBDk(zx5h3bnBWTxrN$(dm*>Zl2*l*|7D!}~KyYPPsfO^sy!jw<UUOs*|A z^Y!%XIlVFazc_2Do--EJ_4ib(dy8Au)Tzu-YW48+q?i<6_Q;AY`emQUjs~mGy&RMM zkgg;$GGg`P!8+;Jtwnj3sy<6qUW6(lYrJJVD?jbM=Z1!LV?mJ-%i@0hDREz7*gxWy zh5b<cC+EBa-h1U@I^Gow2hOV4Sm_E4t2|Rv5ja+BgsUos_f5A;22W@0=$OvQnI27q z2;i(QZ>|!%OXJVwBo}Z6+x{zwFJ#^SI(0@u={yN4ehHk2jp7&io2sZ@TWncdUD4=a z6~hV#a)^+VIY-<GW0z)S%nF4^7<aI0vzdYxq8ASj?9WyP$L@|yje0P8)NY46vO(IQ z+L&(~S_g^L@;$o?+(jh6N#kTwyKJ8zC__WfCm9BxAtNQzkhz;y6Ez)X`~mzH1L-*7 zkqtpXJ><>em1uQB9Wm!&gNS!f6V&JMs&3^wwjV_<fiN!z0_j`mmYxxfph5-eT^+UP z)2nnLhORFm1S0=qZOtwwta0nM#!z8lS8dIY6^&tAw}v$?9Eoor+Z#xH1prE%&j-W{ z&wO+$tbUtgU1-*V=i;e#p{tm`jfJex2eTgxJ(WbxVPsCi)I`W~j3KIL%5cI0K@Ri- z;voeTTmBLkS(i#w2}R@x+(3rgCg6#`37*leJ)foWm!m5AH`79Sm%l7z*|nw}Y2*2C z&3=BO0dFEC2++Z)Nyo;H4dlNyl*OgZmgEv0=WtC*a<zH*s+jr$HCy;W#v36IWHRYf zTf19i$-&7jvhJ-@>1%?>WY{FVqF{MbWE8W!U<G|5ep!>@_7+%21`N~IY0bboVw{`< z+H(vqCK^`+KH|`OoRb+N8N(U-GN8$=W!%2BSMK&?{JT9+_-W3k7pEX7F>-GZ-6X4d z%&Uody361f7=*E-qb(PWC)JCGvbynMt3W_IKHeRjdvc%R<G}BO;;t(Xstawlg8bQg z?$I{!Dnz5M5Q43B0kCh^b@8Au?WswJl<t#4=>F!2=I-tsF8fYV;o7ltSvWN&n&M?d zE7#hr(|^Z6mhG%FEOZw0bA|`q(+A+$vPV}wTKM_O1xi|r8;6F^4i7yx+`mp+xlY^v z2-NI~>{_!+D^_9ybA5erdRqD;kL8|`rh>Lagte?MyyIWJ+&FzbhDxSluG6oL+OMgG zqVohbqi{26vX=MMtg_*XkkpV0Y+LpE7F?ccOKv5b3)5@xor8ERB_?GIAG}k8p;(1v zv$88mO`4>nq|M3tuU1u8udJw`D_kdJvoHT8DE_PWKfNn=EH@~lZ-q$_NJ-wBoU%1J z37-A8-f*Mc#|7}6shLLi^Qfx}mSCf4-<QWc9!=wF_&u~;S~+BGPfD{_(3b<M<S))N zw0`#G_H5iJK|q7QeaTSrPd6cyur*F|seD?K)wSYsrOh3ueiex|=Kzr%JIzzrtv`G? z+rwb?K4)LZ?|(1t-#^2$yaZKjb@=s(mwmG$^{4s3_rV7(7o2}qPgG~ejU`Gc4WVcX zad~<vQiJlts^L`>hxjDP&iib()t_!m@Jimfxz+aVYU$`WO}zSQhkdSpUHI3(I@-S& z9*&Le#H$0)TpmD&-uhAPar;Ns`k&P-R<C?n*Uk*))fsevw5?>jFoz@llrxjd`}kh( zRLZV|-#OD8;;ptYhJj6%=_hO@2d2@F5g`OviH21e;d!7iqa+d?k3&#p`km6VsJi0H z=mF{4@7_Z=X>r$5l+xr(y>t+?kt@sltSE&^P_{K?wWSXpi%qIheChq&dZhyS&=+VH zZCb7y{%Z}MX2qr*Pv;4^Gk_yd1m+)Y;<L^y_8GqBzc$R`(RH<r+xnWa_@Db04CQ>e zfi4n`SDn7gmzSn5`*fFvbGJUY=^y@FtL^LC|JVpmo%UPs<@`Q<cxzt5d&%vuZML<6 zjZ16teuo<ic*CRob&G?Gu#L&Xt;Zt6FE^I5x9i<5OG?{d=vZiU=z&nRTOE2LuDCxG zW(;m?kWa|h@?3#y3ty>;T7~h9%i%cth)Tugnj1Zkh)O3E^x;HkXfp)#Uu2^&#ju={ z4=W6ue4lcaG`&uYeT&6RNWduDUXuZ|$Sn#8a~O^b{Hi-$`Z-B%B7#F01$*OAJzcQ! za)%3bJnw`XiNUc?f*@ic$rDZ!(lv!*yTp2x*UNoN`uZflQXhi3F2Xk!`S>^QPd~kW zeSJbYm7eg<@Z7fc_TY6dSdX9$BQDHck7O6)e@g0plH#)T6A)uOoF9*@7-M76IB&Pr zZ9HC|!9?2Z_HodG!<?gStyWitL5#h%eR!S>wad9M*{lp99l{-Wv`MJpG*%ow1wx6b zkDh2i!ILlvBux@l8n#_cO*A%0AhK|>l^{8OtbcS_JPM6pPKIw$ilxl>mA%Ap1*Zoh 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 J`~7dx5dgWL&Vv8| diff --git a/src/assets/fonts/outlined.woff2 b/src/assets/fonts/outlined.woff2 deleted file mode 100644 index d4c837543e1ee5a2b6e89784ac343709271c0498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83272 zcmV(^K-Ir@Pew9NR8&s@0Yyjv3IG5A0>_8|0Yv-&0RR9100000000000000000000 z0000Dh}jezf`T9hU;vu}0X7081CufY1_go&2OwL~#*zh@BJ)g3VQg|^`N`}YZTkw` zMSMh&f!q$2V3_XPyJT$3phw&RR|3>($o~KT|NnngG7;IzWpHWIc4Zse2I>ncy#9+S z6qDouIlGjoeTE2WaRB!r!#G9Y5oTLt#Vr-B1)<?=(;~@fe%L}x+?$-vV(zAy8DyzR z5|EWoK;>C|`7^vWmkT2z9J5NQq<ZDfN-3ob5D^g@#G6X0q)K)l)Jv_kf{VMmTqLqe zs-#MGHA!07yJbgrcSm>lxIs#g5~P%K4v2_|j`yxpvxr#H_wTQIo=Pc7?8{y5@F`#L z56mTvt+o6qlnPV`gdxlA>I-cDA>pJ=oxauJbla4)zw5rW@nLu2H)r@nA5~K2$uu+5 zf;;+xN_@zVDMnJ7v?L7oqX)PcnDo73RM~C&?N^0oGQe16F-Y(*^bCfpe7x_hNWTEZ zgcVE-3Q&wv@Y}W5Z60?~<!MvOTN=f|d8PC+xr{FU6d`N11cXuHkIHU`4l@m@5VC<G zPjoIy-bsdmSg4YjiUAb@6@qtUm&2?WP$5vpG&s2U*&TW@Fc_6>-OZF`K%?abUYm(S z(DX8;3mijk-A->;oa-e$KM#^6e(kszxLf8cxL-m^DLvjX$)uXPDunHEY-e}Kd$$hA z<n}s@NNu%Maa>P)f1cOP&wSy93<xI}AX5QzA4mlP2*SIL6>tF;MEwkBz0a|5tUMX| zMI0TsW1;O%Iu;%4z1FY4-;SA%rM5fin1U^S8Dvv;6Y-gJ;$0d7lp+Z>m~}39_y7M} zssD4&Iq&OzW!IY6Ye_u@k`nF?kPKKRT#1sZusm+FCJd!GM1~%7dkj=%C#(RK0cD_? zgf#(D?|N^~d*S)-53zIqe<`(K1?(aj4~0U(00y*xXF^ahpxIqq3$8UYyY~^L5heHn zW$<3W4?s7-pX>Jq)z%p31qr8MT;KuzsMGxG{hNo18kWu;W@B!5=<Jv{dHYo32Zg+e z8@z%QC*39ytw4di;}0Sag-*4z#$Wal53CAkF)c{b*di`T4z&IL<|6w4^S1f?T5B=q z<hOEt#kF*JC5@28By-hRKs#O)ML|K7dyzhKkv2nV16@iV7+`=I`Y<3x?nMz5Y#6Vk z>S&s|lf*=0+DjI*S!)B2zxMgd?M%O~yVX4)QF%h3BxoIr*7PS(Qo)<u0>NAzDIz86 zNa`BHvJtk4E#mawX8nI1=#QVSf<9H}JhxfX*&Xpr;)H+)X{;NXR>U&Xi9<qwh!TkD zWOjD4GO{}>cK3<xJ~wU^Z~G}fRfw=8cX`I66i#<#thVkO$B>(5)61}#Z{nMHs>Jap z7jmJ5!i5rgq?BHy#IB<6I_j{9k3au1IrPup18Zi^eP4<ai7fFvUHAR}|2OUD$v%gV zpS>2ncddKJ4eANaklKwXb%WMZCQT+U?f9+4yrK{%@&X}&5Qq_&Ld<KUa=O;_t8Z2= zNW+JIJqxHaW*^Xm)|hz=X@)EVje%70Z=f_onW4)JWrk||cSj$JxF(359RwI@1sITI z7+8H^*)}z&DquVQAvj=Rq9;^|KSgwr?}lH3PYKWOe1xfsU2;BC@6`YQ+E^byo{4s6 zb{_$sbCKJ_g`^ZT%CcmTYzxVjfnz&OoHhk|_w+m>^qp}$Wu+ry`?bdhO$`v{mbM88 z!E(^>RJup!b?aSg`USH~A%uhrd@gW2{VC^EM5nRC-eFYT%%^UBUHdvLw;unOU5iA- z!eY^^FzPBmSjqg@GYL`;DJY^++$ehtJoU+^P%tsz0GS>yp`D1qL_Ocv)dL=iv0(}K zR!t)JA}ELkO&iN|z%ilXchFe6m9!KVay5x!z!}UeegH(r{mgu;FHO-n!86;nZh9BJ zvvlMEL>j{G-8p0m^@J<sWq1$L`Cgsh|0L4i{&`z(sf`;-N~M_ME=zqz<7tv?OE$*X z1`|vmfh2HSX=Gn7v*+mg|NSqu|G8B)U-MV}xFJA_!?%VdIY1RMX&_W(AVp4Aq`tOe zz#(hUj?GDK%MSE(fT{vcUKGFzdn{|XZh$mE-KW>un$lSnslJ2csw{PtItf3<90->O z*cLRZQ7y@mdF-)=c5Zj}kU#s3IEmQ*Z*QeY$|K1sK@+}k05xOvZ+P!_)$a-2GqY0f z&ML%I)#Ic*Hj;#N444rzLc~08JN*v_iW?=Gg>@cQbZP_#Z~^cY>v-7zzsmWweUVB* z%J%P08UO#YW?Z9s=AT+@fEvbe)!obK#l0`$MMgx5P(-GbL}rRqq>!bQz)}imkpirg zAO*r;5H<!0Q#Std=>MxK2?;Dx2!teTz8DG%{9R>Sqh0ebi{F!L*S#CY#d28n>Fu!U z)wVZ_u3atb)T(OPyIw4N-@D$m|GjDUrVZ|@7V^XIQ${K!8Fx#SlT*wB%)RgSdEK`k z`t|fc!~h&}#}MDz5Vs$u3IkGA#C$iLbwl%=No8E<tjQHbDh1IGQl-jMr3%tWk?z;t zs8sPwY}2t)2q+>DAig<&50~BB+>5{Y;&0!dIvmb{w0uP<P-xmD&E@WLi5q0w|NotO zycIjq>Qy9iu)zk4gy)O=|9(uPf23^s-7hJkh`P1LRinZTFtDW^;bwh$?a7OsNtKcS z0czBc$Zl4~3zRdln^|x_?j!V3j$nciqI<pn&%c?nzPi88`)*5BRgDo55fKq1#^}e_ z-Shi@(#-Dr+^^mDb&N5NF-BEYR8&+%MD(*-h7N7m@eBeKX`Rk<bROeRVT6DF&-DWh zcLD1U)$cEixIS5kz?0bZ3VeKG>NbV$Dc!+W82CR|JS}_70n#!`2gdLcRG4Og4wAk4 zc?p3KrUXv8%6z2Ppfjya>jy>v0n0!L5DSPv0nh+61Gj-8U;@|y&VbjzUjSG~7IT8h zrGqiH!C(-vh#0jjZ4EgTS5YkuwbjialT5S7N}KI*%1tSC<9IK|nn;v1($6~A{EIE8 z+U_*pM%5aLflk;@av|anutvdoVz6W=f|-T`vV$@MK?@lRPanf2ww6&atFEc*v`xoO z-I)m6P}Jdf%|NuGf!Negex0~bPI=Af^aAfFNG2=v@F6f-I3#kIU}}s2V0;p0Xd>Zo zS%dkOm^+hI7Kp4`RTS$>otBc<sMNKeg0gstV1@iDRcj@tg|lNJHIvd3YQQ`eA_j<v zj4={9Fm>99tgwi<)5IYlb)mPSmQZSD<Di0?C5bhgj#OQ`(a`g3O<vc$g?&Q}Yl@et zkQb@ZC@GW`i;PQ&fr=`$pab2jUqfOA<*1^9YT~rkPL6V+YDt!@j3PNR%dD}<F=t%y z2?rpL1EGn;4wDR&78Xe{N44g4s2lxDkfKo)<ttQ8oPe-wrGnKED@C4C=Fzjt5%=^n z437$8f*LhAR=6ZgLm>lPbn4O*UhszZeC9hx95rWX<iHCSy)bd)i(6J5$Qa1Q#KytJ z!;c|Sh~z2ZLE)J}aLK`8FarfL=gucXQR0SXl2vHP7*S}9GV*(+y?E~g5aaMsLjxly zz_4)yiWWG?FyJ9U&biDlDNFW}yA&=Bmhz>R4AT^uqs4K0BrLMcF=Z~eqs<dx;-sk2 zJMak6N)kKRLvevyl$oQ>GAUm$kbpEXQIc%1Lyo>dW;bRVvuRtkL5rDeV^*>I=4DaF znrfJ-7Wy1VJHh*W-Zxxw%ZcA|SGPEDyJMg7hI6jF=l?D=%ony`2%bQMHK9g7Qs9w; ziyGRPKnI445DWxrprOD<&iUdJCD9S7IANNA772S)xnfM1bqchZX})wxn&e8UG*(<0 z6@=B2E~2|SvgIlJ=zpDOTNY(Q_GBt2@=zWz2_;)7HCkgt-0&!0$+t4)D!<A<!WjX| zQUWDZO8SujnD}&PGXdcckTV5L9Tp9rSJk23s;yF$sf~lOW`!DhHXSGnJsA7fs<fP@ z$xmXf(k#u@5{-+KDoscwbu`vWp`PMpEAd>ruIYi!^xBLi1M4o@bH!axZTf7&b$1L> zPB3J{HUc9yGJ_|PY;ampvW}HJL>l4ab#_apVg_brE-F^9+g2OxR<7Bsc<EYAH)lml zwLFVj^`et!Y+_`!jiztA)98gSKiJTYZ2qCgFFk+n3kTml`19=xH|{?C1)RI!ydA+Y zoSqXpsWY=`+r$O;taxd|o)b?QGiB4R^DOM0p4ba|>tVu0i4iaDw9^kCH8^R=a0!#Q z1Of|4zy>}DK?=$yd#R%xZ`elVE^F2;YpYV-w}VMe-HtBqp1yt^Hm#)Uh=Gej4Pz&) zNGoa^RbL&t_U*s0l}@VG?7ei|68`@R&+&5a=#5-(b0^;N+<QCb#8c0C=z}-ZA%GDa zzx2(Qe*gJb-}rPTKmYiq5B;IPf6>XytgzxrtFEx-2Gh0~-QVGBkDDXY6jNk2J2}lu z5&<z1q@7VfjL?h(i4ZgYI;UB$p7g7ru*FteX|q~aHA{<>?9)Y8!r?pCu#fwAL;zSO zHFV5uWiTBqRTy$5J243%8Q}-=)uX*+?J#J67KXp^=0ayZoQo0w3r6tjbb(mc$caau znS`rql36@aOPhXm4aSx&A8N9xrfZ}YH0W;kd)io&VNrQ!KnHy&poFHB7cbLDrRues z1l#3x45^(MXis!TGtwdyB@usk{@m91sT;Q+4W3VSrcYj9+}!>!aOYALg%+LK)va+w zEofgE<uoc!Ro#`Zf)y=Jnh147Ns+5GmLpAMh`n*??|;Vo*Ms-OXdXN_<>TOU3ky@T z>!bgLP{ODeYg5n*b!98bsD6UVrCWD5Ycx<dG1oL)_kE}|xo?X9<)Z!FTDC0ipq;V} zX<ldZa}=xezD1xBPQ?Z1``^iMl!N!tti^Aam+#l;@fdRB9q)E|LA$;$goZs_&eZR7 z&Gwi^JTB2yfC?RaW>|AFbwTr9Xm)!@&2d{@fy&yn*)IF(!I@LXX=pD;bmMzP!YXG) z`Kc&h`=t}Y^ur>ls8dfGTIu-juE-{*G*p$VSJE7=X4Y}WNy*zH<fZK|Oh%0jD%66m zGRg&p)%pewK8Eeny~s1q^@=Zw{?yjBsRCE<$wF3)z{;O(inPiB7?96kL#2B*)Q)nL zO1I&K{nTuh6DVSe$|%FFp{n7@&lH9b4u8SaFAi7d?Ng&&$Xy+OhTJR#RgAA3GANsr z_bpt4`-1K4LRPzhbyo~kPn@b>Kjy8acsBdF%bAL+RmS|tt_H%;>HF~k<0EGo>r;@S z`?1vT{gW@q>BXi_Po+I0zvlm)*Eh%0Gv)-6w?|ZjJC(Z!8>pZ2UO`!3(B%RAt8cgA zZ0_pl4yw?&Kbw8pP@Me(W$*RvpsE&}T^{qfYe*Z$q)VR>2v&0xf<96ZYyncabH?P3 zc^X+&C(5(XtQM@PV9?J%)!)T@FqG5Qq83q`CWWOC8iti0INqbiJ?_K=U^+Q~f*cuT zc`WM&+9+$#0Z_oe)e^%@yQ+qT04id)fIEcvpgl_{g$r}>jC-?_4x+G>U))`cC0KI| z-ppeec0#nn$)&e`6c7vX8MFc+5#Cvz6BEUCp2^|2!|#Vb4u2m0I{Xdn>i>m)=Em=r zc8!G02z(MeXXxg2v^juNDZFLc9%meFRSIv<4Wx*O64!1bN_=XVLrbGQjNJmJMNDf> z`r0Ayb`fAv12xJNOi2r~THuO(+(G-K@ogE~82Uk^m<zNOp)F<uC8Iz%jvSLJUq^!d zv;l20H*Dw>p)Vh?e$^ZX!@#zNU;eDk7eLr72OwAi>H$^><04iRI_!-TA!ucWHXFJ| zz^*dk1!(Rus9RucdXyW;+yb~a$}m|9ms^9`L8A(|@B(Mt^;`%Kat(1Oqd3l=c+0W( zf-V^^;puZUtxz#wNhG2P5oQq{=%|3m1)!KEieM&zUG%8H7g?2Y&B{)sk*xf2#z*}l zgURByF@erhM*(Vb1vbM-oh7Y=gF=hhW1Tl1(d<mSwJ{Bz0LrqKE}yp*%`u)XrwbTu z);J_KOQE-{!w;=R$^q0GA!c>~S{>k7!?%@jDiQ*+8fSI(3VPwd*^TEel<1ffy&Xr# z;QBC73;fjv9Qu|Ouoi;d*sFJ=b@(#RFMgt1@4Suv@X5#gZOHzRvO;6bA+*cY>;y~& zXwFf7w&l;WOWDvVgkZmYnVy2}@H6zz4H*2s)WEjqbe|7?dJiu-AbW+L1kE~ASzgWf z21{Sj-x{}Zxjo`7NIc7;0eH8hdAN(bxvGe5rZ6;~RtjBuirnu7*gwNQBaef&Ed|~- zV0{1nBuq=2+}GdhA(?7!s7&dD_!lksKhLxAWz0ExM?bd#X~<lkn)(r&@wo28LHhyR zB(Qg}gEFUSlN!Q);&Vg}rrf2F|G;LIXUkz<&?X;qi-Y+Cy&e#>f;+y@%$CqFXJ|sh zg=`(Fm{Ci_j?D+nRxA5-wqYM)9B*E=ZNuL3DB^>!&X&$$9@()95!TjE_*&@<M|hrU zAU;vyJC*-bKdexE=3<DB$>h=6dVj9mW$O%ExreedTkMnVf98tMfl{*5=m>5lkKiKO z5C=y&KPWN?X=rPY#<CNM*~})k#|YG$mfX&sB*N3nxcdq5k;3y!(W=CCyhN~*0{W6q z<P5qp-fgaru{Ti!F1MS5vr(1`A{?gd1)TM6(5lcx$8cqJUzEf4LvMk5VJh_w%<qRA z&(y<ju&3#mT=WZA7}NF$*Ii*&Zt&Q3W!h{@VJ!?bi%Gcz>VZdeOqkkY=MHgL>?#Uv z#k!Xn+T+4*_sKO!8KiSWGI1`L^|%0Y*WiymD{Y{8^28ltLXgQ%n{%F%gSUhCgO7vH zgRg_{gMSbG@bQuWCSYD>bkX`s4SgKT!%viRLSt&=&bt!l<KYGDymzhqwqe?}^wu-0 zhfS=U4ZOsOsSW-P0yLNwnOX3{I@3RU4;X!Ff~UuQwH;!1Wv`tac;#qOW38q<7&?Yi zmZ#a|4t>a810M7;lyQn%Z@PaZ?8&O7)~4d5bu1gOC$_l5rJY?Q8Gjr0c@x3?8D-NU zhB145<3H^7IRjg}WA@=9VLys)1<vrz=uilDI7(?4;dW&4LFns6U>DV{LMc~c39YpM zLsq@2zk)r>@KTh&GQ<fj{Z435KeF*fehvM#A8cTE78des0~`9tSC9Pr$3aQ^e@kY4 z*9YF-;rZYXzt>Nms$u&Ft-u&7jIiSsI+)h`Ya4Iq2QPqK59zj)ppML&2kR)VI?dc| zdG#+@AU-_3b;FSW_fR2208W$mfa|BTsP9g7lSSG!WrzIwa`1E<HYE{o3Z0uGgcM+k zJ-Mqm*%J{M;I`^U>JA>D<RC2J(!{q<QuDHRe{;YDheq}k<j{ct2EaJjK!sjIlSm>% zMqouL@RmrY@)q(LjIw|W?lsW@Q|3cS2%-|Ek)n0g@&ip(i;gewZlU{&0gW8w-S0AV zDak2&Ryl{RBEM=*yUN_TY#bpb{>glRFWY{G1sLGs3qW(s1a{LZQX0C1MSly2bQW3D zLnT03?D%$tHwAqXfhu$)krNQ%hB3*GnscmEIi-#krXfr0*vyNv=-+FPf_p_O5@W-C zQ$!p7v$@E80mm2rxPRA6qrlSrwruT?yXzjie*$YAWCNrl^D?u6k>)=M6*@!hwwi#D z5<+}Z5Z)Opm=rT15vU$`e;Fl_)kyZ?`k0rCBC3_TSUB>`CC>h<&4Qi|378T!9P*r( z#O<JnP;wU2Mm7F4*JFTlCzm0}&~`UsVHay}2?=@TspxRTYWP%~CE|$?I&u-11S&Qt zR%m@d)KBhWZa2a5u}0sng`mI;7;XJ@cshdkq?D}%o}YOg{xOD8;9?d2j=>ddUv%$U zyIsT@;8Sc;Hg9N2$2`S#H7Bg?8t!btdcBtB;e_qxRfMybCTu*!&;~U{V?E@RpFYj! z%ASi%ri3&#jSy;<w{Y8c!=5ij%)#-W^XnBZN;qlTte(spWv>YqEs5tQMd9G4(eobu zvVja?Wg%qE7ZMWwA`WO{A;R>!!Pn9=eTj||r$&DRWS5ClIuZ}LIOBct;KzfX4}Jk5 zjDG7^LrqU-&n_+qj&^Q^Vg?uuU5T}q;wk2~7??Iw4PqT9-g6n--(M22%P%qO^7i6> zQ29*stJu=yQiwo5K)!--&xb=`wc@2{>fT&0PHzaucm(>wxv%03Kv*a;9UTC3N<`MW zM&;A(T8$={K%YcjrMP<}?1)190T?wso-PUmL|9<%cz!)!w8wCblrk#Up0pw9xU^=< zcF}S=ZHd8FThf~$@nJ2q0682XjKJtgIVByFBvsHTjF@cCSVg!#f-tI-^anbSq9fIc z$wiZO6*W?F-d#p~qHfk31(<b}wk>82yZf#c<tXZBitx|uXqc?)&Z{_Ps^$y<B)pNN zy9@Fx;$fIJjo?dqOV@?k$)@J}w>BMp6gF&FNJagzA*no+wduICTsgwdevcR9`wriy zBE04U#%q&DfgV7xev(`V;%V1f4Fz8`!6x4^%hEh9f&4x5O%EQgY8xO^UldPHd;V5# zw0fyTq3vySOLJJpaDvQe^NK~t(~J>dYijs=*hVg;gG2a*bX{D>w<1}>*KsMPTtJxd z<ZDxJgH=MBpGR(yvLl&iOWRZq;gu{iKB>Y)8{v&S*<VfzBwwWMQT8omb~Jj})!N$= z>sPj+z*b9lG}ivB4aQjUysAqXwH*f6PBCEYun{qb2(PW-lnjsdlw;-v;h6&KM-JFd zm9*K#z!9J;&erVatPSw3<0$4ep6NXB=-<5SOo2R-hcR7}dpM&oT&>%haAH^KDnGOV z5s)8}8AjDGmw@+%>wp6!bOu)kZYVEYznRL1A$C)AlvEq9K)Uco_prN0HzrD0?~Abt ziLu9((G$oB#T@aXJc>S9CqPo`7W6e>6V7$R1%t863==oJWYN3ff|~gPk$%m0HoBsS zQ1BIV!osG~7xjwK)0*N_;`oXTOZYn1{uyOyDNKR|k)z3;Z}}(Gwu;(O5g;F5g;!)6 zuJ%Kbu9z~qkJ=`lfzE<-Gs#YMW^iA4H)}+B@$9_F^?#aIML%^{8M8kkWP`68zFaoY z6t7EVU;x(*-HtI%;xe6CKo9dv;eeu#{sj@V((rt66VrIkTj@G-oqKQerf31TU&2rD z+<h+Op<vG;EGog^-2D!0d<^Ai7`97@poWEj3)%#^mZG7Uk1ZxkdQ{M}h9MGMuL+^E zZ_=2(m^z_-iVZwFbPzXaxIXW`t<12H2Ma)H-DgKlm8&ecxOY4zQrGEAhMA~I(Lkjk zg>m0-4i<CJ>KPIYUKetwM#@>q2`?*zL>pj78~d3CmpmWQL+|bLY2g~}CK`b@d-@K_ zf;`L}T+(^<+yKF5JwtiC<^6zwi25@_-IG|4ykj7c07fTOcEo4-dEig=49jxmP*ZnI z4c&ol3w}8a?ZM!LCTnYE*_p@3c&a~lvbT23?lptuI)GpWm~3WkPp-O_8FQY(O+Y?4 z4)me#lDouIJW?GWa-zx&*>K1d+bhZwi`MrgZB1{S4)!I|K}Z{PMTGLWCY<!N{mY7{ zQsMg&_-0i{e_^xhSqki_)k%5sRVzM8nTO?9S6yM|=QNs>Y+43Cq|C9?mG_a%%Y$WR zI_gX=pz5RmJ>$txnG&11%A&*{Qw;?f2zKR!p;~*2{?ndnmYekla)n+FTuO=UWTsfp zCX;Vmj^(3;a2p2WWfAKYmJbYjKuE6H1av=uZ>SUStPSuQ56g9UEAZl6*CLL4ID^X+ zp2tTI;a(d)3?=(=_?+)sCIRL-wBe)nS6oo~#{L2ryvHS5A<x-*<rR$*UrR#)FVJdr zQOF*2X;`kvR)A6X<S_)0;dxN?Wp7n?jwUp{NW0n&mequZ(zG@E-+~w8iRpRsk{OkN z8zKeehZt>pfCYJ%*|m#p12YeSTGPmQ4=nKx@R{*nfWm{4f(NxZBK$E$bbP;ZXt1YW zl#501;9am8IEE>|FRVNFxV~4rBgEhZ&o65YoJ#n3)z6K&#S6U4+Oo(Pq30dtGt@I+ zr`<P1st9ir<V!#qOo#Z0A5i#mk<Z5?2a74Wbc@Nsc>K!d^P3RKu6Z8*%?0Q7yc|!L z!=7zghd!Jz9&2wl(%kBZ*xfO{uFTTr7yhE<l0rctYK(@dGtBGs=8PBY;p(gMSR>je zbO;n(*@2#+8F5b&8H7Hon=@;LFuT+bDGKIxGAZALC2t!cx%=P6dcoWG))l%2(~MKu z6-%|(SBwMHd^5V4mt*9+YOO(ntLE<31%eIXF1wc$+#zw@sbJS}fOBRao!;eiq&~Fw zdN@-mhE{-l@lB|0O2L#~w#|lDz|>Rw5%xCihYw1-;O)y;N-vo^EZ1jG<^9eq8zO4| za8g{A=ZofY|7nP#U}tOf=C^a$+*bZC2_qsFbe99eqII$4Kn+tUpLdyEnbKLexq@sA z(4G!(JuDV&vyR%B-sbsW?R^ANW2w94Z6TK`?3sDyRp;mzXlmMH=ruS5%*4j*deXPo z_**-CnyBMskE-wWLhyXK5?FltN!!t>VIhZoHEpV8768HrmI7u}1OqBAMs|FA-lqy# zJtNTX6F&)`%SXHYmvAe!Y09T73uCbY>5;8Hv#hkpirRR4TBJywN!qzuMoE#`-bTmF z87KhzSm`<FwqhQgbjA(`7Ke+8i&W3KN}Z64J4>iL)RoD-8>H{Wny`g;QDIEadX6GQ zpEG%?dvI3Q6aB^(K{)0P7GsbV1t`Ld<loN8Gru#J90k<lkx=P;-m7Zpy1@UA^Hx(+ zgO_cmvt<#KAE_oR6^;=qYQ|HMe{lA*D~H@py?iWlqFa6`0ADD;s|_J=fy?*#i8Cci z3iV@qMZc5D(aUvphnl^WePIYZzc%vr37e|zCzng&TTPD2PQSP;04`#{iwuMf*%#da zp9Hw(A_{zBSuH;CE-#@VlMZ*AbJJ5l%oTu)$U9BF{%ekt&*X&}QfJIxgYjZU$8<qZ z!}?P4Hd${GGwxvD@jr=7<01)qyk+@sOTVmz6@EztZ_e`><*eyF_+bHFNJ4KfG#{bE zk^XVXgGYaBjZXW8-<nvs5A+#rkcOMgrD?QKlWA&uL0xs`7FT1A8Jc?*AbTE2tEs^f zEoNJ+zQdqFokdxCa^e=lc!y}mkjv8XZ^=OF84$3xQ=n$mb%Sv_I|W{y3K4d^uOaJg z=sZ+~+xrr_0`*8ksRw!!^+Y|Lftln$=U{`nk2larY592kt#ty6kj9AMa!C*>irOdp zw?s>?YyXUKbTKICDT9gBE*R^3&SbfdnXf&@^|R7ZWG6|H9ryc-nFvv2E~-6tR{lH7 zVLujIJC|fj+%^V!!z1lxfAZ}b;KR~um7k!ZugIlwK~|a#3t1|$*Z+lFm5UJAHYn=V zM={NE#Ub2(dnNe4ZCq+s#`Xi`jg7c&%LBCcF{N06t1d;ElB@BY`%#l+y=zgwa#e`< z&eYu6SGQ|lLr7A0H6?dYt5O>$r4t>4W^~cr(c=?bqdtSl&JCah7z@(e1H-Jo&rR%| zv0(=$!7Z5LYBHlp>4|xKM;3~WTN0)9$qL6^uDLF(Iaq1wjSUdvA=ZxVq@?%XVt$5_ z`rGZ;D@WVbom8rH1`(0lYnR$SxvH1rrmm<FcP`Fdc<Aj*&lWGLy1kV(_0&hLJm2yz z`~>)F?$95GB3OGb0~k109*CgWMG!@CpM$k{Y3pi(R7IhQZG^d->u*q*Ya0<f9GZ<p zZB>-=6wStL=St(6j8kbMUa;H*THRgkG45WHa2d%^TC%#1M49O<l}NMtG&RAx+el|3 z+h~Tm<SsLddYL6Ep<f4F%ga&Tv)sT#Ac-yIOX%8<1u;j2_i-^V<>;tPTD`fxTq{>! z1)ZL*ueWKYik6!mt39mdF0BT{we(s_9yhb^?^~)H6nfmKD6*a=5=||=ZWa(>ud4wK zIi0k!OX#poss479h+cJQbhlHhjV=^}y1F5p6&pIP?pwN5a-08FaSxZ_&U;x{G~FjD zShvM~J|e-dvjOv742Je}h@C@=!wjPJ_hf{DrG^eh<s@3{@ff4Hw#QioG&!NjO?GRO z2oy#4_|)pm{n^bqrW-?vwath1X(6coMN>I#Eur`|yewVr3XW}mKbGxm&8U<0fF5r| zcW+Zqd(XGH#T~objXQEr!Ed-^_j=EvTl>mNyLZ=DOF!Rn7FhjZh^_vAPe-1<9v%x- zeu7}x?5U&Heta0x+jD}#9$&EW>HVdOq8{C&lh@gO4&HrwP}b!`N(GNdMCfo8r>?oj z*5c}X0%7ZBFP~EJspeU+jlO<uC{J%+zmZYb)wi9UzY<s4kMCVte#65|dmrCgbn;HU zp7$)m`}9FTX}cfUd-F+NR^NY{*GFH&j+OYfq3^yo_Qa2T^~L@PcIaQDx(5Fn-+ljA zbla7;f$Mymdg-Uhrr!N!6?S(&9KXH1(ye_4bxX*-2K{dU^oJ(8I)KkAclS5|4(RF$ z0FqS|kjXI1)=mR3qm_LFz>60H^``-(ONR#<HE*69dmTVm^<RK$W-)-;uB$&_UEa3< zc18C9G<wrJ1>ndMTLT^=tz8hvOzQ&?%-vFd0IuSco9{iykzIgRuWry$i|hwnu5E*X zEMR{l+Z1bggt^rhxM?MJ7cAy=gOx);$6(_v2wDcddiN^=(&%Pn(jK@dy#;q;Pr*Yg zZ?BLai&x;>B^vA+K~3qshCt!|f{+CveDx4!+BXo{g{Xj(-a;(1J&3c*>NO-{+lHib z>yY9u1JcBdphN8;WHTTKqP$-*DH{~7+MyuUT`1D;5tK@y%r3Y&s0gdxAHZKRMW#yX z0GkGBKx?2W*(xmzn|f&jtZJvjNKt^^KGS7msi;YMQtUgYFZjaezz=md83}@HtG#1v zPyrKF(M>bu*0X!eIJ$Rb+~__F@g`Y<Sl7=A!d7ipnl#1rkPTj9zbp#sBfAo_U0IAI zEvg9)bQ-Mn!&1q^Rb;3$xm;sz>O15nS|N8NMX{~$pk~u1&+_i`;#1xqtAcvYC!$Y$ zB^%~PC%z;8)SS96fJ;ad0>x_=L}*N~ypkRX;S=4IP>#H$FzW81aQl`-s5B!|X}d(T zcOTO8ZAq-4+&vYi)O`YLUjkQ~5(Qe6L|3O|$!<z9t5YgQe!uJ|k}6t}B17S7dnE%# zij~=}^mrKWi7YgO{&PUM0XaOPnvu&uu^M?n()+G2saFczx~EXLd_~xr6ua#cC2dNT znpY;j9m?laD7C86cz<9Gs>LMh>ZKZ9Zra;a>#4R~bs#b<s!~s6qH-@Z>}bSp2wSse zen!HycV)nGSGC5nb2g-1y#pPgW_zwvR(AJv$tdVtH%MvM?o(;cO{m5`yT#5%Rgc{^ zGuaz=s3?fk+Z#Px998v9uc<qI(r4AQe%3M#h&E#oqi(-?5)M3N>}mgcT2ylTCRhaa z)3XgdFcr9OO&6KrYTm4p^jge82vFs%u@C04RK@klf|U%n+qX!OrMpL#<U6)3%vhqv z9#~OSu=7^Qg=;AFx~&sM>gdD<OuX(s*rem6*>Ts-YG~fyUK_UquG=n{5|7^6(`d@R zZ_nL@kvFtg-feKiE2E#@cka0pQ?>0lwP@KHt<+YXJGJCOybPBxT6(+kDMf#OwXC%H z&vn0j4gz5W;=lOs{+IuY@mFiD<Lh5u@j8ERdlzf7tpe<{$9|l{jympy2&eJR7Wb6> zw>W(;$v6r$Z#;FR=aW4TGR3`A^=MViQM$j)TAhKt_nZH|c-I?Gi(aNxMp5*U%{4!R zciy;y=5;ae<Ff6{p3$x^E=;TR1YKVN-Cm%a!tOQv_bsczOiTbEN*BPI)>d>L2M~=O z9Q6#JeKB?Be&mr?KLgkM{G%YqdY8}9eg>$D_6M;|eIGJ}Dqk<vHo3NzwA5XLT5q%h z=QRf~jcE+ft1r8rJom_4eH9Sv%!4e`?OK+53&AR?7o=3Xop?!NxU(210zX6?ClJ;# z6!<2ym{Zq*04W6+L8A!3aNv>d5Xx<>kQjIG#hBv9skW7-0s$d{hI`(^j&s^UVoXEM zb{NtPs8Z#|kHn($B|J-AN2N^~a_0JM8|W_QodvI9yuub>`)LQ5-+X2y6RmJ<u;}ZM zb^%<M>?fIwu;(xJ3)MUV)!u$!rY@nc(ap%O`m<%jL%(&{d2!<9zqJUA`5@~4IkMaC zUtVE7>IqQs^sFd@QHk{K=n{goLSJ{-CUCI6tXT$OBB4SOy9#4lhb~uhy!Y&g<YDCv zIUNG?GC^taACOH~j;?@lvNb?iP+(c1B=X?=#SdV<cn*Nbd$Z;k<jd2uI2I#BMmM*F zmbojsqnM~01d4;1w`0J2xyyG9nfAKQvWS!a_h})4m-N&r6_apJOA-{XuPEc3RuwPd zI7&9%o0Ggyy)INVGS_PLO38bZOxFt%ucA_OLtkBs@CwD~Og1J(a-~2;&nQ<@kqgVS zgvZw(#LcRE{$H=|QX0>~-?@2f9#4HmDcA65@WbV0+nbfm{+BWBe_FQ9&2@Fv=7P@} z%Z2CIt}Xv}WqJKdoOMga8gFsgO5c)X#oGhVYoAU7XFX*P8U6-u=Z^yZXJbt4o~&=H zhV85>{HiklC${s=wKq3H6$re+x+NPg3kuS}z*SCXsvCEn4rV@uFK9--a9KYM$-j5< zPv4KP0}=i+dQ+8M5X&kP42O5Fe&ekw$Z53d?Kxl>P9#}wb}5b+#sr8E0E!k3D1F5O zqJm}xQKW>!II;HlrOXW&95hz?C^qx^iF@3#O!tz8)TBARkn8WMcMWE_iQ%lbCv3<2 zvn<O+S!OP}SoT)5#~AA_I_>a)B|OSBJ}4N72qc=6R9@W2=SJ=&Fw%GZ!RWWe_Szk$ zTq6oxm_kQn^l*#F8>oTDs0W2b+yjy^czC!2kw`#7^4eBEXm@lnLnDfurVi@Jtl_b% zb@tG}Q6#OH;r%fGH%#=U=z9%@jdJdDi`aw%;7P(cpEC)!*`R-fWqKsC=jOXh)zj{H zS5(}1mW;m+!_nTl2cpiic?mI%Q+!_RL2P>CTzumXG|2@E?mArdH^6&e<}AxBkKv;V z9)$)32gn|d5f;HJDppWK!hrmgt_yM;NPhxusj_~`=6tYipgAE;v3+LjfEL2P@tvW$ zQA2kIu25^UW_u7II!o-_1Tw{u2oeYs0^_3S(P}vey9`Ei5w-WoibER_?&xs*z{&Ew z%q@a6J%j0mfEY8lZ6W(Gju;Z@4D)CJ1Ka)mz7epR3X7BZSUzc4y3Rj}Wc54-5CyX9 zH|FDw*5zNGHlQSmD;g3?ye-c;<%j3uV=)Qy&(m@E72Pc_s+!Qnn`Uz!XCymiD?A%N zy||6xz;($9!<$7f{5g!`@M6=jytN01$P6va?~nKpy156@iEguH(|vF-ot&Ir*|1=3 zlAT|w1dbCl#!5k!c+89@*&q^84zwT%sr9f<6CJ2C#7!J2P#URYP@IAQPa(z05`en+ zhdx@t+hESL9#~*i7mD09B0?^63X2GVoXGboxr*pyPbMidz_~$spTuT!!B^k9^pAgh z>+L_5Bf60w>38u6Zo6&Y@BTEXq<6;{G%=M)?2@B*@u?FdI6cPnbyHJ9S^C&r6K9Sd ziVOEks79d~R`rkrNuNm`nD7ijwu>0yV{C#@k|i~v0Ig&ef~GIw3q7MFqwn!4!wR@6 zwSf8v#)PX=9m`{=P*E#EZ*yL`_V6{m?`4$RKg2`#-n?X3j$Q%Jn%3)Jv^GKefXY4Y z+uy*r_oT0%!P0kw-Tb9FrwE&#=|b9=W@c#R@SUs1Sk`#TU*V1lUO9a2H5HHoDPsEY zE9I%Ar_5mGR&nXN?_Pbue*<AGt9P*^jAMj2^4(W2-CI5+?pU{Xbvehe3`(rv@;@FI z<663+aA{%F)D~$1zd$ry0hI!!;gs|t_>g;^brz+nSD9%5RHD-YSd`V+nL6%7U{9b| zRJ%392fWJy5PI8!=R+>lS<H~RR1l2()QJP^f&Iv{_Lv38z-dBVg%i=<N5C1Wz?+1O zjW2sttc$StC~iH(@N+u*2&{9IH^8dY6w1ZIrxB^26@=G8g0bZ2#1?_B<j{5)rKs<g z>$UDj-j|E+xWhT+nGdZFS#P48wiX+C6iCcP1!mpKa+S07D+R+O?r1C08H{mu!bLbB z*+x|6spNQS8E^P`*cso@7$pHEs1x1!DVedU2!TkVCWxXTElG=(P~W^I=1bE;y~X&= zi5|VarS;Wt>C%rY))kMp1UfhbPRG+H*F3u?<ay){sDS(P?70x<{ruj?LX~#z<#sAa z5sM)sb9S*Eu@grJ%%po%Y=<@AX-z37a%gu*Tk_uZ&Gm9Qu{-6G@=#%J`Sbf8=jDll z3R<;RbP}0lYBN}Iq99pnejK#elP4Fr_r20Sdrd#Zs_$>J`WZc*@2~V~V%w-4E!SLX zi9XOABN)o?(1O&FvyJp$_};0_Txtsrq%EMXKC+-^vR<0aQz%AOtr{+rbMVeP$NC9{ zc*ur#uR1t(sYWWeZPxH&-@kXq-tCn?5WO}38d|m0S)_K6^?VZ3v%k$&tjU+Q{)fDQ z`$5l8(7vAmwvF+xuG;5h>SPn6*)=&xtn@CVVG|a0@I<2W7{|IcrbD#O4cp%J!A>r> z$lio%-ME=feJ9~PpNy3HJoho0vH{T4B{)g!8WZhA`WU^6Mky0jqbx=<$>^9ylAdAD zh}sz^`s%P;Bd4C#=so1(@RmfKnuSIOrt?Ig0lv~QDU48V5=ebvgi56&DIso3VD~pd zbaes=_=X%l0!6C-3i{6P8AiLsaBQ=XRpRlSoS3w6pFrjsQqo<V+gf2G)ZL|f2I;7} zJ|RInxbcTcq5Cm(sOBHk@1wVWGzx8Xrew-gQt$5WG5qAVFXZ3mx?aGD<UnCfTw-up zWvN=KQu`d;UyX2&De&JH{OOuN8eG)dafJdHF_AI5r{~AV=jV$z3<kU1fdA(T>sTCK zsYm75h<iR>D41jgq+!U(#tB<6$Bn(UVW#wYV5jI)tz8hojs0H-6h)>qhf$3+Ff)ab zY8G%cH!LGfV=O^_rjX0#+XenG7S=aSn(XPoQ7cN8(&#`Zanm=+Zn3Z(@U0jfG;5mf z0Vix(2dh=BYh*QR<9Azy>2!D+W`dD=mMW*5bfM5WK#WF1E3T7+o0}Ks+3eUxapEN$ zoc%u+ppL&Pg$5ZbSI>P=mhM=)eI2#_-yZ-<3e%aCoWrrp#oSRMt4z;`PB=ZHfbwA6 zFx_zN5Y5jQFFt4!p_(2SQ7)fWa(H}v(Ao)6YFNQzSa<^&v&up4DdG=CU>3*46aWA- z0&Pbbii~p6RuvG>ezyV%6_{%N^rA<vD}#p869pA?sX!e%FA136La3*CiaL+zSFyCm z47wd$;k$GIg^&WbbzOLXQ7G43D~$?He0<jD0&P!-pWnE(ipw<BWtJ!bCC|sY?w+zH z5Qctu3{djDDayi56c<&?EYasG_L7IlXkE-L!4^wh(uu3nUS!sZUTvqyKro)koIxvZ z-`H^xbl$e}p0V7ly<3gVFJSV{HhgDj{6M^c{+w94e}S0Kh(;tL#rV+RXm+FO?DzTE zb<MYhJw9!fLOz~=0mHP6Qz5`wL{V6nxIn3w2tIpq&w%7Ch({1+P=74UvZO}F0K`-v zab&jVF%EL*_De%n@?}6t=fS9$CeqDsH;}cP*@6fI0R+OHFyz}tfcycX$Hyx)HDW!w zg&{FdG51PY{5b>8ZB@_@V=oA4lYlCSK()0>NF|(|7PF5f{=@l>dXbMpKZV#gp+qL& zIQGnRdFj7W0wQxtowY)G7~}ga$~3OZ+AW~%lP=f0k!8*HoX`$?a+sTyM}rC{M}t{z znt&a894NRxWwBl&0<@Lt;d+&wXg+!Kj0d414V(B+V*Iw&yshky(U)mLsl6DO?_brG z*O8yEbEhqG0#zlYmh+*};9Ao$CpNC^)*<BkS6ub_+P>O)YnS%{<aDY%e;T1DdZ~(_ z1_V(Mg6e)JL?Ui)vOq#|b^D=EU(BEeXm)%-(wwKe2XL0gS6OD+WkMXy$)yJ0pzF%G zI)|!AsxchIXpaV6O+(y)*1GgK1cpQr&y3^+(N=;a^9bXDu{fv}8sZPDzXdJzs^=%y zMgyKEuU}eMS3L2l=Y8`JqA*YMz9)fGTBhk-f5UIarvLRT;}t2r{vR{DY@G=W1I!UR zJ_8KmJ({K-laaY<PjnHfwRS=pU?ixM6_cF^scK}x9*;EI_+kIn)}TMb0RCjj%jqA? zc!9JNMFShsJ+qkK6;QAdd4*FY$KteW<z-3L92i)(`;DpGhdIP*PUWL8D<`SMF_u5C z%+Zt_h}?353A537{(E>1zidv?|H{`x)c|*9gZf`hRF{gfYi_e#Qnq=2G#H#=5tRJ^ zxJ&w*aD56JBi&^8Hq=|4x{IO|%R4XU6g-*)EFGoOgUPf>Ny{X5(0NaoxHIz!{`X@j ziZvf6ta=t_{1iw|;`@52_Y->I4u3esGiU0x3s3JhAZrekW196PlV+E|YOOY7noDs) zKll|bEjQPdMEyE=^X<)TY{ThG;qaGh7!WS({W)I^<nit*=U?m?0Zyba-qhZHWIA)V zw(>ALTiY@637*2@yzau**}N{JZ!EiMNF-!Hga{z;OBO{4Z+SybK`O>6e@{RuNPli^ zHC)-JmJCr7-;88raxBZuEn>T`LM7J<h@efHqKX2?;iA%fMu7!|V+D?sHkAzn+7XR} zu#2mXD6)cF@|yECp$Z%F^0BD|<?je6CF#%GEV?DTRBcVIR>w<n`l$qZ6K+b5MIu~@ zQBaoU7w~Bgp4G4K-yQSAE(*BJH10EPRBtW;$CPi%3lE;?xO(+r$EVhNR<lV!V3xH< zff}KUu4`7S$778~$4gn9X7~748DMm*<?Ha?b=NQZH*{Xb9Pkk_bkySk9RZekbQ(|6 z29xkmomPmZc@@z$3R8#^<4I6p$)=znwwHotjiK2Bq5*T{)cwbDH^|{MQkL3xQORw+ z_o)GSbKB?7zMB9Gu6%R7NOST8p}A7QPO4uZJ-}qAa_^26ML5g4lv{z4>*$m?DPA0S zUG<TY_=8jML}v{Hi-L-KN+2i-j8sMOd$5p?q1p@becDOzdhw}KW=(@oP;iA7PTRnX z#2G7{PYVRlEwm&}><H9kx63mX*9ov&(rL3hWX+X$n1qA2R&<L16%&mxpy0$PE{T&V z3>964X#v5N?A>{Xd0YUfw>Uq(kdC3DF$fqdN@}Rd3rc@+O;^qxjB+TQ&L$7Yh09<L z;DXT8FLFcA?`>Y3h&arYV7{JOcw!Wrk4>c7^V>D!oy}XO#)b_FJ{rNIF|xS_#b**f z_gime^ilTmfN}<BblStg&7coPxyCS3$R0+IdnUAzKoG+^XL(Glcjh*uP||q+904h+ zoNwO@$i6K-KFWnQD+GSW--ccLsQ~;CpTD_lz+o&i+}9pVuF7-j<KO%SfPnidx-Se3 zQ<)6C_!%%$Woa}r!T3<>mt-uFQCd9wL8rY@=D@m5Ax+z7#i930PBcPl1`)&~mgALN z#a`rUfRqXqHEIDR(sHvu(ovTwCYBB`Z2}h;1)l~x?J-0(g=ZuOGAa;E33rP^i12L_ zN(TU+8U=)qi~AO3F8~)vs@ddZ(=7=e<rDy2K@^+*ViOWAw3LN}vq3;mI5A<iHvwZN zUX>WtMk3k{a1-EC*fOIdB&1HeFBUYjq>Zptg+I>A3AcLJvz}%FRuiQPEu=BXAE1Xy zJ9@g~pXwNp?$-%mc*Y!f5)#>iewce<n1;x$jdxkO<<%?W3FH0EnmL%w8Wa`f(o&AN zgXK3Sjh())QDY5{;ZXKcXada&25nji&-f|64A{w?W6nfsR=?}j_PIzN2hBDs6%aBn zGRj4sB*%j?tIRSG2bc#<AA(k(^D4$OpF=q8wsiBM%8x)QrJ@7P*lDIN=o%`n)bn^u zW5MQyf#+i~-{|Iv@VKceG)bmSh`7NUZDbwR`b)9s5j>HC<iGHiM{pT0rEX_eIW8$1 z!=kP$@y7VhSwCxtk`YN#Sk}+z9G~rs6*P*~f=O1MboZ^|lF|7PNJ&NFN~xrXDLW<y z9Cm1k*0o{y#**G>a>05?*=HPmT0XLf3NP|s_?AU<nJyI`cFi16t#*zZg?QO$By=Pc z6<2DHp2NPbq}Sy<MirS>myG7nGs$&B6QwssNNN4LX5)#3Xi-f+p5~gk#52iA-vm}b z5RWa~kiZh-8!jvEL0F(E;Ivj&&I+#_sSE<RHY~pOmKHy`8IfCKQZ-~am|O}T3W-ot zpkg$ThJB6^oiCh1duK`B%HV5N7dT~tE0+=mV0OWa<BDmIJiYL>o8)Vg9MJ-33u?Ux z(kY=_H3IOd(fI|bX;Nz?OY)e|+=Ni`B9P*j6AdTt<T?D10*$S}k47i?P!fMzg0K(_ znQlf2ri>9rfa?g1qgV+WV?|=>Xkw@(o_GNe)rE#Otb6>qMA^^NEYH$3_r5C23JIiN zP;Oq=Zu8Eqc#mlwmNU*YB2ZBprHy_KB&KUW7G_Z&AtFYNU{|gAp27B7KV}8d2LwT0 zEC+UdVqW#~rsp!k(3~aN)-kjCXlOhiE8%9vMW#ZWG7}_e68)!_7==U7X^4diydT;@ zkag*@EzA%D9Xh5;bGG%*Z%s;KHdv@^=ZTJ={KC*sOd0Dx&p83}L)OzJ*MPDT){8vo z5LlFc5;?~D`+aZ%->`n!@?{Tf*v(F$%ud-s6ZzPOA3k>OV+%f9aPGO5?kZbdlDGE2 zPqu7d%4j4U%(vaX^#O+S2`>8uFQFQ05;wfrGHPks@DhKPo3LQ;a8GOMaLWldYDx1A zn>TH&R9h`K*y=31cj`83X^(4g`b#T&j;%hG_qQhUp5tI(I7ZtANCw2Saqc@+U_xqY z8{BB&Xk-nH=2ROA9_UACyV)Z^v2<YPBe*8~f;KW)QREVj{p3Sxcw&hb{VYE!Hj?8w zR(a2v#{OBrzEXu)o55h)D+UAMoNEsU?K?EW&TvZ=%qI#ahW3SKdnAKc4zvdt!01W) z12zM~ArH(O1_xd4K>_*}l6-hx!v_&zm5Ot)&+g3@&S78(&64x0yBo$yVs=}vHoDjy zuuu^fLr*e=`GTS-N9CItL!U6WT*Z;3wr?wVkfcs4b}9vv_8D9}ajj>{MWp)1uja!Z z8M`a~W)V2y!*h3hRcpZ5>GUa+K>KpD-S;WJPuH(u=yZO0EIi={PIO$p{IKIQ5e_di zf^X}cN7mT{hhKB~Exf4ynf9D0L=kwC0)GcR48nR3)_e^o4I@;iZP8SeM@87sQWvBN zNZmZvw8I24vSuwx%u|FiDt-4uIO07;ATc?9rrHz+fkH#AH|&V8Hvdj8hkp<gbC8Y4 z<|lg}zVn!Wa!+t}W^HiEdLRm5OAS{Pqm~l!p(G|HWbC3qo)sd?91ic+v08yZuO*Lf ztN=Mc#=ls8-!^#aJaGePsz$BHI9j>$yWHZb1o6lSDC#OjE%@nAykP-y-^v&ape1{Z z3sbv8TFxUSSQUpF2WVLZ-<s@kY6Y|Z(?&426f8?OOp7)0v1B5TKuxSPop@mO#Of%i z`#U9QX|}$2((GVJk!jjn=P}Q!<j4fN^(tj{an_j#czuAIG%KG-=3|AVrE)4*2eVja zT4KE{9|!bb(bI#+J-;v=qrMbIlcthi9y2#vMF&BgTX1{NUm^52B7^s)!vg(v^6{f% z5l-iiuD)@TZ+oxL^hY$)M9yoP#Z>U%z0yZ3*IpUc-x0uESy$^NYR|32umDll9SqsM z!`?cAOHc%&*gFGf<N29H9JOW>O!eGtpP`%I+0#0S8}%D^!07qz4L9Y5;Epgdb8gT3 z{au8O{3uGW1QeCjlGdr+no7D`TAfvIp$yOB+&<<f<E}v49-4PRS*?BX&P-@J4-G8o zL;QtV$3P~C((1_xz`ig6lTpF;kVC$eWwhd#h=Y6S)uE|=<olp#Ro+<TkosG>DCM{> z{SFobuR!8>fYDH|;VL9rhEi#igk>O+*|-h^Y&Cm65r`{v{RoEAP<Fd&L42skLwSck z)gVl(5F{StJV8-C=x7ZLg4;T*MCN~xtn4dR!p>Y=0Gbw~DXT6~%EXzmiO0qOhE!5$ znvCY?kt4u-T~<*z=Cn<`un<scm4THYOHe#b`C&0)u>&K^S*y2?hSXBSW-y5&dqE1* zT&@YN1cVDH1%lOyA!0ZvDMG?z$C4J;Q~s*QSSp<p5;VC5iiq*E$hF4G2qt=`)$$0W z8+H~HMHGT6Ob%d<%GY`0coj*2xu7bA49yK?;q!IwEIf_ZW%{1MAz?&y3Cr`OsHm7t zP>H0g;ut3G=>ZK~(lw|v0!iLRdJ?qL`Dk#%DQA>qvhRP^COc6yG`;j(H?s1`V_40L zIQe+QY{pe&<Hl<AJhKtb@XVYfw9dCeL^_S!fz)sed+I_ZzzxyU)|GzRr@Om|$usdM z#v`gWvg#I^n#hMYFs3NQmIOg#SJ;S<%UMjX;AF9X#X4;n)mPQOqz@IrGMe^$lB~)| zcE~n3dK_)UF%Y;R-kwKHea`EcGRd6O;~%&B8$=9!?lqYH1oQpZc_>x`X$4vGZY}sg z<TWW%X$(`9!b38}s=j8s5FQ9y@T3u~l>^aVHShoxJrIcY)9_FNQBKe{isO-HfOL~U zPoJWbM8h2G0f*C3xQTy4oN?CXe5Wndt$$Adm`t834(a(6h#Zpq1=#HLBo8<8-;lm- zO>0%T489}9#k4#i62ZhW0Io_cef#|n2B^hK*Q1x*ok+(Ggkp+6SKW?u-!VzgvHj`& zkD(gZYTaZweS954GLbvVw)^Eb)|_Q#{aQmeErTRvgD4tj!k`#y;yOv;04>B;yHktp zW@wV;g6X6$xPl`aI%PdKH?HpQm$=9`eyCBlSfY&A<<sa~YU*leFe0Q`eQZv^-bYy_ z?~%Z1A)RM2@p5LV<KM65gYYm?XCmuRHc{7~Ml6bL2U|lnyoRus6!VU}vj^q&j);ky zUf9Oai;AH$?XXd!EE4NzHvR_LXtflU`)j}G8}NJMbogI?hJ5LSLc@68kIP8#@<rz2 zS*rznMK8vk*i!1BHSKQGpG!GShPiOiI4$`;v{m@Liz6Zc7->XG3a}<8d|t{>;!}dC zKMmNIt>Y7Tv2ZuKfi|1+eREa+WP!fiv)&kQoM-fcKU5_1LplU&oOv|tSy)qWf6pq* zmNtjpd^1s(DtCsxD=@uPH?#LdlcbOM=_k*8ui3<p_#>mKz6q(!*Ozw#rHlmvwkcgB zVMk97o22fOIylzZYsvsd*!D8ofMRTjbJjvzVla9V(NiD-6%4Vv*!JY6;Yk3*kW*+u zH}$AydeyK=4bbH+QbUmT2!vRAjUYV;#GvkjU{+d;!m6hCa?~dy(Nf6XwF~b~Gwx1> zmA=X{b!J>P*TZIz<!4F)FH3?Ap#iI_=+!HG`R+y3#90ET3HpiR3@gyALP2EcgRR5$ z?GET|oG~rUU^Yose$9ZeDQ;M18dos+0|WjFgO+xvau9sVYXqp`Q3<(HVWMkH{#qzi zPoP7&ug*?v!m9%BDqfOtLB@?r;?D=sbdw4y4Ac0$unl?qf;7)p11_hv`IB*{N;QCp z{Phwp2(q`d3JCIImsU8;<eA&;EUYGN55Qpl9NIueIgPLvTSeNe#!CdW4I43sT|Rw` zY{aCO0CFlO2qmw)91zigu4Fv$DrBDq0oaiBN(6>cIzC*M15)G)4=^x@FL_JZIusVb zy@|uz-)b4)031JYRVbm*qrp&sv7AWd>XKh>ha(-Ip9gk%!J#Y?M4d-d5w>5xyrz0M zT>r{n$0lGyBeF!EGP&*w>-^PgaLQN0$3ZY>uF@dND#jZuF20>?v;&38QJHo@9^&W$ zQ5Ho!Hr<<n28Jt%l(w=1pKUZJM;{<7HRHIx&&@{&;14xIkN*9GC<+&t>Y7bVcSzM9 znC$SuwheT|kdr3~cE}C<Y>CHMn+h*irUCc)#gt?nGAp5ZWkQ$aA*feEIf;clXhiSB zOd{mLC86Gf^TKE;eU;buXKPqznW`Re_7kXw!{J&+I$QK14?U(=GCW)jqLwIUR73nW z@#rWhsrq#FI!1{>DLJK>Aoi@YAH8k+ZClS-xPKjsNC1q-M0pERa#Hv#733_#D*Y)| z39}%rTp844H7Tai6R^d$q6&bZ%ILd!db%0ngHSFvWrDHZ@u)`rAv{;)FvfeEsbj5k zs-`ZlBg7|!i}Z{{O7co8eK;uxgLlUAH1XaTj*j6xtLrSVwF20$7x9B;oKGAYB4Vk) z8Nwo2oYD(Ju38mQI&ZzDk_|1DWTAKjPn2HBw_}iq;heRccqpUfCYT^k8EM%^Dk4N- z!(8OGJfb2chzFk-fNoI3eki>+#|^?xII6pZ?E<B&nZhKiP}-bUOl}(p%2kexWaYjJ zDCnY|M#-ttPzd3G7=`E3Pb`&)@APd8R!#UAQfsf*I^d|5vWlqbSDFcSR)nfbvZN*y zAP%vg^9Dy_RH!W%>!vXIU8UM!cU+S~_NJOTJE)2ffMrgj(z>4zQMix97(>s+>j&1J zcT^<kB54@|Lp4bOv#p|pf#6%vwI_Kh52lt8x_+UNSRG-8wj^s*(QAt>m{MmQh+*OO z=67hltYES|B*XMFJv2F*Wl3SNZANA>9c{e>zZ(|ByrLues%GIy^lOuabhp&ak~t;N zI*V4Ri6oRMbIQtCpBXXbE3yPPH>{XGQtGbar<y#D)W*CG5u10Sf?qxK$DLHE{rM>} z*_h;4d|=sKlz6o>XYuzYOM@$<s<|`jm9!vg8`YNTsiXrk0w?rGc~U`2IL#sY!ggsK zSXx@Eab)^({BnT1m(jc1j%u3Jnu;W!*ti7m#rNV`-+krpTlu|L9VmNbr?5a^UQKGw zhMy|$?hCMRuCe736%^aj=0_t^@U)w|ne8^VpsgP;M&m$cAAftUf4Se^{SIw;@7%hw zo}_P8TBt}=ABmsgw|(jEPxR5?m6Q3NK;^;y7N1@e4#97KBcDJ=;4uyTf!eU8;u!?G zN!WZHxF_hW7=+PJG!@eXXk!R#@^YCRp2%5tm?%EY;Sf-n)h&BS#|uGTvnaO)pa^G0 zbkODEgKThJ#z<0h;^zN64<K;GVsXu~9BUDY%r3|3)bQ@vvwQ|Gb0icP#a<-0tM2J< zuyWadyZ&by!~{}-Rvh~L)=Et{ftIeEv#HKz7#0%e{KrXQ+etE<<ke%CCRY|f{mn%k zR+t*n#oSu3rtuFTF2(H1aT&76EPufp9sW%0rXLpOHE-&t4A39&uViwZ)2U*l%Nzjw zRQ9Kd5jb>bNCK#-7aI)-OdF~W7>CAyPRDP4f+;BrVSu;$&YsO}J`=UNdXdue2FLX# zkaBWvcClHT&GZK`F%~?42=AI3C?rLG)r>}w5<fyLjxq|z=9Hqikpe$UV2u;AASk-b z-yP@}APU3ysAMdkaPu=VkCV;KgE2%g%&Vv*0ZTb{L0CGW5a>JE1ov6sNni%oj}CKL zB=F}$?N=^8bj&9F8{EUIdgIVRQfqd(X~xVXuuIY#Cyr<mSFYR{8a@Yzp2!61y5I@w zyPe+J>QB#n>LAd&22V7|qRv^A8ZaG25|)E;oW}>AkW=l$2j}pP_4Vy3dQ{%Nfqf`i zMy-vPzuVLXs1#*<+qytGv)g2+L<EUlr6_}B-Y?Q{c(lB7NX#1V0>lezqfN?7OM`L~ zWCq<OKG)vkt8o6>K9NCraGz2fM?Kv2HcJorRq$4nPuPEW&$^fippb=49WRo?q<$>? zz5CCdHL_|Go2~oq!WZ{6cfa>qeW;E2db23L_?6~t=;-Tn5&PDUvpWI`n$`TJq%CSX zJvXOoqRr|wmpBMy+{!j9>Jl$iePyp6ZgEj^BiG>RpvO<v1z-Vh()n)8>K>l1N}S9p zlxS7!JEI^N{Cr;)b5ZW%tKEocJ0*XHxckT!-Sq$zMn{}&CgMh!b@iJlH3P1&=JGPQ z^1@N`$=_AKuP$AmC?;ui1$BH8MWM`~J2vGm$AV)JWLW?p&jJ9M)+uLjtiNZ0rr>>_ zOEY)qVKa}UntOy@%4Nt1TSL#xvM{SLU)60*!dInRQotUQLQbaC+FY@;t|yVXAr@dQ zl?eHaD33BAb=>-N)EZ{f%Lv?+6sZ-t%}Oza_p*u&KM8A-=D5&1pIxtUpcukPQgWaT zf?Vt6I2>kC3PQ0FN;`ihB$iakGc7X#RxyRs#?ivuXyFhU3?OG<y)Z%CPqyN^Xc!$a zG;Fl%S4)KekBk6Ys;A(F-PT$Yk5W5uvI8B;b#$$&mQ)gd??4PFFRgM#7|PKZaz^U~ z)6Wo3?+B81nV0ldnnK@pkR9bBb|l?3f$BI^?~=7s^}na~`t;)~IW5nmLxJY#i^N=0 zkT{h(eYv++lKiSz(x16CrqhKo^U-t%b-*qUw!rQWq~3GG-@{&b*A83+a)lqP`Q&z- zz9-3+d^)~-=rNl-M<xwqQb2R5+ge!M0%cb!biX(zz_K+uvdB8I*CH^=W>ZtLm0^>G z<ZbIs%7zPdwI|e|tePY{M5EG5J#Tbd2%54>O&~FIE}}AlC>nAyQwB9-#;IV}A_eQV z3;v<zE}UubGEa>slPieo_REr3Erw9)3=S^Jqd2&l$`@KMZlH<)ZI}DEMkcl}hP(*$ z_VB;)zU%ewhu-%P`|z6=2hr9R$B{@)PR0tdE^GQ#IesKNEi0zNDg|P)GdEter^8SL zb}(Q5&Z!-jF#w$4$R@<l_`Waz%yI`ku8cvA`m9^jz-P9sqNizP>9M_mE6ZeXh5jU) zJTGb7(r3rML`@LAZywfBm35KlT596Q4}7rp<&T(K0E^pLE}8^hMuF)Ny=)!Bq$ZOY zpC<Mwn$7c%3=RGI0)|KOt(d^NBS=FXve|StI=n;lO!f3Uv+C5Wq)Z9?bL;FE4`nxh z;pRhwDq`a%+id3FK*$1y-a0$gQ#)4tMYvE_OgSA7RS;)_q2~NJMw1fyq|{F><_wgQ zKX$}3-@Ee4=Fsb}dzG1v>LM+{eOun2dFJnTGfZo`CNSpsyU(yzQAX_~b@|Q*AHO=j z)jtkD{t4SAeztb)PuKj<A^o$=->>XWZ&YZH?gFsCWd7e=nFo%!ZawDw+j-nS()nBe zVVw3(!*kT!EC?#W;+$FhM?ViR#X+s=xNxd{9uIIj)&N95`pU_6%MSOR9&+|zR0#g` zWsPVsM-8x~q-AxIP~0*s1PxN0DMPYE#pF9!U&y|S88H+|uBc+nU|&dmUu@3`vBRXQ zDtGp4GPUt{vh5Q17MV$)S_Wc;cWZ72;sBK+F{;Rn>f?^NxxTsMGfQ^|0Nyowk4#KC zzA2K*MO{cL*;ecIO~aiVQ}QbzvamsL2;!fsZqIZ2{L=w*_E*^Uqap+yn5hZUto`VD z#|=5c=AE&Xca7LILFY?VI&-m<@_LW^m&nR9BKa?W3wShn=)yaeEV*#?k}_>GXgj90 zJ3_ZqgPqD$=T%Y|gw1W0`(-Wxy}WH(gzeGJa^7QPmld~`*H^N-D0*Irk&u{_r_U^6 zCny0@Kv-JuO|T@2j@U|vEP#IQg15%;2>OE*lBX`Agtg8W^kJDGYo#P-sqS*IhP6`H zMalDO5Dmluv<h9WC2CVu<C`5X5OH3zUyP@H>Yv~SnANn&hTG{N7ZLMuKdAaqc{5*( zf!XnogRtnjux5U)-oZ-hb+TMnHP}3-(Gk$ZL+Tg5T<DLh;C1O|(&_{7p2G|ktVAma z$3}O<?)G8B>Zu<?4BNq5v`+O>r}IbLtzfd$4$1zz@WxV?VyS%;6_fO}wpN)w1m+ty zKK{jrP+TksMS`c9`DsL4dv^MSMTTc+B<Br2lv5stZLLf3)BJaz4LyAL(a;C$aqyeT zSqh=UF*MOYrV4?XCs&`YTo+eW#fng-p+o^3IPtLkY`Zof|AqE+E4(H|oLcI3rOd8V zN|GW4U+G6QTjB!8Vto>AmQU>JNWXuViwg|W3QQ?zXuD<@wNX}259T^YeU-Pb$j+)q z)Gk^=)q6t>3}nOZ6jgw}roQCu{rj6XxZBTM{ot)f{&M8h2M^uwDx=*3HY<!c&Ebj~ zk1kr){##5t6zd8ht<q3m@J@kC`T|-2?K#{{hl^t0jTWn6ASy;3u@yeAZCdLc!D^xO zd}~a5q#w#)Blw13w7%2uyE)Y(H+`~hE3K`4sF=@FR1n37tZ7k!4#Kylxf~NKD29&Y z`5!NR>#OA=F{1sqVJ*#|%{~6T*erB^O$Z}Dsa+w>gDdJt8gd~w?L*+BGZy~DDO@0} zI68mg@ln^mVCG}&DD4JTb9(#NT6F24sjI<$O69(KsP?tw@k_rp`uN+7R&@^0xy@}_ zF?`S;+G!pfUJ>PMwF<t!APJF!{YBSBrJ{F#P6#M6IqjmV886y_GNbtR1e_~i?-f0( zW(QL~3hElEOx!DZ6%&sV8rL%FgmfF`iph6Dc_5)38iW)IY{t<y2n(j5VNArP%;;>% z_zS?T4Z5dVxw*l<N{}kqixpBP4S@@RlyXqzK8NIkzO<7r6UV`kt5rjk1Xx&z<paZ+ zC!}XUb)GL#S)XJ5WSsL6lm{qqUfjpE=5}qjeSQxU&=87w#vio###8107<Yib@D89i z@YptMO0mD-(5mUctdN{Kzy6m6@AcCjqT;{42G}mZ2l2eaqZ~v>o8@pIFG;bsa%`%E zwWae_u5*PfeU^eZ--YF_JFDJ&yq%tpRtRTe-%K}*h~jA%&dL$Pan_q;2L4voO(7r% zi5yHMjroOkV3cgOyhtce7gvt=AHutConGCb*~WO$EHA6o+CB!DNoymHtT6Ep_9k4S zuIU1Wmy0p##8_{j10K3%b^kswL)_60xUS%kwsGc`v-t`UA{1mb*ZCp1zVO=S9eD5U z_g`PdfvU)oOc5d#M9~2f!v&**C}-q}-rVDaStYJ>=jIUv@R$_6)}J=xdEcXr>pTK} z6XS(zzM_NJ#<4CZGi9)YKh;!U{BD9wjwXvD<D-U_-KRTOo2NFuO*+l%_ZRTS^5Ykm z>Fm(KoyGRavnYPuS7HJRK>#&_FT;VcAldN6t_u#f8DPi?28WYEFoyR^T4%=#H3*~5 zG->itC=NI%axpdz>SS+m1Ue9XC4ERqAgrXnnJS<};nrIvy2v1RAfU{71PGk11M-37 zdY1V~tXi3nk+33#ELhf-MbU<EDrkFpN>FCG#xp{tTJ{hNyvzoU8EDWZ2yht=Fu)9` zv2ADh#(VF3s7&k+-MeCGrD{k~*LMX30Pe(fFkp~UxbjV#>?&l`L?(6SIah8{Nx4BT zc!VV2dA`fTk#(t`cw0|WTnWRV1lK+MQsX2(E{(yBCiso5h5(&0HYsOgB^7UyWoomY z#qSa}&fQSGyKL~<2qeQs;T~>*PcRb<SCRh%*Tg<0zj!sI;x{*pFy0WMMI2Y@^Vs&K zi60;+_pwX;>E!l`XBd}mW-#PAd8JBVz{E)pv2=i~>>DBKv!|F*+$e%!sjU(Yg_!Bt z8}RW*Yw{#UU83oq=$Mnvvz)*BD#B!7GjXUk;AF8d9Zj*=xs;T`VwWB?);!5W?F|Q; zU5TxKT#*DX#jsNZy-jy8fve^0hJ2dG@lY(yVcjv82Vd*_&Hu3*;#25pN*$k*377nn z+i;~XBQN23caXW-z1g$5f))D%h0!@Li>)ldtH1pE^Jy^&K$m5-LN~YzU!;zvg24}D z0&iPLTd4V_R;%S0KXn!ezmK#!3j?;%3a&&>@^`D18uq^yP9U|khQ0RbP>{VdvR(6* zn#^R)Zm9pX1ER{-`R)n1bsonNu;Fl(TD4v!%|&ufVV{VtK!Oq2kGDSu3r?g_Z3s0| zY$@3`9PVom@dR;u1^ztZL;sFQA=uj8z@M81UXq3OO|7EhDU1*Iznn=S99CG6ug}Tk z&<Y>T+6T~`+0w$zKJvk}E%w^+?cZ-Xpy?XjY*3@U{JV*bY?!7>trGbn=)x=e)B`_X zFC}*=ftS&kLV?>Y%_-Z%xI>jSYHm<{AS79WCM~~~j4jakC4-OJ@qBB1ka_Y(tOywZ z`I4JE6qW>ano<{|*Biol<~zqp)WSD-{{j%qZUIO!a}169uc-eKn=6Y-0pSEMGWlYK zi0^8UkMnVh8n%)aPt(Z&;PYtl)puo$03XBO0Z#iU2@~A0t+}{b_!THd832B~mL!{v zJX^_!WB^4?A5OO))pP^QWuhh3czX^5f|La{(_SR64GpZjmUZSb<#kjNktsA1mSjj{ zH7HP#?XDt8hEC21%$1BKLiK5ZhV<3GWpim(8(t3B;H9~Lilm8Dpo*7=Y<p<r*rv6A zjI2Yq=$v%GxcGRK#;0b%$gNNO=lqT9>E0t8840*a*~SxSXl~09I4?C={>N^<hnPd5 z<rJhLL>cOB73!)<<0Gk_-m7m0**({|YpN6vjAs{97$H;h1izOu*!(LJ3dQ7hI#Bof zBk0Om4V6&U0zmQ<f<#{HpQc{qaQ|dH&xN>jx$d%Ff4VvUY55D#LmHi&*cFpENJxlh z{bMgQ>P#aCqm$g`)F9j7NX%LLZpq!Mo!q~@Y*j-ceL#RyyrD|c_mLeP;(Jz8skC^r zS)!6V&outcgI4M5f`$;A{j7>rp#K%ItL0l2uk6KhivrOA(2QH;$<Vm=9kumzUsod- zDas?JuUzgsuf?iQC6pCVgxA!8%;4MXBCu%!+rLIyI!9(74UH5SkD%al_P-Gww3Cv2 z?GPl8@><1lVMm=KJNN=|tzSO!M<R5>rLV}pBTH0Xtvn(lOX56TjSwgi=K4e^e~Eld zwGHg|p!qu)e*Xj0uWP-HhWVYosQd1W^MU2Bb$EBzuHS$6vt18GSA^#CxsE@b<i6WI z^!_>%_8E&^<jYB(e5`!lGU3rm!ZxU&6i&e(9bSL-!_T6F+p;~D+20U8Emp%*8%mZc zLWNgwuLy#Mo=&3~Fv-X9a1n^CUoeexy89Y+-f*W}Xi)*pwffo9XjQ-6Tc8mI{Arl1 zPAbeTYTOPp9KMtXwfXY=GFq}Oj(ccSIpuD9n38=Wa5z;wKzP29Ec}XwtkU!fD4)<% z=j!2|C5=X#_wP;?&>8WLyckdHo^v|SbA8AN(vlXZf0=Bx4$ThgcQTAk(0%1jGcO=8 z!2O!Z$v1buwF2Ok1pgP=?SH5n8x=EwqJs0__oWqp(l2q`;O@2O5vXZHFKkLshdnAV zT{d`ScEc)uqNt3RS8wcm)W(<Tj+D0ZFZ}(h&mS^!Jo#b@@9Tg62?tRU_B>Bw&di+6 z{zNZVG8X7Bl6s|*H3=nU5Mh4kA0nI&RTvqJMWjBB1=jK*EJi%asGUeRDmXDwxNenV zJ6IH-g=(l+Lh(Q_dt_@bmAG&UIQ_Kb$TZ!6YF#8()ZnN?^Tt_Ywbwxcl<{_B_N$83 zrU@#$8fKX3wg>0D;)7RKuImWeY=bUnhytBhV6syZNElHlHJpo%rUW3$%fU>Sn?IcD zd!UMOqycFB1%r97etz-_i>IM}Q*~@vF1CD0VLwo3;C?s*`ydXpx;4<m=F7NdvziRv z;o}Iu3K}`AS+q(_%%3iwn$mwNX{$Q0ECbEH)Gx5O+PK%k@SR56>v0voRR+nmtn>G% zvgRje|LeIJkE7zI{Ro-8U$Up#3fIBMQJBwndq*fF^_9B|W*n<|1ij&YAuNtd*<%9l zZuS<nG`^QOdR<aniQsV|c*71HX0bSw!XpH|;fO$NMvS01y*2TefjrDuymvQ}Hr~Cc zCKGVJS1tdGIcAmajBEPr|Ig|p!Xnih|6vSp$)95tJ{`DpJF_>I)WjO<#hOgs|0?+y z_+_OH<rSh(A~Ht)-#pymd8yQ;egg!L0NB4RC<0V$6iW?WT$UVFAw`TLM%K)p<;4Og zuu@Kl1coOU&a{pTnX#O|<8!T|Okj|g4fIMeqmL-Q8ooR)(4aB(9JJhL*;TV-lB-u? z6>g^33EsxrZCeRF|C}WcGcd9=oC&}X%F4-N;G0&$e}T<kYmc^3#d%})m96DkJl}<_ za#6rCU_{tfkcsgs4jVp%KmZ3K5GSiXB8`GonLmlhANGKaMqy^rM5<f^jtpcvSrvRn zKsV2Xwn1euf}nrNC(=|D6aF6@Ax9nc^bZ$_N}xtxdmH-QYQj<Of1}oI6ON67gcNhc zU@ZbJD|Bnypw7C;*i6AKP@6qzfK9h8woA*)4bkfJBxo6!C=e7MI#shXtEfa!nOcG+ z0Z@JnIgqq*HSRa(L&`)3MA7<KcTpYbpYiikl!?{nU4Ydp!~BxUw`kDNs4ZF<;Kd?G z1$ckNoCo-`y}@nIcIOMN5w$@zbzBjfRWX(gWf1C!*D!>qN1WnmNhGBhdH~e8(FAtz z4W;>UjnNL=%AyeRD#>X;V6sB5@F|=*ZM^5D@2wS#HTvY_p0D=#FVOw18gPOab^Fg& zm-O_oU2&8F<(eV4QFU<v7&+)R&c+!CLbI|N3N4Kh3oVK(BLONA`2b42u`S31s0Tx! zn^jSf8c$G|pz=U>a5N}xG6GI$u=*8^(b4bJKMP3=fgQ648^Q#JpTWtfpe^7+aB*>s zMgH5(f!(mItQMgd$FUT5Xk$AG$!#Qd5EoBgi%_1_B(+v`KZHy4GfQ{>DEDN4a0zj2 zQzJQV3G``+Lc3SPq4CE&Le4;@*G=Zb#VCPSwFH<5N-9c~3N9;O@2)a3sHA0CgDSK} zryg=ql?tNv|92iAdHT4=!9u&4fwCuXx_ssRB|iX;Ck<kOV%JT&R>71|gV?Z+hiR@X z7VWs0x(b%`7NUW7ghTc`HS%wKsabSbjS618P>@wqEbaHkrYAY&0aX<B(b1xy2Fjtp zlTCiFYc@QkKfh2T_GGS3*cLrK?fGIaUDgkt*-t+Le*Xo$c(Hdg6spn7%iY@+%ZpDm z(4$fe(W+s!cF|_R?k!RPT)jUt<kY}2s&KV`_|AG+&<@%iAVRt@ds%Y&rA-h30S{eQ z=h~<c_T75nXm-QYR`8;sZ?G{u1GqZgeqC*bk771t0l@#nPSZ*Hve-{Te+JEzQo?%K zn1Ed1fC<D26%+u}=OHj`=l~2vkZz<jF<-duC)`qrhyk!6aBCPOQnBKg{+U7Ob+m}e zLTYslG^1oWjqZ+vx>|IjBrPu=Sy4I(7F1d#u27{vY!B#^4GO37mD$P7jvo}8f}xBD za*lC~kyP@bdS<O{;L?qCQUd0vAHV#C^k6(+tXX@ZMgvTlGW$OYeq*xy>T5MHcACP= zxgQ5IKS$_OwOy4|7(HAX?IY3O62yJjwf#Pbe}-L7;(b)77+dYU;p)fp?`aNrhei>{ ziq>*KRTt=12uW^EEO?T1H-aeg52Gmd*vNHil1x9C<Al>m8)js}CDsnfV9M~GQpaNw zGF-)#hT19;<ya942El#n!$^026QDl?xQ>}*&pJjVU`goO*_CZUxu<_<UWu=102M$j zA_avhF-m1M3&j|URU4_b?J&}+tJu#?p(G|C&sCda2Tfy$ux&n!A~S({Epsblh!ZIB zNTJ+>lwg9fJJn3!&>F2G4;=3}YQA#iC}Ijf^Ap9RHkX&bB2k$qjgEy~4R)rK)Y0)B zToc6zV6Ejh>Rr90xW8?#A`@hwC8&f|nmW#AGv}IuwIuuNDHwLy!(X;NU9AL05qIQ& zh(o)OSl+u1kiA*3J@7s3t2PyE<r9Gi6C#$|=^qq@CJ~v-$yEatp>dmC(rlJZ)Y>YU zO^--OE-s6`bVZL_wFQ{6FC{uDV}XK|lm!EQ_;A%IglTCZhi{7Kdmn*S4t%f(#!mSV z9BH_5^VIN!@XhSq3Y=8KfmWV<;V!X0VyqbKq_}>~Pl0oTJE>zRQ+---_5epugJ!KD z<zPWkuE>$#U{GR|3k)o%k83>sI2e2-a7E-Cfawe5k(pfexYu)|<Scwc6|&G+oFaiq zm_JOIun=H+>otLSuCOVkm1R0<!s7sNarU_&OwF8|;D~<0?a1YdY(Aq;|E9BIWx9E* z0*io<b30Y*S7}Ny7`ctwKt4I;0xSH&|HjT?X=Q1;TA+zmZGQ?^dcTGG6tQ$&j5Xp3 z$1SteV0mBHWi)=(#lemNF(NZnvJpk#DjkOgs8%35)t989n4F)vg`<y7fIfLN=dfn? zNWtJ5H$cO~s<Mki6#lSO6boar0c@Fn@219t5SwfEo5b<>t<>x>J#AwE4R^1_e;rwm zX7FJ1VS-;wvl)vt@g#?=Wh_c@CCbXQ2BP?D%L>l<%POhhD^-j;zvBqux=&7B!hOfo zAh*br%JX>{V#M<cld&w0LNLVc-;m?=-oUp0(F8c6pl6ylE|Rdxd-pd7s`%FdZjuC4 zX2ahf5R7ienXv`n9&DiaFjuh^yt~S~e`F%7riye>P>p{7{aVF1{p2<?p9k{uMZ2ie zIR8lup|hu})gSvFu>XEkM?pcUl$f1J(R&L0y<Z(s)99tU=e17fg}Zl;MF0T>@Z%~$ zfUKWQJfCs$WV4**-@n$q<rNc_q4SxYA<XEC^m<?h_LYR*1@KbmMxZm?y{-Q1j1NGS zDqv)8tM0B~9l>ZrsQMK)iNh^2h?{JamItx{`AtEZRF*2mN}&(#uk^$eWl*0Uw&O+E zpSA4*2n~edj8yy;&<`E%okE$OO_;BxuxSifOL7xZI#=Zp>R+dM#XX=?9aoxD_pp~- zYM`^dd`vdo=59>;s#LabTO=pFuW22bzfbZ}99yckT4iRc*LeM|-Mviv0o%7%tXDJh zf=@eWzj|9X_6mkQ{MPfCV0`6H`FMrz;Me_JnMh@c3&eQr!fs}qOEopO*em`sI@tk2 zm1a)T3SLf9i~fDRGiDrn_4A!$<KKTD`FP`csA<p9kHcY~Hx%|J>Cr_%|EZyiC5F-p znHe-^z}5qH9)^x2R9MxyV@f#WBqk-k;uvA~i$L<yhA?&;5Mw3AWCnnN%ZMHr7zYdR zFbfrWtkPD2-)Va0iOi3zNqbxAyfq*|bA~K;&5(09gZySKi*x4~$)GBZdY96o{02X! zx^dMHcs_*}G$Sv%P^ZmrY{)S+rAH{{<I2wN+5FhJ;?kDVgNos@qQid1aqFGL62Bb6 zBL>#4@F|?jHf2mK;zotDZ=dgLL*yMf0EdV?2)frd@C`OVG(1Uw^hDWgv?xsI&UL3f z#dm_OwTn<6GFZ0ez)F65p{8);cM0h}It&cLPYBp$x13aO!tJF30RR%$IJV*{C#3Dv zp|=>u1eEOFynWqO5d{qaitsYT>hV^Y@5r>;_xwH--38nGmucg4b)K`JRtq4MQ7)*M zY1XQWanpgjtu}F%6bQGZ=6V>g0M?xNFzSG4r+8!j+t5Nm6j*g|Rlkif#OonCe`muD zmuUL?NU+js*I>NGR-hruIP-L>aQ4S%13yc4)B#6voNA8TQ?Zdlw>@nlZqxP`et(v! zVHx$MoK*v>t27y2SrUS2t*X8NO|f|oEoh-->ioO+;NW~)Oz@!cf`qEZIhw-@NTbAV z_sRzG)`vPjS-3<fyy*AIPwZoPiKCFA8f*&c?7WnCPU`m?o|r29EhQ&dqYRwi+WN^T zXA)ajNCKjN=4}vS1|=%*m|8$#Srf;?=(63+7*Es-59FLpSH(o^BxQkg{07tmicyu| z(M6yz(pvb%Dje#HJNlqp{HqEOOR$rsW(r;xm1y&>aA*fTIMDY=nEQ05f8ds&;s#*h zywc6h%d(QhX9#(ml%g-BXw(Ce!@FE2A?Q?#?a*w59^PKi{JX;HXnRicNkg0Eq~jTo zjxb<#BPk3{qmQs<BB{oUg95?PE5-Fo-Bauk|F}AVx&obeaV72)`pe7m)W5jLUYtu8 z(Q389!}O3Y_BXwX{af~I*ipv)IoAC(w!$r2*01?*n5%H=7N!KAhwPfm--!2Rs4~!r zpz~h-GM%uV2cQc_*-@k6PL(r}G!h$)&hAYP09!2!Hf(w;V-Ujdd^_0I5!3tLIbl!f z`p0r?U}i7Dxgxt4X7Kb7-U>>vFEM}RKiy7Ws(!kaog(lLi_bV{yOlULo_h)x)ZU#v zG~y|L`HVKeE9+<^XwQt)xLt_QAH~rF-9>lXv`D1ch7_2UG&_*dKnk!p>K((BuDFkw zWzDG27WrWWW7V!ka`M?Z84kg3m5Arg5S$T2ipUDdkfUFe7UYH+{`i05idZDh@2AX$ zbo2)tJ*xi3?W3yX;oZz0oSbwA1M<*a%sMMrjh!EO<4p`<g^`&Vi2Gqy_GlrEyYDu1 zwKspnXE3_kJO{%s8yn~I|GDdl!t5W+_-9-k@nQMPjKgs#xe=en9s}Tgx6rBB_I*sx zBkzaAGu7honrN?|i0-+0^PuM;hF-sZ<H5T<yW2bP(z*0{O8VN?QG3w4e}Tcd?f!no z7dXn6+sT-VlJr69<Hwn$ufwn|rK>MMMsG7!W}EEQLMqMHH%kr;f<{l1G}O{u<`vSP zKBcH!Ows4%t9Ns;CJ1cLC$_M!jGbyF3(WyP*j?4y_S)YilBZfrC$E9J;*cy;yF*?; zZvS=2{Uu~p#`xOe5}{%-htC&~#~PP605~Gf@EbrT>-gMX7a2}Ii0S>Hz{;sHrD>FL zZqLUQj5K~N5~JLd9y62<qeJuH;q^0bz3DS7>`zLo-k?}*jblamSmh2+Y5_j?{LxX} z`yO104|)!X{|!2=^b`+|^B)q|_y1L0(gb}QU&c>rCO@gkC&hQZzST8E1lM(R-=KnL z4NqLHvqw69N?MNX_dmEp-b)^qEP@ADMp`k;`yq+1G3)cW_T$4)9tR6g2xQlcNOEOx zpA@TUX+R|YEC<&wvC2dCOGb^<FV4iDPD?O~0~zsXxLhN9C_-yIJqW!OQQiXe1Xcc; zQg#8E&r9vo9<kctY38e3X9y42fISXi;MvI}@J&six7-Ok8Zakm>58-P3x7dY`!xFj z2O+19wk#}j=ZK<FEY%{i?w*YVkg?n`FT0ki1;kdBW3AR=Hc_&=6O3#yM<yrR`a=__ zne9$;mcRLZD^E>x-#yUaMZ;UO?o22fiR3~=bV>c4eK^<`baWC7zq{?AbR^7!qBwm1 ze1zB$iSztX+r&0;q;Zv#FGdl!C&FTF*PsyRVusq1`RW+hMWoT`$;s7CGu}ZcVV9AI z9<M8`C+<(%c8ax0AZwQ*xeGw%HrB5vC9FXlIYZ2um%{qg0nZcOWkk8(LFHMXB~Zp; zFBGyC6|}IvjflM?M`CXJ=#fuQ@^IV1JMTeANJem{Dn#AW&3);wA|nl*?mPQbu<F;C ztuz&+<3Vc9EyabVLE9cv^V^%xo^g&w|Iu^OA$>nhZ{e3#As_*w)_OpV=TJcv!u4;- zW|$=Ux<0dfb{xhd<_1?2Ym@GHFn@|ei+Q=2#`tMH|Bq=RcA^2_qNVuA>kww#ga=;e zL3Q*0)Cwq1myJnLkDRid+M>}XJFGMU1-f#)a&(|rJr<UUaEsRMn8t|U{E{wL;M;<^ z)5fa5aVI}SU6oX+;}|D!wiNDJpqDnZQb8d1J#`HL=zI^!$9s2K(-&fzR|Ny#7o*8# zrzCqeh+tojVc9XMRIr@}DXA)|^Qmg70YyNS6*CQ*TKb@*NV1s<A$QzD-&4k+MtyPw zfOqnjkbiU07F7e&krtTUY15RprNi(C$Gutq-><LyGGUYlt}heIsckKEC4;G{q?p1G zGD_$@Q+K}VNX6V)QRFpAPLyedv%9J%4pX`5h3pgtzEmE0MwQnDfO5qv=m%1jXgQod z?N8$8J;sdDdOG!Id<7QUKidEyuG1RC4$TCDR4}M%)@R5JNYg|V8>wSLg@(<BbrWP| zN|Abm+VL-F6Ka^{ws6XtX6R}Po=rQcc;g{mFS2EU<KluSqN(97J!`JoGcf;0DNauE z1NyGuP+S3}QXvs4Nr^Bjq<}w~gp3iwdw4Dao?n?7hE<xDXu41fWko_5g)t0GX}4zh zO#Eh{HR@Qnsj_JYeR#A#tB@xZgJL#@(~+kz@?3To@Gd#zP37aIh1m<QMsEiNmwddd z9vNw)sPojyyvR~POB_K5?%TE?9^;5`oXEY7vKW8rU%I(@(F5Z9qJ$zSr|4CDEQb@h z`DHk`@G}xKLUwfA|C}WC-UAEQV_x*#b8n^*Bo=Z`ju*)tC7E&{8&ny1^wj-FB2V^T zYWc)0;G<cKbiO{mQBLPKy)efRz`IGAT@wWavd15U<Wn@QJZb?{QD7=It6qSy6SRTN zrnL*N|3v15K^T7Y4>5VswrKqX6uvPqeKb75_~<2Oh-3R6iQ$V<dAwXKikqFLzM>z? zGAb(BM1oQ&)zyqpzO}V;dn8(~cBF;1nyqWp>HPoj@P_iiM&O652}*RKpc+5Zh=C%f z6qsi2sVPch!q}4F@7jVx7fQ`hWe8_1Xt&2lJK^K#fOUKvQeNTWcW`XB(%kRS!sE`B zO`-If-;9s!R2VW>GbQF~{Y?aB=yEEfAomqG>Y#=+A)oEcG2qa`_!eo;EeY`&%oVsq zfu6znl8M<^I(tr~-FD96MJ!!Ay9|t^lGgdJ?|Au#myTzQ;F$TUpztJ6juP*g9<vr< znKe8f+Y-pyOv@fN;BoU6iWg;UXDWx5$puCu_qxo=;{_q$p=^n-y$&JSd0ZEZ>?~&Q z$H`41B0s~~nZtgN9neft6*}Eth}j3_J4{d(j+ez7b36bgMx%7L?C(x!PMt;QCC92; z>ojz-!>&0#-wgoEo5wtOL7Mui>CqJ#Iqm*AnY9zmX~ks-np@(?d)2#4a2{s8*nTM{ z3>4)FhK1r37mO*cg%Tml#HyJoncvRE2xpvTc5DM$(kiM&gLyEtkJOE-ZYp0lJ{u&N zzds&1YO%>Y$4A$fO(vY@eT6{4($M+=jeMxte26DEw4`jXzY+8RWxyHe3Va&fCcfc9 z>tsRw5WTw_x=ddSAx_Q+#1)Fev=JI|6d1*Df8Ho@yX~C=YNt{d3Lf)L*N=BF*xfDz zEOFQ;yRyJ@&wZHdGri}dr~H^J7g@rSlfap1ob84iFA9A#fCGt%2OeHkDsmjOPL0C{ z-hWel!FLRPojS+QT?&U&5<3Y@>0YHD&TyaxJ+Jq@LHp}|_|IP7JpTLF6X>h>4_^7( z3(uSwL1u{@Wht1nG68Ee6pTgjA&g&i%~K{oeqD(z`OE|*hL*J=WZt#L_UI_H$A`jL z^>S1sSYW5`3_@5sE`#?e$l2V`_wYz$rUUA1lR0C-wx5ifR~PPtyEf~Aj8)`OX=Fyh zLGuzgAr(c`?~M`dwq;(9-0UcZn8S7G{&*s2O>AxjWYBS8@6Z49hD%}gi?vX0>yOb2 zN5;dY?h}iPpK!{Kq-fyyTs;%T?3hBeOO4nOmBi7+tqi<HZ4w%y%fctmsi3-UZe*A5 zq;&`!cWnO3pfZr?!EsgODg;Qkb2XYnF;fdZb^O8{hR2lj7@r%iqucl{XlYROS9KzQ zu5M&Vy~XO~2!b5|Sm7x3jGg(PaO$bh78bg$5v!MP_-aZ;si1vM^gt-b?r(VCfFG;d zqgxLj<$$&hoat(`%Hz;pR7p;9iEn{I+typ4o{!hRVE8h@H)^l6FT7Im4JVYa3te^# zP)GkjAEOU66*o-PW1p-@fcJ6&?oR^7M8(?oHgLy9yG0AdYPIzh{{MIk6piZWxLsTM zk<ZlRrTUT{xS-FT>VkpWCG>0*c@j^O-{53MV7C<9s5ZPjih&W#9fit_LBZ@fG_4;k z$7cTKjzuBxdYb_)>`^T2aL%Z1|3^JEV)R|%4>$?0-3`lm&auX%0Ifdlwu<+?FR%L~ zj5{m=wwsph&|Oww@|G2@C=tj*bqr^w!cL<EprVxQ_Lo^9v6;vm3qlG00vdU8-`@|e zAd1hRM;~@^%K*crf>sF>aOnJmth2^w<2zpe&q0`bQ!^tlMk9Q}boA)#lLlry7my@_ zU%JvJZ?c5rHJ3=ehRou@$NOn2s`p&vh2ops4$UhnjU-8fGjA!WULwOo3S&C^u>}#m z#FO5g2;<SZAbcoHs%%Vs5uK9P{jB|ea-;1{xmhd-@QYK8VU=>y15mf9@S<9nJhZOK zY`g4*PXN#O`(NzV*H-zxJq3HxHP>8goDJA{l{=5Fi04toZHJzkZmj_9mzw>K^&|QC zJ&7n?X$g0SfrQPlA_b^-*>cOJ;1A+f10Bt1uu%chNxreYvVygu1ku%0*IdUQ0Cq}) z`y<zWtRH`+HsmY|$j+x}9eAs1^EsV;2wv1WNmOVF^{AdH0bw(lR2(a2D8vQrGCqA- zGg<4-Pob2$<CsQOmjOUcys&L7`{0PeScmuQ_<kdGb#Hk*L5}0H_k($(Up124?2i8y zM`d5NuT_t9r#cY(q`MR!PbHWntmT}IltH(VlWIf?{eCar(I}>3jn=Q1FrbguO1a2h zF`LFZJjiN9I6pYl&s!|Dx=!ZAw#{p>sJQcX-(!|IOxXJq`{eD2-z8fK`0^CAReEI? zSLTU#L>LrYyZ;8x2<<c7ju16yQDG=B9OPa-&LMJEa>UA_N-p|9NCT5XvPc2cL3CcY zK-X#dNt`fL_|=CDf0i!cinG|{4%5UAc?$P8ukQsv3MAQ$4d^M-<R+*kh=W$m8Dvf8 ztW$VP9Ju_M{U6dz706fWY6WE5fR&arD2n)GnG_!MMlXdOKUky?Via4xVc7K)cl8_c zmUYJ~d4Jy{V~CvB3Rf2~uJmI%hT^3XuL-Tu=$=C3D;k7GM@2VP6Zsv%#Z~KM9R9Mw zsqP~F1Pwy~b$`7eFwNcnzU$W->QnwjG}Jru=V<Bs8!o@JE2yd4w{lYokflwYjJWvb zL0CML;jB1d(8*i*XGgN^U!~Nm0CaynQb^|Mu1m-t7h3o~E>H*m{`82xeok_Ymy_|H zZxUT3!>!}y1j(*z=4%(P|KeK}^2abqnk0zOX4m;Iq<oag5^~JsEf<B`6&5J5SD~(@ zK_JEo>c<hUWj{<0j>tP}Sgu~IU|T2r7Jx;Uk@j2~f`PS0xwFy5H%2=+0hR{cvY~zr zZ$H{IiHkqlj*S&2%D9$aVp5ZtJeaQveA7PW3a=4m6hG=G;fTkb7yni48^0S;5w3ER z8~xA^a9*J1N*JkLZCE^GvZQK5xQ1UzK+mxIxQ_Yf<IjTLylSm?b9AO07r?@ZLggg; zX_y;Q5UzHUg?<<SIG12=wnF-HuDx~=25&(DT}}53SPL~RK^OSV_js7kA&SmrZyRn? z$Knm$Jc^<Z?(_tvxGzr*L{%X?qR@)7MTm@*M%^Iw2Iv_Cw#T5oP|a5C@A)skfLZ-n zEDgi(L5^WiJv_*$&92bIx>(6MrRQ9jLOFDZ^i`QeS1G8ghcZlx#*8T0$Us|ne-m?& zy*zKLs6wXB?-{!9zOPU=8WX;rAT+Mq?H7xL{@b2bHzSMD5+Y2PZ^q`WsoBO`TpP~C z#;q^Gi4PV-A0;i&DNa~tvuQ~rUw_B=!gW=)>=wWGpPl89MqYHClGOZ=Woq?E5jtyT z=M*GnF{z6}VSBXkRq3G;=w_L;!IVTGa#y50coerJVcQ=~=~CiGWmDA6OuBA^5kl2O zXw*jU#c@L1EK;{z&n{Z>Oq)>7S~|!)&oVJ@qs(7eQYbEl<wk%-m9ZZJj_y?)9MD0V zwL{MJzddpEe*l9kc9$LBeerF&(ck{#8%<^Ju1)#s|G`&$^`>myE@1~3A{$r~bOV_j zii4cRu(y~H?*v4XO6VnqA<VqWsQA`bcEPjr_Lc8#JaFeD|MTW^1Db0{Mm6gx8&F^A z(@**?7NwFAx1RaWd}88gKbxv1YR*@PrO#ry59WeE1<CMnA#)F$jg708gxFr3rE98` zmb9h|`%ppY29=@Z?>Fr7aeYR!@b2PTqDvcraOl4`$ZL36x$&6&S+Bnzy!g`df;H(0 z5=5*O+Mgl<a0{TnZN)~!@{Cx~&ealx?2KuNxmU=^aiGJBa3=K0BQL-ojj<)*5o|dl z@LoUi*)G)BL~Si$B#6h>hKD61iE6GbhyXH^%}trJX+H%VetHTrZglV%%>YjXG3VnM zLPKvFI<Ft&PJ=a&aKab!<^bL@xXv3V=K?EJ1L8kJ1qgK;uDR0|_QOu<QgJk0?F_il zS-$*ARL$&+h0)YhHnxv#h$*1}dnCH9cO*~kEp%!sXf{w%7!HmdHmL)`^zPUrPG({U zxW8jMVX+4sch`a(C&a+e1Z(P}wB{0@!gkvZ=V(T!WDP*J$n&VLYhHx$T6_J{>yeL2 z;bJ}$+62_u1u{Hi9oNjzt&>Yjj1Ihmj2WdB2%?c0L5~aJkd?^^d^~4<m?Xc;=s=lN z*so^2Zwnowg2wIHCpysBxd^aBb_H4pfIe+!DL|~SCTa!qb`-~<=OwV`q=of5&00iR z6N;SeY+4pcS$fCR0rKU)MEi!~r)S^=tO5X(GY+g`CMO}=DI`YzY&)JdMj2(*Mbo3Y zOI`NpK=-$(L$RKkFCtd5(#E_OAZ`l_IWMF|{35`hAT&yuTuwq_-0zq|VPxWj0Kzm= z51TsQx0S9g2R()iH+(v14^@srHWmc#Ea*ulr_r$Me)kso_&E<!N+RzZuW<dFA64Ay zOZ0>N_4-!oW+8ya#uAY|JUFCYIJHoz*=n+Zvn|(5(W8eU?q|})RCPgB#k7EO`SGbf zQN#3j5;gqsa2SW-xSYVobl$gcsH$R$%2{GQhIW;q0E-KK`$cDQXeh{$>tPlZ1qR0) z6$=bFbnNW}mdTaMa{dH?MT^khZN!ZZ#gm94ld}_wsZ+E2cwqq$1U_>sNEzHo9l}wk z8Fa{>xz~++)t{ZhX{7aKpi?d?BuA~Gck(7Qcp|~Qg&l|$yTpW5X*FnFf4O-L-hM6F zKEoU;%m{eyT2UCEk>N`}EY!msP*G~LxZJF+$KaU@3v%#awb)~ubR#P;p@d;c?Ou;* z`kd?IS4%su`J_-J8X%wmJwU?0%LIcWOE&^SsRYV26T{;!QRt?wZ=xp`I)lNkjgmO& znG)mP`OazUNBhhj^q9|Pacx46PY$G9fhhrQA)`&WEipbhR@^5STG6AOC}f?O3ElDh zT^{T8DOo^XmeL~+FNY$(i()K{UuD$TKtGvij{CWC*k)s5xF;STMyXrP)YFT5@33=x zdwD)x{v~=)yKA4TBZSOcIkHRTalm$A;xJ5h*csB?0sRu*Ttr>ItmpBgLj$(^{J(yo zd;8po-{JICH<!C%2v<K<=d`OEB(v!#ewkTrFeku4lx>m47!Ly)MWzzfmlG_nwi6b_ z?CSQ(w0UA4|4ff{iI{RL-V=MGD+Jk}aRTQ?_Ll|1C8Z*`y1KeLYj*r_FG@v*Pxqjo z$Nij+<AUL3lg8Smx7zSx`n))a<b#!uWFE)8X5U8h-)k}pOqnB2@uo(SNuN~5!xAvJ z=Caidi+6B4WMoByd5^8R2+rT=>jBss>mC^cgHdQUjmBTTnwJ77T5QegRQH;IUqz)R z%#)LI-&UOh&$J`5gTLAhCGyp`h%eKFZ(m!C2is@v>!;s%14O}vkOBLYvt&Ot?E+G_ zs&LraG`rxs9>-z~e#LW$<mc9|VK~G?<`Z)!17<)X3P9%_eKyX1jHfSu<-6D04tzy< zuvtfTbTG+@A!l!CRr=mNkjyfDfP;kA>ln_WiZCgZkp|fE9&&t`OamnVp*VZ3walkZ ztB?TmWsRy;Mht06Pho*XITM!NOSPxba>X#T)5_S+uSBf92S7|HZPCCOjd_}thEKnX zOpwg9t)(iDOY8jRg-+-CYknin4znwX5MlnXT4Ca?NIY?~p8|gPkFytwRiPnp`5xHH zeM9!8px~!Q2{cZRG{_q#)%A?|q09%~33aXG(8dYouat8sejuhMg)D*G7{}A|M)O}Q z6XtIg*1f5Z-hhicFU~RivQNj9<N}H)(}6lB(-rB9e}r^NBD}0^4k4~#xD~1Ve@RG{ zM|YG;@<Ehj8nF>6MV$;1%z18cSBt0_0~dER&II!HjC4qQZTNZJ0RP23DN(a{hWxxz z^I)&F7aekU*sv_@U1~_Zp053Xo=k4-zY4crdSlouMv>R=@<jcSbN?@ET*ri$9GOg$ zyvb1%jS*@lGIsBjNF;3DU;qwC$fsXfA!{zq>jdTI{6Gu>N!dBsR0enCf%;afVIdi~ z4p<=b^W0s4$e7F4M7UZ5V#I1m07#r9@yKW%M<T_G-GRQwEoAqoibti=WV5)_iWKIg zpe4fzkIu`<D<DNi444kp8+kJqx80dy>{8RKvhgunF|jq(Nc~f4l{OFDUc=6aR~gBa z3D|nEBo(e*!3XsKsgXo+^o(s@0$@YVhs0Qudf-s%dHh^u8Uc0ro+y`nX&2QF*6rJ& zDwV`bobrZ3rv3gF*^i8L29w9&GsrvmQBC*Zj8C1dzc3nlax(sM_PtABogIl`fW`Z` z6Lqa+>`kkoSo{WQ{|YQp8J<A%i$-TwW&_L&35dRuT_%#`Vo>b(#gjGyAITL>DOh0c zF&?TEop_l_@UP0)1;RMQ@^}$7xvun#&xaBK={-zGh~qI4!5(-cF_cJ?R3pA5D?Lsp z1<;{71BkbB<uSQ`fqCT<Jy86TkD#aBZ8zau+)fX|Y^f~pnG3Uf<AZ9Th|%(Usd%uT z%7sT>PY|e#4s(&e`&ZF3p=g`R+&nhczXeEh9J&Xh*a#|k8rs{@nm=MzS*OnRTYM{s z^io)Gzp&9!wB0x88fp{;ssiR$)wg{%KXMu-CRIZ-XbfD%h~hVT$Th^g!ESVRwZ)2B z_~uF0#2d)#PC)nJ?Xg`YGFt>}vRPqXG{wOLVKBWNI0$^P(92oVsZrvQV$dhDfkYV3 zP)Q(lKP6wg%_)I{?o;gCObgw2W)vWK_nnk}T3i6Jt2Ie`9X~>1uLc?g2m&iS&SxI& zpUK7%PURE3eUuF(5fyXNcBoT<E?vXslx~>Y+WZVoqjH3KCV<~R(r_8PdhKmO`51{l z76v4PFP10Y#5mbYE%<^S0)pF=)$>iZ9tvIOIVtkO)^p7>Eg#{FZe%M%W1)ET33ivR zi}oCt5Er%Ea+yo%r4jt5dcCp96!)$*3UkdO@rZ${<iLakJl((<Q!+Xtlrux<PNfl2 z7hYdA&lOBj2ruk8w`E18P;y~Qm{k_bahnjp$mPhs^UyaRo#)><ky$VI^9SB#f1i#f zg;fkvjNmb)4-x|<fut;)Zb6JL2u~VP5E2rI6e}7rEgk!%J}tqX;^Ym<i9$@AzjUa# zJemhWCI+`HFxnZ<iLbRwM}JK^9X$fwGP=gG%kPmd@|*u~^VgWe!qS~Ea%a~Ml|nWh zL4b&VOB<kh)oh$KD<O>)YgC}y*Nc5CyD$h_zFbOmDgw!z3Q1j`%cNmzRjQt1jkpfq zH~~)@UXtf~3ry-YVbz=GPSSX5$K;S<wOH8F8PX6^%A5cGOE14y>2N9}<}X`5pX2vG zULHg<TQjJXhGa_*{~#hxt0#m+NXF%ikvqd1gKn*!BNmJ-W~Eo7ohd|%Diu5wT8(te zHB@qHN;C7fV5hOzA(T|smBRe98A75j)C@(+W~`c5M>x0|-+Srh_scEJ%8a@TKBKp9 z#_5xNpMO4i?2C%wI6If0+)ru6DMePUdE4)s@{5m=q2x^taF+#A_tw<p5(Hc1Ix!zP zzDgK71rMPduyLU1dnk}K%kFC14aMXGnCl6AI4%3=^<kIW=vbRq9KidLH?jjF80Kao z;N}3gOVbIcE-9k{3d~?jX1E)<IjS-*f?&XNmjdl1i=_As<Y}kC13X1{V=C5!-G40> zAm)UUpP&}(4D_hx4_uTW%!LxOPO+3SQ2;?z)TomTmNKq|7|&dODK+w7-_7U<9lkMG zS5#D0lC%U`4g}#vA7Y2E9m`Yeiy>LWgvnb25H1UH#4MTeDnN;&I3rDLA^xnwceCgT z2_#WmRZEjVMO<`-;T1&}mF*AhZZecYDGCTnK+gh_`=U6a>e5FY5tGP(cSevwg_sMF z=M&UIh-3+wS27+tmzUQx$%P295_Gk;CiiclC1o4KN)TprMkT6ijSw~!E{#UkLm8#k zCey1p6Y?bVL8^q1p6q(@mV<ATByF22Itu`prNAlNQw>Tps75tKn7@e&1y`b?yPD@P zzf}7kL-QUyf<4F7I$|Dl9#uwA6|RIBk~Fu~>3;<GmBMWUTdVXFw;NbJzk5-s*a~Nc z;j9D(6~sR|m}eDE)RkCwxPGbYjj$G=ModJ}4p5PD$+K;(?Tu{PLi#0}wOYr-y@j^z zlaJ21CWpszqCJTmt8rju$pi7f8wi?BW;oilP}*jKZ_+L}aT|#|rWx`U6z!eKY)oo9 z5QJX)fxapTtAq~;tFCW7*DS;|^r6mVf%ofCko&Qdd-vaXCLZ3W^X$mO1U<NYXE5;W zq&!5UlZ@ZL$n@9RS*uas@?R3{1^`nM9XZ?IjfC^2gkRKRMjWV`at@}apG!$rC)gw< z>)!Ps)}pK>H3%*Us!oMwW-tma%c;jzRbNahD}U(Ys_Sl7?a_mdA8}-aEt)hBz(R-g z!#uM<`Eg*(rY2)#0o-yF1PQQdz-V7+HgSABbCjbXM2Z!GlM%TwDtt^|oq<AUfFM4B zG_Z3Z^i)g<CrChCNzN*KTcD^K;YAOls{)FHVtRScxO(y{A_4_}pa-z{b9PFv92>`t zJY`UzRcP_XvB8){%P(F746Ex!lhAQPFmdBwo@xP0efe)x=U77r`+Nd8#ut9PgBq)_ zp^T^1=D^G?-E_IS1WVoLUs}T}rJd9;{;_iIii0|{M9;TAy!Sg>ckg`$as}=_i{XzA zSve7_d5<HT1(uTz5@^`drAK~ed0Ta$G1p8kqTA29(Hl%8lZh=W&nbTTlTEQiM`0PR z9*&=XZHV?*ObRL~S`tA#h#%~71Icm{>mOvNl!`c_UNb)`rO!0Mg|JY)pkZq`Qcw~v z5S=J$W^Amuwb?X?toN9ojTBK!iJ3z{7f6>Mf|qG{{@I?il~sJr#WKOuK>W0=LNTF@ zEe*;dm2uk~3VW+=G(R_UV;DhG0NmYb>M>)>O9G8KS@gX={J!O-8KF=6&Zgbx6TkOT zlyI!Eyz}WHkFr%!(sAPZo#AldBh`%b1r0Vzq&t-}wD)Xc<cyC(FruXtOF^#0v+F<K z^y*_Zfuj}6xgsx-<qP_Zo$Ezd)K}4a8O+74{X2fim9^8;tgyy!M(0btKiUg0FS$Ib zN0A=)#9e6i!_*dC&(DxprB!b~jq&nllcNUHx%2K9d*0!Mv5?jI`PHx;&KUz!@4NM` zXFWR0xuxpm;>`eh(57GvXu|s;WuK)e(DejeuUHBKQ~o~koUa8p0+zisf~4X+PYRuC zrJrG0ZoJ13XTP3AU<4O+f-0V<r(QyTXr((*2@tBnG>A!*L6b+)#V+*BwH+HhibN68 zMrtrrnIL4LSWVdL1~~L{^bZ`$Xt{U+;30kto*hC025*HWpS=q<vP$h16bbNxtdyhS zRxO4g9Mq~E8i!<K5llnorjog;ZU)w|6%ob&zD6?Llg9=TlcFOw^Wi-^HPvkNP+TRP z!Zkbw+~w*jhL`jQh2{|D;^{w2b0-4t9gocSd>GQ>psm$(h2!hLV4Vq_JBb<RT#R0; zU9|OW26Z}w5d$!c*i@w3m<LZL-wAEg&bs1Z(pCs|&`<o1Bdr;sBXUo@O)^Ls$P6#A zyI-`P&nwB|Ji}($i11g_!f_lZHz%%su|FKWx`(lLEu96Ll(WhV#wGr%*LnNc<n-jq zhNXkGrg_tSfW3xLL76)eQarj>`RLECupTN-ZJ_e6mfJ^>acZ)YjwSAt3dEW<!G@@` z5=M!l3X4&(5C~&)B@6n0H?)ARUL?co?-54HRWqB>*MD4~Gcz9yQ0Iz5B8RFPWI;i5 zJZaA<u|6tJX`thW7JCYUh`8z1zRJt8X;4`T=m=Kt@wQ8tD*^IoPV8Y}EATI8+M$g! zE>^d-sgZ_JMxwd!rAt(~6QhGg^6gK)S@w7D=H&rBw8H7U_qp`5@88?Y`arkIq(03k zdp%%Z-c#8`FR<6I|K4|%<&|gg@z2&<)W7*4JKLx>jWQD1r7xYyr|hfm!-J8=>e5O_ z-Q`ArqI5XxthF6~_oOTXlVW1uE~=K(04$vWGd_6KTZPm1R$1_W)u+G;ZhwctUHEEs zHFwU$L2)O9)c?!dcWJq2)s)Nq$MZwOY&)Myd}eaqQ`#b0gY2;fsuuF-Z0C43m5s{? zt!TwcjPWx}kNbhvzaO&CKOz|ZR=d10-S%f^0bTtLlnjfu^FcmU?!8*`Wmya?i<{we zw2?D`hdE+4TnUd~ttYX;>Hmgc33A^kd+%lctd}mjD_+R!7B0H(x<>_3<;ag*UI%xD zt<>=bCT~i_j5>sci+dDW0h$hYv&&gDlsTEo1olm>q-k%>KO~e9tDt3-0D6Slk>@WT zAhT=~q!msmqe4y0hEOi=*{p1Iq9n7+V(f-+wovGFDjjaB`b~ZT;o|Y%`ms1arzVT^ zMwV4I^-f79;vjFnRZ=YGCX%#T##`E9JbTk7ZBf_q40TScso>cMT+z@N|M3~5Rk7yx zsDDLU%LMJpLA+n(<Q0M0_W1LO@rdo)G`Dypo!EuU=P|nrS&d#b^i5of?T;T%Ohjzk zrrGG@=ulc-ua`((Q^I7%%yhp*mrN)M)8Z;&Zt<-MF3vh$_BgiQKr;E}z~JJIK?j~s zX{Jj-)RVBl&&n0Km{j(Pwn}(SlK9Z9EIus4J4r4W!hiK9h)%!@!JC(<0|PgY%*g2k z2^S*w&$xMe`_U2p8r?{wlHoK!G?<|?8lC+@bms2*2z|4(esM|(Ed_CRmdZ}o*LBTZ za_CdAT>L1XNv4s(1)y6!7!kq9_3+Vi?tW^|&K4w!;KJGYo_31Qw=y1tMXZJm#8wV~ z=&30|Y{)7Idh{kJF^4@dg3@d*%26_DMtnj}c&=IbQ8D3-d*bm-N|q#6<xsk?8jox? zr>tlM#fCflmVK-=ZQXaMni2y5OjbK}0+AVA@qcTlpp<LWlqha1NRF`8uTa9B>x`&G zRwl^HODG;nXw~$Vo1TXU20?Qm8y0NF)FOdotg<|s78K8#5c}-*r(Gm+v9{E-i^e6= z8z*6C7V+HZyOcz(JekuKm0|m%IGg?V%?`Hf_zI>|zrOArX1D5zr|DQ;pbYF}Zineo zC>;0#>@u|qct^f8pz@Ol;%35eaRr<0*KNX<%TytfxU-F+mmPVEexCLk?*Vx7z2v1! z!!2X49|qoKH7*8fV#qmwn43$HuK2W@0t9E7&5a1TJbB$@vt6?NtrX}0hcD8TdOhM1 zJBCvUFu79}eR|||CLo?~MD;&=;5fi$1kW(nef?#ut;v(G)>i)20)*(>ff)|0Te9iW z<3-0+R&OHF020UU@1F6oiH?<NnVR@vUis>eodA5l(^G@`cZ^7zveA(!jE$9iKK$u! z=$+7XXO|LffjY&#OaoSns<9sW2NFHFd`g?)01c5{x6$w*vp<KOVlD^FS|%gGqN2LY z66jI@2xvz}_z}CsaH?TY_3XWPaQ3oGUtui)u_8)+okQrHZMaWCeRuqV?h~E=*-Hsb zY60>hIg*r?7YL>PKa|Fgth@_XUAa<`5j*sZuJ1t(U+}iA&wNg759T#Don~S(@J%&| zctnhl<LOa2uH!|edseeMZV}(WhjdW*73>aDbt6OQp%2BvS(5H{0K*HExgB)wKgPG> z;|O#gKjBU6Ih0}A5;`D|pCIkifWGF;sKf}3<}-$}%PxYcXdp#N1H|DBHml5#Yja&v zycFa$W)+KLOKg&senXVUZW>F4gIM;38~Tk{d*a&_$?pd`fh=|U%{H&4`#(0$i+d3k zWuYQau6kEhmAObRwwrnv_nquSk3$muK)jO%V8rmX!u7ko@4dg*qx|(l^+c7GecboO zyQJ0|Ir@`iplUp_{u7(a4U(rn{RkW14mLVn)C}jg9jfY$Rl#R+ZOXH7Q`|()%v~g4 zac)h553dCOXsn-rdVaet-A~bRTkrCPYf!_h16UQs46-W|^8=RJMO9yA@Zy>S5O?_E zYfLA-rO|qh^wP|v(H&+)&4Q450^kp~^eh6e1moPO)vz6BJ!A{B?QG(1MzB(Lbt9p8 zR@qv;1u*8vo?D;X$DSK^8w8w>{gF8Cp&JAW#3-C(NjgDU45uxYO)WMip*J|EZGz2r z<Zk`MsJA|fAIoRU&6*NU<WUH6=Y(J$NboZ7<#2&Kpq1_oGc^5^Rm?~K*y+|9Umg+o z19g6>sZ@*QQoMY`t5>cV?$xdJp-17=aT<0M0A*>VY}H^bPRyDwZr(e(<90gCLvu~Q zH`q~Y@BfH_!=%r(QHr(CntPI-i(`GY<N7E5eR75au2Ry;JB;s=t)A9Y%Rbd0r?u>N zLYHMA7i#MzIahh71|cd---#e#5gi0*Eg|`DL)FqmX0s$W{8b4=A)ANX)6GB*KwRy( zY8qDqk?++5Nu<#MPC%URc7-;g0q!qUJNi#$z~IHaXetbiSrf$!21Bp*m)TK0)LO{V zUCfnm)&L#;h4tVzoxaJd0;|3sbQU*gOEt^1flypY{%!XW;v&l1mx%%rz?qr0)#Kyu z1BGVffa={=C$85rDEl3E%ce)8W3Olyp&2b5N)W)r8l*%U#`ADCP;>`>7-Xsa{O9og zc}7gX$>|A0JYfmTIXQ&p^x$v^MxRNtUfgRi<}Fb8osDlsxmS{Lt$T0$?Zc<~2u)uq z-l^lR;U~@vjgRx`8m?*((P(I-Gb8YN6j<ajag@Np)I1p+4#M~oGVjCC7o)E?Fi_!Q zf`^*|7D3b25o!?h+~GBVqymHzg`75aam}c5Qnc8IjT!!|Y)M+!dm;HjL`l+KA+zPq zt-ya$BCtHV4dHEE^TJ|PQR>7%^2TKOHscf_WGZRWW%X>|*=uJu*Bjg??nXEuwstSu zF_PL|P1T`m(C@m$&5>opJh6Gaq-cRq5y`l_Qe*>>Quku|!4e%)&h8cDGB@<rW@S%8 z;Pe<@;WY;X3X+<qMqfQu6ym>_@wb`>N8NPMN6*IW!xdsI@b+NTA&8_(%?riz@j4<6 zlBL`-NbLD?5K^x2^v#pDNK|80!fpWbXX{t-xy~1sqIL}+By}r@y&#uC+(7d61PVqe zc}O{#$hEN>y|^lkmiW<ZgY&k->klB24HEl+s?!KsX2#3d(~OZ#wP4S*hWxiycF$vR zz=#(sDe|2OIXtYABuMM%qCJF`iq<KscmPGa{+Za?ezOKQdSb>8Lk`W3<A4B787YW- z^<y8Xdz%jHURV>n(br$stm3XxN481V{ZY)}pMQoXR~MD~^Hg<4Y2|tyo+rs8H;DRC zFoH+UT3BQf_>mL(IU>NmB2J`5UYeH*i6wK%Wa%!sSjM#)k(W>JZ`EJhKKW|r2>9$K zeEcZ<p=fM8?KSk)yx<qQGimU|EnqLNpy9XjM{29AqF3t3{c2P5bYxND*irfz&dA<$ zN|x@HndVOwRqN!BA`x$Warq8T>r>V@;h1&Y>ENeN0nb+6V&kEsP@<A6?q&^d?$DPw z#6df1^wAN(@^9uluv+THkzf7bP}%EEPFkH2xgGN1jx5(F@4gHgYU%kc{GVL=cTHjs zZeZM#_L0YwV^zkw1_sqP0W59MU;{xSU0QwPJIm21UOIw$2KKSn_YpcXyuBCJoCq(h zlb?NrL9L{&3JCxwRc6hKbHYgc{w?(&JZ-~X#6RILr~c(H%^?6^5}GCu(o@(8Dk`*# z#Km&6C1Ayn>p4>sV{Vdmhv$`mZ}_pva$5Q(8GU2+e&^qE9|J@jwa}vhx7{;)Y@_*P zQz5r^iN>FOgh8#OwD4AX!bnll<leuf9=y9M2E+nf#gxeTX;XYOCRa@8jr^AWeqWK7 za;JH;m*JZwebak;^Dcp&*Y&TNN_b6P!tylLjUjZG2Qq{K+i)YfQ=u8{U^))-N~<b# zS-x2ra_n^fU~mQalnE}>c=Kl4$ul9I?7STx$`<xWU(-)4zTROjUJg@d9K0b#7nkz- z2yxk)4L3yF2NzW5bahvCJro%Fe{Li*TE$zJj|Rqg>A-6lNajj%V{OY2vS?W-39Q^U zQf3T-5b-Y{V-uO09OPuT@2<D>W6)ZXAD3WMX+bK99=Rh_O^rN*G0%lDmVn(*L|V-s zX#=zx&!F4O-X4vyUaOfKmm$gm1(Kd^jG{jyA)-!yH2H67R%&t2<yROukCk8HXd)=J zN(=*MY&LoXLp8IJgj<>LfTF-PEX7auHKG;-yz$50iwi*k4wBM^LN~X#pIZ;iI|&SS zOjqi(Kkp?rla?i?A9N|K6h)F+ZXJV0I@8535?2uf>-|`+e~S2x)EG=YLHsczXtS>u zJ-x_`cmhOhms(e^H!rj&JBc6{pf>S(WV>=dc?I4k#>K3k4-$8a417UyYob^`?$qo5 z2O&z$kL2n&d2B}1sn_KOJV8=tJOQghtclzvH95A8IzA^?Go^mDE0=pU%Yy6*04i&& zQalXFmNsW;USxYM-}ia>Ik_Z(%E>he<quhI0HAP2o+Qj(fSHr1V=I(P-8mNro^B6J zdN%ihSTtSFb?!6?*zkh@c~;kezA(+2lTQRSprZ~glfsO|_{Kd*KBBma0#mxN%Cdl$ zoh8*ISt&p<?Qc(^wh?H&eK0K`yWL2jn6?}5;wz}Kabt>bk<H*x0^3G>_3b1nz@VxW zg^UG;y7y1|$35|r`5L`E3xKE{34?OHc73)4R#W*1I)D4#-q7h7caF7pc;n`DPkz@I zPb_mfFUIw`254TdcLAsFyl<>?{Cyj3LCY0dTV)-|47Ui6QZ|A%|9x`atWQgp8x~9} zyknp_YI<%7P9ALp?sg5$1mO@ewM(gz;~5-TPWaHU-Ekrc!wsKY8i+H<r3YQh=Hdjd z^bA6#(XnyfjYssLb-t$#5bGn!Ik|T-89bf<>RC-fC^HHnE<6!Fb&kh_#(LfJA*NoG z5XGl)P?*i7St!u4%VyLeBL<L?Xcl`RPjAm(t2-g{VUQ3VX}?9u<nr`sZ;D3@ATurQ zaZwWK^&>05cMoeIc~9(fmi#wiB=~h#FM{n((jWQeQznKTZj0sY3k@xGQ?cn&z%Wd_ zXtQIHYbBz5lyoko!~{V4g9AhIR+t%@&@|T#2$<Cl$X{Mb`v$KiS(Z3S`vPphHIH;% z1c1E(QYTpTWPjgY07nQ5h5`7L&V7zf4R+2R!>^ABE?xJU_9MFhMCj&dwiP7z2<uz$ zf7@x-FL-<$3a6Wo(Rpgn27Fojsd;aCv%3k54qZ68*}LK$`6rNN5uC&g;+O!MU71Kd zeG*+*!9i6sbZKxtfh^T+B_Jr$l6(h}M*F7Fhlt-<7_*dU3Lhff=0PzG@5uk<!B@dT zXonj4fMhk#<`$rmds=neLt&1ht<5v8f&tz+L%c<`j-+L^7xBogy#|?Zs?H1Lw0@OQ zj3t8iGVM)Io3B_vVAuq9CIjb8G+n?~!y}CU6qkY^CO2R==9ezF9Piz<+n+SZOcb0T zPk2PGM1Z&ntw%xTc+4P84(ZIGQ!)T;4}%;ADlpyY^5c|CZM!2mL_V4A)eGn7jVE`s z;*d4zYfKsHR$wiM1fO?uBG(bD_iVt~+Q`XygjI&E%lYAkRTYo~_e$9dQCXVyGYfcx zWF2B|C-{H}=`OLrF|FeqdY&+w0Qme5kyZG`i;CGog<qnig)wMap}E!62>d6>V%Cc| z9TP7oBP2H9+t~qQtjCRJjlJV0uE}-F_ghF3{AWS4D2xAHCIEFpD+a7XEcZ{|%P4z} z-B$fQ>U%T3js`4~F1nd3AX~)qLCMu@W|8`KXGEoV<F<i4=5M@?RilBgj<0?*`|&pO z+b{DA(SC8~XdT4#5(OjZy1EgaY1n!_S4~}CWQ4l1zHV399v{jUf}5qMz@M_<n#-<v zi_x0H0RlmxX{pt!7OiNty_^tcdV$Z5<f87#iba;;0g}m2p8yU>Kh@jl(Ez5Y9>;`3 zu4aVC484(3pF6f`y{X3FL!+aEOX^znaASYPR<3_B&};J?UAR5^2npzNjSrDmij<fi z%0&YaX#|f_(l$`Y1JvO(xXkL1n}!d%&WRRf=Ih#<yz|^$*J&AMDtBP<t|AawQj*%X z;r`qA{tCIbGNXC-Ch4kXY40Afdh54RIfPrsdrNKtSJG=v>Bjgbjh{N#zWTZmV1)_F zt665Mok=f1klZojHS0uP$;zm1fNBv!e0m`9=4z)Y*^pqsyS(@&8?4yx)?khzND7j5 z`pS2*{K{KqmS=~-pz)c??2N{9l%G<)_meg@;1uU^A1E!PM&p&GgFd`8H#w_Olhx!_ zdzVi~WRy0j9NKOiT^$}eFzqgTPJh%M);z&83H-}v`_sd;Qyi7`7%?<*l%Y=d=s9|! z7K>V;MWhqBe#t!ye5Fc6CP7h4oZuIx(Q%|^C>w&X;yXQ>rM&>SEQyL*{1_`D1B4r8 zVXZniDP*#gqO1X6J?r{LW!T$$8yQuT6XH$)Dq#0ho@oh|BX=%{s&yOxc8KJhbB$(H zpz5jPigb|InGE|nimFW)Yu`^a%K^=6ij_FX>s*I&0u^ntt)2G<1>$Qxh|Oos=Y27; z=dLF^E{-QBZpPyASR?`u(GNN(s`u?5t=Bzwf}GA>_mr%bl4o5yAQHwK%2onTkjnyf zCkVTSpEaMStH<3i7$Fbr9~FaSZ<CMcweX581Zjxxc&7A68cH2oH!eRq-0VlRC{!o^ z&!6*;)Zv;`c8vOUqmu58E8pvgZvbE8%|(^4S)V&}h-rHfl19>T7gWjX_pfBX-a*DF z)=6L;WlHuIuR<|~&Z$PfKj80G1J!^3&9&vZS-ksPu$S&iyfkH=nn2|J)649U3)MFv zM&jW|N4Gw}vsZuP-Utto*s;%V=)!=MiqMiyuFu`K(K+8XPCzhb%+tM1FEKp2wmKc3 zHqSH~gCv7D<59LZx(`A6B+ndB$=a#S7VDZZjIi|yY3_Fzg<n`45kofB@Przm#_wcu z3Yfz|8G^Dx0U8Ezh-d+HsYza5YKXAn=%?U1oZNuV13%Llk(%Q#_=>`o!*g*lVy(Ob zZhL)eE@31Fq0mNLCB%{D$eUNUEcHSgQ5As{^93c-g01Byr(v7}?DBB38W#q}o6o>d z<RFZe?2>guL~GCyT1SMuK?7o3?72@iTzL1cG6!8h+*IW~r@^~Rjf|Utsy&;k)ZgZZ z2mq7lCd|boa(cd6thmp$m+UtiCO%)i*))B;U{nV0{#A_L<&6avTjR0<E=lU>!9WrW zzlxZ!>yhtnyuKFSC-m~LjZQuc9;0h>hwfdBUL7_L?f}mG$ILi)aA63v^Wh5qgN@b+ zdmn@israfU7e~uPG6q5#)=XgCJcD>Fvk^u-A19Ne*gA+(fMQ2+#AUU8%QpQ$(^E2L zEqA$)$E=|yH_L_mQ)T7xb%X)g-e|h4S<_RjSle9;-v_qrcA7`xus9E|M1do+99swq z{{5SU?B#M5%z9D^18<D~kl>)gp3j-H3R=yn33-T~6vQfeIYgA_uqq$18=!wRY*o5R z!odFdx};Pr`CCC=$ye5Yi*aUqnZYTN1cWrCfgVWrArLdF12DLa&R9(#=Pbzy<Jl-f ziqeL;{cR+x0aC;|h$8Re>+dIox3NKQa<dz>w4~W&Q1Mf#%jjOUk0(%g;Iw1nB_@cR z24HJ;%pMB$DKO`XEP1#Cn#+=D!^R7DgmsUhD1NyHDm9_U;1~uXRaVur<EQn)XS*jq z!8#?u-$;1$MV|`BEBJns6jcQMTbG^u2@TCg!$9c5v*UMIzDRaH07wxR7)C%>Pw&Q1 zByKUIFV2UN=mdjHcbyX?4|mL@0!Pq_@kV-3RU)tjaMY9SvU#54uBUO@94u1@GSY(~ zIz;fuy%)XpkrLtqOBTzQ+-vT!_y^x&6M$AzdFC@#h?O)fgO%&Gh|nPQ)p-5dZ=X4e zqHe`}*T*fap+p`eA<-RgT*B^OfLo;Q&Yl64v)^B>=ZWknlQOo2Oz@VmR64fBusl0t zy|6x9qX&~~1QLFL0x<9a{>o*RscN%i!wUqjcjWqXkVKxeL#`VWI_Hl==K3afKy2zM zllfZ%>tJ>?SMvkPJ<?rgI;>H5250i9z)<OS6*j5~Kn$3V9_IwlP6fIlnKfNrBi02V zpdFyA5pN4&KX$!PNL#rVBzJ0PfXLsJd%?32=h+<capQXj_z35R#Qdg^Ax<@2!guNM zFgpaB#*s!5QTfy1ESKPWI5KPl#&`nL_Lr_3<$6wJ1jH}`a#9l>cV3S0I*waDb(@TD zY{~l629;QLWzYU)(mJ=)&Kp6VN>9$$Vc05efBl#-p_LELZzq_wVf+z7*gwRH?pmjz ztbjv@USGd<o$&;nC~T<IdAMVABvgi&q_2^Q#k0kNQ&12q&W0oBVH!@+ysfQ~`8UU| z{9$U#9ZN;LxS5D&!#gXbZyi~{|5lKovTDt}0pU)xyirq*D&-Qy52K8i6kJ!c;_eXe zda&HSwE;II8N!Fr=*T?A&QnQ`C^wG`of<e2z9vR-$m?Ty2*9-giuQvus*PjqO~7lS z8!Rg=ZESJ}*Og@kf|xCnsgS*yb6;I96pXS#n|t|A2j+m0d&#~jo!R6q`muoHIIh+d z4Ar>_3S#O500?`3qnJnNL!O?d*k-8Re2?t2t9C?~wpR2A@a<48&P2-D%bq+cv0Gy? z4K00ocX!e~;sUx+?T5q>C+)2Ix90-gHOaJb%{tyg1d)E@&P?D8z?8@!q>r#fN{{)h z)-chb@_7!g@H>yW)$bpX+r!N-@&YQ*R8>>&aO!<mrR)OxZc;JB^$3mZa=Tqn4?=bW zwhY^J*rDyhGRk49g=ri}H7Ffxicppz@Tof2#Ka-g(zhZ(yv5z9bw-GHmGH*9MAD6g z_p@2$1O3_W5+w?{uo;H!am)F>kEIBtutJhbo|3S#b68E3&hB#cW4>SdNkAFhUDdKr zMrmD+ABw{Gq)aS;6KMO~R9zrHfr<Yn_K?a#E)tKwIE#OF`zNU<gVI7@3(;mBm6GgX zfyd2Qalc}`+JKEA`hMjPYkL0i1#dk5N*@__jsl9*&}zmH!rs@(h<|I@bNW~iNZ^gw z;cOvD`kX$nc=|^<;nK@YK;#C&3A_o@0*F7biDge}cVB>xHq&t|CWERrO~nF8oyJ9S z2N=%)nurB18Kx@}@ucv4EEmUvDZtW{n=Od1a~g6QT9!L2CqF9HYBIi%07?r&PJl;3 zkDrP0WY_IDr>>XYLj%><sqf!$9&jJ!Q-C>=G$%?K%J`4B@59o%-b#PCHU0dj4Fmhr zzwtPt#v>2@#tltOQdNlXeunP{;ApTQ)PCgC02DOn2+CkxmwWUSH=%tEOkx82-K>Av z)?qOSqAe<Hyfhb3Dh=0np6Fb_+alt}8J+26HZ}NJk3|=o<}L|9PLX{A7%(Fl{;{hA zm<dkrd{XDa^kb>(N1I3{f@oVw5?`1AH9<I+U)dxn$qf0lKRd8Jsi^zmW}3F~#*Y%p zltJG0N_*>FxLT0zYN@UdW9}!+;BbzadDVwhfm9tB#XxPQ7CN4t4&s-kx!RlPlC8C4 zVvE%|@B)qOtViM5iBCyxGB*doB!C7;Q~JozT_`R1-W6T?EZUCE4>yyLDe_SlrSo7= zEI6~DZ{obWwp>+w5DexH=EKc2>q9EICQ%|aV)Hg@VKkgGD)880hqKG)DI#Ql10?dr zVtL%Y51gb$Md}`p6TE@~HypF0NGu)2nTKs&5T8?sWDZ;-6N?i?*GIp-@;)tApT<0S z>6cHYS6sb(@e8;y_NM>A1@5&S%oH)xFH~VaC{+y@3pSNDnE*$2;fN%K2DVmsB40Sb z;kV<sUIRG3aQyh6ErTLXICrq=ARhW^p$=6_<(+a7?xp7yq+%(&bR@uB$MaXCdlTSu zB(uJ&*t`5@gG|KLY8OR)(O3k)%j_lrR%(UeO0KY4;3}Rejg&M8=*!F?)cRAL4PZws z{YY8khd3Hk955z(30G(Ao+FACdt>Gc*uN$4Q4j#)Fp04fO!~OEK4D6(sG%D*7gB$? zz5zfV;tSo8AaaUec*S2nfVWd!mThD(fU&W8b1%h#2nmVM|5NOg&9vsiPA4!8#5T4e z@<&*AzX?=Y(w|nFpdPW7SfLENY*ue*W+Q`WoK!8QR{HbA_)(`esWim7so0U|X&g@% z=^2SK7aurXa(T9j<4NtARc<{^#m{XeM!im0n+oTzR~&f)k6c6{$U2b(as+Y1cf0_Y z$Umw$bVd(BBpA*1m6#y{86Z06L5kcClWXGB-_9y}teq3R7R)JqgZK@rR(Ce~e!vyG zT%}kUU(?k#X*C_8@GC|Xzl(yX(a-}4xp#os$|QX-Dtm6ZN+L;}kjnLYSg6?+b>)}{ zw%I=cIo6!Lm&7J6C$VqAy=gol!I23VDA$P&z<ntW0P^w7SlWE*vDvY7@ysMn&tlHa zy9hkds(N_^nat*ibqvFB!P_Tbkk`)S%=IqT>n_ps-Qigh4UG~z^iu;Z4?MWqVlRFu z0vxnguohb=plV<L*hu+8)g6>sCda<K(R?cXcF}!{y{DYrdT=th#okP6zbp#Eu2iJA z+V%{k8Aj5=tj|T`_jwnueD^gC7#Aqij2Ia!CI>aJ&^Kygajdzr(rVepGqkQK4Ka)| zRL{b9ai!|IPt$WJJh=o278^t)ZPK@1!(wCdZa>gWK~S?!+05AEMt|YA2{6MxA`z~t z`<>1iSWa<xom?PyUV#d8H78Tp%MS0|)z&(KbcH<vgDaP;ZbK5IlI3P?bM3TquYJhm zaWMbHwh9uEe9hdRe>&3roV7Fh`u(dO!Fc{t6?m?GOtqBmi<|797`#d#VmgpM5H<Jg zu9t->K)N<Ps475qbF_+9sDdyWLLy;jpa<G|`5u&L@~Y+#UH#__yQgM65(wb5u#!CN zEAT_GT-I^brXP38pUZd2hfj?8M=<VqGygNijyE}~7?d(9iehgH_??&8ADEJfR3^%@ zM^t`-IJ*Q7`$S-4L#5C@Wlbs4)3t%UU6gCU1KhZ9-ZTm5ynX@9@z-nb!b8UxYae!s zz%_n9dW3F&|G0SzAKvqvM<EI<>l<(nyP@aL<;N!7BTl_c%I7jC%+6=SYW*o{WQuJv z%}Y&EQjt`I7mx}h1P8Dil0m>lJ$LjBSO=)2JZE|aBp!EC2?y4{tWX-2;Hh_Z|8yY; zLV8YOu1YMI8O~MrzumXo6#Nd78wj?SO|Oh*wuVN7Nnauy%+iTl54s)|sHCRhVhKlS zbonoasdK%Ei;TxwhOPMraJ8cyB0qOiRiUC{aLqdMluFH2et$od{y)p3KDsfFGM?7& zk^U0jAsKS!E?3(@M<c;&5+zM|MVK(UV7!ikM#JAox4Wg!k45;C6C0~yDd>LxC#I>Y zo`QJdnP#yXN5AA77{f6MqUNXg!j6TwaF(zUP=Zpg;pxCM2K#4-BXZNQql(-4TRAI% z_JAuBzQB}IkK4&Yif&0V@4C9&7ZSDf7j&|KssKvNnE)>MjrtOEeu?z1{>y8x&luz1 z_`S9sxFJjksW;t!$F>?65{A~YzmeC-YnhjKl-8j>`}d318+rrI#=3L9`?T_K{H<zZ z-S6Pb-{C5#tTHw7Pr9k(PpVgCeWmH|dxRgwb#@_Dm216@SY;Wv8@SiH&IN8L;Tn1! z?l%E`Hpcf7<U9hO_Rrm#I=`s@){9-J8*kb2UtL@<vi#1LWx21cHwUjXGD?kG3F=vv zk>pe*TI34)!bACt&S^y&S(B9brKOQGlIfwl$(LF<lS#jdHegsN0^t}cqR-JLOM#uk zc=^y$sd$i;rZt>JbK{6Z<K|#JFePZktedF5P81{pYhzWQ1r1`&db-2SQfmBP!ZMt= zlQ$V*JNspn@vXY`!fQEAubv2gcr*RV<Lsu3-&u!^O<#^zeEP?(9(er>(-?e9@piT@ zwKCrKZxzR0?rGb<$G`NISRX$><+*A7<fBhMyRmPy8UdER6Fo)#H>d>lRWOk5s@P$0 zxVcrv_EIogJ)J#5qeGeS9FB+p-XSlBteQMJ43fsQXVOx9Aq;@<Fmw`W17=ah4dZbJ z>7JZq)<ONE>|@;x&md@+ByowQ4&U9)TOJdzs6y9Haf4H|pd^_SsWk)BV>K2@UQra0 z0I6!|dx9mHhukE+2zzh%+wEfb&$hYiwG?un_=Z24S_w|Q(dsl@v^3%M+!f5H?_S@$ zym9%X-Q8wYZmKuwg=Vv{3#0^c{WMZUX)7+r=;4yh*C<w&3uT1&UZ1QWeUCESb?j-| zr$iG){PZ>SU8s1duhKUILJ9D29ftC5MyY$!z1!^SjiHG+V3Ga$d(>}W0{NxMtVk7q zmUOS%r)stJKm1?2A^sR3U91Hv$#Az%Mr9!tov1tj{(N24jRf)Q=Ivka?Gu8_eu<*t zN38}A6{d!~lY&QHdT>MOG6vA<-hjPv;~aO%&vBLSQ^w+>#IFVbMo8<LO+MP3f)}If zb%1BSjj%Z0el0c^{~8p4OU*vfP*)px8{|<@HM(=-tW~L(u?beCY^2gDLo)(f;<?|A zQbUo}MuA)BEJLGCbM15kO7b$f8ywTpaKe_a(=G44Li3c_hz~DL3<V}K76fRq6Whj) zQjZ5mFf6=?{L$l#0rb)F%<EWnH4<!&u@_NmwE^w9b>_wHyJ#M93^z^FiFoBfaFU&o z+WUEKQN5n@E04~A>!|o)NdwnaOQuKdtpLUuZJcBJWdR(h{^DzV`>0gV-S6}<$b0aW zlL6>(w1_23ty+zv;MrdXm`W&v$*P=PY6-GKipJn~<#K17N9qSiOg&TkyFrQ)7DKM3 zq+3*1&Nt(N=MMLHpKaQf2pML--vJn69`i=lG@SDLwgG}md)aTeJHZoIiaIES4rY2T zkVg;a_qSf6e5p(W6C@|`Xned80Ctn}uGXh)?rd+ApLNwu2WRsE7@VCp*NuS-dYRNc zbkBJ<qTqIUz;Lg9_Hge;+kYsIyldUVE&2sA&!uxrd_G#&R%fa;%aJ}E!ydh(tErbn z31Q$~l7uVGQ<+d;dgke97lrJ>Ee6~5>|}@RAhv8{sL&)UKl=7xJO6__<j77CyZrd^ z+B*+m@>8)C!g4Lp&aCgkY~lkE$w&u0dj9>``#_|>f51rVJK=r!Vc0%I-v1H2kAqFa zsMs@>!-&_(7(e~#R~S7FiDj^H6c{_3M%@MhEoL;onB`dG?BY%clSQt6N+RTOC*8fz zhB7k1==nKg7Zsjqbh}Y+2AI6oe%iyWdb6uN_a+mZ(F<Z@nD(30k-qj_8|v)^Nu%7! z0|-i{FQ6lli@Oajc#9J_ox2-YE$txoRFU>jxOJWxbTiqN+B$Suhs|a+!=|K&b_*5V zX<rSXC>(PW#qE4jB85H^#oLS<Zj>~3luE?m^CxXaNBw(Cn5Nwu2#@+Qe+y*ob=vsp zA0NM^=}#{PO%yUh-U#@J5nRxxCMO9ew$G+i$`lCC=X~pIVWH15i{E2<T0hZt`~#+F zVlt5&v;5X!fr46)aZF>*ol|n^9Ws%e)M=Ubk{7Zy+Ju@w8ir4MeufXFFlwaPeL4qK zz9K59u~Dq4#GV9Ns+Mjm`B~kyzS)zP94a0>-tmw@EIO@BZ{+f6gLfK=-kffN+tZqt z4y#c0p}!>4VX_G>3(ow3*W$4`j$j{*id)%DVOc>tshg{tcdALFq)0u=L@FjnxfyOW zYq8umF~8=#cZ*l##X5xYl37xe(iI@#Fiiw`y(KdaU09ynjVvfYyRvfPxT!H}lwtZo zNV0Vf$9HQu0PpTsQEq{j7<C>8a1@$B6pqJu=Eu9kLH*5V%(3p<(b<p8-S4U@^8r^; zwXa{?)g~J*xqhNn`@}<Fpv4wpjIxzy0-z-SN0tNh<Ref!i=g&uS4_n;Aw$1s7z^bz z#)+)BV+vTSQNv}Q+|)rwECbw?90d>6#;rc;>SVJ8TuUbg{5R`x8LesQ(ho6wF@{M} zKPKk`(v@i?fmJdQ_#gaeOO~<Q24i{&bw@!KN~CV#Hqy3v(FO0){ej#s%-KM~45wm@ z1*c=)&BN;f&_~qynE$O(wi8HFPJ3^3?rWL21&@ZL#M>D5M($1T1s{L=R(|;l(Rl;G zyhb4z2QS4g!Jwe2#aD3+eAAGn<t3KjTT#qQY6h%PaPPf9ae!Z1$~yh2Se1*aRa1kk z6KJPe9GSarTGjl5$+(v_1-T*Gs|ne&4A|7jU@^Ys#cCl1Ycw?JJvepg5*1W<iM@*Q zh`GbkhLVoqEpOqn`sRVC6P#Ngzv8*+2lKr??%@*exo$!1_58k6%ZI2vL5p`A$9rjl z{2xm0y^|&%h?P^a{Y~nWV=vgTzV9=+4s__)NZ|`aUn94-(Hg(4Z{x~??N{D`8(a1q z%*H=UGBC3T)c%a|3sk>nwED1@2?ql05%=dl{^9wYqF;$k>SjTBt9$j8=vMpH{u#2H zdks+C{qfOT$bCN~vu((ZH%T|WRq03Ww4<g6Gl|h{67+;GBLU&jozVBC<ZSKWNc86z zd0%_s&~b^{GRvc3#ofoe$_<iwTS5ZLAc!(f4=P&MCQ7=N8d6JNU-Ff3Ix3@xPXrUd zPdvTa#%@0lg#f{bTKWQi`v?_(6pH<*kaDN4&OMjQZAdNU`Kl!q3(v4vctV7TFgxr^ zFN*@eDEM@euVv|;E?_AErO<5(Yk1W<RD~VLwj%U-Wk4)LImVj=!ckYNt1*O8M(;f@ zw(e^Gj<~1-S>sbMhv4Qn$fbR**c;g~2JsP-WxvJV%znC87f>blmY4Wm3}?;-oD}Er z)7gN*BY70xH%RdN0*Pd`!V;Tt((k22vtJ0K$`-w9AcQQ8&_sy}oIeC}^ICfAPiO!P zB-mubY8~v??)v!KOUE)su!$}ajbZ4<p_}qQAxtF%(B>xgk+U82Z^3;-2$z$)7W>ly zj_-5^K;N^%JUMu|{b{z4fdbj@sI}JZ|Gj+sMsY5X!8@DlF7<sC5amiJ($xyte3HLZ z35bIwhG`l#!(0I%9d0oKaaqYy1M-bOh>%5;MgbuYZnZJm0_JO9MFNpsuM)@K>1}wS zi&xSDF%#TKmSD{)2E;%8lU^0K_zhKRi4=0t;SOwwet!?sf+qT#|K+-PSTR3D2)pKE zvH>uux@=l9LdTt%09=u7&dywith?$U9xytaV@*TS^BzH5F*qne|1TdH4MNBu4@@1z zPsqm3Tj+u2a{tT0D2qUeNg7Y)UgEZtFMd1(q2|eMHSh$X0dsfL4R8(DVF}Tn=wje0 z#gM%o^oFH3O4M3a!lya;oP7J@WRH7})XK2rb0qLR6L1%*dnaLLiAXpk%8IZAI+a;t zCi$+|!)g`Lbib*GPsEB;OEImA@~R1=bieum05aqr07`%C2^L*!+cJB5p>WCmsR7Me zj|ntrmPgW!V@bCvOYBkoV7xGv4gT&coqOClv}Zk|TT*`YcP((T^N`P3R^-}!q#`J? z1r{MtWii!teYjmMw6E`J{rGT^n)er;yoiD6Z8E-P*Z%m@MbxZC^M1_a2mO^H{^NTe z@BKu?W_7EXJqA<HAa7n>4KLZqo2QgEBJ&QeiTBN79*LYocuzyFVO~|+g9U5%i7(9w z7m~Yt>N|4^ES1!*8A+gOK0|w9Va@L_spo=F5=DVU9LZ~LbLm@4$1+AM-xZ7=h2mGr zs1Z@%aya5D=%InzMDkL=74wGV!A_{Bf`pcbJ&x<QY%W;3SvEE<|6=&aINByKQ)dCD zdoB0<rP)?D@d*D1(eQ&-b9h20^Q@09ghFJYA?T!dxH?pJgi`bRI1^p8I}5UIq}G|} z@7WJAqA?WW=9Z!vb?zZwcij8Xn29s+=F1c9&sYZp*mpnbeY-U*qK8u1`x%QqJ=|!z z<*q{v!gc<ylC6s~zRNR4F?1{Q7_Ok{nO?~S6Ah)MeOyn69xA<y9X_Ts?SFueH_of- zooC?~;h6B?b;6wp;Gl%gO$bIJvAbvG{h~HToX%*LR}8T?B?-Z~_b#d6<+GdutR!F~ zbjmiKNADp`%h`LV0nr{>ly+ncVz-NPnIGEGIC_zVgt~RY<&iCi@odJGB97|yelac` zy|t_V)%yW8xRMgxd06zU50lVTuv)y~r3gRAZu~jn2Eua>9&n}2JGX&d$*at(p;{eu ziK|!c3>|MdXX(70)}LObx3>F1E;+>1W5raS;shLCjJ);Xk*`uB<5~FUfzJprWu`K) z|H8cE@mg@Qv-|K2-nw@7Y>Dm}Y3_V+G~}gMRrpj|SC{5=KQ)TEnjNNwckTn(K56jr za0cUO>N|D%xTmrG_1AB|@xhyRg8`?6`0&a6o#F@~0?j3TEj>>2f1W{lrtllRXUz#c zSF=Mh`sVO2#vGgsqU~y=2bg(3X}ZB!Wz`oXl@8jW%K$$>z`v5mD8qgW9f(FY!yP-O zhe@=fa<<ja3!gtTHf!HVj(jf>`#d=@Id@2Mt<0I*xa;-VRcT%5rz3%0;Q4(jSqTLK z?)3t_g4<El>n_h5V2UONQkuor&H&#wSsLZ6lt5Ggac1f)oP%!X(lswU45hvF)30HG z?D#HT=*H{NgdDOQ(hRSfu=11ADDl*()TpH*kE|o`<h;*&A(B@fizVU*VTtGeW!Ud` zdB;p+;c~c|p(^W-tfzcEnV-uVE|Z}~x23j}<(0a>N~Cn)G{Him=q^uE;)w@=AbL`; zr0u}bupmKAtIly`RMA<zIq~jKO-<d;Z$lgA=D_<FdiU-&`@Q?`e+orECJ}Rz^f*4@ zMo9vnKma|N90xASZ~1)T^@XcwF7D+b=ep~WFGP7c6hL01bDVgGh7E-^H?SIDeJ0Ma z4F>0wXL@=-N6u!Hs@Blxre1mK%`Jw7-SE*JzbAQH#339UOs?%-O=j1ci)I2`r?Pro zNsDn!T}E{5YPQL2q!_$4U5mz}JQm1aq-mhR;@}sU?DFUUf2*oEgnLR?ztsj-lcB0I zY?debllc{;SMSsEKn6?c(WxrlI(w=D3Yb+W1krU<>i7abwK^Y;-kayk`R)aej;430 zC&bU{RC!&H`D(-vPt)TV>Y5azK~Vsow|^ejI|64_!lJIqJ>p2lur*$ZaUZh=8h&`D zKvN`FIEZeQkmWaDsDpJ?HGu!JUajK}5%&$7LwkyO9ui*6W3Ulhf3SdB*B|3VNJN(8 zD8IWZtNgp!8QR{0zo=H;#2n@-;@fOA4y%+Kcs1t(On#}75W_qbr)AP{6h1r;3oJ@r zo*>3$3C%8SScikW0n340=gG51niiFMjazdwuzrX7MuZ=}jCv^EQv^znH{4qeN<k=- zxvNH8{W81cr5u4#ehZWRIaa5d(tenecGHjZO0j1m!gk^IDjFu0?}1gHpwlJ6MV%u{ zG)*%!($j*1n1Taoo>eI#;JqH%HgVIA;*^3?)^IM3t#10h%cPK=4up=&`1$}W)l+`S zizr_O>UQ6&>HexJ!WR0$A!wnBYQWVsJr7abvw<?JTqwY+uhma&arcqhRH&pcwdwdg zU{}2T+GVQ0`cdXo{)Vl_J-d3tX4N~4XHNOg44wKjXGoK&AgNqJ*4vFME8^l-RnNjg zfiWI|BxUR|q~FwKB`sBF0Z(8s-b{hx3_$2K3%F~QHq)yf;lfe9@9L0DvC&3o9nI9D zLyMo4{kuElL=nEt>ab+fp@S}T+2e>B0?&{H4wA{9<OVF;%LuVN6@U?oGP-|V=Q<J_ zHa*(JGW`jINlr#t1sFr%&&u>}Qa}W&>a+r|%+I}KdVABxhB|mv!UFm-Bx0R_m_Rpz z;G&szy$)rPAMu}CAYO_$15i;6$KAoiUT(Y4kg9k8&ak@T7QWJBu$q=xPN%_B(!IW- zZDKzWbSSL^93rF&=5c}hmwggF;Z@<IT27=s6QpT2#_PL43hkj8vL`Cf%8|f(=b4nF zw*rrj-?_E=$Y<$3ds#yAEi=Ppq#XBm!`=oc0*<Nqi1|YTq5TF!s}8>8wHU0Vc}+>E zA$+kY0eeVxj#3|DyKF2$uQw(=7>ZR_kHC6HEy-vEYS~08r+<x5k8(1Onm)tsGR~ms zeS}6F!BVByu@n-cmEB=dH07zSKmN|6*N?yZ&RMLnE)l7D&KO~(W#BYJMDTPh@XIn2 z<sV=l1lj-=4<kN>a84s8Twa|;6;cgmR{GqvsD_|qk`=44($eevCk`L1r$sbZeF!2O zdKfV^)HDm)Aak7s9+P<^%NNJiaz}eWP7})>X;pKI;ge=fJ?Ei@c!~+f+@?AD5vo7G z_8jfVRLUGx>SSbb`CZE~wyDq+_uc)Zz&&^mC+cx=e{8{PFX0c1`0dirT%my9#YRie zw+}cVssXe=(xUk1hYr0~{E|~w!X8DIh2^Sv={%J9Kx0fVnU<f9YkTK5-g9$*m!11^ z$<mA^pFLYoyt04poqvxKe|z8z1-ak0Uf+X!2Y|t&0;UvgK%^Lnp4pS$is$djqmSn! z02@glileI<hQ2m)l)D&%>qEoZ4^BY+5`FTh?Hd?G-!}0|K%%H}YRpn>b>6na;i4G! zZAIjA3ehIj>hlJH#s}klBt~}$J1Nlx%}7$4=v7h3;QJsA!UkY3IAOFl6OynBNHD0| z*5+Hspp_%P(86kb<}1FwNlf)jO|gDjFL@OTYCAxDXNz**nAGf7nZeacBf36qUZCV{ z5U6D~v5guXs3FSdPpZ4MDqDjfwFgYKT5oDv<yuq>@d}|5NM90=ggSj)3K<aXA12wn zxPg<qsxQC|mxM|{6$Sm_;CsC%_kKT;vcL%Vyy{^soKr1}njarHQhP^CQMoBa4;=)o zU91aV3RozlD6yCtnTin~U6O-P65V7jbtns~s_(B_NT0(>zy_?>e&C6EC}ysiddGe7 zIL6S0U4Yx`Ml}3J#Q9ugBts2Cp!q52sXKQa=&t^n>1p1LAdsv8AW4WZ+juuJi~tgU zKkQfzFQ{g-#iCv~Fz+}&`l6*rjmL#(H|vP$b@v?nn;*H~O+<GS9jSR)AR2M9o@Fq9 z+<kFciet6zI_ckjWOy{{hj>-Et5`Mf`thrN-^5zO2Euj)O@Hs+DQSGbGQ&eBuxtoJ zu5F2UrSnTT7iFYIMM>j$L@=44Q~jTZ?z!dj*9-0FpuE;ex7xTh1q4$V@$g^h^D$b~ zF1OhV&PCqUhzCZM%U->!UAE+-p2LQ$I>RPIo^hfvXrh?PB*-x-@1x>9eyp*n0l8DF zzRb6+#ABx>CzXbf3Pjib^5|4xaivB2AF@;C6_JVrP+LDI<#wtp96t>T4OH*Z2mYcs z(c}par!(=;)8!bxc-#lZ&IrBT)K52l|I7P@)@pF1*Z+KgTMKU%=P4aq)O3oyMd=aF z8GXDi^wy&qZCw+uoD*`v7Q=)Y{#TjGroI2$db^1;>H`Z^*G8#vQ=iCpa=|Q+YoF0_ z1GGEAC`-jQt_~(hCoQ%Rjw-pL(W{@o#eALdma_?A3+0|!(O$VVd^*V!uTXD|pPxIg z+kTlRD{V8SqO&>t<N1ZWX<us4hR<E166b~M?q!>~qYH{fGw>ocq5qIVjXRtoX7;m% z^+(;96YQ_VK}c4m(W-4;MbXu8f1Iz|Ka7bmt?r)bkw%wUV1}bPO-6h8+n<|%E<{=9 zbA!(^OIh14;6s5}%AV(9k4<#y)W}FRwxHd#?K;NS1h1tIqWE>R+{~C>Lu=)q-;C8+ zKU<GsCO4D=%&gR{MvxwPC;@5Rp#DcI#Aq5d7K2hsX~(sbX+JsV^+H0h{gysTEoaVi z@2d0uJ28HR?eP&0)ZxR2e|P}KG=Q}>Uc1IjfBgCf_0WmH`H$byaez$@IcCIDf6%(C z!JT0^rpSeH^Z?GW$u++El!#5%@zQ6dPl?4CxHFUspEZ#T4QjbF3wO(oo?UZq{%%v- zuO?kFPkmxC3Ic;KeSxI^akQd{CSia-Q~eJLroV*<Q&{Jb#!4$d0HutfoaN9Yx~oFF z`b$SB)V|8D*H<LJbSK4iQOI4NY>zSpSOVz{w}|cRv4&#|!qEp>L1h_55(!)O{6D`< zV)VFog{5}U*f-iQcmljis?j7Z=@4H*$JkL-X;5^frW$A*fLvwHbcT?-v}&rk3gGpG zMNmI-uG$nSa4SB0YZ#8Oo_H**mq;G4A+UAs@IpK(K3Bgh-qGE%?z!?d*{shqF$65- zx{hFVncwms;IL=_=O2Y=m(w0aLNa(x^6|+)a0)nXyIOi%*SXjiHhHkELtC0jF+Glb zRKk5(r3w`vt0s4Ppy4~(E(gMIxmC6@g^(SuNRC07646e;NyDVQNPDam9MtFq-m;Bc z9yq$RO6we&SPUg2t=M61(KDwo7okytH!wK`(-q&gIql>GL6%)NMDY7e@yGGq(N_qt z1}zY!=djT`Kz?!IpaSiJ2950n;2P*}<mO<*%k$r;w3v#lVz7}@r1@iX=x%VM-hTE% zaKy92=(pQN3yFrY*4hmV|0mB(9$E2dx@r4k_?KjYtt?%PLX$$`HASG=_M=`)bn=eU zLO)1ryLO(6%C-bD6Es3XQ2846L-i;nHSL|+_13GxI%Knf*f2L%^n7}GY4{vSBU(FT zRz-SqxX3ro9k0DhjbrHjG8Bg>xzRUahc<5g!Fk9K3cG1x9strBjc>oqduND1!C>*N zMFsN@#$)0X8$>3XW&f~;TPkQZPLKis!8}OV+%*0(NB%>#blOf*l9WP7y2z|Cypv;C zdx{qpD$1K#Yvm%gzSh?;-7|mW@Q|?y5UU>}DBIeoW|J>gDy6ojYNBd2gK{!S+<4sA z@5ra?c-KA)Vq~oaPmP5TA~?EeK^8_&&!8)!YJGL}zr3*>L-HXe7=-Rfi<KKm4BFY$ z)se#vvf{gvi6rAH_>Mi5mbgj4-1sffF^3rsWY#zDlFstV;%S~rHtFy_9Pf<S$Xb?+ zsiGJ_U{X=Cm&=Vg=piS4FL>Gpt1`z}JTMxs7b@u;Ea6%0H3^{x`H=W?{hA#3MZKt$ z<hOQo<qf=8Dy`F%J~uE=A)O9PCo&Q8YQ#qgC1Q@Q_MD0I?HGrT8u6i6hA`<6>ch~x zJRVlTQBKjQUWm)Ct;fPve=72WQ<2W+7lNm#=#*ph*W0qBgq2u2mOGW)_bSLxgej3= z)qoHy=(MB7EZ~Q~AmY!+HzanTg;s6gQ?#nsfS^*#xa*LT(csWgqvL>x@?Y7lo@*~M zhgG@5g$g~Ew^i!T$tfHRvfvrnAICuz%QFSCICi>BxaZh(z~3qdP(D<B-K{tz`_T!z z3)^?vXN6>8v8m!k#s@d@dUU0#9zL|~)XB2=t2-Ue@Fz@`hw%2q$Lr-^JF-uIA@MI} zFEZy#if5|{aTnhI>e{{L_WSQD3Nd{TpTOAJ&iNMj>R0rJ<n>o`!AE0$=O`~tW<oW* ztvBgI3-N$n#t?l2E1Cw=oB>L=JH`_M&v2C(MIy2d&fAbUdZ)VT47-T;?oGtp;NjuG zqEH4Jzv*gr%G$`uq+?m8|63!xL<sV0zhy#8!f<lQ6Za<xkKaGI{i7|sE8%V9OKZP= z!KH5xil5y$)Hcn_KH9S`^N(Ba|L_m%{>hnrclY-V;`6t@yEIr^O;YjWu(z$qRu<y= zuCRCbe|&59)#NaMQl(QZa<HeRRjE5ifca?WC2E!dPFYidN*QvitW>>-KKYTD^2*^| z#ID|xzTf46MoV?`XAIQ`uYopdsIvJ7%sZE9Y2a8*l|h==Mn<JZ-<_*AXM~@`me$bt zT}?qS`lxWBE(8SyAhi6QFVKEPnO^i*sh5OBVKP>4sg_7FK>-JgQr+<WOS3LYomE>g z98urX|Gf9ujPeD`-h26Rvu0m(?XkWuK0hY(O=}o4tbUi@nOwW{^Z#cf-;_oJEOePL za%4xVM$j4lG{tEvYN@AfOv)^<HSB>fcd~(g{3dKXi~kWpIHE$s`Dz``+(lG-`$|b9 zH5l7#CajlHksKH`-}@~=cXEgxhxK|tAf)JkgfB2kOEMb_Su|9_r3@g5m=9Gt!nYI? zjTpmV{+3+kA-!Qs%w|h<>2GTdQascc=^$ZInS`UP;w&milQ04OKoGPD%+9(gbv5HF zK&gjlNG?nT1iKxk7M4a|it3_tBrF=bijp1L>hBd66QC6NfX*YRehdFXL4;<F5;s9> zrl_22mR2bCi<s^6;Ed#!d?g49qi9$qo(f1rlTi3gLY7!Z1X_q{Nx)-*`$a%{?U&d# zk+3D45M&ONGVgB;_)BlSbIki~qYu@3gOVuOr=T%d!dHU5r69m103_KT+Oapmu}1Ze ze#drC;Q--jC>jl~X##&rXv?}?Sqm5`z&ebS1kr3Gg2&#(F9Hy^2+D0n#Rm)nt+Wm` zPKyr!6aXl_;tUZW$fy<TF35pi<0C`@HZ-cGn`KM62y>0(ieVlF$nX&r{Xleny`_J= zl69`1E!xSKj-Y8{NjN)F1(Y+}v^b9X&sOi&TaJ-Nl@C(-xm86ussMf8d>=zOZ!d6q zb>0V~bo#G9Ao=oqa2~_y0lu*9<A1VAlS5ll>m?^2&=W?9lhM^a@q-jM+^SS6RFoMx zf_?!;N5C{jD#(;zES?q8E-7CS+|Ei2iGLiCkWjY~FC6{hN~iMz_t@aXnhCnZ%_WD> zU~IW#!zLy`Ws2&<ij^^HYJ&0_g63aS?vdG1!AQI!2|CG>Ym|V2+lSq(h+0LovtwV) z@bL$<@*`ref;=&?28qOZD3tlp6uC1wT_&z&O|Se(&gX|q^fk-QS@ted%`!#TLbUx+ zSj-dU5Z+_?2{6I`$TjQ<>|h(x`ar;B7@WY-8oOOI;oNdKXs?6irYd=yM3Oo-?(D<O zl>bO`(R@(A9&b)N+zcGvfBMoCLG{DYOFXXoJxad9GPggf&~*Ojqp=axKGexD&k}Cj z5~N;<{&;*&BRi61o|vJ<wwG!f>WU&B&CCo@_sHIO+rhUp=U!R?5BgC(cw_tClm(12 zztQNj4b&*RxK9Oq^76f?;V++UGw_>9SUIlW7<@%fMHVLGx@NoK$8^KnPd8}Xg`Qf= z_}1|4qw;SYJxU}e+a(*!G>uLiV7&q44zCwSXzpsTm=m{KX4Xya$1c}Go`dM*n3!*X zj<)kiZK{FgQN}kIp41Ib`DPiy*<(B|sD!i~IrL|(#cBhTEN9j66XK-Ts{;p5V~M{0 z`p<7@p3u8R_K#ns4xVnmo<KZRErUZ3xNi>(Y3b-CFZ5oFe6G+0(TznxZ~wvH-@CtS zK3kCKVN37X0C(@QyRT5#M1TGXo*|D)XMQcZL>R;=ahxBH>ScmKjR#MiY+!am$}l3v z`BZd3|KvK3h_g%9pfRL*QkhBfF_B1Jg1em&X$$Q7jabRIEqw~DIi*tMy>hd+ClF@` z_z6{iL7&{1FTc#%uLb+c%cjSuqE&FY^2`dh*?@D{Ub0c)GHCjEupH1gKeonbPZ$~9 zI_jYkqMmL(QyS@>b!UQ;L70{rk47<MD;t8kQ>!#rx7Kp9B94$k+v^EN+r`w~{ys|{ z?r?vzWSH&n^K<FHA8D08_5py8gPbWZ`WgnuU3n%~uM1dURTeLD=rSEgCt=*7oXe6d zOG=%tYgFqhsv!eyWlPO$30nJ(0gp6ua=uxJA5~(u>zAv4MQV~N?81OO>UN|3V33Qj zTV#F(!{aHKf{=PNQ^NX10&|^5zI~v%>(G*R(r-RoyLkOw0{q6GkZ<bwnae2bN4bTO znetBub>a4{#Avwx^TBPoy+1uy^wG@|R1N|fDm~|%cnngztN9YN(~{KjokMJtfDZw7 zHUv9|VY$H{x{BnH6e0J*Gi3q*!!$2-#9GkAuj!s&8G_?xsL)BoL|_#Gz$9aA^51tp z*)5FX_;HQ1zcVBcvUn06ZSF+zRD6nk8Poj-AA3Vu%4Ol-7*_cjEZAsL_V=uAU%VQy zJ2rTFAnlG#$SaAAkn{<e4A%MK({J~&feKKB_c1qrWHJ5Ba;Q#p`XU8jdEHzdmGNkg z0WZ+{-m{IDr8PWRv%XlYa9^Z+*vx)r6y@MV+}3wcOI@0{d^r;dats6np{=L;ZQX%9 z4WbUjQMxC3=|Jk5r807#ja1shFlFKa1t?}k^EeMpok>}+@;bQ*L@y`wWW}KA0~l-o z2g(G4JOPmRO5{Dx|4-tTEEW-}v$VIX$$#o+XKZVb=dXpk3*M1E#H#-v-ot>a={=8F z?ZxE`CzIiL_4hDMm6l&r*snlHy3G<f1%hd;tiHcj51JZECX4Qx*kKp}P@uvLCqHwf zxaUA0m8|#G{IWvP<`;CAL(bSmyXfPhYnch{{9sC>UpSZgvd7h4$UWiulJfoQQgI!R z48p^n7ReIn0nFDNBOpNiPDYwFzr_ZCc8Hi2S!6u1;P7<Q;BlX9kVPWD92YLOi5qn1 zt2;F`t>imEVg<`qvp;^8RUA=cF+GwnbSEOQ=ncBTCFfPk+81!s{Z*?N<zHZYN0YGE z5NwkCbfAoV7{st~p$=o(z>A(vKZ^Vmhl+L<jBpIU9;Od0{1P*^x&>hN#Y`RHP@gNH z(B}#$^tpoO3Qg>n)l$Pe;4j#)g)yE;!-*fOdp8(T7NtGlRIwT)o?=MxRJS!<enaJB zlR2p+)<RtD9S867k<|00=1a}#4BZxXj-xjl8A6)u9{=MH;{+ww*Yuc&(oV{nPdQbQ z4D#u>1gk+aO@VL&6$?!70;80~ZE|T#9rp#v{4Du-p2c!VnFs81)_4jZAL@^E#+-7% z2ZzRMtF2}mH<pR1{|zj=zI@pz$a3_-du?Y5uN#BMKhDnJ+iz!)Os?>|^G9ezRG-)4 zY3wR2dl3?Cx)*zzI?m2zoVjFKe0ZjomX$vayC<W}hix(_CqQog&XH|f(_Vr`A=>)e z6Sy$=n#hC+WmC_H+8vJpWPT#;UM|V#81A900XhCYRjbv4a)Ya5);$Y?8ek;-bG0$6 zhQw*&gkWdz2AQh}Pzr?hpywB3Cv-{asp$EgEu1_CTFm^I0*$1gFq15jbBQ3%V2SiV zf!?`(>uf<z(alMkys~6gqKr0S9?iCHK>D{Rq>-0-c9|T3&X_nhLs8fpe#>Q@%oyH0 zs<|RZO+LK+_?@%zGy}#8CCer?=f)q>{IascX$qOfnvVlf=-X@*@&=CV!8P8FCJR(8 z0PP^AgI^&1^`1XQuEA8OlxT7ekNpcQd70J{QVnHxhxf-C<W-lyJTBfLM%F=}Qd!R6 z1RxZa8HFbQIhvLi5Ihi+G~odmJE2zEzT;vLI(p-sx4Ljt&W6J@K(Rl;_p~mw`bWG4 zMk6~mRJf#7X)ky)H{`GuRb+ntq}K@EE&b?x?!;)U@=n2rD5FK@lu|~29SS`h>e2-; zFJV+VX21J;2EJMpwtF8E9ZUf&=xd6c`XIn)-uEQO)!YY)POKQuzTDKc=qCjP@YRl^ zfnNc5)c)0<ZdxeMp;WBnXa96GdHE9tzS`WtHr11p=sr7C&0*FO|AkEl8*1UrFeBIC zL5TR!H~!r;bv{E|Le|pWj5b~d8XPs$w~urKt0cAxLgmX8&to_dN->`a1t!B<G@Ddt zBTB<59@nF?Z%fTxu+^5HG^x$XFkLGx5MZS4;&e7@4v=41Y~erGAj_D}?YV4FI@=6R zvsqV_m90$JE}NCPxGc=w1`{VMS`nXzO(o86n$d$DJ}M0}AWpeYPa(K@GhLL>?FTS( zqiK2F_B^K~p4p#m!bCludx@#Qmjj=9zr8+zf133Al^)(`+qmBhK!{v5-2l;rRxk>u zDGxr;7o-#_`$g_e<u=pgrbj)82(9Rx2NuX^*)MFu%GrZ2Kzp>Y*#Y7RG?PjakEI3< zU0KL=koFjQI@25{z7Le=A`iCnw(mqw&jytY*>HI3sTv+y8Rx0W(>2#cqh2gjZo^+I zg0#{7%rW!1XYCeVT`AbNyV<HNF4ne)MX=3#0xy?a!Iz$`%AX$dWByaFAE6Qjx`M|- z6`1#Bu511Qs&DjwurLh<*I^H;(%`WOh7LvvhqUf#&G4$4o$a}FwFVPYDaY0D5*QHx ziRTVPVSQc=>;x$JU{$>V%Lkh&@{tdD{ouEN;g4jn9Lz#p8kcG^04f5dZg(e=%Mg~Q z{DWe6E)3VFG*al3sI;CGxG}nc@P_t7mvuQVL3gtqwzAV>TVauKF*=*Vd+5%cHTs#K z1^T)_@g003Oz;>;G<BEn`x@tbyJ2=|3ye`bL&O@SajuJ5PT>vyDeY?x+I?6`vNDP~ zO8%;p^H#j+ly#cUD<kNDaeYB^#wM=x5GjQ0iVd3uSGxIXr)(J5e$Y15z-zq+`S_wF zvFi*xc4N8z_YHG_lGj5a!jH~=W`%VIL;y?^w}B9JW?L}F*drU4S?lW722QH$phubp z)0WV3`2>Yc7FF!<4(R#FO#!xcHF4c*G>1bo13!EQ6&%yGyeSeBl<!Kag1?Q1D>=#T zNE@u5mQ+iN_H7IwU+#of88tqvwN+{TqihAF)X;He$6)3aqvm-=*dS9e?gu=BX9H&3 zu!22CQ_B53|8aj3Q&=1)C(c*;e=a+VW2wYK<UEOwNV&+KYF*d-&jWthqZ4QdOiV3X zAtiD4`Ibi^$E~}wxCopPeI2@gr|P=j`;NMdHI%f9G^A^WWrX=bC#Wv;q_Dtw37SCB z-CvLug*pegq0*g&Ae<uTp6yu!B%4W{%OiP$gJbrJ1xCjTfdF0}1`Zqvn#_2_?ZTA@ z&8PhQm9+k?-<svYn=6<59m>xWsV;@){yG^P9jj!hYv@mqG=9Tg#A7Axt$r#x$z?&9 zM}VnP<Rf~m)%g7O@onZTQZWMt;LcnSW@g2rNnBP4atYizK$1TPXkJWqZ(DzcZflq^ z*xTx1<Rt>do~w{<MHpJyUpygb=l!3jm95n28sz3>ZitnIztPliO`MW41|fYO=FsJQ zl(wrXJ4km!P<XM%qDtce<dj`;)f+Ee@FGo>vnlq~k}%}o-0b&{rZ=iC1UDv!uECgy z5<G)52_!YJLv&}E0)-z4K~WDfHM%3c832TP;zEQ()|V$Fgk~cz?uPuS?a&SjWo_7b zGT104m^DDWLzDvS+4n%aFGis0tjJ(0Osx=`D5|Z7KnMvEoX>a2w**N>ZH)8Z<W2Bf zBj6ewDlM(>W%4Hat%5D)>Urr2Q(wR(mfcXv%|eKIcf$^3vH(lAjRgd_a{n+)e}{`N zKufjw7{I6h0HdG&Yy<bEDzYgW`Un6J{D{6lnS{=5zXTcO9m$MvndW>YYnZQC^6y|~ zgqS-FgxN8!H47v{&*6qe!R>qpsHc7`HuOF)b%G~_@kCVfq)tw^8Yg)&76V|GIhwE) zqWHzy9Y0f2T*NPa0S?zhRsji2Hu1oN<_IW8()@+cx4gVVH<)BD8=>|zjnBU4Ah@9p zEa*<y^8N@Y^*Y6Qbao}MDHG@M^7jFtV+zJXRoArX^}mA2;{r{_d5a+!Xm~*Pn&ixr zxaTzoU^Oz03hky;mvw&U4)w-~>@*b)hdrJ`sK_?>O|ppEu}Q2!Z82LfATcE_gz;R! z?cX#%2`rN<B5_JmZw7Ebv649kfGSB*hgkN(*+k?eGW9%319Qo=#<f-<g9Mdsj8`+r zo*v~A5(H0uIc(L>;6%np$-1<sq1VUGf)aUJgcd1Wo#>Q@NsDx+G3mdZ6Tw;MvImnh zHH$panFhn59}h-RY~;wTde!&#Y8{(>T;CfuEXTJU;Rw%Klktt8<G9^%+=gwX#pFz+ zRj)!{EMcBSbCV!wWaj1w8L#d54sKCvGaO+7z0pW~6N^`{>?&rRVF;VI+VFCB(X6A= zR?RG6V=5BCos(I9grg{Xy5~{{vbQm;(>m(uv(@ReLKKhsj1hl0o1-V$@bsVW9kKxV zXlC76@M-T%p{&^81lW4P&kRBlpew>2HoJ|k9$M;}Q}Ak+cA~aKYh{S7(UU3Aj{E%c zsw>R%%#&d<EawzI5wB5li7+q2?yh8*AjX=vmth)|%@X@iB1&`taU{}9Kbme_qK%*e zCU>_6-pvem`I#Nw5&)|iVt6kM)W{t9-C6t=FvkDjz?`}!cR2?fF{hw<%};~zU}K)Q ze~`=B<N+VO9@yZ$67U;e2IyXT7Bre7({FYS4lQt=qlOl@ChLGk`|~d9cDtW$>ntU1 z9~r$OLxm~B#d)5Qur;4Pg__ocldIw2Dh>S+M~R~+<HzS*TZyT}sud*>Q}+BqD{z~{ zMPu|Hn|0l@ho3!zR;w07P*03Gd>HBJm5DbD_>}8@Vm9T#I*ag&i|%#c*wqG64%Bx| zAQf5tA0z&N)9r+b4C1*GH)8o_*fFVYXDI%Y>|-VpV8%?;P3hNd+Hu%Y;o2-7_eLi8 z+89yHkle^0y--%qEJ`7d)yzEh?dPx<fMz>={4q=-6ch?L3HP}EZD~r<uRbxn=Vgo~ z;9w2-N(S?;B(49JtpFcblzo&Ak_j*nAW#hq^TUpa*dd)4zTX$)B!2bk<4=KC@D_gc z@bK;j;2nApemHci7(H2Ot@4R*V&4ddEP<qBF&+nfje6U}VK>gt+=8`NkK$mRVfqa) z^IQ!&<fD+yb9@!U3?Dh=YZd(13f{`y>`9$yi)}5Q%{C+O>wm)9l+MV(LMF-6EcI!b zIJ>S_-6=rvM&uUQI27KXl?ZZ-P<}Xo-ry%^T2ahB;P)R1LgaLG#7C+%ody4KA^aob zcKi0v`hM4oFMTIrz=WkdQK?GJXF8oP&xLP%zD(vPezJxD(@882gQydxuO66vP<nkf zUyMS2H;N47lv}lBy>f>?*?Hrg5b+H$5vU{!rm7O@l<d@0!Mmh?N^eMk_d>zC%ec6h zphCB67QG4m?W-fCQ*aeNc8f`x^UQw#Go9Pjp53-OtKhqlbxK%tHC6zlLg{4l)pum& zAEF0j8>5b*9E!B3Pqyl$WZ2|n>R6Ure*b*Ce7UuJY_Cdt)C`V7SMm7)`8qP9=@bO( zo$#Mf=Cia@NIu0QpayVd2&v{@x}+kyJJ00V+UX%+<F*&U(zVY+Qnklbu41JktuQrb ztwViQ!6=B&ChZD<;)dYRpIBS0qc*Q}9V1n~-h*Gv@8{c>_$t!U)J9`{z{}d@fZ=5S z2lfAy_uF?jd)5#+*%M}tIKkkkqr$6rSRvrY-r)?~k$`y%aL$TnlSpo>SKwW20@}81 z#m9DL7*|9=Yuv_Q^Qdat1Xe`5X5>&EQfSj7fhv!4Horh>%yP$_8~!dmzUXoH3uas% z8ezIDc&KS*bJIL(iu4y~WbtRNurC!fPqQw97rmpV(HEXv{P?Sd9YGbYQa<cnNm>~e zbhemjmY6(cChP+9IK%)kW(aB-Wl83V9)ww{`BwlscR6py9r5ENzeC{T4<Js})K`5W zni?7m+u2T%cC_9e5T7Ko47Qi<ml>3d0?pVKX;snm&%R>Yhuma=C%5g?e0sTDbgB+z zbq&)&9*?riF*nx+NRUd)j!yuXV}L;B&6zd4!m5G?Y;WSA*56Ha>unf^l<i$OX`QwD zcqC)aVWxykhnGd*K8!gVH@&olr$#yto^cCl?Y27VbIzT+=;B0{so@wysHcqz?eE$1 zqIA(ATOqjbV+_6A&LNa~=A#%p&J~?@Dz?BG_SfW-TCQy9$|^D=0V0^xb@kY8QfX+w zBB>Zt7(S}ZC*w+&f}nzkYjBlAOVwUDlkZY9anPY5MUk@Whui+u<@VH@%T$5HXjw3+ zU$EOjXz%6O;b0u0VwfnOrk5FifOlrBL{wU#3-n!r;2pH_#Ei2V2r(|vktM+X7?a(t zEaiICBB@L!Stat$?F04z!wg%4V=Sdwp8XP4c|jcJw6>mV=PK%zs_d5<xqH{XB|G2@ z<MfuCI#-3h)mb9Adl;kf_wVU;zx!14J$z%5O@n#EeaOUPVC?H-I}O|eE_DZMkO37Y z*>Bg)5Sv|y_nI>}11l_PJe=jb6Iid=rbc((`7fyM{07h}9qHi8{KaE}`tzjAEAlG= zpi&&|dQ_QI?fL*Xt|0#DK});*SH)b5PR9!<n!Po1xHpVDam6-=Gr_|yW1F`iv!?EC z?tH^IPBcOlw+kDLriHpI2AxTtanV$IWx@y#=yH$V!mqvNz&RHSM5#Y5-b432<vySI z%P(ixoOf3UJgHBSo;5Vgkc!Ugs4@LZ?O&_R1(8EA`xkiboI`Y_noc_BTE@Luuh;L- z-KkE2Q_c^^i_SnmzX$?YkEW)oiyG?dhLKECpF89o=qGS1`vXZE5SR{O16Nm;=@dFY za+GLqsF0`NQ2C!hDmo3i?LU?hP4B|`#c!7)!E>ULsm$e~3r6*^X(V$KKUV@;*V1Yr ziqHGK@n$|;<m+84Vg|X`zLOARUt_8h=BD;=_%Q#urGtudxNa8SJ~rr4tA?8*>mN3x zU1{oXPBpT*_e%FjZ`h%qFm68nbSB2VC<p@RD2`;^)7(;+$xC@Io6Mxd(P$}2Nmr}q zq#x7#bg}_0F|3aKRzrY@(o{*;^p&4{yc@vXA5GR*lo~uT=_G|XO^*YoK8)W&{lTi^ zIdjI{floK|`&9o*sb4-nlpFp$C}nC{L%&slhoxde!60Y*Wo%Do6x!8>-zaJ>L1qh+ zjzz=$y8N_Y)RP?)Haqevsi^Afo@F_dHM^X+%lj5!r~!x>`FM@*tp036e*fo<8DN*J z#b=+uv1HJ3D*z=zYb_OIB2BBZloV-dJ>o6*)MG~t+W?Gyt+H1ZgaI%#0`ef$0kwsA z-$ur%;z>g?6N(R^IhZ|^99Rc#?i4@KSe0X|h3*SJl4bw)x5*^w*JAWguHrQI&#w32 ztJ|I8-#wNcz1skFGd#&NmmWNJGazMXJ9P{zXRZwfi_uyA6RXuRoFl>@5<IaLlm=tR z7{hfEQE0ff<dtOG1NIP36x&!$5z#mU!3J*)b*oNnUqM~)SL_aLYt=pD?M!9<J1WBY zUafq6S%g&LdAUG~<WU635pet5+cmrw-<K@AzoDW+D5E@#RLy}3<!njaC%=BV@O#&K zyz~*Y4S8|k|KSm}wM@&)R92o8MQC+ek?2BF@bE?^CEX=CAxal(s&Ukl2)JCja&$U6 zsQRaHsAI|QsiQhg&vEEa7dJ{{xGpZ<9|{n=WE4M{qOH)CH^Bq%nS!t5S6;E;lqpRV zwr#RYbpP9Hy?x?uzh$#2;~If)>up#sPJYej^Lhg{%}&nhzI5wWOUos<MJ8rMCvM)F zEUd48A=2sTm9CzSh-v7o;(mvd0zyv*I~MXvQT(0b=Hu~w_|iCj(p*+QF1*{-O^D=} z@jc{l&vAYuwBXVgC;O7m-O)JZ-96-Rrb<6|BsrfPv?i18u|*%pdysw}r1Bkwh!_)q z_Re8p^es8b07_0}%5#JqX}E`KWHg2IT+{JNTSYsP2bBLC`jKSMc-MI9(Q}%wA~C&I zSgZe|rLdU>=W(?Hg<M;ZMuV=;e>)<s{&vx!t1cJUqq^?8#=2eo#M>K2#J_zE7giqe z6Erp#O{e68dxcLnbr9G>ZJ>7*eyvSD;jb3fT-$IbE*VF?lyGklFi9L*Tgyd_ykr4K z5r`6#DKp4ymh>XoqX7k}=D?IpB>NbRDdUP0lhn3N7m?e!zzV7T+NpaU85<Ly9jYO0 z`S3&-E=l(&a;e0<?b?l||B1hjk%lVT-+o`?1PUhx7YATUM7n)s759|l7|OQe?hs>H zB<BG8X%gIzDF+lZ%xo1(@{Atbhckudp*lk#@Z@khh&FTuTA>~4@Q{Kq)TEb(lN>_# zW5bO{U=A{jQfaYu`7q3izBYdC;OBalmCC14SbZV>)B}KOQdv{=Kilp6Itli$9fm%n zD1rUuLI_iLGMOZ0Q+E9}&f(+z8IVy_E^Ikv|2uvE_xbgIRj+woqQ5r(J6o<?`kx_K z8k61ht7j9FO@5XtRUx!3!oPp>g>T1=>w47SDo&1cdW(;?+n(gyczz@0$>-Z`#arMo z{2Rh6s42SnOWyzAzp@C+B%;06ZrJ#%J*R$A6YFA5&$zEK58ux}GC*#sH{pRvVxfEs z!;-I&>Hqose$`2ck`7BVI6SM`%e}N3MHNcsCLCJLWz@2gk)h--y#1qX>av-L#Y8h9 zC4tLA-iUL{RaXgvcowo!$!}=9wkjn|HmKkDtY&o{;|3RK#k*R}uhzeWbmkZ*>Hdju zQQ23H4d5<^b!0hUX&H()?U}E3yovU^tJJuTl0!1X4KX+hS^~wiA$E4{maSg0A+z8J z=1%b475`hc>S);7H&J$ZWtxZFg_hoCOCLgdJRVUSV>6&aI|9`D*oRrLTjML$?!f51 z{$NKv7(*v!2+yj_<N$*>l0V*P2oo=|&RAIykuU<Hgy}w!zefFYrj$+Rz>cE$MbG4v zXckX>ZL5=#SV!0_A*#PP*se=cjr{xByqnl1UVv@yV&`kb;3>{S2ys4uMQySZsQBN5 z+k)8f>BPDeeg&H>B{+1PoTgAwizW0Q^ebOUg#QBTUyur_BBs;ElGyQBB|Z2mO|<{9 zMLzketqO_{PLO7onjzcgm8w81UIqaXAL<J_(<s{^Dn^xj{=H;IS|P+yfOw*mP^_yV z^@|frMGsv~Y`(v~*{bsbewTnXGf#3kEQcg0ujh&4>iFu(2tU0$5=H|<663*TF)Iel z-CTHo$2+ZOaa`114rJb}JO-Z57@rr9cB8{_74Z|Si~JeR2aD=Or{H_8w{gyx`Dnl% z&%!-<;?X~jn!np+ww|irz`GUojct>%<QXI$n2S#|maF@*W}fCIv9FF8r~~l5(a|%# z>(h$BPyg`nB}F|lQwD+fX9*OFi)F!5k2Oss?4e;w02Q=Zv>kIo%T-YoybJi~Vi9MP z=7!0|99FUM%!BP4W57EjuFbYf#;OtB(Or|8rLFDs(=8;jov;)1z>V+Zjb~|(qt>pz z=N@Cx37c!Z-&qtdzXdA0lO~}5&UJCow||F=s@Nc>HPb(wGD59n_}9?m%%{ZlHf<jo zBC>7435rXO%BPb@f=DwFnBM=5EX(`lWDGqnm2*1@6yIepFgt9E#+H|lDV}Ki<@lnC zkJ225T|1$vcX1c)HXDwR9Wcu<CtN=!=@ehvu7MUxO_Qm|A8!}MCh)&XV>iQS@2CH0 z9I&U4ww1&d-~RXs2a-Fog%DX3NciuPSY4bH&?JaXllBXU+(Da=H!+3|2#n|1s(au& zBNZNrU^H2+6|VyN0?GY1!F_hhEm3Ja^LVr&+5<KqtS}9Y+QYq;oqE*m6Q@Ake%p~N zRQX{-s_wiYK9UJuVTOS;8YVRyoQc8@`@MtK+C^bsI5vQNbo^*Pr13|~8z1fi)Ri!S zR8M^myPY%jC2m1SjB&^c&z`v>*>H%_W4J-#L%qm{Vo~pCSwJ{<O%Iprg<O3Npv7+i zfOmMy0BJy5X{~lnaNJ6ac*2k;lF1Z3YzQ14FoDgQw0_`Xo$dsJFK%-ASFT)1-A3q( zr2gP~4yUDol3zBuLvD{wJlr;NQlFvm>1w`?r*jv)CJMW6OARNeA}t~h)Y}zj4AHCg zmP{u;JgQlP_?m9dLIh~u@SJ+(s^8ofL*N*Fh}QP0HGFWKd_%kL*cMf*#s^t+?o2Y` z$7ToL>B1*nGIkcJ<xD(`tR~-B6zVzNijUA!b*4q%79pc}(=(mUTn$Qio3yrO=A_;b z>ZrNXvR#9!D@cPe82)Nn1l9vurgbHSQ$XXjx|nT7At#Z$mwx7mK?9S?PK)VBPKjCE zq)<-aie^<+UJP1V>XJs*^1hjT-QG{d+u<tz0s4LhlLH6V13bjK6v6cMkcV*Sco+|d z;}BeP3oi$QB?hl)e!Noq;HzPh2Wbh$ier#m0`TuILp|uDTKyp4PB3Y7I*o!pa{fI* z*aP_IfBEt&Z*4=%x`NVFR-|+?t$|GM*w{KO$d}BXP@Dm3_4dZi(mC28pV1h?=zC%# z^bgtb@6)RiE*2S1ufPL)+n#S&KksNdH-AxeZ0O^?L4K9KAjiI&G&<t_0UU1aw^}$C zqzr=OWZ7n?V%u#sKN=VSU;G?NgjrWMO&+!_o386V2U-~3J^<tk>2XgA7#?<x7jQCv zkFKKBRNyd9`h8Tg*&hz;t%IlzHbXCHMJ=EJepC?3GF%jB@~n>v0*8cDK?lO>!cs6v ziF%SkjY7=<wMoYF!E_S6gi`D*0|ybt@~VNlCv+o#Fp~X&->-uC*s7h6OmW?bhPg9D zRHemi;t2V#oeICm=7&2*bx_ABfyliKGuh#G_WbI1SeHHZj2p!vIFNwt9vJw&4i*Sb zxf&9q5b6z@kfCCzO!2HthaXed0Q6yWX4KT^iOg?MNNVa(KcFB-Qh#iu+W|vZNoNzK zOtb<CF|0LXykPM=fx2p5HfWuX<Ps}e$w|d&4~G>qG`~X0Drv%XVR*2$<tQ{rvSK## z$Xi3#t_gO(=(Bf#-pP`upUSQf(js!{LHoScA42?w7^3)~6Xd2QylyJ8$5f}$$&(D> zT_PhvMz6HK1?{!%h+&GRe0+efvI`wWZOl_0o#M+?zy5&<gKZs#$nHy*hI>v4a^U6# z$D>2d&>dNAmtOum;6cz=iZX_o^IQ?8onr}xE=?TDA9i<{vsnuuT&*pJNhOTuf2Xf= zodDf_^t{%clDB@tts3_bik8Q~tW-|sroQGfi9(w;#kmqZ@_M&|d{TpIp^ZpDMk*&( zP!q)&j<FJW<ORv5YR;WZDi@Q#z?N8b$CI_O5jS&{u|xG*iq!O3%&<0H4WNdosawE_ zmkS%|t2p5FQHZ;mCh`Aps6<sQet^@_R5+Ll_QBLKv*M_SpQQXvn)!X<AxQ0#6m}ue zclx@~2pohvm7k~*Q;g!+sHLHz#C2!h5SpgY7$z6;pm$wmTgqzMz|TS${iQ!(<quTV zV`Hj0gWF%SqB7ma3Qtz<1DY~Yy@R!DQ8}&j)`~<)C647>X2jyq20T^Zp9)tzYT8tq z=z#RGwoGDltJjfc$HEoxEO24${o%eJ?)m<g2n<R`iD0*;jQfXZ;?hRFFiK|gEhc2M zAIelFvkhahA`B!*{w73hN>Z#M^$79eV_fDgi#%4p2IK{6puCL{or8JG!(-YlqZj|* z_%sguR@ag-R<B~shPoK&(qVW_-|iOgt>t~H^$mIN>Pw%U1(?4b-Y2Uc)IO$(AeD(Q zNM1&y!tnp~Pvfj3b_@|7^FBGyY~ffajL-rPv9cK}G>QiK@Ex9p2S*f}Eo@oK8!fsZ z;3?SxC-5lntfB7tC)R!8LbLlhF8%2ofWTeMsec~3_2={BY5(lH(WzW5({i><$FYIp z%vUh(M~<`W^>z2oGpGMijIuo5KLyznWaOWJzV^i1MSsxMV?5yEVQ6V&mTGLsfA3#j z%m3I8c^U<fe+r{LTm7g11SP>^rTA4Eqh%wSR^yof?4#>SotvLmC0x0yRgZy5tffEM z0Q`f}_8F_eq3%%CeQZ?>{^UPD{td>=jOelAGmMXCvbx?lCYtRq!F*p~6AP2I1p)(* zTeY>yno8b4OIDShI6F!buE_2ZsHZ^nR5>QyB5n==)o~y&zPD7E*roaWg!_64sFFjh zhOJ5GO2ZLuF9Sqso|<T3R&_rmiQ%QyrPqUVhy@X=r(-hBo8HTj%wzGM*ibfRUR=uH z11Q*eM=0@-cl|t>95=nDDV0kotCVnWM#IklcfknIXO2!Rz4_)aaF#?@1N#6q>b}oo zu+NGqc>3O)3zDQokPCFxO;;iJ0punp6eth8r&!$nZ_p$+L!Fm#MsL%vfWwMjXh6j} zP!V|c?5I*fkV3<u9|;qPvqPD+(x#TPk#(qHeJZt|Jv%iavLLaF+qvL?^=yrCI(n}? zdoc$zL8UC=9NW+SLsM>-i!4N6JO<A=f?T(TnkA7rFdC*cNrHovPbZ`PsX+(ReELTI z7J$Gf37j~V#9XWHGGjR$fktBzohZW;#hxdscV*w*EGVVCRK~WP|NYB8=SiBrGY<od z{)7rL<77lfPdx$*TtsI6$4H0L+;puI<S+ac{b`;lH$;dH8#HrA{#@=@n#4cd*g^a! zHQ`Bb@qTk&T>I$x594FL$Tvs;%ePjOfN9$GI3Pe16I0H@uSwP<*~f2yZb{(&q0|~6 zS_)Dm(t#XGTZkhD#7mh~G`%BiD1c3eAbL8pf)_%ehGJ4u>Md=7lqos}BBS}X9{S8w z_Yq?cRM!0gV>d%Kw%Pzjh6;GDKi*RAEgR|{``&{9s8uP<l38I%$qUo?HN{iK0l2Jg zu#YERj?=6h*I2AJ2STz9#<a~qn6xUg+J;0*@r)&vr<uy@SZQqgph^(O_A;0hN7LWA zC&aSUFs5h;&O~7AFF~9*1RS0m*>0Pvz_iLYuBjBvfqXUSh^ln30GwLemRVjFG2#@` zb$*0NfgM&XAF-FWSTQvvwZ%SSU{-J*1#mhlT_}77;U>{4XX{|oN~c0_Lb8gfRxnGx z;oK)~1hB4j@o<}8xnQ}@Iy&`k4EUK$9*YHW1QKySi_uIow5jpQ;!`!EV!>G0b~=yv z2JkK9zGp*nn&g@yL=~ysV2u+ABkwcbd3cq!k4l|mE}Y-5_JC=Z-~MDbUT5QP_z>XX zPrD!;yYL-pQ46F4JSIS80;UYbsWi7-E|yycupvRivjUGX(|Kq2`JT_R1etZ}ena(q z(kW938KIHl=HaT%8i>yF#<pgKG(bnwwFYg?sE8q58eajQZzMHaFifXk0xmZ!p^NUS z0@X6#t_Tur9gU_oihD#+Lu?bZV(Tv#sZ0veDv3&KX;(>~2=QnKONZyGx-t91N8i@& z^Fb68a6u1Z`1tw%C7)92(xPfP>~(<n?1opMZmh7Z4DZ}tCPqeM)({hzYQc3OHXx}~ zZ(20T7n^Rlg*yP;J6?Q0lU3M9wXW`;M1cit)nCl}=w_gnKA+qmmW@{qc*~1F-`cy) zQzc<85VS|VLv;Dr?)$sG!g^Or$bJ(gLBk*VM*8CM-O@X7pR9wxX3`VLPC>fHU4il- zq?@-DEfcKNoL<f*xVDVuOU85tLz=dN!k*IcNeRKnJSf{T8!K&u_1}^y);<9;4Kb$; zGN{87H=E5NUI?877xvyBtJlxNqQ<_H*R@*&I@DnW#!$)+^M=GY;5Yi0l5d4HoK9l$ z(m(6N?In~Lpua>iFCKSKXMsSs8z37p-oRj4)@>6?zUSzp@ljGpgqXv`RxHZ~r$fQx zq5%T69_;Swt<q`%C2G_;s*~&%#x;pSlNOzu<Bo@|Gvzz8TAQ}q2pTpgFT#i}=jlfr z)t~sP0|1q&Z|@JyXRJIiNqh%KWs?sX>QIm7kPjG~TjW}#Fk^{uK9K9R=7oqU37!hB zNj;C#EOR6i9w5N*O9l-~BE!qg5{FUB^(2toib1b31+L2I@SJr&_KtzUb}*U4`(bWr zeS7<5<EnKhiuO>;@gcS3p7seOiVdx_W|ZxcjUdN+X52_3w%?CmlU)rJ^`(c&oR>A2 z<LBL4O(0vp_`wXYJ+$7K5JtF#K8(xH$*jQAxQYuP#kX~tTs3nkUXjuDv|m^F=nYQL zg7#Dp!B&SKHc+iE|G!v+NY#1o(=+4C(2nj?0QVEP-?L7o#c>hr?^NOqmv*a3(gc1_ z3ebuh?mhDOzGznqMrN;4+khY6X%y_}_tE6go*)P$tj4C+(KA`3-PA7y1;NATYG7qd zRC<$RIF+*LC?H&Y5gBLMxVZ<X#(HyuV5I}CNvQM*{mQBx#v}$D348{s5myv&*{PU8 z*G>XMWiyIWKx;r0f%Bq<8PM>+Zs-kodbp^!{VJvKd%7-jomq^du|{VhA7-hHlrQ+* z-ej)hGc*(L1ZFI1?^sA9O%ks_)I;=X#w-2FG2|SuL%JB!TENI@V}{(@37j4lIeW(> zPNVLHo%-o`xj(rJ%Yg%c&g_EHyV_0;_UC)(;TFH}`IWWhZ-;g}00-e=K%2lX)J8(u z_y9vdyuT~C<r0vq8yW?6(plJbf{%N|vei(xPJwZRoU>XpFxA40z+8I*V_;6))?_*B zpA|Y?;1ic3E&M0<9zEE9{<?CL!rIXH2J2azlmv=464Lr#$t{<GT-it(1tUD}jv>^> zox>#;hmatU61jc8icwe!S9)VPG{1OBRS`!JM2ZQg>(KFpKCexOg{5_z#A9$>#uS&b zY!wHQdat3Xuw~6LhBFUOw&Jr<RwNUf{lmpyJQ9;MEcDC(6TmMcAIjMb_yyqKLgt@0 zxFL=r<!PH4oh|1xN0bvJbMLoaqb#Cku1XwiACs_9KfsyF6{_QwpkO!qVGNr!ueeX? zWG7%;rusHNy=DQS%H;TK716B~)dk`yabEsGP7ZW{=jbvj`4JHqiITQ26F|&u_-4L@ z^+#Rt>HdB;;`sc<i}RD-1NRYquTg|rFgJw)dOR;WZ1cLf1#wAPCV0}BIPYGi3Dgdn z;{RQ|`^bu802XQzM&bw7i0xnbt^bNwj?`}iX2(##1JCN-*6f}7Fwe|=<)7svl(3|q z-t4-Rv9yBi{!(uOVV+o8;&?(oKjP>AsUi^(3CW1?u@L}*jm%NJC`Sn+bsd?u9t4R> zf~zF8LQ=qzK*F5qN}|bTI;jnOk4}}U0i|?c`>2V6I$}mhDORDi8r)l8r)l=>k%pel zyUPnr6m^tbS$gU$sBK87E${UdVAmwPzf`9RZR-uHht|h*uNPtxgM&ANpo*?K`vz22 z-t=#HKvuada+GSD#m~7UtgbYqi_*T-taur;WFVd6Q`+!J-*-ZRE>rX2#WW*I+fHJP zelEYvQ&}M=BQ7frm~8imlGx^_*6&=nr^wxIUbBd=c7mrX7AyO$<ww|PLR0*5QP*H& zHTQqbyF`0Lfh6CBFF}H#)IV75!r5@q2Eg0XpYW&D+}N-N(3Cc?JJUQKJjolQ_vqvN zK#5~zAa~hLx=irU1VjfSde}hmZJ@wS#13c^pdE(JsH~`|4(;PZ8-lK2*oJzBZ04@; z6;J0?M34W<0xd~EaqJivOXyi>AHHAjE6C>ImY$i8&5fzxDmr)&jPjLFg0)Hcl7tt7 zA>4)#X^wb|=erZoQIM$sS7<#hM}oAxcXj0QEGSpr43a0mU=kNimkU=KVnaEPq|wMI z<};e1st5IG8g*06;O%fE$WKacD(=7D(@!2C1vAgsQIoAmcV)3yPY2^84Lzmw*<Zij z`lnW=*80I8&6|jrnfprVh2Lvf`RN~Bz3}~u2~`>5CG%@Zp`19}bJ{C{Dsc8xWIH+D zmn{0oOKKXZHUFr3J#6`mzW8D_G4*)y<o3`{P5kY6@e^GPaxbRz`_-tW^gTDcAa48^ zdGs#N^*>u$9J-JfF0^ol&H!EJ86vyOs9gKf4@l#%Wj(a9RA1$4nyiF%|3TiI9KrkR z%B*QqR|KA1mv9SoVN)sDY(!$`)CQBnNHuzUzu7Y-sVLr3^eD>lHi}64b#8R6r9>D} z=!ADYacW1gjooHKsmUl6jP%hhZ10l4m5S3EgoYey0|*dw-}h0T0!?lnk5{PB*Hkyg zq81p;0nRh#_Bd8?*h%cbM0&GFH6v0WPx>@@k}!Le%(&96F5Ct*K-IYoqVa+6u#WDo z>rc`vP<Q+SCV*_zAXFCJQ%4|Q>=nQQNStfF7HWIpq2xY#D<%}ZNN{KNOA1Rk2#kQP zaI{*Ep{KuM`;A7X#BwjJWfxfDtwY@}VZPHJdEjeonjQ~WZtqfgjgD_!$`=EuV2nN= z^oXw4r?)-AT+Lg7?x&NKPjbkzv28r&$}CVnjn*dKkkWMymlQgjfsNn)8>F!PL;g}3 zoGGQzgLbk1)wBMDM?hVtfkAw;aF2EjkM&q^Dz12l%COm!t2MFi9k)AQ<X)|`1b3~) zl|hJ>QNs0K1T=}99L6CON=GGN>8sjEs2&=kL6xGf!G_APrL#R7N;l@(T`4~xo6wHx zBFjWAHBw8-RmlgSin=EdvJ)hFU>zdjh@!V)V_sUV1Zj3Y-XlgMAaP*Q5EM$;4ZgA! zkgP{sNSZ!^3wzp%T~F-R=uC!@yw)E!94{>7VSBCP*2-($Vaq>`CmP;M#cXZ3fxu)j z;Y+WV`oxXK#V77Eacr-g6})x?|7xQ57SeBhis?<nTS;YzvceHk5mP0|?lz(kjb23g zWg!HG8DS*2K6H1;Ny|$`$?e#i63L5k@G7Y$buYD4@*4ddWRKH1;5GAc2xy21aR&`y z6&4X;1g*qUAv4=RPaO@UhQHXco^OJ9zn*w4hM_n#9St+J=xn~OBhECm;hI)4@v$#) zX_VxKH&*u-H^E0O#GAlx2m}|rnTiZ|BO~X|+||6{>#c%Fw^hBnGgo%wn<*VaQHP|g zh^roxx%;nJ1zt@IBjIfepFDg|MhDWheSBx{w%(hzci+9acklkYw)^&6T^q9d{2wJ< z>kWq^Zb`jj9N^E>yXfV&W&fMx*_;o(^qa4iTlG;3Q+YPR6VBnamG;D4(3K34lA2B5 z#^dpzZZDusEF+zqi2`l5QBd;7eY)DFnx?^jrjkkv)gs1*`|wuC!9c(%nDw)?&az7} z`{cpS?D*laL9|fp=5fe}1+%7-%=qo#&IdRd_mb6_3RS}~N=oXoh3zI#p5X?#MSjWX zaJD*~h)N!EB%le(Nx1>}32;3YQe6msxupN}dmui(5>ja?q#uvpKN5d=mtFtKr<joV zNV@o&$M)$jB>d^D%rai8{tb5=MY;pO*uP%4j_9?sOzNeKl44d8DCfklXvLK^8$b8g z^q;y~v_tq#wb{zD1isI~#}7QlpE7wmKoQMXX}KoVC3%<(=8rkUOcrn;tmCq;5Ug-G zFZScM9-}*e_fK`Hh!6V=!Vw_m`wfEan~PR45kx0FF*e1OldC|FQ4@~Cdn`g0b(m*7 z37itH&enJVCync#GQ!AK5}^yPzk=jI%UBNRvkbc9^ei|mJ>AHbtU7@cNaXxr=?R%t zB#6ydnHCAkve)2Yr05@?HbE5s;qB5gzydn2ZX$u-zA)b`rG%_LiVih(?bxT(e+aBE zv2U^H7M%Wla^2m%o8Wx`<X+6F6tW_6C4n|=phx*3AJ=xTi=uZ|x3yfL#F*I&&hGEC zo6%kX;}PS!w~S)x`~YZ9A~kpSJU?tQP$a;2_*f~N5+lo^Aq*B^0?xiOE!SP@R;YLS z$Dd3b8wJ!^sT-U~PNcWHZ^7N0bN0CpZ&<>xQ&6ykb&Tw3X<18N-T|aM%bF1~lss-* z^WfAa4IKcSLymIeqRjP)+KReQTd*5CPKIR7opY=K8rjOyQ*h$mHcw3qB4Iw+Ar_*^ z6d4XfG*c%L%q8Zy`3u#w_zi5NqhsT)1K&R2thH9%#((6Qaah4ih(Lky3Sx0t?#T{9 z&7()HIq?wqY5`j%R=x7W&ZH}U0wAnL8BHnl!k2f<OB^`@Z~m(G1-jRQPwT0GpfzDm zX!<D4J$5US=Wqj<Tea9GAwCOwX|-~1WPbZC@tK~YB@EE?rYtwY!OYBD<`B1B2fvV( z_jnYC{c3gb6Hqo2l_S*CBdGxyTnPb1H=)f=8iL(zROmqWo)_8CMzON5Y<6v_`|ugJ zkm|J6kqK<}{Z&90L;i^kb3m60`onD1Z@gWiKdVs+NX||s)3`K0o;`qB=210^TXKaw z4Np7$f>@S^0v&4Vnn#+fmJ*=u)>6?SC7l5~K*L?Xy;i%agrzo}pc*09CYtxd=RSs{ zZeNxk&rE?#NT*R)D3ffqnzHD($5MQ_n%fOIA``CnU@Dq(`MeK`ITcoxPKjuwc}~8h zw6EyJdAoQHPm>E_S{O4AZd+oDq`EB~UTs&Q;IB%WWq{hv_U$#1@_qGZ=kcVH+$0gk zM~ofQFlPaBwp4pOId3@2t<p?gFs!t}H}WBO`stphu5(Cgz$!6G)5naeH5TG{mAQ<W zH&>snh{X_`t4R<{CSMm^^4)}dNqR2JB?YVzJeiwcz)kvf?-)iq)nkQ!GGD&4-df|W z9}e~3P7J-XnBTrCfBjgG{N<dAySrO8yB$F3I|L)ElKbjXK|0iTPXv}aR4|Y)`{{0w zp@v?+>tRP5P^De|8^GQqHX~>;be{wqCl2f_|1r%*PO7BC5uAj{m|FeI1Wf~tG+37f z#afp(1+Oa}&!+D{>yW7t)NBR7R>e=+A?unll6WgWO#HDl{ak88AmX{jfMw?7_7gA) zZHf&C?XohDfM}-&;~Gc@&7Ts$rw(g&zHttS#SbeLYRx`y2P!Uz+WIsc5_0REMRGz( zK0Q%Kh=to_-;WSm*u++6W9elz5cW!Jt@tJZp#{exhv-Tqk;x#xfT1CU6Bz&nZG=L( zbv=8yoF`eiF+PJsF+gDhXdOG50HhR;wKXu1?09~Lo@6Hn40Ud5cJAP2C4IdCBsXCo zkR6icw=1@SmGtpAWWQqB@7Ut$Ctd4(eANnsyce(%O}Gv2+Mi}ifg!=Pz?@1&DIQsq z=q~YdlV~yEiq3@X7r3QRRWQHh)-m0VrDXS$rhQQL_j6CWOyC1l_|OA)G@C8sO3XEJ zP6jReGQ>16peIn>`QhF^Uw>bpd+V4qQ~qS|;@gRs-I(d5KPKI?PQO}=bj_2k$sJom zVszAU8}QbQ?M1OT5INo6n$9_dn)<MVdWx7zq^i%ClFpoR1vL6A#44r^nP^-MrO2B} zt?`k+KbN?__%@o~dIlxIQp8QDf-GrQ?|H2_hx-@f?%}u_H=gwN0ako)hz+Vot<taX zr=A^iD)<;EoEfyN9uli!d*U1hU*tE<FTsBjzmostZuck3|L;X^s{S|dY*}7s(y7%| zGgHoID-)yh=+Bl9*56Y5oqE>8Nc`iTALX8eMUwpeUt@N)dGp`!?46_nD(Wjfzk31h zJ7dq~2=EffBUm_-rTiamJ%WYZ?~nMc^?Sz<dL9E)V#hCVH}&Zkps`U<&^UVF+V5jG zR*&_KM?j^(3kZ_<!6D0F%a^E|em46?iu%(}PNaSy@&cLB8z}n<gu<1T0Mg;rc(E~+ zpF<QsTMvd@nhOSxOuB)=Q8;!Ud`6d0?BN4}Lz8ZJc;PM(6sUmLHr^?mOZ}ec5~~x1 z-CtPg;%avbb*?lRW6@RD<b|JGNN;y+AYA+!W~ixa#W-B=zI}xX?d#cb@2RIck=S81 zVI=V0#~eb;9yC#L07~Xj4j%RP>RGYiuaO_{rs5F-Aqm;zz+}67@&F=`dOK=7nVY$y z{@lfJ0{#aRT03dvhy(W~T7Pqr1Ktnv#;%jMwefo(!i0<%6}KOW?s^2H0bAwHa6s?4 zNS6wWnsOv=08dAQF&X{eVhrv){p6DBQ{T8e5Yb@lDr<XB2Z;QPLPQb6=KysX79oeC zRLC1A$*7XymN(ejT}C7;3PL8$Ca5!-^2nt3vnXMqA|5J-9Q85=wR8jp8h%W|wdP(Q zD;tk`vc%9SaLHxzMk1-A{32sumi2Lj3zyDqU8nm(2y}3t-|7nI<yR64miH}Z@eS|q z_1%4IF>nX02ky_e=E6WS8q8hVLqw<8NlvqBYlZP1O`m9;E!<Z=Cqwr|O!16g9-ACI z{`N!M8z_u?&3>oC4zeJ(<OnMuE5oCCq&I-Vc?YhW_v<y&|L4E1*Fne{Eg--YG9yQ( z`J-ji+rGC;Tr<?`oNXW2{m5Z|iM-zRy7wt|qR@G@_hPN}_dV^OX8akmBj!HoGg_}- z>pr0(A%GDwBd&j9G=36y&yzBHT|NnZjCcRYT`ZF{c}N0Z{uxMgVQ>FBW>-z{DwF?H zVKVOijpVzK4+u5yh##W=4tw~Yi4u>&2S2X<^#8Tr8|Ytow&$8x-^?!`|JwePl3!0g zd~e9X^g(%zyqfXq@51G|5BbZ9uK^2ez|tB&+rgs_9ewDSqmBjO*678cB*7g={?}_I zu&TF$1(gSLR;3hlBUD=71`F5C9Gzv-^7iZC(6y%=zWKA9<5KR;D-WZ8=rxah#v||k z^L^GQJ?ATUAKsPE0;m17&;7!WDM43n4<C2vs58!X^a&^I2655^jyVkF%8@4ENQfgr zSubUdZ3Po5K^TKNZzj~L&fXA&AD$#{F)a<oT1rmy`=Z(}f`;D06JhS$zTj7s6XGeU zENuo&D`><ZL`{qsv^6wp#|E}|w*6o$jfY%<)r1e6S+>5)p+M8n1;G*2;%SRWHB#VV zPHWPwXLv#7eumshcE93}_W{|zATotm<p??DJ#i9k4EBq^8bVEUY=qqOXOj!Mg5tkM z+Sroqw(fBWauDF@z)1?)eu}ckEu>^AYmcU9OyXo8usth^WM81Y%HJI7^waI5qAX$e zw>TIqC~$0N3KR8`$RQVKnoVJ8dHx~%ifoCl3w8p7RiI4KnH2h=^&%}NtP=~-!2~L; z^$ak%4>yIH`T|c%NvhE?C0{2P(eX8i?5a&-C2Za}BfDG2K2!!sOsgb-X>+LHs-VZ( zP-19x24S;^#)4y|EAHuS;r5>2>yA59eAAOFI$4nB&G1h_-qU)ZsZ&}SBuQ!z>Yrqi z(=wN=y_HgF;%n@z&USFZD>3wF*ChCl4kE$8`&k!M&78}oB8vgfY*y$|5x$=)6Qc>8 zO9}AI(I6QRl;wnjVe-H>Aa06vO|Tum=gq@+LBOkV_i{tvJ<})d)<$2B{Q<q<P;zt< zOiiKJ@5D9$iglNB*#9$A*(edwbRZD?#kB90m7|>gPy6s7;yjd@^(OVryec(9r(be} zo2M7%8OqtaRfe!G-gIDiv-2L9ww!%B1C;ihi;rLG)U%J=?Q^{#;y*C{GPVX<Ow54O zwjv<~)(&n7XF?_szGXWgvwb*<Rp4;2?m<L8+eOHp$Yq*xG0aY-<2$ng*^$01ZL1*x z=<0smZb&2wmc1Gshr9s|cDrM@GK0RhsCZTwChLv<;&zwMK&Y@uIE&@0q3l=G;b5D< zL*VNk@Cge-cR(g^J2wC`Eyi&thW^;uDL-OTf~X!vx-BJLKDu3CpEEp`bD{p|Pc#;h z8qJ-NOypfLN9L>o4+N^Rz;vVi5m@d<HX(SYc-zm@tR8Ix)K5scVkad<bi1>shP28s zh;|n&j&WN@9+cT-D+z_p{q@X4TMN~RDDdslX*>63W`*zxIgzNiOEFCtf1&T`KG5{M zUOJlf)$aHSNOO)6chUqCaW`NBJ1E##2TJU}Cl~Pf%mFnFwov_INf)z&wHN)|k)dit z&2FNHHc2FX|J;dZ>=4LjW5=#PIIzJB9@%;jT(sNzUFuL+q`If_&YbJ%3WnNkHmnS= zT#9Xg^=5kkZO!%{0MhIzATRDJPVL-YuhmN9Xtq_rv^?8kV5r+|F~9;8<@rL=_+5e4 zQQ#m>l|kE{xz+}L3clXhh)7(eX7G!H3ZVhX9J%OJDL(4NcDFpRDo~kIr&whU@1!aL z16%<Fh325}bBk1Zj@}B0FNv&UIg3Q&&Jjfid@)omR3A2^rlM^j^2K|!ia}K(jiSh5 z1t9dJ!uRi+in1hwo}?xq>uIa{D_M|>vsu>hoaPHj>Gf~*&tP!P#5rrvb6~M6*tau7 zSuZ?({Fzt1hv$Frw9C3T_vcw)%nv^H+Lw6BGai1`ck?}do-gP{J#>p;2<xir7Z3$Q zNh{loJ?#w`I(+O(j6?$@C~&M54}Qf1A>SokJn8yFx>rl1N<g14liVN(4bk`h2j2*6 zY&f$7{K&!^TPJm+hkTrL1{>JLF9Y6HsC(eLU(k`BIvKtm9#!;98WH0yMymT(x2%Ac zF#O<+*(!W{{>D4Uf~i?gQJe0aIVxTKyqXZPr?S5~n%N?B*||yp#d6VZ<?;=xn4(*w zm;luRnKPcES9AuLs1Ww%N0)%lA0WHk1uDt_j~MoSDv(9PDG~i1aQOOe7?M<mRIJd# zl^(jXD$}i^JczF-nxZGnWVy%55XJ0x!*K%ynJ09hBeqV)bb7e0croYh(_YW&C=B#q zqT{N{sE9BUQ$6`u!)Muyu4YsAW>*!dQrpA9<rgQHFGyKlS_6@rUrjfAlVKpy$z=iG zI_hB9^5b!^V0-n%T0uwLxmiJ+d1YHWy51mSn2f%ALqKpxW69uC4gJQ@?<X<eZXA8{ zap77rinHB-vs0`)>O+$5OaS&wr~E3q<EKHxFpJPH5HNJ6Hx=a4IsZ|2om;M`hi{=y z4r#?IbOr6S6Ohh+>X)Pa|7WfRT!;ABPjx^`-<Q6sZ3iQTm9dHt(H&i|M~mI3b6s}l zuYQ(`J%L$TDy&XO^V;e~fOY&cMx%~`&kw$*T{o7Ez37#h87J9-(nbl+d{AiW0mZ#Z zyTbZiENa+~YJ;|NVA;B<!=qD1c3N}By4NmCF$k%M0kEmkMPY?a!W8)aqaci>ULSO~ zfJK3ETijJej$M*7NQRycG0e{@G7umvI-k!(`scHQD5gg>tNE8nkl1DL#Hp>XjtItH zEKQQZX901Ho$P}f5<(A4wVrtZRyQ!Yh|jfD0Mj*5g=C3tZXk^Fbb(BW|ARkthTB7= zkiUY_YA9tz!YvOAZoqyY_>t-<V(`JZ8wmIeiOp_f2D|!QLRZV9$4X=~FT##^J7=Ik zOpXO7Q0X2UP(*UF5JU^lJDcjtT$s)mp;l$16=NT8ke*h+LB_<u79V+U!c`eKV_^T4 z^k!ftJr1<8Tg_OaM8gPY&rKE`a3g{qM>+#CGw^TmILgVhB2N9WNIHNG4vHK7OeUQ3 z6VYx7V1j?tmyLmNN64h57||FvX8|nELZ!1p5G~1AA2G_pQeVfiVC)36%rQ-YxZ_RS zuGr^ghfp5_4i=l$mN&?J=SqoQpnutL16T;pJJ<~hmis6OdAiSZvYG8+Q0FO`HE;u= zTFs3yO0tD;djii1pi`AMsZ$hl5Lm;scIoG3z-16y@TZ2f3MnPRpuh`C_lkYm!n&oz zcoUwIA(Oo{XyE5A*MmU_jS($LxLjPTij!_cSLUxWeQc0Cjzp|V;AG_3d$xY<l$)6? z2Nv-NOIhh=M!2iIPJ=vte4z?bN?C=1%nmeXR!eWAE*3I^{Uj~TA#>&XwTyenQYCk; z1pkN#AR}=pq^!VPsHWObIsMQj!HQT^No_?uv8XCNh1<cW(k)^Z+<Cw7mrH|@uMUdS zB_=(f$7oHNOQxSt+Jl%E<VAh#xEZ$uA%#8A8%}!Oz=6{9tyc05#^O5NriJ1FB0ouY z>`5C4x%`UGsH`KuafIDQu|SWGXRoG2>Y$FlV~nQx%nabXwa!lGp=GX}R<@1*0DwHt z`OpRd(v7w(|0#y!AhS;bJA$`jNQ+Rg;CER9SUQyMcRL77h^9x-Lwp2TA$`K<ISr{0 z=vnTAX{K&Q>4+ZCDVdbod{Zwch+RJLVG(bE*Bx0fPE_HS1UO)-18M_r#}GlLQw7pL zmjUiN%^)T7f3g+ky+~C+*iOe~ttR@e>R|5jj)$styXW~AQ5WblgC*VukOwK|<AgX3 zIjRM8*_C)5$1M0AGVz?GgW5oT;>2Wz<<5Arf1pOM>O)S;QcIguQ?m>|_%NLA1elJ* z+QoLP!3+ipU$4V8qov0tZE5SaJ)0obq@*h*hqIbM0|nOv$Hl!du6<{Fa3plRbNh$e zg1xf#cd@2m8goFGuR)!4T?p8$#!%CU=*8kI^QJT#Wd*0kocnb&Mflq0QWl-DnKIJb z4T1G+YJP_~323WQ8f?F%mO#mW_v;Si$A2yqY}CZL;lQ<HZ8fBZs99EJFlTuub6YGV zsjNPYgD?&*+j#8MnRELNQ@u#QILa=m)5wJ<EC;1Qiw+9~R{Wg;dzvyJ-CTj={U==Z zEwVpSId|Vkf(SYlYbX^Po~}#?&5#N9%Ub9Lq}mg7M&y@xNs5Qk48JXI_Rn)4QaFOW zjFyMVV9!*$TXQg#!}7)iu=k+-@Meh@%S=`&i1*{cys=I}%BS$gkG#0M0axs}8Y8s< zV=O3UxR5B?(o34CHf4guQ9)e3qFwkxu~11JIrA+w=hO#>01*|E0FA!4R8YW?I1Zjy zX)>|D!j%FtL%I95;q-|L^E1l<oUpB<7ayi3+V7T21@`b=xMZNeZCoOB8Kq}CynOUW z<8o>NjD?O6HD*0YMS$B%S!`R^dPAD^VcyMPQjzLu>k07|28d6*UOOVtW9ti{U_=Rc zD)Hq=^#R`q5%}ZP@46C_%v`{aYXCIW4x5i}5ZEisTpwG1FgrVb0rsW?p=ObM5v3j= z_t@YERHurBbV%F?NY=_S*7N>0mLL<R$4#6PT_){%<ck_RttPgRQB>2Bc+&zfwPzPd zsx@|<BTHv6UFmByPj;1{`%5W)wkj<PtVCQe!}&X<i}USCMJ49B9uLe1)zkL!Z=Sg2 zggtPh7^KYT*!@~x9x^63ueX>1f@CkN4|Vn&@sc<)XLUkS=4c_*7f-ViY0u<d^c9Hx z-K?3wK2vPgZ!ckkSR_x*NS0=@t*<L%I4~E8mHdy7w_U$1^r*xjo&G7eX-+p1DqBs6 z_zn;6%HUG=<s64^e#W)Wa^#9$dBH9pF&&kySuMoGC}9K90`OS{!=MPgo)70fYSW=5 z6JN|Y%!O~_j3dWR7%n(T$ViEsuc8)>Rju2w!@`m#MN8Fayi;@1z{3BJrv5#d@l$6q zO&p_(be+MC&s<tE=J-8z@rMa1iMf$B5YmWiB|k2^(6J>87oAmhz)KkI1OM<{Jj+Ol z3=%z70=FBIki)ryKNWC~k&F3vx<oy>EXVV2mG$^}97~9uG5h6icFnTbnP3*@k_H-5 z;S@v&At??f`u&MZ5WI4w!ByXuAW7&%3x;5F)MeN+`$7MZx-etH)X>dEc(9plAvBqv zM-6Sc_I#t_-k|!vCW6HWmc3cmJ754Fh9g`YN!BBXXC91--9Al)cw9!8gcj$p70YvK zX|gESXU~oIBgv@<s2QthY?UDkUP|j|qSo+#XQH{A1PqOk_jvkYu?*29X2j%0ASXQ= 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 Dgd54a diff --git a/src/assets/icons_for_shiny_tray.js b/src/assets/icons_for_shiny_tray.js deleted file mode 100644 index 263afb6bb..000000000 --- a/src/assets/icons_for_shiny_tray.js +++ /dev/null @@ -1,31 +0,0 @@ -const icons = new Image() // icons for YTMD -icons.src = - 'data:image/png;base64,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' - -const pause = new Image() // Pause icon for dark mode -pause.src = - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJ3aGl0ZSIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+' - -const play = new Image() // Play icon for dark mode -play.src = - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJ3aGl0ZSIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=' - -const pause_w = new Image() // Pause icon for bright mode -pause_w.src = - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWg0VjVINnYxNHptOC0xNHYxNGg0VjVoLTR6IiBmaWxsPSJibGFjayIgLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+' -const play_w = new Image() // Play icon for bright mode -play_w.src = - 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA1djE0bDExLTd6IiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=' - -const dark = { - pause: pause, - play: play, - icons: icons, -} -const bright = { - pause: pause_w, - play: play_w, - icons: icons, -} -exports.dark = dark -exports.bright = bright diff --git a/src/assets/img/controls/pause-button.png b/src/assets/img/controls/pause-button.png deleted file mode 100644 index 3d7d31b37e9c28859eaa3fbcc9bc0662dd823b93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UoCO|{#X$M%Ak65bF}nh!BH1Iz zmw};5m4Tt5nStTwe<1yWfgy;4fl)Mqfx&7z1A}<}^(grXK(!k^T^vIyZoQehm-n!O zK&!miMD>$W^Ax!q{AU{mEm^vChQiuzlgNXYEgbim*qw=g?veRm*7q+5FBhKWJhbt$ zYz_ZOr}zW|mm|Ag=Y5e?OVW?{e#0bp>9U#k0(+PEB&7M=@X1ONvvSZc^!mTe_@=54 zQ>`Vl)-g}fqtoilj)+}gigMu2VBE@}Sfr-awN}GSSghZ_B$Ktqpw4#&`!u5i_a>}0 pJAEm#wk~b8Zpr8GZ~w?LG~M%izWm76-9X1Pc)I$ztaD0e0syj)Y-|7k diff --git a/src/assets/img/controls/pause-button.psd b/src/assets/img/controls/pause-button.psd deleted file mode 100644 index bd60a138a318105722e41268087df534d8d51690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20998 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 AegFUf diff --git a/src/assets/img/controls/play-button.png b/src/assets/img/controls/play-button.png deleted file mode 100644 index d2fad314a43b4cca54a8878a69dbb47f7e0431ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00009a7bBm000fw z000fw0YWI7cmMzZAY({UO#lFTB>(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My!bwCyRCwCNl}||1VHn3hztIK`Is_UBl4W%0wu?Bt$PONgz=IS6*?UODigs{8 z7)YC!z-yNuj1}@?41yH}wWQ5ItObK2!GlUk8zPp3STMnGzqf<U4k6q7PVjjzFE2db zm*@M3$5J#_t_J%#QN4&TH<`nhi+TXo{s_W%=F=^fNV7S{Bl%4OL7`BDqR*64N^Pm6 zx~)Qkih56#1Fr{wQv?~ICn09URXq-ze`<7aj_$zAfOvu}^F}IITqMGcf!258fjDa@ zqnmD`^xbRzD#D`4&<9@niO~Ddvm*v-`rxo?BZQynDG|gbEtQcIFEC8xO8YCz5$6r9 z?8e7^f}H*$?ur(}EV#MED3>QrZi+$SG7M8QLGI9#uqssugEV$<oi4a`)N!uAiexFk zQzL+%WSD1rh{w{=22kWkvmPTZH?&7^SS7_WPN)1}z`;5*WN|_yWks9BGP7jZ3S<A@ zToXW%XPVLkwk&DOSm84%R@w8*f`Jc;yy5*kHqYhn`i$hV4xZM?G0X0dOz1dqXaA#L zyd}?%2yt1~v+|3Nu`X74&G&I8Wl?)G{atN2Y`I{x+KzEM{}}*2f2cD`frj4z0000< KMNUMnLSTaGP4^-I diff --git a/src/assets/img/controls/play-button.psd b/src/assets/img/controls/play-button.psd deleted file mode 100644 index c678151e47130464164928060442372ffd6ce70c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20396 zcmeG^eRLGny?1u={RQEpqR;9WKD5?+>?Rw@3WQ`sfXYIeUA~@GyE{ACteKtJ%*-YM zv7n`(ZQpy<wt9N{+QU<X`ks$hAGV&OJp!$W?K!?@r3IzW`Vg%RF%U2W2qg1<zdJMg z5u!LfzW?TK?#%D|{_gMo?wvb1=g$1*wg6#>UL0^^X)Q2mEv@sLm-}<(Qh}-TnsK4L zIY_8~Ye8dQBE)s^DjVjbF>ztV>6i9Zu(8O(inShpjX&YzJ7dc>%6wqs${@F~i))Bf zG%hMy(C6)oC*r&sV*BEPsCfGpR)iu_nD+vV<mw8Ril|)+E1HnOuJgCCK1t?TPgQLt zSL1TA_4QS*I!}GQ>o(S1<8oKmz+Zi(tIq4G_quOqjZ(3w2%rUWq{G|Z(rPpZ*usiV zRZV!St9yHUt9omzBsp5`YG`OcGj4Y!NK`5tL^ae`DJrvdBc`1eUg6|eLXAlxi*`d{ zDXA{3sKAC&#pqW&k!na(s%RgpI4NG;7fMvSs%olJmO*g=#Kh~9`H(8fK}ix8={;}j zlvGLSloG5jP|x17HYP@-Ugb**swax4+fQ5KTS6+o2;wup(p6LGY6!Y(ymhr+kEgPx z)>~7PVMLdlV8bs(VjUYy8x55%ccr^7=yG}MJYJ70(?*8mL>n-kk&qhtOja^w4Lb{} zF~}J~rz48-nn1tWU_`joSR|6NK!-fSRr3NL=S5Y4@o;62M}+fsNOC-+E(#?QLW~RH zkXQGJ5n~_|=Ey9lPK$otUZ)yKIiHnCDfX4=lwx^(k|4=2Li{4vg6hf0pSRPHntuP} z4x5=Dk5^ANV-$5s4@@Rwa%Oea)Kr2S5`1+#uSiLm<CpZn;H77%F^~Ly?{ZO5Ln6m7 zZ&?KHRK;QuuiM?!Jl|8}^7!2KOPXA+`L}!KH`IGPwex+oo`#kNIvuiAvy&NkEfSZ+ zd@;;MESSwuy~6A&IR@)zNXU>uudSG$#KaZNEQ=|yx@<6~kiJ~ei4@?wv#I6`6Jm5? zB|@^oW8@cBn4!;HymU*bLr2gX;&8Go;&3_RBMYjtsA;z*s>S}6LDOw#sD85j-cDZp zwB=AYMWsI3h$3~Uy&;)zib5V-ZI#w7W~)pztuJvxEPDWSYWBF889HGcCto9VDm?b! ziCdj|<YqUL8i3CknApY7*}QJfZp2bp?Qq%QvJ?SJ!ghAq;j$C~OTu<`+2OJj0ZYPm zcG=;w6ah=Zc6Qm}vJ?SJ!ghAq;j$C~OTu<`+2OJj0ZYPmcG=;w6ah=Zc6Qm}vJ?SJ z!ghAq;j$C~OTu<`+2OJj0ZYPmcG=;w6ah=Zc6Qm}vJ?SJ!ghAq;j$C~OTu<`+2OJj z0ZYPmcG=;w6ah=Zc6Qm}vJ?SJ!ghAq;j$C~OTu<`+2OJj0ZYQ4nq5WdLu|YVC)ax6 zh#EcP=B0<;F2WVh!0G4ZiW727R97X{L{bG}E{e1%Y9I^;wy4B%QRR6t8Ak@f^d670 zaGyeT1F=4oXpX6<gKXU<FRu*6`QVauK_Kak=?ZPKBy|LMHJMlyzK;Xu7l@BYL?j&~ zMxrE1WD+7Dk`q8<NrdolZ3CJ_dVr3lD3P)N7&YB2sG{LzNjMo3)R;({0e&Hs_W9S} zNoW-AKogEixTK>nEh7r6=t(#Q_}8GMFQJNN$B0h|%PFKis`yigPZoV?L{!trim;%h zI4h%SPYPKQ7g|yX#5QfZnd^!g!J*wFq<v|#54>@rOYISsjY!GxV(EVorDdrsUO{UX zu9Rz*Bf-_8+B&;k!0}F%W+B2(MsHUHmD1b#gvDz%Z&|Es6!q{N9K3-uaBy1C$dtBd zn_^}P!YB!MbepW;J9IM>nhnA+z{#2oaDq;6lexv~(E=?~Iax}qg)=X0n6)u6YKE^2 z8SUUxv!tq0T#&@5p;BUU(1i?osY!2-MLRPY#U=xMOUYyAI0tnf$og>xvd&@NX;#gn zyfULvxHWDeG~b-3bWUkd4v7k!IyxzGu@KdnNjWTB%Se!By+{<2fGn5ENth2D%m>JL zD(j)L<#2_B&@_q>5@B@i7b%{DS1Mha!Xp&FHih4SxbtI*7t$+SbSpROCu58B83kkq zl^v#1(+GON5S%x8l)_N%c?w^TK227fe>FU!Vh}UkKRlxg_6@9tVvNxjYysQA#CKBf z3n;~yt&YW@2-VQN0U?s^`E`go(O2C|L<wPyiZI%pSTboWFtKKpOaYUTUOtGJ6maFk zZso!0Suvtan7y3p0v>e}Q$CefK%9`5q&c0xEU-y?Iz183Q{dz#udESP-~?l`+R3Fn zAWwsuPm$#<8Exf9Wht4+BIQZ+pq{yQE(xG@{p20kC=Df5X(=!AGM;(^0>Kk=hH#NC zj1=T7*B=W1-~D&OQP-@83JrcX#jixOA3S*>K@EnYSyE*jF9<=tPhGAo3;I`>%UFR) z&Jr%{l;n*~LM&=NWv1wzUuKda0QnKVBb21eYGDsAtCNVYG0EBD#o;JD(wY(6a@~IO z(i8(@yiyV|)`hB+fJe5%XRcdC0xWP>P)oveLA-)q48z_zQJl`UTd*Ng0@cwtL}7i- z;@SfVXUx(W6vKqp=P1e(XER)Is<1}=x^BohkIW*B_LeqCO6Vc*dwqW5)J~Byijl|` zkY}_%k*%bpprD|zpro*{q`bJOxP0c6l9DMiXHB0zbNcjI<t4NjHyxRHWlD>SOUp{9 zmX%GNQC3zq121JWbd~bYVnEwZ$_t<atdprAj&jCX&S>wz%ynq5Fpc14E<+1AjKxV9 zM^0{DenDYTF+3EqnedEon#`$$$zhz197k?`UO}$2q!yUv&YYX3xpJGn8k%0w{h&K< z#-so8T=VQXGusb@YwP5Pe(%el`&eM;_!&;|eBsIe{N}ut?*}7Ge*KhMf6be#-{a5j z-TIru$rB&9-u#1|-+KOsul(Wt;irFb@Q)vyThr0A?eSf|eD%m*Ms8oaHrl)WiQO+8 zI{M-Ha^i4+w>i|O{JdNbb>Sx0v>foDyJC8-`@u(Npa%!qe?L?^CwyFf=rLblCa2V$ znVW|W<j?c``b}`+scRxjR@bZidnp$_*@K(YE@;O{iIcWjP8!Lu@V(Kyw;vw*PWP7+ z%3b}>{ruJ7yZq`SOLx8cz?9KrKJVqbz26~UKXL00fA@(l&o>&!3)fzDZ~BjmtMZTc zj@`NX{U7Z8+R^75wl?f;Yu&N+<TppVo~hcq>n+!_J-ePP{#o~j@3g$oar)h-4!0co zFXhy%w>@{<IOn0i{L{`u+Xnx9QoQlb{;~Yg9*rE>xm$Z<IBoTVJH5Yp@Ei61nWL{h zHgxhp>70cx_2xHrJ+P;!G5p%^&L@i-TQ?8RZTYrF29Dex-=`7Bzl|5pt(Lx;{Kw?o z-hIFL`#R;r_-&0tPh5Io^T9X%Bm@o}P{eE3*Z=tJ;>y^l=jV5bBZpUwEc(e$pWZk0 z?bnk>SI774+P3CEDYuv~Z~uGI@-Jy`(>Zt(O|I2&h4}^>ZPElAVTpu|&2T5cDpZ9a zlmLn8SCL?0iya{KXi%Tc6#x>Z%I_z)0#HEmnQ3%$i8~v@Tt{C7u<0=KcPaQj<`zQ+ z9(0V0KJM`OD>H5i<C^fj?J@e8L*1QF-yo$gwG#q+3*-K&AAun7Wrqf@%k6d7vF2A9 zV3O@%^mcLIv%`_H&+c%hVQ33W9^*88gy(;{AIuHuelYVg`{7_r8%&iWZCkfS$T9%1 zFUB3WBKd!y`!C#z<NAktuj^rX0N=namiurFMflQ!Mv#z)8wD(Ypw!iCfiDz?Z%nW? zpoF%Bjy^Yp;Wla|^S#B~c%UC7YtMXd<H|=5T`vQ<EFMx+UT$3%=#8mdr}>;CEpnhU zYxh7Ypg=c|yci0bn``2S7Y=i0-z<oJY|SsIn0W9?B(vFOmdXkT42&9CDsRwVOVWFI zvMRwDuN1JiZ`y)lv?QYf-Op1+Aruwpi$RkZU3`xzLP(3EimCSz{UJn|zOH!cJtZv- z`70#l$>di`3a`^;bT(C*M71f^@1QIOvilb3O!z<+H+p1coMnwoLOxjmdvy_}C+^*8 z@yR``u}O1e+wjS4Du_@U%jAvl`IBT=*U_(QWR=ULU0pl#MbOmFpp^=t4ZQ4=;NuY? z{auuXxD|3D+cr|bhkW$IOaLkxP&Wu>0<;EH-0Kq9Qncc|O;m#^p4>`#0musEO_n$- z<+!e&nFbl@5!lEYuYP@kxdB02pE1!^9sYp6*U))G`@?(}wDS??;$i?{Gza}cQbdXL z0#*yvq5t;-pgyR%Pz#J#A}SeA3M^sPXA@%<)%RtqOHlz^$0a!3dI5P2a46^>e40lj zpp{9B=~`a~kx$iPvem+T4+efERWrK?-87rQJMClvNa!UM0LQ+47_mt>R9otZfkFjT z`p$@JA1RnIt{Z_RF9jRxSyDuKoW2F{U<#2q)Cg3T)Sx~1gc7Dt4&<#&@eQ#E;!x>s zlM}+&lN`)V<j2Gg><?W95$_Vaq)c2;5*=AMN7FOa8`M!c<JiVBsPxU2ODZ@^vD87u zH5{7*kMV;}_yHh;Qb=c4Fc#-=(l#C4^2jaMHBO^`b@a)&Mxt(ZVIT(!;a6n*3P~}A z;5iJx0t)MtBH*B0A<1{v9C^HAkmPRGwD;9nrwMsvOk;k_4H2^avgR0jx#cWCqnhLV z&YOn;x}Z5uKfsOvG@>~U#|tk2G^{bNtiA}q$C~r}UKev2z%!un-PvORoz`;RRcC^y z+Xpqr?>Gn9{*lIvtxMg2`Z`iU?ysA!MLEzN|H-YW3kEMAY<8l-Va@SJ!8r;LG(7n5 z7qMY*W_*VWof*}fm-a8rI|tw;jd}epa2opIc(c3s4DDL~CiXOeuKsAwAV%C_{nxKq z|LMbndC(S8>9`}@>Q}meQ<Cu?7q{V4Ay7-<|29+T&%93oN@)gN=i;>tekCx9W`Fb% zFNV>@UlH(dq|Grm;fY+Te_T7RjcLvodw0CouZ?SY$M65(SITok0|0A#G|hQxx3K>s zK$xFB4`T29^S0lfLhPBnm$jVnBM(1uY)D5(wVcs|J^wmzR!1*rIp?13e(~b4j*e)~ z6Hjsn&*|8(mUHa;|M1561s(kuRR4R^J^dGT^bDZCRGvS3Nk<_+26o@Ke|$_w2hoXp z#>aK+Bgljw9-0gRxp&iYU}Wgo_&(DJG%<dlZ_jC?32<QS*!Fw>Y&Zb!z5nFB2geNe zMzoyaz0!+gBYKn2v+>_-dS<}r8T9+|(XFBXG5UQ8vi^y0y>{sg3e%9i_jF_*h76;b zbLQFZ7cL9}hH-vb-7_$t2mhzX`(Yg5M~;&*;*1}8yt1FbidO@Z^8Q%^2yVWl5$+>| z9vRh`msg)c5T*jN^Nt}3j%ds__ACWqX2uJLDR@>Rcb%gUOs~CPVJ=YkltyM>q|l(o z^vt|O!2ylo9AgyhhnJCY6IwS3WN<+xVyJ+j&DZLNz<Ql-eMn=z=G2=!t1*IegxUo6 z9==g`@0><%*L{Xby?<@q85DTrqDCULf6!^ByLb?Z7>X_IfF7P7)$~K8j+6fbwTrMD diff --git a/src/assets/img/controls/play-next-button.png b/src/assets/img/controls/play-next-button.png deleted file mode 100644 index 996d6b3fd3b9b6d4767570507fe5632f3b6cd0cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00009a7bBm000fw z000fw0YWI7cmMzZAY({UO#lFTB>(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^Myq)9|URCwCN)lZ1baTo^h&#alT+vGq}4l6luLQY#KNe(t=f3w17b{za^*sZ-$ z6zvL!{ZXX0Wo>N}4wQp!YpFTOI&l#8pd>`wj@jksvdl%z?01s){ye?!`#euiB39ot z)QOjbwzYC1&uc<llmjJEe>aI3ZC4Lu@A`a1R29Cn<<4O+t>a7o!rv!kH#=!fpB~Gq z5X@_kl9H09sq%xVvSvr^$Tz;VySCe7;tD|`fwb-NR@`>h{9qMUIb~~ivSdTBj2Zj1 zTQcTY9X?nuujP_HtAmZSRM!4nX567*CnjytW#x4}76e;)xlXP5#;>*oXCZBuoaP5Q z>j=|2Cu}-z;P2Abl*Yvl>e!nZv*=&Nx!Qbm&*&|YPeBCF44de3A!viLg2zg&9tNH8 z#(-D7PWu+{gBhcSO}4uc^u+fHijl~RAQhe}_;B3iAQ>kWjF{QzNstd-8ua>{GrrHw zNO6p^NA4@_F*tW8Hl<A%GT!ToceMc%Bq{{gMrtjVA3sgc7K^D0L3C4%)izXYDgLQ8 gW~=SLw)3w60PKQt$OYfI$p8QV07*qoM6N<$f_+u*?*IS* diff --git a/src/assets/img/controls/play-next-button.psd b/src/assets/img/controls/play-next-button.psd deleted file mode 100644 index cbc52ed26ea9dee0dcebbc42d0ef485e17b4ee8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20518 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 diff --git a/src/assets/img/controls/play-previous-button.png b/src/assets/img/controls/play-previous-button.png deleted file mode 100644 index 0639cb76f73cab21772698f4f70f34bd177dedaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmV-N1i1T&P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000fw z000fw0YWI7cmMzaHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A00N6iL_t(|+T@qNOB-<*#y@E;#v2+!5QGGhMR1U$a0DDGN0LEI z|ARK&T4=9Je@QDXw3#F=723s6Xs4KjEQe@J2OX0_6@*$H1Unc|h)57S9MObyXri_a z)R?me?E?qL_siY;@V@W!yu7A*y^fK%fWZ)&FVSdp98iGn6Zdi8fsXMmHDbi0(dg%& z2ms31*qB`qj*q6Nr|++>u6_bCIs{j2Hru2u%Ve`zfZM;8KokUllaI+{0x)+N*bThu z>+740L?Zb8et=uQl>j)8ZoJyn)s>QEnZdz9EEWrghlc=KD*}4L3OsYUTu+9Fhw*qk zM;DE(n$DBJWkC?~k|Yrf1`$Q^bSlsZcO4GL>p&oY&*y7Th8@BSC<6lnN-!9tr>CcV zALsx#L{WSf3Wbm)3A5RJHX}L%E&|WpZui5HkrA9uXJ<~>Cc;*$HRt#H2?PRIESAo# zxD7n&?d^RL3WezJ@7He@oJL-NB1uw2mSyaAyS~Hd4{(U0m=A};c)i}Hnfx2$__PGd znx+k@s+ydgon>!t&yWlhfa}Z4%a7CPH0$f@hLzxDsZ_e6sw(sI^Udk@*L&bYrBbmK z3WbS8BEk0dwjoXU4HzvJi#HRA1WQXx)M_<DRPbKYG~e9ZTwGOEc6WCTk>MBM&f41A zy;Lg2%F2piKJcboE)UJj%#h3F&@{~uBPvv@)$YZ`#qp`BDK<AZ4ROK>@N{cy>sm6I zB%jY8$+fYG)msrTodc2d!NGxNVPRn+lgUsjm71elY&DFuYPD)T`E`SBtwRz;V02?+ z<Ll1O&ZI2M0B>6nh{s~FR;yV?r)<Rc_xC?$vstC_-ydoJ@3-Uc0{~V2)h|ntz^?!R N002ovPDHLkV1iJ7^QHg* diff --git a/src/assets/img/controls/play-previous-button.psd b/src/assets/img/controls/play-previous-button.psd deleted file mode 100644 index cc4e0c55d9453c74be815416e0512b60714a4358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22916 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 L8O?hP+Wdb27_6!X diff --git a/src/assets/img/controls/thumbs-down-button-outline.png b/src/assets/img/controls/thumbs-down-button-outline.png deleted file mode 100644 index 312aac0d548b31837ed7d084b06dc0487ea31621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmV;B18@9^P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000fw z000fw0YWI7cmMzaHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A00GoVL_t(|+U%DxYZO5o#eaLOj8lX|S&rk1G(r@#@W2BFQ&?yd zNMVtH-@#HLMch|gh!F1^*x2|1^dqc=7AY+3kM$rNf|G;eCe5ClakJ;{nOlntEXy#% zy!ZYy|M#B>y!X`E8r0k_2!ut0lJ<dnz-3^vV6EAlkHBk5E?eUn@C5jt;f25(;Ju_t zSOEU6*X!*hNm5qS1K^>gt&GIWKf>N<Y)+@sOJ_zv(t5Mm+)0uINkLf#l05Je2(o^V zGhTQG4o0I<CGb4JQio8|nlWa(mMoAI0(;}}xU%|X)6g1Y_G<BgO#SvM)t`=lHO9QH z(+RJyTKz8qlGcD%b=HE=TDw_mF>=nWJpBJxHMG_u$^VNe%zJ%aANY2fzz^r#qfV#u zA!l+`uYa2TyTAr;Jcs#3(gYxw-3c=zx(z%AuAEW-kAVFm0+PJ77U$emNk<E5dhbhp zaUA=iv3|er<2b(gx9c@Z?(N+o<?VKxG)=pb4$mtKc8kCVgF#o)=krX%`vu^=vfv9Z zr8(`+`~j5YTdh_l<y8s%raX!w(lotQX3v);@O<VIQ4}#84sS^Mx{PTBW#5L94uEUG m3rU}rb<N=7aauQllK}w9Nfl0;Al&5u0000<MNUMnLSTXyg`-jc diff --git a/src/assets/img/controls/thumbs-down-button-outline.psd b/src/assets/img/controls/thumbs-down-button-outline.psd deleted file mode 100644 index c2eafed2c04ec5da51d2477353eaa3fb9bfb5e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22147 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 Jm=S$O{s*YwOU?iQ diff --git a/src/assets/img/controls/thumbs-down-button.png b/src/assets/img/controls/thumbs-down-button.png deleted file mode 100644 index a9dddb7e357cb6c16996175e23222ff0ac8e289d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1028 zcmV+f1pE7mP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000fw z000fw0YWI7cmMzaHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A00Kx!L_t(|+U%FlixOcN$3Ocrg9(M09YoAQgBH<+4jl>=+rwfk z(Lr#7VE=%LJw_J~f`?%5vWi#1LmdMz9y|#m9qP2FJaiD(#G+cJWv1B<DcQD@KWPrz z0}ss1`|^H2@AE$MzR$aMdU}eTCa~FT2UyGHa#n5E02R0kTmp<KV~zXNfg<n;xI7x; zG4KJ9MqUJ70)}KU*gZf^CX+jUzaL4GFirEX>f=70PG_^#YCYF=eFxZ##bWBl#s<g7 z#|R-1LeOrv6NiU~Rns(OD*!c<$?QZTk-0+}3<e2>LR72O7rL&qwYBv}A4O5f=ku01 zaNp%}EhIh(k<DfoPC|8id)v0Z;JU-%c(}g4ZVP}Ugm@p1$8FmOoU$yFNF;0lkc1GQ z|7GaU0yt$^CY?^(2Jpb+@z{12TyZ!Y)l@2F8-OH)Kv9(c$MMAh7!HTOc0b_D$;k<o zN`>9s-Ia;dYBhjjsZ>%u9uJ1`vz!n@aCCHpX_`*~V_c9(LI~aK^%4$;aXOvnp8uMr zkxV9M0@&Z*N7J;cfCAhEzD-Q}E%0vq0$`Y?DR;ZwTitFq4Y(~TpuJfD4h{~`G_44H z9Qhl|LT2LG0A7#$JiFuf`}d}amr5o2{eBU6vg#y!6pcowiuZcGnZ@S?hz9}z%f@oK zJh%ASC75QneLmmHX1)l3Wx~y~=F2QWv0ktL_MuQHEG0f~1fDgUO<XRQ>UO(nG#U&B ygQdjh1^5aSYPH&T;Kt~7^J?j<*@eFy{}=#ZMZWK#)3#&)0000<MNUMnLSTX&)XgFQ diff --git a/src/assets/img/controls/thumbs-down-button.psd b/src/assets/img/controls/thumbs-down-button.psd deleted file mode 100644 index a5a786d4b665f43bb8b3e179fb74ebd630c8ccc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21849 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 EZ<IQm5dZ)H diff --git a/src/assets/img/controls/thumbs-up-button-outline.png b/src/assets/img/controls/thumbs-up-button-outline.png deleted file mode 100644 index 8725ccc900a35b204bedaed9583c5fd51bd9cbb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmV;01A6?4P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000fw z000fw0YWI7cmMzaHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A00GHKL_t(|+U%FHYTHm0hCdmDt1KqP5yGp73>liieuQ@E17t`a zA%T*ikRkAs41sj)I~3ZXgP}vabZDUk1?-_i8t9V27-O0t!_5U@WsyKBwXC|fL`ctg zrF;JWKj-Ki9Vdz+%Crh4Tj>O<i*O>T4IBbLCGGyrUFTnGK+<}n(Ks8A$H~zPNiPdY zfuxNDT#_Tn0Zt030ZE&l=Y3DW3oSxPZQu8MqtWOVxTFX;T`B=do4)S{!{Kn6@-Isx z5QFzJzyaPYg@B|D&+}%1Bk9}1KSN2YuIv6X#>@hbfFodaO3%3j-T{3{;jKm_sRcX& z!uaR`a4xA2Y|jEu*+JIBX0y3J7!00B`Xni=#^6=p1JL?Ylz>+`)8yoMCvsi)qcP?o zaG7q!t=}EQA<gYPFUhpu`!@~a6qGxTjWM5-VlOKNdy=jSCm<=R)oK7gN=t#Y_8DLb zCy-L#O}b#=5wO-Cr_~omAf^5|t-jC*SZljU<<C2gqj}ZW>ve$L%-`}#rIH1*0=%Dx zM5ogs2!gkgE;0#BCX+2-C+<)oum-%2RTxQ6f#<;E_}+Dno#Q$Pg0GT}mbMrC-wp3P bftvvUfECZ~Zs2_q00000NkvXXu0mjf^KFe8 diff --git a/src/assets/img/controls/thumbs-up-button-outline.psd b/src/assets/img/controls/thumbs-up-button-outline.psd deleted file mode 100644 index f238e643e0c0a432b6ce21b32ebc4daf481222b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22145 zcmeG^32+qGmA_|3_W=T7dmYCf3me-BIz|`LSOTPxI4THaX*iu-cBZE_8mp&!=<d-$ zb~8Q_a+Gt}gb+543v36+8@x{J09z&tHp|+zwNB!LfaBPS39t~e7;#AAkm!By_c1d< z2KR=o+S=+Kb@zYAfB*gW-+TR9Rln<++dBzEw8I5AH$Ah7Q$x*<)ip0{bKOay$r>(s zrL;Q`o^@Npoc>sV?co%6kPAnI#*$OJ_LR6Ip~jNsHEk7bF(20*S+G{(I@d1tvuk_U z`cTQ7*|`n<-u`GT$|(VNf0P$wZ+~M+AS4DkFSHR|UgD-KN>5`+6B67j+S=VdQR3V+ zWmTnYg~#Krtu6CZ*VNW}X1XgYJeB1Y@K;;vsrJ^?dMjtS^`m5VF0>k?P?xu(Wu879 zK#e8ciW2jdm-qGcmGxDXiBh=SQ(s??Vk#?3fumF&5R^cFsUT0+gcx#KIGL3qF(o1j zZj>7cigBf}qyz^t4}D(Im^qLjm(e+vv0}8mKM*VTlvR|QlA&V**u?9TxPT%`eo^FS zYcp@}78OzM7GrK-XRZ70<q;ty_R04&l#gdmj-QmowFDGyHrS`G)KgLFsrOe_c&n?t zH8rIbRo;q<6d@YtI2mnXDAF}x$fz&%RF+m&`#m0Sb&c0kpDH7TbG!^#&rm=Kd@3oa zyt<r*ax`*^(dmk!y~g3MwHP7RT#Hy-;^~ry*m92NqMV?}upXZD^$4-vE>VgGl-Yq; zjE}GZT=Mc>A*3&4%vhO*@+9l^*4iAzR6fm-O!AfPWRko-kryRcA#Qe6L-|DLlqE}& z7y5kdlGqjDIo%UG<~O_Vh9Ic}=bMo2de0p^ysd5Gc^d%~jh0Uoc(T&k3o)t3c$&qG zp0a-+#+7$)vKW_GuC*6@AQ|X-IJUKU7Yecx5Lj+u%WP1mED{NMJ-(*qx|#}4jjyt{ zwaMeDn^jX+Ut3dCRp+a!sc)&LQI*~`#lUn@-WHLKquc3XLl(rQbiG3C5-9>{IKZdy zpw?EzPaxuoVHQMWNKykvBx+fY#$zY9CLL=8Dj%Wo84E}<hn8<FF-)JD12sw5hpwPE zz+%kJW-%*rp@#A_Y*MZ9-6H>!Mbl)bbp2%cechaJwXCX%qFkRWL>9Z0zJSCvg~1Q5 zmFzW%>0QQ))-oj@NnZdBo4ziFhmKpviBqkHg{LPxxXaBaclsda0$k_D_$gjz@tQb$ z5KCsY&1IX*k_9X=+umiH%aR2wG27l{o6C{~EHT^OWt+>A1uQY!-esH1k_9X=+umiH z%aR2wG27l{o6C{~EHT^OWt+>A1uQY!-esH1k_9X=+umiH%aR2wG27l{o6C{~EHT^O zWt+>A1uQY!-esH1k_9X=+umiH%aR2wG27l{o6C{~EHT^OWt+>A1uQY!-esH1k_9X= z+umiH%aR2wG27l{o6C{~EHPizyK<9z;Wz;{!1cjSH$wNydFkG{3vk7~blSeVyqFXb zlqGQ`7FPh7fh_H^(iwz}UzB5^pm3ZJk0Jrv^d1en;XaA>?TqvzM{`8MK1kMNa?;{J zl=HW)@B>O4OzQxfdBm<xPKn2s1Rr35cmwefkqD%VL`ay#i9`bA7�$Hwh6AuI+#m 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 diff --git a/src/assets/img/controls/thumbs-up-button.png b/src/assets/img/controls/thumbs-up-button.png deleted file mode 100644 index 1ea5c7e555755d0a35126904e7b568336a35e28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmV+c1pfPpP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000fw z000fw0YWI7cmMzaHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A00KoxL_t(|+T@q9Yg$1Z$3J;}fr_*gN%i5-!OqexxQIBo1UhzU zbq&7YRw#7R#UYSc{{TU#0f$ngnTo{Fr9(k&c!eTb2@Vx`H1Hztadzl4n8bwFRDDAZ zZn@vx{XTc!yWjn8Z8DkQW|45YtYx#=Ma=UYP=Oyn5%}hGpu7O*g<vqK#^Z5DqY<@Q z?H=$3I9&xmVPj)M-QM0lZ_ssJJvur9*je@&DER$;HIvC)XiOv$*m5jYf`XzbYC4_% zZ~f%kYCgN|v*qOE1mMfEu3<q@lxv*>^m;vj#xejLZF{TL0(iG*2?~C{-;w71ejnhK zT`&6@0af5DU|j}y3Ot({fcwCApzHB?)SVqiw~BZ?j>qH4T-j<#!Y~YukB{FD1_Oi; z>wq-{c<uA~_5y(bLWsY(vdnNeWH1;M!{M-Fono=rjrM3XN~u($)9IK(h;<o|B}v*# zCX@JlzAFQAxtzMSwYAXrpGu|J-QC47j0fk3aGvu!@fzMufNr-tJ?xe%00##LjK|}b zz;9OohQlGi2UjGhR;!q%31GMaplKRHh=<dNyHbF|!@~=!UpYXd(Lf0CWahnD9e}23 zjK|~mz)x4=K&@88PTBuG5asiEI-Sm~owwU<bX~6iAFoYF_V@SM+}uP6fe-?(*Gse6 z1Sp!O`KeqkS0a%Jp->1(lCUi6<`8T5>G%88>-EaK)zAKnWZ;FJPFr?;43zDGr@$lI vp0N9$ImouofY0_Ezvcqm`Om5A0DlGmr%Kn?dcmz=00000NkvXXu0mjfCePk> diff --git a/src/assets/img/controls/thumbs-up-button.psd b/src/assets/img/controls/thumbs-up-button.psd deleted file mode 100644 index fef3e95629aa682ed387ae1eb84ce8f617fd36ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21849 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 ZD~)X_%>nFWEX@I|kONG(1pUX~{{VDpkX--( diff --git a/src/assets/img/notification-thumbs-down.png b/src/assets/img/notification-thumbs-down.png deleted file mode 100644 index 69b8b6aaf685602ff065ddbf3f68b5d0e66ea6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcmV-C1;hG@P)<h;3K|Lk000e1NJLTq001-q001rs1^@s6XEiz&00009a7bBm000fw z000fw0YWI7cmMzZAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ=!bwCyRCwC#nome8R}{v-WD?XoO~jZKC2CvSMkB$UP^dwrT2LAYn7fdGi!2^* z)7>ky&~Dpp7gAhB=o6k3M3QPqptceO7lA;VX#Y?btrn3N7a9{CCv$HXZxmnEWMU@K zK0J^`X6DY!@1AqNd(KHTj4`}Urp0S!4?qt<H8x$j0|+5508apT07w;1rUc*_fNuf( zEFW(M@VWeq|4ujuU|+ueYo6yT10sZcY&M(2KA#T*0|TIx-kwIQ1*H`6c>MAF{QTp5 zKHm%AHvmsO9?w&c#{-Q<b7joo;bCVW5cn#QNEiTodF958F-0G**K6_n{VbVGGBu4- z$|8{n^Z9(t>-D}jJw44fHa3cmIXXIGUa$AXb?;e@ha5JW4GxDx)tJ|4G#DEj1Emz< zaQJrsFdB_T$JEu;0l=eMivl6UVKf@oTrL-MI-TkZnd3N2OiW;Wd>n!xAfL|{y<ScR z*sVl?5TfHaZgX;S5+frcRaK~#mKK;yCU6{ARoRv(rReVNuDaw3f^ZRr)dZU8=;%O0 zLqpYp7-Ntm36<oR+7jW`VK$q;pPHINdwY9LHpWVm<x(DU_4f9{>2yM?txZx<$=+5J zh!CRZIPO_nTU%9>t(b>Oc}ZSlnsPnlayT3q9UZM`k(TQn##q%v;VrAxist6#nt6v( zdI42bb|nb_3grU5ZM9l!nkk=qrj&=|b*3DM5b{Z1U*Bggm#gMLO2VyJrl7qB=1q&m z@{Ql`huLht6A!7q4_S;xBWyNX&5JW73U?bIc2}LCO8209SAr{1xZ42HyY!F}VUW*j z@4bgOj)PXKEt#3fX&9#z=u{NNn!`wvgj_BMQ511-a8NY#(&;n+{HV0R`#Y1#U}0ea zZnwK8Wdi{0?Cc<&PUHCa*tNX89M5L67#bQveSQ5!IBsumBb7=a9*;xr{9Fyk>t=!w z(hA_I+wK0;>-C=3@Kv?d)m6;R%|Q@^M*zC@di^gwJw2}g?e6Yke}DfA0N(-l>$*0U z<|fw?LX3L7{?O@kVt9BMU0q#}BngE=;o5MJBngd;jc9FcExUxyWHOkUnZf4f<_LhF z<iqs<KDg8jkpTP(VEcSrSwJ#W9e@v;nwpjk218L<WsIS-vlD*5ALZnLr>Ca~1OixF zTLWW^1E6>_D!b9h^Sl6Hg%D!NX0s-FmTr3B`*yqi`FV&ag$ad1SYKZUW2~VZn43(e za3(SUGDSRTG8hcc2L}gB_S7ynL>3np5e|pJ7;6P^s>WJWs}vpU@9&4*ZdY{i+1VK) zkqA~+R=^lD0?4W*E@}b2VKSMZB-|*aSXx>_BoaZPQ0P<>M$JrtD#?^7rHI912#3Qs zIXSWLJinv1{MW4eA&MfR(I|q!AVg7g$m<gK6{t?9(-qx+VzC%_o`)a^@9;doU9E{z z3+Ru%y**^JS(r?wS5D+|xr;Cp1mWFk!l=21en_QKh(@Cq{poYt+S)=e7(_mwxA8px zXSG9H6(FAH1yK|&p->3PWD=q%LKH<L5(&)C&O(x;k9eN{rzU-gN{cx{$mOp?c=_9? y8!tPXQ8_D)RpaH$&gK4(_V7Q22cR0;zXJepIiuDASKxmD0000<MNUMnLSTZw160}o diff --git a/src/assets/img/notification-thumbs-down.psd b/src/assets/img/notification-thumbs-down.psd deleted file mode 100644 index 82d93001bcb3b6ba5b8182e9d518985c0f4c6fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24475 zcmeHP33wA_-hXG(BlLnoD+s8uT<Y2*X;a!RrSzasq|j|kfdbYvnWmwWgJgQ(F2eFD z?((T9f(Kr>@F^dP2Oubl^;+0PkV7eQ2qO1U3Wc^IO*8v{-^ompQY8E6KKuAQnPF!B z*ZY6}@9(`+X3}zsN)UyFBM2S|aHSwQk_n=MWobDDg+W+@&|QP6awHoxY}^e`8X<bh zXNcGiBes1`tsb^fz3mI*w@33;;Z^cxq8o~J8KXvJHCQy-8irF;GJ1n4Gp^<1#yEvR zml-!zU6@p8$z`ey;~%y%B@a(3)jnLKP1nU`jSd^tkkMeY7#U8ZXfU!STSh}>oJMD^ zWHNxp;>0)wG2v=5<Fc_rF|Dvjk!!Xx3Uxwqyf#UxRHUXRC{xs_sml8mswAZ<F$w;q z#w$}Y)TtS&kqY+_H#!WcQC3}5MsZ%gJ3HVq<ElB%l98BLUtgb4pPXQ}>Jyde>FL;w zN)-<l@wT}pPSX%?vJDZOh<@@Io7QTua0atUf&FSK&9z)+TpZ3wI^5+lTBM9jwgghf z1g+Va*r2f_Die|tCC`v>6kw8(Yh^T?*;;Bgv!jKQ7gd`%v#r`}QRJ4SD(;zTFzL+o zwtGh<b~pFr@A1UsX*gyy;FA`wOo~^gm#UI7Qj#;&>iDGOjHDzlCxT@+ABAR}p=z$% zhbk#P3EU)?D%AjRMpC-B4=>B^KA=8z8cySv7jIj)pHYbzWG~Q3jbgmI$!}E|I;~U} zmRc)Is$8c{WLU<?m^d5Mhtjt`blQw6v(>2KMr$k<)}YnkDo?C4>D(1*5o=~tqQ~^t zj#|n@3f`w7N$MM$lcdVXHM3?b)DSZ|c~oLg;$J&xXqttEJqIkde4{b3rygVD#@0b+ za(7OjqKYYPrE@JzVliVg*IKpA*gB{@PY-qXqr$?B0+Wr?n6ykm-e?FX!C=s3B&X!$ zs8z`$)0KI7W3!dY?4*>u+~oX}WaU_Os&eE=(j9!0`Zi|J<(aj$xV^aD>cFisKRYK) zoupLfs#3Arw2|tx^i;JvIW0F?ot~F2y7fwWgWJhg1B{;<*2@M*{qMN%!Nm>Pj5pX| zbeSu5Az`>89jSzw<0}<=7;7LM%c8N`7>s;ooCv-5;3as%X-ExbXtcPqjMn1ejM0rs z^pSeP>YmJSW2N01UBS0k(wqCQuVzd?HyjGCh}F%V*vwU2y~fI9>!BUoYLpf{`X=e_ zS{UM3!+)RxY?``X27k6HH7`w-qDmWkvp)0h!|$0%$ZVY?%|`zn_&u#wTdgta8Qtha zvB8Rh-%^d;dX)PmHP&tJ|Bcs}(DQu9K5@A2Hdgk$4iTiVw1ib{qO`2Np(9J<+^<P= zZ<N2LZ^>666A21`hyYyvpd{G@;F6&5hX}ys4@#0v04@m%e~18F{-7k;1mKdO@P`P% z<qt}dO#m(l3V(<IT>hXW*#zK{pzwzXz~v80l1%_E2?~FR09^i{B-sSulA!R12*BkJ zN|H?gE(r>MhyYyvpd{G@;F6&5hX}ys4@#0v04@m%e~18F{-7k;1mKdO@P`P%<qt}d zO#m(l3V(<IT>hXW*#zK{pzwzXz~v80l1%_E2?~FR09^i{B-sSulA!R12*BkJN|H?g zE(r>MhyYyvpd{G@;F6&5hX}ys4@#0v04@m%e~18F{-7k;1mKdO@Q3(WxWYUyiZUj6 zJG35N110Z~W{`JGufx3$T*CXS;TEgG#7(Z{EVUd6gRx1GjVq~ymm-Npfr(=nQ>_sz zFioCDy#k)SN!k)a1GdO9a5xQC3qBd^B#n_N9XqWQL_%glf+DNgTvftwwU)`1v$deS z4do&;GNCGDKzdY*tVn~-pc5cdARS`hUIa2TsslMb!Yq;p;E3xSmNU7djHs+Nu$;j} zvH^WBVx3z!{Q==k+uvgsbUfTVDD?G0VKRB!)CT(g*fQ6`nZ$yjT(;6GF~xdYp~U1` zO}QS%#Ce#Bm8?zDOwx085;NAw=1B}->v5f<t<k%|A;m+ecw9~{L_=OMF4id&I&*F1 z81s)fLUN3=nr@Kgus7P}SaqdSOkDnuViwo8bmXu)MNjf#8_N-SQ3E@sZ2p2VLW;0D zMhh>u!F#6gMy|W16zPj>VoSj^wuC1R8%<=Y1UKEXErnNYd&;&%%L?)$t9HzE?13D8 zv{tiaD!f-#gj=n_q!;0f!ir*uDaXulW+Q7h>D@^pL=6tXOCBl8iw*i}Z$-GMfY>B^ z+<#=vLJVlSi-J~1i%-(Gh7(<sJ5zXMEkLBb$u0?+$Wp7uWP>;R&YQFb4M`JAGzz#! zp;FT7O~{5U(8{goJoE=G^ap71#8ypgqu~w>g69c`kd6|xcMzVuZ%!g@C43mR#E08Q zq-1p`@p-#1FS|<kUgQop!S@K<OQ6pQ{R}9Y<j_W><56N&6=+zvhY$(nmc0Jr3Q3{@ z4TZ|#F52MIPzd)yw}kk#1COBm?x=;>J$KnztoHEU)GyHyEU;@Rn;R*3dT~jFquf~I zsBzr5W6DTcIgz+W6M77|fy?dbPD~-GW`YJ{R))(jlpM3-_X7ml-QfksefO57xb1Ih zAS&DeVb)a3;*l8_D+J!4H|cEMMi(uo1RV(zcS)(;gRon_K{=lOg+F_Miap&2hZbUk zx3?Kv89NaV0F+NY!9)k*zHo&SrXbHNuTZ_!Tx;<Wg_z09y5iVAwgh_@-o6DNk(yf0 zJdQCjR{Z8G2oQd2)@>Xn7-I?66bO^nf4clKc-`G+(j(yeN(yay--$6q!*Zn>y^mFt zmSNdarhzN4jV~>nC=Ro7QS4*ftJ-XRIGZ)-#aXboQ26np7yt;>F;$vcGVJ%NW2{^c z=4GPT*F3yZPhM;H0ykRlpEFKUV2mf3O&IH5oY?|P3LE1+u7<HN0N)^us3ZgS4f1fP z_Ui8Dq_^FJGeQw?(OH)XEsTM9Y=j2q?xit=!wou^q{8+nr~+=dFNuBVWrPMp?+waD z0}#c3&o`q8@*#+d+(Jb2mrxYpkZu7^#~((Iq6oQM-b)_Qt5-yHcvyIJZ10GO-mwGv z^^5J-Z$NYeIouC{>3*jo!^0z^BKt%|^@)j!ii*Lvs2Cwhv_B5`&rq}+J~)yhqv8-9 zP06Au{s-u}LHt)#7DO3Lkplw8hYV44P;f}7yjNH_Oj^E5n8ReEvJawyC>b3@2Zx5p zgJluPpp2FU-Q8Cioc#w)zqmPnR)xeo^ZNTaLx#o{e_olKVqLg5H+0z2lFP@hXl?4- z{<i*qhUYz7svG;oDlWDEz9~O3ts5Tw^4r=ISMx_KTm9I^<zIbw^4kA>@b~?v+RCcx z7CraIrfp59+eeO@s;__i`8PLjKX9fa8qqXF8$@CX4GC705bjp?4T1>f#PthS{rQ;~ z9Kq+sdoL#stvqgBxHPvUR%=VSGAslK5IS7_#XbmPRe#;sDXARulN7?uBN*Wcfj@*I zWF*gMl!e-+OdYXC_0pou+Ud_eJ>!%8Wd|c)`S|FC*9s^8aQ&sXJ60Vwa^H2XvlweP zZoM=rWTVNpJYmU{MbDo;Hu_WTldql__CeoC@mX7rO?dthy*+Q)*X>VLxXPIMuPouw zR>LEEzvj`7o$p?Kzp-Q8g9XFVd9-QH%L5P9tiSkp`p(YZ)op58abkblAlrFus#$NJ zyj%aq>Z5P`*gkSZUuW60AGaOWub%PIb|YJVux0D6qdd}ow07P8reo{UcGryg;}zqP z<F6;3&Tlzdwq^IV35}PVM!1gbS^CmHhc2BkpWk!Mv~Ek&-i3;hsb9`|D)WV=Pdl1j zC0&Vy6{U_R`#0|S=QgVSr%{IvJ@x9!``5o&dSGc&6OZ=&@y?TphhO+|+}>peA_pJa zaOj~Wr<6;yjqjaYc6RmJ<86c4?U~EN2Rc@6-Bjk-`TMiyYNmIt-8aFi%DVE0zw+oY zBahZrZfMH-+kPG`dVhZVPmkrRY+Ignyc)87L!WsoR<@QO)_wEf*Rom8!<$rZ&Di?t zs)Thj=4Fmk@82+d%a!*ptp9lCz!TadHI|Q_3^f+6`*hXqo#*b|TQGEK3BR|kbSVJX zb^nIuJI0J}TU3zR`<o}1J7zRqn4cYW;NbqZ>(o*ApSw8hqmdh*HV!%DWa}R}F{}9> zjjj!o8?V24K5P9W`$m6ze%`8werTUxQU7Mb!3$mg>x^nCxz3}#Z+-Y$Rj0Z_ces7t zs(l9s)otI*4qd(cz^o~o)~>jH2C5mb7g4Lqn;sjwv|s`W=AbYV-A%gQ6u84^1luH( z4cizqs&sE<s)6R<vLQ@az@pzREEKRoDnY5(p^!rykcdhsEJXJKAxEK9U$Qm8>rzAw zB-=QgbtN@OqGwb0xNTq=Kq<*$0IyE0l#0-J#C-a316c&%w5#FTgCajJMhMn`?&r^b zCI_jK;FC8=X&K67h4|eX7=l((LcVw%x{{Xsr>vAoG+9VMej$|19V4ucJmsM7^pt}d z?p+R=5`9n!w8uBNBFA{R<FdG)VPjw+8$(vlc=d%hyZ6GC0D~vQMo$77K~5OMK^PNi z5S}|s@Ld`n-2=LyG;9F}FgV4nFL|!U2w&t;BtatVi>+#a)i6~`ym;?G#U&cq;Q8!+ zDzYX$vwg4?QbZXwHjc68Pb;Z6aN25dMS$`_<g?Bq5=an=vtdk{O3Ac@o6CxOwEPl| zY}aA#&BumCCazS{S@VgmB$vfGqe9qnin<)uRETAhtVSWdMeE)o`s~$E$-@fw9<G5E zXKI`dTq=CS?QwHEWz2mGusIyk=GIFlZEhtQ!55$ae4l_sp_tbiO(mGdUZ7gBNN3a4 z1D6aJO_~7KHNb_NgLGg^V=b#dRHGy#$qm0OxmnNR+;O+{<W4p<pKcZ6gAZPr5M+wC zH=@iSr25^hQb7^DlT|WxxQ1}Mrllf6F>&E=Hc}x;D$*~&R5<9yM$&bJU6v@tPm<bP zWdIV7Lu5aQ`-spVumyAt@Q5jVV0*UKgzfPdBZt9EgN$(L;8LI@qBq%aI}2hpbFGA* zYrxBSynZ8lEG=7!OA-VH6l%d#g{utf314HXF?;i@%~IvVYe_qnV|#p%GE^IJ9^>Jn zFt4q(aaadO3S6G;lN^604S!Y(q&R?H5G7+RH5eKED@^u*U7GoY17;JSRSi}=p!XRQ z(eycc+vjyz2Vca;0!TLic0JMHwKqA%XB6!HqfjKQXT>uLrh^#xO)Lhao-=~b;SNL( ze$(FCChNHNLT?wM=3eb;qwU8hcOoiw(<MH*>zOdr`z;5LE`TJft(gz%TrzOrXCP>I zB0BbE#|57LOYirAZ|i~;-?Qg<deyK^ZkE~(?2E%UyV->Oz`k%d(Yg?Q#|KW#-}M1j zL)J6wXL<Vh!Gz^uX}RDGu!A;&wjJ2qv%oGJh_%2X-D#d)+8--hfm;OJv;DE|5{<G? z0JnSq=9($Rfm1yF+yHFYjMOJVK@v5i6rh*hCde_pBvznRKtFLCPTYbp{q*gh0Nsl2 zJH-b%=J$Qg)ybpx=!ki(XZY~lnJE5=i*|e4XMeg2Lac8;%ZIOkA4%kSlP6Ccf}3q{ z=mYN@Y1-r5O@DpF(Z*B9v)fS@qGN_AI`5<hPdM7n(^oZgJGzRfspmU@`IEd2T|-pw z4ZvKhqpx9RO0%7(+ZTmg#SDA>I!`<2MYdvQw%q~D($Fgc)5+8JCn7FmW{$Iyr=ARN z!Sn;?x_G+f(cYJUp+o1jxp?Z`pk~N3IOP93?C-^1#I2B)&L9}wLZK&wz=`icFp$A^ zKstj#D<`d|7xJ8PkjcM?Est<^xsLEI7sb1N5FbRs69JDvi(ChJz6-ey!~GCXb-51l z$azq>y5K2ZU<Pgu@iM*(yP)yIb(9ar&n_1%t6XP#WF!;+h#=zc2OjY*2+HdjfF=M9 zX=**SqnknlV>TJTi!>aW1Mqy1UudfVafH`grt;}|1JPg@r(<EH?nh4i#8+Q9u>?Pb zGX~ub<G%v_q7dsI|M4skMd(NrF7;(kum0`&?gQlt^XrU)`LHjPzE2O<5+=KN@oeMi zrl-qWXUfZGuK1DXudSNZHIptkyxYmQ^Rk`QUpZRsa)*6O#Yz61H#)lPGRK9*Yn(g` z%vZGEz|`p4H1l-Db_Y+jRubv{`F5Bdog1sF_Ji>H3@2~rWhb;-oiIhdSMfE->@%G_ z9=)e+hKcVB(>ETGtLzYnJ~r+4h<4gefM`pNXyxE#7pr%5VcBetjQ-*o2TYq=szp&J zFLO>?>%ubqE_WO-FYH^`0`upGRoD!N2D8H_FTgyxNr#QvA0(1D-T}#G9k#jlkdt?U zdcj2yeaK+ZRgIH}iRAq36ELNI#Nc#-h&s{$6Xl1*lPIYNiQwB?vQg`m>S!I<te0}@ z;wd8eplY8xB9NSz1JkZ^t)>yCU24Z-9DuB2)|&P+e8jOwnr!P^9S-~cHM95NU}deV zSHTh@{F9mX<K+t%Fa8Vr_W4dIXh?hc<Nr8w@<-<}`p8*l8y|LI!FN3G*tcWH&a>Bf z2Tbd`D%shc2D*CDIjH!K=gM4Hpz7$>v*$Z6(0^ZYr2~X(${m;a%RJpyu@hMP>ax}r z%x-(?Dpd0Icc!;r!tCZ(I<NDxt~C!{Y{u+|FFT;tx;B-!UUaiiJC60UPF}$5#+6-A zF&k!{J&(Cvk6(teU0YXi<{YpxNBJ7Ni>G%?Yd*`j@S&~Kw>ca;w0q9*(D1%{s=R#h zp3_o07TfbKKG34YRu^c|ffgMYqrFDkz!?4C9i!1M_t}Q%(Rjx#haGn!?Cci{JMM-~ z)DAz3!CK)SG}q3fg-+CgQ0zG#4ex;6H{r72r+L_R+u`RP*r2pI5&YMiAlOL>6eUp; z1<HZY9fye)s2Kv)2|r80Mhm<El`By?pjwG+5m1+$$O(Vrg-uwq6Sk{J@x4f?B`T!{ zN(HhOk^)oU57OQT)O&=A_=!iEb{>tx-l>?sp5&>pc$n7zbXO-1Ch8O~&ldO2*O3EJ zp%0wl5q$;9D{Pq2RM_jwFQd!w6F5-)S}--`Dvu&BVT!%RqdS^0HM@;RF&7C1zZKkj u0aJ4T#UbZ0^#H^$^c<!_VfQ%bENt{q4D9Oj&!9^vcnsbWk2@_@*S`S&ejdmG diff --git a/src/assets/img/notification-thumbs-up.png b/src/assets/img/notification-thumbs-up.png deleted file mode 100644 index 7b5cb37cb200055752e36f87b08a5bfbb2827432..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51<Lw~P)<h;3K|Lk000e1NJLTq001-q001rs1^@s6XEiz&00009a7bBm000fw z000fw0YWI7cmMzZAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ=yGcYrRCwC#nL%h2XB5YOvooKwNmxB>LkKl3xTVE3X(f=Gq@|W_NYbpR87o)_ zUV^9Ir1V;7p}p0E67b?d;wltES85EHto0yxvB6c_rfHHzsYx_D#@!iaW~T>tORXDs zHrXAc<iQ+v=bLZ%&3o_v-uHcy>$<#37T^`LO`wf#%6cczG|lVKC~y?$23%kiH~~zo z_1*D!{F(nGKSV*(v`@Bf-Fk6oXoy|Ab^&nx`gM*UKaOqNjlg2HfC4_iye`Y~#i5}g zIy*ZNLLh{oqoadZEQSzb0Z?Cx9MUxHt@`@<^uWLXt*xz3-BVSS?(S~d+uH#?-ta)0 zrbSd${r$j!1MJ(kkA{YZXU2p=A)1?;0p8xwK$@oQ3<iULXqrYe8eMgq<2cy14Pb5< zl`8@Bnh+v&=+Gge(I|m{zm-9$GE7TdUEN$yPmd=UNs^Exsj88pR1qemD9YU4y?g2H z?e*jt!!XEXG5~*Xs2tKXEi6fr-rL(tPfrh9wruhA+?_jjxN+kKz}QCW6oNvC#s2<& zVzC&i>aC>cy3Um=SIB0wp8?wnSE&y!0~xQyS6L@aK$4`~?%lhI#bN}5LC?<`hCwcu zBODHo6!NHKjs*e%ve_(;9zE&<#>*+9Qm&Q&I}2Y4;4$z^JRUa+zdvYgZDn9!pduK6 za5&77BS%<SSwWWNk}!&*Aj>kdv$I^jeEFxTsVOYW+6L&W3QehAPSdnEfzO+on!et? zefz%&ZWso)Z{NnUtoMLvRaGAk4i2(s&z_pgv1yu|J9m!J(b4aK?}5cqy_`}4CfeB8 z_;XiR7wzrsL?V%=fF>p;n4Fyab#891YsZcqL?RJi>WiwX?BBm1A;hsnB5}+xj1aKm zCFG6{4i3`U+4;;3Aq0JWeS|_GPM<!VY-?+yrKQEUqFGm0$H9XKxpwUu>2&%HAmv52 zKWb}hdu}ldhr<XVXlQ6C8UM95Ap}6sYaMd(`TTPyv~8PwK9A!#FU1l(UvAOox-PEk z`rfDgH%eA(3Igky^hE*Hto3=p9+Il=q17sUEiIi+qw6}rLe+qZAb#(<E-fu_>eML~ z78bq${_+YWdHM21Ver$E$s{*#-uxE$p^_X@%H>88#BZSc_wNJzS*a)}<%(rd;rtYZ z<>lof&`i};&UIa1W!rUKE?v4rDwP6ARtn^n3njl5&bDpt-Mfe5IEMkNCUwX!@8t7& zrlzL2b?a7H@2tBH`C)hO-sQ}hGb}AFeG1Ii1W1x3WLfqFDwoSKKR*wUs9Eb%%rUPU zBI~i~>FHv4ds?TgX_Lfp95R^<4<0<I8HnRJOioU6{``3y$9Wg9*Xp6NokD$mJ*uj5 z;lc$Hi9}7-MYe5|OeWEF{lii#(@KCIo2FTIPt7z<9zJ~d&dA6JV`F1g?;2966zO!D zN?=w4I&t#kNfs9uu`CPIG@rT*!(e7+hHN(bRXiU5%{0xOXV0Exe0&_!G)q2H$z@p< zSFc`Wcz76H*ZWuNsw>^b`jRK-p-sU5<0;RRv(azj@%VD#jP?D(_``+d&9B2bGVo*J r9nY;hFYJu<rCG6V0&N0q0`boPl6(RD-w?R!00000NkvXXu0mjfH8OkX diff --git a/src/assets/img/notification-thumbs-up.psd b/src/assets/img/notification-thumbs-up.psd deleted file mode 100644 index cb32733313118666c8278b052c8212f2e3c036a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24489 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 Y$%Z(f`C<6uOq^pwoYrD*EYf8E0&=PtL;wH) diff --git a/src/assets/img/null.png b/src/assets/img/null.png deleted file mode 100644 index e61f84bbfc3f9465c2171f24aba0acdee89670ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)<h;3K|Lk000e1NJLTq00031000391^@s69~H!j00009a7bBm000XU z000XU0RWnu7ytkPHfcjcP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-pOwu}Z^G6hP05 zqT*011aWY9lPD;*>R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL<VU%GIYt?Q#()D~f`@{@W0MH4u)NZv70OBN$_`&BZ0^oVm zt~(9>#(bD64NQRTZj^-}DnS22ry9f<FoS-oLEHhRI%(HHJOHI$?k_+o$o&l{DcAEs zd;n(8^?Weq05iya1u%7VsR3$9I#Or7Q!T5OWl6i61d%)*WjY#Uaz73el_sjAqb`vD z2f$*!*ls#<t!i0&>-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i<hA84hn@dQ!CAE4bN! zh3lfNR-wEF_v0_X#!vm|T2EpC001CkNK#Dz0D2_=0Dyx40Qvs_0D$NK08$750ToyP z06Lcd02go9S|5-A000w7L_t(|+G6<s|33o&009600{{s80{+vbbzuMi002ovPDHLk FV1h<VxK;oF diff --git a/src/assets/js/materialize.min.js b/src/assets/js/materialize.min.js deleted file mode 100644 index 840b4cd97..000000000 --- a/src/assets/js/materialize.min.js +++ /dev/null @@ -1,12335 +0,0 @@ -/*! - * Materialize v1.0.0 (http://materializecss.com) - * Copyright 2014-2017 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -var _get = function t(e, i, n) { - null === e && (e = Function.prototype) - var s = Object.getOwnPropertyDescriptor(e, i) - if (void 0 === s) { - var o = Object.getPrototypeOf(e) - return null === o ? void 0 : t(o, i, n) - } - if ('value' in s) return s.value - var a = s.get - return void 0 !== a ? a.call(n) : void 0 - }, - _createClass = (function() { - function n(t, e) { - for (var i = 0; i < e.length; i++) { - var n = e[i] - ;(n.enumerable = n.enumerable || !1), - (n.configurable = !0), - 'value' in n && (n.writable = !0), - Object.defineProperty(t, n.key, n) - } - } - return function(t, e, i) { - return e && n(t.prototype, e), i && n(t, i), t - } - })() -function _possibleConstructorReturn(t, e) { - if (!t) - throw new ReferenceError( - "this hasn't been initialised - super() hasn't been called" - ) - return !e || ('object' != typeof e && 'function' != typeof e) ? t : e -} -function _inherits(t, e) { - if ('function' != typeof e && null !== e) - throw new TypeError( - 'Super expression must either be null or a function, not ' + - typeof e - ) - ;(t.prototype = Object.create(e && e.prototype, { - constructor: { - value: t, - enumerable: !1, - writable: !0, - configurable: !0, - }, - })), - e && - (Object.setPrototypeOf - ? Object.setPrototypeOf(t, e) - : (t.__proto__ = e)) -} -function _classCallCheck(t, e) { - if (!(t instanceof e)) - throw new TypeError('Cannot call a class as a function') -} -window.cash = (function() { - var i, - o = document, - a = window, - t = Array.prototype, - r = t.slice, - n = t.filter, - s = t.push, - e = function() {}, - h = function(t) { - return typeof t == typeof e && t.call - }, - d = function(t) { - return 'string' == typeof t - }, - l = /^#[\w-]*$/, - u = /^\.[\w-]*$/, - c = /<.+>/, - p = /^\w+$/ - function v(t, e) { - e = e || o - var i = u.test(t) - ? e.getElementsByClassName(t.slice(1)) - : p.test(t) - ? e.getElementsByTagName(t) - : e.querySelectorAll(t) - return i - } - function f(t) { - if (!i) { - var e = (i = o.implementation.createHTMLDocument( - null - )).createElement('base') - ;(e.href = o.location.href), i.head.appendChild(e) - } - return (i.body.innerHTML = t), i.body.childNodes - } - function m(t) { - 'loading' !== o.readyState - ? t() - : o.addEventListener('DOMContentLoaded', t) - } - function g(t, e) { - if (!t) return this - if (t.cash && t !== a) return t - var i, - n = t, - s = 0 - if (d(t)) - n = l.test(t) - ? o.getElementById(t.slice(1)) - : c.test(t) - ? f(t) - : v(t, e) - else if (h(t)) return m(t), this - if (!n) return this - if (n.nodeType || n === a) (this[0] = n), (this.length = 1) - else for (i = this.length = n.length; s < i; s++) this[s] = n[s] - return this - } - function _(t, e) { - return new g(t, e) - } - var y = (_.fn = _.prototype = g.prototype = { - cash: !0, - length: 0, - push: s, - splice: t.splice, - map: t.map, - init: g, - }) - function k(t, e) { - for ( - var i = t.length, n = 0; - n < i && !1 !== e.call(t[n], t[n], n, t); - n++ - ); - } - function b(t, e) { - var i = - t && - (t.matches || - t.webkitMatchesSelector || - t.mozMatchesSelector || - t.msMatchesSelector || - t.oMatchesSelector) - return !!i && i.call(t, e) - } - function w(e) { - return d(e) - ? b - : e.cash - ? function(t) { - return e.is(t) - } - : function(t, e) { - return t === e - } - } - function C(t) { - return _( - r.call(t).filter(function(t, e, i) { - return i.indexOf(t) === e - }) - ) - } - Object.defineProperty(y, 'constructor', { value: _ }), - (_.parseHTML = f), - (_.noop = e), - (_.isFunction = h), - (_.isString = d), - (_.extend = y.extend = function(t) { - t = t || {} - var e = r.call(arguments), - i = e.length, - n = 1 - for (1 === e.length && ((t = this), (n = 0)); n < i; n++) - if (e[n]) - for (var s in e[n]) - e[n].hasOwnProperty(s) && (t[s] = e[n][s]) - return t - }), - _.extend({ - merge: function(t, e) { - for (var i = +e.length, n = t.length, s = 0; s < i; n++, s++) - t[n] = e[s] - return (t.length = n), t - }, - each: k, - matches: b, - unique: C, - isArray: Array.isArray, - isNumeric: function(t) { - return !isNaN(parseFloat(t)) && isFinite(t) - }, - }) - var E = (_.uid = '_cash' + Date.now()) - function M(t) { - return (t[E] = t[E] || {}) - } - function O(t, e, i) { - return (M(t)[e] = i) - } - function x(t, e) { - var i = M(t) - return ( - void 0 === i[e] && - (i[e] = t.dataset ? t.dataset[e] : _(t).attr('data-' + e)), - i[e] - ) - } - y.extend({ - data: function(e, i) { - if (d(e)) - return void 0 === i - ? x(this[0], e) - : this.each(function(t) { - return O(t, e, i) - }) - for (var t in e) this.data(t, e[t]) - return this - }, - removeData: function(s) { - return this.each(function(t) { - return ( - (i = s), - void ((n = M((e = t))) - ? delete n[i] - : e.dataset - ? delete e.dataset[i] - : _(e).removeAttr('data-' + name)) - ) - var e, i, n - }) - }, - }) - var L = /\S+/g - function T(t) { - return d(t) && t.match(L) - } - function $(t, e) { - return t.classList - ? t.classList.contains(e) - : new RegExp('(^| )' + e + '( |$)', 'gi').test(t.className) - } - function B(t, e, i) { - t.classList - ? t.classList.add(e) - : i.indexOf(' ' + e + ' ') && (t.className += ' ' + e) - } - function D(t, e) { - t.classList - ? t.classList.remove(e) - : (t.className = t.className.replace(e, '')) - } - y.extend({ - addClass: function(t) { - var n = T(t) - return n - ? this.each(function(e) { - var i = ' ' + e.className + ' ' - k(n, function(t) { - B(e, t, i) - }) - }) - : this - }, - attr: function(e, i) { - if (e) { - if (d(e)) - return void 0 === i - ? this[0] - ? this[0].getAttribute - ? this[0].getAttribute(e) - : this[0][e] - : void 0 - : this.each(function(t) { - t.setAttribute ? t.setAttribute(e, i) : (t[e] = i) - }) - for (var t in e) this.attr(t, e[t]) - return this - } - }, - hasClass: function(t) { - var e = !1, - i = T(t) - return ( - i && - i.length && - this.each(function(t) { - return !(e = $(t, i[0])) - }), - e - ) - }, - prop: function(e, i) { - if (d(e)) - return void 0 === i - ? this[0][e] - : this.each(function(t) { - t[e] = i - }) - for (var t in e) this.prop(t, e[t]) - return this - }, - removeAttr: function(e) { - return this.each(function(t) { - t.removeAttribute ? t.removeAttribute(e) : delete t[e] - }) - }, - removeClass: function(t) { - if (!arguments.length) return this.attr('class', '') - var i = T(t) - return i - ? this.each(function(e) { - k(i, function(t) { - D(e, t) - }) - }) - : this - }, - removeProp: function(e) { - return this.each(function(t) { - delete t[e] - }) - }, - toggleClass: function(t, e) { - if (void 0 !== e) return this[e ? 'addClass' : 'removeClass'](t) - var n = T(t) - return n - ? this.each(function(e) { - var i = ' ' + e.className + ' ' - k(n, function(t) { - $(e, t) ? D(e, t) : B(e, t, i) - }) - }) - : this - }, - }), - y.extend({ - add: function(t, e) { - return C(_.merge(this, _(t, e))) - }, - each: function(t) { - return k(this, t), this - }, - eq: function(t) { - return _(this.get(t)) - }, - filter: function(e) { - if (!e) return this - var i = h(e) ? e : w(e) - return _( - n.call(this, function(t) { - return i(t, e) - }) - ) - }, - first: function() { - return this.eq(0) - }, - get: function(t) { - return void 0 === t - ? r.call(this) - : t < 0 - ? this[t + this.length] - : this[t] - }, - index: function(t) { - var e = t ? _(t)[0] : this[0], - i = t - ? this - : _(e) - .parent() - .children() - return r.call(i).indexOf(e) - }, - last: function() { - return this.eq(-1) - }, - }) - var S, - I, - A, - R, - H, - P, - W = - ((H = /(?:^\w|[A-Z]|\b\w)/g), - (P = /[\s-_]+/g), - function(t) { - return t - .replace(H, function(t, e) { - return t[0 === e ? 'toLowerCase' : 'toUpperCase']() - }) - .replace(P, '') - }), - j = - ((S = {}), - (I = document), - (A = I.createElement('div')), - (R = A.style), - function(e) { - if (((e = W(e)), S[e])) return S[e] - var t = e.charAt(0).toUpperCase() + e.slice(1), - i = ( - e + - ' ' + - ['webkit', 'moz', 'ms', 'o'].join(t + ' ') + - t - ).split(' ') - return ( - k(i, function(t) { - if (t in R) return (S[t] = e = S[e] = t), !1 - }), - S[e] - ) - }) - function F(t, e) { - return parseInt(a.getComputedStyle(t[0], null)[e], 10) || 0 - } - function q(e, i, t) { - var n, - s = x(e, '_cashEvents'), - o = s && s[i] - o && - (t - ? (e.removeEventListener(i, t), - 0 <= (n = o.indexOf(t)) && o.splice(n, 1)) - : (k(o, function(t) { - e.removeEventListener(i, t) - }), - (o = []))) - } - function N(t, e) { - return ( - '&' + - encodeURIComponent(t) + - '=' + - encodeURIComponent(e).replace(/%20/g, '+') - ) - } - function z(t) { - var e, - i, - n, - s = t.type - if (!s) return null - switch (s.toLowerCase()) { - case 'select-one': - return 0 <= (n = (i = t).selectedIndex) - ? i.options[n].value - : null - case 'select-multiple': - return ( - (e = []), - k(t.options, function(t) { - t.selected && e.push(t.value) - }), - e.length ? e : null - ) - case 'radio': - case 'checkbox': - return t.checked ? t.value : null - default: - return t.value ? t.value : null - } - } - function V(e, i, n) { - var t = d(i) - t || !i.length - ? k( - e, - t - ? function(t) { - return t.insertAdjacentHTML( - n ? 'afterbegin' : 'beforeend', - i - ) - } - : function(t, e) { - return (function(t, e, i) { - if (i) { - var n = t.childNodes[0] - t.insertBefore(e, n) - } else t.appendChild(e) - })(t, 0 === e ? i : i.cloneNode(!0), n) - } - ) - : k(i, function(t) { - return V(e, t, n) - }) - } - ;(_.prefixedProp = j), - (_.camelCase = W), - y.extend({ - css: function(e, i) { - if (d(e)) - return ( - (e = j(e)), - 1 < arguments.length - ? this.each(function(t) { - return (t.style[e] = i) - }) - : a.getComputedStyle(this[0])[e] - ) - for (var t in e) this.css(t, e[t]) - return this - }, - }), - k(['Width', 'Height'], function(e) { - var t = e.toLowerCase() - ;(y[t] = function() { - return this[0].getBoundingClientRect()[t] - }), - (y['inner' + e] = function() { - return this[0]['client' + e] - }), - (y['outer' + e] = function(t) { - return ( - this[0]['offset' + e] + - (t - ? F( - this, - 'margin' + ('Width' === e ? 'Left' : 'Top') - ) + - F( - this, - 'margin' + - ('Width' === e ? 'Right' : 'Bottom') - ) - : 0) - ) - }) - }), - y.extend({ - off: function(e, i) { - return this.each(function(t) { - return q(t, e, i) - }) - }, - on: function(a, i, r, l) { - var n - if (!d(a)) { - for (var t in a) this.on(t, i, a[t]) - return this - } - return ( - h(i) && ((r = i), (i = null)), - 'ready' === a - ? (m(r), this) - : (i && - ((n = r), - (r = function(t) { - for (var e = t.target; !b(e, i); ) { - if (e === this || null === e) - return (e = !1) - e = e.parentNode - } - e && n.call(e, t) - })), - this.each(function(t) { - var e, - i, - n, - s, - o = r - l && - (o = function() { - r.apply(this, arguments), q(t, a, o) - }), - (i = a), - (n = o), - ((s = - x((e = t), '_cashEvents') || - O(e, '_cashEvents', {}))[i] = s[i] || []), - s[i].push(n), - e.addEventListener(i, n) - })) - ) - }, - one: function(t, e, i) { - return this.on(t, e, i, !0) - }, - ready: m, - trigger: function(t, e) { - if (document.createEvent) { - var i = document.createEvent('HTMLEvents') - return ( - i.initEvent(t, !0, !1), - (i = this.extend(i, e)), - this.each(function(t) { - return t.dispatchEvent(i) - }) - ) - } - }, - }), - y.extend({ - serialize: function() { - var s = '' - return ( - k(this[0].elements || this, function(t) { - if (!t.disabled && 'FIELDSET' !== t.tagName) { - var e = t.name - switch (t.type.toLowerCase()) { - case 'file': - case 'reset': - case 'submit': - case 'button': - break - case 'select-multiple': - var i = z(t) - null !== i && - k(i, function(t) { - s += N(e, t) - }) - break - default: - var n = z(t) - null !== n && (s += N(e, n)) - } - } - }), - s.substr(1) - ) - }, - val: function(e) { - return void 0 === e - ? z(this[0]) - : this.each(function(t) { - return (t.value = e) - }) - }, - }), - y.extend({ - after: function(t) { - return _(t).insertAfter(this), this - }, - append: function(t) { - return V(this, t), this - }, - appendTo: function(t) { - return V(_(t), this), this - }, - before: function(t) { - return _(t).insertBefore(this), this - }, - clone: function() { - return _( - this.map(function(t) { - return t.cloneNode(!0) - }) - ) - }, - empty: function() { - return this.html(''), this - }, - html: function(t) { - if (void 0 === t) return this[0].innerHTML - var e = t.nodeType ? t[0].outerHTML : t - return this.each(function(t) { - return (t.innerHTML = e) - }) - }, - insertAfter: function(t) { - var s = this - return ( - _(t).each(function(t, e) { - var i = t.parentNode, - n = t.nextSibling - s.each(function(t) { - i.insertBefore(0 === e ? t : t.cloneNode(!0), n) - }) - }), - this - ) - }, - insertBefore: function(t) { - var s = this - return ( - _(t).each(function(e, i) { - var n = e.parentNode - s.each(function(t) { - n.insertBefore(0 === i ? t : t.cloneNode(!0), e) - }) - }), - this - ) - }, - prepend: function(t) { - return V(this, t, !0), this - }, - prependTo: function(t) { - return V(_(t), this, !0), this - }, - remove: function() { - return this.each(function(t) { - if (t.parentNode) return t.parentNode.removeChild(t) - }) - }, - text: function(e) { - return void 0 === e - ? this[0].textContent - : this.each(function(t) { - return (t.textContent = e) - }) - }, - }) - var X = o.documentElement - return ( - y.extend({ - position: function() { - var t = this[0] - return { left: t.offsetLeft, top: t.offsetTop } - }, - offset: function() { - var t = this[0].getBoundingClientRect() - return { - top: t.top + a.pageYOffset - X.clientTop, - left: t.left + a.pageXOffset - X.clientLeft, - } - }, - offsetParent: function() { - return _(this[0].offsetParent) - }, - }), - y.extend({ - children: function(e) { - var i = [] - return ( - this.each(function(t) { - s.apply(i, t.children) - }), - (i = C(i)), - e - ? i.filter(function(t) { - return b(t, e) - }) - : i - ) - }, - closest: function(t) { - return !t || this.length < 1 - ? _() - : this.is(t) - ? this.filter(t) - : this.parent().closest(t) - }, - is: function(e) { - if (!e) return !1 - var i = !1, - n = w(e) - return ( - this.each(function(t) { - return !(i = n(t, e)) - }), - i - ) - }, - find: function(e) { - if (!e || e.nodeType) - return _(e && this.has(e).length ? e : null) - var i = [] - return ( - this.each(function(t) { - s.apply(i, v(e, t)) - }), - C(i) - ) - }, - has: function(e) { - var t = d(e) - ? function(t) { - return 0 !== v(e, t).length - } - : function(t) { - return t.contains(e) - } - return this.filter(t) - }, - next: function() { - return _(this[0].nextElementSibling) - }, - not: function(e) { - if (!e) return this - var i = w(e) - return this.filter(function(t) { - return !i(t, e) - }) - }, - parent: function() { - var e = [] - return ( - this.each(function(t) { - t && t.parentNode && e.push(t.parentNode) - }), - C(e) - ) - }, - parents: function(e) { - var i, - n = [] - return ( - this.each(function(t) { - for ( - i = t; - i && i.parentNode && i !== o.body.parentNode; - - ) - (i = i.parentNode), - (!e || (e && b(i, e))) && n.push(i) - }), - C(n) - ) - }, - prev: function() { - return _(this[0].previousElementSibling) - }, - siblings: function(t) { - var e = this.parent().children(t), - i = this[0] - return e.filter(function(t) { - return t !== i - }) - }, - }), - _ - ) -})() -var Component = (function() { - function s(t, e, i) { - _classCallCheck(this, s), - e instanceof Element || - console.error(Error(e + ' is not an HTML Element')) - var n = t.getInstance(e) - n && n.destroy(), (this.el = e), (this.$el = cash(e)) - } - return ( - _createClass(s, null, [ - { - key: 'init', - value: function(t, e, i) { - var n = null - if (e instanceof Element) n = new t(e, i) - else if ( - e && - (e.jquery || e.cash || e instanceof NodeList) - ) { - for (var s = [], o = 0; o < e.length; o++) - s.push(new t(e[o], i)) - n = s - } - return n - }, - }, - ]), - s - ) -})() -!(function(t) { - t.Package ? (M = {}) : (t.M = {}), (M.jQueryLoaded = !!t.jQuery) -})(window), - 'function' == typeof define && define.amd - ? define('M', [], function() { - return M - }) - : 'undefined' == typeof exports || - exports.nodeType || - ('undefined' != typeof module && - !module.nodeType && - module.exports && - (exports = module.exports = M), - (exports.default = M)), - (M.version = '1.0.0'), - (M.keys = { TAB: 9, ENTER: 13, ESC: 27, ARROW_UP: 38, ARROW_DOWN: 40 }), - (M.tabPressed = !1), - (M.keyDown = !1) -var docHandleKeydown = function(t) { - ;(M.keyDown = !0), - (t.which !== M.keys.TAB && - t.which !== M.keys.ARROW_DOWN && - t.which !== M.keys.ARROW_UP) || - (M.tabPressed = !0) - }, - docHandleKeyup = function(t) { - ;(M.keyDown = !1), - (t.which !== M.keys.TAB && - t.which !== M.keys.ARROW_DOWN && - t.which !== M.keys.ARROW_UP) || - (M.tabPressed = !1) - }, - docHandleFocus = function(t) { - M.keyDown && document.body.classList.add('keyboard-focused') - }, - docHandleBlur = function(t) { - document.body.classList.remove('keyboard-focused') - } -document.addEventListener('keydown', docHandleKeydown, !0), - document.addEventListener('keyup', docHandleKeyup, !0), - document.addEventListener('focus', docHandleFocus, !0), - document.addEventListener('blur', docHandleBlur, !0), - (M.initializeJqueryWrapper = function(n, s, o) { - jQuery.fn[s] = function(e) { - if (n.prototype[e]) { - var i = Array.prototype.slice.call(arguments, 1) - if ('get' === e.slice(0, 3)) { - var t = this.first()[0][o] - return t[e].apply(t, i) - } - return this.each(function() { - var t = this[o] - t[e].apply(t, i) - }) - } - if ('object' == typeof e || !e) return n.init(this, e), this - jQuery.error('Method ' + e + ' does not exist on jQuery.' + s) - } - }), - (M.AutoInit = function(t) { - var e = t || document.body, - i = { - Autocomplete: e.querySelectorAll( - '.autocomplete:not(.no-autoinit)' - ), - Carousel: e.querySelectorAll('.carousel:not(.no-autoinit)'), - Chips: e.querySelectorAll('.chips:not(.no-autoinit)'), - Collapsible: e.querySelectorAll( - '.collapsible:not(.no-autoinit)' - ), - Datepicker: e.querySelectorAll('.datepicker:not(.no-autoinit)'), - Dropdown: e.querySelectorAll( - '.dropdown-trigger:not(.no-autoinit)' - ), - Materialbox: e.querySelectorAll( - '.materialboxed:not(.no-autoinit)' - ), - Modal: e.querySelectorAll('.modal:not(.no-autoinit)'), - Parallax: e.querySelectorAll('.parallax:not(.no-autoinit)'), - Pushpin: e.querySelectorAll('.pushpin:not(.no-autoinit)'), - ScrollSpy: e.querySelectorAll('.scrollspy:not(.no-autoinit)'), - FormSelect: e.querySelectorAll('select:not(.no-autoinit)'), - Sidenav: e.querySelectorAll('.sidenav:not(.no-autoinit)'), - Tabs: e.querySelectorAll('.tabs:not(.no-autoinit)'), - TapTarget: e.querySelectorAll('.tap-target:not(.no-autoinit)'), - Timepicker: e.querySelectorAll('.timepicker:not(.no-autoinit)'), - Tooltip: e.querySelectorAll('.tooltipped:not(.no-autoinit)'), - FloatingActionButton: e.querySelectorAll( - '.fixed-action-btn:not(.no-autoinit)' - ), - } - for (var n in i) { - M[n].init(i[n]) - } - }), - (M.objectSelectorString = function(t) { - return ( - (t.prop('tagName') || '') + - (t.attr('id') || '') + - (t.attr('class') || '') - ).replace(/\s/g, '') - }), - (M.guid = (function() { - function t() { - return Math.floor(65536 * (1 + Math.random())) - .toString(16) - .substring(1) - } - return function() { - return ( - t() + - t() + - '-' + - t() + - '-' + - t() + - '-' + - t() + - '-' + - t() + - t() + - t() - ) - } - })()), - (M.escapeHash = function(t) { - return t.replace(/(:|\.|\[|\]|,|=|\/)/g, '\\$1') - }), - (M.elementOrParentIsFixed = function(t) { - var e = $(t), - i = e.add(e.parents()), - n = !1 - return ( - i.each(function() { - if ('fixed' === $(this).css('position')) return !(n = !0) - }), - n - ) - }), - (M.checkWithinContainer = function(t, e, i) { - var n = { top: !1, right: !1, bottom: !1, left: !1 }, - s = t.getBoundingClientRect(), - o = - t === document.body - ? Math.max(s.bottom, window.innerHeight) - : s.bottom, - a = t.scrollLeft, - r = t.scrollTop, - l = e.left - a, - h = e.top - r - return ( - (l < s.left + i || l < i) && (n.left = !0), - (l + e.width > s.right - i || - l + e.width > window.innerWidth - i) && - (n.right = !0), - (h < s.top + i || h < i) && (n.top = !0), - (h + e.height > o - i || h + e.height > window.innerHeight - i) && - (n.bottom = !0), - n - ) - }), - (M.checkPossibleAlignments = function(t, e, i, n) { - var s = { - top: !0, - right: !0, - bottom: !0, - left: !0, - spaceOnTop: null, - spaceOnRight: null, - spaceOnBottom: null, - spaceOnLeft: null, - }, - o = 'visible' === getComputedStyle(e).overflow, - a = e.getBoundingClientRect(), - r = Math.min(a.height, window.innerHeight), - l = Math.min(a.width, window.innerWidth), - h = t.getBoundingClientRect(), - d = e.scrollLeft, - u = e.scrollTop, - c = i.left - d, - p = i.top - u, - v = i.top + h.height - u - return ( - (s.spaceOnRight = o - ? window.innerWidth - (h.left + i.width) - : l - (c + i.width)), - s.spaceOnRight < 0 && (s.left = !1), - (s.spaceOnLeft = o ? h.right - i.width : c - i.width + h.width), - s.spaceOnLeft < 0 && (s.right = !1), - (s.spaceOnBottom = o - ? window.innerHeight - (h.top + i.height + n) - : r - (p + i.height + n)), - s.spaceOnBottom < 0 && (s.top = !1), - (s.spaceOnTop = o ? h.bottom - (i.height + n) : v - (i.height - n)), - s.spaceOnTop < 0 && (s.bottom = !1), - s - ) - }), - (M.getOverflowParent = function(t) { - return null == t - ? null - : t === document.body || 'visible' !== getComputedStyle(t).overflow - ? t - : M.getOverflowParent(t.parentElement) - }), - (M.getIdFromTrigger = function(t) { - var e = t.getAttribute('data-target') - return e || (e = (e = t.getAttribute('href')) ? e.slice(1) : ''), e - }), - (M.getDocumentScrollTop = function() { - return ( - window.pageYOffset || - document.documentElement.scrollTop || - document.body.scrollTop || - 0 - ) - }), - (M.getDocumentScrollLeft = function() { - return ( - window.pageXOffset || - document.documentElement.scrollLeft || - document.body.scrollLeft || - 0 - ) - }) -var getTime = - Date.now || - function() { - return new Date().getTime() - } -M.throttle = function(i, n, s) { - var o = void 0, - a = void 0, - r = void 0, - l = null, - h = 0 - s || (s = {}) - var d = function() { - ;(h = !1 === s.leading ? 0 : getTime()), - (l = null), - (r = i.apply(o, a)), - (o = a = null) - } - return function() { - var t = getTime() - h || !1 !== s.leading || (h = t) - var e = n - (t - h) - return ( - (o = this), - (a = arguments), - e <= 0 - ? (clearTimeout(l), - (l = null), - (h = t), - (r = i.apply(o, a)), - (o = a = null)) - : l || !1 === s.trailing || (l = setTimeout(d, e)), - r - ) - } -} -var $jscomp = { scope: {} } -;($jscomp.defineProperty = - 'function' == typeof Object.defineProperties - ? Object.defineProperty - : function(t, e, i) { - if (i.get || i.set) - throw new TypeError( - 'ES3 does not support getters and setters.' - ) - t != Array.prototype && t != Object.prototype && (t[e] = i.value) - }), - ($jscomp.getGlobal = function(t) { - return 'undefined' != typeof window && window === t - ? t - : 'undefined' != typeof global && null != global - ? global - : t - }), - ($jscomp.global = $jscomp.getGlobal(this)), - ($jscomp.SYMBOL_PREFIX = 'jscomp_symbol_'), - ($jscomp.initSymbol = function() { - ;($jscomp.initSymbol = function() {}), - $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol) - }), - ($jscomp.symbolCounter_ = 0), - ($jscomp.Symbol = function(t) { - return $jscomp.SYMBOL_PREFIX + (t || '') + $jscomp.symbolCounter_++ - }), - ($jscomp.initSymbolIterator = function() { - $jscomp.initSymbol() - var t = $jscomp.global.Symbol.iterator - t || - (t = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol( - 'iterator' - )), - 'function' != typeof Array.prototype[t] && - $jscomp.defineProperty(Array.prototype, t, { - configurable: !0, - writable: !0, - value: function() { - return $jscomp.arrayIterator(this) - }, - }), - ($jscomp.initSymbolIterator = function() {}) - }), - ($jscomp.arrayIterator = function(t) { - var e = 0 - return $jscomp.iteratorPrototype(function() { - return e < t.length ? { done: !1, value: t[e++] } : { done: !0 } - }) - }), - ($jscomp.iteratorPrototype = function(t) { - return ( - $jscomp.initSymbolIterator(), - ((t = { next: t })[$jscomp.global.Symbol.iterator] = function() { - return this - }), - t - ) - }), - ($jscomp.array = $jscomp.array || {}), - ($jscomp.iteratorFromArray = function(e, i) { - $jscomp.initSymbolIterator(), e instanceof String && (e += '') - var n = 0, - s = { - next: function() { - if (n < e.length) { - var t = n++ - return { value: i(t, e[t]), done: !1 } - } - return ( - (s.next = function() { - return { done: !0, value: void 0 } - }), - s.next() - ) - }, - } - return ( - (s[Symbol.iterator] = function() { - return s - }), - s - ) - }), - ($jscomp.polyfill = function(t, e, i, n) { - if (e) { - for ( - i = $jscomp.global, t = t.split('.'), n = 0; - n < t.length - 1; - n++ - ) { - var s = t[n] - s in i || (i[s] = {}), (i = i[s]) - } - ;(e = e((n = i[(t = t[t.length - 1])]))) != n && - null != e && - $jscomp.defineProperty(i, t, { - configurable: !0, - writable: !0, - value: e, - }) - } - }), - $jscomp.polyfill( - 'Array.prototype.keys', - function(t) { - return ( - t || - function() { - return $jscomp.iteratorFromArray(this, function(t) { - return t - }) - } - ) - }, - 'es6-impl', - 'es3' - ) -var $jscomp$this = this -;(M.anime = (function() { - function s(t) { - if (!B.col(t)) - try { - return document.querySelectorAll(t) - } catch (t) {} - } - function b(t, e) { - for ( - var i = t.length, - n = 2 <= arguments.length ? e : void 0, - s = [], - o = 0; - o < i; - o++ - ) - if (o in t) { - var a = t[o] - e.call(n, a, o, t) && s.push(a) - } - return s - } - function d(t) { - return t.reduce(function(t, e) { - return t.concat(B.arr(e) ? d(e) : e) - }, []) - } - function o(t) { - return B.arr(t) - ? t - : (B.str(t) && (t = s(t) || t), - t instanceof NodeList || t instanceof HTMLCollection - ? [].slice.call(t) - : [t]) - } - function a(t, e) { - return t.some(function(t) { - return t === e - }) - } - function r(t) { - var e, - i = {} - for (e in t) i[e] = t[e] - return i - } - function u(t, e) { - var i, - n = r(t) - for (i in t) n[i] = e.hasOwnProperty(i) ? e[i] : t[i] - return n - } - function c(t, e) { - var i, - n = r(t) - for (i in e) n[i] = B.und(t[i]) ? e[i] : t[i] - return n - } - function l(t) { - if ( - (t = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec( - t - )) - ) - return t[2] - } - function h(t, e) { - return B.fnc(t) ? t(e.target, e.id, e.total) : t - } - function w(t, e) { - if (e in t.style) - return ( - getComputedStyle(t).getPropertyValue( - e.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() - ) || '0' - ) - } - function p(t, e) { - return B.dom(t) && a($, e) - ? 'transform' - : B.dom(t) && (t.getAttribute(e) || (B.svg(t) && t[e])) - ? 'attribute' - : B.dom(t) && 'transform' !== e && w(t, e) - ? 'css' - : null != t[e] - ? 'object' - : void 0 - } - function v(t, e) { - switch (p(t, e)) { - case 'transform': - return (function(t, i) { - var e, - n = - -1 < (e = i).indexOf('translate') || - 'perspective' === e - ? 'px' - : -1 < e.indexOf('rotate') || - -1 < e.indexOf('skew') - ? 'deg' - : void 0, - n = -1 < i.indexOf('scale') ? 1 : 0 + n - if (!(t = t.style.transform)) return n - for ( - var s = [], o = [], a = [], r = /(\w+)\((.+?)\)/g; - (s = r.exec(t)); - - ) - o.push(s[1]), a.push(s[2]) - return (t = b(a, function(t, e) { - return o[e] === i - })).length - ? t[0] - : n - })(t, e) - case 'css': - return w(t, e) - case 'attribute': - return t.getAttribute(e) - } - return t[e] || 0 - } - function f(t, e) { - var i = /^(\*=|\+=|-=)/.exec(t) - if (!i) return t - var n = l(t) || 0 - switch ( - ((e = parseFloat(e)), - (t = parseFloat(t.replace(i[0], ''))), - i[0][0]) - ) { - case '+': - return e + t + n - case '-': - return e - t + n - case '*': - return e * t + n - } - } - function m(t, e) { - return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) - } - function i(t) { - t = t.points - for (var e, i = 0, n = 0; n < t.numberOfItems; n++) { - var s = t.getItem(n) - 0 < n && (i += m(e, s)), (e = s) - } - return i - } - function g(t) { - if (t.getTotalLength) return t.getTotalLength() - switch (t.tagName.toLowerCase()) { - case 'circle': - return 2 * Math.PI * t.getAttribute('r') - case 'rect': - return ( - 2 * t.getAttribute('width') + 2 * t.getAttribute('height') - ) - case 'line': - return m( - { x: t.getAttribute('x1'), y: t.getAttribute('y1') }, - { x: t.getAttribute('x2'), y: t.getAttribute('y2') } - ) - case 'polyline': - return i(t) - case 'polygon': - var e = t.points - return i(t) + m(e.getItem(e.numberOfItems - 1), e.getItem(0)) - } - } - function C(e, i) { - function t(t) { - return ( - (t = void 0 === t ? 0 : t), - e.el.getPointAtLength(1 <= i + t ? i + t : 0) - ) - } - var n = t(), - s = t(-1), - o = t(1) - switch (e.property) { - case 'x': - return n.x - case 'y': - return n.y - case 'angle': - return (180 * Math.atan2(o.y - s.y, o.x - s.x)) / Math.PI - } - } - function _(t, e) { - var i, - n = /-?\d*\.?\d+/g - if (((i = B.pth(t) ? t.totalLength : t), B.col(i))) - if (B.rgb(i)) { - var s = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i) - i = s ? 'rgba(' + s[1] + ',1)' : i - } else - i = B.hex(i) - ? (function(t) { - t = t.replace( - /^#?([a-f\d])([a-f\d])([a-f\d])$/i, - function(t, e, i, n) { - return e + e + i + i + n + n - } - ) - var e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec( - t - ) - t = parseInt(e[1], 16) - var i = parseInt(e[2], 16), - e = parseInt(e[3], 16) - return 'rgba(' + t + ',' + i + ',' + e + ',1)' - })(i) - : B.hsl(i) - ? (function(t) { - function e(t, e, i) { - return ( - i < 0 && (i += 1), - 1 < i && --i, - i < 1 / 6 - ? t + 6 * (e - t) * i - : i < 0.5 - ? e - : i < 2 / 3 - ? t + (e - t) * (2 / 3 - i) * 6 - : t - ) - } - var i = - /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec( - t - ) || - /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec( - t - ) - t = parseInt(i[1]) / 360 - var n = parseInt(i[2]) / 100, - s = parseInt(i[3]) / 100, - i = i[4] || 1 - if (0 == n) s = n = t = s - else { - var o = s < 0.5 ? s * (1 + n) : s + n - s * n, - a = 2 * s - o, - s = e(a, o, t + 1 / 3), - n = e(a, o, t) - t = e(a, o, t - 1 / 3) - } - return ( - 'rgba(' + - 255 * s + - ',' + - 255 * n + - ',' + - 255 * t + - ',' + - i + - ')' - ) - })(i) - : void 0 - else - (s = (s = l(i)) ? i.substr(0, i.length - s.length) : i), - (i = e && !/\s/g.test(i) ? s + e : s) - return { - original: (i += ''), - numbers: i.match(n) ? i.match(n).map(Number) : [0], - strings: B.str(t) || e ? i.split(n) : [], - } - } - function y(t) { - return b((t = t ? d(B.arr(t) ? t.map(o) : o(t)) : []), function( - t, - e, - i - ) { - return i.indexOf(t) === e - }) - } - function k(t, i) { - var e = r(i) - if (B.arr(t)) { - var n = t.length - 2 !== n || B.obj(t[0]) - ? B.fnc(i.duration) || (e.duration = i.duration / n) - : (t = { value: t }) - } - return o(t) - .map(function(t, e) { - return ( - (e = e ? 0 : i.delay), - (t = B.obj(t) && !B.pth(t) ? t : { value: t }), - B.und(t.delay) && (t.delay = e), - t - ) - }) - .map(function(t) { - return c(t, e) - }) - } - function E(o, a) { - var r - return o.tweens.map(function(t) { - var e = (t = (function(t, e) { - var i, - n = {} - for (i in t) { - var s = h(t[i], e) - B.arr(s) && - 1 === - (s = s.map(function(t) { - return h(t, e) - })).length && - (s = s[0]), - (n[i] = s) - } - return ( - (n.duration = parseFloat(n.duration)), - (n.delay = parseFloat(n.delay)), - n - ) - })(t, a)).value, - i = v(a.target, o.name), - n = r ? r.to.original : i, - n = B.arr(e) ? e[0] : n, - s = f(B.arr(e) ? e[1] : e, n), - i = l(s) || l(n) || l(i) - return ( - (t.from = _(n, i)), - (t.to = _(s, i)), - (t.start = r ? r.end : o.offset), - (t.end = t.start + t.delay + t.duration), - (t.easing = (function(t) { - return B.arr(t) ? D.apply(this, t) : S[t] - })(t.easing)), - (t.elasticity = - (1e3 - Math.min(Math.max(t.elasticity, 1), 999)) / 1e3), - (t.isPath = B.pth(e)), - (t.isColor = B.col(t.from.original)), - t.isColor && (t.round = 1), - (r = t) - ) - }) - } - function M(e, t, i, n) { - var s = 'delay' === e - return t.length - ? (s ? Math.min : Math.max).apply( - Math, - t.map(function(t) { - return t[e] - }) - ) - : s - ? n.delay - : i.offset + n.delay + n.duration - } - function n(t) { - var e, - i, - n, - s, - o = u(L, t), - a = u(T, t), - r = - ((i = t.targets), - (n = y(i)).map(function(t, e) { - return { target: t, id: e, total: n.length } - })), - l = [], - h = c(o, a) - for (e in t) - h.hasOwnProperty(e) || - 'targets' === e || - l.push({ name: e, offset: h.offset, tweens: k(t[e], a) }) - return ( - (s = l), - (t = b( - d( - r.map(function(n) { - return s.map(function(t) { - var e = p(n.target, t.name) - if (e) { - var i = E(t, n) - t = { - type: e, - property: t.name, - animatable: n, - tweens: i, - duration: i[i.length - 1].end, - delay: i[0].delay, - } - } else t = void 0 - return t - }) - }) - ), - function(t) { - return !B.und(t) - } - )), - c(o, { - children: [], - animatables: r, - animations: t, - duration: M('duration', t, o, a), - delay: M('delay', t, o, a), - }) - ) - } - function O(t) { - function d() { - return ( - window.Promise && - new Promise(function(t) { - return (_ = t) - }) - ) - } - function u(t) { - return k.reversed ? k.duration - t : t - } - function c(e) { - for (var t = 0, i = {}, n = k.animations, s = n.length; t < s; ) { - var o = n[t], - a = o.animatable, - r = o.tweens, - l = r.length - 1, - h = r[l] - l && - (h = - b(r, function(t) { - return e < t.end - })[0] || h) - for ( - var r = - Math.min( - Math.max(e - h.start - h.delay, 0), - h.duration - ) / h.duration, - d = isNaN(r) ? 1 : h.easing(r, h.elasticity), - r = h.to.strings, - u = h.round, - l = [], - c = void 0, - c = h.to.numbers.length, - p = 0; - p < c; - p++ - ) { - var v = void 0, - v = h.to.numbers[p], - f = h.from.numbers[p], - v = h.isPath ? C(h.value, d * v) : f + d * (v - f) - u && ((h.isColor && 2 < p) || (v = Math.round(v * u) / u)), - l.push(v) - } - if ((h = r.length)) - for (c = r[0], d = 0; d < h; d++) - (u = r[d + 1]), - (p = l[d]), - isNaN(p) || (c = u ? c + (p + u) : c + (p + ' ')) - else c = l[0] - I[o.type](a.target, o.property, c, i, a.id), - (o.currentValue = c), - t++ - } - if ((t = Object.keys(i).length)) - for (n = 0; n < t; n++) - x || - (x = w(document.body, 'transform') - ? 'transform' - : '-webkit-transform'), - (k.animatables[n].target.style[x] = i[n].join(' ')) - ;(k.currentTime = e), (k.progress = (e / k.duration) * 100) - } - function p(t) { - k[t] && k[t](k) - } - function v() { - k.remaining && !0 !== k.remaining && k.remaining-- - } - function e(t) { - var e = k.duration, - i = k.offset, - n = i + k.delay, - s = k.currentTime, - o = k.reversed, - a = u(t) - if (k.children.length) { - var r = k.children, - l = r.length - if (a >= k.currentTime) for (var h = 0; h < l; h++) r[h].seek(a) - else for (; l--; ) r[l].seek(a) - } - ;(n <= a || !e) && - (k.began || ((k.began = !0), p('begin')), p('run')), - i < a && a < e - ? c(a) - : (a <= i && 0 !== s && (c(0), o && v()), - ((e <= a && s !== e) || !e) && (c(e), o || v())), - p('update'), - e <= t && - (k.remaining - ? ((m = f), - 'alternate' === k.direction && - (k.reversed = !k.reversed)) - : (k.pause(), - k.completed || - ((k.completed = !0), - p('complete'), - 'Promise' in window && (_(), (y = d())))), - (g = 0)) - } - t = void 0 === t ? {} : t - var f, - m, - g = 0, - _ = null, - y = d(), - k = n(t) - return ( - (k.reset = function() { - var t = k.direction, - e = k.loop - for ( - k.currentTime = 0, - k.progress = 0, - k.paused = !0, - k.began = !1, - k.completed = !1, - k.reversed = 'reverse' === t, - k.remaining = 'alternate' === t && 1 === e ? 2 : e, - c(0), - t = k.children.length; - t--; - - ) - k.children[t].reset() - }), - (k.tick = function(t) { - ;(f = t), m || (m = f), e((g + f - m) * O.speed) - }), - (k.seek = function(t) { - e(u(t)) - }), - (k.pause = function() { - var t = A.indexOf(k) - ;-1 < t && A.splice(t, 1), (k.paused = !0) - }), - (k.play = function() { - k.paused && - ((k.paused = !1), - (m = 0), - (g = u(k.currentTime)), - A.push(k), - R || H()) - }), - (k.reverse = function() { - ;(k.reversed = !k.reversed), (m = 0), (g = u(k.currentTime)) - }), - (k.restart = function() { - k.pause(), k.reset(), k.play() - }), - (k.finished = y), - k.reset(), - k.autoplay && k.play(), - k - ) - } - var x, - L = { - update: void 0, - begin: void 0, - run: void 0, - complete: void 0, - loop: 1, - direction: 'normal', - autoplay: !0, - offset: 0, - }, - T = { - duration: 1e3, - delay: 0, - easing: 'easeOutElastic', - elasticity: 500, - round: 0, - }, - $ = 'translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective'.split( - ' ' - ), - B = { - arr: function(t) { - return Array.isArray(t) - }, - obj: function(t) { - return -1 < Object.prototype.toString.call(t).indexOf('Object') - }, - pth: function(t) { - return B.obj(t) && t.hasOwnProperty('totalLength') - }, - svg: function(t) { - return t instanceof SVGElement - }, - dom: function(t) { - return t.nodeType || B.svg(t) - }, - str: function(t) { - return 'string' == typeof t - }, - fnc: function(t) { - return 'function' == typeof t - }, - und: function(t) { - return void 0 === t - }, - hex: function(t) { - return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t) - }, - rgb: function(t) { - return /^rgb/.test(t) - }, - hsl: function(t) { - return /^hsl/.test(t) - }, - col: function(t) { - return B.hex(t) || B.rgb(t) || B.hsl(t) - }, - }, - D = (function() { - function u(t, e, i) { - return ( - (((1 - 3 * i + 3 * e) * t + (3 * i - 6 * e)) * t + 3 * e) * - t - ) - } - return function(a, r, l, h) { - if (0 <= a && a <= 1 && 0 <= l && l <= 1) { - var d = new Float32Array(11) - if (a !== r || l !== h) - for (var t = 0; t < 11; ++t) d[t] = u(0.1 * t, a, l) - return function(t) { - if (a === r && l === h) return t - if (0 === t) return 0 - if (1 === t) return 1 - for (var e = 0, i = 1; 10 !== i && d[i] <= t; ++i) - e += 0.1 - var i = e + ((t - d[--i]) / (d[i + 1] - d[i])) * 0.1, - n = - 3 * (1 - 3 * l + 3 * a) * i * i + - 2 * (3 * l - 6 * a) * i + - 3 * a - if (0.001 <= n) { - for ( - e = 0; - e < 4 && - 0 != - (n = - 3 * (1 - 3 * l + 3 * a) * i * i + - 2 * (3 * l - 6 * a) * i + - 3 * a); - ++e - ) - var s = u(i, a, l) - t, i = i - s / n - t = i - } else if (0 === n) t = i - else { - for ( - var i = e, e = e + 0.1, o = 0; - 0 < (n = u((s = i + (e - i) / 2), a, l) - t) - ? (e = s) - : (i = s), - 1e-7 < Math.abs(n) && ++o < 10; - - ); - t = s - } - return u(t, r, h) - } - } - } - })(), - S = (function() { - function i(t, e) { - return 0 === t || 1 === t - ? t - : -Math.pow(2, 10 * (t - 1)) * - Math.sin( - (2 * - (t - 1 - (e / (2 * Math.PI)) * Math.asin(1)) * - Math.PI) / - e - ) - } - var t, - n = 'Quad Cubic Quart Quint Sine Expo Circ Back Elastic'.split( - ' ' - ), - e = { - In: [ - [0.55, 0.085, 0.68, 0.53], - [0.55, 0.055, 0.675, 0.19], - [0.895, 0.03, 0.685, 0.22], - [0.755, 0.05, 0.855, 0.06], - [0.47, 0, 0.745, 0.715], - [0.95, 0.05, 0.795, 0.035], - [0.6, 0.04, 0.98, 0.335], - [0.6, -0.28, 0.735, 0.045], - i, - ], - Out: [ - [0.25, 0.46, 0.45, 0.94], - [0.215, 0.61, 0.355, 1], - [0.165, 0.84, 0.44, 1], - [0.23, 1, 0.32, 1], - [0.39, 0.575, 0.565, 1], - [0.19, 1, 0.22, 1], - [0.075, 0.82, 0.165, 1], - [0.175, 0.885, 0.32, 1.275], - function(t, e) { - return 1 - i(1 - t, e) - }, - ], - InOut: [ - [0.455, 0.03, 0.515, 0.955], - [0.645, 0.045, 0.355, 1], - [0.77, 0, 0.175, 1], - [0.86, 0, 0.07, 1], - [0.445, 0.05, 0.55, 0.95], - [1, 0, 0, 1], - [0.785, 0.135, 0.15, 0.86], - [0.68, -0.55, 0.265, 1.55], - function(t, e) { - return t < 0.5 - ? i(2 * t, e) / 2 - : 1 - i(-2 * t + 2, e) / 2 - }, - ], - }, - s = { linear: D(0.25, 0.25, 0.75, 0.75) }, - o = {} - for (t in e) - (o.type = t), - e[o.type].forEach( - (function(i) { - return function(t, e) { - s['ease' + i.type + n[e]] = B.fnc(t) - ? t - : D.apply($jscomp$this, t) - } - })(o) - ), - (o = { type: o.type }) - return s - })(), - I = { - css: function(t, e, i) { - return (t.style[e] = i) - }, - attribute: function(t, e, i) { - return t.setAttribute(e, i) - }, - object: function(t, e, i) { - return (t[e] = i) - }, - transform: function(t, e, i, n, s) { - n[s] || (n[s] = []), n[s].push(e + '(' + i + ')') - }, - }, - A = [], - R = 0, - H = (function() { - function n() { - R = requestAnimationFrame(t) - } - function t(t) { - var e = A.length - if (e) { - for (var i = 0; i < e; ) A[i] && A[i].tick(t), i++ - n() - } else cancelAnimationFrame(R), (R = 0) - } - return n - })() - return ( - (O.version = '2.2.0'), - (O.speed = 1), - (O.running = A), - (O.remove = function(t) { - t = y(t) - for (var e = A.length; e--; ) - for (var i = A[e], n = i.animations, s = n.length; s--; ) - a(t, n[s].animatable.target) && - (n.splice(s, 1), n.length || i.pause()) - }), - (O.getValue = v), - (O.path = function(t, e) { - var i = B.str(t) ? s(t)[0] : t, - n = e || 100 - return function(t) { - return { el: i, property: t, totalLength: g(i) * (n / 100) } - } - }), - (O.setDashoffset = function(t) { - var e = g(t) - return t.setAttribute('stroke-dasharray', e), e - }), - (O.bezier = D), - (O.easings = S), - (O.timeline = function(n) { - var s = O(n) - return ( - s.pause(), - (s.duration = 0), - (s.add = function(t) { - return ( - s.children.forEach(function(t) { - ;(t.began = !0), (t.completed = !0) - }), - o(t).forEach(function(t) { - var e = c(t, u(T, n || {})) - ;(e.targets = e.targets || n.targets), - (t = s.duration) - var i = e.offset - ;(e.autoplay = !1), - (e.direction = s.direction), - (e.offset = B.und(i) ? t : f(i, t)), - (s.began = !0), - (s.completed = !0), - s.seek(e.offset), - ((e = O(e)).began = !0), - (e.completed = !0), - e.duration > t && (s.duration = e.duration), - s.children.push(e) - }), - s.seek(0), - s.reset(), - s.autoplay && s.restart(), - s - ) - }), - s - ) - }), - (O.random = function(t, e) { - return Math.floor(Math.random() * (e - t + 1)) + t - }), - O - ) -})()), - (function(r, l) { - 'use strict' - var e = { - accordion: !0, - onOpenStart: void 0, - onOpenEnd: void 0, - onCloseStart: void 0, - onCloseEnd: void 0, - inDuration: 300, - outDuration: 300, - }, - t = (function(t) { - function s(t, e) { - _classCallCheck(this, s) - var i = _possibleConstructorReturn( - this, - (s.__proto__ || Object.getPrototypeOf(s)).call( - this, - s, - t, - e - ) - ) - ;((i.el.M_Collapsible = i).options = r.extend( - {}, - s.defaults, - e - )), - (i.$headers = i.$el - .children('li') - .children('.collapsible-header')), - i.$headers.attr('tabindex', 0), - i._setupEventHandlers() - var n = i.$el - .children('li.active') - .children('.collapsible-body') - return ( - i.options.accordion - ? n.first().css('display', 'block') - : n.css('display', 'block'), - i - ) - } - return ( - _inherits(s, Component), - _createClass( - s, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.M_Collapsible = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - var e = this - ;(this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind( - this - )), - (this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleCollapsibleClickBound - ), - this.$headers.each(function(t) { - t.addEventListener( - 'keydown', - e._handleCollapsibleKeydownBound - ) - }) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - var e = this - this.el.removeEventListener( - 'click', - this._handleCollapsibleClickBound - ), - this.$headers.each(function(t) { - t.removeEventListener( - 'keydown', - e._handleCollapsibleKeydownBound - ) - }) - }, - }, - { - key: '_handleCollapsibleClick', - value: function(t) { - var e = r(t.target).closest( - '.collapsible-header' - ) - if (t.target && e.length) { - var i = e.closest('.collapsible') - if (i[0] === this.el) { - var n = e.closest('li'), - s = i.children('li'), - o = n[0].classList.contains( - 'active' - ), - a = s.index(n) - o ? this.close(a) : this.open(a) - } - } - }, - }, - { - key: '_handleCollapsibleKeydown', - value: function(t) { - 13 === t.keyCode && - this._handleCollapsibleClickBound(t) - }, - }, - { - key: '_animateIn', - value: function(t) { - var e = this, - i = this.$el.children('li').eq(t) - if (i.length) { - var n = i.children('.collapsible-body') - l.remove(n[0]), - n.css({ - display: 'block', - overflow: 'hidden', - height: 0, - paddingTop: '', - paddingBottom: '', - }) - var s = n.css('padding-top'), - o = n.css('padding-bottom'), - a = n[0].scrollHeight - n.css({ - paddingTop: 0, - paddingBottom: 0, - }), - l({ - targets: n[0], - height: a, - paddingTop: s, - paddingBottom: o, - duration: this.options - .inDuration, - easing: 'easeInOutCubic', - complete: function(t) { - n.css({ - overflow: '', - paddingTop: '', - paddingBottom: '', - height: '', - }), - 'function' == - typeof e.options - .onOpenEnd && - e.options.onOpenEnd.call( - e, - i[0] - ) - }, - }) - } - }, - }, - { - key: '_animateOut', - value: function(t) { - var e = this, - i = this.$el.children('li').eq(t) - if (i.length) { - var n = i.children('.collapsible-body') - l.remove(n[0]), - n.css('overflow', 'hidden'), - l({ - targets: n[0], - height: 0, - paddingTop: 0, - paddingBottom: 0, - duration: this.options - .outDuration, - easing: 'easeInOutCubic', - complete: function() { - n.css({ - height: '', - overflow: '', - padding: '', - display: '', - }), - 'function' == - typeof e.options - .onCloseEnd && - e.options.onCloseEnd.call( - e, - i[0] - ) - }, - }) - } - }, - }, - { - key: 'open', - value: function(t) { - var i = this, - e = this.$el.children('li').eq(t) - if ( - e.length && - !e[0].classList.contains('active') - ) { - if ( - ('function' == - typeof this.options - .onOpenStart && - this.options.onOpenStart.call( - this, - e[0] - ), - this.options.accordion) - ) { - var n = this.$el.children('li') - this.$el - .children('li.active') - .each(function(t) { - var e = n.index(r(t)) - i.close(e) - }) - } - e[0].classList.add('active'), - this._animateIn(t) - } - }, - }, - { - key: 'close', - value: function(t) { - var e = this.$el.children('li').eq(t) - e.length && - e[0].classList.contains('active') && - ('function' == - typeof this.options.onCloseStart && - this.options.onCloseStart.call( - this, - e[0] - ), - e[0].classList.remove('active'), - this._animateOut(t)) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - s.__proto__ || Object.getPrototypeOf(s), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Collapsible - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - s - ) - })() - ;(M.Collapsible = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'collapsible', 'M_Collapsible') - })(cash, M.anime), - (function(h, i) { - 'use strict' - var e = { - alignment: 'left', - autoFocus: !0, - constrainWidth: !0, - container: null, - coverTrigger: !0, - closeOnClick: !0, - hover: !1, - inDuration: 150, - outDuration: 250, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - onItemClick: null, - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - (i.el.M_Dropdown = i), - n._dropdowns.push(i), - (i.id = M.getIdFromTrigger(t)), - (i.dropdownEl = document.getElementById(i.id)), - (i.$dropdownEl = h(i.dropdownEl)), - (i.options = h.extend({}, n.defaults, e)), - (i.isOpen = !1), - (i.isScrollable = !1), - (i.isTouchMoving = !1), - (i.focusedIndex = -1), - (i.filterQuery = []), - i.options.container - ? h(i.options.container).append(i.dropdownEl) - : i.$el.after(i.dropdownEl), - i._makeDropdownFocusable(), - (i._resetFilterQueryBound = i._resetFilterQuery.bind( - i - )), - (i._handleDocumentClickBound = i._handleDocumentClick.bind( - i - )), - (i._handleDocumentTouchmoveBound = i._handleDocumentTouchmove.bind( - i - )), - (i._handleDropdownClickBound = i._handleDropdownClick.bind( - i - )), - (i._handleDropdownKeydownBound = i._handleDropdownKeydown.bind( - i - )), - (i._handleTriggerKeydownBound = i._handleTriggerKeydown.bind( - i - )), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._resetDropdownStyles(), - this._removeEventHandlers(), - n._dropdowns.splice( - n._dropdowns.indexOf(this), - 1 - ), - (this.el.M_Dropdown = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - this.el.addEventListener( - 'keydown', - this._handleTriggerKeydownBound - ), - this.dropdownEl.addEventListener( - 'click', - this._handleDropdownClickBound - ), - this.options.hover - ? ((this._handleMouseEnterBound = this._handleMouseEnter.bind( - this - )), - this.el.addEventListener( - 'mouseenter', - this._handleMouseEnterBound - ), - (this._handleMouseLeaveBound = this._handleMouseLeave.bind( - this - )), - this.el.addEventListener( - 'mouseleave', - this._handleMouseLeaveBound - ), - this.dropdownEl.addEventListener( - 'mouseleave', - this._handleMouseLeaveBound - )) - : ((this._handleClickBound = this._handleClick.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleClickBound - )) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'keydown', - this._handleTriggerKeydownBound - ), - this.dropdownEl.removeEventListener( - 'click', - this._handleDropdownClickBound - ), - this.options.hover - ? (this.el.removeEventListener( - 'mouseenter', - this._handleMouseEnterBound - ), - this.el.removeEventListener( - 'mouseleave', - this._handleMouseLeaveBound - ), - this.dropdownEl.removeEventListener( - 'mouseleave', - this._handleMouseLeaveBound - )) - : this.el.removeEventListener( - 'click', - this._handleClickBound - ) - }, - }, - { - key: '_setupTemporaryEventHandlers', - value: function() { - document.body.addEventListener( - 'click', - this._handleDocumentClickBound, - !0 - ), - document.body.addEventListener( - 'touchend', - this._handleDocumentClickBound - ), - document.body.addEventListener( - 'touchmove', - this._handleDocumentTouchmoveBound - ), - this.dropdownEl.addEventListener( - 'keydown', - this._handleDropdownKeydownBound - ) - }, - }, - { - key: '_removeTemporaryEventHandlers', - value: function() { - document.body.removeEventListener( - 'click', - this._handleDocumentClickBound, - !0 - ), - document.body.removeEventListener( - 'touchend', - this._handleDocumentClickBound - ), - document.body.removeEventListener( - 'touchmove', - this._handleDocumentTouchmoveBound - ), - this.dropdownEl.removeEventListener( - 'keydown', - this._handleDropdownKeydownBound - ) - }, - }, - { - key: '_handleClick', - value: function(t) { - t.preventDefault(), this.open() - }, - }, - { - key: '_handleMouseEnter', - value: function() { - this.open() - }, - }, - { - key: '_handleMouseLeave', - value: function(t) { - var e = t.toElement || t.relatedTarget, - i = !!h(e).closest('.dropdown-content') - .length, - n = !1, - s = h(e).closest('.dropdown-trigger') - s.length && - s[0].M_Dropdown && - s[0].M_Dropdown.isOpen && - (n = !0), - n || i || this.close() - }, - }, - { - key: '_handleDocumentClick', - value: function(t) { - var e = this, - i = h(t.target) - this.options.closeOnClick && - i.closest('.dropdown-content').length && - !this.isTouchMoving - ? setTimeout(function() { - e.close() - }, 0) - : (!i.closest('.dropdown-trigger') - .length && - i.closest('.dropdown-content') - .length) || - setTimeout(function() { - e.close() - }, 0), - (this.isTouchMoving = !1) - }, - }, - { - key: '_handleTriggerKeydown', - value: function(t) { - ;(t.which !== M.keys.ARROW_DOWN && - t.which !== M.keys.ENTER) || - this.isOpen || - (t.preventDefault(), this.open()) - }, - }, - { - key: '_handleDocumentTouchmove', - value: function(t) { - h(t.target).closest('.dropdown-content') - .length && (this.isTouchMoving = !0) - }, - }, - { - key: '_handleDropdownClick', - value: function(t) { - if ( - 'function' == - typeof this.options.onItemClick - ) { - var e = h(t.target).closest('li')[0] - this.options.onItemClick.call(this, e) - } - }, - }, - { - key: '_handleDropdownKeydown', - value: function(t) { - if (t.which === M.keys.TAB) - t.preventDefault(), this.close() - else if ( - (t.which !== M.keys.ARROW_DOWN && - t.which !== M.keys.ARROW_UP) || - !this.isOpen - ) - if ( - t.which === M.keys.ENTER && - this.isOpen - ) { - var e = this.dropdownEl.children[ - this.focusedIndex - ], - i = h(e) - .find('a, button') - .first() - i.length - ? i[0].click() - : e && e.click() - } else - t.which === M.keys.ESC && - this.isOpen && - (t.preventDefault(), - this.close()) - else { - t.preventDefault() - var n = - t.which === M.keys.ARROW_DOWN - ? 1 - : -1, - s = this.focusedIndex, - o = !1 - do { - if ( - ((s += n), - this.dropdownEl.children[s] && - -1 !== - this.dropdownEl - .children[s] - .tabIndex) - ) { - o = !0 - break - } - } while ( - s < - this.dropdownEl.children - .length && - 0 <= s - ) - o && - ((this.focusedIndex = s), - this._focusFocusedItem()) - } - var a = String.fromCharCode( - t.which - ).toLowerCase() - if ( - a && - -1 === - [9, 13, 27, 38, 40].indexOf(t.which) - ) { - this.filterQuery.push(a) - var r = this.filterQuery.join(''), - l = h(this.dropdownEl) - .find('li') - .filter(function(t) { - return ( - 0 === - h(t) - .text() - .toLowerCase() - .indexOf(r) - ) - })[0] - l && - ((this.focusedIndex = h(l).index()), - this._focusFocusedItem()) - } - this.filterTimeout = setTimeout( - this._resetFilterQueryBound, - 1e3 - ) - }, - }, - { - key: '_resetFilterQuery', - value: function() { - this.filterQuery = [] - }, - }, - { - key: '_resetDropdownStyles', - value: function() { - this.$dropdownEl.css({ - display: '', - width: '', - height: '', - left: '', - top: '', - 'transform-origin': '', - transform: '', - opacity: '', - }) - }, - }, - { - key: '_makeDropdownFocusable', - value: function() { - ;(this.dropdownEl.tabIndex = 0), - h(this.dropdownEl) - .children() - .each(function(t) { - t.getAttribute('tabindex') || - t.setAttribute( - 'tabindex', - 0 - ) - }) - }, - }, - { - key: '_focusFocusedItem', - value: function() { - 0 <= this.focusedIndex && - this.focusedIndex < - this.dropdownEl.children.length && - this.options.autoFocus && - this.dropdownEl.children[ - this.focusedIndex - ].focus() - }, - }, - { - key: '_getDropdownPosition', - value: function() { - this.el.offsetParent.getBoundingClientRect() - var t = this.el.getBoundingClientRect(), - e = this.dropdownEl.getBoundingClientRect(), - i = e.height, - n = e.width, - s = t.left - e.left, - o = t.top - e.top, - a = { - left: s, - top: o, - height: i, - width: n, - }, - r = this.dropdownEl.offsetParent - ? this.dropdownEl.offsetParent - : this.dropdownEl.parentNode, - l = M.checkPossibleAlignments( - this.el, - r, - a, - this.options.coverTrigger - ? 0 - : t.height - ), - h = 'top', - d = this.options.alignment - if ( - ((o += this.options.coverTrigger - ? 0 - : t.height), - (this.isScrollable = !1), - l.top || - (l.bottom - ? (h = 'bottom') - : ((this.isScrollable = !0), - l.spaceOnTop > l.spaceOnBottom - ? ((h = 'bottom'), - (i += l.spaceOnTop), - (o -= l.spaceOnTop)) - : (i += - l.spaceOnBottom))), - !l[d]) - ) { - var u = 'left' === d ? 'right' : 'left' - l[u] - ? (d = u) - : l.spaceOnLeft > l.spaceOnRight - ? ((d = 'right'), - (n += l.spaceOnLeft), - (s -= l.spaceOnLeft)) - : ((d = 'left'), - (n += l.spaceOnRight)) - } - return ( - 'bottom' === h && - (o = - o - - e.height + - (this.options.coverTrigger - ? t.height - : 0)), - 'right' === d && - (s = s - e.width + t.width), - { - x: s, - y: o, - verticalAlignment: h, - horizontalAlignment: d, - height: i, - width: n, - } - ) - }, - }, - { - key: '_animateIn', - value: function() { - var e = this - i.remove(this.dropdownEl), - i({ - targets: this.dropdownEl, - opacity: { - value: [0, 1], - easing: 'easeOutQuad', - }, - scaleX: [0.3, 1], - scaleY: [0.3, 1], - duration: this.options.inDuration, - easing: 'easeOutQuint', - complete: function(t) { - e.options.autoFocus && - e.dropdownEl.focus(), - 'function' == - typeof e.options - .onOpenEnd && - e.options.onOpenEnd.call( - e, - e.el - ) - }, - }) - }, - }, - { - key: '_animateOut', - value: function() { - var e = this - i.remove(this.dropdownEl), - i({ - targets: this.dropdownEl, - opacity: { - value: 0, - easing: 'easeOutQuint', - }, - scaleX: 0.3, - scaleY: 0.3, - duration: this.options.outDuration, - easing: 'easeOutQuint', - complete: function(t) { - e._resetDropdownStyles(), - 'function' == - typeof e.options - .onCloseEnd && - e.options.onCloseEnd.call( - e, - e.el - ) - }, - }) - }, - }, - { - key: '_placeDropdown', - value: function() { - var t = this.options.constrainWidth - ? this.el.getBoundingClientRect().width - : this.dropdownEl.getBoundingClientRect() - .width - this.dropdownEl.style.width = t + 'px' - var e = this._getDropdownPosition() - ;(this.dropdownEl.style.left = e.x + 'px'), - (this.dropdownEl.style.top = - e.y + 'px'), - (this.dropdownEl.style.height = - e.height + 'px'), - (this.dropdownEl.style.width = - e.width + 'px'), - (this.dropdownEl.style.transformOrigin = - ('left' === e.horizontalAlignment - ? '0' - : '100%') + - ' ' + - ('top' === e.verticalAlignment - ? '0' - : '100%')) - }, - }, - { - key: 'open', - value: function() { - this.isOpen || - ((this.isOpen = !0), - 'function' == - typeof this.options.onOpenStart && - this.options.onOpenStart.call( - this, - this.el - ), - this._resetDropdownStyles(), - (this.dropdownEl.style.display = - 'block'), - this._placeDropdown(), - this._animateIn(), - this._setupTemporaryEventHandlers()) - }, - }, - { - key: 'close', - value: function() { - this.isOpen && - ((this.isOpen = !1), - (this.focusedIndex = -1), - 'function' == - typeof this.options.onCloseStart && - this.options.onCloseStart.call( - this, - this.el - ), - this._animateOut(), - this._removeTemporaryEventHandlers(), - this.options.autoFocus && - this.el.focus()) - }, - }, - { - key: 'recalculateDimensions', - value: function() { - this.isOpen && - (this.$dropdownEl.css({ - width: '', - height: '', - left: '', - top: '', - 'transform-origin': '', - }), - this._placeDropdown()) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Dropdown - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(t._dropdowns = []), - (M.Dropdown = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'dropdown', 'M_Dropdown') - })(cash, M.anime), - (function(s, i) { - 'use strict' - var e = { - opacity: 0.5, - inDuration: 250, - outDuration: 250, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - preventScrolling: !0, - dismissible: !0, - startingTop: '4%', - endingTop: '10%', - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Modal = i).options = s.extend( - {}, - n.defaults, - e - )), - (i.isOpen = !1), - (i.id = i.$el.attr('id')), - (i._openingTrigger = void 0), - (i.$overlay = s('<div class="modal-overlay"></div>')), - (i.el.tabIndex = 0), - (i._nthModalOpened = 0), - n._count++, - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - n._count--, - this._removeEventHandlers(), - this.el.removeAttribute('style'), - this.$overlay.remove(), - (this.el.M_Modal = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleOverlayClickBound = this._handleOverlayClick.bind( - this - )), - (this._handleModalCloseClickBound = this._handleModalCloseClick.bind( - this - )), - 1 === n._count && - document.body.addEventListener( - 'click', - this._handleTriggerClick - ), - this.$overlay[0].addEventListener( - 'click', - this._handleOverlayClickBound - ), - this.el.addEventListener( - 'click', - this._handleModalCloseClickBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - 0 === n._count && - document.body.removeEventListener( - 'click', - this._handleTriggerClick - ), - this.$overlay[0].removeEventListener( - 'click', - this._handleOverlayClickBound - ), - this.el.removeEventListener( - 'click', - this._handleModalCloseClickBound - ) - }, - }, - { - key: '_handleTriggerClick', - value: function(t) { - var e = s(t.target).closest( - '.modal-trigger' - ) - if (e.length) { - var i = M.getIdFromTrigger(e[0]), - n = document.getElementById(i) - .M_Modal - n && n.open(e), t.preventDefault() - } - }, - }, - { - key: '_handleOverlayClick', - value: function() { - this.options.dismissible && this.close() - }, - }, - { - key: '_handleModalCloseClick', - value: function(t) { - s(t.target).closest('.modal-close') - .length && this.close() - }, - }, - { - key: '_handleKeydown', - value: function(t) { - 27 === t.keyCode && - this.options.dismissible && - this.close() - }, - }, - { - key: '_handleFocus', - value: function(t) { - this.el.contains(t.target) || - this._nthModalOpened !== - n._modalsOpen || - this.el.focus() - }, - }, - { - key: '_animateIn', - value: function() { - var t = this - s.extend(this.el.style, { - display: 'block', - opacity: 0, - }), - s.extend(this.$overlay[0].style, { - display: 'block', - opacity: 0, - }), - i({ - targets: this.$overlay[0], - opacity: this.options.opacity, - duration: this.options.inDuration, - easing: 'easeOutQuad', - }) - var e = { - targets: this.el, - duration: this.options.inDuration, - easing: 'easeOutCubic', - complete: function() { - 'function' == - typeof t.options.onOpenEnd && - t.options.onOpenEnd.call( - t, - t.el, - t._openingTrigger - ) - }, - } - this.el.classList.contains('bottom-sheet') - ? s.extend(e, { bottom: 0, opacity: 1 }) - : s.extend(e, { - top: [ - this.options.startingTop, - this.options.endingTop, - ], - opacity: 1, - scaleX: [0.8, 1], - scaleY: [0.8, 1], - }), - i(e) - }, - }, - { - key: '_animateOut', - value: function() { - var t = this - i({ - targets: this.$overlay[0], - opacity: 0, - duration: this.options.outDuration, - easing: 'easeOutQuart', - }) - var e = { - targets: this.el, - duration: this.options.outDuration, - easing: 'easeOutCubic', - complete: function() { - ;(t.el.style.display = 'none'), - t.$overlay.remove(), - 'function' == - typeof t.options - .onCloseEnd && - t.options.onCloseEnd.call( - t, - t.el - ) - }, - } - this.el.classList.contains('bottom-sheet') - ? s.extend(e, { - bottom: '-100%', - opacity: 0, - }) - : s.extend(e, { - top: [ - this.options.endingTop, - this.options.startingTop, - ], - opacity: 0, - scaleX: 0.8, - scaleY: 0.8, - }), - i(e) - }, - }, - { - key: 'open', - value: function(t) { - if (!this.isOpen) - return ( - (this.isOpen = !0), - n._modalsOpen++, - (this._nthModalOpened = - n._modalsOpen), - (this.$overlay[0].style.zIndex = - 1e3 + 2 * n._modalsOpen), - (this.el.style.zIndex = - 1e3 + 2 * n._modalsOpen + 1), - (this._openingTrigger = t - ? t[0] - : void 0), - 'function' == - typeof this.options - .onOpenStart && - this.options.onOpenStart.call( - this, - this.el, - this._openingTrigger - ), - this.options.preventScrolling && - (document.body.style.overflow = - 'hidden'), - this.el.classList.add('open'), - this.el.insertAdjacentElement( - 'afterend', - this.$overlay[0] - ), - this.options.dismissible && - ((this._handleKeydownBound = this._handleKeydown.bind( - this - )), - (this._handleFocusBound = this._handleFocus.bind( - this - )), - document.addEventListener( - 'keydown', - this._handleKeydownBound - ), - document.addEventListener( - 'focus', - this._handleFocusBound, - !0 - )), - i.remove(this.el), - i.remove(this.$overlay[0]), - this._animateIn(), - this.el.focus(), - this - ) - }, - }, - { - key: 'close', - value: function() { - if (this.isOpen) - return ( - (this.isOpen = !1), - n._modalsOpen--, - (this._nthModalOpened = 0), - 'function' == - typeof this.options - .onCloseStart && - this.options.onCloseStart.call( - this, - this.el - ), - this.el.classList.remove('open'), - 0 === n._modalsOpen && - (document.body.style.overflow = - ''), - this.options.dismissible && - (document.removeEventListener( - 'keydown', - this._handleKeydownBound - ), - document.removeEventListener( - 'focus', - this._handleFocusBound, - !0 - )), - i.remove(this.el), - i.remove(this.$overlay[0]), - this._animateOut(), - this - ) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Modal - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(t._modalsOpen = 0), - (t._count = 0), - (M.Modal = t), - M.jQueryLoaded && M.initializeJqueryWrapper(t, 'modal', 'M_Modal') - })(cash, M.anime), - (function(o, a) { - 'use strict' - var e = { - inDuration: 275, - outDuration: 200, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Materialbox = i).options = o.extend( - {}, - n.defaults, - e - )), - (i.overlayActive = !1), - (i.doneAnimating = !0), - (i.placeholder = o('<div></div>').addClass( - 'material-placeholder' - )), - (i.originalWidth = 0), - (i.originalHeight = 0), - (i.originInlineStyles = i.$el.attr('style')), - (i.caption = i.el.getAttribute('data-caption') || ''), - i.$el.before(i.placeholder), - i.placeholder.append(i.$el), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.M_Materialbox = void 0), - o(this.placeholder) - .after(this.el) - .remove(), - this.$el.removeAttr('style') - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleMaterialboxClickBound = this._handleMaterialboxClick.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleMaterialboxClickBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'click', - this._handleMaterialboxClickBound - ) - }, - }, - { - key: '_handleMaterialboxClick', - value: function(t) { - !1 === this.doneAnimating || - (this.overlayActive && this.doneAnimating) - ? this.close() - : this.open() - }, - }, - { - key: '_handleWindowScroll', - value: function() { - this.overlayActive && this.close() - }, - }, - { - key: '_handleWindowResize', - value: function() { - this.overlayActive && this.close() - }, - }, - { - key: '_handleWindowEscape', - value: function(t) { - 27 === t.keyCode && - this.doneAnimating && - this.overlayActive && - this.close() - }, - }, - { - key: '_makeAncestorsOverflowVisible', - value: function() { - this.ancestorsChanged = o() - for ( - var t = this.placeholder[0].parentNode; - null !== t && !o(t).is(document); - - ) { - var e = o(t) - 'visible' !== e.css('overflow') && - (e.css('overflow', 'visible'), - void 0 === this.ancestorsChanged - ? (this.ancestorsChanged = e) - : (this.ancestorsChanged = this.ancestorsChanged.add( - e - ))), - (t = t.parentNode) - } - }, - }, - { - key: '_animateImageIn', - value: function() { - var t = this, - e = { - targets: this.el, - height: [ - this.originalHeight, - this.newHeight, - ], - width: [ - this.originalWidth, - this.newWidth, - ], - left: - M.getDocumentScrollLeft() + - this.windowWidth / 2 - - this.placeholder.offset().left - - this.newWidth / 2, - top: - M.getDocumentScrollTop() + - this.windowHeight / 2 - - this.placeholder.offset().top - - this.newHeight / 2, - duration: this.options.inDuration, - easing: 'easeOutQuad', - complete: function() { - ;(t.doneAnimating = !0), - 'function' == - typeof t.options - .onOpenEnd && - t.options.onOpenEnd.call( - t, - t.el - ) - }, - } - ;(this.maxWidth = this.$el.css( - 'max-width' - )), - (this.maxHeight = this.$el.css( - 'max-height' - )), - 'none' !== this.maxWidth && - (e.maxWidth = this.newWidth), - 'none' !== this.maxHeight && - (e.maxHeight = this.newHeight), - a(e) - }, - }, - { - key: '_animateImageOut', - value: function() { - var t = this, - e = { - targets: this.el, - width: this.originalWidth, - height: this.originalHeight, - left: 0, - top: 0, - duration: this.options.outDuration, - easing: 'easeOutQuad', - complete: function() { - t.placeholder.css({ - height: '', - width: '', - position: '', - top: '', - left: '', - }), - t.attrWidth && - t.$el.attr( - 'width', - t.attrWidth - ), - t.attrHeight && - t.$el.attr( - 'height', - t.attrHeight - ), - t.$el.removeAttr('style'), - t.originInlineStyles && - t.$el.attr( - 'style', - t.originInlineStyles - ), - t.$el.removeClass('active'), - (t.doneAnimating = !0), - t.ancestorsChanged.length && - t.ancestorsChanged.css( - 'overflow', - '' - ), - 'function' == - typeof t.options - .onCloseEnd && - t.options.onCloseEnd.call( - t, - t.el - ) - }, - } - a(e) - }, - }, - { - key: '_updateVars', - value: function() { - ;(this.windowWidth = window.innerWidth), - (this.windowHeight = - window.innerHeight), - (this.caption = - this.el.getAttribute( - 'data-caption' - ) || '') - }, - }, - { - key: 'open', - value: function() { - var t = this - this._updateVars(), - (this.originalWidth = this.el.getBoundingClientRect().width), - (this.originalHeight = this.el.getBoundingClientRect().height), - (this.doneAnimating = !1), - this.$el.addClass('active'), - (this.overlayActive = !0), - 'function' == - typeof this.options.onOpenStart && - this.options.onOpenStart.call( - this, - this.el - ), - this.placeholder.css({ - width: - this.placeholder[0].getBoundingClientRect() - .width + 'px', - height: - this.placeholder[0].getBoundingClientRect() - .height + 'px', - position: 'relative', - top: 0, - left: 0, - }), - this._makeAncestorsOverflowVisible(), - this.$el.css({ - position: 'absolute', - 'z-index': 1e3, - 'will-change': - 'left, top, width, height', - }), - (this.attrWidth = this.$el.attr( - 'width' - )), - (this.attrHeight = this.$el.attr( - 'height' - )), - this.attrWidth && - (this.$el.css( - 'width', - this.attrWidth + 'px' - ), - this.$el.removeAttr('width')), - this.attrHeight && - (this.$el.css( - 'width', - this.attrHeight + 'px' - ), - this.$el.removeAttr('height')), - (this.$overlay = o( - '<div id="materialbox-overlay"></div>' - ) - .css({ opacity: 0 }) - .one('click', function() { - t.doneAnimating && t.close() - })), - this.$el.before(this.$overlay) - var e = this.$overlay[0].getBoundingClientRect() - this.$overlay.css({ - width: this.windowWidth + 'px', - height: this.windowHeight + 'px', - left: -1 * e.left + 'px', - top: -1 * e.top + 'px', - }), - a.remove(this.el), - a.remove(this.$overlay[0]), - a({ - targets: this.$overlay[0], - opacity: 1, - duration: this.options.inDuration, - easing: 'easeOutQuad', - }), - '' !== this.caption && - (this.$photocaption && - a.remove(this.$photoCaption[0]), - (this.$photoCaption = o( - '<div class="materialbox-caption"></div>' - )), - this.$photoCaption.text( - this.caption - ), - o('body').append( - this.$photoCaption - ), - this.$photoCaption.css({ - display: 'inline', - }), - a({ - targets: this.$photoCaption[0], - opacity: 1, - duration: this.options - .inDuration, - easing: 'easeOutQuad', - })) - var i = 0, - n = - this.originalWidth / - this.windowWidth, - s = - this.originalHeight / - this.windowHeight - ;(this.newWidth = 0), - (this.newHeight = 0), - s < n - ? ((i = - this.originalHeight / - this.originalWidth), - (this.newWidth = - 0.9 * this.windowWidth), - (this.newHeight = - 0.9 * this.windowWidth * i)) - : ((i = - this.originalWidth / - this.originalHeight), - (this.newWidth = - 0.9 * this.windowHeight * i), - (this.newHeight = - 0.9 * this.windowHeight)), - this._animateImageIn(), - (this._handleWindowScrollBound = this._handleWindowScroll.bind( - this - )), - (this._handleWindowResizeBound = this._handleWindowResize.bind( - this - )), - (this._handleWindowEscapeBound = this._handleWindowEscape.bind( - this - )), - window.addEventListener( - 'scroll', - this._handleWindowScrollBound - ), - window.addEventListener( - 'resize', - this._handleWindowResizeBound - ), - window.addEventListener( - 'keyup', - this._handleWindowEscapeBound - ) - }, - }, - { - key: 'close', - value: function() { - var t = this - this._updateVars(), - (this.doneAnimating = !1), - 'function' == - typeof this.options.onCloseStart && - this.options.onCloseStart.call( - this, - this.el - ), - a.remove(this.el), - a.remove(this.$overlay[0]), - '' !== this.caption && - a.remove(this.$photoCaption[0]), - window.removeEventListener( - 'scroll', - this._handleWindowScrollBound - ), - window.removeEventListener( - 'resize', - this._handleWindowResizeBound - ), - window.removeEventListener( - 'keyup', - this._handleWindowEscapeBound - ), - a({ - targets: this.$overlay[0], - opacity: 0, - duration: this.options.outDuration, - easing: 'easeOutQuad', - complete: function() { - ;(t.overlayActive = !1), - t.$overlay.remove() - }, - }), - this._animateImageOut(), - '' !== this.caption && - a({ - targets: this.$photoCaption[0], - opacity: 0, - duration: this.options - .outDuration, - easing: 'easeOutQuad', - complete: function() { - t.$photoCaption.remove() - }, - }) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Materialbox - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.Materialbox = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'materialbox', 'M_Materialbox') - })(cash, M.anime), - (function(s) { - 'use strict' - var e = { responsiveThreshold: 0 }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Parallax = i).options = s.extend( - {}, - n.defaults, - e - )), - (i._enabled = - window.innerWidth > i.options.responsiveThreshold), - (i.$img = i.$el.find('img').first()), - i.$img.each(function() { - this.complete && s(this).trigger('load') - }), - i._updateParallax(), - i._setupEventHandlers(), - i._setupStyles(), - n._parallaxes.push(i), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - n._parallaxes.splice( - n._parallaxes.indexOf(this), - 1 - ), - (this.$img[0].style.transform = ''), - this._removeEventHandlers(), - (this.$el[0].M_Parallax = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleImageLoadBound = this._handleImageLoad.bind( - this - )), - this.$img[0].addEventListener( - 'load', - this._handleImageLoadBound - ), - 0 === n._parallaxes.length && - ((n._handleScrollThrottled = M.throttle( - n._handleScroll, - 5 - )), - window.addEventListener( - 'scroll', - n._handleScrollThrottled - ), - (n._handleWindowResizeThrottled = M.throttle( - n._handleWindowResize, - 5 - )), - window.addEventListener( - 'resize', - n._handleWindowResizeThrottled - )) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.$img[0].removeEventListener( - 'load', - this._handleImageLoadBound - ), - 0 === n._parallaxes.length && - (window.removeEventListener( - 'scroll', - n._handleScrollThrottled - ), - window.removeEventListener( - 'resize', - n._handleWindowResizeThrottled - )) - }, - }, - { - key: '_setupStyles', - value: function() { - this.$img[0].style.opacity = 1 - }, - }, - { - key: '_handleImageLoad', - value: function() { - this._updateParallax() - }, - }, - { - key: '_updateParallax', - value: function() { - var t = - 0 < this.$el.height() - ? this.el.parentNode - .offsetHeight - : 500, - e = this.$img[0].offsetHeight - t, - i = this.$el.offset().top + t, - n = this.$el.offset().top, - s = M.getDocumentScrollTop(), - o = window.innerHeight, - a = e * ((s + o - n) / (t + o)) - this._enabled - ? s < i && - n < s + o && - (this.$img[0].style.transform = - 'translate3D(-50%, ' + - a + - 'px, 0)') - : (this.$img[0].style.transform = '') - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Parallax - }, - }, - { - key: '_handleScroll', - value: function() { - for ( - var t = 0; - t < n._parallaxes.length; - t++ - ) { - var e = n._parallaxes[t] - e._updateParallax.call(e) - } - }, - }, - { - key: '_handleWindowResize', - value: function() { - for ( - var t = 0; - t < n._parallaxes.length; - t++ - ) { - var e = n._parallaxes[t] - e._enabled = - window.innerWidth > - e.options.responsiveThreshold - } - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(t._parallaxes = []), - (M.Parallax = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'parallax', 'M_Parallax') - })(cash), - (function(a, s) { - 'use strict' - var e = { - duration: 300, - onShow: null, - swipeable: !1, - responsiveThreshold: 1 / 0, - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Tabs = i).options = a.extend( - {}, - n.defaults, - e - )), - (i.$tabLinks = i.$el.children('li.tab').children('a')), - (i.index = 0), - i._setupActiveTabLink(), - i.options.swipeable - ? i._setupSwipeableTabs() - : i._setupNormalTabs(), - i._setTabsAndTabWidth(), - i._createIndicator(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this._indicator.parentNode.removeChild( - this._indicator - ), - this.options.swipeable - ? this._teardownSwipeableTabs() - : this._teardownNormalTabs(), - (this.$el[0].M_Tabs = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleWindowResizeBound = this._handleWindowResize.bind( - this - )), - window.addEventListener( - 'resize', - this._handleWindowResizeBound - ), - (this._handleTabClickBound = this._handleTabClick.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleTabClickBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - window.removeEventListener( - 'resize', - this._handleWindowResizeBound - ), - this.el.removeEventListener( - 'click', - this._handleTabClickBound - ) - }, - }, - { - key: '_handleWindowResize', - value: function() { - this._setTabsAndTabWidth(), - 0 !== this.tabWidth && - 0 !== this.tabsWidth && - ((this._indicator.style.left = - this._calcLeftPos( - this.$activeTabLink - ) + 'px'), - (this._indicator.style.right = - this._calcRightPos( - this.$activeTabLink - ) + 'px')) - }, - }, - { - key: '_handleTabClick', - value: function(t) { - var e = this, - i = a(t.target).closest('li.tab'), - n = a(t.target).closest('a') - if (n.length && n.parent().hasClass('tab')) - if (i.hasClass('disabled')) - t.preventDefault() - else if (!n.attr('target')) { - this.$activeTabLink.removeClass( - 'active' - ) - var s = this.$content - ;(this.$activeTabLink = n), - (this.$content = a( - M.escapeHash(n[0].hash) - )), - (this.$tabLinks = this.$el - .children('li.tab') - .children('a')), - this.$activeTabLink.addClass( - 'active' - ) - var o = this.index - ;(this.index = Math.max( - this.$tabLinks.index(n), - 0 - )), - this.options.swipeable - ? this._tabsCarousel && - this._tabsCarousel.set( - this.index, - function() { - 'function' == - typeof e - .options - .onShow && - e.options.onShow.call( - e, - e - .$content[0] - ) - } - ) - : this.$content.length && - ((this.$content[0].style.display = - 'block'), - this.$content.addClass( - 'active' - ), - 'function' == - typeof this.options - .onShow && - this.options.onShow.call( - this, - this.$content[0] - ), - s.length && - !s.is( - this.$content - ) && - ((s[0].style.display = - 'none'), - s.removeClass( - 'active' - ))), - this._setTabsAndTabWidth(), - this._animateIndicator(o), - t.preventDefault() - } - }, - }, - { - key: '_createIndicator', - value: function() { - var t = this, - e = document.createElement('li') - e.classList.add('indicator'), - this.el.appendChild(e), - (this._indicator = e), - setTimeout(function() { - ;(t._indicator.style.left = - t._calcLeftPos( - t.$activeTabLink - ) + 'px'), - (t._indicator.style.right = - t._calcRightPos( - t.$activeTabLink - ) + 'px') - }, 0) - }, - }, - { - key: '_setupActiveTabLink', - value: function() { - ;(this.$activeTabLink = a( - this.$tabLinks.filter( - '[href="' + location.hash + '"]' - ) - )), - 0 === this.$activeTabLink.length && - (this.$activeTabLink = this.$el - .children('li.tab') - .children('a.active') - .first()), - 0 === this.$activeTabLink.length && - (this.$activeTabLink = this.$el - .children('li.tab') - .children('a') - .first()), - this.$tabLinks.removeClass('active'), - this.$activeTabLink[0].classList.add( - 'active' - ), - (this.index = Math.max( - this.$tabLinks.index( - this.$activeTabLink - ), - 0 - )), - this.$activeTabLink.length && - ((this.$content = a( - M.escapeHash( - this.$activeTabLink[0].hash - ) - )), - this.$content.addClass('active')) - }, - }, - { - key: '_setupSwipeableTabs', - value: function() { - var i = this - window.innerWidth > - this.options.responsiveThreshold && - (this.options.swipeable = !1) - var n = a() - this.$tabLinks.each(function(t) { - var e = a(M.escapeHash(t.hash)) - e.addClass('carousel-item'), - (n = n.add(e)) - }) - var t = a( - '<div class="tabs-content carousel carousel-slider"></div>' - ) - n.first().before(t), - t.append(n), - (n[0].style.display = '') - var e = this.$activeTabLink - .closest('.tab') - .index() - ;(this._tabsCarousel = M.Carousel.init( - t[0], - { - fullWidth: !0, - noWrap: !0, - onCycleTo: function(t) { - var e = i.index - ;(i.index = a(t).index()), - i.$activeTabLink.removeClass( - 'active' - ), - (i.$activeTabLink = i.$tabLinks.eq( - i.index - )), - i.$activeTabLink.addClass( - 'active' - ), - i._animateIndicator(e), - 'function' == - typeof i.options - .onShow && - i.options.onShow.call( - i, - i.$content[0] - ) - }, - } - )), - this._tabsCarousel.set(e) - }, - }, - { - key: '_teardownSwipeableTabs', - value: function() { - var t = this._tabsCarousel.$el - this._tabsCarousel.destroy(), - t.after(t.children()), - t.remove() - }, - }, - { - key: '_setupNormalTabs', - value: function() { - this.$tabLinks - .not(this.$activeTabLink) - .each(function(t) { - if (t.hash) { - var e = a(M.escapeHash(t.hash)) - e.length && - (e[0].style.display = - 'none') - } - }) - }, - }, - { - key: '_teardownNormalTabs', - value: function() { - this.$tabLinks.each(function(t) { - if (t.hash) { - var e = a(M.escapeHash(t.hash)) - e.length && - (e[0].style.display = '') - } - }) - }, - }, - { - key: '_setTabsAndTabWidth', - value: function() { - ;(this.tabsWidth = this.$el.width()), - (this.tabWidth = - Math.max( - this.tabsWidth, - this.el.scrollWidth - ) / this.$tabLinks.length) - }, - }, - { - key: '_calcRightPos', - value: function(t) { - return Math.ceil( - this.tabsWidth - - t.position().left - - t[0].getBoundingClientRect().width - ) - }, - }, - { - key: '_calcLeftPos', - value: function(t) { - return Math.floor(t.position().left) - }, - }, - { - key: 'updateTabIndicator', - value: function() { - this._setTabsAndTabWidth(), - this._animateIndicator(this.index) - }, - }, - { - key: '_animateIndicator', - value: function(t) { - var e = 0, - i = 0 - 0 <= this.index - t ? (e = 90) : (i = 90) - var n = { - targets: this._indicator, - left: { - value: this._calcLeftPos( - this.$activeTabLink - ), - delay: e, - }, - right: { - value: this._calcRightPos( - this.$activeTabLink - ), - delay: i, - }, - duration: this.options.duration, - easing: 'easeOutQuad', - } - s.remove(this._indicator), s(n) - }, - }, - { - key: 'select', - value: function(t) { - var e = this.$tabLinks.filter( - '[href="#' + t + '"]' - ) - e.length && e.trigger('click') - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Tabs - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.Tabs = t), - M.jQueryLoaded && M.initializeJqueryWrapper(t, 'tabs', 'M_Tabs') - })(cash, M.anime), - (function(d, e) { - 'use strict' - var i = { - exitDelay: 200, - enterDelay: 0, - html: null, - margin: 5, - inDuration: 250, - outDuration: 200, - position: 'bottom', - transitionMovement: 10, - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Tooltip = i).options = d.extend( - {}, - n.defaults, - e - )), - (i.isOpen = !1), - (i.isHovered = !1), - (i.isFocused = !1), - i._appendTooltipEl(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - d(this.tooltipEl).remove(), - this._removeEventHandlers(), - (this.el.M_Tooltip = void 0) - }, - }, - { - key: '_appendTooltipEl', - value: function() { - var t = document.createElement('div') - t.classList.add('material-tooltip'), - (this.tooltipEl = t) - var e = document.createElement('div') - e.classList.add('tooltip-content'), - (e.innerHTML = this.options.html), - t.appendChild(e), - document.body.appendChild(t) - }, - }, - { - key: '_updateTooltipContent', - value: function() { - this.tooltipEl.querySelector( - '.tooltip-content' - ).innerHTML = this.options.html - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleMouseEnterBound = this._handleMouseEnter.bind( - this - )), - (this._handleMouseLeaveBound = this._handleMouseLeave.bind( - this - )), - (this._handleFocusBound = this._handleFocus.bind( - this - )), - (this._handleBlurBound = this._handleBlur.bind( - this - )), - this.el.addEventListener( - 'mouseenter', - this._handleMouseEnterBound - ), - this.el.addEventListener( - 'mouseleave', - this._handleMouseLeaveBound - ), - this.el.addEventListener( - 'focus', - this._handleFocusBound, - !0 - ), - this.el.addEventListener( - 'blur', - this._handleBlurBound, - !0 - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'mouseenter', - this._handleMouseEnterBound - ), - this.el.removeEventListener( - 'mouseleave', - this._handleMouseLeaveBound - ), - this.el.removeEventListener( - 'focus', - this._handleFocusBound, - !0 - ), - this.el.removeEventListener( - 'blur', - this._handleBlurBound, - !0 - ) - }, - }, - { - key: 'open', - value: function(t) { - this.isOpen || - ((t = void 0 === t || void 0), - (this.isOpen = !0), - (this.options = d.extend( - {}, - this.options, - this._getAttributeOptions() - )), - this._updateTooltipContent(), - this._setEnterDelayTimeout(t)) - }, - }, - { - key: 'close', - value: function() { - this.isOpen && - ((this.isHovered = !1), - (this.isFocused = !1), - (this.isOpen = !1), - this._setExitDelayTimeout()) - }, - }, - { - key: '_setExitDelayTimeout', - value: function() { - var t = this - clearTimeout(this._exitDelayTimeout), - (this._exitDelayTimeout = setTimeout( - function() { - t.isHovered || - t.isFocused || - t._animateOut() - }, - this.options.exitDelay - )) - }, - }, - { - key: '_setEnterDelayTimeout', - value: function(t) { - var e = this - clearTimeout(this._enterDelayTimeout), - (this._enterDelayTimeout = setTimeout( - function() { - ;(e.isHovered || - e.isFocused || - t) && - e._animateIn() - }, - this.options.enterDelay - )) - }, - }, - { - key: '_positionTooltip', - value: function() { - var t, - e = this.el, - i = this.tooltipEl, - n = e.offsetHeight, - s = e.offsetWidth, - o = i.offsetHeight, - a = i.offsetWidth, - r = this.options.margin, - l = void 0, - h = void 0 - ;(this.xMovement = 0), - (this.yMovement = 0), - (l = - e.getBoundingClientRect().top + - M.getDocumentScrollTop()), - (h = - e.getBoundingClientRect().left + - M.getDocumentScrollLeft()), - 'top' === this.options.position - ? ((l += -o - r), - (h += s / 2 - a / 2), - (this.yMovement = -this.options - .transitionMovement)) - : 'right' === this.options.position - ? ((l += n / 2 - o / 2), - (h += s + r), - (this.xMovement = this.options.transitionMovement)) - : 'left' === this.options.position - ? ((l += n / 2 - o / 2), - (h += -a - r), - (this.xMovement = -this.options - .transitionMovement)) - : ((l += n + r), - (h += s / 2 - a / 2), - (this.yMovement = this.options.transitionMovement)), - (t = this._repositionWithinScreen( - h, - l, - a, - o - )), - d(i).css({ - top: t.y + 'px', - left: t.x + 'px', - }) - }, - }, - { - key: '_repositionWithinScreen', - value: function(t, e, i, n) { - var s = M.getDocumentScrollLeft(), - o = M.getDocumentScrollTop(), - a = t - s, - r = e - o, - l = { - left: a, - top: r, - width: i, - height: n, - }, - h = - this.options.margin + - this.options.transitionMovement, - d = M.checkWithinContainer( - document.body, - l, - h - ) - return ( - d.left - ? (a = h) - : d.right && - (a -= a + i - window.innerWidth), - d.top - ? (r = h) - : d.bottom && - (r -= r + n - window.innerHeight), - { x: a + s, y: r + o } - ) - }, - }, - { - key: '_animateIn', - value: function() { - this._positionTooltip(), - (this.tooltipEl.style.visibility = - 'visible'), - e.remove(this.tooltipEl), - e({ - targets: this.tooltipEl, - opacity: 1, - translateX: this.xMovement, - translateY: this.yMovement, - duration: this.options.inDuration, - easing: 'easeOutCubic', - }) - }, - }, - { - key: '_animateOut', - value: function() { - e.remove(this.tooltipEl), - e({ - targets: this.tooltipEl, - opacity: 0, - translateX: 0, - translateY: 0, - duration: this.options.outDuration, - easing: 'easeOutCubic', - }) - }, - }, - { - key: '_handleMouseEnter', - value: function() { - ;(this.isHovered = !0), - (this.isFocused = !1), - this.open(!1) - }, - }, - { - key: '_handleMouseLeave', - value: function() { - ;(this.isHovered = !1), - (this.isFocused = !1), - this.close() - }, - }, - { - key: '_handleFocus', - value: function() { - M.tabPressed && - ((this.isFocused = !0), this.open(!1)) - }, - }, - { - key: '_handleBlur', - value: function() { - ;(this.isFocused = !1), this.close() - }, - }, - { - key: '_getAttributeOptions', - value: function() { - var t = {}, - e = this.el.getAttribute( - 'data-tooltip' - ), - i = this.el.getAttribute( - 'data-position' - ) - return ( - e && (t.html = e), - i && (t.position = i), - t - ) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Tooltip - }, - }, - { - key: 'defaults', - get: function() { - return i - }, - }, - ] - ), - n - ) - })() - ;(M.Tooltip = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'tooltip', 'M_Tooltip') - })(cash, M.anime), - (function(i) { - 'use strict' - var t = t || {}, - e = document.querySelectorAll.bind(document) - function m(t) { - var e = '' - for (var i in t) t.hasOwnProperty(i) && (e += i + ':' + t[i] + ';') - return e - } - var g = { - duration: 750, - show: function(t, e) { - if (2 === t.button) return !1 - var i = e || this, - n = document.createElement('div') - ;(n.className = 'waves-ripple'), i.appendChild(n) - var s, - o, - a, - r, - l, - h, - d, - u = - ((h = { top: 0, left: 0 }), - (d = (s = i) && s.ownerDocument), - (o = d.documentElement), - void 0 !== s.getBoundingClientRect && - (h = s.getBoundingClientRect()), - (a = - null !== (l = r = d) && l === l.window - ? r - : 9 === r.nodeType && r.defaultView), - { - top: h.top + a.pageYOffset - o.clientTop, - left: h.left + a.pageXOffset - o.clientLeft, - }), - c = t.pageY - u.top, - p = t.pageX - u.left, - v = 'scale(' + (i.clientWidth / 100) * 10 + ')' - 'touches' in t && - ((c = t.touches[0].pageY - u.top), - (p = t.touches[0].pageX - u.left)), - n.setAttribute('data-hold', Date.now()), - n.setAttribute('data-scale', v), - n.setAttribute('data-x', p), - n.setAttribute('data-y', c) - var f = { top: c + 'px', left: p + 'px' } - ;(n.className = n.className + ' waves-notransition'), - n.setAttribute('style', m(f)), - (n.className = n.className.replace( - 'waves-notransition', - '' - )), - (f['-webkit-transform'] = v), - (f['-moz-transform'] = v), - (f['-ms-transform'] = v), - (f['-o-transform'] = v), - (f.transform = v), - (f.opacity = '1'), - (f['-webkit-transition-duration'] = g.duration + 'ms'), - (f['-moz-transition-duration'] = g.duration + 'ms'), - (f['-o-transition-duration'] = g.duration + 'ms'), - (f['transition-duration'] = g.duration + 'ms'), - (f['-webkit-transition-timing-function'] = - 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'), - (f['-moz-transition-timing-function'] = - 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'), - (f['-o-transition-timing-function'] = - 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'), - (f['transition-timing-function'] = - 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'), - n.setAttribute('style', m(f)) - }, - hide: function(t) { - l.touchup(t) - var e = this, - i = (e.clientWidth, null), - n = e.getElementsByClassName('waves-ripple') - if (!(0 < n.length)) return !1 - var s = (i = n[n.length - 1]).getAttribute('data-x'), - o = i.getAttribute('data-y'), - a = i.getAttribute('data-scale'), - r = - 350 - - (Date.now() - Number(i.getAttribute('data-hold'))) - r < 0 && (r = 0), - setTimeout(function() { - var t = { - top: o + 'px', - left: s + 'px', - opacity: '0', - '-webkit-transition-duration': - g.duration + 'ms', - '-moz-transition-duration': g.duration + 'ms', - '-o-transition-duration': g.duration + 'ms', - 'transition-duration': g.duration + 'ms', - '-webkit-transform': a, - '-moz-transform': a, - '-ms-transform': a, - '-o-transform': a, - transform: a, - } - i.setAttribute('style', m(t)), - setTimeout(function() { - try { - e.removeChild(i) - } catch (t) { - return !1 - } - }, g.duration) - }, r) - }, - wrapInput: function(t) { - for (var e = 0; e < t.length; e++) { - var i = t[e] - if ('input' === i.tagName.toLowerCase()) { - var n = i.parentNode - if ( - 'i' === n.tagName.toLowerCase() && - -1 !== n.className.indexOf('waves-effect') - ) - continue - var s = document.createElement('i') - s.className = i.className + ' waves-input-wrapper' - var o = i.getAttribute('style') - o || (o = ''), - s.setAttribute('style', o), - (i.className = 'waves-button-input'), - i.removeAttribute('style'), - n.replaceChild(s, i), - s.appendChild(i) - } - } - }, - }, - l = { - touches: 0, - allowEvent: function(t) { - var e = !0 - return ( - 'touchstart' === t.type - ? (l.touches += 1) - : 'touchend' === t.type || 'touchcancel' === t.type - ? setTimeout(function() { - 0 < l.touches && (l.touches -= 1) - }, 500) - : 'mousedown' === t.type && - 0 < l.touches && - (e = !1), - e - ) - }, - touchup: function(t) { - l.allowEvent(t) - }, - } - function n(t) { - var e = (function(t) { - if (!1 === l.allowEvent(t)) return null - for ( - var e = null, i = t.target || t.srcElement; - null !== i.parentNode; - - ) { - if ( - !(i instanceof SVGElement) && - -1 !== i.className.indexOf('waves-effect') - ) { - e = i - break - } - i = i.parentNode - } - return e - })(t) - null !== e && - (g.show(t, e), - 'ontouchstart' in i && - (e.addEventListener('touchend', g.hide, !1), - e.addEventListener('touchcancel', g.hide, !1)), - e.addEventListener('mouseup', g.hide, !1), - e.addEventListener('mouseleave', g.hide, !1), - e.addEventListener('dragend', g.hide, !1)) - } - ;(t.displayEffect = function(t) { - 'duration' in (t = t || {}) && (g.duration = t.duration), - g.wrapInput(e('.waves-effect')), - 'ontouchstart' in i && - document.body.addEventListener('touchstart', n, !1), - document.body.addEventListener('mousedown', n, !1) - }), - (t.attach = function(t) { - 'input' === t.tagName.toLowerCase() && - (g.wrapInput([t]), (t = t.parentNode)), - 'ontouchstart' in i && - t.addEventListener('touchstart', n, !1), - t.addEventListener('mousedown', n, !1) - }), - (i.Waves = t), - document.addEventListener( - 'DOMContentLoaded', - function() { - t.displayEffect() - }, - !1 - ) - })(window), - (function(i, n) { - 'use strict' - var t = { - html: '', - displayLength: 4e3, - inDuration: 300, - outDuration: 375, - classes: '', - completeCallback: null, - activationPercent: 0.8, - }, - e = (function() { - function s(t) { - _classCallCheck(this, s), - (this.options = i.extend({}, s.defaults, t)), - (this.message = this.options.html), - (this.panning = !1), - (this.timeRemaining = this.options.displayLength), - 0 === s._toasts.length && s._createContainer(), - s._toasts.push(this) - var e = this._createToast() - ;((e.M_Toast = this).el = e), - (this.$el = i(e)), - this._animateIn(), - this._setTimer() - } - return ( - _createClass( - s, - [ - { - key: '_createToast', - value: function() { - var t = document.createElement('div') - return ( - t.classList.add('toast'), - this.options.classes.length && - i(t).addClass(this.options.classes), - ('object' == typeof HTMLElement - ? this.message instanceof HTMLElement - : this.message && - 'object' == typeof this.message && - null !== this.message && - 1 === this.message.nodeType && - 'string' == - typeof this.message.nodeName) - ? t.appendChild(this.message) - : this.message.jquery - ? i(t).append(this.message[0]) - : (t.innerHTML = this.message), - s._container.appendChild(t), - t - ) - }, - }, - { - key: '_animateIn', - value: function() { - n({ - targets: this.el, - top: 0, - opacity: 1, - duration: this.options.inDuration, - easing: 'easeOutCubic', - }) - }, - }, - { - key: '_setTimer', - value: function() { - var t = this - this.timeRemaining !== 1 / 0 && - (this.counterInterval = setInterval( - function() { - t.panning || - (t.timeRemaining -= 20), - t.timeRemaining <= 0 && - t.dismiss() - }, - 20 - )) - }, - }, - { - key: 'dismiss', - value: function() { - var t = this - window.clearInterval(this.counterInterval) - var e = - this.el.offsetWidth * - this.options.activationPercent - this.wasSwiped && - ((this.el.style.transition = - 'transform .05s, opacity .05s'), - (this.el.style.transform = - 'translateX(' + e + 'px)'), - (this.el.style.opacity = 0)), - n({ - targets: this.el, - opacity: 0, - marginTop: -40, - duration: this.options.outDuration, - easing: 'easeOutExpo', - complete: function() { - 'function' == - typeof t.options - .completeCallback && - t.options.completeCallback(), - t.$el.remove(), - s._toasts.splice( - s._toasts.indexOf(t), - 1 - ), - 0 === s._toasts.length && - s._removeContainer() - }, - }) - }, - }, - ], - [ - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Toast - }, - }, - { - key: '_createContainer', - value: function() { - var t = document.createElement('div') - t.setAttribute('id', 'toast-container'), - t.addEventListener( - 'touchstart', - s._onDragStart - ), - t.addEventListener( - 'touchmove', - s._onDragMove - ), - t.addEventListener( - 'touchend', - s._onDragEnd - ), - t.addEventListener( - 'mousedown', - s._onDragStart - ), - document.addEventListener( - 'mousemove', - s._onDragMove - ), - document.addEventListener( - 'mouseup', - s._onDragEnd - ), - document.body.appendChild(t), - (s._container = t) - }, - }, - { - key: '_removeContainer', - value: function() { - document.removeEventListener( - 'mousemove', - s._onDragMove - ), - document.removeEventListener( - 'mouseup', - s._onDragEnd - ), - i(s._container).remove(), - (s._container = null) - }, - }, - { - key: '_onDragStart', - value: function(t) { - if ( - t.target && - i(t.target).closest('.toast').length - ) { - var e = i(t.target).closest('.toast')[0] - .M_Toast - ;(e.panning = !0), - (s._draggedToast = e).el.classList.add( - 'panning' - ), - (e.el.style.transition = ''), - (e.startingXPos = s._xPos(t)), - (e.time = Date.now()), - (e.xPos = s._xPos(t)) - } - }, - }, - { - key: '_onDragMove', - value: function(t) { - if (s._draggedToast) { - t.preventDefault() - var e = s._draggedToast - ;(e.deltaX = Math.abs( - e.xPos - s._xPos(t) - )), - (e.xPos = s._xPos(t)), - (e.velocityX = - e.deltaX / - (Date.now() - e.time)), - (e.time = Date.now()) - var i = e.xPos - e.startingXPos, - n = - e.el.offsetWidth * - e.options.activationPercent - ;(e.el.style.transform = - 'translateX(' + i + 'px)'), - (e.el.style.opacity = - 1 - Math.abs(i / n)) - } - }, - }, - { - key: '_onDragEnd', - value: function() { - if (s._draggedToast) { - var t = s._draggedToast - ;(t.panning = !1), - t.el.classList.remove('panning') - var e = t.xPos - t.startingXPos, - i = - t.el.offsetWidth * - t.options.activationPercent - Math.abs(e) > i || 1 < t.velocityX - ? ((t.wasSwiped = !0), t.dismiss()) - : ((t.el.style.transition = - 'transform .2s, opacity .2s'), - (t.el.style.transform = ''), - (t.el.style.opacity = '')), - (s._draggedToast = null) - } - }, - }, - { - key: '_xPos', - value: function(t) { - return t.targetTouches && - 1 <= t.targetTouches.length - ? t.targetTouches[0].clientX - : t.clientX - }, - }, - { - key: 'dismissAll', - value: function() { - for (var t in s._toasts) - s._toasts[t].dismiss() - }, - }, - { - key: 'defaults', - get: function() { - return t - }, - }, - ] - ), - s - ) - })() - ;(e._toasts = []), - (e._container = null), - (e._draggedToast = null), - (M.Toast = e), - (M.toast = function(t) { - return new e(t) - }) - })(cash, M.anime), - (function(s, o) { - 'use strict' - var e = { - edge: 'left', - draggable: !0, - inDuration: 250, - outDuration: 200, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - preventScrolling: !0, - }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Sidenav = i).id = i.$el.attr('id')), - (i.options = s.extend({}, n.defaults, e)), - (i.isOpen = !1), - (i.isFixed = i.el.classList.contains('sidenav-fixed')), - (i.isDragged = !1), - (i.lastWindowWidth = window.innerWidth), - (i.lastWindowHeight = window.innerHeight), - i._createOverlay(), - i._createDragTarget(), - i._setupEventHandlers(), - i._setupClasses(), - i._setupFixed(), - n._sidenavs.push(i), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this._enableBodyScrolling(), - this._overlay.parentNode.removeChild( - this._overlay - ), - this.dragTarget.parentNode.removeChild( - this.dragTarget - ), - (this.el.M_Sidenav = void 0), - (this.el.style.transform = '') - var t = n._sidenavs.indexOf(this) - 0 <= t && n._sidenavs.splice(t, 1) - }, - }, - { - key: '_createOverlay', - value: function() { - var t = document.createElement('div') - ;(this._closeBound = this.close.bind(this)), - t.classList.add('sidenav-overlay'), - t.addEventListener( - 'click', - this._closeBound - ), - document.body.appendChild(t), - (this._overlay = t) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - 0 === n._sidenavs.length && - document.body.addEventListener( - 'click', - this._handleTriggerClick - ), - (this._handleDragTargetDragBound = this._handleDragTargetDrag.bind( - this - )), - (this._handleDragTargetReleaseBound = this._handleDragTargetRelease.bind( - this - )), - (this._handleCloseDragBound = this._handleCloseDrag.bind( - this - )), - (this._handleCloseReleaseBound = this._handleCloseRelease.bind( - this - )), - (this._handleCloseTriggerClickBound = this._handleCloseTriggerClick.bind( - this - )), - this.dragTarget.addEventListener( - 'touchmove', - this._handleDragTargetDragBound - ), - this.dragTarget.addEventListener( - 'touchend', - this._handleDragTargetReleaseBound - ), - this._overlay.addEventListener( - 'touchmove', - this._handleCloseDragBound - ), - this._overlay.addEventListener( - 'touchend', - this._handleCloseReleaseBound - ), - this.el.addEventListener( - 'touchmove', - this._handleCloseDragBound - ), - this.el.addEventListener( - 'touchend', - this._handleCloseReleaseBound - ), - this.el.addEventListener( - 'click', - this._handleCloseTriggerClickBound - ), - this.isFixed && - ((this._handleWindowResizeBound = this._handleWindowResize.bind( - this - )), - window.addEventListener( - 'resize', - this._handleWindowResizeBound - )) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - 1 === n._sidenavs.length && - document.body.removeEventListener( - 'click', - this._handleTriggerClick - ), - this.dragTarget.removeEventListener( - 'touchmove', - this._handleDragTargetDragBound - ), - this.dragTarget.removeEventListener( - 'touchend', - this._handleDragTargetReleaseBound - ), - this._overlay.removeEventListener( - 'touchmove', - this._handleCloseDragBound - ), - this._overlay.removeEventListener( - 'touchend', - this._handleCloseReleaseBound - ), - this.el.removeEventListener( - 'touchmove', - this._handleCloseDragBound - ), - this.el.removeEventListener( - 'touchend', - this._handleCloseReleaseBound - ), - this.el.removeEventListener( - 'click', - this._handleCloseTriggerClickBound - ), - this.isFixed && - window.removeEventListener( - 'resize', - this._handleWindowResizeBound - ) - }, - }, - { - key: '_handleTriggerClick', - value: function(t) { - var e = s(t.target).closest( - '.sidenav-trigger' - ) - if (t.target && e.length) { - var i = M.getIdFromTrigger(e[0]), - n = document.getElementById(i) - .M_Sidenav - n && n.open(e), t.preventDefault() - } - }, - }, - { - key: '_startDrag', - value: function(t) { - var e = t.targetTouches[0].clientX - ;(this.isDragged = !0), - (this._startingXpos = e), - (this._xPos = this._startingXpos), - (this._time = Date.now()), - (this._width = this.el.getBoundingClientRect().width), - (this._overlay.style.display = 'block'), - (this._initialScrollTop = this.isOpen - ? this.el.scrollTop - : M.getDocumentScrollTop()), - (this._verticallyScrolling = !1), - o.remove(this.el), - o.remove(this._overlay) - }, - }, - { - key: '_dragMoveUpdate', - value: function(t) { - var e = t.targetTouches[0].clientX, - i = this.isOpen - ? this.el.scrollTop - : M.getDocumentScrollTop() - ;(this.deltaX = Math.abs(this._xPos - e)), - (this._xPos = e), - (this.velocityX = - this.deltaX / - (Date.now() - this._time)), - (this._time = Date.now()), - this._initialScrollTop !== i && - (this._verticallyScrolling = !0) - }, - }, - { - key: '_handleDragTargetDrag', - value: function(t) { - if ( - this.options.draggable && - !this._isCurrentlyFixed() && - !this._verticallyScrolling - ) { - this.isDragged || this._startDrag(t), - this._dragMoveUpdate(t) - var e = this._xPos - this._startingXpos, - i = 0 < e ? 'right' : 'left' - ;(e = Math.min( - this._width, - Math.abs(e) - )), - this.options.edge === i && (e = 0) - var n = e, - s = 'translateX(-100%)' - 'right' === this.options.edge && - ((s = 'translateX(100%)'), - (n = -n)), - (this.percentOpen = Math.min( - 1, - e / this._width - )), - (this.el.style.transform = - s + ' translateX(' + n + 'px)'), - (this._overlay.style.opacity = this.percentOpen) - } - }, - }, - { - key: '_handleDragTargetRelease', - value: function() { - this.isDragged && - (0.2 < this.percentOpen - ? this.open() - : this._animateOut(), - (this.isDragged = !1), - (this._verticallyScrolling = !1)) - }, - }, - { - key: '_handleCloseDrag', - value: function(t) { - if (this.isOpen) { - if ( - !this.options.draggable || - this._isCurrentlyFixed() || - this._verticallyScrolling - ) - return - this.isDragged || this._startDrag(t), - this._dragMoveUpdate(t) - var e = this._xPos - this._startingXpos, - i = 0 < e ? 'right' : 'left' - ;(e = Math.min( - this._width, - Math.abs(e) - )), - this.options.edge !== i && (e = 0) - var n = -e - 'right' === this.options.edge && - (n = -n), - (this.percentOpen = Math.min( - 1, - 1 - e / this._width - )), - (this.el.style.transform = - 'translateX(' + n + 'px)'), - (this._overlay.style.opacity = this.percentOpen) - } - }, - }, - { - key: '_handleCloseRelease', - value: function() { - this.isOpen && - this.isDragged && - (0.8 < this.percentOpen - ? this._animateIn() - : this.close(), - (this.isDragged = !1), - (this._verticallyScrolling = !1)) - }, - }, - { - key: '_handleCloseTriggerClick', - value: function(t) { - s(t.target).closest('.sidenav-close') - .length && - !this._isCurrentlyFixed() && - this.close() - }, - }, - { - key: '_handleWindowResize', - value: function() { - this.lastWindowWidth !== - window.innerWidth && - (992 < window.innerWidth - ? this.open() - : this.close()), - (this.lastWindowWidth = - window.innerWidth), - (this.lastWindowHeight = - window.innerHeight) - }, - }, - { - key: '_setupClasses', - value: function() { - 'right' === this.options.edge && - (this.el.classList.add('right-aligned'), - this.dragTarget.classList.add( - 'right-aligned' - )) - }, - }, - { - key: '_removeClasses', - value: function() { - this.el.classList.remove('right-aligned'), - this.dragTarget.classList.remove( - 'right-aligned' - ) - }, - }, - { - key: '_setupFixed', - value: function() { - this._isCurrentlyFixed() && this.open() - }, - }, - { - key: '_isCurrentlyFixed', - value: function() { - return ( - this.isFixed && 992 < window.innerWidth - ) - }, - }, - { - key: '_createDragTarget', - value: function() { - var t = document.createElement('div') - t.classList.add('drag-target'), - document.body.appendChild(t), - (this.dragTarget = t) - }, - }, - { - key: '_preventBodyScrolling', - value: function() { - document.body.style.overflow = 'hidden' - }, - }, - { - key: '_enableBodyScrolling', - value: function() { - document.body.style.overflow = '' - }, - }, - { - key: 'open', - value: function() { - !0 !== this.isOpen && - ((this.isOpen = !0), - 'function' == - typeof this.options.onOpenStart && - this.options.onOpenStart.call( - this, - this.el - ), - this._isCurrentlyFixed() - ? (o.remove(this.el), - o({ - targets: this.el, - translateX: 0, - duration: 0, - easing: 'easeOutQuad', - }), - this._enableBodyScrolling(), - (this._overlay.style.display = - 'none')) - : (this.options.preventScrolling && - this._preventBodyScrolling(), - (this.isDragged && - 1 == this.percentOpen) || - this._animateIn())) - }, - }, - { - key: 'close', - value: function() { - if (!1 !== this.isOpen) - if ( - ((this.isOpen = !1), - 'function' == - typeof this.options - .onCloseStart && - this.options.onCloseStart.call( - this, - this.el - ), - this._isCurrentlyFixed()) - ) { - var t = - 'left' === this.options.edge - ? '-105%' - : '105%' - this.el.style.transform = - 'translateX(' + t + ')' - } else - this._enableBodyScrolling(), - this.isDragged && - 0 == this.percentOpen - ? (this._overlay.style.display = - 'none') - : this._animateOut() - }, - }, - { - key: '_animateIn', - value: function() { - this._animateSidenavIn(), - this._animateOverlayIn() - }, - }, - { - key: '_animateSidenavIn', - value: function() { - var t = this, - e = - 'left' === this.options.edge - ? -1 - : 1 - this.isDragged && - (e = - 'left' === this.options.edge - ? e + this.percentOpen - : e - this.percentOpen), - o.remove(this.el), - o({ - targets: this.el, - translateX: [100 * e + '%', 0], - duration: this.options.inDuration, - easing: 'easeOutQuad', - complete: function() { - 'function' == - typeof t.options - .onOpenEnd && - t.options.onOpenEnd.call( - t, - t.el - ) - }, - }) - }, - }, - { - key: '_animateOverlayIn', - value: function() { - var t = 0 - this.isDragged - ? (t = this.percentOpen) - : s(this._overlay).css({ - display: 'block', - }), - o.remove(this._overlay), - o({ - targets: this._overlay, - opacity: [t, 1], - duration: this.options.inDuration, - easing: 'easeOutQuad', - }) - }, - }, - { - key: '_animateOut', - value: function() { - this._animateSidenavOut(), - this._animateOverlayOut() - }, - }, - { - key: '_animateSidenavOut', - value: function() { - var t = this, - e = - 'left' === this.options.edge - ? -1 - : 1, - i = 0 - this.isDragged && - (i = - 'left' === this.options.edge - ? e + this.percentOpen - : e - this.percentOpen), - o.remove(this.el), - o({ - targets: this.el, - translateX: [ - 100 * i + '%', - 105 * e + '%', - ], - duration: this.options.outDuration, - easing: 'easeOutQuad', - complete: function() { - 'function' == - typeof t.options - .onCloseEnd && - t.options.onCloseEnd.call( - t, - t.el - ) - }, - }) - }, - }, - { - key: '_animateOverlayOut', - value: function() { - var t = this - o.remove(this._overlay), - o({ - targets: this._overlay, - opacity: 0, - duration: this.options.outDuration, - easing: 'easeOutQuad', - complete: function() { - s(t._overlay).css( - 'display', - 'none' - ) - }, - }) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Sidenav - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(t._sidenavs = []), - (M.Sidenav = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'sidenav', 'M_Sidenav') - })(cash, M.anime), - (function(o, a) { - 'use strict' - var e = { - throttle: 100, - scrollOffset: 200, - activeClass: 'active', - getActiveElement: function(t) { - return 'a[href="#' + t + '"]' - }, - }, - t = (function(t) { - function c(t, e) { - _classCallCheck(this, c) - var i = _possibleConstructorReturn( - this, - (c.__proto__ || Object.getPrototypeOf(c)).call( - this, - c, - t, - e - ) - ) - return ( - ((i.el.M_ScrollSpy = i).options = o.extend( - {}, - c.defaults, - e - )), - c._elements.push(i), - c._count++, - c._increment++, - (i.tickId = -1), - (i.id = c._increment), - i._setupEventHandlers(), - i._handleWindowScroll(), - i - ) - } - return ( - _inherits(c, Component), - _createClass( - c, - [ - { - key: 'destroy', - value: function() { - c._elements.splice( - c._elements.indexOf(this), - 1 - ), - c._elementsInView.splice( - c._elementsInView.indexOf(this), - 1 - ), - c._visibleElements.splice( - c._visibleElements.indexOf( - this.$el - ), - 1 - ), - c._count--, - this._removeEventHandlers(), - o( - this.options.getActiveElement( - this.$el.attr('id') - ) - ).removeClass(this.options.activeClass), - (this.el.M_ScrollSpy = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - var t = M.throttle( - this._handleWindowScroll, - 200 - ) - ;(this._handleThrottledResizeBound = t.bind( - this - )), - (this._handleWindowScrollBound = this._handleWindowScroll.bind( - this - )), - 1 === c._count && - (window.addEventListener( - 'scroll', - this._handleWindowScrollBound - ), - window.addEventListener( - 'resize', - this._handleThrottledResizeBound - ), - document.body.addEventListener( - 'click', - this._handleTriggerClick - )) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - 0 === c._count && - (window.removeEventListener( - 'scroll', - this._handleWindowScrollBound - ), - window.removeEventListener( - 'resize', - this._handleThrottledResizeBound - ), - document.body.removeEventListener( - 'click', - this._handleTriggerClick - )) - }, - }, - { - key: '_handleTriggerClick', - value: function(t) { - for ( - var e = o(t.target), - i = c._elements.length - 1; - 0 <= i; - i-- - ) { - var n = c._elements[i] - if ( - e.is( - 'a[href="#' + - n.$el.attr('id') + - '"]' - ) - ) { - t.preventDefault() - var s = n.$el.offset().top + 1 - a({ - targets: [ - document.documentElement, - document.body, - ], - scrollTop: - s - n.options.scrollOffset, - duration: 400, - easing: 'easeOutCubic', - }) - break - } - } - }, - }, - { - key: '_handleWindowScroll', - value: function() { - c._ticks++ - for ( - var t = M.getDocumentScrollTop(), - e = M.getDocumentScrollLeft(), - i = e + window.innerWidth, - n = t + window.innerHeight, - s = c._findElements(t, i, n, e), - o = 0; - o < s.length; - o++ - ) { - var a = s[o] - a.tickId < 0 && a._enter(), - (a.tickId = c._ticks) - } - for ( - var r = 0; - r < c._elementsInView.length; - r++ - ) { - var l = c._elementsInView[r], - h = l.tickId - 0 <= h && - h !== c._ticks && - (l._exit(), (l.tickId = -1)) - } - c._elementsInView = s - }, - }, - { - key: '_enter', - value: function() { - ;(c._visibleElements = c._visibleElements.filter( - function(t) { - return 0 != t.height() - } - ))[0] - ? (o( - this.options.getActiveElement( - c._visibleElements[0].attr( - 'id' - ) - ) - ).removeClass( - this.options.activeClass - ), - c._visibleElements[0][0] - .M_ScrollSpy && - this.id < - c._visibleElements[0][0] - .M_ScrollSpy.id - ? c._visibleElements.unshift( - this.$el - ) - : c._visibleElements.push( - this.$el - )) - : c._visibleElements.push(this.$el), - o( - this.options.getActiveElement( - c._visibleElements[0].attr('id') - ) - ).addClass(this.options.activeClass) - }, - }, - { - key: '_exit', - value: function() { - var e = this - ;(c._visibleElements = c._visibleElements.filter( - function(t) { - return 0 != t.height() - } - ))[0] && - (o( - this.options.getActiveElement( - c._visibleElements[0].attr('id') - ) - ).removeClass(this.options.activeClass), - (c._visibleElements = c._visibleElements.filter( - function(t) { - return ( - t.attr('id') != - e.$el.attr('id') - ) - } - ))[0] && - o( - this.options.getActiveElement( - c._visibleElements[0].attr( - 'id' - ) - ) - ).addClass( - this.options.activeClass - )) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - c.__proto__ || Object.getPrototypeOf(c), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_ScrollSpy - }, - }, - { - key: '_findElements', - value: function(t, e, i, n) { - for ( - var s = [], o = 0; - o < c._elements.length; - o++ - ) { - var a = c._elements[o], - r = - t + a.options.scrollOffset || - 200 - if (0 < a.$el.height()) { - var l = a.$el.offset().top, - h = a.$el.offset().left, - d = h + a.$el.width(), - u = l + a.$el.height() - !( - e < h || - d < n || - i < l || - u < r - ) && s.push(a) - } - } - return s - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - c - ) - })() - ;(t._elements = []), - (t._elementsInView = []), - (t._visibleElements = []), - (t._count = 0), - (t._increment = 0), - (t._ticks = 0), - (M.ScrollSpy = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'scrollSpy', 'M_ScrollSpy') - })(cash, M.anime), - (function(h) { - 'use strict' - var e = { - data: {}, - limit: 1 / 0, - onAutocomplete: null, - minLength: 1, - sortFunction: function(t, e, i) { - return t.indexOf(i) - e.indexOf(i) - }, - }, - t = (function(t) { - function s(t, e) { - _classCallCheck(this, s) - var i = _possibleConstructorReturn( - this, - (s.__proto__ || Object.getPrototypeOf(s)).call( - this, - s, - t, - e - ) - ) - return ( - ((i.el.M_Autocomplete = i).options = h.extend( - {}, - s.defaults, - e - )), - (i.isOpen = !1), - (i.count = 0), - (i.activeIndex = -1), - i.oldVal, - (i.$inputField = i.$el.closest('.input-field')), - (i.$active = h()), - (i._mousedown = !1), - i._setupDropdown(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(s, Component), - _createClass( - s, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this._removeDropdown(), - (this.el.M_Autocomplete = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleInputBlurBound = this._handleInputBlur.bind( - this - )), - (this._handleInputKeyupAndFocusBound = this._handleInputKeyupAndFocus.bind( - this - )), - (this._handleInputKeydownBound = this._handleInputKeydown.bind( - this - )), - (this._handleInputClickBound = this._handleInputClick.bind( - this - )), - (this._handleContainerMousedownAndTouchstartBound = this._handleContainerMousedownAndTouchstart.bind( - this - )), - (this._handleContainerMouseupAndTouchendBound = this._handleContainerMouseupAndTouchend.bind( - this - )), - this.el.addEventListener( - 'blur', - this._handleInputBlurBound - ), - this.el.addEventListener( - 'keyup', - this._handleInputKeyupAndFocusBound - ), - this.el.addEventListener( - 'focus', - this._handleInputKeyupAndFocusBound - ), - this.el.addEventListener( - 'keydown', - this._handleInputKeydownBound - ), - this.el.addEventListener( - 'click', - this._handleInputClickBound - ), - this.container.addEventListener( - 'mousedown', - this - ._handleContainerMousedownAndTouchstartBound - ), - this.container.addEventListener( - 'mouseup', - this - ._handleContainerMouseupAndTouchendBound - ), - void 0 !== window.ontouchstart && - (this.container.addEventListener( - 'touchstart', - this - ._handleContainerMousedownAndTouchstartBound - ), - this.container.addEventListener( - 'touchend', - this - ._handleContainerMouseupAndTouchendBound - )) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'blur', - this._handleInputBlurBound - ), - this.el.removeEventListener( - 'keyup', - this._handleInputKeyupAndFocusBound - ), - this.el.removeEventListener( - 'focus', - this._handleInputKeyupAndFocusBound - ), - this.el.removeEventListener( - 'keydown', - this._handleInputKeydownBound - ), - this.el.removeEventListener( - 'click', - this._handleInputClickBound - ), - this.container.removeEventListener( - 'mousedown', - this - ._handleContainerMousedownAndTouchstartBound - ), - this.container.removeEventListener( - 'mouseup', - this - ._handleContainerMouseupAndTouchendBound - ), - void 0 !== window.ontouchstart && - (this.container.removeEventListener( - 'touchstart', - this - ._handleContainerMousedownAndTouchstartBound - ), - this.container.removeEventListener( - 'touchend', - this - ._handleContainerMouseupAndTouchendBound - )) - }, - }, - { - key: '_setupDropdown', - value: function() { - var e = this - ;(this.container = document.createElement( - 'ul' - )), - (this.container.id = - 'autocomplete-options-' + M.guid()), - h(this.container).addClass( - 'autocomplete-content dropdown-content' - ), - this.$inputField.append(this.container), - this.el.setAttribute( - 'data-target', - this.container.id - ), - (this.dropdown = M.Dropdown.init( - this.el, - { - autoFocus: !1, - closeOnClick: !1, - coverTrigger: !1, - onItemClick: function(t) { - e.selectOption(h(t)) - }, - } - )), - this.el.removeEventListener( - 'click', - this.dropdown._handleClickBound - ) - }, - }, - { - key: '_removeDropdown', - value: function() { - this.container.parentNode.removeChild( - this.container - ) - }, - }, - { - key: '_handleInputBlur', - value: function() { - this._mousedown || - (this.close(), - this._resetAutocomplete()) - }, - }, - { - key: '_handleInputKeyupAndFocus', - value: function(t) { - 'keyup' === t.type && (s._keydown = !1), - (this.count = 0) - var e = this.el.value.toLowerCase() - 13 !== t.keyCode && - 38 !== t.keyCode && - 40 !== t.keyCode && - (this.oldVal === e || - (!M.tabPressed && - 'focus' === t.type) || - this.open(), - (this.oldVal = e)) - }, - }, - { - key: '_handleInputKeydown', - value: function(t) { - s._keydown = !0 - var e = t.keyCode, - i = void 0, - n = h(this.container).children('li') - .length - e === M.keys.ENTER && 0 <= this.activeIndex - ? (i = h(this.container) - .children('li') - .eq(this.activeIndex)).length && - (this.selectOption(i), - t.preventDefault()) - : (e !== M.keys.ARROW_UP && - e !== M.keys.ARROW_DOWN) || - (t.preventDefault(), - e === M.keys.ARROW_UP && - 0 < this.activeIndex && - this.activeIndex--, - e === M.keys.ARROW_DOWN && - this.activeIndex < n - 1 && - this.activeIndex++, - this.$active.removeClass('active'), - 0 <= this.activeIndex && - ((this.$active = h(this.container) - .children('li') - .eq(this.activeIndex)), - this.$active.addClass('active'))) - }, - }, - { - key: '_handleInputClick', - value: function(t) { - this.open() - }, - }, - { - key: '_handleContainerMousedownAndTouchstart', - value: function(t) { - this._mousedown = !0 - }, - }, - { - key: '_handleContainerMouseupAndTouchend', - value: function(t) { - this._mousedown = !1 - }, - }, - { - key: '_highlight', - value: function(t, e) { - var i = e.find('img'), - n = e - .text() - .toLowerCase() - .indexOf('' + t.toLowerCase()), - s = n + t.length - 1, - o = e.text().slice(0, n), - a = e.text().slice(n, s + 1), - r = e.text().slice(s + 1) - e.html( - '<span>' + - o + - "<span class='highlight'>" + - a + - '</span>' + - r + - '</span>' - ), - i.length && e.prepend(i) - }, - }, - { - key: '_resetCurrentElement', - value: function() { - ;(this.activeIndex = -1), - this.$active.removeClass('active') - }, - }, - { - key: '_resetAutocomplete', - value: function() { - h(this.container).empty(), - this._resetCurrentElement(), - (this.oldVal = null), - (this.isOpen = !1), - (this._mousedown = !1) - }, - }, - { - key: 'selectOption', - value: function(t) { - var e = t.text().trim() - ;(this.el.value = e), - this.$el.trigger('change'), - this._resetAutocomplete(), - this.close(), - 'function' == - typeof this.options - .onAutocomplete && - this.options.onAutocomplete.call( - this, - e - ) - }, - }, - { - key: '_renderDropdown', - value: function(t, i) { - var n = this - this._resetAutocomplete() - var e = [] - for (var s in t) - if ( - t.hasOwnProperty(s) && - -1 !== s.toLowerCase().indexOf(i) - ) { - if ( - this.count >= this.options.limit - ) - break - var o = { data: t[s], key: s } - e.push(o), this.count++ - } - if (this.options.sortFunction) { - e.sort(function(t, e) { - return n.options.sortFunction( - t.key.toLowerCase(), - e.key.toLowerCase(), - i.toLowerCase() - ) - }) - } - for (var a = 0; a < e.length; a++) { - var r = e[a], - l = h('<li></li>') - r.data - ? l.append( - '<img src="' + - r.data + - '" class="right circle"><span>' + - r.key + - '</span>' - ) - : l.append( - '<span>' + r.key + '</span>' - ), - h(this.container).append(l), - this._highlight(i, l) - } - }, - }, - { - key: 'open', - value: function() { - var t = this.el.value.toLowerCase() - this._resetAutocomplete(), - t.length >= this.options.minLength && - ((this.isOpen = !0), - this._renderDropdown( - this.options.data, - t - )), - this.dropdown.isOpen - ? this.dropdown.recalculateDimensions() - : this.dropdown.open() - }, - }, - { - key: 'close', - value: function() { - this.dropdown.close() - }, - }, - { - key: 'updateData', - value: function(t) { - var e = this.el.value.toLowerCase() - ;(this.options.data = t), - this.isOpen && - this._renderDropdown(t, e) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - s.__proto__ || Object.getPrototypeOf(s), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Autocomplete - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - s - ) - })() - ;(t._keydown = !1), - (M.Autocomplete = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'autocomplete', 'M_Autocomplete') - })(cash), - (function(d) { - ;(M.updateTextFields = function() { - d( - 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea' - ).each(function(t, e) { - var i = d(this) - 0 < t.value.length || - d(t).is(':focus') || - t.autofocus || - null !== i.attr('placeholder') - ? i.siblings('label').addClass('active') - : t.validity - ? i - .siblings('label') - .toggleClass('active', !0 === t.validity.badInput) - : i.siblings('label').removeClass('active') - }) - }), - (M.validate_field = function(t) { - var e = null !== t.attr('data-length'), - i = parseInt(t.attr('data-length')), - n = t[0].value.length - 0 !== n || !1 !== t[0].validity.badInput || t.is(':required') - ? t.hasClass('validate') && - ((t.is(':valid') && e && n <= i) || (t.is(':valid') && !e) - ? (t.removeClass('invalid'), t.addClass('valid')) - : (t.removeClass('valid'), t.addClass('invalid'))) - : t.hasClass('validate') && - (t.removeClass('valid'), t.removeClass('invalid')) - }), - (M.textareaAutoResize = function(t) { - if ((t instanceof Element && (t = d(t)), t.length)) { - var e = d('.hiddendiv').first() - e.length || - ((e = d('<div class="hiddendiv common"></div>')), - d('body').append(e)) - var i = t.css('font-family'), - n = t.css('font-size'), - s = t.css('line-height'), - o = t.css('padding-top'), - a = t.css('padding-right'), - r = t.css('padding-bottom'), - l = t.css('padding-left') - n && e.css('font-size', n), - i && e.css('font-family', i), - s && e.css('line-height', s), - o && e.css('padding-top', o), - a && e.css('padding-right', a), - r && e.css('padding-bottom', r), - l && e.css('padding-left', l), - t.data('original-height') || - t.data('original-height', t.height()), - 'off' === t.attr('wrap') && - e - .css('overflow-wrap', 'normal') - .css('white-space', 'pre'), - e.text(t[0].value + '\n') - var h = e.html().replace(/\n/g, '<br>') - e.html(h), - 0 < t[0].offsetWidth && 0 < t[0].offsetHeight - ? e.css('width', t.width() + 'px') - : e.css('width', window.innerWidth / 2 + 'px'), - t.data('original-height') <= e.innerHeight() - ? t.css('height', e.innerHeight() + 'px') - : t[0].value.length < t.data('previous-length') && - t.css('height', t.data('original-height') + 'px'), - t.data('previous-length', t[0].value.length) - } else console.error('No textarea element found') - }), - d(document).ready(function() { - var n = - 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea' - d(document).on('change', n, function() { - ;(0 === this.value.length && - null === d(this).attr('placeholder')) || - d(this) - .siblings('label') - .addClass('active'), - M.validate_field(d(this)) - }), - d(document).ready(function() { - M.updateTextFields() - }), - d(document).on('reset', function(t) { - var e = d(t.target) - e.is('form') && - (e - .find(n) - .removeClass('valid') - .removeClass('invalid'), - e.find(n).each(function(t) { - this.value.length && - d(this) - .siblings('label') - .removeClass('active') - }), - setTimeout(function() { - e.find('select').each(function() { - this.M_FormSelect && - d(this).trigger('change') - }) - }, 0)) - }), - document.addEventListener( - 'focus', - function(t) { - d(t.target).is(n) && - d(t.target) - .siblings('label, .prefix') - .addClass('active') - }, - !0 - ), - document.addEventListener( - 'blur', - function(t) { - var e = d(t.target) - if (e.is(n)) { - var i = '.prefix' - 0 === e[0].value.length && - !0 !== e[0].validity.badInput && - null === e.attr('placeholder') && - (i += ', label'), - e.siblings(i).removeClass('active'), - M.validate_field(e) - } - }, - !0 - ) - d(document).on( - 'keyup', - 'input[type=radio], input[type=checkbox]', - function(t) { - if (t.which === M.keys.TAB) - return ( - d(this).addClass('tabbed'), - void d(this).one('blur', function(t) { - d(this).removeClass('tabbed') - }) - ) - } - ) - var t = '.materialize-textarea' - d(t).each(function() { - var t = d(this) - t.data('original-height', t.height()), - t.data('previous-length', this.value.length), - M.textareaAutoResize(t) - }), - d(document).on('keyup', t, function() { - M.textareaAutoResize(d(this)) - }), - d(document).on('keydown', t, function() { - M.textareaAutoResize(d(this)) - }), - d(document).on( - 'change', - '.file-field input[type="file"]', - function() { - for ( - var t = d(this) - .closest('.file-field') - .find('input.file-path'), - e = d(this)[0].files, - i = [], - n = 0; - n < e.length; - n++ - ) - i.push(e[n].name) - ;(t[0].value = i.join(', ')), t.trigger('change') - } - ) - }) - })(cash), - (function(s, o) { - 'use strict' - var e = { indicators: !0, height: 400, duration: 500, interval: 6e3 }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Slider = i).options = s.extend( - {}, - n.defaults, - e - )), - (i.$slider = i.$el.find('.slides')), - (i.$slides = i.$slider.children('li')), - (i.activeIndex = i.$slides - .filter(function(t) { - return s(t).hasClass('active') - }) - .first() - .index()), - -1 != i.activeIndex && - (i.$active = i.$slides.eq(i.activeIndex)), - i._setSliderHeight(), - i.$slides.find('.caption').each(function(t) { - i._animateCaptionIn(t, 0) - }), - i.$slides.find('img').each(function(t) { - var e = - 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==' - s(t).attr('src') !== e && - (s(t).css( - 'background-image', - 'url("' + s(t).attr('src') + '")' - ), - s(t).attr('src', e)) - }), - i._setupIndicators(), - i.$active - ? i.$active.css('display', 'block') - : (i.$slides.first().addClass('active'), - o({ - targets: i.$slides.first()[0], - opacity: 1, - duration: i.options.duration, - easing: 'easeOutQuad', - }), - (i.activeIndex = 0), - (i.$active = i.$slides.eq(i.activeIndex)), - i.options.indicators && - i.$indicators - .eq(i.activeIndex) - .addClass('active')), - i.$active.find('img').each(function(t) { - o({ - targets: i.$active.find('.caption')[0], - opacity: 1, - translateX: 0, - translateY: 0, - duration: i.options.duration, - easing: 'easeOutQuad', - }) - }), - i._setupEventHandlers(), - i.start(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this.pause(), - this._removeIndicators(), - this._removeEventHandlers(), - (this.el.M_Slider = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - var e = this - ;(this._handleIntervalBound = this._handleInterval.bind( - this - )), - (this._handleIndicatorClickBound = this._handleIndicatorClick.bind( - this - )), - this.options.indicators && - this.$indicators.each(function(t) { - t.addEventListener( - 'click', - e._handleIndicatorClickBound - ) - }) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - var e = this - this.options.indicators && - this.$indicators.each(function(t) { - t.removeEventListener( - 'click', - e._handleIndicatorClickBound - ) - }) - }, - }, - { - key: '_handleIndicatorClick', - value: function(t) { - var e = s(t.target).index() - this.set(e) - }, - }, - { - key: '_handleInterval', - value: function() { - var t = this.$slider.find('.active').index() - this.$slides.length === t + 1 - ? (t = 0) - : (t += 1), - this.set(t) - }, - }, - { - key: '_animateCaptionIn', - value: function(t, e) { - var i = { - targets: t, - opacity: 0, - duration: e, - easing: 'easeOutQuad', - } - s(t).hasClass('center-align') - ? (i.translateY = -100) - : s(t).hasClass('right-align') - ? (i.translateX = 100) - : s(t).hasClass('left-align') && - (i.translateX = -100), - o(i) - }, - }, - { - key: '_setSliderHeight', - value: function() { - this.$el.hasClass('fullscreen') || - (this.options.indicators - ? this.$el.css( - 'height', - this.options.height + - 40 + - 'px' - ) - : this.$el.css( - 'height', - this.options.height + 'px' - ), - this.$slider.css( - 'height', - this.options.height + 'px' - )) - }, - }, - { - key: '_setupIndicators', - value: function() { - var n = this - this.options.indicators && - ((this.$indicators = s( - '<ul class="indicators"></ul>' - )), - this.$slides.each(function(t, e) { - var i = s( - '<li class="indicator-item"></li>' - ) - n.$indicators.append(i[0]) - }), - this.$el.append(this.$indicators[0]), - (this.$indicators = this.$indicators.children( - 'li.indicator-item' - ))) - }, - }, - { - key: '_removeIndicators', - value: function() { - this.$el.find('ul.indicators').remove() - }, - }, - { - key: 'set', - value: function(t) { - var e = this - if ( - (t >= this.$slides.length - ? (t = 0) - : t < 0 && - (t = this.$slides.length - 1), - this.activeIndex != t) - ) { - this.$active = this.$slides.eq( - this.activeIndex - ) - var i = this.$active.find('.caption') - this.$active.removeClass('active'), - o({ - targets: this.$active[0], - opacity: 0, - duration: this.options.duration, - easing: 'easeOutQuad', - complete: function() { - e.$slides - .not('.active') - .each(function(t) { - o({ - targets: t, - opacity: 0, - translateX: 0, - translateY: 0, - duration: 0, - easing: - 'easeOutQuad', - }) - }) - }, - }), - this._animateCaptionIn( - i[0], - this.options.duration - ), - this.options.indicators && - (this.$indicators - .eq(this.activeIndex) - .removeClass('active'), - this.$indicators - .eq(t) - .addClass('active')), - o({ - targets: this.$slides.eq(t)[0], - opacity: 1, - duration: this.options.duration, - easing: 'easeOutQuad', - }), - o({ - targets: this.$slides - .eq(t) - .find('.caption')[0], - opacity: 1, - translateX: 0, - translateY: 0, - duration: this.options.duration, - delay: this.options.duration, - easing: 'easeOutQuad', - }), - this.$slides - .eq(t) - .addClass('active'), - (this.activeIndex = t), - this.start() - } - }, - }, - { - key: 'pause', - value: function() { - clearInterval(this.interval) - }, - }, - { - key: 'start', - value: function() { - clearInterval(this.interval), - (this.interval = setInterval( - this._handleIntervalBound, - this.options.duration + - this.options.interval - )) - }, - }, - { - key: 'next', - value: function() { - var t = this.activeIndex + 1 - t >= this.$slides.length - ? (t = 0) - : t < 0 && - (t = this.$slides.length - 1), - this.set(t) - }, - }, - { - key: 'prev', - value: function() { - var t = this.activeIndex - 1 - t >= this.$slides.length - ? (t = 0) - : t < 0 && - (t = this.$slides.length - 1), - this.set(t) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Slider - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.Slider = t), - M.jQueryLoaded && M.initializeJqueryWrapper(t, 'slider', 'M_Slider') - })(cash, M.anime), - (function(n, s) { - n(document).on('click', '.card', function(t) { - if (n(this).children('.card-reveal').length) { - var i = n(t.target).closest('.card') - void 0 === i.data('initialOverflow') && - i.data( - 'initialOverflow', - void 0 === i.css('overflow') ? '' : i.css('overflow') - ) - var e = n(this).find('.card-reveal') - n(t.target).is(n('.card-reveal .card-title')) || - n(t.target).is(n('.card-reveal .card-title i')) - ? s({ - targets: e[0], - translateY: 0, - duration: 225, - easing: 'easeInOutQuad', - complete: function(t) { - var e = t.animatables[0].target - n(e).css({ display: 'none' }), - i.css('overflow', i.data('initialOverflow')) - }, - }) - : (n(t.target).is(n('.card .activator')) || - n(t.target).is(n('.card .activator i'))) && - (i.css('overflow', 'hidden'), - e.css({ display: 'block' }), - s({ - targets: e[0], - translateY: '-100%', - duration: 300, - easing: 'easeInOutQuad', - })) - } - }) - })(cash, M.anime), - (function(h) { - 'use strict' - var e = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - autocompleteOptions: {}, - limit: 1 / 0, - onChipAdd: null, - onChipSelect: null, - onChipDelete: null, - }, - t = (function(t) { - function l(t, e) { - _classCallCheck(this, l) - var i = _possibleConstructorReturn( - this, - (l.__proto__ || Object.getPrototypeOf(l)).call( - this, - l, - t, - e - ) - ) - return ( - ((i.el.M_Chips = i).options = h.extend( - {}, - l.defaults, - e - )), - i.$el.addClass('chips input-field'), - (i.chipsData = []), - (i.$chips = h()), - i._setupInput(), - (i.hasAutocomplete = - 0 < - Object.keys(i.options.autocompleteOptions).length), - i.$input.attr('id') || i.$input.attr('id', M.guid()), - i.options.data.length && - ((i.chipsData = i.options.data), - i._renderChips(i.chipsData)), - i.hasAutocomplete && i._setupAutocomplete(), - i._setPlaceholder(), - i._setupLabel(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(l, Component), - _createClass( - l, - [ - { - key: 'getData', - value: function() { - return this.chipsData - }, - }, - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this.$chips.remove(), - (this.el.M_Chips = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleChipClickBound = this._handleChipClick.bind( - this - )), - (this._handleInputKeydownBound = this._handleInputKeydown.bind( - this - )), - (this._handleInputFocusBound = this._handleInputFocus.bind( - this - )), - (this._handleInputBlurBound = this._handleInputBlur.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleChipClickBound - ), - document.addEventListener( - 'keydown', - l._handleChipsKeydown - ), - document.addEventListener( - 'keyup', - l._handleChipsKeyup - ), - this.el.addEventListener( - 'blur', - l._handleChipsBlur, - !0 - ), - this.$input[0].addEventListener( - 'focus', - this._handleInputFocusBound - ), - this.$input[0].addEventListener( - 'blur', - this._handleInputBlurBound - ), - this.$input[0].addEventListener( - 'keydown', - this._handleInputKeydownBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'click', - this._handleChipClickBound - ), - document.removeEventListener( - 'keydown', - l._handleChipsKeydown - ), - document.removeEventListener( - 'keyup', - l._handleChipsKeyup - ), - this.el.removeEventListener( - 'blur', - l._handleChipsBlur, - !0 - ), - this.$input[0].removeEventListener( - 'focus', - this._handleInputFocusBound - ), - this.$input[0].removeEventListener( - 'blur', - this._handleInputBlurBound - ), - this.$input[0].removeEventListener( - 'keydown', - this._handleInputKeydownBound - ) - }, - }, - { - key: '_handleChipClick', - value: function(t) { - var e = h(t.target).closest('.chip'), - i = h(t.target).is('.close') - if (e.length) { - var n = e.index() - i - ? (this.deleteChip(n), - this.$input[0].focus()) - : this.selectChip(n) - } else this.$input[0].focus() - }, - }, - { - key: '_handleInputFocus', - value: function() { - this.$el.addClass('focus') - }, - }, - { - key: '_handleInputBlur', - value: function() { - this.$el.removeClass('focus') - }, - }, - { - key: '_handleInputKeydown', - value: function(t) { - if (((l._keydown = !0), 13 === t.keyCode)) { - if ( - this.hasAutocomplete && - this.autocomplete && - this.autocomplete.isOpen - ) - return - t.preventDefault(), - this.addChip({ - tag: this.$input[0].value, - }), - (this.$input[0].value = '') - } else - (8 !== t.keyCode && 37 !== t.keyCode) || - '' !== this.$input[0].value || - !this.chipsData.length || - (t.preventDefault(), - this.selectChip( - this.chipsData.length - 1 - )) - }, - }, - { - key: '_renderChip', - value: function(t) { - if (t.tag) { - var e = document.createElement('div'), - i = document.createElement('i') - if ( - (e.classList.add('chip'), - (e.textContent = t.tag), - e.setAttribute('tabindex', 0), - h(i).addClass( - 'material-icons close' - ), - (i.textContent = 'close'), - t.image) - ) { - var n = document.createElement( - 'img' - ) - n.setAttribute('src', t.image), - e.insertBefore(n, e.firstChild) - } - return e.appendChild(i), e - } - }, - }, - { - key: '_renderChips', - value: function() { - this.$chips.remove() - for ( - var t = 0; - t < this.chipsData.length; - t++ - ) { - var e = this._renderChip( - this.chipsData[t] - ) - this.$el.append(e), this.$chips.add(e) - } - this.$el.append(this.$input[0]) - }, - }, - { - key: '_setupAutocomplete', - value: function() { - var e = this - ;(this.options.autocompleteOptions.onAutocomplete = function( - t - ) { - e.addChip({ tag: t }), - (e.$input[0].value = ''), - e.$input[0].focus() - }), - (this.autocomplete = M.Autocomplete.init( - this.$input[0], - this.options.autocompleteOptions - )) - }, - }, - { - key: '_setupInput', - value: function() { - ;(this.$input = this.$el.find('input')), - this.$input.length || - ((this.$input = h( - '<input></input>' - )), - this.$el.append(this.$input)), - this.$input.addClass('input') - }, - }, - { - key: '_setupLabel', - value: function() { - ;(this.$label = this.$el.find('label')), - this.$label.length && - this.$label.setAttribute( - 'for', - this.$input.attr('id') - ) - }, - }, - { - key: '_setPlaceholder', - value: function() { - void 0 !== this.chipsData && - !this.chipsData.length && - this.options.placeholder - ? h(this.$input).prop( - 'placeholder', - this.options.placeholder - ) - : (void 0 === this.chipsData || - this.chipsData.length) && - this.options.secondaryPlaceholder && - h(this.$input).prop( - 'placeholder', - this.options.secondaryPlaceholder - ) - }, - }, - { - key: '_isValid', - value: function(t) { - if ( - t.hasOwnProperty('tag') && - '' !== t.tag - ) { - for ( - var e = !1, i = 0; - i < this.chipsData.length; - i++ - ) - if ( - this.chipsData[i].tag === t.tag - ) { - e = !0 - break - } - return !e - } - return !1 - }, - }, - { - key: 'addChip', - value: function(t) { - if ( - this._isValid(t) && - !( - this.chipsData.length >= - this.options.limit - ) - ) { - var e = this._renderChip(t) - this.$chips.add(e), - this.chipsData.push(t), - h(this.$input).before(e), - this._setPlaceholder(), - 'function' == - typeof this.options.onChipAdd && - this.options.onChipAdd.call( - this, - this.$el, - e - ) - } - }, - }, - { - key: 'deleteChip', - value: function(t) { - var e = this.$chips.eq(t) - this.$chips.eq(t).remove(), - (this.$chips = this.$chips.filter( - function(t) { - return 0 <= h(t).index() - } - )), - this.chipsData.splice(t, 1), - this._setPlaceholder(), - 'function' == - typeof this.options.onChipDelete && - this.options.onChipDelete.call( - this, - this.$el, - e[0] - ) - }, - }, - { - key: 'selectChip', - value: function(t) { - var e = this.$chips.eq(t) - ;(this._selectedChip = e)[0].focus(), - 'function' == - typeof this.options.onChipSelect && - this.options.onChipSelect.call( - this, - this.$el, - e[0] - ) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - l.__proto__ || Object.getPrototypeOf(l), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Chips - }, - }, - { - key: '_handleChipsKeydown', - value: function(t) { - l._keydown = !0 - var e = h(t.target).closest('.chips'), - i = t.target && e.length - if ( - !h(t.target).is('input, textarea') && - i - ) { - var n = e[0].M_Chips - if ( - 8 === t.keyCode || - 46 === t.keyCode - ) { - t.preventDefault() - var s = n.chipsData.length - if (n._selectedChip) { - var o = n._selectedChip.index() - n.deleteChip(o), - (n._selectedChip = null), - (s = Math.max(o - 1, 0)) - } - n.chipsData.length && - n.selectChip(s) - } else if (37 === t.keyCode) { - if (n._selectedChip) { - var a = - n._selectedChip.index() - 1 - if (a < 0) return - n.selectChip(a) - } - } else if ( - 39 === t.keyCode && - n._selectedChip - ) { - var r = n._selectedChip.index() + 1 - r >= n.chipsData.length - ? n.$input[0].focus() - : n.selectChip(r) - } - } - }, - }, - { - key: '_handleChipsKeyup', - value: function(t) { - l._keydown = !1 - }, - }, - { - key: '_handleChipsBlur', - value: function(t) { - l._keydown || - (h(t.target).closest( - '.chips' - )[0].M_Chips._selectedChip = null) - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - l - ) - })() - ;(t._keydown = !1), - (M.Chips = t), - M.jQueryLoaded && M.initializeJqueryWrapper(t, 'chips', 'M_Chips'), - h(document).ready(function() { - h(document.body).on('click', '.chip .close', function() { - var t = h(this).closest('.chips') - ;(t.length && t[0].M_Chips) || - h(this) - .closest('.chip') - .remove() - }) - }) - })(cash), - (function(s) { - 'use strict' - var e = { top: 0, bottom: 1 / 0, offset: 0, onPositionChange: null }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Pushpin = i).options = s.extend( - {}, - n.defaults, - e - )), - (i.originalOffset = i.el.offsetTop), - n._pushpins.push(i), - i._setupEventHandlers(), - i._updatePosition(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - ;(this.el.style.top = null), - this._removePinClasses(), - this._removeEventHandlers() - var t = n._pushpins.indexOf(this) - n._pushpins.splice(t, 1) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - document.addEventListener( - 'scroll', - n._updateElements - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - document.removeEventListener( - 'scroll', - n._updateElements - ) - }, - }, - { - key: '_updatePosition', - value: function() { - var t = - M.getDocumentScrollTop() + - this.options.offset - this.options.top <= t && - this.options.bottom >= t && - !this.el.classList.contains('pinned') && - (this._removePinClasses(), - (this.el.style.top = - this.options.offset + 'px'), - this.el.classList.add('pinned'), - 'function' == - typeof this.options - .onPositionChange && - this.options.onPositionChange.call( - this, - 'pinned' - )), - t < this.options.top && - !this.el.classList.contains( - 'pin-top' - ) && - (this._removePinClasses(), - (this.el.style.top = 0), - this.el.classList.add('pin-top'), - 'function' == - typeof this.options - .onPositionChange && - this.options.onPositionChange.call( - this, - 'pin-top' - )), - t > this.options.bottom && - !this.el.classList.contains( - 'pin-bottom' - ) && - (this._removePinClasses(), - this.el.classList.add('pin-bottom'), - (this.el.style.top = - this.options.bottom - - this.originalOffset + - 'px'), - 'function' == - typeof this.options - .onPositionChange && - this.options.onPositionChange.call( - this, - 'pin-bottom' - )) - }, - }, - { - key: '_removePinClasses', - value: function() { - this.el.classList.remove('pin-top'), - this.el.classList.remove('pinned'), - this.el.classList.remove('pin-bottom') - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Pushpin - }, - }, - { - key: '_updateElements', - value: function() { - for (var t in n._pushpins) { - n._pushpins[t]._updatePosition() - } - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(t._pushpins = []), - (M.Pushpin = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'pushpin', 'M_Pushpin') - })(cash), - (function(r, s) { - 'use strict' - var e = { direction: 'top', hoverEnabled: !0, toolbarEnabled: !1 } - r.fn.reverse = [].reverse - var t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_FloatingActionButton = i).options = r.extend( - {}, - n.defaults, - e - )), - (i.isOpen = !1), - (i.$anchor = i.$el.children('a').first()), - (i.$menu = i.$el.children('ul').first()), - (i.$floatingBtns = i.$el.find('ul .btn-floating')), - (i.$floatingBtnsReverse = i.$el - .find('ul .btn-floating') - .reverse()), - (i.offsetY = 0), - (i.offsetX = 0), - i.$el.addClass('direction-' + i.options.direction), - 'top' === i.options.direction - ? (i.offsetY = 40) - : 'right' === i.options.direction - ? (i.offsetX = -40) - : 'bottom' === i.options.direction - ? (i.offsetY = -40) - : (i.offsetX = 40), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.M_FloatingActionButton = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleFABClickBound = this._handleFABClick.bind( - this - )), - (this._handleOpenBound = this.open.bind( - this - )), - (this._handleCloseBound = this.close.bind( - this - )), - this.options.hoverEnabled && - !this.options.toolbarEnabled - ? (this.el.addEventListener( - 'mouseenter', - this._handleOpenBound - ), - this.el.addEventListener( - 'mouseleave', - this._handleCloseBound - )) - : this.el.addEventListener( - 'click', - this._handleFABClickBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.options.hoverEnabled && - !this.options.toolbarEnabled - ? (this.el.removeEventListener( - 'mouseenter', - this._handleOpenBound - ), - this.el.removeEventListener( - 'mouseleave', - this._handleCloseBound - )) - : this.el.removeEventListener( - 'click', - this._handleFABClickBound - ) - }, - }, - { - key: '_handleFABClick', - value: function() { - this.isOpen ? this.close() : this.open() - }, - }, - { - key: '_handleDocumentClick', - value: function(t) { - r(t.target).closest(this.$menu).length || - this.close() - }, - }, - { - key: 'open', - value: function() { - this.isOpen || - (this.options.toolbarEnabled - ? this._animateInToolbar() - : this._animateInFAB(), - (this.isOpen = !0)) - }, - }, - { - key: 'close', - value: function() { - this.isOpen && - (this.options.toolbarEnabled - ? (window.removeEventListener( - 'scroll', - this._handleCloseBound, - !0 - ), - document.body.removeEventListener( - 'click', - this._handleDocumentClickBound, - !0 - ), - this._animateOutToolbar()) - : this._animateOutFAB(), - (this.isOpen = !1)) - }, - }, - { - key: '_animateInFAB', - value: function() { - var e = this - this.$el.addClass('active') - var i = 0 - this.$floatingBtnsReverse.each(function(t) { - s({ - targets: t, - opacity: 1, - scale: [0.4, 1], - translateY: [e.offsetY, 0], - translateX: [e.offsetX, 0], - duration: 275, - delay: i, - easing: 'easeInOutQuad', - }), - (i += 40) - }) - }, - }, - { - key: '_animateOutFAB', - value: function() { - var e = this - this.$floatingBtnsReverse.each(function(t) { - s.remove(t), - s({ - targets: t, - opacity: 0, - scale: 0.4, - translateY: e.offsetY, - translateX: e.offsetX, - duration: 175, - easing: 'easeOutQuad', - complete: function() { - e.$el.removeClass('active') - }, - }) - }) - }, - }, - { - key: '_animateInToolbar', - value: function() { - var t, - e = this, - i = window.innerWidth, - n = window.innerHeight, - s = this.el.getBoundingClientRect(), - o = r('<div class="fab-backdrop"></div>'), - a = this.$anchor.css('background-color') - this.$anchor.append(o), - (this.offsetX = - s.left - i / 2 + s.width / 2), - (this.offsetY = n - s.bottom), - (t = i / o[0].clientWidth), - (this.btnBottom = s.bottom), - (this.btnLeft = s.left), - (this.btnWidth = s.width), - this.$el.addClass('active'), - this.$el.css({ - 'text-align': 'center', - width: '100%', - bottom: 0, - left: 0, - transform: - 'translateX(' + - this.offsetX + - 'px)', - transition: 'none', - }), - this.$anchor.css({ - transform: - 'translateY(' + - -this.offsetY + - 'px)', - transition: 'none', - }), - o.css({ 'background-color': a }), - setTimeout(function() { - e.$el.css({ - transform: '', - transition: - 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s', - }), - e.$anchor.css({ - overflow: 'visible', - transform: '', - transition: 'transform .2s', - }), - setTimeout(function() { - e.$el.css({ - overflow: 'hidden', - 'background-color': a, - }), - o.css({ - transform: - 'scale(' + t + ')', - transition: - 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)', - }), - e.$menu - .children('li') - .children('a') - .css({ opacity: 1 }), - (e._handleDocumentClickBound = e._handleDocumentClick.bind( - e - )), - window.addEventListener( - 'scroll', - e._handleCloseBound, - !0 - ), - document.body.addEventListener( - 'click', - e._handleDocumentClickBound, - !0 - ) - }, 100) - }, 0) - }, - }, - { - key: '_animateOutToolbar', - value: function() { - var t = this, - e = window.innerWidth, - i = window.innerHeight, - n = this.$el.find('.fab-backdrop'), - s = this.$anchor.css('background-color') - ;(this.offsetX = - this.btnLeft - e / 2 + this.btnWidth / 2), - (this.offsetY = i - this.btnBottom), - this.$el.removeClass('active'), - this.$el.css({ - 'background-color': 'transparent', - transition: 'none', - }), - this.$anchor.css({ transition: 'none' }), - n.css({ - transform: 'scale(0)', - 'background-color': s, - }), - this.$menu - .children('li') - .children('a') - .css({ opacity: '' }), - setTimeout(function() { - n.remove(), - t.$el.css({ - 'text-align': '', - width: '', - bottom: '', - left: '', - overflow: '', - 'background-color': '', - transform: - 'translate3d(' + - -t.offsetX + - 'px,0,0)', - }), - t.$anchor.css({ - overflow: '', - transform: - 'translate3d(0,' + - t.offsetY + - 'px,0)', - }), - setTimeout(function() { - t.$el.css({ - transform: - 'translate3d(0,0,0)', - transition: 'transform .2s', - }), - t.$anchor.css({ - transform: - 'translate3d(0,0,0)', - transition: - 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)', - }) - }, 20) - }, 200) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t) - .M_FloatingActionButton - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.FloatingActionButton = t), - M.jQueryLoaded && - M.initializeJqueryWrapper( - t, - 'floatingActionButton', - 'M_FloatingActionButton' - ) - })(cash, M.anime), - (function(g) { - 'use strict' - var e = { - autoClose: !1, - format: 'mmm dd, yyyy', - parse: null, - defaultDate: null, - setDefaultDate: !1, - disableWeekends: !1, - disableDayFn: null, - firstDay: 0, - minDate: null, - maxDate: null, - yearRange: 10, - minYear: 0, - maxYear: 9999, - minMonth: void 0, - maxMonth: void 0, - startRange: null, - endRange: null, - isRTL: !1, - showMonthAfterYear: !1, - showDaysInNextAndPreviousMonths: !1, - container: null, - showClearBtn: !1, - i18n: { - cancel: 'Cancel', - clear: 'Clear', - done: 'Ok', - previousMonth: '‹', - nextMonth: '›', - months: [ - 'January', - 'February', - 'March', - 'April', - 'May', - 'June', - 'July', - 'August', - 'September', - 'October', - 'November', - 'December', - ], - monthsShort: [ - 'Jan', - 'Feb', - 'Mar', - 'Apr', - 'May', - 'Jun', - 'Jul', - 'Aug', - 'Sep', - 'Oct', - 'Nov', - 'Dec', - ], - weekdays: [ - 'Sunday', - 'Monday', - 'Tuesday', - 'Wednesday', - 'Thursday', - 'Friday', - 'Saturday', - ], - weekdaysShort: [ - 'Sun', - 'Mon', - 'Tue', - 'Wed', - 'Thu', - 'Fri', - 'Sat', - ], - weekdaysAbbrev: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], - }, - events: [], - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null, - }, - t = (function(t) { - function B(t, e) { - _classCallCheck(this, B) - var i = _possibleConstructorReturn( - this, - (B.__proto__ || Object.getPrototypeOf(B)).call( - this, - B, - t, - e - ) - ) - ;((i.el.M_Datepicker = i).options = g.extend( - {}, - B.defaults, - e - )), - e && - e.hasOwnProperty('i18n') && - 'object' == typeof e.i18n && - (i.options.i18n = g.extend( - {}, - B.defaults.i18n, - e.i18n - )), - i.options.minDate && - i.options.minDate.setHours(0, 0, 0, 0), - i.options.maxDate && - i.options.maxDate.setHours(0, 0, 0, 0), - (i.id = M.guid()), - i._setupVariables(), - i._insertHTMLIntoDOM(), - i._setupModal(), - i._setupEventHandlers(), - i.options.defaultDate || - (i.options.defaultDate = new Date( - Date.parse(i.el.value) - )) - var n = i.options.defaultDate - return ( - B._isDate(n) - ? i.options.setDefaultDate - ? (i.setDate(n, !0), i.setInputValue()) - : i.gotoDate(n) - : i.gotoDate(new Date()), - (i.isOpen = !1), - i - ) - } - return ( - _inherits(B, Component), - _createClass( - B, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this.modal.destroy(), - g(this.modalEl).remove(), - this.destroySelects(), - (this.el.M_Datepicker = void 0) - }, - }, - { - key: 'destroySelects', - value: function() { - var t = this.calendarEl.querySelector( - '.orig-select-year' - ) - t && M.FormSelect.getInstance(t).destroy() - var e = this.calendarEl.querySelector( - '.orig-select-month' - ) - e && M.FormSelect.getInstance(e).destroy() - }, - }, - { - key: '_insertHTMLIntoDOM', - value: function() { - this.options.showClearBtn && - (g(this.clearBtn).css({ - visibility: '', - }), - (this.clearBtn.innerHTML = this.options.i18n.clear)), - (this.doneBtn.innerHTML = this.options.i18n.done), - (this.cancelBtn.innerHTML = this.options.i18n.cancel), - this.options.container - ? this.$modalEl.appendTo( - this.options.container - ) - : this.$modalEl.insertBefore( - this.el - ) - }, - }, - { - key: '_setupModal', - value: function() { - var t = this - ;(this.modalEl.id = 'modal-' + this.id), - (this.modal = M.Modal.init( - this.modalEl, - { - onCloseEnd: function() { - t.isOpen = !1 - }, - } - )) - }, - }, - { - key: 'toString', - value: function(t) { - var e = this - return ( - (t = t || this.options.format), - B._isDate(this.date) - ? t - .split( - /(d{1,4}|m{1,4}|y{4}|yy|!.)/g - ) - .map(function(t) { - return e.formats[t] - ? e.formats[t]() - : t - }) - .join('') - : '' - ) - }, - }, - { - key: 'setDate', - value: function(t, e) { - if (!t) - return ( - (this.date = null), - this._renderDateDisplay(), - this.draw() - ) - if ( - ('string' == typeof t && - (t = new Date(Date.parse(t))), - B._isDate(t)) - ) { - var i = this.options.minDate, - n = this.options.maxDate - B._isDate(i) && t < i - ? (t = i) - : B._isDate(n) && n < t && (t = n), - (this.date = new Date(t.getTime())), - this._renderDateDisplay(), - B._setToStartOfDay(this.date), - this.gotoDate(this.date), - e || - 'function' != - typeof this.options - .onSelect || - this.options.onSelect.call( - this, - this.date - ) - } - }, - }, - { - key: 'setInputValue', - value: function() { - ;(this.el.value = this.toString()), - this.$el.trigger('change', { - firedBy: this, - }) - }, - }, - { - key: '_renderDateDisplay', - value: function() { - var t = B._isDate(this.date) - ? this.date - : new Date(), - e = this.options.i18n, - i = e.weekdaysShort[t.getDay()], - n = e.monthsShort[t.getMonth()], - s = t.getDate() - ;(this.yearTextEl.innerHTML = t.getFullYear()), - (this.dateTextEl.innerHTML = - i + ', ' + n + ' ' + s) - }, - }, - { - key: 'gotoDate', - value: function(t) { - var e = !0 - if (B._isDate(t)) { - if (this.calendars) { - var i = new Date( - this.calendars[0].year, - this.calendars[0].month, - 1 - ), - n = new Date( - this.calendars[ - this.calendars.length - - 1 - ].year, - this.calendars[ - this.calendars.length - - 1 - ].month, - 1 - ), - s = t.getTime() - n.setMonth(n.getMonth() + 1), - n.setDate(n.getDate() - 1), - (e = - s < i.getTime() || - n.getTime() < s) - } - e && - (this.calendars = [ - { - month: t.getMonth(), - year: t.getFullYear(), - }, - ]), - this.adjustCalendars() - } - }, - }, - { - key: 'adjustCalendars', - value: function() { - ;(this.calendars[0] = this.adjustCalendar( - this.calendars[0] - )), - this.draw() - }, - }, - { - key: 'adjustCalendar', - value: function(t) { - return ( - t.month < 0 && - ((t.year -= Math.ceil( - Math.abs(t.month) / 12 - )), - (t.month += 12)), - 11 < t.month && - ((t.year += Math.floor( - Math.abs(t.month) / 12 - )), - (t.month -= 12)), - t - ) - }, - }, - { - key: 'nextMonth', - value: function() { - this.calendars[0].month++, - this.adjustCalendars() - }, - }, - { - key: 'prevMonth', - value: function() { - this.calendars[0].month--, - this.adjustCalendars() - }, - }, - { - key: 'render', - value: function(t, e, i) { - var n = this.options, - s = new Date(), - o = B._getDaysInMonth(t, e), - a = new Date(t, e, 1).getDay(), - r = [], - l = [] - B._setToStartOfDay(s), - 0 < n.firstDay && - (a -= n.firstDay) < 0 && - (a += 7) - for ( - var h = 0 === e ? 11 : e - 1, - d = 11 === e ? 0 : e + 1, - u = 0 === e ? t - 1 : t, - c = 11 === e ? t + 1 : t, - p = B._getDaysInMonth(u, h), - v = o + a, - f = v; - 7 < f; - - ) - f -= 7 - v += 7 - f - for (var m = !1, g = 0, _ = 0; g < v; g++) { - var y = new Date(t, e, g - a + 1), - k = - !!B._isDate(this.date) && - B._compareDates(y, this.date), - b = B._compareDates(y, s), - w = - -1 !== - n.events.indexOf( - y.toDateString() - ), - C = g < a || o + a <= g, - E = g - a + 1, - M = e, - O = t, - x = - n.startRange && - B._compareDates( - n.startRange, - y - ), - L = - n.endRange && - B._compareDates(n.endRange, y), - T = - n.startRange && - n.endRange && - n.startRange < y && - y < n.endRange - C && - (g < a - ? ((E = p + E), - (M = h), - (O = u)) - : ((E -= o), (M = d), (O = c))) - var $ = { - day: E, - month: M, - year: O, - hasEvent: w, - isSelected: k, - isToday: b, - isDisabled: - (n.minDate && y < n.minDate) || - (n.maxDate && y > n.maxDate) || - (n.disableWeekends && - B._isWeekend(y)) || - (n.disableDayFn && - n.disableDayFn(y)), - isEmpty: C, - isStartRange: x, - isEndRange: L, - isInRange: T, - showDaysInNextAndPreviousMonths: - n.showDaysInNextAndPreviousMonths, - } - l.push(this.renderDay($)), - 7 == ++_ && - (r.push( - this.renderRow( - l, - n.isRTL, - m - ) - ), - (_ = 0), - (m = !(l = []))) - } - return this.renderTable(n, r, i) - }, - }, - { - key: 'renderDay', - value: function(t) { - var e = [], - i = 'false' - if (t.isEmpty) { - if (!t.showDaysInNextAndPreviousMonths) - return '<td class="is-empty"></td>' - e.push('is-outside-current-month'), - e.push('is-selection-disabled') - } - return ( - t.isDisabled && e.push('is-disabled'), - t.isToday && e.push('is-today'), - t.isSelected && - (e.push('is-selected'), - (i = 'true')), - t.hasEvent && e.push('has-event'), - t.isInRange && e.push('is-inrange'), - t.isStartRange && - e.push('is-startrange'), - t.isEndRange && e.push('is-endrange'), - '<td data-day="' + - t.day + - '" class="' + - e.join(' ') + - '" aria-selected="' + - i + - '"><button class="datepicker-day-button" type="button" data-year="' + - t.year + - '" data-month="' + - t.month + - '" data-day="' + - t.day + - '">' + - t.day + - '</button></td>' - ) - }, - }, - { - key: 'renderRow', - value: function(t, e, i) { - return ( - '<tr class="datepicker-row' + - (i ? ' is-selected' : '') + - '">' + - (e ? t.reverse() : t).join('') + - '</tr>' - ) - }, - }, - { - key: 'renderTable', - value: function(t, e, i) { - return ( - '<div class="datepicker-table-wrapper"><table cellpadding="0" cellspacing="0" class="datepicker-table" role="grid" aria-labelledby="' + - i + - '">' + - this.renderHead(t) + - this.renderBody(e) + - '</table></div>' - ) - }, - }, - { - key: 'renderHead', - value: function(t) { - var e = void 0, - i = [] - for (e = 0; e < 7; e++) - i.push( - '<th scope="col"><abbr title="' + - this.renderDayName(t, e) + - '">' + - this.renderDayName(t, e, !0) + - '</abbr></th>' - ) - return ( - '<thead><tr>' + - (t.isRTL ? i.reverse() : i).join('') + - '</tr></thead>' - ) - }, - }, - { - key: 'renderBody', - value: function(t) { - return '<tbody>' + t.join('') + '</tbody>' - }, - }, - { - key: 'renderTitle', - value: function(t, e, i, n, s, o) { - var a, - r, - l = void 0, - h = void 0, - d = void 0, - u = this.options, - c = i === u.minYear, - p = i === u.maxYear, - v = - '<div id="' + - o + - '" class="datepicker-controls" role="heading" aria-live="assertive">', - f = !0, - m = !0 - for (d = [], l = 0; l < 12; l++) - d.push( - '<option value="' + - (i === s ? l - e : 12 + l - e) + - '"' + - (l === n - ? ' selected="selected"' - : '') + - ((c && l < u.minMonth) || - (p && l > u.maxMonth) - ? 'disabled="disabled"' - : '') + - '>' + - u.i18n.months[l] + - '</option>' - ) - for ( - a = - '<select class="datepicker-select orig-select-month" tabindex="-1">' + - d.join('') + - '</select>', - g.isArray(u.yearRange) - ? ((l = u.yearRange[0]), - (h = u.yearRange[1] + 1)) - : ((l = i - u.yearRange), - (h = 1 + i + u.yearRange)), - d = []; - l < h && l <= u.maxYear; - l++ - ) - l >= u.minYear && - d.push( - '<option value="' + - l + - '" ' + - (l === i - ? 'selected="selected"' - : '') + - '>' + - l + - '</option>' - ) - r = - '<select class="datepicker-select orig-select-year" tabindex="-1">' + - d.join('') + - '</select>' - ;(v += - '<button class="month-prev' + - (f ? '' : ' is-disabled') + - '" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg></button>'), - (v += - '<div class="selects-container">'), - u.showMonthAfterYear - ? (v += r + a) - : (v += a + r), - (v += '</div>'), - c && - (0 === n || u.minMonth >= n) && - (f = !1), - p && - (11 === n || u.maxMonth <= n) && - (m = !1) - return ( - (v += - '<button class="month-next' + - (m ? '' : ' is-disabled') + - '" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/><path d="M0-.25h24v24H0z" fill="none"/></svg></button>') + - '</div>' - ) - }, - }, - { - key: 'draw', - value: function(t) { - if (this.isOpen || t) { - var e, - i = this.options, - n = i.minYear, - s = i.maxYear, - o = i.minMonth, - a = i.maxMonth, - r = '' - this._y <= n && - ((this._y = n), - !isNaN(o) && - this._m < o && - (this._m = o)), - this._y >= s && - ((this._y = s), - !isNaN(a) && - this._m > a && - (this._m = a)), - (e = - 'datepicker-title-' + - Math.random() - .toString(36) - .replace(/[^a-z]+/g, '') - .substr(0, 2)) - for (var l = 0; l < 1; l++) - this._renderDateDisplay(), - (r += - this.renderTitle( - this, - l, - this.calendars[l].year, - this.calendars[l].month, - this.calendars[0].year, - e - ) + - this.render( - this.calendars[l].year, - this.calendars[l].month, - e - )) - this.destroySelects(), - (this.calendarEl.innerHTML = r) - var h = this.calendarEl.querySelector( - '.orig-select-year' - ), - d = this.calendarEl.querySelector( - '.orig-select-month' - ) - M.FormSelect.init(h, { - classes: 'select-year', - dropdownOptions: { - container: document.body, - constrainWidth: !1, - }, - }), - M.FormSelect.init(d, { - classes: 'select-month', - dropdownOptions: { - container: document.body, - constrainWidth: !1, - }, - }), - h.addEventListener( - 'change', - this._handleYearChange.bind( - this - ) - ), - d.addEventListener( - 'change', - this._handleMonthChange.bind( - this - ) - ), - 'function' == - typeof this.options.onDraw && - this.options.onDraw(this) - } - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleInputKeydownBound = this._handleInputKeydown.bind( - this - )), - (this._handleInputClickBound = this._handleInputClick.bind( - this - )), - (this._handleInputChangeBound = this._handleInputChange.bind( - this - )), - (this._handleCalendarClickBound = this._handleCalendarClick.bind( - this - )), - (this._finishSelectionBound = this._finishSelection.bind( - this - )), - (this._handleMonthChange = this._handleMonthChange.bind( - this - )), - (this._closeBound = this.close.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleInputClickBound - ), - this.el.addEventListener( - 'keydown', - this._handleInputKeydownBound - ), - this.el.addEventListener( - 'change', - this._handleInputChangeBound - ), - this.calendarEl.addEventListener( - 'click', - this._handleCalendarClickBound - ), - this.doneBtn.addEventListener( - 'click', - this._finishSelectionBound - ), - this.cancelBtn.addEventListener( - 'click', - this._closeBound - ), - this.options.showClearBtn && - ((this._handleClearClickBound = this._handleClearClick.bind( - this - )), - this.clearBtn.addEventListener( - 'click', - this._handleClearClickBound - )) - }, - }, - { - key: '_setupVariables', - value: function() { - var e = this - ;(this.$modalEl = g(B._template)), - (this.modalEl = this.$modalEl[0]), - (this.calendarEl = this.modalEl.querySelector( - '.datepicker-calendar' - )), - (this.yearTextEl = this.modalEl.querySelector( - '.year-text' - )), - (this.dateTextEl = this.modalEl.querySelector( - '.date-text' - )), - this.options.showClearBtn && - (this.clearBtn = this.modalEl.querySelector( - '.datepicker-clear' - )), - (this.doneBtn = this.modalEl.querySelector( - '.datepicker-done' - )), - (this.cancelBtn = this.modalEl.querySelector( - '.datepicker-cancel' - )), - (this.formats = { - d: function() { - return e.date.getDate() - }, - dd: function() { - var t = e.date.getDate() - return (t < 10 ? '0' : '') + t - }, - ddd: function() { - return e.options.i18n - .weekdaysShort[ - e.date.getDay() - ] - }, - dddd: function() { - return e.options.i18n.weekdays[ - e.date.getDay() - ] - }, - m: function() { - return e.date.getMonth() + 1 - }, - mm: function() { - var t = e.date.getMonth() + 1 - return (t < 10 ? '0' : '') + t - }, - mmm: function() { - return e.options.i18n - .monthsShort[ - e.date.getMonth() - ] - }, - mmmm: function() { - return e.options.i18n.months[ - e.date.getMonth() - ] - }, - yy: function() { - return ( - '' + e.date.getFullYear() - ).slice(2) - }, - yyyy: function() { - return e.date.getFullYear() - }, - }) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'click', - this._handleInputClickBound - ), - this.el.removeEventListener( - 'keydown', - this._handleInputKeydownBound - ), - this.el.removeEventListener( - 'change', - this._handleInputChangeBound - ), - this.calendarEl.removeEventListener( - 'click', - this._handleCalendarClickBound - ) - }, - }, - { - key: '_handleInputClick', - value: function() { - this.open() - }, - }, - { - key: '_handleInputKeydown', - value: function(t) { - t.which === M.keys.ENTER && - (t.preventDefault(), this.open()) - }, - }, - { - key: '_handleCalendarClick', - value: function(t) { - if (this.isOpen) { - var e = g(t.target) - e.hasClass('is-disabled') || - (!e.hasClass( - 'datepicker-day-button' - ) || - e.hasClass('is-empty') || - e.parent().hasClass('is-disabled') - ? e.closest('.month-prev') - .length - ? this.prevMonth() - : e.closest('.month-next') - .length && - this.nextMonth() - : (this.setDate( - new Date( - t.target.getAttribute( - 'data-year' - ), - t.target.getAttribute( - 'data-month' - ), - t.target.getAttribute( - 'data-day' - ) - ) - ), - this.options.autoClose && - this._finishSelection())) - } - }, - }, - { - key: '_handleClearClick', - value: function() { - ;(this.date = null), - this.setInputValue(), - this.close() - }, - }, - { - key: '_handleMonthChange', - value: function(t) { - this.gotoMonth(t.target.value) - }, - }, - { - key: '_handleYearChange', - value: function(t) { - this.gotoYear(t.target.value) - }, - }, - { - key: 'gotoMonth', - value: function(t) { - isNaN(t) || - ((this.calendars[0].month = parseInt( - t, - 10 - )), - this.adjustCalendars()) - }, - }, - { - key: 'gotoYear', - value: function(t) { - isNaN(t) || - ((this.calendars[0].year = parseInt( - t, - 10 - )), - this.adjustCalendars()) - }, - }, - { - key: '_handleInputChange', - value: function(t) { - var e = void 0 - t.firedBy !== this && - ((e = this.options.parse - ? this.options.parse( - this.el.value, - this.options.format - ) - : new Date( - Date.parse(this.el.value) - )), - B._isDate(e) && this.setDate(e)) - }, - }, - { - key: 'renderDayName', - value: function(t, e, i) { - for (e += t.firstDay; 7 <= e; ) e -= 7 - return i - ? t.i18n.weekdaysAbbrev[e] - : t.i18n.weekdays[e] - }, - }, - { - key: '_finishSelection', - value: function() { - this.setInputValue(), this.close() - }, - }, - { - key: 'open', - value: function() { - if (!this.isOpen) - return ( - (this.isOpen = !0), - 'function' == - typeof this.options.onOpen && - this.options.onOpen.call(this), - this.draw(), - this.modal.open(), - this - ) - }, - }, - { - key: 'close', - value: function() { - if (this.isOpen) - return ( - (this.isOpen = !1), - 'function' == - typeof this.options.onClose && - this.options.onClose.call(this), - this.modal.close(), - this - ) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - B.__proto__ || Object.getPrototypeOf(B), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: '_isDate', - value: function(t) { - return ( - /Date/.test( - Object.prototype.toString.call(t) - ) && !isNaN(t.getTime()) - ) - }, - }, - { - key: '_isWeekend', - value: function(t) { - var e = t.getDay() - return 0 === e || 6 === e - }, - }, - { - key: '_setToStartOfDay', - value: function(t) { - B._isDate(t) && t.setHours(0, 0, 0, 0) - }, - }, - { - key: '_getDaysInMonth', - value: function(t, e) { - return [ - 31, - B._isLeapYear(t) ? 29 : 28, - 31, - 30, - 31, - 30, - 31, - 31, - 30, - 31, - 30, - 31, - ][e] - }, - }, - { - key: '_isLeapYear', - value: function(t) { - return ( - (t % 4 == 0 && t % 100 != 0) || - t % 400 == 0 - ) - }, - }, - { - key: '_compareDates', - value: function(t, e) { - return t.getTime() === e.getTime() - }, - }, - { - key: '_setToStartOfDay', - value: function(t) { - B._isDate(t) && t.setHours(0, 0, 0, 0) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Datepicker - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - B - ) - })() - ;(t._template = [ - '<div class= "modal datepicker-modal">', - '<div class="modal-content datepicker-container">', - '<div class="datepicker-date-display">', - '<span class="year-text"></span>', - '<span class="date-text"></span>', - '</div>', - '<div class="datepicker-calendar-container">', - '<div class="datepicker-calendar"></div>', - '<div class="datepicker-footer">', - '<button class="btn-flat datepicker-clear waves-effect" style="visibility: hidden;" type="button"></button>', - '<div class="confirmation-btns">', - '<button class="btn-flat datepicker-cancel waves-effect" type="button"></button>', - '<button class="btn-flat datepicker-done waves-effect" type="button"></button>', - '</div>', - '</div>', - '</div>', - '</div>', - '</div>', - ].join('')), - (M.Datepicker = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'datepicker', 'M_Datepicker') - })(cash), - (function(h) { - 'use strict' - var e = { - dialRadius: 135, - outerRadius: 105, - innerRadius: 70, - tickRadius: 20, - duration: 350, - container: null, - defaultTime: 'now', - fromNow: 0, - showClearBtn: !1, - i18n: { cancel: 'Cancel', clear: 'Clear', done: 'Ok' }, - autoClose: !1, - twelveHour: !0, - vibrate: !0, - onOpenStart: null, - onOpenEnd: null, - onCloseStart: null, - onCloseEnd: null, - onSelect: null, - }, - t = (function(t) { - function f(t, e) { - _classCallCheck(this, f) - var i = _possibleConstructorReturn( - this, - (f.__proto__ || Object.getPrototypeOf(f)).call( - this, - f, - t, - e - ) - ) - return ( - ((i.el.M_Timepicker = i).options = h.extend( - {}, - f.defaults, - e - )), - (i.id = M.guid()), - i._insertHTMLIntoDOM(), - i._setupModal(), - i._setupVariables(), - i._setupEventHandlers(), - i._clockSetup(), - i._pickerSetup(), - i - ) - } - return ( - _inherits(f, Component), - _createClass( - f, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this.modal.destroy(), - h(this.modalEl).remove(), - (this.el.M_Timepicker = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleInputKeydownBound = this._handleInputKeydown.bind( - this - )), - (this._handleInputClickBound = this._handleInputClick.bind( - this - )), - (this._handleClockClickStartBound = this._handleClockClickStart.bind( - this - )), - (this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind( - this - )), - (this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleInputClickBound - ), - this.el.addEventListener( - 'keydown', - this._handleInputKeydownBound - ), - this.plate.addEventListener( - 'mousedown', - this._handleClockClickStartBound - ), - this.plate.addEventListener( - 'touchstart', - this._handleClockClickStartBound - ), - h(this.spanHours).on( - 'click', - this.showView.bind(this, 'hours') - ), - h(this.spanMinutes).on( - 'click', - this.showView.bind(this, 'minutes') - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'click', - this._handleInputClickBound - ), - this.el.removeEventListener( - 'keydown', - this._handleInputKeydownBound - ) - }, - }, - { - key: '_handleInputClick', - value: function() { - this.open() - }, - }, - { - key: '_handleInputKeydown', - value: function(t) { - t.which === M.keys.ENTER && - (t.preventDefault(), this.open()) - }, - }, - { - key: '_handleClockClickStart', - value: function(t) { - t.preventDefault() - var e = this.plate.getBoundingClientRect(), - i = e.left, - n = e.top - ;(this.x0 = i + this.options.dialRadius), - (this.y0 = n + this.options.dialRadius), - (this.moved = !1) - var s = f._Pos(t) - ;(this.dx = s.x - this.x0), - (this.dy = s.y - this.y0), - this.setHand(this.dx, this.dy, !1), - document.addEventListener( - 'mousemove', - this._handleDocumentClickMoveBound - ), - document.addEventListener( - 'touchmove', - this._handleDocumentClickMoveBound - ), - document.addEventListener( - 'mouseup', - this._handleDocumentClickEndBound - ), - document.addEventListener( - 'touchend', - this._handleDocumentClickEndBound - ) - }, - }, - { - key: '_handleDocumentClickMove', - value: function(t) { - t.preventDefault() - var e = f._Pos(t), - i = e.x - this.x0, - n = e.y - this.y0 - ;(this.moved = !0), - this.setHand(i, n, !1, !0) - }, - }, - { - key: '_handleDocumentClickEnd', - value: function(t) { - var e = this - t.preventDefault(), - document.removeEventListener( - 'mouseup', - this._handleDocumentClickEndBound - ), - document.removeEventListener( - 'touchend', - this._handleDocumentClickEndBound - ) - var i = f._Pos(t), - n = i.x - this.x0, - s = i.y - this.y0 - this.moved && - n === this.dx && - s === this.dy && - this.setHand(n, s), - 'hours' === this.currentView - ? this.showView( - 'minutes', - this.options.duration / 2 - ) - : this.options.autoClose && - (h(this.minutesView).addClass( - 'timepicker-dial-out' - ), - setTimeout(function() { - e.done() - }, this.options.duration / 2)), - 'function' == - typeof this.options.onSelect && - this.options.onSelect.call( - this, - this.hours, - this.minutes - ), - document.removeEventListener( - 'mousemove', - this._handleDocumentClickMoveBound - ), - document.removeEventListener( - 'touchmove', - this._handleDocumentClickMoveBound - ) - }, - }, - { - key: '_insertHTMLIntoDOM', - value: function() { - ;(this.$modalEl = h(f._template)), - (this.modalEl = this.$modalEl[0]), - (this.modalEl.id = 'modal-' + this.id) - var t = document.querySelector( - this.options.container - ) - this.options.container && t - ? this.$modalEl.appendTo(t) - : this.$modalEl.insertBefore(this.el) - }, - }, - { - key: '_setupModal', - value: function() { - var t = this - this.modal = M.Modal.init(this.modalEl, { - onOpenStart: this.options.onOpenStart, - onOpenEnd: this.options.onOpenEnd, - onCloseStart: this.options.onCloseStart, - onCloseEnd: function() { - 'function' == - typeof t.options.onCloseEnd && - t.options.onCloseEnd.call(t), - (t.isOpen = !1) - }, - }) - }, - }, - { - key: '_setupVariables', - value: function() { - ;(this.currentView = 'hours'), - (this.vibrate = navigator.vibrate - ? 'vibrate' - : navigator.webkitVibrate - ? 'webkitVibrate' - : null), - (this._canvas = this.modalEl.querySelector( - '.timepicker-canvas' - )), - (this.plate = this.modalEl.querySelector( - '.timepicker-plate' - )), - (this.hoursView = this.modalEl.querySelector( - '.timepicker-hours' - )), - (this.minutesView = this.modalEl.querySelector( - '.timepicker-minutes' - )), - (this.spanHours = this.modalEl.querySelector( - '.timepicker-span-hours' - )), - (this.spanMinutes = this.modalEl.querySelector( - '.timepicker-span-minutes' - )), - (this.spanAmPm = this.modalEl.querySelector( - '.timepicker-span-am-pm' - )), - (this.footer = this.modalEl.querySelector( - '.timepicker-footer' - )), - (this.amOrPm = 'PM') - }, - }, - { - key: '_pickerSetup', - value: function() { - var t = h( - '<button class="btn-flat timepicker-clear waves-effect" style="visibility: hidden;" type="button" tabindex="' + - (this.options.twelveHour - ? '3' - : '1') + - '">' + - this.options.i18n.clear + - '</button>' - ) - .appendTo(this.footer) - .on('click', this.clear.bind(this)) - this.options.showClearBtn && - t.css({ visibility: '' }) - var e = h( - '<div class="confirmation-btns"></div>' - ) - h( - '<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="' + - (this.options.twelveHour - ? '3' - : '1') + - '">' + - this.options.i18n.cancel + - '</button>' - ) - .appendTo(e) - .on('click', this.close.bind(this)), - h( - '<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="' + - (this.options.twelveHour - ? '3' - : '1') + - '">' + - this.options.i18n.done + - '</button>' - ) - .appendTo(e) - .on('click', this.done.bind(this)), - e.appendTo(this.footer) - }, - }, - { - key: '_clockSetup', - value: function() { - this.options.twelveHour && - ((this.$amBtn = h( - '<div class="am-btn">AM</div>' - )), - (this.$pmBtn = h( - '<div class="pm-btn">PM</div>' - )), - this.$amBtn - .on( - 'click', - this._handleAmPmClick.bind(this) - ) - .appendTo(this.spanAmPm), - this.$pmBtn - .on( - 'click', - this._handleAmPmClick.bind(this) - ) - .appendTo(this.spanAmPm)), - this._buildHoursView(), - this._buildMinutesView(), - this._buildSVGClock() - }, - }, - { - key: '_buildSVGClock', - value: function() { - var t = this.options.dialRadius, - e = this.options.tickRadius, - i = 2 * t, - n = f._createSVGEl('svg') - n.setAttribute('class', 'timepicker-svg'), - n.setAttribute('width', i), - n.setAttribute('height', i) - var s = f._createSVGEl('g') - s.setAttribute( - 'transform', - 'translate(' + t + ',' + t + ')' - ) - var o = f._createSVGEl('circle') - o.setAttribute( - 'class', - 'timepicker-canvas-bearing' - ), - o.setAttribute('cx', 0), - o.setAttribute('cy', 0), - o.setAttribute('r', 4) - var a = f._createSVGEl('line') - a.setAttribute('x1', 0), - a.setAttribute('y1', 0) - var r = f._createSVGEl('circle') - r.setAttribute( - 'class', - 'timepicker-canvas-bg' - ), - r.setAttribute('r', e), - s.appendChild(a), - s.appendChild(r), - s.appendChild(o), - n.appendChild(s), - this._canvas.appendChild(n), - (this.hand = a), - (this.bg = r), - (this.bearing = o), - (this.g = s) - }, - }, - { - key: '_buildHoursView', - value: function() { - var t = h( - '<div class="timepicker-tick"></div>' - ) - if (this.options.twelveHour) - for (var e = 1; e < 13; e += 1) { - var i = t.clone(), - n = (e / 6) * Math.PI, - s = this.options.outerRadius - i.css({ - left: - this.options.dialRadius + - Math.sin(n) * s - - this.options.tickRadius + - 'px', - top: - this.options.dialRadius - - Math.cos(n) * s - - this.options.tickRadius + - 'px', - }), - i.html(0 === e ? '00' : e), - this.hoursView.appendChild(i[0]) - } - else - for (var o = 0; o < 24; o += 1) { - var a = t.clone(), - r = (o / 6) * Math.PI, - l = - 0 < o && o < 13 - ? this.options - .innerRadius - : this.options - .outerRadius - a.css({ - left: - this.options.dialRadius + - Math.sin(r) * l - - this.options.tickRadius + - 'px', - top: - this.options.dialRadius - - Math.cos(r) * l - - this.options.tickRadius + - 'px', - }), - a.html(0 === o ? '00' : o), - this.hoursView.appendChild(a[0]) - } - }, - }, - { - key: '_buildMinutesView', - value: function() { - for ( - var t = h( - '<div class="timepicker-tick"></div>' - ), - e = 0; - e < 60; - e += 5 - ) { - var i = t.clone(), - n = (e / 30) * Math.PI - i.css({ - left: - this.options.dialRadius + - Math.sin(n) * - this.options.outerRadius - - this.options.tickRadius + - 'px', - top: - this.options.dialRadius - - Math.cos(n) * - this.options.outerRadius - - this.options.tickRadius + - 'px', - }), - i.html(f._addLeadingZero(e)), - this.minutesView.appendChild(i[0]) - } - }, - }, - { - key: '_handleAmPmClick', - value: function(t) { - var e = h(t.target) - ;(this.amOrPm = e.hasClass('am-btn') - ? 'AM' - : 'PM'), - this._updateAmPmView() - }, - }, - { - key: '_updateAmPmView', - value: function() { - this.options.twelveHour && - (this.$amBtn.toggleClass( - 'text-primary', - 'AM' === this.amOrPm - ), - this.$pmBtn.toggleClass( - 'text-primary', - 'PM' === this.amOrPm - )) - }, - }, - { - key: '_updateTimeFromInput', - value: function() { - var t = ( - (this.el.value || - this.options.defaultTime || - '') + '' - ).split(':') - if ( - (this.options.twelveHour && - void 0 !== t[1] && - (0 < - t[1].toUpperCase().indexOf('AM') - ? (this.amOrPm = 'AM') - : (this.amOrPm = 'PM'), - (t[1] = t[1] - .replace('AM', '') - .replace('PM', ''))), - 'now' === t[0]) - ) { - var e = new Date( - +new Date() + this.options.fromNow - ) - ;(t = [e.getHours(), e.getMinutes()]), - this.options.twelveHour && - (this.amOrPm = - 12 <= t[0] && t[0] < 24 - ? 'PM' - : 'AM') - } - ;(this.hours = +t[0] || 0), - (this.minutes = +t[1] || 0), - (this.spanHours.innerHTML = this.hours), - (this.spanMinutes.innerHTML = f._addLeadingZero( - this.minutes - )), - this._updateAmPmView() - }, - }, - { - key: 'showView', - value: function(t, e) { - 'minutes' === t && - h(this.hoursView).css('visibility') - var i = 'hours' === t, - n = i - ? this.hoursView - : this.minutesView, - s = i - ? this.minutesView - : this.hoursView - ;(this.currentView = t), - h(this.spanHours).toggleClass( - 'text-primary', - i - ), - h(this.spanMinutes).toggleClass( - 'text-primary', - !i - ), - s.classList.add('timepicker-dial-out'), - h(n) - .css('visibility', 'visible') - .removeClass('timepicker-dial-out'), - this.resetClock(e), - clearTimeout(this.toggleViewTimer), - (this.toggleViewTimer = setTimeout( - function() { - h(s).css('visibility', 'hidden') - }, - this.options.duration - )) - }, - }, - { - key: 'resetClock', - value: function(t) { - var e = this.currentView, - i = this[e], - n = 'hours' === e, - s = i * (Math.PI / (n ? 6 : 30)), - o = - n && 0 < i && i < 13 - ? this.options.innerRadius - : this.options.outerRadius, - a = Math.sin(s) * o, - r = -Math.cos(s) * o, - l = this - t - ? (h(this.canvas).addClass( - 'timepicker-canvas-out' - ), - setTimeout(function() { - h(l.canvas).removeClass( - 'timepicker-canvas-out' - ), - l.setHand(a, r) - }, t)) - : this.setHand(a, r) - }, - }, - { - key: 'setHand', - value: function(t, e, i) { - var n = this, - s = Math.atan2(t, -e), - o = 'hours' === this.currentView, - a = Math.PI / (o || i ? 6 : 30), - r = Math.sqrt(t * t + e * e), - l = - o && - r < - (this.options.outerRadius + - this.options.innerRadius) / - 2, - h = l - ? this.options.innerRadius - : this.options.outerRadius - this.options.twelveHour && - (h = this.options.outerRadius), - s < 0 && (s = 2 * Math.PI + s) - var d = Math.round(s / a) - ;(s = d * a), - this.options.twelveHour - ? o - ? 0 === d && (d = 12) - : (i && (d *= 5), - 60 === d && (d = 0)) - : o - ? (12 === d && (d = 0), - (d = l - ? 0 === d - ? 12 - : d - : 0 === d - ? 0 - : d + 12)) - : (i && (d *= 5), - 60 === d && (d = 0)), - this[this.currentView] !== d && - this.vibrate && - this.options.vibrate && - (this.vibrateTimer || - (navigator[this.vibrate](10), - (this.vibrateTimer = setTimeout( - function() { - n.vibrateTimer = null - }, - 100 - )))), - (this[this.currentView] = d), - o - ? (this.spanHours.innerHTML = d) - : (this.spanMinutes.innerHTML = f._addLeadingZero( - d - )) - var u = - Math.sin(s) * - (h - this.options.tickRadius), - c = - -Math.cos(s) * - (h - this.options.tickRadius), - p = Math.sin(s) * h, - v = -Math.cos(s) * h - this.hand.setAttribute('x2', u), - this.hand.setAttribute('y2', c), - this.bg.setAttribute('cx', p), - this.bg.setAttribute('cy', v) - }, - }, - { - key: 'open', - value: function() { - this.isOpen || - ((this.isOpen = !0), - this._updateTimeFromInput(), - this.showView('hours'), - this.modal.open()) - }, - }, - { - key: 'close', - value: function() { - this.isOpen && - ((this.isOpen = !1), this.modal.close()) - }, - }, - { - key: 'done', - value: function(t, e) { - var i = this.el.value, - n = e - ? '' - : f._addLeadingZero(this.hours) + - ':' + - f._addLeadingZero(this.minutes) - ;(this.time = n), - !e && - this.options.twelveHour && - (n = n + ' ' + this.amOrPm), - (this.el.value = n) !== i && - this.$el.trigger('change'), - this.close(), - this.el.focus() - }, - }, - { - key: 'clear', - value: function() { - this.done(null, !0) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - f.__proto__ || Object.getPrototypeOf(f), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: '_addLeadingZero', - value: function(t) { - return (t < 10 ? '0' : '') + t - }, - }, - { - key: '_createSVGEl', - value: function(t) { - return document.createElementNS( - 'http://www.w3.org/2000/svg', - t - ) - }, - }, - { - key: '_Pos', - value: function(t) { - return t.targetTouches && - 1 <= t.targetTouches.length - ? { - x: t.targetTouches[0].clientX, - y: t.targetTouches[0].clientY, - } - : { x: t.clientX, y: t.clientY } - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Timepicker - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - f - ) - })() - ;(t._template = [ - '<div class= "modal timepicker-modal">', - '<div class="modal-content timepicker-container">', - '<div class="timepicker-digital-display">', - '<div class="timepicker-text-container">', - '<div class="timepicker-display-column">', - '<span class="timepicker-span-hours text-primary"></span>', - ':', - '<span class="timepicker-span-minutes"></span>', - '</div>', - '<div class="timepicker-display-column timepicker-display-am-pm">', - '<div class="timepicker-span-am-pm"></div>', - '</div>', - '</div>', - '</div>', - '<div class="timepicker-analog-display">', - '<div class="timepicker-plate">', - '<div class="timepicker-canvas"></div>', - '<div class="timepicker-dial timepicker-hours"></div>', - '<div class="timepicker-dial timepicker-minutes timepicker-dial-out"></div>', - '</div>', - '<div class="timepicker-footer"></div>', - '</div>', - '</div>', - '</div>', - ].join('')), - (M.Timepicker = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'timepicker', 'M_Timepicker') - })(cash), - (function(s) { - 'use strict' - var e = {}, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_CharacterCounter = i).options = s.extend( - {}, - n.defaults, - e - )), - (i.isInvalid = !1), - (i.isValidLength = !1), - i._setupCounter(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.CharacterCounter = void 0), - this._removeCounter() - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleUpdateCounterBound = this.updateCounter.bind( - this - )), - this.el.addEventListener( - 'focus', - this._handleUpdateCounterBound, - !0 - ), - this.el.addEventListener( - 'input', - this._handleUpdateCounterBound, - !0 - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'focus', - this._handleUpdateCounterBound, - !0 - ), - this.el.removeEventListener( - 'input', - this._handleUpdateCounterBound, - !0 - ) - }, - }, - { - key: '_setupCounter', - value: function() { - ;(this.counterEl = document.createElement( - 'span' - )), - s(this.counterEl) - .addClass('character-counter') - .css({ - float: 'right', - 'font-size': '12px', - height: 1, - }), - this.$el.parent().append(this.counterEl) - }, - }, - { - key: '_removeCounter', - value: function() { - s(this.counterEl).remove() - }, - }, - { - key: 'updateCounter', - value: function() { - var t = +this.$el.attr('data-length'), - e = this.el.value.length - this.isValidLength = e <= t - var i = e - t && - ((i += '/' + t), this._validateInput()), - s(this.counterEl).html(i) - }, - }, - { - key: '_validateInput', - value: function() { - this.isValidLength && this.isInvalid - ? ((this.isInvalid = !1), - this.$el.removeClass('invalid')) - : this.isValidLength || - this.isInvalid || - ((this.isInvalid = !0), - this.$el.removeClass('valid'), - this.$el.addClass('invalid')) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t) - .M_CharacterCounter - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.CharacterCounter = t), - M.jQueryLoaded && - M.initializeJqueryWrapper( - t, - 'characterCounter', - 'M_CharacterCounter' - ) - })(cash), - (function(b) { - 'use strict' - var e = { - duration: 200, - dist: -100, - shift: 0, - padding: 0, - numVisible: 5, - fullWidth: !1, - indicators: !1, - noWrap: !1, - onCycleTo: null, - }, - t = (function(t) { - function i(t, e) { - _classCallCheck(this, i) - var n = _possibleConstructorReturn( - this, - (i.__proto__ || Object.getPrototypeOf(i)).call( - this, - i, - t, - e - ) - ) - return ( - ((n.el.M_Carousel = n).options = b.extend( - {}, - i.defaults, - e - )), - (n.hasMultipleSlides = - 1 < n.$el.find('.carousel-item').length), - (n.showIndicators = - n.options.indicators && n.hasMultipleSlides), - (n.noWrap = n.options.noWrap || !n.hasMultipleSlides), - (n.pressed = !1), - (n.dragged = !1), - (n.offset = n.target = 0), - (n.images = []), - (n.itemWidth = n.$el - .find('.carousel-item') - .first() - .innerWidth()), - (n.itemHeight = n.$el - .find('.carousel-item') - .first() - .innerHeight()), - (n.dim = 2 * n.itemWidth + n.options.padding || 1), - (n._autoScrollBound = n._autoScroll.bind(n)), - (n._trackBound = n._track.bind(n)), - n.options.fullWidth && - ((n.options.dist = 0), - n._setCarouselHeight(), - n.showIndicators && - n.$el - .find('.carousel-fixed-item') - .addClass('with-indicators')), - (n.$indicators = b('<ul class="indicators"></ul>')), - n.$el.find('.carousel-item').each(function(t, e) { - if ((n.images.push(t), n.showIndicators)) { - var i = b('<li class="indicator-item"></li>') - 0 === e && i[0].classList.add('active'), - n.$indicators.append(i) - } - }), - n.showIndicators && n.$el.append(n.$indicators), - (n.count = n.images.length), - (n.options.numVisible = Math.min( - n.count, - n.options.numVisible - )), - (n.xform = 'transform'), - ['webkit', 'Moz', 'O', 'ms'].every(function(t) { - var e = t + 'Transform' - return ( - void 0 === document.body.style[e] || - ((n.xform = e), !1) - ) - }), - n._setupEventHandlers(), - n._scroll(n.offset), - n - ) - } - return ( - _inherits(i, Component), - _createClass( - i, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.M_Carousel = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - var i = this - ;(this._handleCarouselTapBound = this._handleCarouselTap.bind( - this - )), - (this._handleCarouselDragBound = this._handleCarouselDrag.bind( - this - )), - (this._handleCarouselReleaseBound = this._handleCarouselRelease.bind( - this - )), - (this._handleCarouselClickBound = this._handleCarouselClick.bind( - this - )), - void 0 !== window.ontouchstart && - (this.el.addEventListener( - 'touchstart', - this._handleCarouselTapBound - ), - this.el.addEventListener( - 'touchmove', - this._handleCarouselDragBound - ), - this.el.addEventListener( - 'touchend', - this._handleCarouselReleaseBound - )), - this.el.addEventListener( - 'mousedown', - this._handleCarouselTapBound - ), - this.el.addEventListener( - 'mousemove', - this._handleCarouselDragBound - ), - this.el.addEventListener( - 'mouseup', - this._handleCarouselReleaseBound - ), - this.el.addEventListener( - 'mouseleave', - this._handleCarouselReleaseBound - ), - this.el.addEventListener( - 'click', - this._handleCarouselClickBound - ), - this.showIndicators && - this.$indicators && - ((this._handleIndicatorClickBound = this._handleIndicatorClick.bind( - this - )), - this.$indicators - .find('.indicator-item') - .each(function(t, e) { - t.addEventListener( - 'click', - i._handleIndicatorClickBound - ) - })) - var t = M.throttle(this._handleResize, 200) - ;(this._handleThrottledResizeBound = t.bind( - this - )), - window.addEventListener( - 'resize', - this._handleThrottledResizeBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - var i = this - void 0 !== window.ontouchstart && - (this.el.removeEventListener( - 'touchstart', - this._handleCarouselTapBound - ), - this.el.removeEventListener( - 'touchmove', - this._handleCarouselDragBound - ), - this.el.removeEventListener( - 'touchend', - this._handleCarouselReleaseBound - )), - this.el.removeEventListener( - 'mousedown', - this._handleCarouselTapBound - ), - this.el.removeEventListener( - 'mousemove', - this._handleCarouselDragBound - ), - this.el.removeEventListener( - 'mouseup', - this._handleCarouselReleaseBound - ), - this.el.removeEventListener( - 'mouseleave', - this._handleCarouselReleaseBound - ), - this.el.removeEventListener( - 'click', - this._handleCarouselClickBound - ), - this.showIndicators && - this.$indicators && - this.$indicators - .find('.indicator-item') - .each(function(t, e) { - t.removeEventListener( - 'click', - i._handleIndicatorClickBound - ) - }), - window.removeEventListener( - 'resize', - this._handleThrottledResizeBound - ) - }, - }, - { - key: '_handleCarouselTap', - value: function(t) { - 'mousedown' === t.type && - b(t.target).is('img') && - t.preventDefault(), - (this.pressed = !0), - (this.dragged = !1), - (this.verticalDragged = !1), - (this.reference = this._xpos(t)), - (this.referenceY = this._ypos(t)), - (this.velocity = this.amplitude = 0), - (this.frame = this.offset), - (this.timestamp = Date.now()), - clearInterval(this.ticker), - (this.ticker = setInterval( - this._trackBound, - 100 - )) - }, - }, - { - key: '_handleCarouselDrag', - value: function(t) { - var e = void 0, - i = void 0, - n = void 0 - if (this.pressed) - if ( - ((e = this._xpos(t)), - (i = this._ypos(t)), - (n = this.reference - e), - Math.abs(this.referenceY - i) < - 30 && !this.verticalDragged) - ) - (2 < n || n < -2) && - ((this.dragged = !0), - (this.reference = e), - this._scroll(this.offset + n)) - else { - if (this.dragged) - return ( - t.preventDefault(), - t.stopPropagation(), - !1 - ) - this.verticalDragged = !0 - } - if (this.dragged) - return ( - t.preventDefault(), - t.stopPropagation(), - !1 - ) - }, - }, - { - key: '_handleCarouselRelease', - value: function(t) { - if (this.pressed) - return ( - (this.pressed = !1), - clearInterval(this.ticker), - (this.target = this.offset), - (10 < this.velocity || - this.velocity < -10) && - ((this.amplitude = - 0.9 * this.velocity), - (this.target = - this.offset + - this.amplitude)), - (this.target = - Math.round( - this.target / this.dim - ) * this.dim), - this.noWrap && - (this.target >= - this.dim * (this.count - 1) - ? (this.target = - this.dim * - (this.count - 1)) - : this.target < 0 && - (this.target = 0)), - (this.amplitude = - this.target - this.offset), - (this.timestamp = Date.now()), - requestAnimationFrame( - this._autoScrollBound - ), - this.dragged && - (t.preventDefault(), - t.stopPropagation()), - !1 - ) - }, - }, - { - key: '_handleCarouselClick', - value: function(t) { - if (this.dragged) - return ( - t.preventDefault(), - t.stopPropagation(), - !1 - ) - if (!this.options.fullWidth) { - var e = b(t.target) - .closest('.carousel-item') - .index() - 0 !== this._wrap(this.center) - e && - (t.preventDefault(), - t.stopPropagation()), - this._cycleTo(e) - } - }, - }, - { - key: '_handleIndicatorClick', - value: function(t) { - t.stopPropagation() - var e = b(t.target).closest( - '.indicator-item' - ) - e.length && this._cycleTo(e.index()) - }, - }, - { - key: '_handleResize', - value: function(t) { - this.options.fullWidth - ? ((this.itemWidth = this.$el - .find('.carousel-item') - .first() - .innerWidth()), - (this.imageHeight = this.$el - .find('.carousel-item.active') - .height()), - (this.dim = - 2 * this.itemWidth + - this.options.padding), - (this.offset = - 2 * this.center * this.itemWidth), - (this.target = this.offset), - this._setCarouselHeight(!0)) - : this._scroll() - }, - }, - { - key: '_setCarouselHeight', - value: function(t) { - var i = this, - e = this.$el.find( - '.carousel-item.active' - ).length - ? this.$el - .find('.carousel-item.active') - .first() - : this.$el - .find('.carousel-item') - .first(), - n = e.find('img').first() - if (n.length) - if (n[0].complete) { - var s = n.height() - if (0 < s) - this.$el.css('height', s + 'px') - else { - var o = n[0].naturalWidth, - a = n[0].naturalHeight, - r = - (this.$el.width() / o) * - a - this.$el.css('height', r + 'px') - } - } else - n.one('load', function(t, e) { - i.$el.css( - 'height', - t.offsetHeight + 'px' - ) - }) - else if (!t) { - var l = e.height() - this.$el.css('height', l + 'px') - } - }, - }, - { - key: '_xpos', - value: function(t) { - return t.targetTouches && - 1 <= t.targetTouches.length - ? t.targetTouches[0].clientX - : t.clientX - }, - }, - { - key: '_ypos', - value: function(t) { - return t.targetTouches && - 1 <= t.targetTouches.length - ? t.targetTouches[0].clientY - : t.clientY - }, - }, - { - key: '_wrap', - value: function(t) { - return t >= this.count - ? t % this.count - : t < 0 - ? this._wrap( - this.count + (t % this.count) - ) - : t - }, - }, - { - key: '_track', - value: function() { - var t, e, i, n - ;(e = (t = Date.now()) - this.timestamp), - (this.timestamp = t), - (i = this.offset - this.frame), - (this.frame = this.offset), - (n = (1e3 * i) / (1 + e)), - (this.velocity = - 0.8 * n + 0.2 * this.velocity) - }, - }, - { - key: '_autoScroll', - value: function() { - var t = void 0, - e = void 0 - this.amplitude && - ((t = Date.now() - this.timestamp), - 2 < - (e = - this.amplitude * - Math.exp( - -t / this.options.duration - )) || e < -2 - ? (this._scroll(this.target - e), - requestAnimationFrame( - this._autoScrollBound - )) - : this._scroll(this.target)) - }, - }, - { - key: '_scroll', - value: function(t) { - var e = this - this.$el.hasClass('scrolling') || - this.el.classList.add('scrolling'), - null != this.scrollingTimeout && - window.clearTimeout( - this.scrollingTimeout - ), - (this.scrollingTimeout = window.setTimeout( - function() { - e.$el.removeClass('scrolling') - }, - this.options.duration - )) - var i, - n, - s, - o, - a = void 0, - r = void 0, - l = void 0, - h = void 0, - d = void 0, - u = void 0, - c = this.center, - p = 1 / this.options.numVisible - if ( - ((this.offset = - 'number' == typeof t - ? t - : this.offset), - (this.center = Math.floor( - (this.offset + this.dim / 2) / - this.dim - )), - (o = - (-(s = - (n = - this.offset - - this.center * this.dim) < 0 - ? 1 - : -1) * - n * - 2) / - this.dim), - (i = this.count >> 1), - this.options.fullWidth - ? ((l = 'translateX(0)'), (u = 1)) - : ((l = - 'translateX(' + - (this.el.clientWidth - - this.itemWidth) / - 2 + - 'px) '), - (l += - 'translateY(' + - (this.el.clientHeight - - this.itemHeight) / - 2 + - 'px)'), - (u = 1 - p * o)), - this.showIndicators) - ) { - var v = this.center % this.count, - f = this.$indicators.find( - '.indicator-item.active' - ) - f.index() !== v && - (f.removeClass('active'), - this.$indicators - .find('.indicator-item') - .eq(v)[0] - .classList.add('active')) - } - if ( - !this.noWrap || - (0 <= this.center && - this.center < this.count) - ) { - ;(r = this.images[ - this._wrap(this.center) - ]), - b(r).hasClass('active') || - (this.$el - .find('.carousel-item') - .removeClass('active'), - r.classList.add('active')) - var m = - l + - ' translateX(' + - -n / 2 + - 'px) translateX(' + - s * this.options.shift * o * a + - 'px) translateZ(' + - this.options.dist * o + - 'px)' - this._updateItemStyle(r, u, 0, m) - } - for (a = 1; a <= i; ++a) { - if ( - (this.options.fullWidth - ? ((h = this.options.dist), - (d = - a === i && n < 0 - ? 1 - o - : 1)) - : ((h = - this.options.dist * - (2 * a + o * s)), - (d = - 1 - p * (2 * a + o * s))), - !this.noWrap || - this.center + a < this.count) - ) { - r = this.images[ - this._wrap(this.center + a) - ] - var g = - l + - ' translateX(' + - (this.options.shift + - (this.dim * a - n) / 2) + - 'px) translateZ(' + - h + - 'px)' - this._updateItemStyle(r, d, -a, g) - } - if ( - (this.options.fullWidth - ? ((h = this.options.dist), - (d = - a === i && 0 < n - ? 1 - o - : 1)) - : ((h = - this.options.dist * - (2 * a - o * s)), - (d = - 1 - p * (2 * a - o * s))), - !this.noWrap || - 0 <= this.center - a) - ) { - r = this.images[ - this._wrap(this.center - a) - ] - var _ = - l + - ' translateX(' + - (-this.options.shift + - (-this.dim * a - n) / 2) + - 'px) translateZ(' + - h + - 'px)' - this._updateItemStyle(r, d, -a, _) - } - } - if ( - !this.noWrap || - (0 <= this.center && - this.center < this.count) - ) { - r = this.images[this._wrap(this.center)] - var y = - l + - ' translateX(' + - -n / 2 + - 'px) translateX(' + - s * this.options.shift * o + - 'px) translateZ(' + - this.options.dist * o + - 'px)' - this._updateItemStyle(r, u, 0, y) - } - var k = this.$el - .find('.carousel-item') - .eq(this._wrap(this.center)) - c !== this.center && - 'function' == - typeof this.options.onCycleTo && - this.options.onCycleTo.call( - this, - k[0], - this.dragged - ), - 'function' == - typeof this.oneTimeCallback && - (this.oneTimeCallback.call( - this, - k[0], - this.dragged - ), - (this.oneTimeCallback = null)) - }, - }, - { - key: '_updateItemStyle', - value: function(t, e, i, n) { - ;(t.style[this.xform] = n), - (t.style.zIndex = i), - (t.style.opacity = e), - (t.style.visibility = 'visible') - }, - }, - { - key: '_cycleTo', - value: function(t, e) { - var i = (this.center % this.count) - t - this.noWrap || - (i < 0 - ? Math.abs(i + this.count) < - Math.abs(i) && - (i += this.count) - : 0 < i && - Math.abs(i - this.count) < i && - (i -= this.count)), - (this.target = - this.dim * - Math.round(this.offset / this.dim)), - i < 0 - ? (this.target += - this.dim * Math.abs(i)) - : 0 < i && - (this.target -= this.dim * i), - 'function' == typeof e && - (this.oneTimeCallback = e), - this.offset !== this.target && - ((this.amplitude = - this.target - this.offset), - (this.timestamp = Date.now()), - requestAnimationFrame( - this._autoScrollBound - )) - }, - }, - { - key: 'next', - value: function(t) { - ;(void 0 === t || isNaN(t)) && (t = 1) - var e = this.center + t - if (e >= this.count || e < 0) { - if (this.noWrap) return - e = this._wrap(e) - } - this._cycleTo(e) - }, - }, - { - key: 'prev', - value: function(t) { - ;(void 0 === t || isNaN(t)) && (t = 1) - var e = this.center - t - if (e >= this.count || e < 0) { - if (this.noWrap) return - e = this._wrap(e) - } - this._cycleTo(e) - }, - }, - { - key: 'set', - value: function(t, e) { - if ( - ((void 0 === t || isNaN(t)) && (t = 0), - t > this.count || t < 0) - ) { - if (this.noWrap) return - t = this._wrap(t) - } - this._cycleTo(t, e) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - i.__proto__ || Object.getPrototypeOf(i), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Carousel - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - i - ) - })() - ;(M.Carousel = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'carousel', 'M_Carousel') - })(cash), - (function(S) { - 'use strict' - var e = { onOpen: void 0, onClose: void 0 }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_TapTarget = i).options = S.extend( - {}, - n.defaults, - e - )), - (i.isOpen = !1), - (i.$origin = S('#' + i.$el.attr('data-target'))), - i._setup(), - i._calculatePositioning(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - (this.el.TapTarget = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleDocumentClickBound = this._handleDocumentClick.bind( - this - )), - (this._handleTargetClickBound = this._handleTargetClick.bind( - this - )), - (this._handleOriginClickBound = this._handleOriginClick.bind( - this - )), - this.el.addEventListener( - 'click', - this._handleTargetClickBound - ), - this.originEl.addEventListener( - 'click', - this._handleOriginClickBound - ) - var t = M.throttle(this._handleResize, 200) - ;(this._handleThrottledResizeBound = t.bind( - this - )), - window.addEventListener( - 'resize', - this._handleThrottledResizeBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'click', - this._handleTargetClickBound - ), - this.originEl.removeEventListener( - 'click', - this._handleOriginClickBound - ), - window.removeEventListener( - 'resize', - this._handleThrottledResizeBound - ) - }, - }, - { - key: '_handleTargetClick', - value: function(t) { - this.open() - }, - }, - { - key: '_handleOriginClick', - value: function(t) { - this.close() - }, - }, - { - key: '_handleResize', - value: function(t) { - this._calculatePositioning() - }, - }, - { - key: '_handleDocumentClick', - value: function(t) { - S(t.target).closest('.tap-target-wrapper') - .length || - (this.close(), - t.preventDefault(), - t.stopPropagation()) - }, - }, - { - key: '_setup', - value: function() { - ;(this.wrapper = this.$el.parent()[0]), - (this.waveEl = S(this.wrapper).find( - '.tap-target-wave' - )[0]), - (this.originEl = S(this.wrapper).find( - '.tap-target-origin' - )[0]), - (this.contentEl = this.$el.find( - '.tap-target-content' - )[0]), - S(this.wrapper).hasClass( - '.tap-target-wrapper' - ) || - ((this.wrapper = document.createElement( - 'div' - )), - this.wrapper.classList.add( - 'tap-target-wrapper' - ), - this.$el.before(S(this.wrapper)), - this.wrapper.append(this.el)), - this.contentEl || - ((this.contentEl = document.createElement( - 'div' - )), - this.contentEl.classList.add( - 'tap-target-content' - ), - this.$el.append(this.contentEl)), - this.waveEl || - ((this.waveEl = document.createElement( - 'div' - )), - this.waveEl.classList.add( - 'tap-target-wave' - ), - this.originEl || - ((this.originEl = this.$origin.clone( - !0, - !0 - )), - this.originEl.addClass( - 'tap-target-origin' - ), - this.originEl.removeAttr('id'), - this.originEl.removeAttr( - 'style' - ), - (this.originEl = this.originEl[0]), - this.waveEl.append( - this.originEl - )), - this.wrapper.append(this.waveEl)) - }, - }, - { - key: '_calculatePositioning', - value: function() { - var t = - 'fixed' === this.$origin.css('position') - if (!t) - for ( - var e = this.$origin.parents(), - i = 0; - i < e.length && - !(t = - 'fixed' == - S(e[i]).css('position')); - i++ - ); - var n = this.$origin.outerWidth(), - s = this.$origin.outerHeight(), - o = t - ? this.$origin.offset().top - - M.getDocumentScrollTop() - : this.$origin.offset().top, - a = t - ? this.$origin.offset().left - - M.getDocumentScrollLeft() - : this.$origin.offset().left, - r = window.innerWidth, - l = window.innerHeight, - h = r / 2, - d = l / 2, - u = a <= h, - c = h < a, - p = o <= d, - v = d < o, - f = 0.25 * r <= a && a <= 0.75 * r, - m = this.$el.outerWidth(), - g = this.$el.outerHeight(), - _ = o + s / 2 - g / 2, - y = a + n / 2 - m / 2, - k = t ? 'fixed' : 'absolute', - b = f ? m : m / 2 + n, - w = g / 2, - C = p ? g / 2 : 0, - E = u && !f ? m / 2 - n : 0, - O = n, - x = v ? 'bottom' : 'top', - L = 2 * n, - T = L, - $ = g / 2 - T / 2, - B = m / 2 - L / 2, - D = {} - ;(D.top = p ? _ + 'px' : ''), - (D.right = c ? r - y - m + 'px' : ''), - (D.bottom = v ? l - _ - g + 'px' : ''), - (D.left = u ? y + 'px' : ''), - (D.position = k), - S(this.wrapper).css(D), - S(this.contentEl).css({ - width: b + 'px', - height: w + 'px', - top: C + 'px', - right: '0px', - bottom: '0px', - left: E + 'px', - padding: O + 'px', - verticalAlign: x, - }), - S(this.waveEl).css({ - top: $ + 'px', - left: B + 'px', - width: L + 'px', - height: T + 'px', - }) - }, - }, - { - key: 'open', - value: function() { - this.isOpen || - ('function' == - typeof this.options.onOpen && - this.options.onOpen.call( - this, - this.$origin[0] - ), - (this.isOpen = !0), - this.wrapper.classList.add('open'), - document.body.addEventListener( - 'click', - this._handleDocumentClickBound, - !0 - ), - document.body.addEventListener( - 'touchend', - this._handleDocumentClickBound - )) - }, - }, - { - key: 'close', - value: function() { - this.isOpen && - ('function' == - typeof this.options.onClose && - this.options.onClose.call( - this, - this.$origin[0] - ), - (this.isOpen = !1), - this.wrapper.classList.remove('open'), - document.body.removeEventListener( - 'click', - this._handleDocumentClickBound, - !0 - ), - document.body.removeEventListener( - 'touchend', - this._handleDocumentClickBound - )) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_TapTarget - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.TapTarget = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'tapTarget', 'M_TapTarget') - })(cash), - (function(d) { - 'use strict' - var e = { classes: '', dropdownOptions: {} }, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return i.$el.hasClass('browser-default') - ? _possibleConstructorReturn(i) - : (((i.el.M_FormSelect = i).options = d.extend( - {}, - n.defaults, - e - )), - (i.isMultiple = i.$el.prop('multiple')), - (i.el.tabIndex = -1), - (i._keysSelected = {}), - (i._valueDict = {}), - i._setupDropdown(), - i._setupEventHandlers(), - i) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this._removeDropdown(), - (this.el.M_FormSelect = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - var e = this - ;(this._handleSelectChangeBound = this._handleSelectChange.bind( - this - )), - (this._handleOptionClickBound = this._handleOptionClick.bind( - this - )), - (this._handleInputClickBound = this._handleInputClick.bind( - this - )), - d(this.dropdownOptions) - .find('li:not(.optgroup)') - .each(function(t) { - t.addEventListener( - 'click', - e._handleOptionClickBound - ) - }), - this.el.addEventListener( - 'change', - this._handleSelectChangeBound - ), - this.input.addEventListener( - 'click', - this._handleInputClickBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - var e = this - d(this.dropdownOptions) - .find('li:not(.optgroup)') - .each(function(t) { - t.removeEventListener( - 'click', - e._handleOptionClickBound - ) - }), - this.el.removeEventListener( - 'change', - this._handleSelectChangeBound - ), - this.input.removeEventListener( - 'click', - this._handleInputClickBound - ) - }, - }, - { - key: '_handleSelectChange', - value: function(t) { - this._setValueToInput() - }, - }, - { - key: '_handleOptionClick', - value: function(t) { - t.preventDefault() - var e = d(t.target).closest('li')[0], - i = e.id - if ( - !d(e).hasClass('disabled') && - !d(e).hasClass('optgroup') && - i.length - ) { - var n = !0 - if (this.isMultiple) { - var s = d( - this.dropdownOptions - ).find('li.disabled.selected') - s.length && - (s.removeClass('selected'), - s - .find( - 'input[type="checkbox"]' - ) - .prop('checked', !1), - this._toggleEntryFromArray( - s[0].id - )), - (n = this._toggleEntryFromArray( - i - )) - } else - d(this.dropdownOptions) - .find('li') - .removeClass('selected'), - d(e).toggleClass('selected', n) - d(this._valueDict[i].el).prop( - 'selected' - ) !== n && - (d(this._valueDict[i].el).prop( - 'selected', - n - ), - this.$el.trigger('change')) - } - t.stopPropagation() - }, - }, - { - key: '_handleInputClick', - value: function() { - this.dropdown && - this.dropdown.isOpen && - (this._setValueToInput(), - this._setSelectedStates()) - }, - }, - { - key: '_setupDropdown', - value: function() { - var n = this - ;(this.wrapper = document.createElement( - 'div' - )), - d(this.wrapper).addClass( - 'select-wrapper ' + - this.options.classes - ), - this.$el.before(d(this.wrapper)), - this.wrapper.appendChild(this.el), - this.el.disabled && - this.wrapper.classList.add( - 'disabled' - ), - (this.$selectOptions = this.$el.children( - 'option, optgroup' - )), - (this.dropdownOptions = document.createElement( - 'ul' - )), - (this.dropdownOptions.id = - 'select-options-' + M.guid()), - d(this.dropdownOptions).addClass( - 'dropdown-content select-dropdown ' + - (this.isMultiple - ? 'multiple-select-dropdown' - : '') - ), - this.$selectOptions.length && - this.$selectOptions.each(function( - t - ) { - if (d(t).is('option')) { - var e = void 0 - ;(e = n.isMultiple - ? n._appendOptionWithIcon( - n.$el, - t, - 'multiple' - ) - : n._appendOptionWithIcon( - n.$el, - t - )), - n._addOptionToValueDict( - t, - e - ) - } else if ( - d(t).is('optgroup') - ) { - var i = d(t).children( - 'option' - ) - d(n.dropdownOptions).append( - d( - '<li class="optgroup"><span>' + - t.getAttribute( - 'label' - ) + - '</span></li>' - )[0] - ), - i.each(function(t) { - var e = n._appendOptionWithIcon( - n.$el, - t, - 'optgroup-option' - ) - n._addOptionToValueDict( - t, - e - ) - }) - } - }), - this.$el.after(this.dropdownOptions), - (this.input = document.createElement( - 'input' - )), - d(this.input).addClass( - 'select-dropdown dropdown-trigger' - ), - this.input.setAttribute('type', 'text'), - this.input.setAttribute( - 'readonly', - 'true' - ), - this.input.setAttribute( - 'data-target', - this.dropdownOptions.id - ), - this.el.disabled && - d(this.input).prop( - 'disabled', - 'true' - ), - this.$el.before(this.input), - this._setValueToInput() - var t = d( - '<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>' - ) - if ( - (this.$el.before(t[0]), - !this.el.disabled) - ) { - var e = d.extend( - {}, - this.options.dropdownOptions - ) - ;(e.onOpenEnd = function(t) { - var e = d(n.dropdownOptions) - .find('.selected') - .first() - if ( - e.length && - ((M.keyDown = !0), - (n.dropdown.focusedIndex = e.index()), - n.dropdown._focusFocusedItem(), - (M.keyDown = !1), - n.dropdown.isScrollable) - ) { - var i = - e[0].getBoundingClientRect() - .top - - n.dropdownOptions.getBoundingClientRect() - .top - ;(i -= - n.dropdownOptions - .clientHeight / 2), - (n.dropdownOptions.scrollTop = i) - } - }), - this.isMultiple && - (e.closeOnClick = !1), - (this.dropdown = M.Dropdown.init( - this.input, - e - )) - } - this._setSelectedStates() - }, - }, - { - key: '_addOptionToValueDict', - value: function(t, e) { - var i = Object.keys(this._valueDict).length, - n = this.dropdownOptions.id + i, - s = {} - ;(e.id = n), - (s.el = t), - (s.optionEl = e), - (this._valueDict[n] = s) - }, - }, - { - key: '_removeDropdown', - value: function() { - d(this.wrapper) - .find('.caret') - .remove(), - d(this.input).remove(), - d(this.dropdownOptions).remove(), - d(this.wrapper).before(this.$el), - d(this.wrapper).remove() - }, - }, - { - key: '_appendOptionWithIcon', - value: function(t, e, i) { - var n = e.disabled ? 'disabled ' : '', - s = - 'optgroup-option' === i - ? 'optgroup-option ' - : '', - o = this.isMultiple - ? '<label><input type="checkbox"' + - n + - '"/><span>' + - e.innerHTML + - '</span></label>' - : e.innerHTML, - a = d('<li></li>'), - r = d('<span></span>') - r.html(o), - a.addClass(n + ' ' + s), - a.append(r) - var l = e.getAttribute('data-icon') - if (l) { - var h = d( - '<img alt="" src="' + l + '">' - ) - a.prepend(h) - } - return ( - d(this.dropdownOptions).append(a[0]), - a[0] - ) - }, - }, - { - key: '_toggleEntryFromArray', - value: function(t) { - var e = !this._keysSelected.hasOwnProperty( - t - ), - i = d(this._valueDict[t].optionEl) - return ( - e - ? (this._keysSelected[t] = !0) - : delete this._keysSelected[t], - i.toggleClass('selected', e), - i - .find('input[type="checkbox"]') - .prop('checked', e), - i.prop('selected', e), - e - ) - }, - }, - { - key: '_setValueToInput', - value: function() { - var i = [] - if ( - (this.$el - .find('option') - .each(function(t) { - if (d(t).prop('selected')) { - var e = d(t).text() - i.push(e) - } - }), - !i.length) - ) { - var t = this.$el - .find('option:disabled') - .eq(0) - t.length && - '' === t[0].value && - i.push(t.text()) - } - this.input.value = i.join(', ') - }, - }, - { - key: '_setSelectedStates', - value: function() { - for (var t in ((this._keysSelected = {}), - this._valueDict)) { - var e = this._valueDict[t], - i = d(e.el).prop('selected') - d(e.optionEl) - .find('input[type="checkbox"]') - .prop('checked', i), - i - ? (this._activateOption( - d(this.dropdownOptions), - d(e.optionEl) - ), - (this._keysSelected[t] = !0)) - : d(e.optionEl).removeClass( - 'selected' - ) - } - }, - }, - { - key: '_activateOption', - value: function(t, e) { - e && - (this.isMultiple || - t - .find('li.selected') - .removeClass('selected'), - d(e).addClass('selected')) - }, - }, - { - key: 'getSelectedValues', - value: function() { - var t = [] - for (var e in this._keysSelected) - t.push(this._valueDict[e].el.value) - return t - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_FormSelect - }, - }, - { - key: 'defaults', - get: function() { - return e - }, - }, - ] - ), - n - ) - })() - ;(M.FormSelect = t), - M.jQueryLoaded && - M.initializeJqueryWrapper(t, 'formSelect', 'M_FormSelect') - })(cash), - (function(s, e) { - 'use strict' - var i = {}, - t = (function(t) { - function n(t, e) { - _classCallCheck(this, n) - var i = _possibleConstructorReturn( - this, - (n.__proto__ || Object.getPrototypeOf(n)).call( - this, - n, - t, - e - ) - ) - return ( - ((i.el.M_Range = i).options = s.extend( - {}, - n.defaults, - e - )), - (i._mousedown = !1), - i._setupThumb(), - i._setupEventHandlers(), - i - ) - } - return ( - _inherits(n, Component), - _createClass( - n, - [ - { - key: 'destroy', - value: function() { - this._removeEventHandlers(), - this._removeThumb(), - (this.el.M_Range = void 0) - }, - }, - { - key: '_setupEventHandlers', - value: function() { - ;(this._handleRangeChangeBound = this._handleRangeChange.bind( - this - )), - (this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind( - this - )), - (this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind( - this - )), - (this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind( - this - )), - (this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind( - this - )), - this.el.addEventListener( - 'change', - this._handleRangeChangeBound - ), - this.el.addEventListener( - 'mousedown', - this - ._handleRangeMousedownTouchstartBound - ), - this.el.addEventListener( - 'touchstart', - this - ._handleRangeMousedownTouchstartBound - ), - this.el.addEventListener( - 'input', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.addEventListener( - 'mousemove', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.addEventListener( - 'touchmove', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.addEventListener( - 'mouseup', - this - ._handleRangeMouseupTouchendBound - ), - this.el.addEventListener( - 'touchend', - this - ._handleRangeMouseupTouchendBound - ), - this.el.addEventListener( - 'blur', - this - ._handleRangeBlurMouseoutTouchleaveBound - ), - this.el.addEventListener( - 'mouseout', - this - ._handleRangeBlurMouseoutTouchleaveBound - ), - this.el.addEventListener( - 'touchleave', - this - ._handleRangeBlurMouseoutTouchleaveBound - ) - }, - }, - { - key: '_removeEventHandlers', - value: function() { - this.el.removeEventListener( - 'change', - this._handleRangeChangeBound - ), - this.el.removeEventListener( - 'mousedown', - this - ._handleRangeMousedownTouchstartBound - ), - this.el.removeEventListener( - 'touchstart', - this - ._handleRangeMousedownTouchstartBound - ), - this.el.removeEventListener( - 'input', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.removeEventListener( - 'mousemove', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.removeEventListener( - 'touchmove', - this - ._handleRangeInputMousemoveTouchmoveBound - ), - this.el.removeEventListener( - 'mouseup', - this - ._handleRangeMouseupTouchendBound - ), - this.el.removeEventListener( - 'touchend', - this - ._handleRangeMouseupTouchendBound - ), - this.el.removeEventListener( - 'blur', - this - ._handleRangeBlurMouseoutTouchleaveBound - ), - this.el.removeEventListener( - 'mouseout', - this - ._handleRangeBlurMouseoutTouchleaveBound - ), - this.el.removeEventListener( - 'touchleave', - this - ._handleRangeBlurMouseoutTouchleaveBound - ) - }, - }, - { - key: '_handleRangeChange', - value: function() { - s(this.value).html(this.$el.val()), - s(this.thumb).hasClass('active') || - this._showRangeBubble() - var t = this._calcRangeOffset() - s(this.thumb) - .addClass('active') - .css('left', t + 'px') - }, - }, - { - key: '_handleRangeMousedownTouchstart', - value: function(t) { - if ( - (s(this.value).html(this.$el.val()), - (this._mousedown = !0), - this.$el.addClass('active'), - s(this.thumb).hasClass('active') || - this._showRangeBubble(), - 'input' !== t.type) - ) { - var e = this._calcRangeOffset() - s(this.thumb) - .addClass('active') - .css('left', e + 'px') - } - }, - }, - { - key: '_handleRangeInputMousemoveTouchmove', - value: function() { - if (this._mousedown) { - s(this.thumb).hasClass('active') || - this._showRangeBubble() - var t = this._calcRangeOffset() - s(this.thumb) - .addClass('active') - .css('left', t + 'px'), - s(this.value).html(this.$el.val()) - } - }, - }, - { - key: '_handleRangeMouseupTouchend', - value: function() { - ;(this._mousedown = !1), - this.$el.removeClass('active') - }, - }, - { - key: '_handleRangeBlurMouseoutTouchleave', - value: function() { - if (!this._mousedown) { - var t = - 7 + - parseInt( - this.$el.css('padding-left') - ) + - 'px' - s(this.thumb).hasClass('active') && - (e.remove(this.thumb), - e({ - targets: this.thumb, - height: 0, - width: 0, - top: 10, - easing: 'easeOutQuad', - marginLeft: t, - duration: 100, - })), - s(this.thumb).removeClass('active') - } - }, - }, - { - key: '_setupThumb', - value: function() { - ;(this.thumb = document.createElement( - 'span' - )), - (this.value = document.createElement( - 'span' - )), - s(this.thumb).addClass('thumb'), - s(this.value).addClass('value'), - s(this.thumb).append(this.value), - this.$el.after(this.thumb) - }, - }, - { - key: '_removeThumb', - value: function() { - s(this.thumb).remove() - }, - }, - { - key: '_showRangeBubble', - value: function() { - var t = - -7 + - parseInt( - s(this.thumb) - .parent() - .css('padding-left') - ) + - 'px' - e.remove(this.thumb), - e({ - targets: this.thumb, - height: 30, - width: 30, - top: -30, - marginLeft: t, - duration: 300, - easing: 'easeOutQuint', - }) - }, - }, - { - key: '_calcRangeOffset', - value: function() { - var t = this.$el.width() - 15, - e = - parseFloat(this.$el.attr('max')) || - 100, - i = - parseFloat(this.$el.attr('min')) || - 0 - return ( - ((parseFloat(this.$el.val()) - i) / - (e - i)) * - t - ) - }, - }, - ], - [ - { - key: 'init', - value: function(t, e) { - return _get( - n.__proto__ || Object.getPrototypeOf(n), - 'init', - this - ).call(this, this, t, e) - }, - }, - { - key: 'getInstance', - value: function(t) { - return (t.jquery ? t[0] : t).M_Range - }, - }, - { - key: 'defaults', - get: function() { - return i - }, - }, - ] - ), - n - ) - })() - ;(M.Range = t), - M.jQueryLoaded && M.initializeJqueryWrapper(t, 'range', 'M_Range'), - t.init(s('input[type=range]')) - })(cash, M.anime) diff --git a/src/assets/pause.png b/src/assets/pause.png deleted file mode 100644 index 80912694f76e15064bc941a1906f7b98bc857b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|9Zwg>kP60R3C9Qj|NrN5c*Ag% yYsXPe=_?=P8Knw3`MsLmc%@7`KIs@0F)(}(jXiOo;h_#tAA_f>pUXO@geCy*%^gPo diff --git a/src/assets/play.png b/src/assets/play.png deleted file mode 100644 index 580b0c49eb18772c8051f7c4390be10320498cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|KTj9OkP60RiN**2|Nm#YV)TMh zz&apLfN9P06Q%zH4^}JmEx)6{a)bW}*A(fNf>>Kqo?i?{c&A8}G}NqDjG5?=nUK%m i`u~8s#|~{bMuykh&qRKdt8xaK%;4$j=d#Wzp$PzaS}e-| diff --git a/src/assets/trayTemplate.ico b/src/assets/trayTemplate.ico deleted file mode 100644 index 43e96216016df6ea9c24c8467cdee5aaa9607eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56643 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 diff --git a/src/assets/trayTemplate.png b/src/assets/trayTemplate.png deleted file mode 100644 index 5384670b7453dd65fddef132dfe59249dad81876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1650 zcmbVNYi!$86n2NGx{g8#NSihRmLmi!^E2;D&6*~m$%M10jj~KIX^wr9m?pNdoh2!t z(n1k1R-tL|gGGfQhM2}S@e84XHj%ZecuXCd&=`N1;Ku~o#_I<NY2rFBbueDDWc&Kw z?|$ce=bm%?d?G&5*So$K!?3<sG(3vl4*TxuM$go#*=^{xT90lwF>K9k_T7cOT3d%< zH?CKbX)7%}1SG9UiL#b~RHdjRG=>dsuIQpP4lO(bbBf9nm*<ZYxFYk!HjlsvdI;u~ z=!5~sCgMqHVq6Ny#O4R^!3sbGMQDk5rC3l+P~nLNFF<2^nkMiD#2V*`pluLO3kf`= z84&kSUQ%M+e%u$JSg)ILc{kx4!v<)^PqQwPVFBX>9v|Mi2xQHWvtTs*V9OTz;)%Rv z>42uo<uX-vQJRsX*+2ksa5Tq}2tk@v)e<YDYC78tVQ5N*qFail;x?n0(MlFiAWxeT zih74uHCtgq0i!FTPO}taOKJdRse{u?MxkL`mS|XjMW|XP!m=H#p4TkR%xix`-C4fM z01B-jbZlJHmtwJF!n7j0kc?J9u8B62RUOi!(9}wX1S7kUn@(Ge4nhVLEzL-3TA_VV ziMGo)hg9SD3ZkT_wup@@w!pAxL7w0kjv*N@$@-Hl13WBn`R`*~fMJ?YL6eni^{-GD z@c044T?Iu+Ba4>!uV7gMS<NVlNU~BCbCA~69D#QN2|`*yGmv5AoonTMEEGx@T2?8b z1#@&{7>`9lUN+$Mk{rc0+!X{6Q%y@$B^V3y1PTwOC^E=!GMmi?I5OjLF{E1xxJi-W zvZNcz(2W+onT)T!Kdeb5I|<tR<^Q>VtD&GG6bskQW0$6#Js_%>=v=F<;u(XFwMGR6 zZzK#5CA$!KLb5Xe%0z2gx$X!wY0G(tNdF-(nlMw#T4m9I!5oU#f5<!<xlh|g+f+jT zS!82vMS-{BsB756PP;-MorVWh)a4A+&N2s`b<_&4#KOU(f6tLKY`i|yKXaabW^WCD z>CP?G&{XvHyPmrtvag13JVDlQ$EvAB{?^{<7Y_aawr~2%@%25z`5*UBmcN+0IMZ*v z(VciU@Jf0iz4%D#lefEeNPBjtt$ye3_dQ3?4Lv!y`0@xTyr{4J@cz>4)xv=@>YAJ8 zGN0YDysqo%lm3%;&u$oc{N3!{Y2(v@#h|;p<~xyH8e8U1J(_w#*y-~hsVr8aLHg{m zFHb+bYQVYmgU~y}Jqw4*2OPgl)jytp>e#oxrA}X2Jttl2d2MF?oBG^^3qRLCx;(kG z@YdnU+34|`lLPPFaqiH?<+yZd2YYsdXX@9w=kxEs%lzK$IQ(YcPpPG~_Fo|uiHDC4 H@0|VvGSDZK diff --git a/src/assets/trayTemplate@2x.png b/src/assets/trayTemplate@2x.png deleted file mode 100644 index 7935fdae599c46b3271fdb6da4386e0d2a404c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ0007dNkl<ZScUDF z&1zFY6vuydQCl(Sq9toFSt?R!z)B0!rQ){BuJjEoK7!Fl=m$PT6-2~VTy$4kP^=5Z zU1>oS(t^<@GV;H5yfe3R=jL8F`h!a#=W8-^a?YH~e*&C3S?uL3a09pwTmdcs=cM=* z_z1iPUI34Qj?YOMG=N0~=;wSovT2mLkP+ZM@J);80qej5a1E#f!+PraZb3Rd*%;fl zd=11!U{g+yfEAz_;jk&2Bl*}IWVa@OT{(IWv>c86w3J(Y`J9M#V1C7(96SYTjz&D= zz)Shui`l7B{Y#ADx^kl|jIZbNy`@+|+A=U(JYM2r63lMzC`Q|nrZ7p|RT74BW>qz) z2rb3vhK_DgD_?OWE=KPVxL5F4m*r#0k%*cKSubb8*~Re<Fym;POhd6cS$~>2IbU-m ze$v(2IDZ6;dA0ql$#yQ04q0lm`h4Ow4P*M^Jn#;<owH9Sv1T0!u%XpXI}$&ke)bBu z<hA_GjC3~~39v6=-I4h5Eh7DV2Oj8#;G-`6eUI$8d7gG8etZkadOiWSJYI&a=KG5w zN2NNVV^wuz4~rgI6-j;BvHFwgbW+>fxUJ8tj#(U^fjbJe9k5JddG*RFj4=(_DU3FQ zw2rp}w2p(U)`1#bUyU!%f+}sU$*TXx^<xtFp;*B?dU8Sg5Sb5osj1)fRmFph>Uvq# z7515Rg+1eFWRSk(XBD;>#)@9@6YMc)N9SIYNu@yHF({#79beHwaoHLax5^l+N0jK@ z)F^!ynDUI$Q<B-EbhoTg+NP-?;J{O*vz|lMncTZt^mWY5)a#h@l6^_Nj#;hpb<95q Z@Dn>p0*;7k$aDYz002ovPDHLkV1gLbNACat diff --git a/src/locales/readme.md b/src/locales/readme.md deleted file mode 100644 index 14f6829b2..000000000 --- a/src/locales/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -Looking for the locales for YTMDesktop - -They've moved over to https://github.com/ytmdesktop/ytmdesktop-locales/ 😄 diff --git a/src/locales/zh_TW.json b/src/locales/zh_TW.json deleted file mode 100644 index f9776dcc1..000000000 --- a/src/locales/zh_TW.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "ADD_TO_LIBRARY": "新增到資料庫", - "ADD_TO_PLAYLIST": "新增到播放清單", - "ALWAYS_ASK_WHEN_READ_LINK": "在連結前一律確認", - "DOUBLE_CLICK_TO_RESET_POSITION": "點擊兩次以重設位置", - "LABEL_ALSO": "Also", - "LABEL_AUDIO": "音樂", - "LABEL_CANCEL": "取消", - "LABEL_CHANGELOG": "更新日誌", - "LABEL_DISABLE": "停用", - "LABEL_EXIT": "離開", - "LABEL_GUEST": "無痕模式", - "LABEL_LOADING": "讀取中...", - "LABEL_LYRICS_NOT_FOUND": "查無歌詞", - "LABEL_LYRICS": "歌詞", - "LABEL_LYRICS_GENIUS_AUTH": "YTMDesktop 需要 Genius 帳號授權(http://localhost:9864/login)或停用 Genius 歌詞 \"設定 > 集成 > 啟用 Genius 歌詞\"", - "LABEL_MINIPLAYER": "迷你播放工具", - "LABEL_NOTIFICATION_DISLIKED": "你不喜歡這首歌", - "LABEL_NOTIFICATION_LIKED": "你喜歡這首歌", - "LABEL_PLAY_MUSIC": "播放音樂", - "LABEL_SAVE": "儲存", - "LABEL_SAVED": "已儲存", - "LABEL_SETTINGS_DISCORD_SHOW_ARTIST": "顯示作家", - "LABEL_SETTINGS_DISCORD_SHOW_IDLE": "播放暫停時顯示曲目", - "LABEL_SETTINGS_DISCORD_SHOW_TIME": "顯示播放時間", - "LABEL_SETTINGS_DISCORD_SHOW_TITLE": "顯示標題", - "LABEL_SETTINGS_DISCORD": "Discord 狀態設定", - "LABEL_SETTINGS_RELAUNCH": "儲存並重新啟動", - "LABEL_SETTINGS_SHOW_HIDE_WINDOW": "隱藏/顯示視窗", - "LABEL_SETTINGS_TAB_ABOUT": "關於", - "LABEL_SETTINGS_TAB_APPEARANCE_TASKBAR_PROGRESSBAR": "任務欄圖標顯示播放進度", - "LABEL_SETTINGS_TAB_APPEARANCE_PLAYER_BACKGROUND_COLOR": "背景使用專輯色彩", - "LABEL_SETTINGS_TAB_APPEARENCE": "顯示", - "LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND": "沒有找到設備", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER": "遠端控制", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_INFO": "點擊此處掃碼連接", - "LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER_PROTECT": "遠端控制啟用密碼保護", - "LABEL_SETTINGS_TAB_GENERAL_CONTINUE_WHERE_LEFT_OF": "退出時儲存當前播放佇列", - "LABEL_SETTINGS_TAB_GENERAL_CUSTOM_THEME": "自定義主題", - "LABEL_SETTINGS_TAB_GENERAL_DISABLE_HARDWARE_ACCELERATION": "禁用硬體加速", - "LABEL_SETTINGS_TAB_GENERAL_DISCORD_RICH_PRESENCE": "Discord 集成", - "LABEL_SETTINGS_TAB_GENERAL_KEEP_BACKGROUND": "關閉視窗時保持播放", - "LABEL_SETTINGS_TAB_GENERAL_PAGE_ZOOM": "頁面大小", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT": "選擇輸出設備", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LANGUAGE": "語言(Language)", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_LYRICS_PROVIDER": "選擇歌詞來源", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE": "標題欄風格", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE": "集成", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NONE": "停用", - "LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_SYSTEM": "跟隨系統", - "LABEL_SETTINGS_TAB_GENERAL_SHINY_TRAY": "啟用托盤區控制(僅限Mac OS)", - "LABEL_SETTINGS_TAB_GENERAL_SHOW_NOTIFICATIONS": "顯示通知", - "LABEL_SETTINGS_TAB_GENERAL_START_MINIMIZED": "開啟最小化", - "LABEL_SETTINGS_TAB_GENERAL_START_ON_BOOT": "開機自動啟動 (實驗功能, Mac/Win)", - "LABEL_SETTINGS_TAB_GENERAL": "偏好設定", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE_SHOW_INFO": "在 Windows 10 音量欄旁邊顯示曲目信息", - "LABEL_SETTINGS_TAB_INTEGRATION_WINDOWS10_MEDIA_SERVICE": "啟用 Windows 10 媒體服務", - "LABEL_SETTINGS_TAB_INTEGRATION": "集成", - "LABEL_SETTINGS_TAB_INTEGRATIONS": "集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER": "LAST FM 集成", - "LABEL_SETTINGS_TAB_LAST_FM_SCROBBLER_AUTHORIZE": "綁定 LAST FM 賬號", - "LABEL_SETTINGS_TAB_MACOS": "Mac OS X", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_ON_TOP": "迷你播放工具視窗置頂", - "LABEL_SETTINGS_TAB_MINIPLAYER_ALWAYS_SHOW_CONTROLS": "迷你播放工具控制顯示鎖定", - "LABEL_SETTINGS_TAB_MINIPLAYER_PAINT_CONTROLS": "迷你播放工具畫面設定", - "LABEL_SETTINGS_TAB_MINIPLAYER_RESIZABLE": "允許調整迷你播放工具大小", - "LABEL_SETTINGS_TAB_MINIPLAYER_SHOW_TASK": "在任務欄顯示迷你播放工具", - "LABEL_SETTINGS_TAB_MINIPLAYER": "迷你播放工具", - "LABEL_SETTINGS_TAB_PLAYBACK": "播放", - "LABEL_SETTINGS_TAB_RAINMETER_WEB_NOW_PLAYING": "Rainmeter (WebNowPlaying)", - "LABEL_SETTINGS_TAB_READ_CLIPBOARD": "閱讀剪貼板中的 YouTube 鏈接", - "LABEL_SETTINGS_TAB_SHORTCUTS_GLOBAL": "全域", - "LABEL_SETTINGS_TAB_SHORTCUTS_LOCAL": "本地", - "LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS": "按任意鍵", - "LABEL_SETTINGS_TAB_SHORTCUTS": "快捷鍵", - "LABEL_SETTINGS_TAB_SHORTCUTS_VOLUME_MEDIA_KEYS": "音量媒體按鍵僅控制 app 音量", - "LABEL_SETTINGS_TAB_PLAYBACK_DECIBEL_VOLUME": "切換音量控制 '%' 至 'dB'", - "LABEL_SETTINGS_TAB_GENERAL_GENIUS_LYRICS": "啟用 Genius 歌詞", - "LABEL_SETTINGS": "設定", - "LABEL_SHUTDOWN": "關閉", - "LYRICS": "歌詞", - "MEDIA_CONTROL_MINIPLAYER": "打開/關閉 Mini 播放器", - "MEDIA_CONTROL_MUTE_UNMUTE": "靜音", - "MEDIA_CONTROL_NEXT": "下一首", - "MEDIA_CONTROL_PAUSE": "暫停", - "MEDIA_CONTROL_PLAY_PAUSE": "播放/暫停", - "MEDIA_CONTROL_PLAY": "播放", - "MEDIA_CONTROL_PREVIOUS": "上一首", - "MEDIA_CONTROL_QUEUE_OPEN_CLOSE": "打開/關閉佇列", - "MEDIA_CONTROL_REPEAT": "重復播放", - "MEDIA_CONTROL_SEARCH": "搜尋", - "MEDIA_CONTROL_SHUFFLE": "隨機播放", - "MEDIA_CONTROL_THUMBS_DOWN": "不喜歡", - "MEDIA_CONTROL_THUMBS_UP": "喜歡", - "MEDIA_CONTROL_VOLUME_DOWN": "減小音量", - "MEDIA_CONTROL_VOLUME_UP": "增大音量", - "MINIPLAYER": "迷你播放工具", - "PREFIX_OPEN_CLOSE": "打開/關閉", - "REMOVE_FROM_LIBRARY": "從資料庫中刪除", - "SHORTCUT_BUTTONS": "用戶界面行為", - "SHOW": "顯示", - "SKIP_TRACK_MARKED_DISLIKED": "跳過\"不喜歡\"標記", - "SKIP_TRACK_SHORTER_THAN": "跳過播放長度短於", - "TRAY_ICON": "任務欄圖標", - "WANT_PLAY_THIS_LINK": "要播放本連結嗎?" -} diff --git a/src/pages/changelog/changelog.css b/src/pages/changelog/changelog.css deleted file mode 100644 index db2eb3131..000000000 --- a/src/pages/changelog/changelog.css +++ /dev/null @@ -1,32 +0,0 @@ -html, -body { - background-color: #1D1D1D; - color: #fff; - - padding: 5px; - - font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; - font-size: .95em; - - line-height: 1.3em; -} - -#version { - width: 100%; - margin: -15px 0 -15px 0; - text-align: center; - font-size: 1.5em; -} - -#content { - overflow: auto; - width: 100%; - padding: 2px; - height: 90%; - - scroll-behavior: smooth; -} - -::-webkit-scrollbar { - width: 6px; -} diff --git a/src/pages/changelog/changelog.html b/src/pages/changelog/changelog.html deleted file mode 100644 index 9080d9e05..000000000 --- a/src/pages/changelog/changelog.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8" /> - <title>Changelog - - - - - -
-
-
-
- - - - diff --git a/src/pages/changelog/changelog.js b/src/pages/changelog/changelog.js deleted file mode 100644 index 1a51d8118..000000000 --- a/src/pages/changelog/changelog.js +++ /dev/null @@ -1,20 +0,0 @@ -const { app } = require('electron').remote -const markdown = require('markdown').markdown -const fetch = require('node-fetch') -const settingsProvider = require('../../providers/settingsProvider') - -fetch(`https://api.github.com/repos/ytmdesktop/ytmdesktop/releases`) - .then((res) => res.json()) - .then((json) => { - let tag = `v${app.getVersion()}` - - let filtered = json.filter((value) => value.tag_name === tag) - let changelog = filtered[0] - - let body = changelog.body - - document.getElementById('version').innerHTML = markdown.toHTML(tag) - document.getElementById('changelog').innerHTML = markdown.toHTML(body) - - settingsProvider.set('has-updated', false) - }) diff --git a/src/pages/editor/editor.css b/src/pages/editor/editor.css deleted file mode 100644 index 710d8f9ad..000000000 --- a/src/pages/editor/editor.css +++ /dev/null @@ -1,18 +0,0 @@ -body { - margin: 2px; -} - -#editor { - position: absolute; - margin: 0; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.bottom { - position: absolute; - bottom: 16px; - right: 12px; -} \ No newline at end of file diff --git a/src/pages/editor/editor.html b/src/pages/editor/editor.html deleted file mode 100644 index abb67010c..000000000 --- a/src/pages/editor/editor.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -

-    save
-    
-    
-    
-
-
diff --git a/src/pages/editor/editor.js b/src/pages/editor/editor.js
deleted file mode 100644
index 9273cb896..000000000
--- a/src/pages/editor/editor.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const { ipcRenderer } = require('electron')
-const app = require('electron').remote.app
-const path = require('electron').remote.require('path')
-
-const __ = require('../../../src/providers/translateProvider')
-const fileSystem = require('../../../src/utils/fileSystem')
-
-const customCssDir = path.join(fileSystem.getAppDataPath(app), '/custom/css')
-const filePage = path.join(customCssDir, 'page.css')
-
-const textEditor = document.getElementById('editor')
-const btnSave = document.getElementById('btn-save')
-
-let editor
-
-__.loadi18n()
-
-if (fileSystem.checkIfExists(customCssDir))
-    textEditor.innerHTML = fileSystem.readFile(filePage).toString()
-
-if (btnSave)
-    btnSave.addEventListener('click', () => {
-        const code = editor.getValue()
-        fileSystem.writeFile(filePage, code)
-        ipcRenderer.send('update-custom-css-page')
-    })
-
-document.addEventListener('DOMContentLoaded', () => {
-    editor = ace.edit('editor')
-    editor.setTheme('ace/theme/twilight')
-    editor.session.setMode('ace/mode/css')
-})
diff --git a/src/pages/home/home.css b/src/pages/home/home.css
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/pages/home/home.html b/src/pages/home/home.html
deleted file mode 100644
index 889f69d8d..000000000
--- a/src/pages/home/home.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-    
-        
-        YouTube Music
-        
-        
-        
-        
-    
-    
-        
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
- signal_wifi_off -
-
- - - - diff --git a/src/pages/home/home.js b/src/pages/home/home.js deleted file mode 100644 index 8f81d843b..000000000 --- a/src/pages/home/home.js +++ /dev/null @@ -1,25 +0,0 @@ -const { remote, ipcRenderer: ipc } = require('electron') -const electronStore = require('electron-store') -const store = new electronStore() -const status = remote.getGlobal('sharedObj') - -ipc.on('is-dev', (event, args) => { - if (args) document.title = document.title + ' DEV' -}) - -document.addEventListener('DOMContentLoaded', () => { - let isOnline = navigator.onLine - - if (isOnline) { - document.querySelector('#is-offline').classList.add('hide') - document.querySelector('#center-loading').classList.remove('hide') - } else { - document.querySelector('#is-offline').classList.remove('hide') - document.querySelector('#center-loading').classList.add('hide') - } -}) - -/*document.querySelector('#btn-reload') - .addEventListener('click', () => { - window.location.reload() - })*/ diff --git a/src/pages/lyrics/lyrics.css b/src/pages/lyrics/lyrics.css deleted file mode 100644 index 2cc5ce626..000000000 --- a/src/pages/lyrics/lyrics.css +++ /dev/null @@ -1,64 +0,0 @@ -html, -body { - background-color: #1D1D1D; - color: #fff; - - /* padding: 5px; */ - padding: 0; - - width: 100%; - height: 100%; -} - -.title { - text-overflow: ellipsis; - overflow: hidden; - width: 93%; - white-space: nowrap; -} - -/* width */ -::-webkit-scrollbar { - width: 6px; -} - -#tips { - position: absolute; - width: 100%; - text-align: center; - color: lightgreen; -} - -#content { - overflow: auto; - width: 100%; - height: 98%; - /*margin-top: 34px; */ - padding: 40% 5px 5px 5px; - transition: .5s ease-in-out all; - scroll-behavior: smooth; -} - -#lyric { - font-size: 130%; - text-align: center; -} - -#lyric-source { - font-size: 80%; - padding: 0 0 0 6px; - color: #AAA; -} - -.hide { - display: none; -} - -.overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 2; -} \ No newline at end of file diff --git a/src/pages/lyrics/lyrics.html b/src/pages/lyrics/lyrics.html deleted file mode 100644 index de3c69373..000000000 --- a/src/pages/lyrics/lyrics.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - Lyrics - - - - - - - -
-
-
-
-
- - - diff --git a/src/pages/lyrics/lyrics.js b/src/pages/lyrics/lyrics.js deleted file mode 100644 index ea3f46c41..000000000 --- a/src/pages/lyrics/lyrics.js +++ /dev/null @@ -1,297 +0,0 @@ -const { ipcRenderer } = require('electron') -const fetch = require('node-fetch') -const __ = require('../../providers/translateProvider') -const infoPlayerProvider = require('electron').remote.require( - './src/providers/infoPlayerProvider' -) -const settingsProvider = require('../../providers/settingsProvider') - -const elementLyric = document.getElementById('lyric') -const elementLyricSource = document.getElementById('lyric-source') - -let lastId, target, toggled, geniusAuth - -loadingLyrics() - -document.getElementById('content').addEventListener('dblclick', (_) => { - document.getElementById('content').scrollTo(0, target) -}) - -document.getElementById('content').addEventListener('scroll', (_) => { - const scrollTop = document.getElementById('content').scrollTop - const differential = - target > scrollTop ? target - scrollTop : scrollTop - target - if (differential >= 40) { - document.getElementById('tips').innerText = __.trans( - 'DOUBLE_CLICK_TO_RESET_POSITION' - ) - toggled = false - } else { - document.getElementById('tips').innerText = '' - toggled = true - } -}) - -setInterval(async () => { - await setData(await retrieveAllInfo()) -}, 1000) - -async function setData(data) { - const scrollHeight = document.getElementById('content').scrollHeight - target = (scrollHeight * data.player.statePercent) / 1.4 - if (toggled) document.getElementById('content').scrollTo(0, target) - - getLyric(data.track.author, data.track.title, data.track.id) -} - -async function retrieveAllInfo() { - return new Promise((resolve, reject) => { - ipcRenderer - .invoke('invoke-all-info') - .then((result) => resolve(result)) - .catch((_) => reject(false)) - }) -} - -function getLyric(artist, song, id) { - if (artist !== undefined && song !== undefined) { - if (lastId !== id) { - lastId = id - toggled = true - loadingLyrics() - - // Genius will be skipped if not enabled. - retrieveGeniusData(artist, song) - .then((success) => setLyrics('Genius', success, true)) - .catch((_) => - retrieveVagalumeData(artist, song) - .then((success_) => - setLyrics('Vagalume', success_, true) - ) - .catch((_) => - retrieveKsoftData(artist, song) - .then((success) => - setLyrics('KSoft', success, true) - ) - .catch((_) => - retrieveOVHData(artist, song) - .then((success) => - setLyrics('OVH', success, true) - ) - .catch((error) => { - elementLyric.innerText = error - setLyrics('-', error, true) - }) - ) - ) - ) - } - } else elementLyric.innerText = __.trans('LABEL_PLAY_MUSIC') -} - -function setLyrics(source, lyrics, hasLoaded) { - if (source === 'Genius') { - // Lyrics in Genius is an object check here; https://docs.genius.com/#search-h2 "response: { hits: { result: { ..." - elementLyric.innerText = lyrics.full_title - const lyricsElementId = `rg_embed_link_${lyrics.id}` - - const node = document.createElement('div') - node.id = 'overlay' - document.getElementById('content').appendChild(node) - - const postscribe = require('postscribe') - postscribe( - '#lyric', - ` `, - { - done: () => - (document.getElementsByClassName( - 'rg_embed music' - )[0].style.color = 'black'), - } - ) - } else { - elementLyric.innerText = lyrics - infoPlayerProvider.updateLyrics(source, lyrics, hasLoaded) - } - elementLyricSource.innerText = `Lyrics provided by ${source}` - document.getElementById('content').scrollTop = 0 -} - -function loadingLyrics() { - elementLyricSource.innerText = '' - elementLyric.innerText = __.trans('LABEL_LOADING') - infoPlayerProvider.updateLyrics('', __.trans('LABEL_LOADING'), false) -} - -function removeAccents(strAccents) { - // TODO: Remove old code - /*strAccents = strAccents.split(''); - let strAccentsOut = []; - let strAccentsLen = strAccents.length; - - const accents = - 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž?&='; - const accentsOut = [ - 'A', - 'A', - 'A', - 'A', - 'A', - 'A', - 'a', - 'a', - 'a', - 'a', - 'a', - 'a', - 'O', - 'O', - 'O', - 'O', - 'O', - 'O', - 'O', - 'o', - 'o', - 'o', - 'o', - 'o', - 'o', - 'E', - 'E', - 'E', - 'E', - 'e', - 'e', - 'e', - 'e', - 'e', - 'C', - 'c', - 'D', - 'I', - 'I', - 'I', - 'I', - 'i', - 'i', - 'i', - 'i', - 'U', - 'U', - 'U', - 'U', - 'u', - 'u', - 'u', - 'u', - 'N', - 'n', - 'S', - 's', - 'Y', - 'y', - 'y', - 'Z', - 'z', - '%3F', - '%26', - '%3D', - ]; - - for (let y = 0; y < strAccentsLen; y++) - if (accents.indexOf(strAccents[y]) !== -1) - strAccentsOut[y] = accentsOut[accents.indexOf(strAccents[y])]; - else strAccentsOut[y] = strAccents[y]; - - strAccentsOut = strAccentsOut.join(''); - - return strAccentsOut;*/ - return strAccents.normalize('NFD').replace(/[\u0300-\u036f]/g, '') -} - -function retrieveKsoftData(artist, track) { - return new Promise((resolve, reject) => { - fetch( - `https://ytmd-lyrics.herokuapp.com/?q=${removeAccents( - artist - )} - ${removeAccents(track)}`, - { timeout: 3000 } - ) - .then((res) => res.json()) - .then((json) => { - if (!json.error) resolve(json.result.lyrics) - else reject(__.trans('LABEL_LYRICS_NOT_FOUND')) - }) - .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) - }) -} - -function retrieveOVHData(artist, track) { - return new Promise((resolve, reject) => { - fetch( - `https://api.lyrics.ovh/v1/${removeAccents(artist)}/${removeAccents( - track - )}`, - { timeout: 3000 } - ) - .then((res) => res.json()) - .then((json) => { - if (json.lyrics) resolve(json.lyrics) - else reject(__.trans('LABEL_LYRICS_NOT_FOUND')) - }) - .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) - }) -} - -function retrieveVagalumeData(artist, track) { - return new Promise((resolve, reject) => { - fetch( - `https://api.vagalume.com.br/search.php?art=${removeAccents( - artist - )}&mus=${removeAccents(track)}`, - { timeout: 3000 } - ) - .then((res) => res.json()) - .then((json) => { - if (json.mus) resolve(json.mus[0].text) - else reject(__.trans('LABEL_LYRICS_NOT_FOUND')) - }) - .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) - }) -} - -function retrieveGeniusData(artist, track) { - geniusAuth = settingsProvider.get('genius-auth') - - return new Promise(async (resolve, reject) => { - //first it will check if Genius is enabled and is authorized. - if (!settingsProvider.get('settings-genius-auth-server')) { - reject(__.trans('LABEL_LYRICS_NOT_FOUND')) - } else if (!(geniusAuth.access_token || geniusAuth.token_type)) { - reject(__.trans('LABEL_LYRICS_GENIUS_AUTH')) - } else { - // Documentation: https://docs.genius.com/#search-h2 - await fetch( - `https://api.genius.com/search?q=${removeAccents( - track - )} - ${removeAccents(artist)}`, - { - timeout: 3000, - headers: { - Authorization: `${geniusAuth.token_type} ${geniusAuth.access_token}`, - }, - } - ) - .then((res) => res.json()) - .then((json) => { - // Just get the first result, should be good for now? - if (json && json.response.hits[0]) { - resolve(json.response.hits[0].result) - } else reject(__.trans('LABEL_LYRICS_NOT_FOUND')) - }) - .catch((_) => reject(__.trans('LABEL_LYRICS_NOT_FOUND'))) - } - }) -} diff --git a/src/pages/miniplayer/miniplayer.css b/src/pages/miniplayer/miniplayer.css deleted file mode 100644 index 826130f67..000000000 --- a/src/pages/miniplayer/miniplayer.css +++ /dev/null @@ -1,207 +0,0 @@ -body:hover .player-info, -body:hover .cmd-btn, -body.showinfo .player-info, -body.showinfo .cmd-btn { - filter: none; -} - -body:hover .progress-bar, -body.showinfo .progress-bar { - margin-top: 0; - height: 2vmin; -} - -body:hover #background, -body.showinfo #background { - filter: blur(3px) brightness(0.7); -} - -.player-info { - filter: opacity(0); - height: 78vmin; -} - -.cmd-bar { - margin: 4px 4px 0; - height: 10vmin; -} - -#btn-drag { - filter: none !important; -} - -.cmd-btn { - width: 10vmin; - height: 100%; - padding: 1.5vmin; - filter: opacity(0); - border-radius: 100%; -} - -.cmd-btn i { - font-size: 7vmin; -} - -.title { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-weight: bold; - font-size: 8.5vmin; - padding: 0 2.5vmin; - margin-top: calc(10vmin - 4px); -} - -/* - Album is a data call used in the stream player but not in the default. - Due to the .js file calling this data I maintain parity with these base files. - I have set the opacity to 0 and the position to absolute to not interfere. - Just get rid of those settings to add it to the default mini player. -*/ -.album { - opacity: 0; - position: absolute; - overflow: hidden; - text-overflow: ellipsis; - text-align: left; - white-space: nowrap; - font-size: 18vmin; - margin-top: -6vmin; - margin-left: 22.5vmax; -} - -.author { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 7vmin; - padding: 0 10px; - margin-top: 0; -} - -.duration { - font-size: 5.5vmin; - margin-top: 2vmin; -} - -.controls { - display: flex; - justify-content: center; - margin-top: 10vmin; -} - -.ctrl-btn { - float: left; - padding: 1.5vmin; - margin: 5vmin 1vmin; - border-radius: 50%; -} - -.ctrl-btn i { - font-size: 12vmin; -} - -.ctrl-btn:hover { - background: rgba(255, 255, 255, 0.1); -} - -#btn-play-pause { - margin: 0; -} - -#btn-like, -#btn-dislike { - margin: 5vmin 2.5vmin; - width: 100%; -} - -#btn-like i, -#btn-dislike i { - font-size: 7vmin; - padding: 2.5vmin; - position: absolute; -} - -#btn-play-pause i { - font-size: 22vmin; -} - -.progress-bar { - margin-top: 1.4vmin; - height: 0.6vmin; - width: 100vmin; -} - -#progress { - height: 100%; - width: 0; - background: #fff; - transition: width 0.15s ease-in; -} - -#content, -#secondsEffect { - position: absolute; - top: 0; - width: 100vmin; - height: 100vmin; - z-index: 1; -} - -#content { - text-shadow: 0 0 3 #000; -} - -#background { - background-repeat: no-repeat; - background-size: cover; - background-position: center; - position: absolute; - top: -1vmin; - left: -1vmin; - width: 102vmin; - height: 102vmin; - z-index: 0; -} - -#loading { - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - text-align: center; - z-index: 1; -} - -#secondsEffect { - display: none; -} - -#secondsEffect.left { - left: -40vmin; - display: block; -} - -#secondsEffect.right { - right: -40vmin; - transform: rotate(180deg); - display: block; -} - -/* transitions */ -.player-info, -.cmd-btn, -.progress-bar, -.ctrl-btn, -.material-icons { - transition: filter, margin-top, height, background-color, opacity; - transition-duration: 0.15s; - transition-timing-function: ease-out; -} - -.show-solid { - opacity: 1; -} -.hide-solid { - opacity: 0; -} \ No newline at end of file diff --git a/src/pages/miniplayer/miniplayer.html b/src/pages/miniplayer/miniplayer.html deleted file mode 100644 index c2d7768e5..000000000 --- a/src/pages/miniplayer/miniplayer.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - YouTube Music - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- drag_indicator -
-
- launch -
-
- -
-
- Title -
- -
- Album -
- -
- Author -
- -
- 0:00 - 0:00 -
- -
-
- thumb_down - - - thumb_down -
-
- skip_previous -
-
- play_arrow -
-
- skip_next -
-
- thumb_up - - - thumb_up -
-
-
-
-
-
-
- -
-
- - - - diff --git a/src/pages/miniplayer/miniplayer.js b/src/pages/miniplayer/miniplayer.js deleted file mode 100644 index 45b6a9f5e..000000000 --- a/src/pages/miniplayer/miniplayer.js +++ /dev/null @@ -1,154 +0,0 @@ -const { ipcRenderer } = require('electron') -const settingsProvider = require('../../providers/settingsProvider') - -const btnClose = document.getElementById('btn-close') -const btnDislike = document.getElementById('btn-dislike') -const btnPrevious = document.getElementById('btn-previous') -const btnPlayPause = document.getElementById('btn-play-pause') -const btnNext = document.getElementById('btn-next') -const btnLike = document.getElementById('btn-like') - -let body = document.getElementsByTagName('body')[0] -let background = document.getElementById('background') -let title = document.getElementById('title') -let author = document.getElementById('author') -let album = document.getElementById('album') - -let current = document.getElementById('current') -let duration = document.getElementById('duration') -let progress = document.getElementById('progress') -let secondsEffect = document.getElementById('secondsEffect') - -document.addEventListener('DOMContentLoaded', async () => { - setPlayerInfo(await retrieveAllInfo()) - - setInterval(async () => { - setPlayerInfo(await retrieveAllInfo()) - }, 500) - - document.addEventListener('wheel', function (ev) { - ev.preventDefault() - if (ev.deltaY < 0) - ipcRenderer.send('media-command', { command: 'media-volume-up' }) - else ipcRenderer.send('media-command', { command: 'media-volume-down' }) - }) - - document.addEventListener('dblclick', (ev) => { - if (ev.clientX >= 100) { - ipcRenderer.send('media-command', { - command: 'media-seekbar-forward', - }) - showDbClickAnimation('right') - } else { - ipcRenderer.send('media-command', { - command: 'media-seekbar-rewind', - }) - showDbClickAnimation('left') - } - }) - - btnClose.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'restore-main-window' }) - }) - - btnDislike.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-vote-down' }) - }) - - btnPrevious.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-track-previous' }) - }) - - btnPlayPause.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-play-pause' }) - body.classList.toggle('showinfo') - }) - - btnNext.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-track-next' }) - }) - - btnLike.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-vote-up' }) - }) -}) - -async function retrieveAllInfo() { - return new Promise((resolve, reject) => { - ipcRenderer - .invoke('invoke-all-info') - .then((result) => resolve(result)) - .catch((_) => reject(false)) - }) -} - -function setPlayerInfo(data) { - document.title = `${data.track.title} - ${data.track.author}` - background.style.backgroundImage = `url(${data.track.cover})` - title.innerHTML = data.track.title || 'Title' - author.innerHTML = data.track.author || 'Author' - album.innerHTML = data.track.album || 'Album' - current.innerHTML = data.player.seekbarCurrentPositionHuman || '0:00' - duration.innerHTML = data.track.durationHuman || '0:00' - progress.style.width = data.player.statePercent * 100 + '%' - if (data.player.isPaused) { - btnPlayPause.children.item(0).innerHTML = 'play_arrow' - body.classList.add('showinfo') - } else { - btnPlayPause.children.item(0).innerHTML = 'pause' - body.classList.remove('showinfo') - } - - const btnLikeCL = btnLike.children.item(0).classList - const btnDislikeCL = btnDislike.children.item(0).classList - - switch (data.player.likeStatus) { - case 'LIKE': - btnLikeCL.add('show-solid') - btnLikeCL.remove('hide-solid') - btnDislikeCL.add('hide-solid') - btnDislikeCL.remove('show-solid') - break - - case 'DISLIKE': - btnLikeCL.add('hide-solid') - btnLikeCL.remove('show-solid') - btnDislikeCL.add('show-solid') - btnDislikeCL.remove('hide-solid') - break - - case 'INDIFFERENT': - btnDislikeCL.add('hide-solid') - btnDislikeCL.remove('show-solid') - btnLikeCL.add('hide-solid') - btnLikeCL.remove('show-solid') - break - } - - if (settingsProvider.get('settings-miniplayer-paint-controls')) { - const Vibrant = require('node-vibrant') - - Vibrant.from(data.track.cover) - .getPalette() - .then((palette) => { - body.style.color = palette.LightVibrant.hex - progress.style.background = palette.LightVibrant.hex - secondsEffect.style.background = `linear-gradient(to right, ${palette.LightVibrant.hex}, transparent)` - }) - } - - if (settingsProvider.get('settings-miniplayer-always-show-controls')) - body.classList.add('showinfo') - - if (data.track.id) { - document.querySelector('#loading').classList.add('hide') - document.querySelector('#content').classList.remove('hide') - } -} - -function showDbClickAnimation(side) { - secondsEffect.classList.add(side) - setTimeout(() => { - secondsEffect.classList.remove(side) - }, 200) -} diff --git a/src/pages/miniplayer/streamPlayer.css b/src/pages/miniplayer/streamPlayer.css deleted file mode 100644 index 564959d37..000000000 --- a/src/pages/miniplayer/streamPlayer.css +++ /dev/null @@ -1,146 +0,0 @@ -:root { - --text-margin-left: 12px; -} - -body:hover .player-info, -body:hover .cmd-btn, -body.showinfo .player-info, -body.showinfo .cmd-btn { - filter: none; -} - -.player-info { - height: 100vh; - margin-top: 10vh; -} - -.cmd-bar { - margin: 4px 4px 0; - height: 100vh; - position: absolute; - top: 0; - width: calc(100% - 8px); -} - -.cmd-btn { - width: 20px; - height: 20px; -} - -.cmd-btn i { - font-size: 12vmin; - margin-right: -1vmin; -} - -#btn-drag { - opacity: 0; -} - -#btn-like, -#btn-dislike, -#btn-next, -#btn-previous, -#btn-play-pause { - margin-top: 100vmax; - opacity: 0; -} - -.title { - overflow: hidden; - text-overflow: ellipsis; - text-align: left; - white-space: nowrap; - font-weight: bold; - font-size: 22vmin; - margin-top: -13vmin; - margin-left: calc(100vh + var(--text-margin-left)); -} - -.album { - overflow: hidden; - text-overflow: ellipsis; - text-align: left; - white-space: nowrap; - font-size: 18vmin; - margin-top: -6vmin; - margin-left: calc(100vh + var(--text-margin-left)); -} - -.author { - overflow: hidden; - text-overflow: ellipsis; - text-align: left; - white-space: nowrap; - font-size: 16vmin; - margin-top: -5vmin; - margin-left: calc(100vh + var(--text-margin-left)); -} - -.duration { - text-align: left; - font-size: 14vmin; - margin-top: -4vmin; - margin-left: calc(100vh + var(--text-margin-left)); -} - -.progress-bar { - margin-top: 15vmin; - height: 5vmin; - width: 80vmax; - margin-left: calc(100vh); - position: absolute; - bottom: 0; -} - -#progress { - height: 100%; - width: 0; - background: #fff; -} - -#content, -#secondsEffect { - position: absolute; - top: 0; - width: 100vmax; - height: 100vmin; - z-index: 1; -} - -#content { - text-shadow: 0 0 3 #000; -} - -#background { - background-repeat: no-repeat; - background-size: 100vh 100vh; - background-position: center; - position: absolute; - width: 100vh; - height: 100vh; - z-index: 0; -} - -#loading { - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - text-align: center; - z-index: 1; -} - -#secondsEffect { - display: none; -} - -#secondsEffect.left { - left: -40vmin; - display: block; -} - -#secondsEffect.right { - right: -40vmin; - transform: rotate(180deg); - display: block; -} \ No newline at end of file diff --git a/src/pages/miniplayer/streamPlayer.html b/src/pages/miniplayer/streamPlayer.html deleted file mode 100644 index 5ec1a8318..000000000 --- a/src/pages/miniplayer/streamPlayer.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - YouTube Music - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- drag_indicator -
-
- launch -
-
- -
-
- Title -
- -
- Album -
- -
- Author -
- -
- 0:00 / - 0:00 -
- - -
-
- thumb_down -
-
- skip_previous -
-
- play_arrow -
-
- skip_next -
-
- thumb_up -
-
-
-
-
-
-
- -
-
- - - - diff --git a/src/pages/settings/settings.css b/src/pages/settings/settings.css deleted file mode 100644 index f14ea9180..000000000 --- a/src/pages/settings/settings.css +++ /dev/null @@ -1,284 +0,0 @@ -body { - background-color: #1D1D1D; -} - -label { - color: #fff !important; -} - -tbody, -td, -th { - padding: 10px 5px; -} - -ul, -li { - background-color: transparent !important; -} - -ul, -li, -a { - color: #eee !important; -} - -.tabs .tab a:focus, -.tabs .tab a:focus.active { - background-color: rgba(255, 255, 255, 0.1); -} - -.indicator { - background-color: #f44336 !important; -} - -.switch label input[type="checkbox"]:checked+.lever { - background-color: #d32f2f; -} - -.switch label input[type="checkbox"]:checked+.lever:after { - background-color: #f44336; -} - -.dropdown-trigger { - color: #f44336 !important; - height: 26px !important; - margin: 0 !important; - padding: 0 !important; -} - -.dropdown-content li>a, -.dropdown-content li>span { - color: #fff !important; -} - -:disabled { - color: #666 !important; - border: none !important; -} - -.select-dropdown.dropdown-content { - background-color: black !important; - max-height: 300px !important; -} - -.select-dropdown.dropdown-content li.selected { - background-color: #f44336 !important; -} - -.select-dropdown.dropdown-content li:hover { - background-color: #f44336 !important; - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span { - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span:hover { - color: #fff !important; -} - -input[type="range"] { - border: 1px solid #d32f2f; -} - -input[type="range"]::-webkit-slider-thumb { - background-color: #f44336; -} - -input[type="range"]::-moz-range-thumb { - background-color: #f44336; -} - -input[type="range"]::-ms-thumb { - background-color: #f44336; -} - -input[type="range"]+.thumb { - background-color: #fff; -} - -input[type="range"]+.thumb.active .value { - color: #f44336; -} - -input[type="range"]::-webkit-slider-runnable-track { - background: #d32f2f; -} - -.select-wrapper input.select-dropdown { - text-align: center; - border: none; -} - -.select-wrapper input.select-dropdown:focus { - border: none; -} - -.select-wrapper input.select-dropdown { - text-align: right; - right: 14px; -} - -.caret { - display: none; -} - -.hide { - display: none; -} - -.divider { - height: 1px; - border-top: 1px solid #ddd; - text-align: center; -} - -.media-icons { - vertical-align: sub; - font-size: 16px; -} - -.tabs-vertical .tabs { - height: auto; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} - -.tabs-vertical .tab { - width: 100%; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: left; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: capitalize; - text-overflow: ellipsis; -} - -.tabs-vertical .tab .active { - -moz-transition: border-color .5s ease; - -o-transition: border-color .5s ease; - -webkit-transition: border-color .5s ease; - transition: border-color .5s ease; - border-left: 3px solid #d32f2f; - color: #FFF !important; - background-color: rgba(255,255,255,0.1) !important; -} - -.tabs-vertical .tab a { - border-left: 3px solid transparent; - /*color: #3f51b5;*/ - color: #CCC !important; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - -webkit-transition: color 0.28s ease; - -moz-transition: color 0.28s ease; - -o-transition: color 0.28s ease; - -ms-transition: color 0.28s ease; - transition: color 0.28s ease; -} - -.tabs-vertical .tab a:hover { - color: #FFF !important; -} - -.tabs-vertical .tab.disabled a { - color: #8591d5; - cursor: default; -} - -.tabs-vertical .indicator { - display: none; -} - -.mt-1 { - margin-top: 0.7rem; -} - -.mt-2 { - margin-top: 0.9rem; -} - -.bottom { - position: absolute; - padding: 5px; - bottom: 0; - width: 100%; - background-color: #1D1D1D; - text-transform: none; -} - - -.dropdown-trigger { - min-width: 300px; - font-size: 13px !important; -} - -.btn-tiny { - padding: 0 2px; - height: auto; - line-height: normal; -} - -input[type=range]+.thumb { - display: none; -} - -.settings-item-child::before { - color: #666; - content: '└ '; -} - -.text-disabled { - text-decoration: line-through; - text-transform: capitalize; -} - -.shortcut-text { - color: #888; - text-transform: lowercase; - padding: 0 7px; -} - -.btn-normalize { - min-width: 70px; -} - -.icon-normalize { - margin-top: 12px; -} - -.tooltip { - position: relative; - display: inline-block; - line-height: 15px; - font-size: 14px; -} - -.tooltip .tooltiptext { - position: absolute; - width: 200px; - margin-left: 5px; - visibility: hidden; - background-color: dimgray; - color: black; - fill: dimgray; - border-radius: 10px; - padding: 5px 5px; -} - -.tooltip:hover .tooltiptext { - visibility: visible; -} \ No newline at end of file diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html deleted file mode 100644 index 4da9b053b..000000000 --- a/src/pages/settings/settings.html +++ /dev/null @@ -1,1780 +0,0 @@ - - - - - Settings - - - - - - - -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - - autorenew - - -
- -
-
- - - autorenew - - - -
- - -
- - -
-
-
-   -
-
- - -
- -
-
- - -
- -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - - 0s -

- -

-
- - -
- -
-
- - -
- -
-
- - - autorenew - - -
- -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - - info - - - -
- -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - 100% -

- -

-
- - -
- -
-
- - - -
- - -
- - -
-
- - -
- - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- -
-
- - - - -
- - -
-
- - - autorenew - - -
- - -
-
- - -
- -
-
- - - -
- -
-
- - -
- - -
-
- - -
- -
-
- - - autorenew - - -
- -
-
- - - - autorenew - - -
- -
-
- - - -
- -
-
- OBS Studio(Open Broadcaster - Software) - - open_in_new - -
-
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - play_arrow/pause - -
- - - - - - skip_next - -
- - - - - - skip_previous - -
- - - -
- - - -
- - - -
- - - -
- - -
- -
-
- - - -
- - - - 2x -
- -
-
-
-
-
-
-
- - v
Commit hash: -

- -
-
-
- Made with - by - adlerluiz & contributors -

- - https://ytmdesktop.app - -

-

- - View on Github - -

-
-
- - - - autorenew - - -
- -
-
-
-
-
-
-
- -
- -
- - - - - diff --git a/src/pages/settings/settings.js b/src/pages/settings/settings.js deleted file mode 100644 index d0b2c49d2..000000000 --- a/src/pages/settings/settings.js +++ /dev/null @@ -1,694 +0,0 @@ -const { remote, ipcRenderer: ipc, shell } = require('electron') -const settingsProvider = require('../../providers/settingsProvider') -const __ = require('../../providers/translateProvider') -const { isLinux, isMac, isWindows } = require('../../utils/systemInfo') -const fs = require('fs') - -/*const elementSettingsCompanionApp = document.getElementById( - 'COMPANION_SERVER_INFO' -)*/ -const elementRangeZoom = document.getElementById('range-zoom') -const elementBtnAppRelaunch = document.getElementById('btn-relaunch') -const elementBtnOpenPageEditor = document.getElementById( - 'btn-editor-custom-css-page' -) -const elementBtnLastFmLogin = document.getElementById('btn-last-fm-login') -const elementBtnOpenCompanionServer = document.getElementById( - 'btn-open-companion-server' -) -const elementBtnOpenGeniusAuthServer = document.getElementById( - 'btn-open-genius-auth-server' -) - -const elementBtnDiscordSettings = document.getElementById('btn-discord-setting') - -const elementBtnShortcutButtonsSettings = document.getElementById( - 'btn-shortcut-buttons-setting' -) - -const elementRangeSkipTrackShorterThan = document.getElementById( - 'range-skip-track-shorter-than' -) - -if (isLinux()) - document - .getElementById( - 'i18n_LABEL_SETTINGS_TAB_GENERAL_SELECT_TITLEBAR_TYPE_NICE' - ) - .remove() - -const audioOutputSelect = document.querySelector('#settings-app-audio-output') - -let settingsAccelerators = settingsProvider.get('settings-accelerators') - -let typeAcceleratorSelected, keyBindings - -// FIXME: for some reason, this ipc update_audio_devices_callback could not be triggered -// So we put a button there to allow positive refresh -function update_audio_devices_callback(devices) { - devices = JSON.parse(devices) - while (audioOutputSelect.firstChild) - audioOutputSelect.removeChild(audioOutputSelect.firstChild) - if (devices.length) { - devices.forEach((deviceInfo) => { - let option = document.createElement('option') - option.text = - deviceInfo.label != null - ? deviceInfo.label - : `speaker ${audioOutputSelect.length + 1}` - option.value = deviceInfo.label - audioOutputSelect.appendChild(option) - }) - - const defaultOuput = devices.find( - (audio) => audio.deviceId === 'default' - ) - if (!audioOutputSelect.value.length) - audioOutputSelect.value = defaultOuput.label - } else { - let option = document.createElement('option') - option.text = __.trans( - 'LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND' - ) - option.value = '0' - audioOutputSelect.appendChild(option) - audioOutputSelect.disabled = true - } - mInit() -} - -ipc.on('update-audio-output-devices', update_audio_devices_callback) - -get_audio_output_list = () => - ipc.invoke('get-audio-output-list').then((devices) => { - devices = JSON.parse(devices) - while (audioOutputSelect.firstChild) - audioOutputSelect.removeChild(audioOutputSelect.firstChild) - if (devices.length) { - devices.forEach((deviceInfo) => { - let option = document.createElement('option') - option.text = - deviceInfo.label != null - ? deviceInfo.label - : `speaker ${audioOutputSelect.length + 1}` - option.value = deviceInfo.label - audioOutputSelect.appendChild(option) - }) - - initElement('settings-app-audio-output', 'change', () => { - ipc.send('change-audio-output', audioOutputSelect.value) - }) - - const defaultOuput = devices.find( - (audio) => audio.deviceId === 'default' - ) - if (!audioOutputSelect.value.length) - audioOutputSelect.value = defaultOuput.label - } else { - let option = document.createElement('option') - option.text = __.trans( - 'LABEL_SETTINGS_TAB_GENERAL_AUDIO_NO_DEVICES_FOUND' - ) - option.value = '0' - audioOutputSelect.appendChild(option) - audioOutputSelect.disabled = true - } - - mInit() - }) - -get_audio_output_list() - -function checkCompanionStatus() { - if (settingsProvider.get('settings-companion-server')) - document - .getElementById('companion-server-protect') - .classList.remove('hide') - else - document - .getElementById('companion-server-protect') - .classList.add('hide') -} - -function checkClipboardWatcherStatus() { - if (settingsProvider.get('settings-clipboard-read')) - document - .getElementById('clipboard-always-ask-read') - .classList.remove('hide') - else - document - .getElementById('clipboard-always-ask-read') - .classList.add('hide') -} - -function checkWindows10ServiceStatus() { - if (settingsProvider.get('settings-windows10-media-service')) - document.getElementById('windows-10-show-info').classList.remove('hide') - else document.getElementById('windows-10-show-info').classList.add('hide') -} - -checkCompanionStatus() -checkClipboardWatcherStatus() -checkWindows10ServiceStatus() - -document.addEventListener('DOMContentLoaded', () => { - initElement('settings-keep-background', 'click', null) - initElement('settings-show-notifications', 'click', null) - initElement('settings-start-on-boot', 'click', null) - initElement('settings-start-minimized', 'click', null) - initElement('settings-lyrics-always-top', 'click', null) - initElement('settings-companion-server', 'click', checkCompanionStatus) - initElement('settings-genius-auth-server', 'click', null) - initElement('settings-companion-server-protect', 'click', null) - initElement('settings-windows10-media-service', 'click', () => { - checkWindows10ServiceStatus() - showRelaunchButton() - }) - initElement( - 'settings-windows10-media-service-show-info', - 'click', - showRelaunchButton - ) - initElement('settings-shiny-tray', 'click', () => { - ipc.send('update-tray') - }) - initElement('settings-shiny-tray-song-title-rollable', 'click', () => { - ipc.send('update-tray') - }) - initElement('settings-discord-rich-presence', 'click', showRelaunchButton) - initElement('settings-app-language', 'change', () => { - ipc.send('language-updated') - showRelaunchButton() - }) - initElement('settings-clipboard-read', 'click', () => { - ipc.send('switch-clipboard-watcher') - checkClipboardWatcherStatus() - }) - initElement('titlebar-type', 'change', showRelaunchButton) - initElement('settings-custom-css-page', 'click', null) - initElement('settings-last-fm-scrobbler', 'click', () => { - const login = settingsProvider.get('last-fm-login') - if (login.username === '') - ipc.send('window', { command: 'show-last-fm-login' }) - }) - initElement('settings-rainmeter-web-now-playing', 'click', null) - initElement('settings-enable-double-tapping-show-hide', 'click', null) - initElement('settings-volume-media-keys', 'click', () => { - let enableVolumeMediaKeys = settingsProvider.get( - 'settings-volume-media-keys' - ) - ipc.send('change-accelerator', { - type: 'media-volume-up', - oldValue: enableVolumeMediaKeys ? 'disabled' : 'VolumeUp', - newValue: enableVolumeMediaKeys ? 'VolumeUp' : 'disabled', - }) - ipc.send('change-accelerator', { - type: 'media-volume-down', - oldValue: enableVolumeMediaKeys ? 'disabled' : 'VolumeDown', - newValue: enableVolumeMediaKeys ? 'VolumeDown' : 'disabled', - }) - }) - initElement('settings-decibel-volume', 'click', null) - initElement( - 'settings-disable-hardware-acceleration', - 'click', - showRelaunchButton - ) - - initElement('settings-miniplayer-always-top', 'click', null) - initElement('settings-miniplayer-resizable', 'click', null) - initElement('settings-miniplayer-show-task', 'click', null) - initElement('settings-miniplayer-always-show-controls', 'click', null) - initElement('settings-miniplayer-paint-controls', 'click', null) - initElement('settings-miniplayer-stream-config', 'click', null) - initElement('settings-enable-taskbar-progressbar', 'click', () => { - ipc.send('refresh-progress') - }) - initElement('settings-enable-player-bgcolor', 'click', () => { - ipc.send('set-accent-enabled-state') - }) - - // initElement('settings-enable-shortcut-buttons', 'click') - - initElement('settings-continue-where-left-of', 'click', null) - initElement('settings-skip-track-disliked', 'click', null) - - initElement('settings-clipboard-always-ask-read', 'click', null) - initElement('settings-tray-icon', 'click', showRelaunchButton) - initElement('settings-pause-on-suspend', 'click', null) - initElement('settings-disable-analytics', 'click', showRelaunchButton) - initElement('settings-surround-sound', 'click', showRelaunchButton) - - mInit() - - document.getElementById('content').classList.remove('hide') -}) - -/*if (elementSettingsCompanionApp) { - elementSettingsCompanionApp.addEventListener('click', function() { - window.open(companionUrl, companionWindowTitle, companionWindowSettings) - }) -}*/ - -if (elementRangeZoom) { - elementRangeZoom.addEventListener('input', () => { - document.getElementById('range-zoom-value').innerText = - elementRangeZoom.value - settingsProvider.set('settings-page-zoom', elementRangeZoom.value) - }) -} - -if (elementRangeSkipTrackShorterThan) - elementRangeSkipTrackShorterThan.addEventListener('input', () => { - document.getElementById( - 'range-skip-track-shorter-than-value' - ).innerText = - elementRangeSkipTrackShorterThan.value === 0 - ? `(Disabled) ${elementRangeSkipTrackShorterThan.value}` - : elementRangeSkipTrackShorterThan.value - settingsProvider.set( - 'settings-skip-track-shorter-than', - elementRangeSkipTrackShorterThan.value - ) - }) - -if (elementBtnOpenPageEditor) - elementBtnOpenPageEditor.addEventListener('click', () => { - ipc.send('window', { command: 'show-editor-theme' }) - }) - -if (elementBtnLastFmLogin) - elementBtnLastFmLogin.addEventListener('click', () => { - ipc.send('window', { command: 'show-last-fm-login' }) - }) - -if (elementBtnDiscordSettings) - elementBtnDiscordSettings.addEventListener('click', () => { - ipc.send('window', { command: 'show-discord-settings' }) - }) - -if (elementBtnShortcutButtonsSettings) - elementBtnShortcutButtonsSettings.addEventListener('click', () => { - ipc.send('window', { command: 'show-shortcut-buttons-settings' }) - }) - -if (elementBtnOpenCompanionServer) - elementBtnOpenCompanionServer.addEventListener('click', async () => { - await shell.openExternal(`http://localhost:9863`) - }) - -if (elementBtnOpenGeniusAuthServer) - elementBtnOpenGeniusAuthServer.addEventListener('click', async () => { - await shell.openExternal(`http://localhost:9864/login`) - }) - -if (elementBtnAppRelaunch) - elementBtnAppRelaunch.addEventListener('click', () => { - relaunch() - }) - -if (!isMac()) { - const macSpecificNodes = document.getElementsByClassName('macos-specific') - for (let i = 0; i < macSpecificNodes.length; i++) - macSpecificNodes.item(i).classList.add('hide') -} - -if (!isWindows()) { - const windowsSpecificNodes = document.getElementsByClassName( - 'windows-specific' - ) - for (let i = 0; i < windowsSpecificNodes.length; i++) - windowsSpecificNodes.item(i).classList.add('hide') -} - -if (isWindows()) { - const os = require('os') - if (!os.release().startsWith('10.')) { - const windows10SpecificNodes = document.getElementsByClassName( - 'windows10-specific' - ) - for (let i = 0; i < windows10SpecificNodes.length; i++) - windows10SpecificNodes.item(i).classList.add('hide') - } -} - -loadSettings() -__.loadi18n() -loadCustomKeys() - -function showRelaunchButton() { - elementBtnAppRelaunch.classList.remove('hide') -} - -/** - * Initialize element and create listener for it - * @param {*} elementName - * @param {*} eventType - * @param {*} fn - */ -function initElement(elementName, eventType, fn) { - const element = document.getElementById(elementName) - - if (element) { - loadValue(element, elementName, eventType) - createListener(element, elementName, eventType, fn) - } -} - -/** - * - * @param {*} element - * @param {*} settingsName - * @param {*} eventType - * @param {*} fn - */ -function createListener(element, settingsName, eventType, fn) { - element.addEventListener(eventType, (e) => { - switch (eventType) { - case 'click': - settingsProvider.set(settingsName, e.target.checked) - /*ipc.send('settings-value-changed', { - key: settingsName, - value: this.checked, - })*/ - break - - case 'change': - settingsProvider.set(settingsName, e.target.value) - /*ipc.send('settings-value-changed', { - key: settingsName, - value: this.value, - })*/ - break - } - fn && fn() - }) -} - -function loadValue(element, settingsName, eventType) { - switch (eventType) { - case 'click': - element.checked = settingsProvider.get(settingsName) || false - break - - case 'change': - element.value = settingsProvider.get(settingsName) - break - } -} - -function loadSettings() { - // readLocales(); - - const settingsZoom = settingsProvider.get('settings-page-zoom') - if (settingsZoom) { - document.getElementById('range-zoom').value = settingsZoom - document.getElementById('range-zoom-value').innerText = settingsZoom - } - - const settingsSkipTrackShorterThan = settingsProvider.get( - 'settings-skip-track-shorter-than' - ) - if (settingsSkipTrackShorterThan) { - document.getElementById( - 'range-skip-track-shorter-than' - ).value = settingsSkipTrackShorterThan - document.getElementById( - 'range-skip-track-shorter-than-value' - ).innerText = - settingsSkipTrackShorterThan === 0 - ? `(Disabled) ${settingsSkipTrackShorterThan}` - : settingsSkipTrackShorterThan - } - - document.getElementById('app-version').innerText = remote.app.getVersion() - - document.getElementById( - 'label-settings-companion-server-token' - ).innerText = settingsProvider.get('settings-companion-server-token') - - // Disable unsupported platforms which may get an API later - if (!['darwin', 'win32'].includes(process.platform)) { - const startOnBootEl = document.getElementById('settings-start-on-boot') - startOnBootEl.checked = false - startOnBootEl.setAttribute('disabled', 'disabled') - } -} - -function relaunch() { - remote.app.relaunch() - remote.app.exit(0) -} - -// TODO: Unused function? -function readLocales() { - fs.readdir(__dirname, (err, files) => { - console.log(files) - }) -} - -function mInit() { - M.FormSelect.init(document.querySelectorAll('select'), {}) - M.Tabs.init(document.getElementsByClassName('tabs')[0], {}) - - const elems = document.querySelectorAll('.modal') - M.Modal.init(elems, {}) -} - -function replaceAcceleratorText(text) { - text = text.replace(/\+/g, ' + ') - - if (text.indexOf('CmdOrCtrl') !== -1) - if (isMac()) text = text.replace('CmdOrCtrl', 'Cmd') - else text = text.replace('CmdOrCtrl', 'Ctrl') - - if (text.indexOf('Meta') !== -1 && isWindows()) - text = text.replace('Meta', 'Windows') - - text = text.replace('numadd', '+') - - text = text.replace('numsub', '-') - - text = text.replace('nummult', '*') - - text = text.replace('numdiv', '/') - - return text -} - -function validateKey(e) { - console.log(e) - - if (e.key === ' ') return 'Space' - - if (e.code === 'NumpadEnter') return 'Enter' - - if (e.code === 'NumpadAdd') return 'numadd' - - if (e.code === 'NumpadSubtract') return 'numsub' - - if (e.code === 'NumpadDecimal') return 'numdec' - - if (e.code === 'NumpadMultiply') return 'nummult' - - if (e.code === 'NumpadDivide') return 'numdiv' - - if (e.code === 'ArrowUp') return 'Up' - - if (e.code === 'ArrowDown') return 'Down' - - if (e.code === 'ArrowLeft') return 'Left' - - if (e.code === 'ArrowRight') return 'Right' - - if (e.keyCode >= 65 && e.keyCode <= 90) return e.key.toUpperCase() - - return e.key -} - -function preventSpecialKeys(e) { - return !( - e.key === 'Meta' || - e.key === 'Command' || - e.key === 'Control' || - e.key === 'Alt' || - e.key === 'Shift' || - e.key === 'AltGraph' || - e.key === 'MediaPlayPause' || - e.key === 'MediaTrackPrevious' || - e.key === 'MediaTrackNext' || - e.key === 'MediaStop' - ) -} - -document - .querySelector('#modalEditAccelerator') - .addEventListener('keyup', (e) => { - if (preventSpecialKeys(e)) { - keyBindings = '' - - if (e.metaKey) keyBindings += 'Meta+' - - if (e.ctrlKey) keyBindings += 'CmdOrCtrl+' - - if (e.altKey) keyBindings += 'Alt+' - - if (e.shiftKey) keyBindings += 'Shift+' - - keyBindings += validateKey(e) - document.querySelector( - '#modalEditAcceleratorKeys' - ).innerText = replaceAcceleratorText(keyBindings) - } - }) - -function loadCustomKeys() { - document.querySelector( - '#settings-accelerators_media-play-pause' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-play-pause'] - ) - document.querySelector( - '#settings-accelerators_media-track-next' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-track-next'] - ) - document.querySelector( - '#settings-accelerators_media-track-previous' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-track-previous'] - ) - document.querySelector( - '#settings-accelerators_media-track-like' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-track-like'] - ) - document.querySelector( - '#settings-accelerators_media-track-dislike' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-track-dislike'] - ) - - document.querySelector( - '#settings-accelerators_media-volume-up' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-volume-up'] - ) - document.querySelector( - '#settings-accelerators_media-volume-down' - ).innerText = replaceAcceleratorText( - settingsAccelerators['media-volume-down'] - ) - document.querySelector( - '#settings-accelerators_miniplayer-open-close' - ).innerText = replaceAcceleratorText( - settingsAccelerators['miniplayer-open-close'] - ) -} - -function resetAcceleratorsText() { - document.querySelector('#modalEditAcceleratorKeys').innerText = `${__.trans( - 'LABEL_SETTINGS_TAB_SHORTCUTS_PRESS_ANY_KEYS' - )}...` -} - -document - .querySelector('#btn-accelerator-media-play-pause') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-play-pause' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-track-next') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-track-next' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-track-previous') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-track-previous' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-track-like') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-track-like' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-track-dislike') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-track-dislike' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-volume-up') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-volume-up' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-media-volume-down') - .addEventListener('click', () => { - typeAcceleratorSelected = 'media-volume-down' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-accelerator-miniplayer-open-close') - .addEventListener('click', () => { - typeAcceleratorSelected = 'miniplayer-open-close' - resetAcceleratorsText() - }) - -document - .querySelector('#btn-reload-audio-devices') - .addEventListener('click', () => { - get_audio_output_list() - }) - -document.querySelector('#saveAccelerator').addEventListener('click', () => { - ipc.send('change-accelerator', { - type: typeAcceleratorSelected, - oldValue: settingsAccelerators[typeAcceleratorSelected], - newValue: keyBindings, - }) - - settingsAccelerators[typeAcceleratorSelected] = keyBindings - - settingsProvider.set('settings-accelerators', settingsAccelerators) - - loadCustomKeys() -}) - -document.querySelector('#disableAccelerator').addEventListener('click', () => { - ipc.send('change-accelerator', { - type: typeAcceleratorSelected, - oldValue: settingsAccelerators[typeAcceleratorSelected], - newValue: 'disabled', - }) - - settingsAccelerators[typeAcceleratorSelected] = 'disabled' - - settingsProvider.set('settings-accelerators', settingsAccelerators) - - loadCustomKeys() -}) - -document.querySelector('#release-notes').addEventListener('click', () => { - ipc.send('window', { command: 'show-changelog' }) -}) - -document.querySelectorAll('[externalURL]').forEach((element) => { - var externalURL = element.getAttribute('externalURL') - element.addEventListener('click', () => { - shell.openExternal(externalURL) - }) -}) diff --git a/src/pages/settings/sub/discord/discord_settings.css b/src/pages/settings/sub/discord/discord_settings.css deleted file mode 100644 index 3d0c6191a..000000000 --- a/src/pages/settings/sub/discord/discord_settings.css +++ /dev/null @@ -1,233 +0,0 @@ -body { - background-color: #1D1D1D; -} - -label { - color: #fff !important; -} - -tbody, -td, -th { - padding: 10px 5px; -} - -ul, -li { - background-color: transparent !important; -} - -ul, -li, -a { - color: #eee !important; -} - -.tabs .tab a:focus, -.tabs .tab a:focus.active { - background-color: rgba(255, 255, 255, 0.1); -} - -.indicator { - background-color: #f44336 !important; -} - -.switch label input[type="checkbox"]:checked+.lever { - background-color: #d32f2f; -} - -.switch label input[type="checkbox"]:checked+.lever:after { - background-color: #f44336; -} - -.dropdown-trigger { - color: #f44336 !important; - height: 26px !important; - margin: 0 !important; - padding: 0 !important; -} - -.dropdown-content li>a, -.dropdown-content li>span { - color: #fff !important; -} - -:disabled { - color: #666 !important; - border: none !important; -} - -.select-dropdown.dropdown-content { - background-color: black !important; - max-height: 300px !important; -} - -.select-dropdown.dropdown-content li.selected { - background-color: #f44336 !important; -} - -.select-dropdown.dropdown-content li:hover { - background-color: #f44336 !important; - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span { - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span:hover { - color: #fff !important; -} - -input[type="range"] { - border: 1px solid #d32f2f; -} - -input[type="range"]::-webkit-slider-thumb { - background-color: #f44336; -} - -input[type="range"]::-moz-range-thumb { - background-color: #f44336; -} - -input[type="range"]::-ms-thumb { - background-color: #f44336; -} - -input[type="range"]+.thumb { - background-color: #fff; -} - -input[type="range"]+.thumb.active .value { - color: #f44336; -} - -input[type="range"]::-webkit-slider-runnable-track { - background: #d32f2f; -} - -.select-wrapper input.select-dropdown { - text-align: center; - border: none; -} - -.select-wrapper input.select-dropdown:focus { - border: none; -} - -.select-wrapper input.select-dropdown { - text-align: right; - right: 14px; -} - -.caret { - display: none; -} - -.hide { - display: none; -} - -.divider { - height: 1px; - border-top: 1px solid #ddd; - text-align: center; -} - -.media-icons { - vertical-align: sub; - font-size: 16px; -} - -.tabs-vertical .tabs { - height: auto; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} - -.tabs-vertical .tab { - width: 100%; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: left; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: capitalize; - text-overflow: ellipsis; -} - -.tabs-vertical .tab .active { - -moz-transition: border-color .5s ease; - -o-transition: border-color .5s ease; - -webkit-transition: border-color .5s ease; - transition: border-color .5s ease; - border-left: 3px solid #d32f2f; - color: #3f51b5; - background-color: rgba(255,255,255,0.1) !important; -} - -.tabs-vertical .tab a { - border-left: 3px solid transparent; - color: #3f51b5; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - -webkit-transition: color 0.28s ease; - -moz-transition: color 0.28s ease; - -o-transition: color 0.28s ease; - -ms-transition: color 0.28s ease; - transition: color 0.28s ease; -} - -.tabs-vertical .tab a:hover { - color: #8591d5; -} - -.tabs-vertical .tab.disabled a { - color: #8591d5; - cursor: default; -} - -.tabs-vertical .indicator { - display: none; -} - -.mt-1 { - margin-top: 0.7rem; -} - -.mt-2 { - margin-top: 0.9rem; -} - -.bottom { - position: absolute; - bottom: 16px; - right: 12px -} - - -.dropdown-trigger { - min-width: 300px; - font-size: 13px !important; -} - -.btn-tiny { - padding: 0 2px; - height: auto; - line-height: normal; -} - -input[type=range]+.thumb { - display: none; -} \ No newline at end of file diff --git a/src/pages/settings/sub/discord/discord_settings.html b/src/pages/settings/sub/discord/discord_settings.html deleted file mode 100644 index ac82e6f00..000000000 --- a/src/pages/settings/sub/discord/discord_settings.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - Discord Settings - - - - - - - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - -
- - -
- -
-
- - -
- -
-
- - -
- -
-
- - -
- -
-
-
-
-
-
-
- - - - - diff --git a/src/pages/settings/sub/discord/discord_settings.js b/src/pages/settings/sub/discord/discord_settings.js deleted file mode 100644 index d0474851f..000000000 --- a/src/pages/settings/sub/discord/discord_settings.js +++ /dev/null @@ -1,36 +0,0 @@ -const settingsProvider = require('../../../../providers/settingsProvider') -const __ = require('../../../../providers/translateProvider') - -//var, because we have to re-assign the variable -var discordSettings = null - -__.loadi18n() - -function loadSettings() { - discordSettings = settingsProvider.get('discord-presence-settings') - document.getElementById('settings-discord-show-title').checked = - discordSettings.details - document.getElementById('settings-discord-show-artist').checked = - discordSettings.state - document.getElementById('settings-discord-show-time').checked = - discordSettings.time - document.getElementById('settings-discord-show-idle').checked = - discordSettings.hideIdle -} - -function save() { - settingsProvider.set('discord-presence-settings', { - details: document.getElementById('settings-discord-show-title').checked, - state: document.getElementById('settings-discord-show-artist').checked, - time: document.getElementById('settings-discord-show-time').checked, - hideIdle: document.getElementById('settings-discord-show-idle').checked, - }) -} - -document.addEventListener('DOMContentLoaded', function () { - loadSettings() -}) - -document.querySelectorAll('input').forEach((input) => { - input.addEventListener('click', () => save()) -}) diff --git a/src/pages/settings/sub/last-fm/last-fm-login.html b/src/pages/settings/sub/last-fm/last-fm-login.html deleted file mode 100644 index adb1c59c2..000000000 --- a/src/pages/settings/sub/last-fm/last-fm-login.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -
-
-
- - -
-
- - -
-
-
- -
-
- - - - - - - - diff --git a/src/pages/settings/sub/last-fm/last-fm-login.js b/src/pages/settings/sub/last-fm/last-fm-login.js deleted file mode 100644 index 5eea10df8..000000000 --- a/src/pages/settings/sub/last-fm/last-fm-login.js +++ /dev/null @@ -1,18 +0,0 @@ -const __ = require('../../../../providers/translateProvider') -const scrobbleProvider = require('../../../../providers/scrobblerProvider') -__.loadi18n() - -var login = scrobbleProvider.getLogin() - -if (login) { - document.getElementById('username').value = login.username - document.getElementById('password').value = login.password -} - -document.getElementById('btn-save').addEventListener('click', function () { - var username = document.getElementById('username').value - var password = document.getElementById('password').value - scrobbleProvider.setLogin(username, password) - - scrobbleProvider.getToken() -}) diff --git a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.css b/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.css deleted file mode 100644 index 3d0c6191a..000000000 --- a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.css +++ /dev/null @@ -1,233 +0,0 @@ -body { - background-color: #1D1D1D; -} - -label { - color: #fff !important; -} - -tbody, -td, -th { - padding: 10px 5px; -} - -ul, -li { - background-color: transparent !important; -} - -ul, -li, -a { - color: #eee !important; -} - -.tabs .tab a:focus, -.tabs .tab a:focus.active { - background-color: rgba(255, 255, 255, 0.1); -} - -.indicator { - background-color: #f44336 !important; -} - -.switch label input[type="checkbox"]:checked+.lever { - background-color: #d32f2f; -} - -.switch label input[type="checkbox"]:checked+.lever:after { - background-color: #f44336; -} - -.dropdown-trigger { - color: #f44336 !important; - height: 26px !important; - margin: 0 !important; - padding: 0 !important; -} - -.dropdown-content li>a, -.dropdown-content li>span { - color: #fff !important; -} - -:disabled { - color: #666 !important; - border: none !important; -} - -.select-dropdown.dropdown-content { - background-color: black !important; - max-height: 300px !important; -} - -.select-dropdown.dropdown-content li.selected { - background-color: #f44336 !important; -} - -.select-dropdown.dropdown-content li:hover { - background-color: #f44336 !important; - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span { - color: #fff !important; -} - -.select-dropdown.dropdown-content li.selected span:hover { - color: #fff !important; -} - -input[type="range"] { - border: 1px solid #d32f2f; -} - -input[type="range"]::-webkit-slider-thumb { - background-color: #f44336; -} - -input[type="range"]::-moz-range-thumb { - background-color: #f44336; -} - -input[type="range"]::-ms-thumb { - background-color: #f44336; -} - -input[type="range"]+.thumb { - background-color: #fff; -} - -input[type="range"]+.thumb.active .value { - color: #f44336; -} - -input[type="range"]::-webkit-slider-runnable-track { - background: #d32f2f; -} - -.select-wrapper input.select-dropdown { - text-align: center; - border: none; -} - -.select-wrapper input.select-dropdown:focus { - border: none; -} - -.select-wrapper input.select-dropdown { - text-align: right; - right: 14px; -} - -.caret { - display: none; -} - -.hide { - display: none; -} - -.divider { - height: 1px; - border-top: 1px solid #ddd; - text-align: center; -} - -.media-icons { - vertical-align: sub; - font-size: 16px; -} - -.tabs-vertical .tabs { - height: auto; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} - -.tabs-vertical .tab { - width: 100%; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - display: block; - float: left; - text-align: left; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: capitalize; - text-overflow: ellipsis; -} - -.tabs-vertical .tab .active { - -moz-transition: border-color .5s ease; - -o-transition: border-color .5s ease; - -webkit-transition: border-color .5s ease; - transition: border-color .5s ease; - border-left: 3px solid #d32f2f; - color: #3f51b5; - background-color: rgba(255,255,255,0.1) !important; -} - -.tabs-vertical .tab a { - border-left: 3px solid transparent; - color: #3f51b5; - display: block; - width: 100%; - height: 100%; - text-overflow: ellipsis; - overflow: hidden; - -webkit-transition: color 0.28s ease; - -moz-transition: color 0.28s ease; - -o-transition: color 0.28s ease; - -ms-transition: color 0.28s ease; - transition: color 0.28s ease; -} - -.tabs-vertical .tab a:hover { - color: #8591d5; -} - -.tabs-vertical .tab.disabled a { - color: #8591d5; - cursor: default; -} - -.tabs-vertical .indicator { - display: none; -} - -.mt-1 { - margin-top: 0.7rem; -} - -.mt-2 { - margin-top: 0.9rem; -} - -.bottom { - position: absolute; - bottom: 16px; - right: 12px -} - - -.dropdown-trigger { - min-width: 300px; - font-size: 13px !important; -} - -.btn-tiny { - padding: 0 2px; - height: auto; - line-height: normal; -} - -input[type=range]+.thumb { - display: none; -} \ No newline at end of file diff --git a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.html b/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.html deleted file mode 100644 index ba49461bc..000000000 --- a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Shortcut buttons - - - - - - - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - -
- - - -
- -
-
- - - -
- -
-
- - - -
- -
-
- - - -
- -
-
-
-
-
-
-
- - - - - diff --git a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.js b/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.js deleted file mode 100644 index 87c428a2b..000000000 --- a/src/pages/settings/sub/shortcut-buttons/shortcut-buttons-settings.js +++ /dev/null @@ -1,41 +0,0 @@ -const settingsProvider = require('../../../../providers/settingsProvider') -const __ = require('../../../../providers/translateProvider') - -var shortcutSettings = null - -__.loadi18n() - -function loadSettings() { - shortcutSettings = settingsProvider.get('settings-shortcut-buttons') - document.getElementById('settings-shortcut-show-miniplayer').checked = - shortcutSettings.miniplayer - document.getElementById('settings-shortcut-show-lyrics').checked = - shortcutSettings.lyrics - document.getElementById('settings-shortcut-show-add-to-library').checked = - shortcutSettings['add-to-library'] - document.getElementById('settings-shortcut-show-add-to-playlist').checked = - shortcutSettings['add-to-playlist'] -} - -function save() { - settingsProvider.set('settings-shortcut-buttons', { - miniplayer: document.getElementById('settings-shortcut-show-miniplayer') - .checked, - lyrics: document.getElementById('settings-shortcut-show-lyrics') - .checked, - 'add-to-library': document.getElementById( - 'settings-shortcut-show-add-to-library' - ).checked, - 'add-to-playlist': document.getElementById( - 'settings-shortcut-show-add-to-playlist' - ).checked, - }) -} - -document.addEventListener('DOMContentLoaded', function () { - loadSettings() -}) - -document.querySelectorAll('input').forEach((input) => { - input.addEventListener('click', () => save()) -}) diff --git a/src/pages/shared/window-buttons/shiny-tray-helper.js b/src/pages/shared/window-buttons/shiny-tray-helper.js deleted file mode 100644 index 823626f0a..000000000 --- a/src/pages/shared/window-buttons/shiny-tray-helper.js +++ /dev/null @@ -1,92 +0,0 @@ -const { remote, ipcRenderer: ipc } = require('electron') -const electronStore = require('electron-store') -const store = new electronStore() -const status = remote.getGlobal('sharedObj') -const icons = require('../../../assets/icons_for_shiny_tray') - -let icon_set = icons.bright - -const canvas = document.createElement('canvas') -canvas.height = 32 -canvas.width = 150 -const ctx = canvas.getContext('2d') - -let saved_title = '' -let elapsed = 0 -let textWidth = 0 -let rollInterval = null - -function render_tray() { - ctx.clearRect(0, 0, canvas.width, canvas.height) - ctx.font = '14px Arial' - if (store.get('settings-shiny-tray-dark', false)) { - ctx.fillStyle = 'white' - icon_set = icons.dark - } else { - ctx.fillStyle = 'black' - icon_set = icons.bright - } - if (saved_title != status.title) { - saved_title = status.title - elapsed = 0 - } - textWidth = ctx.measureText(saved_title + ' ').width - if (status.rollable && textWidth > 105) { - // 105 comes from 135 - 30 - - elapsed += 3 - ctx.fillText(saved_title + ' ' + saved_title, 30 - elapsed, 21) - ctx.clearRect(0, 0, 30, canvas.height) - ctx.clearRect(135, 0, canvas.width - 135, canvas.height) - if (elapsed > textWidth) elapsed = 0 - if (!rollInterval) { - rollInterval = setInterval(() => { - render_tray() - }, 200) - } - } else { - if (rollInterval) clearInterval(rollInterval) - rollInterval = null - ctx.fillText(cutstr(status.title, 14), 30, 21) - elapsed = 0 - } - - // console.log(arg) - ctx.drawImage(icon_set.icons, 8, 8, 16, 16) - if (status.paused) ctx.drawImage(icon_set.play, 135, 6, 20, 20) - else ctx.drawImage(icon_set.pause, 135, 6, 20, 20) - - ipc.send('updated-tray-image', canvas.toDataURL('image/png', 1)) -} - -ipc.on('update-status-bar', () => { - render_tray() -}) - -setTimeout(() => { - ipc.send('register-renderer') -}, 1000) - -ipc.on('is-dev', (event, args) => { - if (args) document.title = document.title + ' DEV' -}) - -function cutstr(str, len) { - let str_length = 0 - let str_len - let str_cut = String() - str_len = str.length - for (let i = 0; i < str_len; i++) { - const a = str.charAt(i) - str_length++ - if (escape(a).length > 4) { - str_length++ - } - str_cut = str_cut.concat(a) - if (str_length >= len) { - str_cut = str_cut.concat('...') - return str_cut - } - } - if (str_length < len) return str -} diff --git a/src/pages/shared/window-buttons/window-buttons.css b/src/pages/shared/window-buttons/window-buttons.css deleted file mode 100644 index 5feebe779..000000000 --- a/src/pages/shared/window-buttons/window-buttons.css +++ /dev/null @@ -1,9 +0,0 @@ -html, -body { - margin: 0; - padding: 0; -} - -.tiny-margin { - margin-right: 6px !important; -} \ No newline at end of file diff --git a/src/pages/shared/window-buttons/window-buttons.html b/src/pages/shared/window-buttons/window-buttons.html deleted file mode 100644 index 65067119c..000000000 --- a/src/pages/shared/window-buttons/window-buttons.html +++ /dev/null @@ -1,124 +0,0 @@ - - - YouTube Music - - - - - - - - - - - -
-
- - -
- -
-
-
-
- - -
-
- -
-
- remove -
-
- crop_square - filter_none -
-
- close -
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - - diff --git a/src/pages/shared/window-buttons/window-buttons.js b/src/pages/shared/window-buttons/window-buttons.js deleted file mode 100644 index 4ff8762ff..000000000 --- a/src/pages/shared/window-buttons/window-buttons.js +++ /dev/null @@ -1,126 +0,0 @@ -const { remote, ipcRenderer: ipc } = require('electron') -const electronStore = require('electron-store') -const store = new electronStore() -const { isWindows, isMac, isLinux } = require('../../../utils/systemInfo') -const currentWindow = remote.getCurrentWindow() - -const winElement = document.getElementById('win') -const macElement = document.getElementById('mac') - -let webview = document.querySelector('webview') - -if (store.get('titlebar-type', 'nice') !== 'nice') { - document.getElementById('nice-titlebar').style.height = '15px' - document - .getElementById('nice-titlebar') - .removeChild(document.getElementById('nice-titlebar').firstChild) - - document.getElementById('webview').style.height = '100vh' - document.getElementById('iframe').style.height = '100vh' -} else { - if (isMac()) { - winElement.remove() - macElement.classList.remove('hide') - } else if (isWindows()) { - macElement.remove() - winElement.classList.remove('hide') - } else if (isLinux()) { - winElement.remove() - macElement.remove() - } - document.getElementById('webview').style.height = '95vh' - document.getElementById('iframe').style.height = '95vh' - document.getElementById('content').style.marginTop = '5vh' -} - -ipc.on('window-is-maximized', (_, value) => { - if (value) { - document.getElementById('icon_maximize').classList.add('hide') - document.getElementById('icon_restore').classList.remove('hide') - } else { - document.getElementById('icon_restore').classList.add('hide') - document.getElementById('icon_maximize').classList.remove('hide') - } -}) - -document.addEventListener('DOMContentLoaded', () => { - checkUrlParams() - - let btnMinimize = document.getElementById('btn-minimize') - let btnMaximize = document.getElementById('btn-maximize') - let btnClose = document.getElementById('btn-close') - - if (btnMinimize) - btnMinimize.addEventListener('click', () => { - currentWindow.minimize() - }) - - if (btnMaximize) - btnMaximize.addEventListener('click', () => { - if (!currentWindow.isMaximized()) currentWindow.maximize() - else currentWindow.unmaximize() - }) - - if (btnClose) { - btnClose.addEventListener('click', () => { - currentWindow.close() - }) - } - - document.getElementById('loading').classList.add('hide') - - //ipc.send(`debug`, `webview ${webview.title}`) -}) - -// ENABLE FOR DEBUG -// webview.addEventListener("did-start-loading", () => { webview.openDevTools(); }); - -function checkUrlParams() { - const params = new URL(window.location).searchParams - - let page = params.get('page') - let icon = params.get('icon') - let title = params.get('title') - let hide = params.get('hide') - let trusted = params.get('trusted') - let script = params.get('script') - - if (trusted) { - webview.classList.add('hide') - webview = document.getElementById('iframe') - webview.classList.remove('hide') - } - - if (page) webview.src = `../../${page}.html` - - if (script) { - script = script.split(',') - - script.forEach((src) => { - script_block = document.createElement('script') - script_block.src = `./${src}.js` - document.body.append(script_block) - }) - } - - if (icon) { - let elIcon = document.getElementById('icon') - if (elIcon) elIcon.innerText = icon - } - - if (title) { - let elTitle = document.getElementById('window-title') - if (elTitle) elTitle.innerText = title - - document.title = title - } - - if (hide) { - hide = hide.split(',') - - hide.forEach((element) => { - let elHide = document.getElementById(element) - if (elHide) elHide.classList.add('hide') - }) - } -} diff --git a/src/providers/analyticsProvider.js b/src/providers/analyticsProvider.js deleted file mode 100644 index 125a9cfe3..000000000 --- a/src/providers/analyticsProvider.js +++ /dev/null @@ -1,45 +0,0 @@ -const { app } = require('electron') -const Analytics = require('electron-google-analytics') -const analytics = new Analytics.default('UA-127400126-1') -const { v4: uuid } = require('uuid') -const settingsProvider = require('./settingsProvider') -let userId = settingsProvider.get('uuid') - -if (userId === undefined) { - userId = uuid() - settingsProvider.set('uuid', userId) -} - -function setAnalyticsEvent(from, action, label, value) { - analytics - .event(action, from, { - evLabel: label, - evValue: value, - clientID: userId, - }) - .then() - .catch((_) => { - console.log('error setAnalyticsEvent') - }) -} - -function setAnalyticsScreen(from) { - analytics - .screen( - 'YouTube Music Desktop App', - app.getVersion(), - 'app.ytmd', - 'app.ytmd', - from, - userId - ) - .then() - .catch((_) => { - console.log('error setAnalyticsScreen') - }) -} - -module.exports = { - setEvent: setAnalyticsEvent, - setScreen: setAnalyticsScreen, -} diff --git a/src/providers/assetsProvider.js b/src/providers/assetsProvider.js deleted file mode 100644 index e7a9a8b91..000000000 --- a/src/providers/assetsProvider.js +++ /dev/null @@ -1,26 +0,0 @@ -const { app } = require('electron') -const path = require('path') - -const systemInfo = require('../utils/systemInfo') - -/** - * Get local asset - * @param {*} asset - */ -function getLocal(asset) { - return path.join(app.getAppPath(), 'src/assets', `${asset}`) -} - -function getIcon(assetPath) { - let localAsset = path.join(app.getAppPath(), 'src/assets', `${assetPath}`) - - return systemInfo.isWindows() ? `${localAsset}.ico` : `${localAsset}.png` -} - -function getExternal() {} - -module.exports = { - getLocal: getLocal, - getExternal: getExternal, - getIcon: getIcon, -} diff --git a/src/providers/companionServer.js b/src/providers/companionServer.js deleted file mode 100644 index 8ea14519b..000000000 --- a/src/providers/companionServer.js +++ /dev/null @@ -1,512 +0,0 @@ -const { ipcMain, app } = require('electron') -const http = require('http') -const os = require('os') -const networkInterfaces = os.networkInterfaces() -const qrcode = require('qrcode-generator') -const infoPlayerProvider = require('../providers/infoPlayerProvider') -const settingsProvider = require('../providers/settingsProvider') - -const ip = '0.0.0.0' -const port = 9863 -const hostname = os.hostname() - -const pattIgnoreInterface = /(Loopback|lo$|virtual|wsl|vEthernet|Default Switch|VMware|Adapter|Hamachi)\w*/gim - -let totalConnections = 0 -let timerTotalConections -let serverInterfaces = [] - -function infoApp() { - return { - version: app.getVersion(), - } -} -function infoServer() { - return { - name: hostname, - listen: serverInterfaces, - port: port, - isProtected: - settingsProvider.get('settings-companion-server-protect') || false, - connections: totalConnections, - } -} - -function fetchNetworkInterfaces() { - serverInterfaces = Object.entries(networkInterfaces) - .filter(([interfaces]) => !pattIgnoreInterface.test(interfaces)) - .map(([name, value]) => { - value = value.filter((data) => { - return data.family === 'IPv4' && data.internal === false - }) - return { - name: name, - ip: value.length ? value[0].address : '', - isProtected: infoServer().isProtected, - } - }) -} - -const serverFunction = (req, res) => { - if (req.url === '/') { - let collection = '' - let isProtected = infoServer().isProtected - - serverInterfaces.forEach((value) => { - let qr = qrcode(0, 'H') - value.hostname = hostname - qr.addData(JSON.stringify(value)) - qr.make() - - // TODO: This is quite messy - collection += ` -
-
-
-
-
-
- QR Code -
-
-

${value.name}

-
${ - value.ip - }
-
-
-
-
-
-
` - }) - - res.setHeader('Content-Type', 'text/html; charset=utf-8') - res.setHeader('Access-Control-Allow-Origin', '*') - res.writeHead(200) - - res.write(` - - YTMDesktop Remote Control - - - - - - - -

YTMDesktop Remote Control

- -
-
-
-
- Track cover image -
-
-
-

${ - infoPlayerProvider.getTrackInfo().title - }

- ${infoPlayerProvider.getTrackInfo().author} -
-
-
-
-
- -
- - ${collection} - -
- - - - - - `) - - res.end() - } else { - res.setHeader('Content-Type', 'text/json; charset=utf-8') - res.setHeader('Access-Control-Allow-Origin', '*') - } - - if (req.url === '/query') { - if (req.method === 'GET') { - let data = { - player: infoPlayerProvider.getPlayerInfo(), - track: infoPlayerProvider.getTrackInfo(), - /*queue: infoPlayerProvider.getQueueInfo(), - playlist: infoPlayerProvider.getPlaylistInfo(), - lyrics: infoPlayerProvider.getLyricsInfo(),*/ - } - res.write(JSON.stringify(data)) - res.end() - } - - if (req.method === 'POST') { - let body = [] - - req.on('data', (chunk) => { - body.push(chunk) - }).on('end', () => { - try { - body = Buffer.concat(body).toString() - let { command, value } = JSON.parse(body) - - if ( - settingsProvider.get( - 'settings-companion-server-protect' - ) - ) { - try { - let headerAuth = req.headers.authorization - let authToken = headerAuth - .split(' ')[1] - .toUpperCase() - - if ( - authToken === - settingsProvider.get( - 'settings-companion-server-token' - ) - ) - execCmd(command, value) - else { - res.writeHead(401) - res.end( - JSON.stringify({ error: 'Unathorized' }) - ) - } - } catch (_) { - res.writeHead(400) - res.end( - JSON.stringify({ error: 'No token provided' }) - ) - } - } else execCmd(command, value) - - res.end(body) - } catch (_) { - res.end( - JSON.stringify({ - error: 'error to execute command', - }) - ) - } - }) - } - } - - if (req.url === '/query/player') - if (req.method === 'GET') { - res.write(JSON.stringify(infoPlayerProvider.getPlayerInfo())) - res.end() - } - - if (req.url === '/query/track') - if (req.method === 'GET') { - res.write(JSON.stringify(infoPlayerProvider.getTrackInfo())) - res.end() - } - - if (req.url === '/query/queue') - if (req.method === 'GET') { - res.write(JSON.stringify(infoPlayerProvider.getQueueInfo())) - res.end() - } - - if (req.url === '/query/playlist') - if (req.method === 'GET') { - res.write(JSON.stringify(infoPlayerProvider.getPlaylistInfo())) - res.end() - } - - if (req.url === '/query/lyrics') - if (req.method === 'GET') { - res.write(JSON.stringify(infoPlayerProvider.getLyricsInfo())) - res.end() - } - - if (req.url === '/info') - if (req.method === 'GET') { - const result = { - app: infoApp(), - server: infoServer(), - } - res.write(JSON.stringify(result)) - res.end() - } -} - -const server = http.createServer(serverFunction) - -function canConnect(socket) { - let clientPassword = socket.handshake.headers.password || '' - let clientHost = socket.handshake.address - let clientIsLocalhost = clientHost === '127.0.0.1' - - let serverPassword = settingsProvider.get('settings-companion-server-token') - - return !( - infoServer().isProtected && - clientIsLocalhost === false && - clientPassword !== serverPassword - ) -} - -function start() { - try { - server.listen(port, ip) - const io = require('socket.io')(server) - - timerTotalConections = setInterval(() => { - totalConnections = Object.keys(io.sockets.sockets).length - - if (totalConnections) - io.emit('tick', infoPlayerProvider.getAllInfo()) - }, 500) - - io.on('connection', (socket) => { - if (!canConnect(socket)) socket.disconnect() - - socket.on('media-commands', (cmd, value) => execCmd(cmd, value)) - - socket.on('retrieve-info', () => - socket.emit('info', { app: infoApp(), server: infoServer() }) - ) - - socket.on('query-player', () => - socket.emit('player', infoPlayerProvider.getPlayerInfo()) - ) - - socket.on('query-track', () => - socket.emit('track', infoPlayerProvider.getTrackInfo()) - ) - - socket.on('query-queue', () => - socket.emit('queue', infoPlayerProvider.getQueueInfo()) - ) - - socket.on('query-playlist', () => - socket.emit('playlist', infoPlayerProvider.getPlaylistInfo()) - ) - - socket.on('query-lyrics', () => - socket.emit('lyrics', infoPlayerProvider.getLyricsInfo()) - ) - }) - - fetchNetworkInterfaces() - - ipcMain.emit('log', { - type: 'info', - data: `Companion Server listening on port ${port}`, - }) - } catch (_) { - ipcMain.emit('log', { - type: 'warn', - data: `Error to start server on port ${port}`, - }) - } -} - -function stop() { - clearInterval(timerTotalConections) - server.close() - console.log('Companion Server has stopped') -} - -function execCmd(cmd, value) { - value = value || true - - switch (cmd) { - case 'track-play-pause': - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) - break - - case 'track-play': - if (infoPlayerProvider.getPlayerInfo().isPaused) { - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) - } - break - - case 'track-pause': - if (!infoPlayerProvider.getPlayerInfo().isPaused) { - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) - } - break - - case 'track-next': - ipcMain.emit('media-command', { - command: 'media-track-next', - value: true, - }) - break - - case 'track-previous': - ipcMain.emit('media-command', { - command: 'media-track-previous', - value: true, - }) - break - - case 'track-thumbs-up': - ipcMain.emit('media-command', { - command: 'media-vote-up', - value: true, - }) - break - - case 'track-thumbs-down': - ipcMain.emit('media-command', { - command: 'media-vote-down', - value: true, - }) - break - - case 'player-volume-up': - ipcMain.emit('media-command', { - command: 'media-volume-up', - value: true, - }) - break - - case 'player-volume-down': - ipcMain.emit('media-command', { - command: 'media-volume-down', - value: true, - }) - break - - case 'player-forward': - ipcMain.emit('media-command', { - command: 'media-seekbar-forward', - value: true, - }) - break - - case 'player-rewind': - ipcMain.emit('media-command', { - command: 'media-seekbar-rewind', - value: true, - }) - break - - case 'player-set-seekbar': - ipcMain.emit('media-command', { - command: 'media-seekbar-set', - value: value, - }) - break - - case 'player-set-volume': - ipcMain.emit('media-command', { - command: 'media-volume-set', - value: value, - }) - break - - case 'player-set-queue': - ipcMain.emit('media-command', { - command: 'media-queue-set', - value: value, - }) - break - - case 'player-repeat': - ipcMain.emit('media-command', { - command: 'media-repeat', - value: true, - }) - break - - case 'player-shuffle': - ipcMain.emit('media-command', { - command: 'media-shuffle', - value: true, - }) - break - - case 'player-add-library': - ipcMain.emit('media-command', { - command: 'media-add-library', - value: true, - }) - break - - case 'player-add-playlist': - ipcMain.emit('media-command', { - command: 'media-add-playlist', - value: value, - }) - break - - case 'show-lyrics-hidden': - ipcMain.emit('window', { command: 'show-lyrics-hidden' }) - break - } -} - -module.exports = { - start: start, - stop: stop, -} diff --git a/src/providers/discordRpcProvider.js b/src/providers/discordRpcProvider.js deleted file mode 100644 index 3b37b151f..000000000 --- a/src/providers/discordRpcProvider.js +++ /dev/null @@ -1,113 +0,0 @@ -const clientId = '495666957501071390' -const RPC = require('discord-rpc') -const settingsProvider = require('./settingsProvider') - -let client -let _isStarted - -function isStarted() { - return _isStarted -} - -function _setIsStarted(value) { - _isStarted = value -} - -function start() { - client = new RPC.Client({ transport: 'ipc' }) - - client.on('ready', () => _setIsStarted(true)) - - client.login({ clientId }).catch(() => { - if (!isStarted()) { - setTimeout(() => { - start() - }, 10000) - } - }) - - client.on('disconnected', () => { - _setIsStarted(false) - start() - }) -} - -function stop() { - client.destroy() - _setIsStarted(false) -} - -async function setActivity(info) { - if (isStarted() && info.track.title) { - const now = Date.now() - const activity = {} - const discordSettings = settingsProvider.get('discord-presence-settings') - - if (discordSettings.details) activity.details = info.track.title - - if (discordSettings.state) activity.state = info.track.author - - if (discordSettings.time) { - if (info.player.isPaused) { - delete activity.startTimestamp - delete activity.endTimestamp - } else { - activity.startTimestamp = - now + info.player.seekbarCurrentPosition * 1000 - activity.endTimestamp = - now + - (info.track.duration - info.player.seekbarCurrentPosition) * - 1000 - } - } - - // activity.largeImageKey = 'ytm_logo_512' - activity.largeImageKey = info.track.cover - activity.smallImageKey = info.player.isPaused - ? 'discordrpc-pause' - : 'discordrpc-play' - activity.largeImageText = 'YouTube Music' - activity.smallImageText = info.player.isPaused ? 'Paused' : 'Playing' - activity.instance = false - if (discordSettings.details) { - activity.buttons = [ - { - label: 'Play on YouTube Music', - url: 'https://music.youtube.com/watch?v=' + info.track.id, - }, - ] - } - - if ((!discordSettings.hideIdle && info.player.isPaused) || info.track.isAdvertisement) { - await client.clearActivity() - } else { - // As of writing this discord-rpc was not updated to support buttons with setActivity - await client.request('SET_ACTIVITY', { - pid: process.pid, - activity: { - state: activity.state, - details: activity.details, - timestamps: { - start: activity.startTimestamp, - end: activity.endTimestamp, - }, - assets: { - large_image: activity.largeImageKey, - large_text: activity.largeImageText, - small_image: activity.smallImageKey, - small_text: activity.smallImageText, - }, - instance: activity.instance, - buttons: activity.buttons, - }, - }) - } - } -} - -module.exports = { - isStarted: isStarted, - start: start, - stop: stop, - setActivity: setActivity, -} diff --git a/src/providers/geniusAuthServer.js b/src/providers/geniusAuthServer.js deleted file mode 100644 index dee0c881d..000000000 --- a/src/providers/geniusAuthServer.js +++ /dev/null @@ -1,93 +0,0 @@ -const { ipcMain } = require('electron') -const http = require('http') -const os = require('os') -const url = require('url') -const networkInterfaces = os.networkInterfaces() -const settingsProvider = require('../providers/settingsProvider') - -const ip = '0.0.0.0' -const port = 9864 - -const pattIgnoreInterface = /(Loopback|lo$|virtual|wsl|vEthernet|Default Switch|VMware|Adapter|Hamachi)\w*/gim -let serverInterfaces = [] - -function fetchNetworkInterfaces() { - serverInterfaces = Object.entries(networkInterfaces) - .filter(([interfaces]) => !pattIgnoreInterface.test(interfaces)) - .map(([name, value]) => { - value = value.filter( - (data) => data.family === 'IPv4' && data.internal === false - ) - return { - name: name, - ip: value.length ? value[0].address : '', - } - }) -} - -const serverFunction = (req, res) => { - const realUrl = - (req.connection.encrypted ? 'https' : 'http') + - '://' + - req.headers.host + - req.url - const urlObj = url.parse(realUrl, true) - if (urlObj.pathname === '/') { - res.setHeader('Content-Type', 'text/html; charset=utf-8') - res.setHeader('Access-Control-Allow-Origin', '*') - res.writeHead(200) - res.write(` - - YTMDesktop Genius authenticating... - - -

Authenticating..

- - `) - - if (urlObj.query['access_token']) { - console.log(urlObj.query.access_token) - console.log(urlObj.query.token_type) - settingsProvider.set('genius-auth', urlObj.query) - } - res.end() - } else if (req.url === '/login') { - const clientID = `KBdWh3QGsSZI1joBSRmO3KvhBkanqt5hrofKo9rHjvRAZ4VybE4Fxqj4pRqKMrI6` - const redirectURI = `http://localhost:9864/` - res.writeHead(301, { - Location: `http://api.genius.com/oauth/authorize?response_type=token&client_id=${clientID}&redirect_uri=${redirectURI}`, - }) - res.end() - } -} - -const server = http.createServer(serverFunction) - -function start() { - try { - server.listen(port, ip) - fetchNetworkInterfaces() - ipcMain.emit('log', { - type: 'info', - data: `Genius Auth Server listening on port ${port}`, - }) - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Error to start server on port ${port}.\n cause: ${error}`, - }) - } -} - -function stop() { - server.close() - console.log('Genius Auth Server has stopped') -} - -module.exports = { - start: start, - stop: stop, -} diff --git a/src/providers/infoPlayerProvider.js b/src/providers/infoPlayerProvider.js deleted file mode 100644 index 85659c082..000000000 --- a/src/providers/infoPlayerProvider.js +++ /dev/null @@ -1,624 +0,0 @@ -const settingsProvider = require('./settingsProvider') - -let webContents, initialized - -const player = { - hasSong: false, - isPaused: true, - volumePercent: 0, - seekbarCurrentPosition: 0, - seekbarCurrentPositionHuman: '0:00', - statePercent: 0.0, - likeStatus: 'INDIFFERENT', - repeatType: 'NONE', -} - -const track = { - author: '', - title: '', - album: '', - cover: '', - duration: 0, - durationHuman: '0:00', - url: '', - id: '', - isVideo: false, - isAdvertisement: false, - inLibrary: false, -} - -let _queue = { - automix: false, - currentIndex: 0, - list: [], -} - -let _playlist = { - list: [], -} - -const _lyrics = { - provider: '', - data: '', - hasLoaded: false, -} - -function init(view) { - webContents = view.webContents - initialized = true - toggleMoreActions(webContents) - toggleMoreActions(webContents) - - initVolume() -} - -function initVolume() { - setVolume(webContents, settingsProvider.get('settings-volume')) -} - -function getAllInfo() { - return { - player: getPlayerInfo(), - track: getTrackInfo(), - } -} - -function getPlayerInfo() { - if (webContents === undefined) return player - - hasSong() - isPaused(webContents) - getVolume(webContents) - getSeekbarPosition(webContents) - getLikeStatus(webContents) - getRepeatType(webContents) - return player -} - -function getTrackInfo() { - if (webContents === undefined) return track - - getAuthor(webContents) - getTitle(webContents) - getAlbum(webContents) - getCover(webContents) - getDuration(webContents) - getUrl(webContents) - setPercent(player.seekbarCurrentPosition, track.duration) - isVideo(webContents) - isAdvertisement(webContents) - return track -} - -function getQueueInfo() { - return _queue -} - -function updateQueueInfo() { - if (webContents !== undefined) getQueue(webContents) -} - -function getPlaylistInfo() { - return _playlist -} - -function updatePlaylistInfo() { - if (webContents !== undefined) getPlaylist(webContents) -} - -function getLyricsInfo() { - return _lyrics -} - -function hasSong() { - player.hasSong = track.id !== '' -} - -function isPaused(webContents) { - webContents - .executeJavaScript(`document.querySelector('video').paused;`) - .then((isPaused) => { - debug(`Is paused: ${isPaused}`) - player.isPaused = isPaused - }) - .catch((_) => console.log('error isPaused')) -} - -function getTitle(webContents) { - webContents - .executeJavaScript( - `document.querySelector('.title.ytmusic-player-bar').textContent;` - ) - .then((title) => { - debug(`Title is: ${title}`) - track.title = title - }) - .catch((_) => console.log('error getTitle')) -} - -function getDuration(webContents) { - webContents - .executeJavaScript( - `document.querySelector('#progress-bar').getAttribute('aria-valuemax');` - ) - .then((duration) => { - debug(`Duration is: ${parseInt(duration)}`) - track.duration = parseInt(duration) - track.durationHuman = convertToHuman(parseInt(duration)) - }) - .catch((_) => console.log('error getDuration')) -} - -/** - * Get Like status - * LIKE | DISLIKE | INDIFFERENT - * @param {*} webContents - */ -function getLikeStatus(webContents) { - webContents - .executeJavaScript( - `document.querySelector('#like-button-renderer').getAttribute('like-status');` - ) - .then((likeStatus) => { - debug(`Like status is: ${likeStatus}`) - player.likeStatus = likeStatus - }) - .catch((_) => console.log('error getLikeStatus')) -} - -/** - * GET CURRENT SEEK BAR POSITION - * @param {*} webContents - */ -function getSeekbarPosition(webContents) { - webContents - .executeJavaScript( - `document.querySelector('#progress-bar').getAttribute('aria-valuenow');` - ) - .then((position) => { - debug(`Seekbar position is: ${parseInt(position)}`) - player.seekbarCurrentPosition = parseInt(position) - player.seekbarCurrentPositionHuman = convertToHuman( - parseInt(position) - ) - }) - .catch((_) => console.log('error getSeekbarPosition')) -} - -function getVolume(webContents) { - webContents - .executeJavaScript( - `document.querySelector('.volume-slider.ytmusic-player-bar').getAttribute('value');` - ) - .then((volume) => { - debug(`Volume % is: ${parseFloat(volume)}`) - player.volumePercent = parseFloat(volume) - }) - .catch((_) => console.log('error getVolume')) -} - -function getAuthor(webContents) { - webContents - .executeJavaScript( - ` - var bar = document.getElementsByClassName('subtitle ytmusic-player-bar')[0]; - - if (bar.getElementsByClassName('yt-simple-endpoint yt-formatted-string')[0]) { - title = bar.getElementsByClassName('yt-simple-endpoint yt-formatted-string')[0].textContent; - } else if (bar.getElementsByClassName('byline ytmusic-player-bar')[0]) { - title = bar.getElementsByClassName('byline ytmusic-player-bar')[0].textContent; - } - title; - ` - ) - .then((author) => { - debug(`Author is: ${author}`) - track.author = author - }) - .catch((_) => console.log('error getAuthor')) -} - -function getAlbum(webContents) { - webContents - .executeJavaScript( - ` - var album = ''; - var player_bar = document.getElementsByClassName("byline ytmusic-player-bar")[0].children; - var arr_player_bar = Array.from(player_bar); - - arr_player_bar.forEach( function(data, index) { - - if (data.getAttribute('href') != null && data.getAttribute('href').includes('browse')) { - album = data.innerText; - } - } ) - - album - ` - ) - .then((album) => { - debug(`Album is: ${album}`) - track.album = album - }) - .catch((_) => console.log('error getAlbum')) -} - -function getCover(webContents) { - webContents - .executeJavaScript( - ` - var cover; - - var thumbnail = document.querySelector('.thumbnail.ytmusic-player.no-transition'); - var image = thumbnail.querySelector('.yt-img-shadow').src; - - cover = image; - - if (cover.includes("data:image")) { - cover = document.querySelector(".image.ytmusic-player-bar").src; - } - - cover; - ` - ) - .then((cover) => { - debug(`Cover is: ${cover}`) - cover.split('?')[0] - cover.replace('sddefault.jpg', 'hq720.jpg') - - track.cover = cover - }) - .catch((_) => console.log('error getCover')) -} - -function getRepeatType(webContents) { - webContents - .executeJavaScript( - `document.querySelector("ytmusic-player-bar").getAttribute("repeat-mode_");` - ) - .then((repeatType) => { - debug(`Repeat type is: ${repeatType}`) - player.repeatType = repeatType - }) - .catch((_) => console.log('error getRepeatType')) -} - -function getUrl(webContents) { - webContents - .executeJavaScript( - `document.querySelector('.ytp-title-link.yt-uix-sessionlink').href` - ) - .then((url) => { - if (url) { - track.url = url - - const newUrl = new URL(url) - const searchParams = new URLSearchParams(newUrl.search) - - track.id = searchParams.get('v') - debug(`Track Url: ${track.url}`) - debug(`Track id: ${track.id}`) - } - }) - .catch((_) => console.log('error getUrl')) -} - -function getQueue(webContents) { - webContents - .executeJavaScript( - ` - var element = document.querySelector('ytmusic-player-queue #contents') - var children = element.children - - var arrChildren = Array.from(children) - - var queue = { automix: false, currentIndex: 0, list: [] }; - - arrChildren.forEach( (el, key) => { - var songElement = el.querySelector('.song-info') - - var songCover = songElement.parentElement.querySelector('.yt-img-shadow').getAttribute('src') - var songTitle = songElement.querySelector('.song-title').getAttribute('title') - var songAuthor = songElement.querySelector('.byline').getAttribute('title') - var duration = el.querySelector('.duration').getAttribute('title') - - if(el.hasAttribute('selected')) { - queue.currentIndex = key; - } - text = { cover: songCover, title: songTitle, author: songAuthor, duration: duration } - queue.list.push(text) - } ) - - queue.automix = document.querySelector('#automix').getAttribute('aria-pressed') == 'true' - queue - ` - ) - .then((queue) => { - if (queue) { - _queue = queue - debug(`Player Queue: ${_queue}`) - } - }) - .catch((_) => console.log('error getQueue')) -} - -async function setQueueItem(webContents, index) { - await webContents.executeJavaScript( - `var element = document.querySelector('ytmusic-player-queue #contents').children[${index}].querySelector('.song-info').parentElement.querySelector('.left-items .thumbnail-overlay #play-button').click()` - ) -} - -function addToLibrary(webContents) { - webContents - .executeJavaScript( - ` - var popup = document.querySelector('.ytmusic-menu-popup-renderer'); - if (popup == null) { - var middleControlsButtons = document.querySelector('.middle-controls-buttons'); - var dots = middleControlsButtons.querySelector('.dropdown-trigger') - - dots.click() - dots.click() - } - - setTimeout( ()=> { - var addLibrary = Array.from(popup.children).filter( (value) => value.querySelector('g path:not([fill])').getAttribute('d') == "M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z" || value.querySelector('g path:not([fill])').getAttribute('d') == "M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z" )[0] - addLibrary.click() - }, 100) - ` - ) - .then(() => setTimeout(isInLibrary, 500)) - .catch((_) => console.log('error addToLibrary ' + _)) -} - -function getPlaylist(webContents) { - webContents - .executeJavaScript( - ` - var data = { list: [] }; - - new Promise( (resolve, reject) => { - var middleControlsButtons = document.querySelector('.middle-controls-buttons'); - var dots = middleControlsButtons.querySelector('.dropdown-trigger') - - dots.click() - dots.click() - - setTimeout( resolve, 500) - } ) - .then((_) => { - return new Promise( (resolve, reject) => { - var popup = document.querySelector('.ytmusic-menu-popup-renderer'); - var addPlaylist = Array.from(popup.children) - .filter( (value) => value.querySelector('g path:not([fill])').getAttribute('d') == "M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z" )[0].querySelector('a') - addPlaylist.click() - addPlaylist.click() - - setTimeout( resolve, 3000); - } ).then( (_) => { - var popupPlaylist = document.querySelector('ytmusic-add-to-playlist-renderer'); - var playlists = popupPlaylist.querySelector('#playlists') - - var titleList = playlists.querySelectorAll('#title') - - titleList.forEach( (element, index) => { - data.list.push(element.textContent) - } ) - return data; - }) - }) - ` - ) - .then((playlist) => { - _playlist = playlist - debug(`getPlaylist: ${playlist}`) - }) - .catch((_) => console.log('error getPlaylist ' + _)) -} - -function isVideo(webContents) { - webContents - .executeJavaScript( - `document.querySelector('#player').hasAttribute('video-mode_')` - ) - .then((isVideo) => { - track.isVideo = !!isVideo - debug(`Is video: ${track.isVideo}`) - }) - .catch((_) => console.log('error isVideo ' + _)) -} - -function isAdvertisement(webContents) { - webContents - .executeJavaScript( - `document.querySelector('.advertisement').hasAttribute('hidden')` - ) - .then((isAdvertisement) => { - track.isAdvertisement = !isAdvertisement - debug(`Is advertisement: ${track.isAdvertisement}`) - }) - .catch((_) => console.log('error isAdvertisement')) -} - -function setVolume(webContents, vol) { - webContents - .executeJavaScript( - ` - var slider = document.querySelector('#volume-slider'); - slider.value = ${vol}; - slider.dispatchEvent(new Event("change")); - ` - ) - .then() - .catch((_) => console.log('error changeVolume')) -} - -function setSeekbar(webContents, time) { - webContents - .executeJavaScript( - ` - var slider = document.querySelectorAll('.bar-container .tp-yt-paper-slider')[2]; - var sliderKnob = document.querySelectorAll('#progress-bar')[0]; - - slider.click(); - - sliderKnob.value = ${time}; - ` - ) - .then() - .catch((_) => console.log('error changeSeekbar')) -} - -function updateLyrics(provider, lyrics, hasLoaded) { - _lyrics.provider = provider - _lyrics.data = lyrics - _lyrics.hasLoaded = hasLoaded -} - -function isInLibrary() { - webContents - .executeJavaScript( - ` - new Promise( (resolve, reject) => { - var middleControlsButtons = document.querySelector('.middle-controls-buttons'); - var dots = middleControlsButtons.querySelector('.dropdown-trigger') - - dots.click() - dots.click() - - setTimeout( resolve, 500) - } ) - .then((_) => { - var popup = document.querySelector('.ytmusic-menu-popup-renderer'); - var addLibrary = Array.from(popup.children) - .filter( (value) => value.querySelector('g path:not([fill])').getAttribute('d') == "M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z" || value.querySelector('g path:not([fill])').getAttribute('d') == "M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z" )[0] - - if(addLibrary != undefined) { - var _d = addLibrary.querySelector('g path:not([fill])').getAttribute('d') - - if(_d == 'M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z') { - return true; - } else { - return false; - } - } else { - return false; - } - }) - ` - ) - .then((inLibrary) => { - track.inLibrary = inLibrary - debug(`Is in Library: ${track.inLibrary}`) - }) - .catch((_) => console.log('error isInLibrary')) -} - -function addToPlaylist(webContents, index) { - webContents - .executeJavaScript( - ` - new Promise( (resolve, reject) => { - var popup = document.querySelector('.ytmusic-menu-popup-renderer'); - var addPlaylist = Array.from(popup.children) - .filter( (value) => value.querySelector('g path:not([fill])').getAttribute('d') == "M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z" )[0].querySelector('a') - addPlaylist.click() - addPlaylist.click() - - setTimeout( resolve, 500); - } ).then( (_) => { - var popupPlaylist = document.querySelector('ytmusic-add-to-playlist-renderer'); - var playlists = popupPlaylist.querySelectorAll('#playlists ytmusic-playlist-add-to-option-renderer button'); - - playlists[${index}].click() - }) - ` - ) - .then() - .catch((_) => console.log('error getPlaylist ' + _)) -} - -function convertToHuman(time) { - let hours = Math.floor(time / 3600) - time %= 3600 - let minutes = Math.floor(time / 60) - let seconds = Math.floor(time % 60) - - let final = - hours.toString().padStart(2, '0') + - ':' + - minutes.toString().padStart(2, '0') + - ':' + - seconds.toString().padStart(2, '0') - - final.startsWith('00:0') - ? (final = final.slice(4)) - : final.startsWith('00:') - ? (final = final.slice(3)) - : final.startsWith('0') - ? (final = final.slice(1)) - : null - - return final -} - -function setPercent(px, ptotal) { - player.statePercent = px / ptotal -} - -function hasInitialized() { - return initialized -} - -function firstPlay(webContents) { - webContents - .executeJavaScript( - ` - var playButton = document.querySelector('.icon.ytmusic-play-button-renderer'); - playButton.click(); - ` - ) - .then() - .catch((_) => console.log('error firstPlay')) -} - -async function toggleMoreActions(webContents) { - await webContents.executeJavaScript( - ` - var middleControlsButtons = document.querySelector('.middle-controls-buttons'); - var moreActions = middleControlsButtons.querySelector('.dropdown-trigger') - - moreActions.click() - `, - true - ) -} - -function debug(data) { - // console.log(data); -} - -module.exports = { - init: init, - getAllInfo: getAllInfo, - getPlayerInfo: getPlayerInfo, - getTrackInfo: getTrackInfo, - hasInitialized: hasInitialized, - firstPlay: firstPlay, - isInLibrary: isInLibrary, - - getQueueInfo: getQueueInfo, - getPlaylistInfo: getPlaylistInfo, - getLyricsInfo: getLyricsInfo, - - setVolume: setVolume, - setSeekbar: setSeekbar, - setQueueItem: setQueueItem, - - updatePlaylistInfo: updatePlaylistInfo, - updateQueueInfo: updateQueueInfo, - updateLyrics: updateLyrics, - - addToLibrary: addToLibrary, - addToPlaylist: addToPlaylist, -} diff --git a/src/providers/mediaProvider.js b/src/providers/mediaProvider.js deleted file mode 100644 index 8bdf6c348..000000000 --- a/src/providers/mediaProvider.js +++ /dev/null @@ -1,254 +0,0 @@ -const __ = require('./translateProvider') -const systemInfo = require('../utils/systemInfo') -const infoPlayerProvider = require('../providers/infoPlayerProvider') -const path = require('path') -const settingsProvider = require('./settingsProvider') - -function mediaPlayPauseTrack(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: ';' }) -} - -function mediaStopTrack(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: ';' }) -} - -function mediaNextTrack(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 'j' }) -} - -function mediaPreviousTrack(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 'k' }) -} - -function mediaUpVote(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '+' }) -} - -function mediaDownVote(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '_' }) -} - -function mediaVolumeUp(mainWindow) { - if (settingsProvider.get('settings-decibel-volume')) { - let percent = infoPlayerProvider.getPlayerInfo().volumePercent - infoPlayerProvider.setVolume( - mainWindow.webContents, - decibelToPercent(percentToDecibel(percent) + 1.5) - ) - } else - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '=' }) -} - -function mediaVolumeDown(mainWindow) { - if (settingsProvider.get('settings-decibel-volume')) { - let percent = infoPlayerProvider.getPlayerInfo().volumePercent - infoPlayerProvider.setVolume( - mainWindow.webContents, - decibelToPercent(percentToDecibel(percent) - 1.5) - ) - } else - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: '-' }) -} - -function mediaForwardTenSeconds(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 'l' }) -} - -function mediaRewindTenSeconds(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 'h' }) -} - -function mediaRepeat(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 'r' }) -} - -function mediaShuffle(mainWindow) { - mainWindow.webContents.sendInputEvent({ type: 'keydown', keyCode: 's' }) -} - -function mediaChangeSeekbar(mainWindow, time) { - infoPlayerProvider.setSeekbar(mainWindow.webContents, time) -} - -function mediaChangeVolume(mainWindow, time) { - infoPlayerProvider.setVolume(mainWindow.webContents, time) -} - -async function mediaSelectQueueItem(mainWindow, index) { - await infoPlayerProvider.setQueueItem(mainWindow.webContents, index) -} - -function mediaAddToLibrary(mainWindow) { - infoPlayerProvider.addToLibrary(mainWindow.webContents) -} - -function mediaAddToPlaylist(mainWindow, index) { - infoPlayerProvider.addToPlaylist(mainWindow.webContents, index) -} - -function createThumbar(mainWindow, mediaInfo) { - let isPaused = mediaInfo.player.isPaused - let likeStatus = mediaInfo.player.likeStatus - let hasId = mediaInfo.track.id - - let thumbsUp = '../assets/img/controls/thumbs-up-button-outline.png' - let thumbsDown = '../assets/img/controls/thumbs-down-button-outline.png' - let thumbsReverse = '' - - switch (likeStatus) { - case 'LIKE': - thumbsUp = '../assets/img/controls/thumbs-up-button.png' - thumbsDown = '../assets/img/controls/thumbs-down-button-outline.png' - thumbsReverse = 'INDIFFERENT' - break - - case 'DISLIKE': - thumbsUp = '../assets/img/controls/thumbs-up-button-outline.png' - thumbsDown = '../assets/img/controls/thumbs-down-button.png' - thumbsReverse = 'INDIFFERENT' - break - - case 'INDIFFERENT': - thumbsUp = '../assets/img/controls/thumbs-up-button-outline.png' - thumbsDown = '../assets/img/controls/thumbs-down-button-outline.png' - thumbsReverse = likeStatus === 'LIKE' ? 'DISLIKE' : 'LIKE' - break - } - - playOrPause = { - tooltip: __.trans('MEDIA_CONTROL_PLAY'), - icon: path.join(__dirname, '../assets/img/controls/play-button.png'), - click: () => { - mediaPlayPauseTrack(mainWindow.getBrowserView()) - }, - } - - if (isPaused === false) { - playOrPause.tooltip = __.trans('MEDIA_CONTROL_PAUSE') - playOrPause.icon = path.join( - __dirname, - '../assets/img/controls/pause-button.png' - ) - } - - try { - mainWindow.setThumbarButtons([ - { - tooltip: __.trans('MEDIA_CONTROL_THUMBS_DOWN'), - icon: path.join(__dirname, thumbsDown), - click: () => { - mediaDownVote( - mainWindow.getBrowserView(), - createThumbar(mainWindow, mediaInfo) - ) - }, - flags: !hasId ? ['disabled'] : [], - }, - { - icon: path.join(__dirname, '../assets/img/null.png'), - flags: ['disabled', 'nobackground'], - }, - { - tooltip: __.trans('MEDIA_CONTROL_PREVIOUS'), - icon: path.join( - __dirname, - '../assets/img/controls/play-previous-button.png' - ), - click: () => { - mediaPreviousTrack(mainWindow.getBrowserView()) - }, - flags: !hasId ? ['disabled'] : [], - }, - { - tooltip: playOrPause.tooltip, - icon: playOrPause.icon, - click: () => { - mediaPlayPauseTrack(mainWindow.getBrowserView()) - }, - flags: !hasId ? ['disabled'] : [], - }, - { - tooltip: __.trans('MEDIA_CONTROL_NEXT'), - icon: path.join( - __dirname, - '../assets/img/controls/play-next-button.png' - ), - click: () => { - mediaNextTrack(mainWindow.getBrowserView()) - }, - flags: !hasId ? ['disabled'] : [], - }, - { - icon: path.join(__dirname, '../assets/img/null.png'), - flags: ['disabled', 'nobackground'], - }, - { - tooltip: __.trans('MEDIA_CONTROL_THUMBS_UP'), - icon: path.join(__dirname, thumbsUp), - click: () => { - mediaUpVote( - mainWindow.getBrowserView(), - createThumbar(mainWindow, mediaInfo) - ) - }, - flags: !hasId ? ['disabled'] : [], - }, - ]) - mainWindow.setSkipTaskbar(false) - } catch (e) { - //console.log(e); - } -} - -function percentToDecibel(percent) { - return Math.min(Math.max(20.0 * Math.log10(percent / 100.0), -100.0), 0.0) -} - -function decibelToPercent(decibel) { - return Math.min( - Math.max(Math.pow(10.0, decibel / 20.0) * 100.0, 0.0), - 100.0 - ) -} - -function setProgress(mainWindow, progress, isPaused) { - if (mainWindow) - if (systemInfo.isWindows()) - mainWindow.setProgressBar(progress, { - mode: isPaused ? 'paused' : 'normal', - }) - else mainWindow.setProgressBar(progress) -} - -function createTouchBar(mainWindow) { - // TODO: Implement touchbar - // mainWindow.setTouchBar(); -} - -const guarder = (mainWindow, f) => { - if (mainWindow && mainWindow.webContents) f(mainWindow) -} - -exports.playPauseTrack = (v) => guarder(v, mediaPlayPauseTrack) -exports.stopTrack = (v) => guarder(v, mediaStopTrack) -exports.nextTrack = (v) => guarder(v, mediaNextTrack) -exports.previousTrack = (v) => guarder(v, mediaPreviousTrack) -exports.upVote = (v) => guarder(v, mediaUpVote) -exports.downVote = (v) => guarder(v, mediaDownVote) -exports.volumeUp = (v) => guarder(v, mediaVolumeUp) -exports.volumeDown = (v) => guarder(v, mediaVolumeDown) -exports.mediaForwardTenSeconds = (v) => guarder(v, mediaForwardTenSeconds) -exports.mediaRewindTenSeconds = (v) => guarder(v, mediaRewindTenSeconds) -exports.changeSeekbar = mediaChangeSeekbar -exports.changeVolume = mediaChangeVolume -exports.selectQueueItem = mediaSelectQueueItem -exports.repeat = mediaRepeat -exports.shuffle = mediaShuffle -exports.addToLibrary = mediaAddToLibrary -exports.addToPlaylist = mediaAddToPlaylist - -// For Windows -exports.createThumbar = createThumbar -exports.setProgress = setProgress -// For Mac -// exports.createTouchBar = createTouchBar; diff --git a/src/providers/mprisProvider.js b/src/providers/mprisProvider.js deleted file mode 100644 index 80e336e84..000000000 --- a/src/providers/mprisProvider.js +++ /dev/null @@ -1,110 +0,0 @@ -const { ipcMain } = require('electron') -const mpris = require('mpris-service') - -class Mpris { - constructor() { - this._isInitialized = false - this.player = undefined - this._realPlayer = undefined //we'll need the infoPlayer later to be better able to track the time. - } - - start() { - this.player = new mpris({ - name: 'youtube-music-desktop-app', - identity: 'Youtube Music', - supportedUriSchemes: ['file'], - supportedMimeTypes: ['audio/mpeg', 'application/ogg'], - supportedInterfaces: ['player'], - canRaise: true, - }) - - this._setInitialEvents() - - this._isInitialized = true - } - - setRealPlayer(infoPlayer) { - if (this.player) { - this._realPlayer = infoPlayer - //Overriding this method makes it a lot easier to be able to controll the playback position. - this.player.getPosition = () => - this._realPlayer.getPlayerInfo().seekbarCurrentPosition * - 1000 * - 1000 - } - } - - setActivity(info) { - if (this._isInitialized) { - // 50% is represented as 50 in info.player.volumePercent - // while mpris represents it as 0.50, so we need to convert it first - this.player.volume = info.player.volumePercent / 100 - this.player.metadata = { - 'mpris:trackid': this.player - .objectPath('track/0') - .replaceAll('-', '_'), // replacing -'s in name with _ to meet dbus object name spec - 'mpris:length': info.track.duration * 1000 * 1000, // In microseconds - 'mpris:artUrl': info.track.cover, - 'xesam:title': info.track.title, - 'xesam:album': info.track.album, - 'xesam:artist': [info.track.author], - } - this.player.playbackStatus = info.player.isPaused - ? mpris.PLAYBACK_STATUS_PAUSED - : mpris.PLAYBACK_STATUS_PLAYING - } - } - - _setInitialEvents() { - const events = { - quit: () => process.exit(0), - previous: 'media-track-previous', - next: 'media-track-next', - pause: 'media-play-pause', - play: 'media-play-pause', - playpause: 'media-play-pause', //KDE Connect only sends this event it looked like. - } - - for (let [event, action] of Object.entries(events)) { - if (typeof action === 'string') - this.player.on(event, () => { - ipcMain.emit('media-command', { - command: action, - value: true, - }) - }) - else if (typeof action === 'function') this.player.on(event, action) - } - this.player.on('position', (args) => { - // the position event sends through {trackId : ###, position : ###} - ipcMain.emit('media-command', { - command: 'media-seekbar-set', - value: args.position / (1000 * 1000), - }) - }) - - this.player.on('volume', (args) => { - if (args === undefined) return - ipcMain.emit('media-command', { - command: 'media-volume-set', - // 50% is represented as 50 in info.player.volumePercent - // while mpris represents it as 0.50, so we need to convert it first - value: args * 100, - }) - }) - - this.player.on('raise', () => { - ipcMain.emit('show', null) - }) - - this.player.on('seek', (offset) => { - // the seek event sends through the difference from where we should be in microseconds, positive forward, negative backward - ipcMain.emit('media-command', { - command: 'media-seekbar-set', - value: (this.player.getPosition() + offset) / (1000 * 1000), - }) - }) - } -} - -module.exports = new Mpris() diff --git a/src/providers/rainmeterNowPlaying.js b/src/providers/rainmeterNowPlaying.js deleted file mode 100644 index d893c69b5..000000000 --- a/src/providers/rainmeterNowPlaying.js +++ /dev/null @@ -1,169 +0,0 @@ -const { ipcMain } = require('electron') -const WebSocket = require('ws') -const url = 'ws://127.0.0.1:8974' -let ws, reconnect, volumePercent, seekPosition, _isStarted - -function isStarted() { - return _isStarted -} - -function _setIsStarted(value) { - _isStarted = value -} - -function start() { - try { - ws = new WebSocket(url, { - perMessageDeflate: false, - }) - - ws.on('open', function open() { - _setIsStarted(true) - }) - - ws.on('message', (data) => { - const versionNumber = data.toLowerCase().split(':') - if (versionNumber[0].includes('version')) { - //Check that version number is the same major version - } - try { - doAction(data) - } catch (e) { - ws.send('Error:' + e) - throw e - } - }) - - ws.on('error', (_) => { - console.log('Failed to connect rainmeter WebNowPlaying WS') - }) - - ws.on('close', () => { - stop() - reconnect = setTimeout(() => { - if (!isStarted()) start() - }, 5000) - }) - } catch (_) { - console.log('error') - } -} - -function stop() { - _setIsStarted(false) - ws.terminate() -} - -function setActivity(data) { - if (!isStarted()) return - - ws.send(`COVER:${data.track.cover}`) - ws.send(`TITLE:${data.track.title}`) - ws.send(`ARTIST:${data.track.author}`) - ws.send(`ALBUM:${data.track.album}`) - ws.send(`STATE:${data.player.isPaused ? 2 : 1}`) - ws.send(`DURATION:${data.track.durationHuman}`) - ws.send(`POSITION:${data.player.seekbarCurrentPositionHuman}`) - ws.send(`VOLUME:${data.player.volumePercent}`) - if (data.player.likeStatus === 'LIKE') ws.send(`RATING:5`) - else if (data.player.likeStatus === 'DISLIKE') ws.send(`RATING:1`) - else ws.send(`RATING:0`) - - // Store the Volume Percent for the Volume changing - volumePercent = data.player.volumePercent -} - -function doAction(data) { - const dataSplit = data.split(' ') - let action = dataSplit.shift() - const actionParams = dataSplit - - if (actionParams.length && action === 'SetPosition') { - const seekValuePercent = parseFloat(actionParams[1].split(':')[0]) - if (seekValuePercent !== 0) { - action = 'SetPositionSeekbar' - actionParams[0] = actionParams[0].split(':')[0] / 100000 - } - } - - switch (action) { - case 'PlayPause': - ipcMain.emit('media-command', { - command: 'media-play-pause', - value: true, - }) - break - - case 'next': - ipcMain.emit('media-command', { - command: 'media-track-next', - value: true, - }) - break - - case 'previous': - ipcMain.emit('media-command', { - command: 'media-track-previous', - value: true, - }) - break - - case 'togglethumbsup': - ipcMain.emit('media-command', { - command: 'media-vote-up', - value: true, - }) - break - - case 'togglethumbsdown': - ipcMain.emit('media-command', { - command: 'media-vote-down', - value: true, - }) - break - - case 'SetVolume': - // Technically this doesn't actually set the Volume to WebNowPlaying's Standards - // as we're letting the up/down volume set decide rather than a specific value. - if (actionParams[0] >= volumePercent) - ipcMain.emit('media-command', { - command: 'media-volume-up', - value: true, - }) - else - ipcMain.emit('media-command', { - command: 'media-volume-down', - value: true, - }) - - break - - case 'SetPosition': - const currentPosition = actionParams[0].split(':')[0] - if (currentPosition >= seekPosition) - ipcMain.emit('media-command', { - command: 'media-seekbar-forward', - value: true, - }) - else - ipcMain.emit('media-command', { - command: 'media-seekbar-rewind', - value: true, - }) - break - - case 'SetPositionSeekbar': - ipcMain.emit('media-command', { - command: 'media-seekbar-set', - value: actionParams[0], - }) - break - } -} - -module.exports = { - isStarted: isStarted, - start: start, - stop: stop, - setActivity: setActivity, -} diff --git a/src/providers/scrobblerProvider.js b/src/providers/scrobblerProvider.js deleted file mode 100644 index e5b6c8e96..000000000 --- a/src/providers/scrobblerProvider.js +++ /dev/null @@ -1,103 +0,0 @@ -const { remote } = require('electron') -const scribble = require('scribble') -const settingsProvider = require('./settingsProvider') -const http = require('http') -const Base64 = require('js-base64').Base64 - -const apiKey = '9ab417e8b808ed071223a1b4b3c29642' -const apiSecret = '9d8830c167627e65dac63786be101964' - -let Scrobbler, userLogin - -function signIn() { - userLogin = getLogin() - if (userLogin) { - Scrobbler = new scribble( - apiKey, - apiSecret, - userLogin.username, - userLogin.password - ) - } -} - -function setLogin(username, password) { - settingsProvider.set('last-fm-login', { - username: username, - password: Base64.encode(password), - }) -} - -function getLogin() { - const login = settingsProvider.get('last-fm-login') - if (login.username !== '') { - login.password = Base64.decode(login.password) - return login - } - - return false -} - -function getToken() { - http.get( - `http://ws.audioscrobbler.com/2.0/?method=auth.gettoken&api_key=${apiKey}&format=json`, - function (res) { - let rawData = '' - res.on('data', (chunk) => { - rawData += chunk - }) - res.on('end', () => { - try { - const parsedData = JSON.parse(rawData) - authorize(parsedData.token) - } catch (e) { - console.error(e.message) - } - }) - } - ) -} - -function updateTrackInfo(title, author, album) { - if (Scrobbler === undefined) signIn() - - const track = { - artist: author, - track: title, - album: album, - } - - Scrobbler.Scrobble(track, function (_) {}) -} - -function updateNowPlaying(title, author, album, duration) { - if (Scrobbler === undefined) signIn() - - const track = { - artist: author, - track: title, - album: album, - duration: duration, - } - Scrobbler.NowPlaying(track, function (_) {}) -} - -async function authorize(token) { - let winAuthorize = new remote.BrowserWindow({ - title: 'Last.FM Authorization', - width: 900, - height: 500, - }) - await winAuthorize.loadURL( - `https://www.last.fm/api/auth?api_key=${apiKey}&token=${token}` - ) -} - -module.exports = { - getToken: getToken, - updateTrackInfo: updateTrackInfo, - updateNowPlaying: updateNowPlaying, - getLogin: getLogin, - setLogin: setLogin, - authorize: authorize, -} diff --git a/src/providers/settingsProvider.js b/src/providers/settingsProvider.js deleted file mode 100644 index 0e17578aa..000000000 --- a/src/providers/settingsProvider.js +++ /dev/null @@ -1,78 +0,0 @@ -const { ipcMain, webContents } = require('electron') -const electronStore = require('electron-store') -const store = new electronStore({ watch: true }) - -/** - * Get setting value - * @param {string} settingName - */ -function get(settingName) { - return store.get(settingName) -} - -/** - * Set setting value - * @param {string} settingName - * @param {*} value - */ -function set(settingName, value) { - store.set(settingName, value) -} - -/** - * Set initial value for setting if it not setted - * @param {string} settingName - * @param {*} initialValue - */ -function setInitialValue(settingName, initialValue) { - if (!store.has(settingName)) set(settingName, initialValue) -} - -function onDidChange(key, callback) { - return store.onDidChange(key, (newValue, oldValue) => - callback({ newValue, oldValue }) - ) -} - -function proxyCallbackToSender(id, key) { - return ({ newValue, oldValue }) => { - const sender = webContents.fromId(id) - if (!sender) return - sender.send(`SETTINGS_NOTIFY_${key}`, newValue, oldValue) - } -} - -// In the browser process -if (ipcMain) { - ipcMain.on('SETTINGS_GET', (e, settingName) => { - e.returnValue = get(settingName) - }) - - const subscriptions = new Map() - - // TODO: Support unsubscribing over IPC, would need to decrement counter - // no use case yet so left unimplemented - ipcMain.on('SETTINGS_SUBSCRIBE', (e, settingName) => { - let existingSubs = subscriptions.get(e.sender.id) - if (!existingSubs) { - existingSubs = {} - subscriptions.set(e.sender.id, existingSubs) - } - if (existingSubs[settingName]) existingSubs[settingName]++ - else { - existingSubs[settingName] = 1 - const unsub = onDidChange( - settingName, - proxyCallbackToSender(e.sender.id, settingName) - ) - e.sender.on('destroyed', unsub) - } - }) -} - -module.exports = { - onDidChange: onDidChange, - get: get, - set: set, - setInitialValue: setInitialValue, -} diff --git a/src/providers/templateProvider.js b/src/providers/templateProvider.js deleted file mode 100644 index 598527f8f..000000000 --- a/src/providers/templateProvider.js +++ /dev/null @@ -1,324 +0,0 @@ -const { ipcMain } = require('electron') -const { doBehavior } = require('../utils/window') - -let statusBarMenu = [ - { - label: 'Edit', - submenu: [ - { - role: 'undo', - }, - { - role: 'redo', - }, - { - type: 'separator', - }, - { - role: 'cut', - }, - { - role: 'copy', - }, - { - role: 'paste', - }, - { - role: 'pasteandmatchstyle', - }, - { - role: 'delete', - }, - { - role: 'selectall', - }, - { - type: 'separator', - }, - { - label: 'Speech', - submenu: [ - { - role: 'startspeaking', - }, - { - role: 'stopspeaking', - }, - ], - }, - ], - }, - { - label: 'View', - submenu: [ - { - label: 'Reload', - accelerator: 'CmdOrCtrl+R', - click(item, focusedWindow) { - focusedWindow.emit('reload') - if (focusedWindow) focusedWindow.reload() - }, - }, - { - label: 'Toggle Developer Tools', - accelerator: - process.platform === 'darwin' - ? 'Alt+Command+I' - : 'Ctrl+Shift+I', - click(item, focusedWindow) { - if (focusedWindow) - focusedWindow.webContents.toggleDevTools() - }, - }, - { - type: 'separator', - }, - { - role: 'resetzoom', - }, - { - role: 'zoomin', - }, - { - role: 'zoomout', - }, - { - type: 'separator', - }, - { - role: 'togglefullscreen', - }, - ], - }, - { - label: 'History', - submenu: [ - { - label: 'Home(YouTube Music)', - accelerator: 'CmdOrCtrl+H', - async click(item, focusedWindow) { - if (focusedWindow) - await focusedWindow - .getBrowserView() - .webContents.loadURL('https://music.youtube.com') - }, - }, - { - type: 'separator', - }, - { - label: 'Back', - accelerator: 'CmdOrCtrl+[', - click(item, focusedWindow) { - if (focusedWindow) - if ( - focusedWindow - .getBrowserView() - .webContents.canGoBack() - ) - focusedWindow.getBrowserView().webContents.goBack() - }, - }, - { - label: 'Forward', - accelerator: 'CmdOrCtrl+]', - click(item, focusedWindow) { - if (focusedWindow) - if ( - focusedWindow - .getBrowserView() - .webContents.canGoForward() - ) - focusedWindow - .getBrowserView() - .webContents.goForward() - }, - }, - ], - }, - { - role: 'window', - submenu: [ - { - label: 'Close', - accelerator: 'CmdOrCtrl+W', - role: 'close', - }, - { - label: 'Minimize', - accelerator: 'CmdOrCtrl+M', - role: 'minimize', - }, - { - label: 'Zoom', - role: 'zoom', - }, - { - type: 'separator', - }, - { - label: 'Bring All to Front', - role: 'front', - }, - ], - }, - { - role: 'help', - submenu: [ - { - label: 'Learn More', - async click() { - await require('electron').shell.openExternal( - 'http://electron.atom.io' - ) - }, - }, - ], - }, -] -statusBarMenu.unshift({ - label: 'YouTube Music Desktop', - submenu: [ - { - role: 'about', - }, - { - type: 'separator', - }, - { - role: 'services', - submenu: [], - }, - { - type: 'separator', - }, - { - role: 'hide', - }, - { - role: 'hideothers', - }, - { - role: 'unhide', - }, - { - type: 'separator', - }, - { - role: 'quit', - }, - ], -}) - -const popUpMenu = (__, saved_mainWindow, mediaControl, app) => { - return [ - { - label: 'YouTube Music Desktop', - type: 'normal', - click: () => { - doBehavior(saved_mainWindow) - }, - }, - - { type: 'separator' }, - - { - label: __.trans('MEDIA_CONTROL_PLAY_PAUSE'), - type: 'normal', - click: () => { - mediaControl.playPauseTrack(saved_mainWindow.getBrowserView()) - }, - }, - - { - label: __.trans('MEDIA_CONTROL_PREVIOUS'), - type: 'normal', - click: () => { - mediaControl.previousTrack(saved_mainWindow.getBrowserView()) - }, - }, - - { - label: __.trans('MEDIA_CONTROL_NEXT'), - type: 'normal', - click: () => { - mediaControl.nextTrack(saved_mainWindow.getBrowserView()) - }, - }, - - { type: 'separator' }, - - { - label: __.trans('MEDIA_CONTROL_THUMBS_UP'), - type: 'normal', - click: () => { - mediaControl.upVote(saved_mainWindow.getBrowserView()) - }, - }, - - { - label: __.trans('MEDIA_CONTROL_THUMBS_DOWN'), - type: 'normal', - click: () => { - mediaControl.downVote(saved_mainWindow.getBrowserView()) - }, - }, - - { type: 'separator' }, - - { - label: __.trans('LABEL_MINIPLAYER'), - type: 'normal', - click: () => { - ipcMain.emit('window', { command: 'show-miniplayer' }) - }, - }, - - { - label: __.trans('LABEL_LYRICS'), - type: 'normal', - click: () => { - ipcMain.emit('window', { command: 'show-lyrics' }) - }, - }, - - { - label: __.trans('LABEL_SETTINGS_TAB_GENERAL_SELECT_AUDIO_OUTPUT'), - type: 'submenu', - submenu: [], - }, - - { - label: __.trans('LABEL_SETTINGS'), - type: 'normal', - click: () => { - ipcMain.emit('window', { command: 'show-settings' }) - }, - }, - - { type: 'separator' }, - - { - label: __.trans('LABEL_GUEST'), - type: 'normal', - click: () => { - ipcMain.emit('window', { command: 'show-guest-mode' }) - }, - }, - - { type: 'separator' }, - - { - label: __.trans('LABEL_EXIT'), - type: 'normal', - click: () => { - app.exit() - }, - }, - ] -} - -module.exports = { - statusBarMenu: statusBarMenu, - popUpMenu: popUpMenu, -} diff --git a/src/providers/translateProvider.js b/src/providers/translateProvider.js deleted file mode 100644 index 018d4fa3c..000000000 --- a/src/providers/translateProvider.js +++ /dev/null @@ -1,123 +0,0 @@ -const { ipcMain } = require('electron') -const isDev = require('electron-is-dev') -const i18n = require('i18n') -var http = require('https') -var fs = require('fs') -const settingsProvider = require('./settingsProvider') - -const defaultLocale = settingsProvider.get('settings-app-language') || 'en' - -// Use app.getPath('userData') will cause problem here and I could not figure out why -// So I add a stored value `settings-localses-path` as a workaround. -// - mingjun97 -const localesPath = settingsProvider.get('settings-locales-path') + '/locales' - -console.log( - '[!] To add translation for your introduced feature, you may navigate to ' -) -console.log('[!] ' + localesPath + ' to modify the your locale file.') -console.log('[!] Then kindly open a PR to ytmdesktop-locales repo. :)') - -var updateLocaleFile = function (locale, cb, force = false) { - // for developer, skip auto update to prevent data loss - if (isDev && !force) { - console.log('[!]Skip i18n auto-update in development mode') - // updateLocaleFile(locale, cb, true) - console.log( - '[!]You may force update i18n by uncomment previous line in `src/providers/translateProvider`' - ) - return - } - // console.log('downloading locale file for:' + locale); - dest = `${localesPath}/${locale}.json` - var file = fs.createWriteStream(dest) - var request = http - .get( - `https://raw.githubusercontent.com/ytmdesktop/ytmdesktop-locales/master/locales/${locale}.json`, - function (response) { - let body = '' - response.on('data', function (chunk) { - body += chunk - }) - response.on('end', function () { - file.write(body) - file.close() - }) - } - ) - .on('error', function (err) { - // Handle errors - fs.unlink(dest) // Delete the file async. (But we don't check the result) - if (cb) cb(err.message) - }) -} - -i18n.configure({ - locales: ['en', 'pt'], - directory: localesPath, - defaultLocale: defaultLocale, - autoReload: true, -}) - -// update locale file when launch -// put a slight delay in case of data racing -setTimeout(function () { - updateLocaleFile(defaultLocale, (a) => { - console.log('cb called', a) - }) -}, 1000) - -function setLocale(locale) { - i18n.setLocale(locale) -} - -function trans(id, params) { - params = typeof params !== 'undefined' ? params : {} - try { - let tmp = i18n.__(id, params) - return tmp === id - ? i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english - : tmp - } catch (_) { - return i18n.__({ phrase: id, locale: 'en' }, params) // fallback to english - } -} - -function translateHelper() { - const prefix = 'i18n_' - const items = [] - const i18n_items = document.getElementsByTagName('*') - for (let i = 0; i < i18n_items.length; i++) - //omitting undefined null check for brevity - if ( - i18n_items[i].getAttribute('i18n') && - i18n_items[i].getAttribute('i18n').lastIndexOf(prefix, 0) === 0 - ) - items.push([ - i18n_items[i].getAttribute('i18n').replace('i18n_', ''), - i18n_items[i], - ]) - return items -} - -function loadi18n() { - translateHelper().forEach(([i18n, element]) => { - element.innerHTML = trans(i18n) - }) -} - -if (ipcMain) { - ipcMain.on('I18N_TRANSLATE', (e, id, params) => { - e.returnValue = trans(id, params) - }) - // download locale file for new language - ipcMain.on('language-updated', (e, id, params) => { - updateLocaleFile(settingsProvider.get('settings-app-language')) - }) -} - -module.exports = { - setLocale: setLocale, - trans: trans, - loadi18n: loadi18n, -} diff --git a/src/providers/trayProvider.js b/src/providers/trayProvider.js deleted file mode 100644 index d68ef54d9..000000000 --- a/src/providers/trayProvider.js +++ /dev/null @@ -1,236 +0,0 @@ -const { app, Menu, Tray, ipcMain } = require('electron') -const mediaControl = require('./mediaProvider') -const nativeImage = require('electron').nativeImage -const settingsProvider = require('./settingsProvider') -const __ = require('./translateProvider') -const { doBehavior } = require('../utils/window') -const systemInfo = require('../utils/systemInfo') -const imageToBase64 = require('image-to-base64') -const { popUpMenu } = require('./templateProvider') -const assetsProvider = require('./assetsProvider') -const { Notification } = require('electron') - -let tray = null -let saved_mainWindow = null -let contextMenu = null -let iconTray = assetsProvider.getIcon('trayTemplate') - -function setTooltip(tooltip) { - try { - if (tray) tray.setToolTip(tooltip) - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to setTooltip: ${error}`, - }) - } -} - -let initVanillaTray = () => { - try { - setTooltip('YouTube Music Desktop App') - tray.removeAllListeners() - tray.setContextMenu(contextMenu) - nativeImageIcon = buildTrayIcon(iconTray) - tray.setImage(nativeImageIcon) - tray.addListener('click', () => { - doBehavior(saved_mainWindow) - }) - - tray.addListener('balloon-click', function () { - doBehavior(saved_mainWindow) - }) - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to initVanillaTray: ${error}`, - }) - } -} - -function createTray(mainWindow) { - if (settingsProvider.get('settings-tray-icon')) { - nativeImageIcon = buildTrayIcon(iconTray) - tray = new Tray(nativeImageIcon) - - if (mainWindow) { - saved_mainWindow = mainWindow - - contextMenu = Menu.buildFromTemplate( - popUpMenu(__, saved_mainWindow, mediaControl, app) - ) - } - - if (!systemInfo.isMac()) initVanillaTray() - else setShinyTray() - } -} - -function updateTray(data) { - try { - if (tray) { - const template = popUpMenu(__, saved_mainWindow, mediaControl, app) - - if (data.type === 'audioOutputs') template[11].submenu = data.data - - contextMenu = Menu.buildFromTemplate(template) - - if (!settingsProvider.get('settings-shiny-tray')) - tray.setContextMenu(contextMenu) - } - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to updateTray: ${error}`, - }) - } -} - -function updateTrayIcon(icon) { - try { - if (tray) { - nativeImageIcon = buildTrayIcon(icon) - tray.setImage(nativeImageIcon) - } - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to updateTrayIcon: ${error}`, - }) - } -} - -function buildTrayIcon(icon) { - return nativeImage.createFromPath(icon) -} - -function balloon(title, content, cover, icon) { - if (title && content && cover) { - imageToBase64(cover) - .then((response) => { - _doNotification( - title, - content, - nativeImage.createFromDataURL( - `data:image/jpeg;base64,${response}` - ) - ) - }) - .catch((_) => { - _doNotification( - title, - content, - nativeImage.createFromPath(icon) - ) - }) - } -} - -function balloonEvents(data) { - _doNotification(data.title, data.content, data.icon) -} - -function _doNotification(title, content, icon) { - try { - if (title && content) { - if (systemInfo.isWindows()) { - if (!settingsProvider.get('settings-tray-icon')) { - nativeImageIcon = buildTrayIcon(iconTray) - tray = new Tray(nativeImageIcon) - } - tray.displayBalloon({ - icon: icon, - title: title, - content: content, - noSound: true, - }) - if (!settingsProvider.get('settings-tray-icon')) - setTimeout(() => { - quit() - }, 7 * 1000) - } - // create a system notification and send it - else - new Notification({ - title: title, - body: content, - silent: true, - icon: icon, - urgency: 'low', - }).show() - } - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to _doNotification: ${error}`, - }) - } -} - -function quit() { - tray.destroy() -} - -function setShinyTray() { - try { - if (systemInfo.isMac() && settingsProvider.get('settings-shiny-tray')) { - tray.setContextMenu(null) - tray.removeAllListeners() - tray.on('right-click', () => { - tray.popUpContextMenu(contextMenu) - }) - tray.on('click', (event, bound, position) => { - if (position.x < 32) { - // click at icon - if (!saved_mainWindow.isVisible()) { - saved_mainWindow.show() - } else if (!saved_mainWindow.isFocused()) { - saved_mainWindow.show() - } else saved_mainWindow.hide() - } else if (position.x > 130) - // click play/pause button - mediaControl.playPauseTrack( - saved_mainWindow.getBrowserView() - ) - }) - } else { - // Shiny tray disabled ||| on onther platform - tray.removeAllListeners() - initVanillaTray() - console.log('initVanillaTray') - } - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to setShinyTray: ${error}`, - }) - } -} - -function updateImage(payload) { - try { - if (!settingsProvider.get('settings-shiny-tray') || !tray) return - const img = - typeof nativeImage.createFromDataURL === 'function' - ? nativeImage.createFromDataURL(payload) // electron v0.36+ - : nativeImage.createFromDataUrl(payload) // electron v0.30 - tray.setImage(img) - } catch (error) { - ipcMain.emit('log', { - type: 'warn', - data: `Failed to updateImage: ${error}`, - }) - } -} - -module.exports = { - setTooltip: setTooltip, - createTray: createTray, - updateTray: updateTray, - balloon: balloon, - balloonEvents: balloonEvents, - quit: quit, - setShinyTray: setShinyTray, - updateImage: updateImage, - updateTrayIcon: updateTrayIcon, -} diff --git a/src/providers/updateProvider.js b/src/providers/updateProvider.js deleted file mode 100644 index dac814665..000000000 --- a/src/providers/updateProvider.js +++ /dev/null @@ -1,39 +0,0 @@ -const { autoUpdater } = require('electron-updater') -const settingsProvider = require('./settingsProvider') - -function checkUpdate(mainWindow, view) { - autoUpdater.checkForUpdates().catch((_) => console.log('Error on update')) - - autoUpdater.on('checking-for-update', () => { - // tray.balloon( 'Auto Update', 'Checking for update...' ); - // mainWindow.send( 'downloaded-new-update', true ); - }) - - autoUpdater.on('update-available', (_) => { - // tray.balloon( 'Update Available', 'Auto Update' ); - mainWindow.send('have-new-update') - }) - - autoUpdater.on('update-not-available', (_) => { - // tray.balloon( 'Update not available.', 'Auto Update' ); - }) - - autoUpdater.on('error', (_) => { - // tray.balloon( 'Error in auto-updater.', 'Auto Update' ); - }) - - autoUpdater.on('update-downloaded', (_) => { - // tray.balloon( 'Update downloaded', 'Auto Update' ); - view.webContents.send('downloaded-new-update', true) - settingsProvider.set('has-updated', true) - }) -} - -function quitAndInstall() { - autoUpdater.quitAndInstall() -} - -module.exports = { - checkUpdate: checkUpdate, - quitAndInstall: quitAndInstall, -} diff --git a/src/providers/windowsMediaProvider.js b/src/providers/windowsMediaProvider.js deleted file mode 100644 index 31327e8b0..000000000 --- a/src/providers/windowsMediaProvider.js +++ /dev/null @@ -1,94 +0,0 @@ -const { - MediaPlaybackStatus, - MediaPlaybackType, - SystemMediaTransportControlsButton, -} = require('@nodert-win10-rs4/windows.media') -const { BackgroundMediaPlayer } = require('windows.media.playback') -const { - RandomAccessStreamReference, -} = require('@nodert-win10-rs4/windows.storage.streams') -const { Uri } = require('@nodert-win10-rs4/windows.foundation') - -const mediaControl = require('../providers/mediaProvider') -const settingsProvider = require('./settingsProvider') - -class windowsMediaProvider { - constructor() { - this._view = null - this._isInitialized = false - this._controls = - BackgroundMediaPlayer.current.systemMediaTransportControls - - if (!settingsProvider.get('settings-windows10-media-service-show-info')) - this._controls.isEnabled = false - - this._controls.isChannelDownEnabled = false - this._controls.isChannelUpEnabled = false - this._controls.isFastForwardEnabled = false - this._controls.isRecordEnabled = false - this._controls.isRewindEnabled = false - this._controls.isNextEnabled = true - this._controls.isPauseEnabled = true - this._controls.isPlayEnabled = true - this._controls.isPreviousEnabled = true - - this._controls.playbackStatus = MediaPlaybackStatus.closed - this._controls.displayUpdater.type = MediaPlaybackType.music - - this._controls.displayUpdater.musicProperties.title = 'YouTube Music' - this._controls.displayUpdater.musicProperties.artist = '' - this._controls.displayUpdater.thumbnail = RandomAccessStreamReference.createFromUri( - new Uri('https://avatars1.githubusercontent.com/u/48072485?s=500') - ) - - this._controls.displayUpdater.update() - - this._controls.on('buttonpressed', (sender, eventArgs) => { - switch (eventArgs.button) { - case SystemMediaTransportControlsButton.play: - mediaControl.playPauseTrack(this._view) - break - case SystemMediaTransportControlsButton.pause: - mediaControl.playPauseTrack(this._view) - break - case SystemMediaTransportControlsButton.next: - mediaControl.nextTrack(this._view) - break - case SystemMediaTransportControlsButton.previous: - mediaControl.previousTrack(this._view) - break - default: - break - } - }) - } - - init(view) { - this._view = view - this._isInitialized = true - } - - setPlaybackStatus(status) { - if (this._isInitialized) { - if (status) - this._controls.playbackStatus = MediaPlaybackStatus.paused - else this._controls.playbackStatus = MediaPlaybackStatus.playing - - this._controls.displayUpdater.update() - } - } - - setPlaybackData(title, author, cover, album) { - if (this._isInitialized) { - this._controls.displayUpdater.musicProperties.title = title - this._controls.displayUpdater.musicProperties.artist = author - this._controls.displayUpdater.thumbnail = RandomAccessStreamReference.createFromUri( - new Uri(cover) - ) - this._controls.displayUpdater.musicProperties.albumTitle = album - this._controls.displayUpdater.update() - } - } -} - -module.exports = new windowsMediaProvider() diff --git a/src/utils/calcYTViewSize.js b/src/utils/calcYTViewSize.js deleted file mode 100644 index 987d743e2..000000000 --- a/src/utils/calcYTViewSize.js +++ /dev/null @@ -1,77 +0,0 @@ -const { isLinux, isMac } = require('./systemInfo') - -const PADDING = 1 -const PADDING_MAXIMIZED = 16 -const PADDING_LINUX = 0 - -const TITLE_BAR_HEIGHT = 28 - -const TITLE_BAR_HEIGHT_MAC = 21 - -/** - * @param {settingsProvider} store - * @param window - */ -function calculateYoutubeViewSize(store, window) { - const windowSize = window.getSize() - const isMaximized = window.isMaximized() - const isNiceTitleBarDisabled = store.get('titlebar-type', 'nice') !== 'nice' - const titlebarType = store.get('titlebar-type') - - if (window.isFullScreen()) - return { - x: 0, - y: 0, - width: windowSize[0], - height: windowSize[1], - } - - if (isMac()) { - // IS MAC - const x = PADDING - const y = isNiceTitleBarDisabled - ? PADDING + TITLE_BAR_HEIGHT_MAC - : PADDING + TITLE_BAR_HEIGHT - - return { - x, - y, - width: windowSize[0] - x - PADDING, - height: windowSize[1] - y - PADDING, - } - } else if (isLinux()) { - // IS LINUX - const x = PADDING_LINUX - const y = PADDING_LINUX - - return { - x, - y, - width: windowSize[0] - x, - height: windowSize[1] - y, - } - } else { - // IS WINDOWS - const x = PADDING - const y = isNiceTitleBarDisabled ? PADDING : PADDING + TITLE_BAR_HEIGHT - - return { - x, - y, - width: isMaximized - ? windowSize[0] - x - PADDING_MAXIMIZED - : windowSize[0] - x - PADDING, - height: - titlebarType === 'none' - ? windowSize[1] - : windowSize[1] - - y - - (isMaximized ? PADDING_MAXIMIZED : PADDING) - - (isNiceTitleBarDisabled ? (isMaximized ? 24 : 40) : 0), - } - } -} - -module.exports = { - calcYTViewSize: calculateYoutubeViewSize, -} diff --git a/src/utils/defaultSettings.js b/src/utils/defaultSettings.js deleted file mode 100644 index b9660574e..000000000 --- a/src/utils/defaultSettings.js +++ /dev/null @@ -1,137 +0,0 @@ -const settingsProvider = require('../providers/settingsProvider') -const { isLinux } = require('./systemInfo') -const { app } = require('electron') - -if (isLinux()) settingsProvider.setInitialValue('titlebar-type', 'system') -// With system title bar -else settingsProvider.setInitialValue('titlebar-type', 'nice') // Without system title bar - -settingsProvider.setInitialValue('settings-page-zoom', 100) // 100 - -settingsProvider.setInitialValue('last-fm-login', { - username: '', - password: '', -}) // Empty user and pass - -settingsProvider.setInitialValue('settings-app-language', 'en') // English - -settingsProvider.setInitialValue('settings-miniplayer-size', '200') // Normal size - -settingsProvider.setInitialValue('settings-miniplayer-resizable', false) // Not resizable - -settingsProvider.setInitialValue('settings-miniplayer-show-task', false) // hide from taskbar - -settingsProvider.setInitialValue('settings-miniplayer-always-top', false) // show on top always - -settingsProvider.setInitialValue('settings-miniplayer-stream-config', false) // use base miniplayer - -settingsProvider.setInitialValue('settings-lyrics-provider', '1') // OVH - -settingsProvider.setInitialValue('settings-lyrics-always-top', false) // show on top always - -settingsProvider.setInitialValue('settings-companion-server-protect', true) // Yes - -settingsProvider.setInitialValue('settings-enable-player-bgcolor', false) - -settingsProvider.setInitialValue( - // Random token - 'settings-companion-server-token', - Math.random().toString(36).substr(2, 5).toUpperCase() -) - -settingsProvider.setInitialValue( - 'settings-enable-double-tapping-show-hide', - true -) // Yes - -settingsProvider.setInitialValue('settings-enable-taskbar-progressbar', true) // Yes - -settingsProvider.setInitialValue('settings-accelerators', { - 'media-play-pause': 'CmdOrCtrl+Shift+Space', - 'media-track-next': 'CmdOrCtrl+Shift+PageUp', - 'media-track-previous': 'CmdOrCtrl+Shift+PageDown', - 'media-track-like': 'CmdOrCtrl+Shift+L', - 'media-track-dislike': 'CmdOrCtrl+Shift+D', - 'media-volume-up': 'CmdOrCtrl+Shift+Up', - 'media-volume-down': 'CmdOrCtrl+Shift+Down', -}) - -let accelerators = settingsProvider.get('settings-accelerators') -if (!accelerators['media-volume-up']) { - accelerators['media-volume-up'] = 'CmdOrCtrl+Shift+Up' - accelerators['media-volume-down'] = 'CmdOrCtrl+Shift+Down' - settingsProvider.set('settings-accelerators', accelerators) -} - -if (!accelerators['miniplayer-open-close']) { - accelerators['miniplayer-open-close'] = 'CmdOrCtrl+Shift+M' - settingsProvider.set('settings-accelerators', accelerators) -} - -settingsProvider.setInitialValue('has-updated', false) - -settingsProvider.setInitialValue('discord-presence-settings', { - details: true, - state: true, - time: true, - hideIdle: true, -}) - -settingsProvider.setInitialValue( - 'settings-disable-hardware-acceleration', - false -) - -settingsProvider.setInitialValue('settings-windows10-media-service', false) - -settingsProvider.setInitialValue( - 'settings-windows10-media-service-show-info', - false -) - -settingsProvider.setInitialValue('settings-shortcut-buttons', { - miniplayer: true, - lyrics: true, - 'add-to-library': true, - 'add-to-playlist': true, -}) - -settingsProvider.setInitialValue('settings-skip-track-disliked', false) - -settingsProvider.setInitialValue('settings-skip-track-shorter-than', '0') - -settingsProvider.setInitialValue('settings-clipboard-always-ask-read', true) - -settingsProvider.setInitialValue('settings-tray-icon', true) - -settingsProvider.setInitialValue('settings-volume', 100) - -settingsProvider.setInitialValue('settings-volume-media-keys', false) - -settingsProvider.setInitialValue('settings-decibel-volume', true) - -settingsProvider.setInitialValue( - 'settings-shiny-tray-song-title-rollable', - true -) -settingsProvider.setInitialValue( - 'settings-locales-path', - app.getPath('userData') -) - -settingsProvider.setInitialValue('settings-pause-on-suspend', false) - -settingsProvider.setInitialValue('settings-disable-analytics', false) - -settingsProvider.setInitialValue('settings-surround-sound', false) - -// Please note that this is a setting which is not displayed to the user, but will be used in the application. -settingsProvider.setInitialValue( - 'user-agent', - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0' -) - -// Update the User agent in the future via the Application side. -// if (settingsProvider.get('user-agent') === 'previous-useragent') { -// settingsProvider.setInitialValue('user-agent', 'Updated Useragent'); -// } diff --git a/src/utils/fileSystem.js b/src/utils/fileSystem.js deleted file mode 100644 index 1651be397..000000000 --- a/src/utils/fileSystem.js +++ /dev/null @@ -1,40 +0,0 @@ -const fs = require('fs') -const path = require('path') - -function _createDir(path) { - fs.mkdirSync(path, { recursive: true }) -} - -function _getDir(path) { - return fs.readdirSync(path) -} - -function _writeFile(path, data) { - fs.writeFileSync(path, data, { flag: 'w+' }) -} - -function _readFile(path) { - return fs.readFileSync(path) -} - -function _checkIfExists(path) { - return fs.existsSync(path) -} - -function _getAppDocumentsPath(app) { - return path.join(app.getPath('documents'), app.name) -} - -function _getAppDataPath(app) { - return path.join(app.getPath('appData'), app.name) -} - -module.exports = { - createDir: _createDir, - getDir: _getDir, - writeFile: _writeFile, - readFile: _readFile, - checkIfExists: _checkIfExists, - getAppDocumentsPath: _getAppDocumentsPath, - getAppDataPath: _getAppDataPath, -} diff --git a/src/utils/injectControls.js b/src/utils/injectControls.js deleted file mode 100644 index fa67db8df..000000000 --- a/src/utils/injectControls.js +++ /dev/null @@ -1,1063 +0,0 @@ -const { ipcRenderer } = require('electron') - -// FIXME: This should not be sync IPC -const translate = (id, params) => - ipcRenderer.sendSync('I18N_TRANSLATE', id, params) - -// FIXME: This should not be sync IPC -const settingsGet = (key) => ipcRenderer.sendSync('SETTINGS_GET', key) - -const settingsOnDidChange = (key, cb) => { - ipcRenderer.on(`SETTINGS_NOTIFY_${key}`, (e, newValue, oldValue) => - cb({ newValue, oldValue }) - ) - ipcRenderer.send('SETTINGS_SUBSCRIBE', key) -} - -const isWindows = () => { - return process.platform === 'win32' -} - -window.addEventListener('load', () => { - createContextMenu() - createPlayerColorRules() - - const { hostname } = window.location - if (hostname === 'music.youtube.com') { - createTopMiddleContent() - createTopRightContent() - createBottomPlayerBarContent() - playerBarScrollToChangeVolume() - enableAVSwitcher() - - } else createOffTheRoadContent() - - // injectCast() - loadAudioOutputList() -}) - -function createContextMenu() { - try { - const materialIcons = document.createElement('link') - materialIcons.setAttribute( - 'href', - 'https://fonts.googleapis.com/icon?family=Material+Icons' - ) - materialIcons.setAttribute('rel', 'stylesheet') - - document.body.prepend(materialIcons) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createContextMenu', - }) - } - - try { - const css = document.createElement('style') - css.appendChild( - document.createTextNode( - ` - #ytmd-menu { - visibility: hidden; - opacity: 0; - position: fixed; - background: #232323; - font-family: sans-serif; - - -webkit-transition: opacity .2s ease-in-out; - transition: opacity .2s ease-in-out; - - padding: 0 !important; - - border: 1px solid rgba(255, 255, 255, .08) !important; - border-radius: 2px !important; - - z-index: 999999 !important; - - width: 144px; - } - - #ytmd-menu a { - color: #AAA; - display: inline-block; - cursor: pointer; - - padding: 10px 12px 6px 12px; - } - - #ytmd-menu a:hover { - background-color: rgba(255, 255, 255, 0.1); - } - - .divider { - border: 1px solid rgba(255, 255, 255, 0.1) !important; - height: 21px; - display: inline-block; - } - - .hide { - visibility: hidden; - width: 0 !important; - height: 0 !important; - margin: 0 !important; - padding: 0 !important; - } - - .pointer { - cursor: pointer; - } - - .shine:hover { - color: #FFF !important; - } - - .ytmd-icons { - margin: 0 18px 0 2px !important; - color: rgba(255, 255, 255, 0.5) !important; - } - - .ytmd-button-rounded { - margin: 0 0 0 10px; - - width: 40px; - height: 40px; - - padding: 6px; - - border: 0; - - color: #999; - - background: rgba(255, 255, 255, 0); - border-radius: 50%; - } - - .ytmd-button-rounded:hover { - background: rgba(255, 255, 255, .1); - } - - .ytmd-icons-middle { - margin: 0 10px 0 18px !important; - } - - .center-content { - padding-top: 12px; - } - - .btn-disabled { - color: #000 !important; - } - - .text-red { - color: red !important; - } - - .ytmd-modal { - display: none; /* Hidden by default */ - position: fixed; /* Stay in place */ - z-index: 99; /* Sit on top */ - left: 0; - top: 0; - width: 100%; /* Full width */ - height: 100%; /* Full height */ - background-color: rgb(0,0,0); /* Fallback color */ - background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ - overflow: hidden - } - - /* Modal Content */ - .ytmd-modal-content { - background: #232323; - font-family: Arial, Helvetica, sans-serif; - padding: 20px; - border: 1px solid #888; - width: 80%; - max-width: 300px; - transition: 0.3s; - color: white; - opacity: 95%; - font-size: 15px; - } - - .ytmd-modal-content-title { - color: white; - opacity: 100% !important; - margin: 0; - width: 100%; - font-size: 20px; - padding-bottom: 5px; - } - .ytmd-modal-close { - color: #aaaaaa; - float: right; - font-size: 28px; - font-weight: bold; - } - - .ytmd-modal-close:hover, - .ytmd-modal-close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - } - ` - ) - ) - document.head.appendChild(css) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createContextMenu insertCSS', - }) - } - - let quickShortcuts = '' - quickShortcuts += `music_note` - quickShortcuts += `picture_in_picture_alt` - quickShortcuts += `bug_report` - - try { - const menuDiv = document.createElement('div') - menuDiv.setAttribute('id', 'ytmd-menu') - menuDiv.innerHTML = quickShortcuts - document.body.prepend(menuDiv) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createContextMenu prepend', - }) - } - - // LISTENERS FOR MENU OPTIONS - try { - const menuElement = document.getElementById('ytmd-menu').style - - const buttonOpenCompanion = document.getElementById( - 'ytmd-menu-companion-server' - ) - const buttonOpenMiniplayer = document.getElementById( - 'ytmd-menu-miniplayer' - ) - const buttonOpenLyrics = document.getElementById('ytmd-menu-lyrics') - const buttonOpenBugReport = document.getElementById( - 'ytmd-menu-bug-report' - ) - const buttonPageOpenMiniplayer = document.getElementsByClassName( - 'player-minimize-button ytmusic-player' - )[0] - - document.addEventListener( - 'contextmenu', - (e) => { - const posX = e.clientX - const posY = e.clientY - showMenu(posX, posY) - e.preventDefault() - }, - false - ) - document.addEventListener( - 'click', - (_) => { - menuElement.opacity = '0' - setTimeout(() => { - menuElement.visibility = 'hidden' - }, 501) - }, - false - ) - - if (buttonOpenCompanion) - buttonOpenCompanion.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-companion' }) - }) - - if (buttonOpenLyrics) - buttonOpenLyrics.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-lyrics' }) - }) - - if (buttonOpenMiniplayer) - buttonOpenMiniplayer.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-miniplayer' }) - }) - - if (buttonPageOpenMiniplayer) - buttonPageOpenMiniplayer.addEventListener('click', (_) => { - /* Temporary fix */ - document - .getElementsByClassName( - 'player-maximize-button ytmusic-player' - )[0] - .click() - ipcRenderer.send('window', { command: 'show-miniplayer' }) - }) - - if (buttonOpenBugReport) - buttonOpenBugReport.addEventListener('click', () => { - ipcRenderer.send('bug-report') - }) - - // TODO: This shouldn't be here - function showMenu(x, y) { - menuElement.top = y + 'px' - menuElement.left = x + 'px' - menuElement.visibility = 'visible' - menuElement.opacity = '1' - } - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createContextMenu listeners', - }) - } -} - -function createTopMiddleContent() { - try { - const center_content = document.getElementsByTagName( - 'ytmusic-pivot-bar-renderer' - )[0] - - // HISTORY BACK - const back_element = document.createElement('i') - back_element.id = 'ytmd_history_back' - back_element.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons', - 'center-content' - ) - back_element.innerText = 'keyboard_backspace' - - back_element.addEventListener('click', function () { - history.go(-1) - }) - - // HISTORY FORWARD - const forward_element = document.createElement('i') - forward_element.id = 'ytmd_history_forward' - forward_element.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons', - 'center-content' - ) - forward_element.style.cssText = 'transform: rotate(180deg);' - forward_element.innerText = 'keyboard_backspace' - - forward_element.addEventListener('click', function () { - history.forward() - }) - - center_content.prepend(forward_element) - center_content.prepend(back_element) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createTopMiddleContent', - }) - } -} - -function createTopRightContent() { - const settingsRemoteServer = settingsGet('settings-companion-server') - - // ADD BUTTONS TO RIGHT CONTENT (side to the photo) - try { - const right_content = document.getElementById('right-content') - - //SHUTDOWN - if (!isWindows()) { - const elementShutdown = document.createElement('i') - elementShutdown.id = 'ytmd_shutdown' - elementShutdown.title = translate('LABEL_SHUTDOWN') - elementShutdown.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons' - ) - elementShutdown.innerText = 'power_settings_new' - - elementShutdown.addEventListener('click', function () { - ipcRenderer.send('closed') - }) - - right_content.prepend(elementShutdown) - } - - // SETTINGS - const elementSettings = document.createElement('i') - elementSettings.id = 'ytmd_settings' - elementSettings.title = translate('LABEL_SETTINGS') - elementSettings.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons' - ) - elementSettings.innerText = 'settings' - - elementSettings.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-settings' }) - }) - - right_content.prepend(elementSettings) - - // REMOTE SERVER - const elementRemoteServer = document.createElement('i') - elementRemoteServer.id = 'ytmd_remote_server' - elementRemoteServer.title = translate( - 'LABEL_SETTINGS_TAB_GENERAL_COMPANION_SERVER' - ) - elementRemoteServer.classList.add( - 'material-icons', - 'pointer', - 'shine', - 'ytmd-icons', - 'hide' - ) - elementRemoteServer.innerText = 'devices_other' - - elementRemoteServer.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-companion' }) - }) - - right_content.prepend(elementRemoteServer) - - if (settingsRemoteServer) - document - .getElementById('ytmd_remote_server') - .classList.remove('hide') - - settingsOnDidChange('settings-companion-server', (data) => { - if (data.newValue) - document - .getElementById('ytmd_remote_server') - .classList.remove('hide') - else - document - .getElementById('ytmd_remote_server') - .classList.add('hide') - }) - - // UPDATE - const elementUpdate = document.createElement('i') - elementUpdate.id = 'ytmd_update' - elementUpdate.classList.add( - 'material-icons', - 'green-text', - 'pointer', - 'shine', - 'ytmd-icons', - 'hide' - ) - elementUpdate.style.color = '#4CAF50' - elementUpdate.innerText = 'arrow_downward' - - elementUpdate.addEventListener('click', () => { - ipcRenderer.send('btn-update-clicked', true) - }) - - right_content.prepend(elementUpdate) - - ipcRenderer.on('downloaded-new-update', (e, data) => { - document.getElementById('ytmd_update').classList.remove('hide') - }) - } catch (err) { - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createTopRightContent', - }) - } -} - -function createPlayerColorRules() { - try { - const css = document.createElement('style') - css.appendChild( - document.createTextNode( - ` - :root{ - --ytm-album-color-muted: #000000; - --ytm-album-color-vibrant: #232323; - } - - ytmusic-app-layout{ - --ytmusic-nav-bar: #000000; /* default for collapsed player */ - } - - ytmusic-app-layout.content-scrolled{ - --ytmusic-nav-bar: #232323; /* default for collapsed player */ - } - - body[accent-enabled] ytmusic-app-layout[player-page-open_]{ - --ytmusic-nav-bar: var(--ytm-album-color-muted); - --ytmusic-brand-background-solid: var(--ytm-album-color-vibrant); - } - - body[accent-enabled] #progress-bar { - --paper-slider-active-color: white; - --paper-slider-knob-color: transparent; - } - - body[accent-enabled] yt-page-navigation-progress{ - --yt-page-navigation-container-color: #232323; - --yt-page-navigation-progress-color: white; - } - - body[accent-enabled][player-open] yt-page-navigation-progress{ - --yt-page-navigation-container-color: var(--ytm-album-color-muted); - --yt-page-navigation-progress-color: white; - } - - body[accent-enabled] #player-page{ - background: var(--ytm-album-color-muted); - } - - body[accent-enabled] #progress-bar.ytmusic-player-bar[focused], - body[accent-enabled] ytmusic-player-bar:hover #progress-bar.ytmusic-player-bar{ - --paper-slider-knob-color: white; - } - ` - ) - ) - document.head.appendChild(css) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createPlayerColorRules insertCSS', - }) - } -} - -function createBottomPlayerBarContent() { - const shortcutButtons = settingsGet('settings-shortcut-buttons') - - try { - const playerBarRightControls = document.querySelector( - '.right-controls-buttons.ytmusic-player-bar' - ) - const playerBarMiddleControls = document.querySelector( - '.middle-controls-buttons.ytmusic-player-bar' - ) - - // Middle //////////////////////////////////////////////////////////////////////////////////// - // Add to Playlist - const elementAddToPlaylistIcon = document.createElement('i') - const elementAddToPlaylistButton = document.createElement('button') - - elementAddToPlaylistIcon.id = 'ytmd_add_to_playlist' - elementAddToPlaylistIcon.title = translate('ADD_TO_PLAYLIST') - elementAddToPlaylistIcon.classList.add('material-icons') - elementAddToPlaylistIcon.innerText = 'playlist_add' - - elementAddToPlaylistButton.id = 'btn_ytmd_add_to_playlist' - elementAddToPlaylistButton.classList.add('ytmd-button-rounded', 'hide') - elementAddToPlaylistButton.append(elementAddToPlaylistIcon) - - elementAddToPlaylistButton.addEventListener('click', () => { - const popup = document.querySelector('.ytmusic-menu-popup-renderer') - const addPlaylist = Array.from(popup.children) - .filter( - (value) => - value - .querySelector('g path:not([fill])') - .getAttribute('d') === - 'M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z' - )[0] - .querySelector('a') - addPlaylist.click() - }) - - playerBarMiddleControls.insertBefore( - elementAddToPlaylistButton, - playerBarMiddleControls.children.item(1) - ) - - if (shortcutButtons['add-to-playlist']) - document - .querySelector('#btn_ytmd_add_to_playlist') - .classList.remove('hide') - - settingsOnDidChange( - 'settings-shortcut-buttons.add-to-playlist', - (data) => { - if (data.newValue) - document - .querySelector('#btn_ytmd_add_to_playlist') - .classList.remove('hide') - else - document - .querySelector('#btn_ytmd_add_to_playlist') - .classList.add('hide') - } - ) - - // Add to Library - const elementAddToLibraryIcon = document.createElement('i') - const elementAddToLibraryButton = document.createElement('button') - - elementAddToLibraryIcon.id = 'ytmd_add_to_library' - elementAddToLibraryIcon.title = translate('ADD_TO_LIBRARY') - elementAddToLibraryIcon.classList.add('material-icons') - elementAddToLibraryIcon.innerText = 'library_add' - elementAddToLibraryButton.id = 'btn_ytmd_add_to_library' - elementAddToLibraryButton.classList.add('ytmd-button-rounded', 'hide') - elementAddToLibraryButton.append(elementAddToLibraryIcon) - - elementAddToLibraryButton.addEventListener('click', () => { - ipcRenderer.send('media-command', { command: 'media-add-library' }) - }) - - playerBarMiddleControls.insertBefore( - elementAddToLibraryButton, - playerBarMiddleControls.children.item(1) - ) - - let showAddToLibrary = false - if (shortcutButtons['add-to-library']) { - document - .querySelector('#btn_ytmd_add_to_library') - .classList.remove('hide') - showAddToLibrary = true - } - - settingsOnDidChange( - 'settings-shortcut-buttons.add-to-library', - (data) => { - if (data.newValue) { - showAddToLibrary = true - document - .querySelector('#btn_ytmd_add_to_library') - .classList.remove('hide') - } else { - showAddToLibrary = false - document - .querySelector('#btn_ytmd_add_to_library') - .classList.add('hide') - } - } - ) - - setInterval(() => { - const popup = document.querySelector('.ytmusic-menu-popup-renderer') - let addLibrary - if (popup) { - addLibrary = Array.from(popup.children).filter( - (value) => - value - .querySelector('g path:not([fill])') - .getAttribute('d') === - 'M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z' || - value - .querySelector('g path:not([fill])') - .getAttribute('d') === - 'M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z' - )[0] - } - - if (addLibrary !== undefined && showAddToLibrary) { - const _d = addLibrary - .querySelector('g path:not([fill])') - .getAttribute('d') - - if ( - _d === - 'M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z' - ) { - document.querySelector('#ytmd_add_to_library').innerText = - 'check' - document.querySelector( - '#ytmd_add_to_library' - ).title = translate('REMOVE_FROM_LIBRARY') - } else { - document.querySelector('#ytmd_add_to_library').innerText = - 'library_add' - document.querySelector( - '#ytmd_add_to_library' - ).title = translate('ADD_TO_LIBRARY') - } - document - .querySelector('#btn_ytmd_add_to_library') - .classList.remove('hide') - } else - document - .querySelector('#btn_ytmd_add_to_library') - .classList.add('hide') - }, 800) - - // Right //////////////////////////////////////////////////////////////////////////////////// - // Lyrics - const elementLyrics = document.createElement('i') - elementLyrics.id = 'ytmd_lyrics' - elementLyrics.title = translate('LYRICS') - elementLyrics.classList.add( - 'material-icons', - 'pointer', - 'ytmd-icons', - 'hide' - ) - elementLyrics.innerText = 'music_note' - - elementLyrics.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-lyrics' }) - }) - playerBarRightControls.append(elementLyrics) - - if (shortcutButtons.lyrics) - document.querySelector('#ytmd_lyrics').classList.remove('hide') - - settingsOnDidChange('settings-shortcut-buttons.lyrics', (data) => { - if (data.newValue) { - document.querySelector('#ytmd_lyrics').classList.remove('hide') - document - .querySelector('#ytmd_lyrics') - .classList.add('ytmd-icons') - } else { - document.querySelector('#ytmd_lyrics').classList.add('hide') - document - .querySelector('#ytmd_lyrics') - .classList.remove('ytmd-icons') - } - }) - - // Miniplayer - const elementMiniplayer = document.createElement('i') - elementMiniplayer.id = 'ytmd_miniplayer' - elementMiniplayer.title = translate('MINIPLAYER') - elementMiniplayer.classList.add( - 'material-icons', - 'pointer', - 'ytmd-icons', - 'hide' - ) - elementMiniplayer.innerText = 'picture_in_picture_alt' - - elementMiniplayer.addEventListener('click', () => { - ipcRenderer.send('window', { command: 'show-miniplayer' }) - }) - playerBarRightControls.append(elementMiniplayer) - - // Sleep timer - const elementSleepTimer = document.createElement('i') - elementSleepTimer.id = 'ytmd_sleeptimer' - elementSleepTimer.title = translate('SLEEPTIMER') - elementSleepTimer.classList.add( - 'material-icons', - 'pointer', - 'ytmd-icons' - ) - elementSleepTimer.innerText = 'timer' - - const elementSleepTimerModal = document.createElement('div') - const elementSleepTimerModalContent = document.createElement('div') - const elementSleepTimerSet = document.createElement('button') - const elementSleepTimerClear = document.createElement('button') - const elementSleepTimerCloseModal = document.createElement('span') - - elementSleepTimerModal.classList.add('ytmd-modal') - elementSleepTimerModal.id = 'ytmd_sleeptimer_modal' - elementSleepTimerModal.append(elementSleepTimerModalContent) - - elementSleepTimerModalContent.innerHTML = ` -

${translate( - 'SLEEPTIMER' - )}

-
${translate('SLEEP_BY_TIME')} -
- - - - - - -
- -
-
${translate('SLEEP_BY_COUNTER')} -
- - - - - - -
- -
- ` - elementSleepTimerModalContent.append(elementSleepTimerSet) - elementSleepTimerModalContent.append(elementSleepTimerClear) - - elementSleepTimerModalContent.prepend(elementSleepTimerCloseModal) - - elementSleepTimer.addEventListener('click', (e) => { - ipcRenderer.send('retrieve-sleep-timer') - elementSleepTimerModal.style.display = 'block' - elementSleepTimerModalContent.style.marginLeft = e.x + 'px' // pop out at mouse position - elementSleepTimerModalContent.style.marginTop = e.y + 'px' - elementSleepTimerModalContent.style.transform = - 'translate(-50%, -50%) scale(0)' // animation - setTimeout(() => { - elementSleepTimerModalContent.style.transform = - 'translate(-100%, -100%) scale(1)' - }, 10) // animation - }) - - elementSleepTimerCloseModal.innerHTML = '×' - elementSleepTimerCloseModal.classList.add('ytmd-modal-close') - elementSleepTimerCloseModal.addEventListener('click', () => { - elementSleepTimerModal.style.display = 'none' - }) - elementSleepTimerModal.addEventListener('click', (e) => { - if (e.target === elementSleepTimerModal) - elementSleepTimerModal.style.display = 'none' // close modal - }) - - elementSleepTimerModalContent.classList.add('ytmd-modal-content') - - elementSleepTimerSet.innerText = translate('SLEEPTIMER_SET') - - elementSleepTimerSet.addEventListener('click', () => { - var value = document.querySelector( - 'input[name="sleep_timer"]:checked' - ).value - if (value) { - ipcRenderer.send('set-sleep-timer', { value: value }) - elementSleepTimerModal.style.display = 'none' - } - }) - - elementSleepTimerClear.innerText = translate('SLEEPTIMER_CLEAR') - elementSleepTimerClear.style.marginLeft = '15px' - elementSleepTimerClear.addEventListener('click', () => { - ipcRenderer.send('set-sleep-timer', { value: 0 }) - elementSleepTimerModal.style.display = 'none' - }) - playerBarRightControls.append(elementSleepTimer) - document.body.append(elementSleepTimerModal) - - document.getElementById( - 'sleep-timer-minutes' - ).onkeydown = document.getElementById( - // use the same function when change/keydown - 'sleep-timer-minutes' - ).onchange = (e) => { - var radio = document.getElementById('sleep-timer-customized') - radio.checked = true - radio.value = parseInt(e.target.value) - } - - document.getElementById( - 'sleep-timer-songs' - ).onkeydown = document.getElementById('sleep-timer-songs').onchange = ( - // use the same function when change/keydown - e - ) => { - var radio = document.getElementById('sleep-timer-customized-c') - radio.checked = true - radio.value = parseInt(e.target.value) + 'c' - } - - ipcRenderer.on('sleep-timer-info', (_, mode, counter) => { - if (mode == 'time') { - elementSleepTimerClear.disabled = false - elementSleepTimerSet.innerText = translate('SLEEPTIMER_RESET') - var radio = document.getElementById('sleep-timer-customized') - radio.checked = true - radio.value = counter - document.getElementById('sleep-timer-minutes').value = counter - } else if (mode == 'counter') { - elementSleepTimerClear.disabled = false - elementSleepTimerSet.innerText = translate('SLEEPTIMER_RESET') - var radio = document.getElementById('sleep-timer-customized-c') - radio.checked = true - radio.value = counter - document.getElementById('sleep-timer-songs').value = counter - } else { - elementSleepTimerClear.disabled = true - elementSleepTimerSet.innerText = translate('SLEEPTIMER_SET') - } - }) - - if (shortcutButtons.miniplayer) - document.querySelector('#ytmd_miniplayer').classList.remove('hide') - - settingsOnDidChange('settings-shortcut-buttons.miniplayer', (data) => { - if (data.newValue) { - document - .querySelector('#ytmd_miniplayer') - .classList.remove('hide') - document - .querySelector('#ytmd_miniplayer') - .classList.add('ytmd-icons') - } else { - document.querySelector('#ytmd_miniplayer').classList.add('hide') - document - .querySelector('#ytmd_miniplayer') - .classList.remove('ytmd-icons') - } - }) - - // Volume slider - document.querySelector('#volume-slider').setAttribute('step', 0) - document.querySelector('#expand-volume-slider').setAttribute('step', 0) - document - .querySelector('#volume-slider') - .addEventListener('value-change', (e) => { - ipcRenderer.send('change-volume', { - volume: e.target.getAttribute('value'), - }) - }) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createBottomPlayerBarContent', - }) - } -} - -function enableAVSwitcher() { - const player = document.getElementById('player') - const player_page = document.getElementById('player-page') - - player.setAttribute('has-av-switcher', '') - player_page.setAttribute('has-av-switcher', '') -} - -function playerBarScrollToChangeVolume() { - try { - const playerBar = document.getElementsByTagName('ytmusic-player-bar')[0] - - const volumeSlider = document.getElementById('volume-slider') - let isVolumeSliderHovered = false - volumeSlider.addEventListener( - 'mouseover', - () => (isVolumeSliderHovered = true) - ) - volumeSlider.addEventListener( - 'mouseout', - () => (isVolumeSliderHovered = false) - ) - - const expandVolumeSlider = document.getElementById( - 'expand-volume-slider' - ) - let isExpandVolumeSliderHovered = false - expandVolumeSlider.addEventListener( - 'mouseover', - () => (isExpandVolumeSliderHovered = true) - ) - expandVolumeSlider.addEventListener( - 'mouseout', - () => (isExpandVolumeSliderHovered = false) - ) - - const isSliderHovered = () => - isExpandVolumeSliderHovered || isVolumeSliderHovered - - playerBar.addEventListener('wheel', (ev) => { - ev.preventDefault() - if (!settingsGet('settings-decibel-volume') && isSliderHovered()) { - return - } - - if (ev.deltaY < 0) - ipcRenderer.send('media-command', { - command: 'media-volume-up', - }) - else - ipcRenderer.send('media-command', { - command: 'media-volume-down', - }) - }) - } catch (err) { - console.error(err) - ipcRenderer.send('log', { - type: 'warn', - data: 'error on playerBarScrollToChangeVolume', - }) - } -} - -function createOffTheRoadContent() { - try { - const { body } = document - - const elementBack = document.createElement('i') - elementBack.id = 'ytmd_lyrics' - elementBack.classList.add('material-icons') - elementBack.style.cursor = 'pointer' - elementBack.style.fontSize = '42px' - elementBack.style.zIndex = '9999999' - elementBack.style.position = 'fixed' - elementBack.style.cssFloat = 'left' - elementBack.style.boxShadow = '0 0 2px #111' - elementBack.style.background = '#1D1D1D' - elementBack.style.color = '#FFF' - elementBack.innerText = 'arrow_back' - - elementBack.addEventListener('click', () => { - ipcRenderer.send('reset-url') - }) - - body.prepend(elementBack) - } catch (err) { - ipcRenderer.send('log', { - type: 'warn', - data: 'error on createOffTheRoadContent', - }) - } -} - -function injectCast() { - // content - // .executeJavaScript( - // ` - // // Todo - // ` - // ) - // .then((data) => { - // console.log(data) - // }) - // .catch((err) => { - // console.log(err) - // }) -} - -function loadAudioOutputList() { - navigator.mediaDevices.enumerateDevices().then((devices) => { - audioDevices = devices.filter((device) => device.kind === 'audiooutput') - - ipcRenderer.send( - 'set-audio-output-list', - audioDevices.length ? JSON.stringify(audioDevices) : '[]' - ) - }) -} - -navigator.mediaDevices.ondevicechange = loadAudioOutputList diff --git a/src/utils/systemInfo.js b/src/utils/systemInfo.js deleted file mode 100644 index 50f2faa20..000000000 --- a/src/utils/systemInfo.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * system-info.js - * Utils for System info - */ - -function isWindows() { - return process.platform === 'win32' -} - -function isLinux() { - return ( - process.platform === 'freebsd' || - process.platform === 'linux' || - process.platform === 'openbsd' - ) -} - -function isMac() { - return process.platform === 'darwin' -} - -module.exports = { - isWindows: isWindows, - isLinux: isLinux, - isMac: isMac, -} diff --git a/src/utils/window.js b/src/utils/window.js deleted file mode 100644 index 74483b65d..000000000 --- a/src/utils/window.js +++ /dev/null @@ -1,86 +0,0 @@ -const { screen, ipcMain } = require('electron') - -function create() { - // for create window -} - -function checkWindowPosition(windowPosition, windowSize) { - return new Promise((resolve, reject) => { - try { - if (!windowPosition || !windowSize) { - reject(false) - return - } - - let nearestDisplay = screen.getDisplayMatching({ - x: windowPosition.x, - y: windowPosition.y, - width: windowSize.width, - height: windowSize.height, - }) - let nearestDisplayBounds = nearestDisplay.bounds - - var position = { - x: windowPosition.x, - y: windowPosition.y, - } - - // The reason for + 64 in window sizes is because 1px inside nearest display is considered visible but not user friendly as it's quite well hidden and could prevent dragging - if ( - windowPosition && - windowSize && - windowPosition.x - (windowSize.width + 64) > - nearestDisplayBounds.x - ) { - position.x = windowPosition.x - nearestDisplayBounds.width - } - - if ( - windowPosition && - windowSize && - windowPosition.x + (windowSize.width + 64) < - nearestDisplayBounds.x - ) { - position.x = windowPosition.x + nearestDisplayBounds.width - } - - if ( - windowPosition && - windowSize && - windowPosition.y - (windowSize.height + 64) > - nearestDisplayBounds.y - ) { - position.y = windowPosition.y - nearestDisplayBounds.height - } - - if ( - windowPosition && - windowSize && - windowPosition.y + (windowSize.height + 64) < - nearestDisplayBounds.y - ) { - position.y = windowPosition.y + nearestDisplayBounds.height - } - - resolve(position) - } catch (err) { - console.log('error -> checkWindowPosition', err) - reject(false) - } - }) -} - -function doBehavior(mainWindow) { - if (mainWindow.isVisible()) - if (mainWindow.isFocused()) mainWindow.hide() - else mainWindow.show() - else if (mainWindow.isFocused()) - ipcMain.emit('window', { command: 'restore-main-window' }) - else ipcMain.emit('window', { command: 'restore-main-window' }) -} - -module.exports = { - create: create, - checkWindowPosition: checkWindowPosition, - doBehavior: doBehavior, -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index b22e527aa..000000000 --- a/yarn.lock +++ /dev/null @@ -1,4299 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== - -"@babel/code-frame@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime@^7.7.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@develar/schema-utils@~2.6.5": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" - integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -"@electron/get@^1.0.1": - version "1.12.2" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" - integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - sanitize-filename "^1.6.2" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" - -"@jimp/bmp@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624" - integrity sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - bmp-js "^0.1.0" - core-js "^3.4.1" - -"@jimp/core@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.9.8.tgz#b2b74263a80559c0ee244e0f2d1052b36a358b85" - integrity sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - any-base "^1.1.0" - buffer "^5.2.0" - core-js "^3.4.1" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "^0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" - -"@jimp/custom@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.9.8.tgz#1e9d904b1b05aa22b00b899baba2be7c0704a5d1" - integrity sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/core" "^0.9.8" - core-js "^3.4.1" - -"@jimp/gif@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.9.8.tgz#513aff511634c338d1ab33a7bba1ba3412220b5b" - integrity sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - omggif "^1.0.9" - -"@jimp/jpeg@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.9.8.tgz#8c086f69d0e8c46e43a7db9725576edc30925cb1" - integrity sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - jpeg-js "^0.3.4" - -"@jimp/plugin-resize@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz#eef750b77f1cc06e8bcf9b390860c95c489dcc02" - integrity sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/png@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.9.8.tgz#f88dacc9b9da1c2ea8e91026a9530d0fb45c4409" - integrity sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - pngjs "^3.3.3" - -"@jimp/tiff@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.9.8.tgz#91dc3eab2f222e23414f139e917f3407caa73560" - integrity sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow== - dependencies: - "@babel/runtime" "^7.7.2" - core-js "^3.4.1" - utif "^2.0.1" - -"@jimp/types@^0.9.3": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.9.8.tgz#46980a4a7bfcadf2f0484d187c32b4e7d6d61b8e" - integrity sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/bmp" "^0.9.8" - "@jimp/gif" "^0.9.8" - "@jimp/jpeg" "^0.9.8" - "@jimp/png" "^0.9.8" - "@jimp/tiff" "^0.9.8" - core-js "^3.4.1" - timm "^1.6.1" - -"@jimp/utils@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.9.8.tgz#6a6f47158ec6b424f03df0f55f0baff5b4b5e096" - integrity sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw== - dependencies: - "@babel/runtime" "^7.7.2" - core-js "^3.4.1" - -"@malept/cross-spawn-promise@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.0.tgz#258fde4098f5004a56db67c35f33033af64810f6" - integrity sha512-GeIK5rfU1Yd7BZJQPTGZMMmcZy5nhRToPXZcjaDwQDRSewdhp648GT2E4dh+L7+Io7AOW6WQ+GR44QSzja4qxg== - dependencies: - cross-spawn "^7.0.1" - -"@nodert-win10-rs4/windows.foundation@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.foundation/-/windows.foundation-0.4.4.tgz#9a488824b8b677ee5711347cfaf97c62592f2708" - integrity sha512-gA/jMwvKkEm+AFyIc9L6TZvP+DjcL54gkTOY0Izvcfmj3ctUiLFUqs1MdBJ5fjhTi0COPRhoq2eDSNl6t3IWEg== - dependencies: - nan latest - -"@nodert-win10-rs4/windows.media@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.media/-/windows.media-0.4.4.tgz#dcf358fb49e479a5a48aeb6e8e4aff45a85eb086" - integrity sha512-y5oGRVOBLlFVHP65LuG8YHhkfC8tR/o3USfsiAkTDyky6mXkba8wzthlVACMWpxJ7cRpFloznELpwnci75rocA== - dependencies: - nan latest - -"@nodert-win10-rs4/windows.storage.streams@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@nodert-win10-rs4/windows.storage.streams/-/windows.storage.streams-0.4.4.tgz#edcc1b62cf94d69648de0364bddec35149ccec81" - integrity sha512-xoK6sTG4FxyLYfD/oW9NuElBwKiWFS6wmegQunSPaFpv+j6FYU6olfSqgvqu1/rSMzPV5aZ68JkrPu8uKqZo3Q== - dependencies: - nan latest - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" - integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== - dependencies: - defer-to-connect "^2.0.0" - -"@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== - -"@types/electron@^1.6.10": - version "1.6.10" - resolved "https://registry.yarnpkg.com/@types/electron/-/electron-1.6.10.tgz#7e87888ed3888767cca68e92772c2c8ea46bc873" - integrity sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw== - dependencies: - electron "*" - -"@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== - -"@types/keyv@*": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== - dependencies: - "@types/node" "*" - -"@types/lodash@^4.14.53": - version "4.14.160" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" - integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== - -"@types/minimatch@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499" - integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== - -"@types/node@^10.11.7": - version "10.17.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" - integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== - -"@types/node@^12.0.12": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.1": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" - integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== - -"@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== - -"@types/yargs@^15.0.5": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" - integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== - dependencies: - "@types/yargs-parser" "*" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abstract-socket@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/abstract-socket/-/abstract-socket-2.1.1.tgz#243a7e6e6ff65bb9eab16a22fa90699b91e528f7" - integrity sha512-YZJizsvS1aBua5Gd01woe4zuyYBGgSMeqDOB6/ChwdTI904KP6QGtJswXl4hcqWxbz86hQBe++HWV0hF1aGUtA== - dependencies: - bindings "^1.2.1" - nan "^2.12.1" - -accepts@~1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -ace-builds@^1.4.12: - version "1.4.12" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.12.tgz#888efa386e36f4345f40b5233fcc4fe4c588fae7" - integrity sha512-G+chJctFPiiLGvs3+/Mly3apXTcfgE45dT5yp12BcWZ1kUs+gm0qd3/fv4gsz6fVag4mM0moHVpjHDIgph6Psg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-builder-bin@3.5.10: - version "3.5.10" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" - integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== - -app-builder-lib@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" - integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== - dependencies: - "7zip-bin" "~5.0.3" - "@develar/schema-utils" "~2.6.5" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chromium-pickle-js "^0.2.0" - debug "^4.3.0" - ejs "^3.1.5" - electron-publish "22.9.1" - fs-extra "^9.0.1" - hosted-git-info "^3.0.5" - is-ci "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - semver "^7.3.2" - temp-file "^3.3.7" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atomically@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.3.2.tgz#721156e5c4f03e768ab54f3e6c9dc550d4690761" - integrity sha512-MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.2.1, bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird-lst@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" - integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== - dependencies: - bluebird "^3.5.5" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - -boolean@^3.0.0, boolean@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" - integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer@^5.2.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" - integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== - dependencies: - node-gyp-build "~3.7.0" - -builder-util-runtime@8.7.2: - version "8.7.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" - integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" - integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== - dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.5" - "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.10" - bluebird-lst "^1.0.9" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - debug "^4.3.0" - fs-extra "^9.0.1" - is-ci "^2.0.0" - js-yaml "^3.14.0" - source-map-support "^0.5.19" - stat-mode "^1.0.0" - temp-file "^3.3.7" - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cacheable-request@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" - integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^3.2.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -conf@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz#d9678a9d8f04de8bf5cd475105da8fdae49c2ec4" - integrity sha512-r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg== - dependencies: - ajv "^6.12.2" - atomically "^1.3.1" - debounce-fn "^4.0.0" - dot-prop "^5.2.0" - env-paths "^2.2.0" - json-schema-typed "^7.0.3" - make-dir "^3.1.0" - onetime "^5.1.0" - pkg-up "^3.1.0" - semver "^7.3.2" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -core-js@^3.4.1, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dbus-next@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.5.1.tgz#94bb1a30d744bc75045be40e40b59e7a195fd882" - integrity sha512-PzsudTX5HMLocSuwHefIohto8L4Gnh5ST2+VNAoax9Xurh+lTosmXIfgi/Mrc93vqUU3D1v7jE9/vjiWd3KIbA== - dependencies: - event-stream "3.3.4" - hexy "^0.2.10" - jsbi "^2.0.5" - long "^4.0.0" - put "0.0.6" - safe-buffer "^5.1.1" - xml2js "^0.4.17" - optionalDependencies: - abstract-socket "^2.0.0" - -debounce-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" - integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== - dependencies: - mimic-fn "^3.0.0" - -debug@^2.2.0, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -detect-libc@^1.0.2, detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -discord-rpc@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-3.1.4.tgz#6d449a682e6a0dec4f0444d5f36f9ebfabaccf91" - integrity sha512-QaBu+gHica2SzgRAmTpuJ4J8DX9+fDwAqhvaie3hcbkU9WPqewEPh21pWdd/7vTI/JNuapU7PFm2ZKg3BTkbGg== - dependencies: - node-fetch "^2.6.1" - ws "^7.3.1" - -dmg-builder@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" - integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== - dependencies: - app-builder-lib "22.9.1" - builder-util "22.9.1" - fs-extra "^9.0.1" - iconv-lite "^0.6.2" - js-yaml "^3.14.0" - sanitize-filename "^1.6.3" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ejs@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== - dependencies: - jake "^10.6.1" - -electron-builder@^22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" - integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== - dependencies: - "@types/yargs" "^15.0.5" - app-builder-lib "22.9.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - dmg-builder "22.9.1" - fs-extra "^9.0.1" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - update-notifier "^4.1.1" - yargs "^16.0.3" - -electron-canvas-to-buffer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/electron-canvas-to-buffer/-/electron-canvas-to-buffer-2.0.0.tgz#da92cd7342e47b3b0dde2a3ae79978e5a0761681" - integrity sha1-2pLNc0LkezsN3io655l45aB2FoE= - -electron-clipboard-watcher@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/electron-clipboard-watcher/-/electron-clipboard-watcher-1.0.1.tgz#5fc2d8e2bbfd7341f1f2c3c5315abd3d6a6f2f56" - integrity sha1-X8LY4rv9c0Hx8sPFMVq9PWpvL1Y= - -electron-fetch@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.2.tgz#7ecc63629715a5de286957a8aceb35272c5d0b02" - integrity sha512-J7D136rhxIhPwYJsnHPpKgbyd4NUCGnKM1CuXLhmVWZdc8f6+LBiJqUOTngtSacj+xvGWgaDWOAuCXnhqiMTCw== - dependencies: - encoding "^0.1.13" - -electron-google-analytics@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/electron-google-analytics/-/electron-google-analytics-1.0.2.tgz#98ac733e71afb7bd16f76bc03ceec677f7abff8f" - integrity sha512-6faXosDqgq4Ei58vYsMqh/0P3CQ/cZjGLEXBuIw53RU44A6F/98mLcouMaX5HvmtBzss0xuz9VbQqxG5GBFcJQ== - dependencies: - electron-fetch "^1.7.1" - uuid "^8.3.0" - -electron-is-accelerator@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" - integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns= - -electron-is-dev@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-1.2.0.tgz#2e5cea0a1b3ccf1c86f577cee77363ef55deb05e" - integrity sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw== - -electron-localshortcut@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3" - integrity sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q== - dependencies: - debug "^4.0.1" - electron-is-accelerator "^0.1.0" - keyboardevent-from-electron-accelerator "^2.0.0" - keyboardevents-areequal "^0.2.1" - -electron-log@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.3.1.tgz#1405fef9d4e6964a5fdb8790a69163aa237ffe91" - integrity sha512-S/0CMjYjgyWUsZ3d27VvErPaI5W4oILp4jfeCuN4DhDqrJW6jKRUD2PxFfTdeZEIjM7+fttGg7A61rPcAcZC1w== - -electron-publish@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" - integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== - dependencies: - "@types/fs-extra" "^9.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - fs-extra "^9.0.1" - lazy-val "^1.0.4" - mime "^2.4.6" - -electron-rebuild@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.4.tgz#59d49b37d5cc690aa60500aa5e5ecd168cbb5ba2" - integrity sha512-EHr1bkqXTN/jQJuh2/IunF9QGa9yOgpE9KdQ9A7VHshd7ycWvoXjWzaXaimfa1nu1l7vKqLLu7N2COe3Jn9NuA== - dependencies: - "@malept/cross-spawn-promise" "^1.1.0" - colors "^1.3.3" - debug "^4.1.1" - detect-libc "^1.0.3" - fs-extra "^9.0.1" - got "^11.7.0" - lzma-native "^6.0.1" - node-abi "^2.19.2" - node-gyp "^7.1.0" - ora "^5.1.0" - tar "^6.0.5" - yargs "^16.0.0" - -electron-store@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz#2178b9dc37aeb749d99cf9d1d1bc090890b922dc" - integrity sha512-8rdM0XEmDGsLuZM2oRABzsLX+XmD5x3rwxPMEPv0MrN9/BWanyy3ilb2v+tCrKtIZVF3MxUiZ9Bfqe8e0popKQ== - dependencies: - conf "^7.1.2" - type-fest "^0.16.0" - -electron-updater@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.3.5.tgz#4fb36f593a031c87ea07ee141c9f064d5deffb15" - integrity sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ== - dependencies: - "@types/semver" "^7.3.1" - builder-util-runtime "8.7.2" - fs-extra "^9.0.1" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - lodash.isequal "^4.5.0" - semver "^7.3.2" - -electron@*: - version "11.2.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb" - integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -electron@^11.4.9: - version "11.5.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.5.0.tgz#f1650543b9d8f2047d3807755bdb120153ed210f" - integrity sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" - integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~4.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c" - integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "0.3.1" - debug "~4.1.0" - engine.io-parser "~2.2.0" - ws "^7.1.2" - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -event-stream@3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -execa@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== - dependencies: - minimatch "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-versions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" - integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== - dependencies: - semver-regex "^3.1.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^2.0.2: - version "2.1.12" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" - integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== - dependencies: - boolean "^3.0.1" - core-js "^3.6.5" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== - dependencies: - ini "^1.3.5" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globalthis@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" - integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== - dependencies: - define-properties "^1.1.3" - -got@^11.7.0: - version "11.8.1" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.1.tgz#df04adfaf2e782babb3daabc79139feec2f7e85d" - integrity sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hexy@^0.2.10: - version "0.2.11" - resolved "https://registry.yarnpkg.com/hexy/-/hexy-0.2.11.tgz#9939c25cb6f86a91302f22b8a8a72573518e25b4" - integrity sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A== - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" - integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== - dependencies: - lru-cache "^6.0.0" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.0-beta.5.2" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" - integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -husky@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" - integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^7.0.0" - find-versions "^4.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^5.0.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" - -i18n@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5" - integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw== - dependencies: - debug "^4.1.1" - make-plural "^6.2.2" - math-interval-parser "^2.0.1" - messageformat "^2.3.0" - mustache "^4.0.1" - sprintf-js "^1.1.2" - -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -image-to-base64@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/image-to-base64/-/image-to-base64-2.1.1.tgz#58c16f88494dfd3e84953cf845a5929be04fbdb5" - integrity sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ== - dependencies: - node-fetch "^2.6.0" - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== - -is-regex@^1.0.4, is-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -jpeg-js@^0.3.4: - version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== - -js-base64@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.0.tgz#773e1de628f4f298d65a7e9842c50244751f5756" - integrity sha512-wVdUBYQeY2gY73RIlPrysvpYx+2vheGo8Y1SNQv/BzHToWpAZzJU7Z6uheKMAe+GLSBig5/Ps2nxg/8tRB73xg== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbi@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-2.0.5.tgz#82589011da87dc59b4b549d94dcef51a9155f6fe" - integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" - integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-typed@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" - integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== - dependencies: - universalify "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyboardevent-from-electron-accelerator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz#ace21b1aa4e47148815d160057f9edb66567c50c" - integrity sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA== - -keyboardevents-areequal@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" - integrity sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw== - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-bmfont@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" - integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^2.9.1" - xhr "^2.0.1" - xtend "^4.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash@^4.17.10, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lzma-native@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-6.0.1.tgz#eec231d31b9f9ba5aea5afc86326669f01dedb58" - integrity sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ== - dependencies: - node-addon-api "^1.6.0" - node-pre-gyp "^0.11.0" - readable-stream "^2.3.5" - rimraf "^2.7.1" - -make-dir@^3.0.0, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-plural@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735" - integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA== - optionalDependencies: - minimist "^1.2.0" - -make-plural@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" - integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -markdown@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" - integrity sha1-KCBbVlqK51kt4gdGPWY33BgnIrI= - dependencies: - nopt "~2.1.1" - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -math-interval-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4" - integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -messageformat-formatters@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08" - integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg== - -messageformat-parser@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" - integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg== - -messageformat@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91" - integrity sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w== - dependencies: - make-plural "^4.3.0" - messageformat-formatters "^2.0.1" - messageformat-parser "^4.1.2" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mpris-service@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.0.tgz#0bbfb5b47a9b3e01ce8b9a41a8aef0ad3210c909" - integrity sha512-HWFimtWYrfm7iMz8VjTrY68c2vwBMb5kDXqAQ9GmgIMv5exfgz+w277F1XFBc72Nu6FM3QH6jqMGT89m2MMDBg== - dependencies: - dbus-next "^0.5.1" - deep-equal "^1.0.1" - source-map-support "^0.5.11" - -mri@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" - integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -mustache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" - integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== - -nan@^2.12.1, nan@latest: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -needle@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" - integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -node-abi@^2.19.2: - version "2.19.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d" - integrity sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg== - dependencies: - semver "^5.4.1" - -node-addon-api@^1.3.0, node-addon-api@^1.6.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" - integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== - -node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-gyp-build@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" - integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== - -node-gyp@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.0.tgz#cb8aed7ab772e73ad592ae0c71b0e3741099fe39" - integrity sha512-rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.3" - nopt "^4.0.3" - npmlog "^4.1.2" - request "^2.88.2" - rimraf "^2.6.3" - semver "^7.3.2" - tar "^6.0.1" - which "^2.0.2" - -node-pre-gyp@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" - integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-vibrant@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.5.tgz#8729bf35aabd54cd2eccbfadf22124ab4e1305b0" - integrity sha512-Gk+iyBzPSN1SF5qL818QaBtuA38206Z8iPNa0PcLUPyIbZL4+i14VmYxkGCL0n/5Q1721CRSktqtACgkx7Qodg== - dependencies: - "@jimp/custom" "^0.9.3" - "@jimp/plugin-resize" "^0.9.3" - "@jimp/types" "^0.9.3" - "@types/lodash" "^4.14.53" - "@types/node" "^10.11.7" - lodash "^4.17.4" - url "^0.11.0" - -nodemon@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" - integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== - dependencies: - chokidar "^3.2.2" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.3" - update-notifier "^4.1.0" - -nopt@^4.0.1, nopt@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -nopt@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" - integrity sha1-bMzZd7gBMqB3MdbozljCyDA8+a8= - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - -npmlog@^4.0.2, npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -ora@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.2.0.tgz#de10bfd2d15514384af45f3fa9d9b1aaf344fda1" - integrity sha512-+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ== - dependencies: - bl "^4.0.3" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - log-symbols "^4.0.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@^1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= - -parse-bmfont-xml@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" - integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== - dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.4.5" - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= - dependencies: - pngjs "^3.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -pngjs@^3.0.0, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -postscribe@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/postscribe/-/postscribe-2.0.8.tgz#5b7a53aad4b690b6c2f75818fcefe74490f410d5" - integrity sha1-W3pTqtS2kLbC91gY/O/nRJD0ENU= - dependencies: - prescribe ">=1.1.2" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prescribe@>=1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/prescribe/-/prescribe-1.1.3.tgz#8d3122445f3fbaf4c4c5817ea527a17fc8139ee6" - integrity sha1-jTEiRF8/uvTExYF+pSehf8gTnuY= - -prettier@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - -pretty-quick@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" - integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== - dependencies: - chalk "^2.4.2" - execa "^2.1.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.4" - multimatch "^4.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pstree.remy@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== - dependencies: - escape-goat "^2.0.0" - -put@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/put/-/put-0.0.6.tgz#30f5f60bd6e4389bd329e16a25386cbb2e4a00a3" - integrity sha1-MPX2C9bkOJvTKeFqJThsuy5KAKM= - -qrcode-generator@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" - integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-config-file@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" - integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== - dependencies: - dotenv "^8.2.0" - dotenv-expand "^5.1.0" - js-yaml "^3.13.1" - json5 "^2.1.2" - lazy-val "^1.0.4" - -readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -register-scheme@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/register-scheme/-/register-scheme-0.0.2.tgz#c91a61c735a9f14b2c9f0c2c27d707c0b06615e8" - integrity sha512-tMExba6xoLEZVtNnue+oSgnVLs489Df5toLlYThHLC4rsWcf/o+VGDK3VXSqEb8GzQ3NMmkHSMNIzI/Qm2j6Hw== - dependencies: - bindings "^1.3.0" - node-addon-api "^1.3.0" - -registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -resolve-alpn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" - integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.10.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -roarr@^2.15.3: - version "2.15.3" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" - integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== - dependencies: - boolean "^3.0.0" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.2, sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -"scribble@github:dittodhole/node-scribble-js#a2b37f585c5382863319115db36201399477ed43": - version "0.0.5" - resolved "https://codeload.github.com/dittodhole/node-scribble-js/tar.gz/a2b37f585c5382863319115db36201399477ed43" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver-regex@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" - integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" - integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== - dependencies: - component-emitter "1.2.1" - debug "~4.1.0" - isarray "2.0.1" - -socket.io@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" - integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== - dependencies: - debug "~4.1.0" - engine.io "~3.4.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.3.0" - socket.io-parser "~3.4.0" - -source-map-support@^0.5.11, source-map-support@^0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stat-mode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" - integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -tar@^6.0.1: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^6.0.5: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -temp-file@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" - integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== - dependencies: - async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - -through@2, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timm@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.6.2.tgz#dfd8c6719f7ba1fcfc6295a32670a1c6d166c0bd" - integrity sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw== - -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -undefsafe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" - integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== - dependencies: - debug "^2.2.0" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -update-notifier@^4.1.0, update-notifier@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -utf-8-validate@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" - integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== - dependencies: - node-gyp-build "~3.7.0" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -win-node-env@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/win-node-env/-/win-node-env-0.4.0.tgz#2d9dc991702920c73eaa1d644655b773886da5cb" - integrity sha512-bf4TV/NOBEazlHJW/bOns7u2JaHe3f5bz8BYanm/xuqJ405NG9OK3VAI1Y2WvHJsAo4GMU8EYTHSh59Q3UfHvA== - -"windows.media.playback@git+https://github.com/NovusTheory/nodert-windows.media.playback.git": - version "0.1.0" - resolved "git+https://github.com/NovusTheory/nodert-windows.media.playback.git#855edf625b2762caa89dc7aab0b686d535b79f34" - dependencies: - nan latest - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.1.2, ws@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== - -ws@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" - integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xhr@^2.0.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= - -xml2js@^0.4.17, xml2js@^0.4.5: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs@^16.0.0, yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 9dc4690e5a1a35e174de8f51f1806f2a673d5193 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 24 Jul 2023 19:49:41 -0500 Subject: [PATCH 167/489] =?UTF-8?q?=F0=9F=8E=89Add=20v2=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 16 + .gitignore | 89 + LICENSE | 674 ++ forge.config.ts | 62 + package.json | 55 + src/@types/global.d.ts | 32 + src/@types/shims-vue.d.ts | 1 + src/assets/icons/controls/pause-button.png | Bin 0 -> 299 bytes src/assets/icons/controls/pause-button.psd | Bin 0 -> 20998 bytes src/assets/icons/controls/play-button.png | Bin 0 -> 572 bytes src/assets/icons/controls/play-button.psd | Bin 0 -> 20396 bytes .../icons/controls/play-next-button.png | Bin 0 -> 542 bytes .../icons/controls/play-next-button.psd | Bin 0 -> 20518 bytes .../icons/controls/play-previous-button.png | Bin 0 -> 1095 bytes .../icons/controls/play-previous-button.psd | Bin 0 -> 22916 bytes .../controls/thumbs-down-button-outline.png | Bin 0 -> 912 bytes .../controls/thumbs-down-button-outline.psd | Bin 0 -> 22147 bytes .../icons/controls/thumbs-down-button.png | Bin 0 -> 1028 bytes .../icons/controls/thumbs-down-button.psd | Bin 0 -> 21849 bytes .../controls/thumbs-up-button-outline.png | Bin 0 -> 901 bytes .../controls/thumbs-up-button-outline.psd | Bin 0 -> 22145 bytes .../icons/controls/thumbs-up-button.png | Bin 0 -> 1025 bytes .../icons/controls/thumbs-up-button.psd | Bin 0 -> 21849 bytes src/assets/icons/tray.ico | Bin 0 -> 56643 bytes src/assets/icons/tray.png | Bin 0 -> 1650 bytes src/assets/icons/tray@2x.png | Bin 0 -> 691 bytes src/assets/icons/ytmd.icns | Bin 0 -> 96472 bytes src/assets/icons/ytmd.ico | Bin 0 -> 56643 bytes src/assets/icons/ytmd.png | Bin 0 -> 30453 bytes src/index.ts | 792 ++ .../companion-server/api/v1/index.ts | 251 + src/integrations/companion-server/index.ts | 61 + .../companion-server/shared/auth.ts | 120 + src/integrations/discord-presence/index.ts | 151 + src/integrations/integration.ts | 8 + src/player-state-store/index.ts | 58 + src/shared/components/KeybindInput.vue | 131 + src/shared/components/Settings.vue | 312 + src/shared/components/TitleBar.vue | 167 + src/shared/store/renderer.ts | 21 + src/shared/store/schema.ts | 37 + src/windows/authorize-companion/Auth.vue | 108 + src/windows/authorize-companion/Index.vue | 25 + src/windows/authorize-companion/index.html | 23 + src/windows/authorize-companion/preload.ts | 15 + src/windows/authorize-companion/renderer.ts | 35 + src/windows/main/Index.vue | 29 + src/windows/main/index.html | 23 + src/windows/main/preload.ts | 15 + src/windows/main/renderer.ts | 35 + src/windows/settings/Index.vue | 121 + src/windows/settings/index.html | 23 + src/windows/settings/preload.ts | 25 + src/windows/settings/renderer.ts | 35 + src/ytmview/preload.ts | 834 +++ tsconfig.json | 23 + webpack.main.config.ts | 18 + webpack.plugins.ts | 10 + webpack.renderer.config.ts | 28 + webpack.rules.ts | 31 + yarn.lock | 6503 +++++++++++++++++ 61 files changed, 10997 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 forge.config.ts create mode 100644 package.json create mode 100644 src/@types/global.d.ts create mode 100644 src/@types/shims-vue.d.ts create mode 100644 src/assets/icons/controls/pause-button.png create mode 100644 src/assets/icons/controls/pause-button.psd create mode 100644 src/assets/icons/controls/play-button.png create mode 100644 src/assets/icons/controls/play-button.psd create mode 100644 src/assets/icons/controls/play-next-button.png create mode 100644 src/assets/icons/controls/play-next-button.psd create mode 100644 src/assets/icons/controls/play-previous-button.png create mode 100644 src/assets/icons/controls/play-previous-button.psd create mode 100644 src/assets/icons/controls/thumbs-down-button-outline.png create mode 100644 src/assets/icons/controls/thumbs-down-button-outline.psd create mode 100644 src/assets/icons/controls/thumbs-down-button.png create mode 100644 src/assets/icons/controls/thumbs-down-button.psd create mode 100644 src/assets/icons/controls/thumbs-up-button-outline.png create mode 100644 src/assets/icons/controls/thumbs-up-button-outline.psd create mode 100644 src/assets/icons/controls/thumbs-up-button.png create mode 100644 src/assets/icons/controls/thumbs-up-button.psd create mode 100644 src/assets/icons/tray.ico create mode 100644 src/assets/icons/tray.png create mode 100644 src/assets/icons/tray@2x.png create mode 100644 src/assets/icons/ytmd.icns create mode 100644 src/assets/icons/ytmd.ico create mode 100644 src/assets/icons/ytmd.png create mode 100644 src/index.ts create mode 100644 src/integrations/companion-server/api/v1/index.ts create mode 100644 src/integrations/companion-server/index.ts create mode 100644 src/integrations/companion-server/shared/auth.ts create mode 100644 src/integrations/discord-presence/index.ts create mode 100644 src/integrations/integration.ts create mode 100644 src/player-state-store/index.ts create mode 100644 src/shared/components/KeybindInput.vue create mode 100644 src/shared/components/Settings.vue create mode 100644 src/shared/components/TitleBar.vue create mode 100644 src/shared/store/renderer.ts create mode 100644 src/shared/store/schema.ts create mode 100644 src/windows/authorize-companion/Auth.vue create mode 100644 src/windows/authorize-companion/Index.vue create mode 100644 src/windows/authorize-companion/index.html create mode 100644 src/windows/authorize-companion/preload.ts create mode 100644 src/windows/authorize-companion/renderer.ts create mode 100644 src/windows/main/Index.vue create mode 100644 src/windows/main/index.html create mode 100644 src/windows/main/preload.ts create mode 100644 src/windows/main/renderer.ts create mode 100644 src/windows/settings/Index.vue create mode 100644 src/windows/settings/index.html create mode 100644 src/windows/settings/preload.ts create mode 100644 src/windows/settings/renderer.ts create mode 100644 src/ytmview/preload.ts create mode 100644 tsconfig.json create mode 100644 webpack.main.config.ts create mode 100644 webpack.plugins.ts create mode 100644 webpack.renderer.config.ts create mode 100644 webpack.rules.ts create mode 100644 yarn.lock diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..2d7aa6074 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "env": { + "browser": true, + "es6": true, + "node": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/recommended", + "plugin:import/electron", + "plugin:import/typescript" + ], + "parser": "@typescript-eslint/parser" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..8e3a10669 --- /dev/null +++ b/.gitignore @@ -0,0 +1,89 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock +.DS_Store + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Webpack +.webpack/ + +# Electron-Forge +out/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/forge.config.ts b/forge.config.ts new file mode 100644 index 000000000..05eb4907e --- /dev/null +++ b/forge.config.ts @@ -0,0 +1,62 @@ +import type { ForgeConfig } from '@electron-forge/shared-types'; +import { MakerSquirrel } from '@electron-forge/maker-squirrel'; +import { MakerZIP } from '@electron-forge/maker-zip'; +import { MakerDeb } from '@electron-forge/maker-deb'; +import { MakerRpm } from '@electron-forge/maker-rpm'; +import { WebpackPlugin } from '@electron-forge/plugin-webpack'; + +import { mainConfig } from './webpack.main.config'; +import { rendererConfig } from './webpack.renderer.config'; + +const config: ForgeConfig = { + packagerConfig: { + icon: './src/assets/icons/ytmd', + extraResource: [ + './src/assets/icons' + ] + }, + rebuildConfig: {}, + makers: [new MakerSquirrel({}), new MakerZIP({}, ['darwin']), new MakerRpm({}), new MakerDeb({})], + plugins: [ + new WebpackPlugin({ + mainConfig, + renderer: { + config: rendererConfig, + entryPoints: [ + { + html: './src/windows/main/index.html', + js: './src/windows/main/renderer.ts', + name: 'main_window', + preload: { + js: './src/windows/main/preload.ts', + }, + }, + { + html: './src/windows/settings/index.html', + js: './src/windows/settings/renderer.ts', + name: 'settings_window', + preload: { + js: './src/windows/settings/preload.ts', + }, + }, + { + html: './src/windows/authorize-companion/index.html', + js: './src/windows/authorize-companion/renderer.ts', + name: 'authorize_companion_window', + preload: { + js: './src/windows/authorize-companion/preload.ts', + }, + }, + { + name: 'ytm_view', + preload: { + js: './src/ytmview/preload.ts', + }, + }, + ], + }, + }), + ], +}; + +export default config; diff --git a/package.json b/package.json new file mode 100644 index 000000000..a369ec10e --- /dev/null +++ b/package.json @@ -0,0 +1,55 @@ +{ + "name": "youtube-music-desktop-app", + "productName": "YouTube Music Desktop App", + "version": "2.0.0", + "description": "YouTube Music Desktop App", + "main": ".webpack/main", + "scripts": { + "start": "electron-forge start", + "package": "electron-forge package", + "make": "electron-forge make", + "publish": "electron-forge publish", + "lint": "eslint --ext .ts,.tsx ." + }, + "keywords": [], + "author": { + "name": "NovusTheory", + "email": "novustheory@gmail.com" + }, + "license": "GPLV3", + "devDependencies": { + "@electron-forge/cli": "^6.0.4", + "@electron-forge/maker-deb": "^6.0.4", + "@electron-forge/maker-rpm": "^6.0.4", + "@electron-forge/maker-squirrel": "^6.0.4", + "@electron-forge/maker-zip": "^6.0.4", + "@electron-forge/plugin-webpack": "^6.0.4", + "@types/discord-rpc": "^4.0.3", + "@types/node": "^18.11.18", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "@vercel/webpack-asset-relocator-loader": "1.7.3", + "css-loader": "^6.0.0", + "electron": "22.0.0", + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.0", + "fork-ts-checker-webpack-plugin": "^7.2.13", + "node-loader": "^2.0.0", + "style-loader": "^3.0.0", + "ts-loader": "^9.2.2", + "ts-node": "^10.0.0", + "typescript": "~4.5.4", + "vue-loader": "^17.0.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "discord-rpc": "^4.0.1", + "electron-squirrel-startup": "^1.0.0", + "electron-store": "^8.1.0", + "fastify": "^4.11.0", + "fastify-socket.io": "^4.0.0", + "material-symbols": "^0.4.2", + "socket.io": "^4.5.4", + "vue": "^3.2.45" + } +} diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts new file mode 100644 index 000000000..ed127461f --- /dev/null +++ b/src/@types/global.d.ts @@ -0,0 +1,32 @@ +import Store from "../shared/store/renderer"; +import { StoreSchema } from "../shared/store/schema"; + +declare global { + interface Window { + ytmd: { + // Settings specific + store: Store, + safeStorage: { + decryptString(value: string): string, + encryptString(value: string): Buffer + }, + openSettingsWindow(): void + + // Companion Authorization specific + sendResult(authorized: boolean), + getAppName(): string, + getCode(): string, + + // Main window specific + switchFocus(context: 'main' | 'ytm'): void, + + // Window control + minimizeWindow(): void, + maximizeWindow(): void, + restoreWindow(): void, + closeWindow(): void, + handleWindowEvents(callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void), + requestWindowState(): void + } + } +} \ No newline at end of file diff --git a/src/@types/shims-vue.d.ts b/src/@types/shims-vue.d.ts new file mode 100644 index 000000000..cd04b72a1 --- /dev/null +++ b/src/@types/shims-vue.d.ts @@ -0,0 +1 @@ +declare module '*.vue'; \ No newline at end of file diff --git a/src/assets/icons/controls/pause-button.png b/src/assets/icons/controls/pause-button.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7d31b37e9c28859eaa3fbcc9bc0662dd823b93 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UoCO|{#X$M%Ak65bF}nh!BH1Iz zmw};5m4Tt5nStTwe<1yWfgy;4fl)Mqfx&7z1A}<}^(grXK(!k^T^vIyZoQehm-n!O zK&!miMD>$W^Ax!q{AU{mEm^vChQiuzlgNXYEgbim*qw=g?veRm*7q+5FBhKWJhbt$ zYz_ZOr}zW|mm|Ag=Y5e?OVW?{e#0bp>9U#k0(+PEB&7M=@X1ONvvSZc^!mTe_@=54 zQ>`Vl)-g}fqtoilj)+}gigMu2VBE@}Sfr-awN}GSSghZ_B$Ktqpw4#&`!u5i_a>}0 pJAEm#wk~b8Zpr8GZ~w?LG~M%izWm76-9X1Pc)I$ztaD0e0syj)Y-|7k literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/pause-button.psd b/src/assets/icons/controls/pause-button.psd new file mode 100644 index 0000000000000000000000000000000000000000..bd60a138a318105722e41268087df534d8d51690 GIT binary patch literal 20998 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 AegFUf literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/play-button.png b/src/assets/icons/controls/play-button.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fad314a43b4cca54a8878a69dbb47f7e0431ee GIT binary patch literal 572 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/play-next-button.png b/src/assets/icons/controls/play-next-button.png new file mode 100644 index 0000000000000000000000000000000000000000..996d6b3fd3b9b6d4767570507fe5632f3b6cd0cd GIT binary patch literal 542 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/play-previous-button.png b/src/assets/icons/controls/play-previous-button.png new file mode 100644 index 0000000000000000000000000000000000000000..0639cb76f73cab21772698f4f70f34bd177dedaa GIT binary patch literal 1095 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 Jm=S$O{s*YwOU?iQ literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/thumbs-down-button.png b/src/assets/icons/controls/thumbs-down-button.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dddb7e357cb6c16996175e23222ff0ac8e289d GIT binary patch literal 1028 zcmV+f1pE7mP)KLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i=+rwfk z(Lr#7VE=%LJw_J~f`?%5vWi#1LmdMz9y|#m9qP2FJaiD(#G+cJWv1Bf=70PG_^#YCYF=eFxZ##bWBl#sLR72O7rL&qwYBv}A4O5f=ku01 zaNp%}EhIh(k9s-Ia;dYBhjjsZ>%u9uJ1`vz!n@aCCHpX_`*~V_c9(LI~aK^%4$;aXOvnp8uMr zkxV9M0@&Z*N7J;cfCAhEzD-Q}E%0vq0$`Y?DR;ZwTitFq4Y(~TpuJfD4h{~`G_44H z9Qhl|LT2LG0A7#$JiFuf`}d}amr5o2{eBU6vg#y!6pcowiuZcGnZ@S?hz9}z%f@oK zJh%ASC75QneLmmHX1)l3Wx~y~=F2QWv0ktL_MuQHEG0f~1fDgUOUO(nG#U&B ygQdjh1^5aSYPH&T;Kt~7^J?j<*@eFy{}=#ZMZWK#)3#&)0000vOV?=`dgP`C+LB7L`%vgKxtE&DCL$EgN z*>m<()zo|U_wIY|zI)$i&UrnhuGvEvqCPgr?DWedR+TjKpQh9`xos0EHd3V}Qp&p> z@w+EXt?7*V0!vug?q@?`ep=y|Z*D8JhlA4!7gV}S-BB0Y7M`_KWIapgcmqq91ge9D zHPf@Fb~-yF(FiO1?41#gmz<5W`V9Ebw;J z>+=gSd0Js1Ruq4A*_OUo1L`ph+(Go{-X-Ql&6r2h+ak@m-Ckvui5V+}T z&zsu>S&-UCUMoL&X#ICp5A3KAD{k_L)-TC@peSd&^3l73I## z%A(S8XK87Y5>;}D4z~~tw|40|s*4>8vPA){!JRR0oV_&?o!8k(Ojx zP0!R4G;)&B>4>7ehS0Ay7{Ne%ETS=yqeC7Hl&~BdVR>1C@o=P$M=;=Q6~u^7p6-iA zxp2UTLtfI(2epBW>LW9?Bq4geTOF??-uM(pinFhDr#Q>$5;#GG5n`v8Pc0daoHS$! zc9YB1EDEh*j@3M|WoDiI4hWJd;C#c1UGKhwhr8Xw_gfF3NTg)Az?0;Lc8EzW##1b& zmz2C+QMROom4uiWU>n-O2NHp(O}hu=l4@^+4sqG(Mv~QDV{Z(+YLdC(nVZCM-io z(CG_c%uNsAtjGqZmZVS<%^F%P{685qRd-U+tLyJ*WBI=|tE#G~)YX+pLaW^26WQ7j z_`$U%dsSm{vc)e{!(lK9GD{@0NbxS6dhaeL zDu#J^ZcL8GWFV%YNV6n+{BZG$N;L5@%kr@ZG7zSDBxHwt1TE_cccMgHSjIBQR&}!C z9AAX>HZ1f4Nv%vR0GD}$Ru3!3qI3N}3;^>6;vxd!Nh=AH5Q!0y_{a%z3}|)|BrK%O zKodwi(DBKR#x(#&Ro8JcueCDQ9}9DGn5WeMKZ{Dc+>5@aTHzj4VJU(nVTDmiR+vj~ z)Jed<5hYzwnb$i;T%2EwBP}7x9Yt^^ysd@9@s2-r zT+luoy+z_=N^kDuX3T%+;TdX)>~=N)H*erB9o#z9Jf%6*Ea{$tFiJv>%_g(iR#nZA zYQ1osaJXtc0Zyeii-8%7Py>BN21Fsc04}{Wqt}M{kZ!(wWVAq=>I7L9BAmd7v?94W z2b+*Y&(rBG;ZR#LBS&XI+v4&VKh{%f8_1%s8Spxbp3~TxM0xpIrI6J;OsKzEPph0f zuju0?xOQ}s4}^WR%vj2?Lz+*#)a!X7ktle%NKQgL1Rx&38pMS|+PEY_rvf06F4~ zl;_v3i&M&|vhPEx%V4`1g3+c?sLnpX3G@_tGTdYR4B5kR6y@*XQCpyD=$mFK$dj;A ziZPm1vDMga3_&X`n@K6!ykVIEYT(l}jYo(i#^76sTCx9X&k-fWu6+oj-l0!2%??cb zQl4Z1ouM@dQ9j1u9E{ychx@>MP#Q9i1Y`&BXfrYR;vNpfArV6A5|LyFHfc!&3gYP! z+(l)j`P^&_bta{rG|B_=DEKlc(o~;RS4Kz_V$l>*xa%!*2eqr006|BdFD45! zS)LW~0v-?uUf$D$vsGcFAg4)Pp8mJ{Z-vXdDa#u*ek#Q+g;JNmbRQ>seW4Vo`~b^w zUba(il4g0`v-JrzQzxegXSE69(poMY($~8YYUgL^WH3NRkZtwF=mekD&WiFd;`4QK zs(6k+L@((k8Mi>yUpF((KpW2yc(iqvEJR`RAhF3aXf_8^?G@BqKb@Mdpy$A_w+$7i z(RK$`L~`M?)SRKPI=hWP*aER?DXp!qYp{U(M_~2DYrzW_eczt(K13W{C<*Zeq-bq( z^K2}^t4&5Q>FM30#^HxWs4I!_O~C9xRK#U;0KT#y+{cGFfOe539dZ=t%rgLw@h_q9 ze;_P+TVOq8b^@FqQsLbQ`&IZ8ghl8C$Xr1A5QQx`?~L)Q@XZLz;4P37mk{lu_Os)U z2H4e``kpRHW+Rfli4O>3RL~1Z`4l6;he4iE4v@!4Zf0g?R%UKi zR&GH~c22?A5xKb|#*Q03dhF=Y;|g-=qh%^GG-dK~a`N)?M&{>_9Fw1)KL(ThF=~;5 zZ=yiiP6{%i19mG@NGt`6wSZ9$!8~tKb}}{4$~1;P&|rM5gt6Gt(lau%vU6ZFlgfm> zja6rkB#e!*T5OiIjP%SjYi>C(3#_(VM>*1J@AZu?ynk6)`k0l^zgBnK?PFWs_Lo

Xw!;Tl_svCFBJIbDWL&{_^R?`K|5CyEktB!=B^4ch6i9>Uez3uYddQM<*^75Q_y`Yol$-NKdPz zO}N!D$_6dCzi@O~*|L>mumx|od~l}xcK^rXBTu_LV*^sf*@@}cfQ(6%J9a@MUc52b zFt18xkH(vD^%hJ{G(p)z^0#ZXReDRAzi(cKb?v~ij<<{+lm;O58-*!*?-Gaf1 z6OPv?ZUJ`#W_p9=nV`mj|e(=sal|Nrty7-q*ob>Kr{6Oow`xfs%@(~kQ@y_P5 z_YeK((1n|yT(O$nb70=j*Zs0NTz2G02mj%L%WuwG-SnsTHhzBSsXy%NU6b+nl zzdd)``RDHY?9$~?EnA*^XVX2FZLxjsyP^};F8*EjL4_RJf9UXYUwyCT!K&Ehn;ux5 zy{>m*yW{Phdyen_;Pj6+U*5ao$)6rDVQ0`|=gxc=`E)T^?nhI%D5T zoo*hau(yKvB(-p`6Nq0s+_eEL!zU4hq98H)8WMImGI~fADpYGI1duSrZa4W30GT9% z8AaCs+^G}hTl8RyRr{H5$Kf9`cW5%OU1A(`(}cS?ktw4v&K3Xqc$jXMusG^UaCvZ+g4xS|@5F64M z=qWt7@5dB3m9037^6+aU3c=;sHU$!V0KpR1{xV&@2>cF<9hXVe#kF?Ase$oQEy-tc zeJe{>@|5%7eKm7dzI(F>CGsOaSn9;ag`SSE9B9*bPNWe?Df>}MfdUy=4a@udaZ!)l z#p$QkMvu&)0PIm3F>mH&Z=5GKQl7`fVa>!1hj5)&$MJ5Y%@HGN`Dj2pG^dZ0sjoKGX0rveDD3pPCAi{ePMlCR` zND4~94!~gfg&|Hu20Wec=`barWF*Gf3A2sjabo!ID=vgMtR2HPQ9Bus@KxIfKXb$r zs5F@tR!e>NTBV?i$;JF^JC4vCT1@XEbQ3#=)x{#dqcqk*8FOXFk!XleL` z8US$~qUUCe5kk73z!%~I$U3abb1@#}agND^$;?M0@CD(slTy?NKSzarX5)NaBE`GH zLB!#sJC^|G$DY`rgS7rI--`V~KE;>tON3;clcKFDc!2tGCd%VO`_LA_I_TVhcpxUp zlu1YhY&B=<5>7(N*W~#TFHvuaD>JGOVxh#@Dmev_B~H^wswj*p<~(9hk^h5 z<-_hC-#nV;5PY-gn*)o)NU)5GWl|{fGO;|cd29cc+#OrH;GY+<_qS}_G2aH8@86tP zEL*e4Wrf%V2^oI|%&oz%>G0QZhWt{aE3m0qoGQ~meXWqm=b*f0)#i$`I5rle?=i*b`~RvI z@JRIYW}i&`9N|W{v;@ex>RLu!wk+P~apWfO%6$5cplKfXuIjz$#RYI)7)5-2dg>5Sxb|d+4&lEE^nDm;+Bi zM8>g=d*j&G3Uda7QspU%WpLS!B$Vk}4w0!ct;*oCSK^pO>01slsj@7}uC)oIZ~2ip z!u0+G;#HNp20WlxPAwaR2E1@u$=cMj=H-nWUt0N&k_OeT-SOVQAIbJhO4d($Pwd{i zch4zY4y=QpzV*hyCh}09!mRG;Q!XjYv0wBn%$lA{2>V5-$U=TV|(3z%Y6&pCk8`g{Jke{IiMrB|_@+_V9Vr4EES80KJTuB<3#WF#Vk zd<^epVjV;G33;$j7)f&JK4Fm!{!7Qq_{}+mnb!@AE8RAHrfwK!olx`FFo%u8Eyp2; zwcYlqn&)8-=c-R=mZxTmFe7=#FfF)BYWrLv-4O2*tRS{8l*|Hc3jq5;tGWs31p#&G zhxwpeUHV}=(5){0upQ{er5|%#`k~$3bm{MgO+fcKpfI`JunXuu3%da8cUEn7pP?4` EZKLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=iliieuQ@E17t`a zA%T*ikRkAs41sj)I~3ZXgP}vabZDUk1?-_i8t9V27-O0t!_5U@WsyKBwXC|fL`ctg zrF;JWKj-Ki9Vdz+%Crh4Tj>OT4IBbLCGGyrUFTnGK+<}n(Ks8A$H~zPNiPdY zfuxNDT#_Tn0Zt030ZE&l=Y3DW3oSxPZQu8MqtWOVxTFX;T`B=do4)S{!{Kn6@-Isx z5QFzJzyaPYg@B|D&+}%1Bk9}1KSN2YuIv6X#>@hbfFodaO3%3j-T{3{;jKm_sRcX& z!uaR`a4xA2Y|jEu*+JIBX0y3J7!00B`Xni=#^6=p1JL?Ylz>+`)8yoMCvsi)qcP?o zaG7q!t=}EQAve$L%-`}#rIH1*0=%Dx zM5ogs2!gkgE;0#BCX+2-C+<)oum-%2RTxQ6f#<;E_}+Dno#Q$Pg0GT}mbMrC-wp3P bftvvUfECZ~Zs2_q00000NkvXXu0mjf^KFe8 literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/thumbs-up-button-outline.psd b/src/assets/icons/controls/thumbs-up-button-outline.psd new file mode 100644 index 0000000000000000000000000000000000000000..f238e643e0c0a432b6ce21b32ebc4daf481222b1 GIT binary patch literal 22145 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/thumbs-up-button.png b/src/assets/icons/controls/thumbs-up-button.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea5c7e555755d0a35126904e7b568336a35e28e GIT binary patch literal 1025 zcmV+c1pfPpP)KLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i^m;vj#xejLZF{TL0(iG*2?~C{-;w71ejnhK zT`&6@0af5DU|j}y3Ot({fcwCApzHB?)SVqiw~BZ?j>qH4T-j<#!Y~YukB{FD1_Oi; z>wq-{c1(lCUi6<`8T5>G%88>-EaK)zAKnWZ;FJPFr?;43zDGr@$lI vp0N9$ImouofY0_Ezvcqm`Om5A0DlGmr%Kn?dcmz=00000NkvXXu0mjfCePk> literal 0 HcmV?d00001 diff --git a/src/assets/icons/controls/thumbs-up-button.psd b/src/assets/icons/controls/thumbs-up-button.psd new file mode 100644 index 0000000000000000000000000000000000000000..fef3e95629aa682ed387ae1eb84ce8f617fd36ff GIT binary patch literal 21849 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/tray.ico b/src/assets/icons/tray.ico new file mode 100644 index 0000000000000000000000000000000000000000..43e96216016df6ea9c24c8467cdee5aaa9607eed GIT binary patch literal 56643 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/tray.png b/src/assets/icons/tray.png new file mode 100644 index 0000000000000000000000000000000000000000..5384670b7453dd65fddef132dfe59249dad81876 GIT binary patch literal 1650 zcmbVNYi!$86n2NGx{g8#NSihRmLmi!^E2;D&6*~m$%M10jj~KIX^wr9m?pNdoh2!t z(n1k1R-tL|gGGfQhM2}S@e84XHj%ZecuXCd&=`N1;Ku~o#_IK9k_T7cOT3d%< zH?CKbX)7%}1SG9UiL#b~RHdjRG=>dsuIQpP4lO(bbBf9nm*9v|Mi2xQHWvtTs*V9OTz;)%Rv z>42uo!uV7gMS`9lUN+$Mk{rc0+!X{6Q%y@$B^V3y1PTwOC^E=!GMmi?I5OjLF{E1xxJi-W zvZNcz(2W+onT)T!Kdeb5I|VtD&GG6bskQW0$6#Js_%>=v=F<;u(XFwMGR6 zZzK#5CA$!KLb5Xe%0z2gx$X!wY0G(tNdF-(nlMw#T4m9I!5oU#f5CP?G&{XvHyPmrtvag13JVDlQ$EvAB{?^{<7Y_aawr~2%@%25z`5*UBmcN+0IMZ*v z(VciU@Jf0iz4%D#lefEeNPBjtt$ye3_dQ3?4Lv!y`0@xTyr{4J@cz>4)xv=@>YAJ8 zGN0YDysqo%lm3%;&u$oc{N3!{Y2(v@#h|;p<~xyH8e8U1J(_w#*y-~hsVr8aLHg{m zFHb+bYQVYmgU~y}Jqw4*2OPgl)jytp>e#oxrA}X2Jttl2d2MF?oBG^^3qRLCx;(kG z@YdnU+34|`lLPPFaqiH?<+yZd2YYsdXX@9w=kxEs%lzK$IQ(YcPpPG~_Fo|uiHDC4 H@0|VvGSDZK literal 0 HcmV?d00001 diff --git a/src/assets/icons/tray@2x.png b/src/assets/icons/tray@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7935fdae599c46b3271fdb6da4386e0d2a404c23 GIT binary patch literal 691 zcmV;k0!;mhP)oS(t^<@GV;H5yfe3R=jL8F`h!a#=W8-^a?YH~e*&C3S?uL3a09pwTmdcs=cM=* z_z1iPUI34Qj?YOMG=N0~=;wSovT2mLkP+ZM@J);80qej5a1E#f!+PraZb3Rd*%;fl zd=11!U{g+yfEAz_;jk&2Bl*}IWVa@OT{(IWv>c86w3J(Y`J9M#V1C7(96SYTjz&D= zz)Shui`l7B{Y#ADx^kl|jIZbNy`@+|+A=U(JYM2r63lMzC`Q|nrZ7p|RT74BW>qz) z2rb3vhK_DgD_?OWE=KPVxL5F4m*r#0k%*cKSubb8*~Re2IbU-m ze$v(2IDZ6;dA0ql$#yQ04q0lm`h4Ow4P*M^Jn#;fxUJ8tj#(U^fjbJe9k5JddG*RFj4=(_DU3FQ zw2rp}w2p(U)`1#bUyU!%f+}sU$*TXx^Uvq# z7515Rg+1eFWRSk(XBD;>#)@9@6YMc)N9SIYNu@yHF({#79beHwaoHLax5^l+N0jK@ z)F^!ynDUI$Qp0*;7k$aDYz002ovPDHLkV1gLbNACat literal 0 HcmV?d00001 diff --git a/src/assets/icons/ytmd.icns b/src/assets/icons/ytmd.icns new file mode 100644 index 0000000000000000000000000000000000000000..57014a763d6ea37d7e2270c93c215ee8d42901f3 GIT binary patch literal 96472 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

mu<9{u8jN#yjFLIW{~b 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 QLd?#SSFW7gF`J(M2gJL$ApigX literal 0 HcmV?d00001 diff --git a/src/assets/icons/ytmd.ico b/src/assets/icons/ytmd.ico new file mode 100644 index 0000000000000000000000000000000000000000..43e96216016df6ea9c24c8467cdee5aaa9607eed GIT binary patch literal 56643 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/ytmd.png b/src/assets/icons/ytmd.png new file mode 100644 index 0000000000000000000000000000000000000000..64ff0a5c597c93cb40674b780fb9b6c65203e6dc GIT binary patch literal 30453 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 + watch: true, + defaults: { + general: { + hideToTrayOnClose: false, + showNotificationOnSongChange: false, + startOnBoot: false, + startMinimized: false, + alwaysShowVolumeSlider: false + }, + playback: { + continueWhereYouLeftOff: true, + continueWhereYouLeftOffPaused: true, + progressInTaskbar: false + }, + integrations: { + companionServerEnabled: false, + companionServerAuthWindowEnabled: null, + companionServerAuthTokens: null, + discordPresenceEnabled: false + }, + shortcuts: { + playPause: '', + next: '', + previous: '', + thumbsUp: '', + thumbsDown: '', + volumeUp: '', + volumeDown: '' + }, + state: { + lastUrl: 'https://music.youtube.com/', + lastVideoId: '', + lastPlaylistId: '', + companionServerAuthWindowEnableTime: null, + windowBounds: null, + windowMaximized: false + } + } +}); +store.onDidAnyChange((newState, oldState) => { + if (settingsWindow !== null) { + settingsWindow.webContents.send('settings:stateChanged', newState, oldState); + } + + if (ytmView !== null) { + ytmView.webContents.send('settings:stateChanged', newState, oldState); + } + + // Setting start on boot in development tends to cause a blank electron executable to start on boot so let's never set that + if (process.env.NODE_ENV !== 'development') { + app.setLoginItemSettings({ + openAtLogin: newState.general.startOnBoot + }); + } + + let companionServerAuthWindowEnabled = false; + try { + companionServerAuthWindowEnabled = safeStorage.decryptString(Buffer.from(newState.integrations.companionServerAuthWindowEnabled, 'hex')) === 'true' ? true : false; + } catch { /* do nothing, value is false */ } + + if (newState.integrations.companionServerEnabled) { + companionServer.provide(store); + companionServer.enable(); + } else { + companionServer.disable(); + + if (companionServerAuthWindowEnabled) { + store.set('integrations.companionServerAuthWindowEnabled', null); + store.set('state.companionServerAuthWindowEnableTime', null); + clearInterval(companionAuthWindowEnableTimeout); + companionAuthWindowEnableTimeout = null; + companionServerAuthWindowEnabled = false; + } + } + + if (companionServerAuthWindowEnabled) { + if (!companionAuthWindowEnableTimeout) { + companionAuthWindowEnableTimeout = setTimeout(() => { + store.set('integrations.companionServerAuthWindowEnabled', null); + store.set('state.companionServerAuthWindowEnableTime', null); + companionAuthWindowEnableTimeout = null; + }, 300 * 1000); + store.set('state.companionServerAuthWindowEnableTime', safeStorage.encryptString(new Date().toISOString()).toString('hex')); + } + } + + if (newState.integrations.discordPresenceEnabled) { + discordPresence.enable(); + } else { + discordPresence.disable(); + } + + registerShortcuts(); +}); + +// Integrations setup +// CompanionServer +companionServer.addEventListener((command, value) => { + ytmView.webContents.send('remoteControl:execute', command, value); +}); +if (store.get('integrations').companionServerEnabled) { + companionServer.provide(store); + companionServer.enable(); +} + +// DiscordPresence +if (store.get('integrations').discordPresenceEnabled) { + discordPresence.enable(); +} + +function integrationsSetupAppReady() { + let companionServerAuthWindowEnabled = false; + try { + companionServerAuthWindowEnabled = safeStorage.decryptString(Buffer.from(store.get('integrations').companionServerAuthWindowEnabled, 'hex')) === 'true' ? true : false; + } catch { /* do nothing, value is false */ } + + if (companionServerAuthWindowEnabled) { + let companionAuthEnableTimeSate = null; + try { + companionAuthEnableTimeSate = safeStorage.decryptString(Buffer.from(store.get('state').companionServerAuthWindowEnableTime, 'hex')); + } catch { /* do nothing, value is not valid */ } + + if (companionAuthEnableTimeSate) { + const currentDateTime = new Date(); + const enableDateTime = new Date(companionAuthEnableTimeSate); + + const timeDifference = currentDateTime.getTime() - enableDateTime.getTime(); + if (timeDifference >= 300 * 1000) { + store.set('integrations.companionServerAuthWindowEnabled', null); + store.set('state.companionServerAuthWindowEnableTime', null); + } else { + companionAuthWindowEnableTimeout = setTimeout(() => { + store.set('integrations.companionServerAuthWindowEnabled', null); + store.set('state.companionServerAuthWindowEnableTime', null); + companionAuthWindowEnableTimeout = null; + }, (300 * 1000) - timeDifference); + } + } else { + store.set('integrations.companionServerAuthWindowEnabled', null); + store.set('state.companionServerAuthWindowEnableTime', null); + } + } +} + +function setupTaskbarFeatures() { + if (!store.get('playback.progressInTaskbar') && process.platform !== 'win32') { + return; + } + + // Setup Taskbar Icons + const assetFolder = path.join(process.env.NODE_ENV === 'development' ? path.join(app.getAppPath(), 'src/assets') : process.resourcesPath); + if (process.platform === 'win32') { + mainWindow.setThumbarButtons([ + { + tooltip: 'Previous', + icon: nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-previous-button.png')), + flags: ['disabled'], + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'previous'); + } + } + }, + { + tooltip: 'Play/Pause', + icon: nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-button.png')), + flags: ['disabled'], + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'playPause'); + } + } + }, + { + tooltip: 'Next', + icon: nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-next-button.png')), + flags: ['disabled'], + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'next'); + } + } + } + ]); + } + playerStateStore.addEventListener((state: any) => { + const hasVideo = !!state.videoDetails; + const isPlaying = state.trackState === 1; + + if (process.platform == 'win32') { + const taskbarFlags = []; + if (!hasVideo) { + taskbarFlags.push('disabled'); + } + + mainWindow.setThumbarButtons([ + { + tooltip: 'Previous', + icon: nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-previous-button.png')), + flags: taskbarFlags, + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'previous'); + } + } + }, + { + tooltip: 'Play/Pause', + icon: ( + isPlaying + ? nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/pause-button.png')) + : nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-button.png')) + ), + flags: taskbarFlags, + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'playPause'); + } + } + }, + { + tooltip: 'Next', + icon: nativeImage.createFromPath(path.join(assetFolder, 'icons/controls/play-next-button.png')), + flags: taskbarFlags, + click() { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'next'); + } + } + } + ]); + } + + if (store.get('playback.progressInTaskbar')) { + mainWindow.setProgressBar( + ( + hasVideo + ? (state.videoProgress / parseInt(state.videoDetails.lengthSeconds)) + : -1 + ), + { + mode: isPlaying ? 'normal' : 'paused' + } + ); + } + }); + + store.onDidChange('playback', (newValue, oldValue) => { + if (newValue.progressInTaskbar !== oldValue.progressInTaskbar && !newValue.progressInTaskbar) { + mainWindow.setProgressBar(-1); + } + }); +} + +// Shortcut registration +function registerShortcuts() { + const shortcuts = store.get('shortcuts'); + + globalShortcut.unregisterAll(); + + if (shortcuts.playPause) { + globalShortcut.register(shortcuts.playPause, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'playPause'); + } + }); + } + + if (shortcuts.next) { + globalShortcut.register(shortcuts.next, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'next'); + } + }); + } + + if (shortcuts.previous) { + globalShortcut.register(shortcuts.previous, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'previous'); + } + }); + } + + if (shortcuts.thumbsUp) { + globalShortcut.register(shortcuts.thumbsUp, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'thumbsUp'); + } + }); + } + + if (shortcuts.thumbsDown) { + globalShortcut.register(shortcuts.thumbsDown, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'thumbsDown'); + } + }); + } + + if (shortcuts.volumeUp) { + globalShortcut.register(shortcuts.volumeUp, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'volumeUp'); + } + }); + + } + + if (shortcuts.volumeDown) { + globalShortcut.register(shortcuts.volumeDown, () => { + if (ytmView) { + ytmView.webContents.send('remoteControl:execute', 'volumeDown'); + } + }); + } +} + +// Functions which call to mainWindow renderer +function sendMainWindowStateIpc() { + if (mainWindow !== null) { + mainWindow.webContents.send('mainWindow:stateChanged', { + minimized: mainWindow.isMinimized(), + maximized: mainWindow.isMaximized() + }) + } +} + +// Functions with call to ytmView renderer +function ytmViewNavigated() { + if (ytmView !== null) { + lastUrl = ytmView.webContents.getURL(); + ytmView.webContents.send('ytmView:navigationStateChanged', { + canGoBack: ytmView.webContents.canGoBack(), + canGoForward: ytmView.webContents.canGoForward(), + }) + } +} + +// Functions which call to settingsWindow renderer +function sendSettingsWindowStateIpc() { + if (settingsWindow !== null) { + settingsWindow.webContents.send('settingsWindow:stateChanged', { + minimized: settingsWindow.isMinimized(), + maximized: settingsWindow.isMaximized() + }) + } +} + +const createOrShowSettingsWindow = (): void => { + if (mainWindow === null) { + return; + } + + if (settingsWindow !== null) { + settingsWindow.focus(); + return; + } + + const mainWindowBounds = mainWindow.getBounds(); + + // Create the browser window. + settingsWindow = new BrowserWindow({ + width: 800, + height: 600, + x: Math.round(mainWindowBounds.x + (mainWindowBounds.width / 2 - 400)), + y: Math.round(mainWindowBounds.y + (mainWindowBounds.height / 2 - 300)), + minimizable: false, + maximizable: false, + resizable: false, + frame: false, + parent: mainWindow, + modal: true, + webPreferences: { + sandbox: true, + contextIsolation: true, + preload: SETTINGS_WINDOW_PRELOAD_WEBPACK_ENTRY, + devTools: !app.isPackaged + }, + }); + + // Attach events to settings window + settingsWindow.on('maximize', sendSettingsWindowStateIpc) + settingsWindow.on('unmaximize', sendSettingsWindowStateIpc) + settingsWindow.on('minimize', sendSettingsWindowStateIpc) + settingsWindow.on('restore', sendSettingsWindowStateIpc) + + settingsWindow.once('closed', () => { + settingsWindow = null; + }); + + // and load the index.html of the app. + settingsWindow.loadURL(SETTINGS_WINDOW_WEBPACK_ENTRY); + + // Open the DevTools. + if (process.env.NODE_ENV === 'development') { + settingsWindow.webContents.openDevTools({ + mode: 'detach' + }); + } +}; + +const createMainWindow = (): void => { + // Create the browser window. + mainWindow = new BrowserWindow({ + width: 1280, + height: 720, + frame: false, + icon: './assets/icons/ytmd.png', + webPreferences: { + sandbox: true, + contextIsolation: true, + preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY, + devTools: !app.isPackaged + }, + }); + const windowBounds = store.get('state').windowBounds; + const windowMaximized = store.get('state').windowMaximized; + if (windowBounds) { + mainWindow.setBounds(windowBounds); + } + if (windowMaximized) { + mainWindow.maximize(); + } + + // Create the YouTube Music view + ytmView = new BrowserView({ + webPreferences: { + sandbox: true, + contextIsolation: true, + partition: 'persist:ytmview', + preload: YTM_VIEW_PRELOAD_WEBPACK_ENTRY, + }, + }); + // This block of code adding the browser view setting the bounds and removing it is a temporary fix for a bug in YTMs UI + // where a small window size will lock the scrollbar and have difficulty unlocking it without changing the guide bar collapse state + if (ytmView !== null && mainWindow !== null) { + mainWindow.addBrowserView(ytmView); + ytmView.setBounds({ + x: 0, + y: 0, + width: 1920, + height: 1080, + }); + mainWindow.removeBrowserView(ytmView); + } + + let navigateDefault = true; + + const continueWhereYouLeftOff: boolean = store.get('playback.continueWhereYouLeftOff'); + if (continueWhereYouLeftOff) { + const lastUrl: string = store.get('state.lastUrl'); + if (lastUrl) { + if (lastUrl.startsWith("https://music.youtube.com/")) { + ytmView.webContents.loadURL(lastUrl); + navigateDefault = false; + } + } + } + + if (navigateDefault) { + ytmView.webContents.loadURL('https://music.youtube.com/'); + store.set('state.lastUrl', 'https://music.youtube.com/') + } + + // Attach events to ytm view + ytmView.webContents.on('will-navigate', (event, url) => { + if (!url.startsWith("https://consent.youtube.com/") && !url.startsWith("https://accounts.google.com/") && !url.startsWith("https://accounts.youtube.com/") && !url.startsWith("https://music.youtube.com/") && !url.startsWith("https://www.youtube.com/signin")) { + event.preventDefault(); + shell.openExternal(url); + } + }); + ytmView.webContents.on('did-navigate', ytmViewNavigated); + ytmView.webContents.on('did-navigate-in-page', ytmViewNavigated); + + ytmView.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url); + return { + action: 'deny' + } + }); + + // Attach events to main window + mainWindow.on('resize', () => { + setTimeout(() => { + ytmView.setBounds({ + x: 0, + y: 36, + width: mainWindow.getContentBounds().width, + height: mainWindow.getContentBounds().height - 36, + }); + }); + }); + + mainWindow.on('maximize', sendMainWindowStateIpc) + mainWindow.on('unmaximize', sendMainWindowStateIpc) + mainWindow.on('minimize', sendMainWindowStateIpc) + mainWindow.on('restore', sendMainWindowStateIpc) + mainWindow.on('close', () => { + store.set('state.lastUrl', lastUrl); + store.set('state.lastVideoId', lastVideoId); + store.set('state.lastPlaylistId', lastPlaylistId); + + store.set('state.windowBounds', mainWindow.getNormalBounds()); + store.set('state.windowMaximized', mainWindow.isMaximized()); + }); + + // and load the index.html of the app. + mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY); + + // Open the DevTools. + if (process.env.NODE_ENV === 'development') { + mainWindow.webContents.openDevTools({ + mode: 'detach' + }); + ytmView.webContents.openDevTools({ + mode: 'detach' + }); + } +}; + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on('ready', () => { + // Handle main window ipc + ipcMain.on('mainWindow:minimize', () => { + if (mainWindow !== null) { + mainWindow.minimize(); + } + }); + + ipcMain.on('mainWindow:maximize', () => { + if (mainWindow !== null) { + mainWindow.maximize(); + } + }); + + ipcMain.on('mainWindow:restore', () => { + if (mainWindow !== null) { + mainWindow.restore(); + } + }); + + ipcMain.on('mainWindow:close', () => { + if (mainWindow !== null) { + if (store.get('general').hideToTrayOnClose) { + mainWindow.hide(); + } else { + app.quit(); + } + } + }); + + ipcMain.on('mainWindow:requestWindowState', () => { + sendMainWindowStateIpc(); + }) + + // Handle settings window ipc + ipcMain.on('settingsWindow:open', () => { + createOrShowSettingsWindow(); + }); + + ipcMain.on('settingsWindow:minimize', () => { + if (settingsWindow !== null) { + settingsWindow.minimize(); + } + }); + + ipcMain.on('settingsWindow:maximize', () => { + if (settingsWindow !== null) { + settingsWindow.maximize(); + } + }); + + ipcMain.on('settingsWindow:restore', () => { + if (settingsWindow !== null) { + settingsWindow.restore(); + } + }); + + ipcMain.on('settingsWindow:close', () => { + if (settingsWindow !== null) { + settingsWindow.close(); + } + }); + + // Handle ytm view ipc + ipcMain.on('ytmView:loaded', () => { + if (ytmView !== null && mainWindow !== null) { + mainWindow.addBrowserView(ytmView); + ytmView.setBounds({ + x: 0, + y: 36, + width: mainWindow.getContentBounds().width, + height: mainWindow.getContentBounds().height - 36, + }); + } + }); + + ipcMain.on('ytmView:videoProgressChanged', (event, progress) => { + playerStateStore.updateVideoProgress(progress); + }); + + ipcMain.on('ytmView:videoStateChanged', (event, state) => { + // ytm state mapping definitions + // -1 -> Unknown (Seems tied to no buffer data, but cannot confirm) + // 1 -> Playing + // 2 -> Paused + // 3 -> Buffering + // 5 -> Unknown (Only happens when loading new songs - unsure what this is for) + + // ytm state flow + // Play Button Click + // -1 -> 5 -> -1 -> 3 -> 1 + // First Play Button Click (Only happens when the player is first loaded) + // -1 -> 3 -> 1 + // Previous/Next Song Click + // -1 -> 5 -> -1 -> 5 -> -1 -> 3 -> 1 + + playerStateStore.updateVideoState(state); + }); + + ipcMain.on('ytmView:videoDataChanged', (event, videoDetails, playlistId) => { + lastVideoId = videoDetails.videoId; + lastPlaylistId = playlistId; + + playerStateStore.updateVideoDetails(videoDetails, playlistId); + }); + + ipcMain.on('ytmView:storeStateChanged', (event, queue) => { + playerStateStore.updateQueue(queue); + }); + + ipcMain.on('ytmView:switchFocus', (event, context) => { + if (context === 'main') { + if (mainWindow && ytmView.webContents.isFocused()) { + mainWindow.webContents.focus(); + } + } else if (context === 'ytm') { + if (ytmView && mainWindow.webContents.isFocused()) { + ytmView.webContents.focus(); + } + } + }) + + // Handle settings store ipc + ipcMain.on('settings:set', (event, key: string, value?: string) => { + store.set(key, value); + }); + + ipcMain.handle('settings:get', (event, key: string) => { + return store.get(key); + }); + + // Handle safeStorage ipc + ipcMain.handle('safeStorage:decryptString', (event, value: string) => { + if (value) { + return safeStorage.decryptString(Buffer.from(value, 'hex')); + } else { + return null + } + }); + + ipcMain.handle('safeStorage:encryptString', (event, value: string) => { + return safeStorage.encryptString(value).toString('hex'); + }); + + // Create the permission handlers + session.fromPartition('persist:ytmview').setPermissionRequestHandler((webContents, permission, callback) => { + return callback(false); + }); + + // Register global shortcuts + registerShortcuts() + + // Run functions which rely on ready event + integrationsSetupAppReady(); + + // Create the tray + tray = new Tray(path.join(process.env.NODE_ENV === 'development' ? path.join(app.getAppPath(), 'src/assets') : process.resourcesPath, process.platform === 'win32' ? 'icons/tray.ico' : 'icons/tray.png')); + trayContextMenu = Menu.buildFromTemplate([ + { + label: 'YouTube Music Desktop', + type: 'normal', + enabled: false + }, + { + type: 'separator' + }, + { + label: 'Play/Pause', + type: 'normal', + click: () => { + ytmView.webContents.send('remoteControl:execute', 'playPause'); + } + }, + { + label: 'Previous', + type: 'normal', + click: () => { + ytmView.webContents.send('remoteControl:execute', 'previous'); + } + }, + { + label: 'Next', + type: 'normal', + click: () => { + ytmView.webContents.send('remoteControl:execute', 'next'); + } + }, + { + type: 'separator' + }, + { + label: 'Quit', + type: 'normal', + role: 'quit' + }, + ]); + tray.setToolTip('YouTube Music Desktop'); + tray.setContextMenu(trayContextMenu); + tray.on('click', () => { + if (mainWindow) { + mainWindow.show(); + } + }) + + createMainWindow(); + + // Setup taskbar features + setupTaskbarFeatures(); +}); + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +app.on('activate', () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) { + createMainWindow(); + } +}); + +// In this file you can include the rest of your app's specific main process +// code. You can also put them in separate files and import them here. diff --git a/src/integrations/companion-server/api/v1/index.ts b/src/integrations/companion-server/api/v1/index.ts new file mode 100644 index 000000000..8bae82782 --- /dev/null +++ b/src/integrations/companion-server/api/v1/index.ts @@ -0,0 +1,251 @@ +import crypto from 'crypto'; +import { BrowserWindow, ipcMain, safeStorage } from "electron"; +import ElectronStore from 'electron-store'; +import { FastifyPluginCallback, FastifyPluginOptions } from "fastify"; +import { StoreSchema } from '../../../../shared/store/schema'; +import playerStateStore from "../../../../player-state-store"; +import { createAuthToken, getIsTemporaryAuthCodeValidAndRemove, getTemporaryAuthCode, isAuthValid, isAuthValidMiddleware } from '../../shared/auth'; + +declare const AUTHORIZE_COMPANION_WINDOW_WEBPACK_ENTRY: string; +declare const AUTHORIZE_COMPANION_WINDOW_PRELOAD_WEBPACK_ENTRY: string; + +const mapThumbnails = (thumbnail: any) => { + // Explicit mapping to keep a consistent API + // If YouTube Music changes how this is presented internally then it's easier to update without breaking the API + return { + url: thumbnail.url, + width: thumbnail.width, + height: thumbnail.height + } +} + +const mapQueueItems = (item: any) => { + let playlistPanelVideoRenderer; + if (item.playlistPanelVideoRenderer) + playlistPanelVideoRenderer = item.playlistPanelVideoRenderer; + else if (item.playlistPanelVideoWrapperRenderer) + playlistPanelVideoRenderer = item.playlistPanelVideoWrapperRenderer.primaryRenderer.playlistPanelVideoRenderer; + + // This probably shouldn't happen but in the off chance it does we need to return nothing + if (!playlistPanelVideoRenderer) + return null + + return { + thubmnails: playlistPanelVideoRenderer.thumbnail.thumbnails.map(mapThumbnails), + title: playlistPanelVideoRenderer.title.runs[0].text, + author: playlistPanelVideoRenderer.shortBylineText.runs[0].text, + duration: playlistPanelVideoRenderer.lengthText.runs[0].text + }; +} + +const getPlayerState = () => { + const state = playerStateStore.getState(); + return { + player: { + state: state.trackState, + progress: state.videoProgress, + queue: state.queue ? { + autoplay: state.queue.autoplay, + shuffleEnabled: state.queue.shuffleEnabled, + items: state.queue.items.map(mapQueueItems), + automixItems: state.queue.automixItems.map(mapQueueItems), + isGenerating: state.queue.isGenerating, + isInfinite: state.queue.isInfinite, + repeatMode: state.queue.repeatMode, + // Developer note: + // selectedItemIndex can be 0 when the current video is not 0 in the queue. + // YouTube Music usually only does this on first navigations if going directly to a video + playlist (possibly within new queues as well on a playlist) + selectedItemIndex: state.queue.selectedItemIndex + } : null + }, + video: state.videoDetails ? { + author: state.videoDetails.author, + title: state.videoDetails.title, + album: state.videoDetails.album, + thumbnails: state.videoDetails.thumbnail.thumbnails.map(mapThumbnails), + duration: parseInt(state.videoDetails.lengthSeconds), + id: state.videoDetails.videoId, + } : null + } +} + +interface CompanionServerAPIv1Options extends FastifyPluginOptions { + remoteCommandEmitter: (command: string, ...args: any[]) => void; + getStore: () => ElectronStore; +} + +const CompanionServerAPIv1: FastifyPluginCallback = (fastify, options, next) => { + fastify.post<{ Body: { appName: string } }>('/auth/requestcode', async (request, response) => { + const code = await getTemporaryAuthCode(request.body.appName); + if (code) { + response.send({ + code + }); + } else { + response.send({ + error: 'AUTHORIZATION_TIMEOUT' + }) + } + }); + + fastify.post<{ Body: { appName: string, code: string } }>('/auth/request', async (request, response) => { + let companionServerAuthWindowEnabled = false; + try { + companionServerAuthWindowEnabled = safeStorage.decryptString(Buffer.from(options.getStore().get('integrations').companionServerAuthWindowEnabled, 'hex')) === 'true' ? true : false; + } catch { /* do nothing, value is false */ } + + if (!companionServerAuthWindowEnabled) { + response.send({ + error: 'AUTHORIZATION_DISABLED' + }); + return; + } + + if (!getIsTemporaryAuthCodeValidAndRemove(request.body.appName, request.body.code)) { + response.send({ + error: 'AUTHORIZATION_INVALID' + }); + return; + } + + ipcMain.handle('companionAuthorization:getAppName', () => { + return request.body.appName; + }); + + ipcMain.handle('companionAuthorization:getCode', () => { + return request.body.code; + }); + + // Create the authorization browser window. + const authorizationWindow = new BrowserWindow({ + width: 640, + height: 480, + minimizable: false, + maximizable: false, + resizable: false, + frame: false, + webPreferences: { + sandbox: true, + contextIsolation: true, + preload: AUTHORIZE_COMPANION_WINDOW_PRELOAD_WEBPACK_ENTRY, + }, + }); + authorizationWindow.loadURL(AUTHORIZE_COMPANION_WINDOW_WEBPACK_ENTRY); + authorizationWindow.show(); + + // Open the DevTools. + if (process.env.NODE_ENV === 'development') { + authorizationWindow.webContents.openDevTools({ + mode: 'detach' + }); + } + + let promiseResolve: (value: boolean | PromiseLike) => void; + let promiseInterval: string | number | NodeJS.Timeout; + + function resultListener(_event: Electron.IpcMainEvent, authorized: boolean) { + clearInterval(this.interval); + promiseResolve(authorized); + } + + function closeListener() { + clearInterval(this.interval); + promiseResolve(false); + } + + const startTime = Date.now(); + const authorized = await new Promise((resolve) => { + promiseResolve = resolve; + promiseInterval = setInterval(() => { + if (request.connection.destroyed) { + clearInterval(promiseInterval); + resolve(false); + } + + if (Date.now() - startTime > 30 * 1000) { + clearInterval(promiseInterval); + resolve(false); + } + }, 250); + + ipcMain.once('companionAuthorization:result', resultListener); + ipcMain.once('companionWindow:close', closeListener); + }) + + authorizationWindow.close(); + ipcMain.removeHandler('companionAuthorization:getAppName'); + ipcMain.removeHandler('companionAuthorization:getCode'); + ipcMain.removeListener('companionAuthorization:result', resultListener); + ipcMain.removeListener('companionWindow:close', closeListener); + + if (authorized) { + const token = createAuthToken(options.getStore(), request.body.appName); + + response.send({ + token + }); + options.getStore().set('integrations.companionServerAuthWindowEnabled', await safeStorage.encryptString("false")); + } else { + response.send({ + error: 'AUTHORIZATION_DENIED' + }) + } + }) + + fastify.get('/state', { + preHandler: (request, response, next) => { + return isAuthValidMiddleware(options.getStore(), request, response, next); + } + }, (request, response) => { + response.send(getPlayerState()) + }) + + fastify.ready().then(() => { + fastify.io.of('/api/v1').use((socket, next) => { + const token = socket.handshake.auth.token + const validSession = isAuthValid(options.getStore(), token); + if (validSession) + next() + else + next(new Error("UNAUTHORIZED")) + }); + fastify.io.of('/api/v1').on('connection', (socket) => { + socket.on('command', (command) => { + switch (command) { + case "playPause": { + options.remoteCommandEmitter('playPause'); + break; + } + + case "volumeUp": { + options.remoteCommandEmitter('volumeUp'); + break; + } + + case "volumeDown": { + options.remoteCommandEmitter('volumeDown'); + break; + } + + case "next": { + options.remoteCommandEmitter('next'); + break; + } + + case "previous`": { + options.remoteCommandEmitter('previous'); + break; + } + } + }); + }); + + playerStateStore.addEventListener(() => { + fastify.io.of('/api/v1').emit('state-update', getPlayerState()) + }); + }) + + next(); +}; + +export default CompanionServerAPIv1; \ No newline at end of file diff --git a/src/integrations/companion-server/index.ts b/src/integrations/companion-server/index.ts new file mode 100644 index 000000000..b74968835 --- /dev/null +++ b/src/integrations/companion-server/index.ts @@ -0,0 +1,61 @@ +import { EventEmitter } from 'events'; +import IIntegration from '../integration'; +import Fastify, { FastifyInstance } from 'fastify'; +import FastifyIO from 'fastify-socket.io'; +import CompanionServerAPIv1 from './api/v1'; +import { StoreSchema } from '../../shared/store/schema'; +import ElectronStore from 'electron-store'; + +export default class CompanionServer implements IIntegration { + private listenIp = '0.0.0.0'; + private listenPort = 9863; + private fastifyServer: FastifyInstance; + private store: ElectronStore; + + private eventEmitter = new EventEmitter(); + + constructor() { + this.createServer() + } + + private createServer() { + this.fastifyServer = Fastify(); + this.fastifyServer.register(FastifyIO, { + transports: ['websocket'], + allowUpgrades: false + }); + this.fastifyServer.register(CompanionServerAPIv1, { + prefix: '/api/v1', + remoteCommandEmitter: (command: string, ...args: any[]) => this.eventEmitter.emit('executeRemoteCommand', command, ...args), + getStore: () => { return this.store; } + }); + + // Disconnect connections to the default namespace + this.fastifyServer.ready().then(() => { + this.fastifyServer.io.on('connection', socket => socket.disconnect()) + }); + } + + public addEventListener(listener: (...args: any[]) => void) { + this.eventEmitter.addListener('executeRemoteCommand', listener); + } + + public removeEventListener(listener: (...args: any[]) => void) { + this.eventEmitter.removeListener('executeRemoteCommand', listener); + } + + public provide(store: ElectronStore): void { + this.store = store; + } + + public enable() { + if (!this.fastifyServer.server.listening) { + this.createServer(); + this.fastifyServer.listen({ host: this.listenIp, port: this.listenPort }); + } + } + + public disable() { + this.fastifyServer.close(); + } +} \ No newline at end of file diff --git a/src/integrations/companion-server/shared/auth.ts b/src/integrations/companion-server/shared/auth.ts new file mode 100644 index 000000000..d6317ec2b --- /dev/null +++ b/src/integrations/companion-server/shared/auth.ts @@ -0,0 +1,120 @@ +import crypto from 'crypto'; +import { safeStorage } from 'electron'; +import ElectronStore from 'electron-store'; +import { FastifyReply, FastifyRequest, HookHandlerDoneFunction } from 'fastify'; +import { StoreSchema } from '../../../shared/store/schema'; + +const temporaryCodeMap: { [code: string]: any } = {}; + +async function getUnusedCode() { + return new Promise((resolve) => { + let code; + const generateStart = Date.now(); + // Because of this setInterval it does take 250ms before it executes which delays everything by 250ms + const interval = setInterval(() => { + // Failsafe timeout bail. It could be that every code is exhausted or we simply didn't find a code fast enough + if (Date.now() - generateStart > 3 * 1000) { + clearInterval(interval); + resolve(null); + } + + code = `${crypto.randomInt(0, 9)}${crypto.randomInt(0, 9)}${crypto.randomInt(0, 9)}${crypto.randomInt(0, 9)}`; + if (!temporaryCodeMap[code]) { + clearInterval(interval); + resolve(code); + } + }, 250); + }) +} + +export async function getTemporaryAuthCode(appName: string) { + const code = await getUnusedCode(); + if (code) { + temporaryCodeMap[code] = { + appName + } + setTimeout(() => { + delete temporaryCodeMap[code]; + }, 60 * 1000); + } + return code; +} + +export function getIsTemporaryAuthCodeValidAndRemove(appName: string, code: string) { + if (temporaryCodeMap[code]) { + if (temporaryCodeMap[code].appName === appName) { + delete temporaryCodeMap[code]; + return true; + } + } + + return false; +} + +export function createAuthToken(store: ElectronStore, appName: string) { + let authTokens: object[] = []; + try { + authTokens = JSON.parse(safeStorage.decryptString(Buffer.from(store.get('integrations').companionServerAuthTokens, 'hex'))); + } catch { /* authTokens will just be an empty array */ } + + const token = crypto.randomBytes(256).toString('hex'); + const tokenId = crypto.randomUUID(); + authTokens.push({ + appName: appName, + id: tokenId, + token: crypto.createHash('sha256').update(token).digest('hex') + }); + + store.set('integrations.companionServerAuthTokens', safeStorage.encryptString(JSON.stringify(authTokens)).toString('hex')); + + return token; +} + +export function isAuthValid(store: ElectronStore, authToken: string) { + if (!authToken) + return false; + + const authTokenHash = crypto.createHash('sha256').update(authToken).digest('hex') + + let authTokens: any[] = []; + try { + const decryptedAuthTokens = safeStorage.decryptString(Buffer.from(store.get('integrations').companionServerAuthTokens, 'hex')); + authTokens = JSON.parse(decryptedAuthTokens); + } catch { /* authTokens will just be an empty array */ } + + let validSession = false; + for (const authSession of authTokens) { + if (authSession.token == authTokenHash) { + validSession = true; + break; + } + } + + if (validSession) { + return true; + } + + return false; +} + +export function isAuthValidMiddleware(store: ElectronStore, request: FastifyRequest, response: FastifyReply, next: HookHandlerDoneFunction) { + const authToken = request.headers.authorization; + if (!authToken) { + response.code(401); + response.send({ + error: 'UNAUTHORIZED' + }); + return; + } + + const validSession = isAuthValid(store, authToken); + + if (validSession) { + next(); + } else { + response.code(401); + response.send({ + error: 'UNAUTHORIZED' + }); + } +} \ No newline at end of file diff --git a/src/integrations/discord-presence/index.ts b/src/integrations/discord-presence/index.ts new file mode 100644 index 000000000..1140b89f2 --- /dev/null +++ b/src/integrations/discord-presence/index.ts @@ -0,0 +1,151 @@ +import DiscordRPC from 'discord-rpc'; +import playerStateStore from '../../player-state-store'; +import IIntegration from "../integration"; + +const DISCORD_CLIENT_ID = '495666957501071390'; + +function getHighestResThumbnail(thumbnails: any[]) { + let currentWidth = 0; + let currentHeight = 0; + let url = null; + for (const thumbnail of thumbnails) { + if (thumbnail.width > currentWidth && thumbnail.height > currentHeight) { + currentWidth = thumbnail.width; + currentHeight = thumbnail.height; + url = thumbnail.url; + } + } + return url; +} + +function getSmallImageKey(state: number) { + switch (state) { + case 1: { + return 'discordrpc-play'; + } + + case 2: { + return 'discordrpc-pause'; + } + + case 3: { + return 'discordrpc-play'; + } + + default: { + return 'discordrpc-pause'; + } + } +} + +function getSmallImageText(state: number) { + switch (state) { + case 1: { + return 'Playing'; + } + + case 2: { + return 'Paused'; + } + + case 3: { + return 'Buffering'; + } + + default: { + return 'Unknown'; + } + } +} + +function stringLimit(str: string, limit: number) { + if (str.length > limit) { + return str.substring(0, limit - 3) + '...'; + } + return str; +} + +export default class DiscordPresence implements IIntegration { + private discordClient: DiscordRPC.Client = null; + private ready = false; + private pauseTimeout: string | number | NodeJS.Timeout = null; + private previousProgress: any = null; + private endTimestamp: any = null; + + private playerStateChanged(state: any) { + if (this.ready && state.videoDetails) { + if (!this.previousProgress) { + this.endTimestamp = state.trackState === 1 ? Math.floor(Date.now() / 1000) + (parseInt(state.videoDetails.lengthSeconds) - Math.round(state.videoProgress)) : undefined; + this.previousProgress = state.videoProgress; + } + + const thumbnail = getHighestResThumbnail(state.videoDetails.thumbnail.thumbnails); + this.discordClient.setActivity({ + details: stringLimit(state.videoDetails.title, 128), + state: stringLimit(state.videoDetails.author, 128), + largeImageKey: thumbnail, + largeImageText: stringLimit(state.videoDetails.title, 128), + smallImageKey: getSmallImageKey(state.trackState), + smallImageText: getSmallImageText(state.trackState), + instance: false, + endTimestamp: state.trackState === 1 ? this.endTimestamp : undefined, + buttons: [ + { + label: 'Play on YouTube Music', + url: `https://music.youtube.com/watch?v=${state.videoDetails.videoId}` + } + ] + }); + + if (state.trackState === 2) { + if (this.pauseTimeout) { + clearTimeout(this.pauseTimeout); + this.pauseTimeout = null; + } + + this.pauseTimeout = setTimeout(() => { + if (this.discordClient && this.ready) { + this.discordClient.clearActivity(); + } + this.pauseTimeout = null; + }, 30 * 1000); + } else { + if (this.pauseTimeout) { + clearTimeout(this.pauseTimeout); + this.pauseTimeout = null; + } + } + } else if (this.ready && !state.videoDetails) { + this.discordClient.clearActivity(); + } + } + + public provide(...args: any[]): void { + throw new Error("Method not implemented."); + } + + public enable(): void { + if (!this.discordClient) { + this.discordClient = new DiscordRPC.Client({ + transport: 'ipc' + }) + this.discordClient.on('connected', () => { + this.ready = true; + }) + this.discordClient.on('disconnected', () => { + this.ready = false; + }) + this.discordClient.connect(DISCORD_CLIENT_ID); + playerStateStore.addEventListener((state: any) => this.playerStateChanged(state)); + } + } + + public disable(): void { + if (this.discordClient) { + this.ready = false; + this.discordClient.destroy(); + this.discordClient = null; + } + } + +} \ No newline at end of file diff --git a/src/integrations/integration.ts b/src/integrations/integration.ts new file mode 100644 index 000000000..5a860ee50 --- /dev/null +++ b/src/integrations/integration.ts @@ -0,0 +1,8 @@ +export default interface IIntegration { + // For integration makers, ensure provide() is always called before enable() is called + // It is expected to call provide() before enable() on an integration for the first time + // It is OK to call provide at any point in time to update the integration with new or different data should it have changed + provide(...args: any[]): void; + enable(): void; + disable(): void; +} \ No newline at end of file diff --git a/src/player-state-store/index.ts b/src/player-state-store/index.ts new file mode 100644 index 000000000..787213eee --- /dev/null +++ b/src/player-state-store/index.ts @@ -0,0 +1,58 @@ +import { EventEmitter } from 'events'; + +class PlayerStateStore { + private videoProgress = 0; + private state = -1; + private videoDetails: any | null = null; + private playlistId: string | null = null; + private queue: any | null = null; + private eventEmitter = new EventEmitter(); + + public getState() { + return { + videoDetails: this.videoDetails, + playlistId: this.playlistId, + trackState: this.state, + queue: this.queue, + videoProgress: this.videoProgress + } + } + + public getQueue() { + return this.queue; + } + + public getPlaylistId() { + return this.playlistId; + } + + public updateVideoProgress(progress: any) { + this.videoProgress = progress; + this.eventEmitter.emit('stateChanged', this.getState()); + } + + public updateVideoState(state: any) { + this.state = state; + this.eventEmitter.emit('stateChanged', this.getState()); + } + + public updateVideoDetails(videoDetails: any, playlistId: string) { + this.videoDetails = videoDetails; + this.playlistId = playlistId; + this.eventEmitter.emit('stateChanged', this.getState()); + } + + public updateQueue(queueState: any) { + this.queue = queueState; + } + + public addEventListener(listener: (...args: any[]) => void) { + this.eventEmitter.addListener('stateChanged', listener); + } + + public removeEventListener(listener: (...args: any[]) => void) { + this.eventEmitter.removeListener('stateChanged', listener); + } +} + +export default new PlayerStateStore(); \ No newline at end of file diff --git a/src/shared/components/KeybindInput.vue b/src/shared/components/KeybindInput.vue new file mode 100644 index 000000000..a57eb895a --- /dev/null +++ b/src/shared/components/KeybindInput.vue @@ -0,0 +1,131 @@ + + + + + \ No newline at end of file diff --git a/src/shared/components/Settings.vue b/src/shared/components/Settings.vue new file mode 100644 index 000000000..f22c2728a --- /dev/null +++ b/src/shared/components/Settings.vue @@ -0,0 +1,312 @@ + + + + + \ No newline at end of file diff --git a/src/shared/components/TitleBar.vue b/src/shared/components/TitleBar.vue new file mode 100644 index 000000000..aac0a3e4a --- /dev/null +++ b/src/shared/components/TitleBar.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/src/shared/store/renderer.ts b/src/shared/store/renderer.ts new file mode 100644 index 000000000..2171d671e --- /dev/null +++ b/src/shared/store/renderer.ts @@ -0,0 +1,21 @@ +import { ipcRenderer } from "electron"; + +if (process.type !== 'renderer') { + throw new Error('This module can only be used from the renderer process'); +} + +export default class Store { + public set(key: string, value?: any) { + return ipcRenderer.send('settings:set', key, value); + } + + public async get(key: keyof TSchema) { + return await ipcRenderer.invoke('settings:get', key); + } + + public onDidAnyChange(callback: (newState: TSchema, oldState: TSchema) => void) { + return ipcRenderer.on('settings:stateChanged', (event, newState, oldState) => { + callback(newState, oldState); + }); + } +} \ No newline at end of file diff --git a/src/shared/store/schema.ts b/src/shared/store/schema.ts new file mode 100644 index 000000000..d70ba2406 --- /dev/null +++ b/src/shared/store/schema.ts @@ -0,0 +1,37 @@ +export type StoreSchema = { + general: { + hideToTrayOnClose: boolean, + showNotificationOnSongChange: boolean, + startOnBoot: boolean, + startMinimized: boolean, + alwaysShowVolumeSlider: boolean + }, + playback: { + continueWhereYouLeftOff: boolean, + continueWhereYouLeftOffPaused: boolean, + progressInTaskbar: boolean + }, + integrations: { + companionServerEnabled: boolean, + companionServerAuthWindowEnabled: string | null, // boolean | Encrypted for security + companionServerAuthTokens: string | null, // array[object] | Encrypted for security + discordPresenceEnabled: boolean + }, + shortcuts: { + playPause: string, + next: string, + previous: string, + thumbsUp: string, + thumbsDown: string, + volumeUp: string, + volumeDown: string + } + state: { + lastUrl: string, + lastVideoId: string, + lastPlaylistId: string, + companionServerAuthWindowEnableTime: string | null // string (ISO8601) | Encrypted for security + windowBounds: Electron.Rectangle | null + windowMaximized: boolean + } +} \ No newline at end of file diff --git a/src/windows/authorize-companion/Auth.vue b/src/windows/authorize-companion/Auth.vue new file mode 100644 index 000000000..b5d704016 --- /dev/null +++ b/src/windows/authorize-companion/Auth.vue @@ -0,0 +1,108 @@ + + + + + \ No newline at end of file diff --git a/src/windows/authorize-companion/Index.vue b/src/windows/authorize-companion/Index.vue new file mode 100644 index 000000000..6bb1a796a --- /dev/null +++ b/src/windows/authorize-companion/Index.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/src/windows/authorize-companion/index.html b/src/windows/authorize-companion/index.html new file mode 100644 index 000000000..e9d0fe616 --- /dev/null +++ b/src/windows/authorize-companion/index.html @@ -0,0 +1,23 @@ + + + + + YouTube Music Desktop App - Settings + + + +

+ + diff --git a/src/windows/authorize-companion/preload.ts b/src/windows/authorize-companion/preload.ts new file mode 100644 index 000000000..a26a1de6d --- /dev/null +++ b/src/windows/authorize-companion/preload.ts @@ -0,0 +1,15 @@ +// See the Electron documentation for details on how to use preload scripts: +// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts + +import { contextBridge, ipcRenderer } from "electron"; + +contextBridge.exposeInMainWorld('ytmd', { + sendResult: (result: boolean) => ipcRenderer.send('companionAuthorization:result', result), + getAppName: async () => await ipcRenderer.invoke('companionAuthorization:getAppName'), + getCode: async () => await ipcRenderer.invoke('companionAuthorization:getCode'), + minimizeWindow: () => ipcRenderer.send("companionWindow:minimize"), + maximizeWindow: () => ipcRenderer.send("companionWindow:maximize"), + restoreWindow: () => ipcRenderer.send("companionWindow:restore"), + closeWindow: () => ipcRenderer.send("companionWindow:close"), + handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("settingsWindow:stateChanged", callback) +}); \ No newline at end of file diff --git a/src/windows/authorize-companion/renderer.ts b/src/windows/authorize-companion/renderer.ts new file mode 100644 index 000000000..b739b43b4 --- /dev/null +++ b/src/windows/authorize-companion/renderer.ts @@ -0,0 +1,35 @@ +/** + * This file will automatically be loaded by webpack and run in the "renderer" context. + * To learn more about the differences between the "main" and the "renderer" context in + * Electron, visit: + * + * https://electronjs.org/docs/latest/tutorial/process-model + * + * By default, Node.js integration in this file is disabled. When enabling Node.js integration + * in a renderer process, please be aware of potential security implications. You can read + * more about security risks here: + * + * https://electronjs.org/docs/tutorial/security + * + * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration` + * flag: + * + * ``` + * // Create the browser window. + * mainWindow = new BrowserWindow({ + * width: 800, + * height: 600, + * webPreferences: { + * nodeIntegration: true + * } + * }); + * ``` + */ + +import 'material-symbols/outlined.css'; + +import { createApp } from 'vue'; +import App from './Index.vue'; + +const app = createApp(App) +app.mount("#app"); diff --git a/src/windows/main/Index.vue b/src/windows/main/Index.vue new file mode 100644 index 000000000..6ed50461e --- /dev/null +++ b/src/windows/main/Index.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/src/windows/main/index.html b/src/windows/main/index.html new file mode 100644 index 000000000..199b81f28 --- /dev/null +++ b/src/windows/main/index.html @@ -0,0 +1,23 @@ + + + + + YouTube Music Desktop App + + + +
+ + diff --git a/src/windows/main/preload.ts b/src/windows/main/preload.ts new file mode 100644 index 000000000..668e4ffd5 --- /dev/null +++ b/src/windows/main/preload.ts @@ -0,0 +1,15 @@ +// See the Electron documentation for details on how to use preload scripts: +// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts + +import { contextBridge, ipcRenderer } from "electron"; + +contextBridge.exposeInMainWorld('ytmd', { + minimizeWindow: () => ipcRenderer.send("mainWindow:minimize"), + maximizeWindow: () => ipcRenderer.send("mainWindow:maximize"), + restoreWindow: () => ipcRenderer.send("mainWindow:restore"), + closeWindow: () => ipcRenderer.send("mainWindow:close"), + handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("mainWindow:stateChanged", callback), + requestWindowState: () => ipcRenderer.send('mainWindow:requestWindowState'), + openSettingsWindow: () => ipcRenderer.send("settingsWindow:open"), + switchFocus: (context: string) => ipcRenderer.send('ytmView:switchFocus', context) +}); \ No newline at end of file diff --git a/src/windows/main/renderer.ts b/src/windows/main/renderer.ts new file mode 100644 index 000000000..b739b43b4 --- /dev/null +++ b/src/windows/main/renderer.ts @@ -0,0 +1,35 @@ +/** + * This file will automatically be loaded by webpack and run in the "renderer" context. + * To learn more about the differences between the "main" and the "renderer" context in + * Electron, visit: + * + * https://electronjs.org/docs/latest/tutorial/process-model + * + * By default, Node.js integration in this file is disabled. When enabling Node.js integration + * in a renderer process, please be aware of potential security implications. You can read + * more about security risks here: + * + * https://electronjs.org/docs/tutorial/security + * + * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration` + * flag: + * + * ``` + * // Create the browser window. + * mainWindow = new BrowserWindow({ + * width: 800, + * height: 600, + * webPreferences: { + * nodeIntegration: true + * } + * }); + * ``` + */ + +import 'material-symbols/outlined.css'; + +import { createApp } from 'vue'; +import App from './Index.vue'; + +const app = createApp(App) +app.mount("#app"); diff --git a/src/windows/settings/Index.vue b/src/windows/settings/Index.vue new file mode 100644 index 000000000..143bb08e6 --- /dev/null +++ b/src/windows/settings/Index.vue @@ -0,0 +1,121 @@ + + + + + \ No newline at end of file diff --git a/src/windows/settings/index.html b/src/windows/settings/index.html new file mode 100644 index 000000000..e9d0fe616 --- /dev/null +++ b/src/windows/settings/index.html @@ -0,0 +1,23 @@ + + + + + YouTube Music Desktop App - Settings + + + +
+ + diff --git a/src/windows/settings/preload.ts b/src/windows/settings/preload.ts new file mode 100644 index 000000000..5fcae6972 --- /dev/null +++ b/src/windows/settings/preload.ts @@ -0,0 +1,25 @@ +// See the Electron documentation for details on how to use preload scripts: +// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts + +import { contextBridge, ipcRenderer } from "electron"; +import Store from "../../shared/store/renderer"; +import { StoreSchema } from "../../shared/store/schema"; + +const store = new Store(); + +contextBridge.exposeInMainWorld('ytmd', { + store: { + set: (key: string, value: any) => store.set(key, value), + get: async (key: keyof StoreSchema) => await store.get(key), + onDidAnyChange: (callback: (newState: StoreSchema, oldState: StoreSchema) => void) => store.onDidAnyChange(callback) + }, + safeStorage: { + decryptString: async (value: string) => await ipcRenderer.invoke('safeStorage:decryptString', value), + encryptString: async (value: string) => await ipcRenderer.invoke('safeStorage:encryptString', value), + }, + minimizeWindow: () => ipcRenderer.send("settingsWindow:minimize"), + maximizeWindow: () => ipcRenderer.send("settingsWindow:maximize"), + restoreWindow: () => ipcRenderer.send("settingsWindow:restore"), + closeWindow: () => ipcRenderer.send("settingsWindow:close"), + handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("settingsWindow:stateChanged", callback) +}); \ No newline at end of file diff --git a/src/windows/settings/renderer.ts b/src/windows/settings/renderer.ts new file mode 100644 index 000000000..b739b43b4 --- /dev/null +++ b/src/windows/settings/renderer.ts @@ -0,0 +1,35 @@ +/** + * This file will automatically be loaded by webpack and run in the "renderer" context. + * To learn more about the differences between the "main" and the "renderer" context in + * Electron, visit: + * + * https://electronjs.org/docs/latest/tutorial/process-model + * + * By default, Node.js integration in this file is disabled. When enabling Node.js integration + * in a renderer process, please be aware of potential security implications. You can read + * more about security risks here: + * + * https://electronjs.org/docs/tutorial/security + * + * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration` + * flag: + * + * ``` + * // Create the browser window. + * mainWindow = new BrowserWindow({ + * width: 800, + * height: 600, + * webPreferences: { + * nodeIntegration: true + * } + * }); + * ``` + */ + +import 'material-symbols/outlined.css'; + +import { createApp } from 'vue'; +import App from './Index.vue'; + +const app = createApp(App) +app.mount("#app"); diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts new file mode 100644 index 000000000..ae8c464ce --- /dev/null +++ b/src/ytmview/preload.ts @@ -0,0 +1,834 @@ +import { contextBridge, ipcRenderer, webFrame } from "electron"; +import Store from "../shared/store/renderer"; +import { StoreSchema } from "../shared/store/schema"; + +const store = new Store(); + +contextBridge.exposeInMainWorld('ytmd', { + sendVideoProgress: (volume: number) => ipcRenderer.send('ytmView:videoProgressChanged', volume), + sendVideoState: (state: number) => ipcRenderer.send('ytmView:videoStateChanged', state), + sendVideoData: (videoDetails: any, playlistId: string) => ipcRenderer.send('ytmView:videoDataChanged', videoDetails, playlistId), + sendAdState: (adRunning: boolean) => ipcRenderer.send('ytmView:adStateChanged', adRunning), + sendStoreUpdate: (queueState: any) => ipcRenderer.send('ytmView:storeStateChanged', queueState) +}) + +function createStyleSheet() { + const css = document.createElement('style') + css.appendChild(document.createTextNode( + ` + .ytmd-history-back, .ytmd-history-forward { + cursor: pointer; + margin: 0 18px 0 2px; + font-size: 24px; + color: rgba(255, 255, 255, 0.5); + } + + .ytmd-history-back.pivotbar, .ytmd-history-forward.pivotbar { + padding-top: 12px; + } + + .ytmd-history-forward { + transform: rotate(180deg); + } + + .ytmd-history-back.disabled, .ytmd-history-forward.disabled { + cursor: not-allowed; + } + + .ytmd-history-back:hover:not(.disabled), .ytmd-history-forward:hover:not(.disabled) { + color: #FFFFFF; + } + + .ytmd-hidden { + display: none; + } + + .ytmd-persist-volume-slider { + opacity: 1 !important; + pointer-events: initial !important; + } + + .ytmd-player-bar-control.library-button { + margin-left: 8px; + } + + .ytmd-player-bar-control.library-button.hidden { + display: none; + } + + .ytmd-player-bar-control.playlist-button { + margin-left: 8px; + } + + .ytmd-player-bar-control.playlist-button.hidden { + display: none; + } + + .ytmd-player-bar-control.sleep-timer-button.active { + color: #FFFFFF; + } + ` + )) + document.head.appendChild(css); +} + +function createMaterialSymbolsLink() { + const link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,100,0,0' + return link; +} + +function createNavigationMenuArrows() { + // Go back in history + const historyBackElement = document.createElement('span'); + historyBackElement.classList.add('material-symbols-outlined', 'ytmd-history-back', 'disabled'); + historyBackElement.innerText = 'keyboard_backspace'; + + historyBackElement.addEventListener('click', function () { + if (!historyBackElement.classList.contains('disabled')) { + history.back(); + } + }); + + // Go forward in history + const historyForwardElement = document.createElement('span'); + historyForwardElement.classList.add('material-symbols-outlined', 'ytmd-history-forward', 'disabled'); + historyForwardElement.innerText = 'keyboard_backspace'; + + historyForwardElement.addEventListener('click', function () { + if (!historyForwardElement.classList.contains('disabled')) { + history.forward(); + } + }); + + ipcRenderer.on('ytmView:navigationStateChanged', (event, state) => { + if (state.canGoBack) { + historyBackElement.classList.remove('disabled'); + } else { + historyBackElement.classList.add('disabled'); + } + + if (state.canGoForward) { + historyForwardElement.classList.remove('disabled'); + } else { + historyForwardElement.classList.add('disabled'); + } + }) + + const pivotBar = document.querySelector("ytmusic-pivot-bar-renderer"); + if (!pivotBar) { + // New YTM UI + const searchBar = document.querySelector("ytmusic-search-box"); + const navBar = searchBar.parentNode; + navBar.insertBefore(historyForwardElement, searchBar); + navBar.insertBefore(historyBackElement, historyForwardElement); + } else { + historyForwardElement.classList.add("pivotbar"); + historyBackElement.classList.add("pivotbar"); + pivotBar.prepend(historyForwardElement); + pivotBar.prepend(historyBackElement); + } +} + +function createKeyboardNavigation() { + const keyboardNavigation = document.createElement('div'); + keyboardNavigation.tabIndex = 32767; + keyboardNavigation.onfocus = () => { + keyboardNavigation.blur(); + ipcRenderer.send('ytmView:switchFocus', 'main') + } + document.body.appendChild(keyboardNavigation); +} + +function createAdditionalPlayerBarControls() { + webFrame.executeJavaScript(` + window.ytmdControlButtons = {}; + + let currentVideoId = ""; + + let libraryFeedbackDefaultToken = ""; + let libraryFeedbackToggledToken = ""; + + let sleepTimerTimeout = null; + + let libraryButton = document.createElement("yt-button-shape"); + libraryButton.classList.add("ytmd-player-bar-control"); + libraryButton.classList.add("library-button"); + libraryButton.set('data', { + focused: false, + iconPosition: "icon-only", + onTap: function() { + var closePopoupEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-close-popups-action', + args: [ + ['ytmusic-menu-popup-renderer'] + ], + optionalAction: false, + returnValue: [] + } + }; + var feedbackEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + this, + { + feedbackEndpoint: { + feedbackToken: this.data.toggled ? libraryFeedbackToggledToken : libraryFeedbackDefaultToken + } + } + ], + optionalAction: false, + returnValue: [] + } + }; + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + this.dispatchEvent(new CustomEvent('yt-action', feedbackEvent)); + window.ytmdPlayerBar.store.dispatch({ type: "SET_FEEDBACK_TOGGLE_STATE", payload: { defaultEndpointFeedbackToken: libraryFeedbackDefaultToken, isToggled: !this.data.toggled } }) + }.bind(libraryButton), + style: "mono", + toggled: false, + type: "text" + }); + window.ytmdPlayerBar.querySelector("ytmusic-like-button-renderer").insertAdjacentElement("afterend", libraryButton); + + let playlistButton = document.createElement("yt-button-shape"); + playlistButton.classList.add("ytmd-player-bar-control"); + playlistButton.classList.add("playlist-button"); + playlistButton.set('icon', "yt-sys-icons:playlist_add"); + playlistButton.set('data', { + focused: false, + iconPosition: "icon-only", + onTap: function() { + var closePopoupEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-close-popups-action', + args: [ + ['ytmusic-menu-popup-renderer'] + ], + optionalAction: false, + returnValue: [] + } + }; + var returnValue = [] + var serviceRequestEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + this, + { + addToPlaylistEndpoint: { + videoId: currentVideoId + } + } + ], + optionalAction: false, + returnValue + } + }; + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + this.dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); + returnValue[0].ajaxPromise.then((response) => { + var addToPlaylistEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + addToPlaylistRenderer: response.data.contents[0].addToPlaylistRenderer + }, + popupType: "DIALOG" + } + }, + this + ], + optionalAction: false, + returnValue: [] + } + }; + this.dispatchEvent(new CustomEvent('yt-action', addToPlaylistEvent)); + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + }, () => { + // service request errored + }, this); + }.bind(playlistButton), + style: "mono", + toggled: false, + type: "text" + }); + libraryButton.insertAdjacentElement("afterend", playlistButton); + + window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { + if (event.type === 'dataloaded' && event.playertype === 1) { + currentVideoId = window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails.videoId; + } + }); + + let rightControls = document.querySelector("ytmusic-player-bar").querySelector(".right-controls-buttons"); + let sleepTimerButton = document.createElement("tp-yt-paper-icon-button"); + sleepTimerButton.setAttribute("title", "Sleep timer off"); + sleepTimerButton.classList.add("ytmusic-player-bar"); + sleepTimerButton.classList.add("ytmd-player-bar-control"); + sleepTimerButton.classList.add("sleep-timer-button"); + sleepTimerButton.set("icon", "yt-sys-icons:stopwatch"); + sleepTimerButton.onclick = () => { + sleepTimerButton.dispatchEvent(new CustomEvent('yt-action', { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + menuPopupRenderer: { + accessibilityData: { + label: "Action menu" + }, + items: [ + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 5 + } + }, + text: { + runs: [ + { + text: "5 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 10 + } + }, + text: { + runs: [ + { + text: "10 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 15 + } + }, + text: { + runs: [ + { + text: "15 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 30 + } + }, + text: { + runs: [ + { + text: "30 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 45 + } + }, + text: { + runs: [ + { + text: "45 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 60 + } + }, + text: { + runs: [ + { + text: "1 hour" + } + ] + } + }, + }, + (sleepTimerTimeout !== null) ? { + menuServiceItemRenderer: { + icon: { + iconType: "DELETE" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 0 + } + }, + text: { + runs: [ + { + text: "Clear sleep timer" + } + ] + } + }, + } : {} + ] + } + }, + popupType: "DROPDOWN" + } + }, + sleepTimerButton + ], + optionalAction: false, + returnValue: [] + } + })); + }; + rightControls.querySelector(".shuffle").insertAdjacentElement("afterend", sleepTimerButton); + + window.addEventListener("yt-action", (e) => { + if (e.detail.actionName === "yt-service-request") { + if (e.detail.args[1].ytmdSleepTimerServiceEndpoint) { + if (sleepTimerTimeout !== null) { + clearTimeout(sleepTimerTimeout); + sleepTimerTimeout = null; + if (sleepTimerButton.classList.contains("active")) { + sleepTimerButton.classList.remove("active"); + sleepTimerButton.setAttribute("title", "Sleep timer off") + } + } + + if (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time > 0) { + if (!sleepTimerButton.classList.contains("active")) { + sleepTimerButton.classList.add("active") + sleepTimerButton.setAttribute("title", "Sleep timer " + e.detail.args[1].ytmdSleepTimerServiceEndpoint.time + " minutes") + } + + sleepTimerTimeout = setTimeout(() => { + sleepTimerTimeout = null; + sleepTimerButton.classList.remove("active"); + sleepTimerButton.setAttribute("title", "Sleep timer off"); + + if (window.ytmdPlayerBar.playing_) { + window.ytmdPlayerBar.playerApi_.pauseVideo() + + document.body.dispatchEvent(new CustomEvent('yt-action', { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + dismissableDialogRenderer: { + title: { + runs: [ + { + text: "Music paused" + } + ] + }, + dialogMessages: [ + { + runs: [ + { + text: "Sleep timer expired and your music has been paused" + } + ] + } + ], + } + }, + popupType: "DIALOG", + } + }, + document.querySelector("ytmusic-app") + ], + optionalAction: false, + returnValue: [] + } + })); + } + }, (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time * 1000) * 60); + } + } + } + }); + + window.ytmdPlayerBar.store.subscribe(() => { + let state = window.ytmdPlayerBar.store.getState(); + + // Update library button for current data + const currentMenu = window.ytmdPlayerBar.getMenuRenderer(); + if (currentMenu) { + if (playlistButton.classList.contains("hidden")) { + playlistButton.classList.remove("hidden"); + } + + for (let i = 0; i < currentMenu.items.length; i++) { + const item = currentMenu.items[i]; + if (item.toggleMenuServiceItemRenderer) { + if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED" || item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { + libraryFeedbackDefaultToken = item.toggleMenuServiceItemRenderer.defaultServiceEndpoint.feedbackEndpoint.feedbackToken; + libraryFeedbackToggledToken = item.toggleMenuServiceItemRenderer.toggledServiceEndpoint.feedbackEndpoint.feedbackToken; + + if (state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== undefined && state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== null) { + libraryButton.set("data.toggled", state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken]); + } else { + libraryButton.set("data.toggled", false); + } + + if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED") { + // Default value is saved to library (false == remove from library, true == add to library) + if (libraryButton.data.toggled) { + libraryButton.set("icon", "yt-sys-icons:library_add"); + } else { + libraryButton.set("icon", "yt-sys-icons:library_saved"); + } + } else if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { + // Default value is add to library (false == add to library, true == remove from library) + if (libraryButton.data.toggled) { + libraryButton.set("icon", "yt-sys-icons:library_saved"); + } else { + libraryButton.set("icon", "yt-sys-icons:library_add"); + } + } + + if (libraryButton.classList.contains("hidden")) { + libraryButton.classList.remove("hidden"); + } + + break; + } + } + } + } else { + if (!libraryButton.classList.contains("hidden")) { + libraryButton.classList.add("hidden"); + } + if (!playlistButton.classList.contains("hidden")) { + playlistButton.classList.add("hidden"); + } + } + }); + + window.ytmdControlButtons.libraryButton = libraryButton; + `); +} + +function hideChromecastButton() { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.store.dispatch({ type: 'SET_CAST_AVAILABLE', payload: false }); + `); +} + +function hookPlayerApiEvents() { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.addEventListener('onVideoProgress', (progress) => { window.ytmd.sendVideoProgress(progress) }); + window.ytmdPlayerBar.playerApi_.addEventListener('onStateChange', (state) => { window.ytmd.sendVideoState(state) }); + window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()) } }); + window.ytmdPlayerBar.playerApi_.addEventListener('onAdStart', () => { window.ytmd.sendAdState(true) }); + window.ytmdPlayerBar.playerApi_.addEventListener('onAdEnd', () => { window.ytmd.sendAdState(false) }); + window.ytmdPlayerBar.store.subscribe(() => { + // We don't want to see everything in the store as there can be some sensitive data so we only send what's necessary to operate + let state = window.ytmdPlayerBar.store.getState(); + window.ytmd.sendStoreUpdate(state.queue) + }) + `); +} + +window.addEventListener('load', async () => { + if (window.location.hostname !== "music.youtube.com") { + if (window.location.hostname === 'consent.youtube.com') { + ipcRenderer.send('ytmView:loaded'); + } + return; + } + + let materialSymbolsLoaded = false; + + const materialSymbols = createMaterialSymbolsLink(); + materialSymbols.onload = () => { + materialSymbolsLoaded = true; + } + document.head.appendChild(materialSymbols); + + await new Promise((resolve) => { + const interval = setInterval(async () => { + const playerApiReady: boolean = await webFrame.executeJavaScript(` + document.querySelector("ytmusic-player-bar").playerApi_.isReady(); + `); + + if (materialSymbolsLoaded && playerApiReady) { + clearInterval(interval); + resolve(); + } + }, 250); + }); + + await webFrame.executeJavaScript(` + window.ytmdPlayerBar = document.querySelector("ytmusic-player-bar"); + `); + + createStyleSheet(); + createNavigationMenuArrows(); + createKeyboardNavigation(); + createAdditionalPlayerBarControls(); + hideChromecastButton(); + hookPlayerApiEvents(); + + const state = await store.get('state'); + const continueWhereYouLeftOff = (await store.get('playback')).continueWhereYouLeftOff; + const continueWhereYouLeftOffPaused = (await store.get('playback')).continueWhereYouLeftOffPaused; + + if (continueWhereYouLeftOff) { + // The last page the user was on is already a page where it will be playing a song from (no point telling YTM to play it again) + if (!state.lastUrl.startsWith("https://music.youtube.com/watch") && state.lastVideoId) { + document.dispatchEvent(new CustomEvent('yt-navigate', { + detail: { + endpoint: { + watchEndpoint: { + videoId: state.lastVideoId, + playlistId: state.lastPlaylistId + } + } + } + })); + + if (continueWhereYouLeftOffPaused) { + webFrame.executeJavaScript(` + // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon + let listener = window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { + if (event.type === 'dataloaded' && event.playertype === 1) { + window.ytmdPlayerBar.playerApi_.pauseVideo(); + window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', listener); + } + }); + `); + } + } else { + webFrame.executeJavaScript(` + window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()); + `); + } + } + + const alwaysShowVolumeSlider = (await store.get('general')).alwaysShowVolumeSlider; + if (alwaysShowVolumeSlider) { + document.querySelector("#volume-slider").classList.add("ytmd-persist-volume-slider"); + } + + ipcRenderer.on('remoteControl:execute', async (event, command, value) => { + + switch (command) { + case 'playPause': + { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); + `); + break; + } + + case 'play': + { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.playVideo(); + `); + break; + } + + case 'pause': + { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.pauseVideo(); + `); + break; + } + + case 'next': + { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.nextVideo(); + `); + break; + } + + case 'previous': + { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.previousVideo(); + `); + break; + } + + case 'thumbsUp': + // TODO + break; + + case 'thumbsDown': + // TODO + break; + + case 'volumeUp': + { + const currentVolumeUp: number = await webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.getVolume(); + `); + + let newVolumeUp = currentVolumeUp + 10; + if (currentVolumeUp > 100) { + newVolumeUp = 100; + } + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); + `); + break; + } + + case 'volumeDown': + { + const currentVolumeDown: number = await webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.getVolume(); + `); + + let newVolumeDown = currentVolumeDown - 10; + if (currentVolumeDown < 0) { + newVolumeDown = 0; + } + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); + `); + break; + } + + case 'setVolume': + { + const valueInt: number = parseInt(value); + // Check if Volume is a number and between 0 and 100 + if (isNaN(valueInt) || valueInt < 0 || valueInt > 100) { + return; + } + + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); + `); + break; + } + + + case 'mute': + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.mute(); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: true }); + `); + break; + + case 'unmute': + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.unMute(); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: false }); + `); + break; + + + case 'navigate': + { + const endpoint = value; + document.dispatchEvent(new CustomEvent('yt-navigate', { + detail: { + endpoint + } + })); + break; + } + } + }); + + store.onDidAnyChange((newState) => { + if (newState.general.alwaysShowVolumeSlider) { + const volumeSlider = document.querySelector("#volume-slider") + if (!volumeSlider.classList.contains("persist-volume-slider")) { + volumeSlider.classList.add("persist-volume-slider") + } + } else { + const volumeSlider = document.querySelector("#volume-slider") + if (volumeSlider.classList.contains("persist-volume-slider")) { + volumeSlider.classList.remove("persist-volume-slider") + } + } + }); + + ipcRenderer.send('ytmView:loaded'); +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..cbac2f69f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES6", + "allowJs": true, + "module": "commonjs", + "skipLibCheck": true, + "esModuleInterop": true, + "noImplicitAny": true, + "sourceMap": true, + "baseUrl": ".", + "outDir": "dist", + "moduleResolution": "node", + "resolveJsonModule": true, + "paths": { + "*": [ + "node_modules/*" + ] + } + }, + "include": [ + "src/**/*" + ] +} \ No newline at end of file diff --git a/webpack.main.config.ts b/webpack.main.config.ts new file mode 100644 index 000000000..c978c175a --- /dev/null +++ b/webpack.main.config.ts @@ -0,0 +1,18 @@ +import type { Configuration } from 'webpack'; + +import { rules } from './webpack.rules'; + +export const mainConfig: Configuration = { + /** + * This is the main entry point for your application, it's the first file + * that runs in the main process. + */ + entry: './src/index.ts', + // Put your normal webpack config below here + module: { + rules, + }, + resolve: { + extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'], + }, +}; diff --git a/webpack.plugins.ts b/webpack.plugins.ts new file mode 100644 index 000000000..846aa240e --- /dev/null +++ b/webpack.plugins.ts @@ -0,0 +1,10 @@ +import type IForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const ForkTsCheckerWebpackPlugin: typeof IForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); + +export const plugins = [ + new ForkTsCheckerWebpackPlugin({ + logger: 'webpack-infrastructure', + }), +]; diff --git a/webpack.renderer.config.ts b/webpack.renderer.config.ts new file mode 100644 index 000000000..f91633d3b --- /dev/null +++ b/webpack.renderer.config.ts @@ -0,0 +1,28 @@ +import type { Configuration } from 'webpack'; + +import { VueLoaderPlugin } from 'vue-loader'; + +import { rules } from './webpack.rules'; +import { plugins } from './webpack.plugins'; + +rules.push({ + test: /\.css$/, + use: [{ loader: 'style-loader' }, { loader: 'css-loader' }], +}); +rules.push({ + test: /\.vue$/, + loader: 'vue-loader' +}) + +export const rendererConfig: Configuration = { + module: { + rules, + }, + plugins: [ + new VueLoaderPlugin(), + ...plugins + ], + resolve: { + extensions: ['.js', '.ts', '.jsx', '.tsx', '.css'], + }, +}; diff --git a/webpack.rules.ts b/webpack.rules.ts new file mode 100644 index 000000000..b3253cbde --- /dev/null +++ b/webpack.rules.ts @@ -0,0 +1,31 @@ +import type { ModuleOptions } from 'webpack'; + +export const rules: Required['rules'] = [ + // Add support for native node modules + { + // We're specifying native_modules in the test because the asset relocator loader generates a + // "fake" .node file which is really a cjs file. + test: /native_modules[/\\].+\.node$/, + use: 'node-loader', + }, + { + test: /[/\\]node_modules[/\\].+\.(m?js|node)$/, + parser: { amd: false }, + use: { + loader: '@vercel/webpack-asset-relocator-loader', + options: { + outputAssetBase: 'native_modules', + }, + }, + }, + { + test: /\.tsx?$/, + exclude: /(node_modules|\.webpack)/, + use: { + loader: 'ts-loader', + options: { + transpileOnly: true, + }, + }, + }, +]; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..0778027b2 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6503 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.16.4": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@electron-forge/cli@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.4.tgz#0a98ebdf2ec09744129209effd3f10606ef5083c" + integrity sha512-iyQyh0g/cSWVQs30wsAqmTmqgV8E/i9Cy/CsHwHxQlsHHcq8N61k1JlB2dpEV1Hy9Lxafql5TE3/6uI7939IEg== + dependencies: + "@electron-forge/core" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + "@electron/get" "^2.0.0" + chalk "^4.0.0" + commander "^4.1.1" + debug "^4.3.1" + fs-extra "^10.0.0" + listr2 "^5.0.3" + semver "^7.2.1" + +"@electron-forge/core-utils@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-6.0.4.tgz#dae0a47d9ffb93ee02de05720617d39b65666731" + integrity sha512-nOCjmm8Qr/bYkVNfEiXSk/LKjtv6iBrKcyhKIanNM3n7MJRuTH0ksvuajFBqg+V+EHplMb7y6acDvI+TTRDUxg== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + "@electron/rebuild" "^3.2.10" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.3.1" + find-up "^5.0.0" + fs-extra "^10.0.0" + log-symbols "^4.0.0" + semver "^7.2.1" + yarn-or-npm "^3.0.1" + +"@electron-forge/core@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-6.0.4.tgz#a6b32b7e4d88d35b2f1e052b2d5cd83c617bb63b" + integrity sha512-l3OiXB/9ebtZZtcQAbofaTmivQUqUVv8TKoxQ8GJbH48Eyk//mphbo7hDC5kb5Tyd0UedMOM9MxJrYjnd6jRnA== + dependencies: + "@electron-forge/core-utils" "^6.0.4" + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/plugin-base" "^6.0.4" + "@electron-forge/publisher-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" + "@electron-forge/template-webpack" "^6.0.4" + "@electron-forge/template-webpack-typescript" "^6.0.4" + "@electron/get" "^2.0.0" + "@electron/rebuild" "^3.2.10" + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.3.1" + electron-packager "^17.1.1" + fast-glob "^3.2.7" + filenamify "^4.1.0" + find-up "^5.0.0" + fs-extra "^10.0.0" + got "^11.8.5" + interpret "^3.1.1" + listr2 "^5.0.3" + lodash "^4.17.20" + log-symbols "^4.0.0" + node-fetch "^2.6.7" + progress "^2.0.3" + rechoir "^0.8.0" + resolve-package "^1.0.1" + semver "^7.2.1" + source-map-support "^0.5.13" + sudo-prompt "^9.1.1" + username "^5.1.0" + yarn-or-npm "^3.0.1" + +"@electron-forge/maker-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.4.tgz#7de68dd11d2a670b552860aea01767870bb44f92" + integrity sha512-qJJ2oPFlyt6u/H67WLfZL0JclSpFj4VwxPfwxqNL/HcwXULJcOeat7oqJLY9UKBE4U2j+++xbA3LSoPAErroIg== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + fs-extra "^10.0.0" + which "^2.0.2" + +"@electron-forge/maker-deb@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-deb/-/maker-deb-6.0.4.tgz#5ac9a844f31898e0bd33b73919622583cc7ded75" + integrity sha512-kBqRiPqAInPqBEZD1iRYiF2yb7Mhcdlrn80kCtTwTF8oAA6d081g6mcrMt12sf5GBGF8IXKzm6JqbqelpYbKww== + dependencies: + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + optionalDependencies: + electron-installer-debian "^3.0.0" + +"@electron-forge/maker-rpm@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-rpm/-/maker-rpm-6.0.4.tgz#3b84efaf2796bc43f346dc4f37274d6771717b1f" + integrity sha512-uNLm6zpK8OgXl2Eq9/uaQyUBKEJhlzJf4zu0DtpPqp5qeu1EObDor0/5OH6MTEmjpGSZ616tdvVN+kwqjNeNHg== + dependencies: + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + optionalDependencies: + electron-installer-redhat "^3.2.0" + +"@electron-forge/maker-squirrel@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.4.tgz#21b09a5165b27cc156e3c15989f7fe157752d8ac" + integrity sha512-1bZ5RgSex5Y45HSuOqjki2oHIq/CquVPP5sLYhObd2p2ABj4ZzyqErNFK1eerDIjoesici3KKCASqBpKf2N90Q== + dependencies: + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + fs-extra "^10.0.0" + optionalDependencies: + electron-winstaller "^5.0.0" + +"@electron-forge/maker-zip@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.4.tgz#db4cc7f44ccf1d30fa1bc95c36d6b9708d3e5888" + integrity sha512-tjBi46qU4vKpYUNUIv5ar6hBDjr9G7+QIUiaOj4UIN3Rwa20EvsYMBoMJBxV/CUUwkQc1NBihUPLco7PAVNb+g== + dependencies: + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + cross-zip "^4.0.0" + fs-extra "^10.0.0" + +"@electron-forge/plugin-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.4.tgz#a3b62e006632dab66d35f845ca61e09745ccbb82" + integrity sha512-iILzbFzmUIGggsTNL9PO1ma6e4OuuhKunNnOkpkoyg6jIaz8Oh1WSHhOALMztlBn2FhreabZnBRy7JsvHVDXlg== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + +"@electron-forge/plugin-webpack@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-webpack/-/plugin-webpack-6.0.4.tgz#9fd7a6179fe06dfe496278e6f4d511c8040ee5aa" + integrity sha512-Zt1plDDKSjCQNO4ywUDCmlbVLaLgJuFlr6Snxihc0wahW4QVtqWUocialan7WHMeh4ernY1xL+Cn+8Rrc1PuAw== + dependencies: + "@electron-forge/core-utils" "^6.0.4" + "@electron-forge/plugin-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/web-multi-logger" "^6.0.4" + chalk "^4.0.0" + debug "^4.3.1" + fs-extra "^10.0.0" + html-webpack-plugin "^5.3.1" + webpack "^5.69.1" + webpack-dev-server "^4.0.0" + webpack-merge "^5.7.3" + +"@electron-forge/publisher-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.0.4.tgz#dd5db7ec04f8c5a6a70afa548950381052673806" + integrity sha512-0C86jnOSTo0z/W58zRx6BijuR4lscB0F6yXaBCFA5xaJ8+fVIsgz29kmVlLrp+YFRgatDCljvk+1+qVRM/Mfpg== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + +"@electron-forge/shared-types@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.4.tgz#f8cdcf453459caa156d513582054b8e81057584f" + integrity sha512-lILLKcGZqfJYVI1x6RssVh37E934rCOaSdBQ9I7LypdfI2NWL+5PLLoUqvXbok1V28m3/O5JrXdigwEIZdhjzQ== + dependencies: + "@electron/rebuild" "^3.2.10" + electron-packager "^17.1.1" + listr2 "^5.0.3" + +"@electron-forge/template-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.4.tgz#9d42af1fe77cf6d1ee8e43109d3eefabd1caf95e" + integrity sha512-23/b0n+ls0+c2+OG1XrHROk6i3PseONLJY3tcR42uFaP/yGZL8nJfgXE2qTKBwUyFQ0tCgUAD3a4vYkMPLKrwg== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + "@malept/cross-spawn-promise" "^2.0.0" + debug "^4.3.1" + fs-extra "^10.0.0" + username "^5.1.0" + +"@electron-forge/template-webpack-typescript@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-6.0.4.tgz#8dea2d6deb6be9b73203fc93c49d88dfe86f2c1f" + integrity sha512-Z9fJ0JfZw9w5OVZgy0qVGapGMQqfaLyQSHzEfm2HQdGGJrHkeXJkMn8Yd1E8h5EPMb3jF5tHRw3VopelzcPQxQ== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" + fs-extra "^10.0.0" + +"@electron-forge/template-webpack@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-6.0.4.tgz#17bfd20d93be8238a6ee62cc1cf5c4484906dbde" + integrity sha512-mrzNzkhsLfD20y/vfTYVBFSkptmgSEwqn4zh4vnzP9tzAJ4eMbvhfVtkK/XQfm8ZspPjs+RZSzRrRNo+e0iEaw== + dependencies: + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" + fs-extra "^10.0.0" + +"@electron-forge/web-multi-logger@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/web-multi-logger/-/web-multi-logger-6.0.4.tgz#fe4568b92cf2dfe1d7edce878f91b4b9a1ec66fa" + integrity sha512-TvJpHfJFnamjv7Ec5Oe+5ir7zK1wvG42jzRoErv946xr9d2pGIYSLX2+LFMV0bLR35GZCAIom6teK4d3wU6MVA== + dependencies: + express "^4.17.1" + express-ws "^5.0.2" + xterm "^4.9.0" + xterm-addon-fit "^0.5.0" + xterm-addon-search "^0.8.0" + +"@electron/asar@^3.2.1": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.2.tgz#f6ae4eb4343ad00b994c40db3f09f71f968ff9c0" + integrity sha512-32fMU68x8a6zvxtC1IC/BhPDKTh8rQjdmwEplj3CDpnkcwBzZVN9v/8cK0LJqQ0FOQQVZW8BWZ1S6UU53TYR4w== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + +"@electron/get@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e" + integrity sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/notarize@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-1.2.3.tgz#38056a629e5a0b5fd56c975c4828c0f74285b644" + integrity sha512-9oRzT56rKh5bspk3KpAVF8lPKHYQrBnRwcgiOeR0hdilVEQmszDaAu0IPCPrwwzJN0ugNs0rRboTreHMt/6mBQ== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + +"@electron/osx-sign@^1.0.1": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.4.tgz#8e91442846471636ca0469426a82b253b9170151" + integrity sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/rebuild@^3.2.10": + version "3.2.10" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.2.10.tgz#adc9443179709d4e4b93a68fac6a08b9a3b9e5e6" + integrity sha512-SUBM6Mwi3yZaDFQjZzfGKpYTtOp9m60glounwX6tfGeVc/ZOl4jbquktUcyy7gYSLDWFLtKkftkY2xgMJZLQgg== + dependencies: + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + lzma-native "^8.0.5" + node-abi "^3.0.0" + node-api-version "^0.1.4" + node-gyp "^9.0.0" + ora "^5.1.0" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + +"@electron/universal@^1.3.2": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.3.4.tgz#bccd94b635d7c85eeed5eabba457eb4ed2be2777" + integrity sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg== + dependencies: + "@electron/asar" "^3.2.1" + "@malept/cross-spawn-promise" "^1.1.0" + debug "^4.3.1" + dir-compare "^3.0.0" + fs-extra "^9.0.1" + minimatch "^3.0.4" + plist "^3.0.4" + +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@fastify/ajv-compiler@^3.3.1": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" + integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== + dependencies: + ajv "^8.11.0" + ajv-formats "^2.1.1" + fast-uri "^2.0.0" + +"@fastify/deepmerge@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" + integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== + +"@fastify/error@^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.2.0.tgz#9010e0acfe07965f5fc7d2b367f58f042d0f4106" + integrity sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ== + +"@fastify/fast-json-stringify-compiler@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz#52d047fac76b0d75bd660f04a5dd606659f57c5a" + integrity sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg== + dependencies: + fast-json-stringify "^5.0.0" + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@malept/cross-spawn-promise@^1.0.0", "@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + +"@malept/cross-spawn-promise@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz#d0772de1aa680a0bfb9ba2f32b4c828c7857cb9d" + integrity sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg== + dependencies: + cross-spawn "^7.0.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.13" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94" + integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA== + dependencies: + "@types/node" "*" + +"@types/discord-rpc@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.3.tgz#3ff5bf9d406841e3744575df0a9e967f52df1ccb" + integrity sha512-4Kh+8u1+OXRHD5OHET3zbBInDkx3cMLaj8Qif8JQbgHZjiru2IYf/WHhuYdzjgtJ/J0CuImOpvt98+Bhe/lr1g== + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" + integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": + version "4.17.32" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" + integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-extra@^9.0.1": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/node@*", "@types/node@>=10.0.0", "@types/node@^18.11.18": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + +"@types/node@^16.11.26": + version "16.18.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.11.tgz#cbb15c12ca7c16c85a72b6bdc4d4b01151bb3cae" + integrity sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/ws@^8.5.1": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== + dependencies: + "@types/node" "*" + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^5.0.0": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz#50cc5085578a7fa22cd46a0806c2e5eae858af02" + integrity sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg== + dependencies: + "@typescript-eslint/scope-manager" "5.47.1" + "@typescript-eslint/type-utils" "5.47.1" + "@typescript-eslint/utils" "5.47.1" + debug "^4.3.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.0.0": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.1.tgz#c4bf16f8c3c7608ce4bf8ff804b677fc899f173f" + integrity sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw== + dependencies: + "@typescript-eslint/scope-manager" "5.47.1" + "@typescript-eslint/types" "5.47.1" + "@typescript-eslint/typescript-estree" "5.47.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz#0d302b3c2f20ab24e4787bf3f5a0d8c449b823bd" + integrity sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw== + dependencies: + "@typescript-eslint/types" "5.47.1" + "@typescript-eslint/visitor-keys" "5.47.1" + +"@typescript-eslint/type-utils@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz#aee13314f840ab336c1adb49a300856fd16d04ce" + integrity sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w== + dependencies: + "@typescript-eslint/typescript-estree" "5.47.1" + "@typescript-eslint/utils" "5.47.1" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.1.tgz#459f07428aec5a8c4113706293c2ae876741ac8e" + integrity sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A== + +"@typescript-eslint/typescript-estree@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz#b9d8441308aca53df7f69b2c67a887b82c9ed418" + integrity sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA== + dependencies: + "@typescript-eslint/types" "5.47.1" + "@typescript-eslint/visitor-keys" "5.47.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.1.tgz#595f25ac06e9ee28c339fd43c709402820b13d7b" + integrity sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.47.1" + "@typescript-eslint/types" "5.47.1" + "@typescript-eslint/typescript-estree" "5.47.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.47.1": + version "5.47.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz#d35c2da544dbb685db9c5b5b85adac0a1d74d1f2" + integrity sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig== + dependencies: + "@typescript-eslint/types" "5.47.1" + eslint-visitor-keys "^3.3.0" + +"@vercel/webpack-asset-relocator-loader@1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@vercel/webpack-asset-relocator-loader/-/webpack-asset-relocator-loader-1.7.3.tgz#e65ca1fd9feb045039788f9b4710e5acc84b01b0" + integrity sha512-vizrI18v8Lcb1PmNNUBz7yxPxxXoOeuaVEjTG9MjvDrphjiSxFZrRJ5tIghk+qdLFRCXI5HBCshgobftbmrC5g== + dependencies: + resolve "^1.10.0" + +"@vue/compiler-core@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b" + integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce" + integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw== + dependencies: + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/compiler-sfc@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70" + integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-ssr" "3.2.45" + "@vue/reactivity-transform" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2" + integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ== + dependencies: + "@vue/compiler-dom" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/reactivity-transform@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d" + integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.45" + "@vue/shared" "3.2.45" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0" + integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== + dependencies: + "@vue/shared" "3.2.45" + +"@vue/runtime-core@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f" + integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== + dependencies: + "@vue/reactivity" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/runtime-dom@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59" + integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== + dependencies: + "@vue/runtime-core" "3.2.45" + "@vue/shared" "3.2.45" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f" + integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== + dependencies: + "@vue/compiler-ssr" "3.2.45" + "@vue/shared" "3.2.45" + +"@vue/shared@3.2.45": + version "3.2.45" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2" + integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abstract-logging@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" + integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.3, ajv@^8.8.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ajv@^8.10.0, ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== + +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +asar@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.2.0.tgz#e6edb5edd6f627ebef04db62f771c61bea9c1221" + integrity sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +atomically@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== + +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g== + +avvio@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" + integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== + dependencies: + archy "^1.0.0" + debug "^4.0.0" + fastq "^1.6.1" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.1.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.0.14" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" + integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== + dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.14.5: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-lite@^1.0.30001400: + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + +clean-css@^5.2.2: + version "5.3.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" + integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colorette@^2.0.10, colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +conf@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" + integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== + dependencies: + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" + debounce-fn "^4.0.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" + json-schema-typed "^7.0.3" + onetime "^5.1.2" + pkg-up "^3.1.0" + semver "^7.3.5" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0, cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn-windows-exe@^1.1.0, cross-spawn-windows-exe@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz#46253b0f497676e766faf4a7061004618b5ac5ec" + integrity sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw== + dependencies: + "@malept/cross-spawn-promise" "^1.1.0" + is-wsl "^2.2.0" + which "^2.0.2" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-zip@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-zip/-/cross-zip-4.0.0.tgz#c29bfb2c001659a6d480ae9596f3bee83b48a230" + integrity sha512-MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA== + +css-loader@^6.0.0: + version "6.7.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" + integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.19" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.3.8" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^2.6.8: + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debounce-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" + integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== + dependencies: + mimic-fn "^3.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-compare@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== + dependencies: + buffer-equal "^1.0.0" + minimatch "^3.0.4" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +discord-rpc@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/discord-rpc/-/discord-rpc-4.0.1.tgz#a89aa04a048aa83ad4f347d53fa0162501eae0d8" + integrity sha512-HOvHpbq5STRZJjQIBzwoKnQ0jHplbEWFWlPDwXXKm/bILh4nzjcg7mNqll0UY7RsjFoaXA7e/oYb/4lvpda2zA== + dependencies: + node-fetch "^2.6.1" + ws "^7.3.1" + optionalDependencies: + register-scheme "github:devsnek/node-register-scheme" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^5.2.2: + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-installer-common@^0.10.2: + version "0.10.3" + resolved "https://registry.yarnpkg.com/electron-installer-common/-/electron-installer-common-0.10.3.tgz#40f9db644ca60eb28673d545b67ee0113aef4444" + integrity sha512-mYbP+6i+nHMIm0WZHXgGdmmXMe+KXncl6jZYQNcCF9C1WsNA9C5SZ2VP4TLQMSIoFO+X4ugkMEA5uld1bmyEvA== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + asar "^3.0.0" + debug "^4.1.1" + fs-extra "^9.0.0" + glob "^7.1.4" + lodash "^4.17.15" + parse-author "^2.0.0" + semver "^7.1.1" + tmp-promise "^3.0.2" + optionalDependencies: + "@types/fs-extra" "^9.0.1" + +electron-installer-debian@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/electron-installer-debian/-/electron-installer-debian-3.1.0.tgz#2f6107f559f6564c44e3832fb2942dd8de4d40cc" + integrity sha512-k6KChvx0Fw8XTlCqwwbBfh19yGQaKjGdbugokmr1IpzINOm4QFyACKMTHAYFHW5LCBUZQShZD96hwxUZ+8Kx+w== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + debug "^4.1.1" + electron-installer-common "^0.10.2" + fs-extra "^9.0.0" + get-folder-size "^2.0.1" + lodash "^4.17.4" + word-wrap "^1.2.3" + yargs "^15.0.1" + +electron-installer-redhat@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/electron-installer-redhat/-/electron-installer-redhat-3.3.0.tgz#acdb59d13d738c55debc5214114d36096eda1aed" + integrity sha512-hXIXB3uQXmXZy/v3MpbwWN4Of28ALpPt9ZyUDNEoSe0w7QZceL9IqI2K6Q6imiBJCLRC0hmT94WhlKj1RyGOWg== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + debug "^4.1.1" + electron-installer-common "^0.10.2" + fs-extra "^9.0.0" + lodash "^4.17.15" + word-wrap "^1.2.3" + yargs "^16.0.2" + +electron-packager@^17.1.1: + version "17.1.1" + resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-17.1.1.tgz#f156fc63d3a66f4e902e4b42992550a172982d59" + integrity sha512-r1NDtlajsq7gf2EXgjRfblCVPquvD2yeg+6XGErOKblvxOpDi0iulZLVhgYDP4AEF1P5/HgbX/vwjlkEv7PEIQ== + dependencies: + "@electron/asar" "^3.2.1" + "@electron/get" "^2.0.0" + "@electron/notarize" "^1.2.3" + "@electron/osx-sign" "^1.0.1" + "@electron/universal" "^1.3.2" + cross-spawn-windows-exe "^1.2.0" + debug "^4.0.1" + extract-zip "^2.0.0" + filenamify "^4.1.0" + fs-extra "^10.1.0" + galactus "^0.2.1" + get-package-info "^1.0.0" + junk "^3.1.0" + parse-author "^2.0.0" + plist "^3.0.0" + rcedit "^3.0.1" + resolve "^1.1.6" + semver "^7.1.3" + yargs-parser "^21.1.1" + +electron-squirrel-startup@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz#19b4e55933fa0ef8f556784b9c660f772546a0b8" + integrity sha512-Oce8mvgGdFmwr+DsAcXBmFK8jFfN6yaFAP9IvyhTfupM3nFkBku/7VS/mdtJteWumImkC6P+BKGsxScoDDkv9Q== + dependencies: + debug "^2.2.0" + +electron-store@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.1.0.tgz#46a398f2bd9aa83c4a9daaae28380e2b3b9c7597" + integrity sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA== + dependencies: + conf "^10.2.0" + type-fest "^2.17.0" + +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + +electron-winstaller@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/electron-winstaller/-/electron-winstaller-5.1.0.tgz#528ed08a65858dd678d9178e8ae24f82a4e12271" + integrity sha512-4wlZzkUm5cJNiOtp5wL804+QpygdKTKkrZJXA3sSDEI2XnCVPv0kxmxUvVw4KHBwbNS+Yox89agEr+VkR7kxww== + dependencies: + "@electron/asar" "^3.2.1" + debug "^4.1.1" + fs-extra "^7.0.1" + lodash.template "^4.2.2" + temp "^0.9.0" + +electron@22.0.0: + version "22.0.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-22.0.0.tgz#ef84ab9cf23aa3f8c2f42a1e8e000ad7fd941058" + integrity sha512-cgRc4wjyM+81A0E8UGv1HNJjL1HBI5cWNh/DUIjzYvoUuiEM0SS0hAH/zaFQ18xOz2ced6Yih8SybpOiOYJhdg== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^16.11.26" + extract-zip "^2.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + +engine.io@~6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" + integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + unbox-primitive "^1.0.2" + +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.25.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.0.1: + version "8.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" + integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== + dependencies: + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== + dependencies: + homedir-polyfill "^1.0.1" + +express-ws@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/express-ws/-/express-ws-5.0.2.tgz#5b02d41b937d05199c6c266d7cc931c823bda8eb" + integrity sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ== + dependencies: + ws "^7.4.6" + +express@^4.17.1, express@^4.17.3: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extract-zip@^2.0.0, extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.7, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-json-stringify@^5.0.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz#6655cb944df8da43f6b15312a9564b81c55dadab" + integrity sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA== + dependencies: + "@fastify/deepmerge" "^1.0.0" + ajv "^8.10.0" + ajv-formats "^2.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^2.1.0" + rfdc "^1.2.0" + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-querystring@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.0.tgz#bb645c365db88a3b6433fb6484f7e9e66764cfb9" + integrity sha512-LWkjBCZlxjnSanuPpZ6mHswjy8hQv3VcPJsQB3ltUF2zjvrycr0leP3TSTEEfvQ1WEMSRl5YNsGqaft9bjLqEw== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-redact@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + +fast-uri@^2.0.0, fast-uri@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" + integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== + +fastify-plugin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2" + integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA== + +fastify-socket.io@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fastify-socket.io/-/fastify-socket.io-4.0.0.tgz#791c6bb9952041cb98c4cade897bfcce36857769" + integrity sha512-j5mgvHZpQ0Iiz9HyKwGdLOQGjFKH/6KOwx8esxCIBkIjtiQkdC8e4J1xX4JAMISLfTJOY9EHQG/1MmU/9cXaog== + dependencies: + fastify-plugin "^3.0.0" + +fastify@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.11.0.tgz#7fa5614c81a618e67a7a467f0f1b33c43f4ff7d2" + integrity sha512-JteZ8pjEqd+6n+azQnQfSJV8MUMxAmxbvC2Dx/Mybj039Lf/u3kda9Kq84uy/huCpqCzZoyHIZS5JFGF3wLztw== + dependencies: + "@fastify/ajv-compiler" "^3.3.1" + "@fastify/error" "^3.0.0" + "@fastify/fast-json-stringify-compiler" "^4.1.0" + abstract-logging "^2.0.1" + avvio "^8.2.0" + content-type "^1.0.4" + find-my-way "^7.3.0" + light-my-request "^5.6.1" + pino "^8.5.0" + process-warning "^2.0.0" + proxy-addr "^2.0.7" + rfdc "^1.3.0" + secure-json-parse "^2.5.0" + semver "^7.3.7" + tiny-lru "^10.0.0" + +fastq@^1.6.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + dependencies: + reusify "^1.0.4" + +fastq@^1.6.1: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-my-way@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.4.0.tgz#22363e6cd1c466f88883703e169a20c983f9c9cc" + integrity sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ== + dependencies: + fast-deep-equal "^3.1.3" + fast-querystring "^1.0.0" + safe-regex2 "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +flora-colossus@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flora-colossus/-/flora-colossus-1.0.1.tgz#aba198425a8185341e64f9d2a6a96fd9a3cbdb93" + integrity sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA== + dependencies: + debug "^4.1.1" + fs-extra "^7.0.0" + +follow-redirects@^1.0.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +fork-ts-checker-webpack-plugin@^7.2.13: + version "7.2.14" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.14.tgz#746eb15b4d643aafccd3c729995f9c9281eabd22" + integrity sha512-Tg2feh/n8k486KX0EbXVUfJj3j0xnnbKYTJw0fnIb2QdV0+lblOYZSal5ed9hARoWVwKeOC7sYE2EakSRLo5ZA== + dependencies: + "@babel/code-frame" "^7.16.7" + chalk "^4.1.2" + chokidar "^3.5.3" + cosmiconfig "^7.0.1" + deepmerge "^4.2.2" + fs-extra "^10.0.0" + memfs "^3.4.1" + minimatch "^3.0.4" + node-abort-controller "^3.0.1" + schema-utils "^3.1.1" + semver "^7.3.5" + tapable "^2.2.1" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0, fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-monkey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +galactus@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/galactus/-/galactus-0.2.1.tgz#cbed2d20a40c1f5679a35908e2b9415733e78db9" + integrity sha512-mDc8EQJKtxjp9PMYS3PbpjjbX3oXhBTxoGaPahw620XZBIHJ4+nvw5KN/tRtmmSDR9dypstGNvqQ3C29QGoGHQ== + dependencies: + debug "^3.1.0" + flora-colossus "^1.0.0" + fs-extra "^4.0.0" + +gar@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" + integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-folder-size@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-2.0.1.tgz#3fe0524dd3bad05257ef1311331417bcd020a497" + integrity sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA== + dependencies: + gar "^1.0.4" + tiny-each-async "2.0.3" + +get-installed-path@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/get-installed-path/-/get-installed-path-2.1.1.tgz#a1f33dc6b8af542c9331084e8edbe37fe2634152" + integrity sha512-Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA== + dependencies: + global-modules "1.0.0" + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c" + integrity sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw== + dependencies: + bluebird "^3.1.1" + debug "^2.2.0" + lodash.get "^4.0.0" + read-pkg-up "^2.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-modules@1.0.0, global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^11.7.0, got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.3.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" + integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +js-sdsl@^4.1.4: + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" + integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema-typed@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" + integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" + integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== + +keyv@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +light-my-request@^5.6.1: + version "5.8.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.8.0.tgz#93b28615d4cd134b4e2370bcf2ff7e35b51c8d29" + integrity sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg== + dependencies: + cookie "^0.5.0" + process-warning "^2.0.0" + set-cookie-parser "^2.4.1" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listr2@^5.0.3: + version "5.0.6" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" + integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.19" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.7" + through "^2.3.8" + wrap-ansi "^7.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== + +lodash.get@^4.0.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.template@^4.2.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^7.7.1: + version "7.14.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" + integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== + +lzma-native@^8.0.5: + version "8.0.6" + resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-8.0.6.tgz#3ea456209d643bafd9b5d911781bdf0b396b2665" + integrity sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA== + dependencies: + node-addon-api "^3.1.0" + node-gyp-build "^4.2.1" + readable-stream "^3.6.0" + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +material-symbols@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/material-symbols/-/material-symbols-0.4.2.tgz#d0c0613c2be2dada0407f6fb323369a7c3c637f8" + integrity sha512-Qqz9o0pui/7MHk4SihG/1yOE7Wwa4iMh7YiXFMZjVIbxRTkP629m8obg5QKGfgfMIU9Xu3RIJB9mzGI3MEPwrg== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mem@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memfs@^3.4.1, memfs@^3.4.3: + version "3.4.12" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.12.tgz#d00f8ad8dab132dc277c659dc85bfd14b07d03bd" + integrity sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw== + dependencies: + fs-monkey "^1.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" + integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3, negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.0.0: + version "3.30.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.30.0.tgz#d84687ad5d24ca81cdfa912a36f2c5c19b137359" + integrity sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw== + dependencies: + semver "^7.3.5" + +node-abort-controller@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" + integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== + +node-addon-api@^1.3.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-addon-api@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-api-version@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.1.4.tgz#1ed46a485e462d55d66b5aa1fe2821720dedf080" + integrity sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g== + dependencies: + semver "^7.3.5" + +node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + +node-gyp@^9.0.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +node-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-2.0.0.tgz#9109a6d828703fd3e0aa03c1baec12a798071562" + integrity sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q== + dependencies: + loader-utils "^2.0.0" + +node-releases@^2.0.6: + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-exit-leak-free@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" + integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.1.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw== + dependencies: + author-regex "^1.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ== + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pino-abstract-transport@v1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" + integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-std-serializers@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" + integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== + +pino@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.8.0.tgz#1f0d6695a224aa06afc7ad60f2ccc4772d3b9233" + integrity sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport v1.0.0 + pino-std-serializers "^6.0.0" + process-warning "^2.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.1.0" + thread-stream "^2.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +plist@^3.0.0, plist@^3.0.4, plist@^3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.1.10, postcss@^8.4.19: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.1.0.tgz#1e60e3bfe8183033bbc1e702c2da74f099422d1a" + integrity sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +proxy-addr@^2.0.7, proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rcedit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.0.1.tgz#ae21b43e49c075f4d84df1929832a12c302f3c90" + integrity sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw== + dependencies: + cross-spawn-windows-exe "^1.1.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w== + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA== + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" + integrity sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +"register-scheme@github:devsnek/node-register-scheme": + version "0.0.2" + resolved "https://codeload.github.com/devsnek/node-register-scheme/tar.gz/e7cc9a63a1f512565da44cb57316d9fb10750e17" + dependencies: + bindings "^1.3.0" + node-addon-api "^1.3.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-dir@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-package@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-package/-/resolve-package-1.0.1.tgz#686f70b188bd7d675f5bbc4282ccda060abb9d27" + integrity sha512-rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g== + dependencies: + get-installed-path "^2.0.3" + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" + integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.2.0, rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.7: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" + integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== + dependencies: + ret "~0.2.0" + +safe-stable-stringify@^2.3.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + +secure-json-parse@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.6.0.tgz#95d89f84adf32d76ff7800e68a673b129fe918b0" + integrity sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A== + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +"semver@2 || 3 || 4 || 5", semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-cookie-parser@^2.4.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz#ddd3e9a566b0e8e0862aca974a6ac0e01349430b" + integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socket.io-adapter@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" + integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== + +socket.io-parser@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" + integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +socket.io@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90" + integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ== + dependencies: + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.2" + engine.io "~6.2.1" + socket.io-adapter "~2.4.0" + socket.io-parser "~4.2.1" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sonic-boom@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" + integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== + dependencies: + atomic-sleep "^1.0.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@^0.5.13, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== + +sudo-prompt@^9.1.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" + integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp@^0.9.0: + version "0.9.4" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" + integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== + dependencies: + mkdirp "^0.5.1" + rimraf "~2.6.2" + +terser-webpack-plugin@^5.1.3: + version "5.3.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" + integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.14" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + terser "^5.14.1" + +terser@^5.10.0, terser@^5.14.1: + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thread-stream@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.2.0.tgz#310c03a253f729094ce5d4638ef5186dfa80a9e8" + integrity sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ== + dependencies: + real-require "^0.2.0" + +through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-each-async@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tiny-each-async/-/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" + integrity sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA== + +tiny-lru@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.0.1.tgz#aaf5d22207e641ed1b176ac2e616d6cc2fc9ef66" + integrity sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA== + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +ts-loader@^9.2.2: + version "9.4.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" + integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-node@^10.0.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.1.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^2.17.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@~4.5.4: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +username@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/username/-/username-5.1.0.tgz#a7f9325adce2d0166448cdd55d4985b1360f2508" + integrity sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg== + dependencies: + execa "^1.0.0" + mem "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vue-loader@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-17.0.1.tgz#c0ee8875e0610a0c2d13ba9b4d50a9c8442e7a3a" + integrity sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-template-compiler@^2.7.14: + version "2.7.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +vue@^3.2.45: + version "3.2.45" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8" + integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== + dependencies: + "@vue/compiler-dom" "3.2.45" + "@vue/compiler-sfc" "3.2.45" + "@vue/runtime-dom" "3.2.45" + "@vue/server-renderer" "3.2.45" + "@vue/shared" "3.2.45" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.0.0: + version "4.11.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz#ae07f0d71ca0438cf88446f09029b92ce81380b5" + integrity sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.69.1: + version "5.75.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152" + integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which@^1.2.14, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^7.3.1, ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.4.2: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xterm-addon-fit@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.5.0.tgz#2d51b983b786a97dcd6cde805e700c7f913bc596" + integrity sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ== + +xterm-addon-search@^0.8.0: + version "0.8.2" + resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.8.2.tgz#be7aa74d5ff12c901707c6ff674229f214318032" + integrity sha512-I1863mjn8P6uVrqm/X+btalVsqjAKLhnhpbP7SavAOpEkI1jJhbHU2UTp7NjeRtcKTks6UWk/ycgds5snDSejg== + +xterm@^4.9.0: + version "4.19.0" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0.tgz#c0f9d09cd61de1d658f43ca75f992197add9ef6d" + integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^15.0.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.0.2: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.0.1: + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yarn-or-npm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/yarn-or-npm/-/yarn-or-npm-3.0.1.tgz#6336eea4dff7e23e226acc98c1a8ada17a1b8666" + integrity sha512-fTiQP6WbDAh5QZAVdbMQkecZoahnbOjClTQhzv74WX5h2Uaidj1isf9FDes11TKtsZ0/ZVfZsqZ+O3x6aLERHQ== + dependencies: + cross-spawn "^6.0.5" + pkg-dir "^4.2.0" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From c8dfaadf6a952248bbb2c2451ec1fe4c2afbe177 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 24 Jul 2023 20:05:32 -0500 Subject: [PATCH 168/489] Fix pause on application launch --- src/ytmview/preload.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index ae8c464ce..81a24c4cf 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -667,12 +667,13 @@ window.addEventListener('load', async () => { if (continueWhereYouLeftOffPaused) { webFrame.executeJavaScript(` // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon - let listener = window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { + let callback = (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { window.ytmdPlayerBar.playerApi_.pauseVideo(); - window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', listener); + window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', callback); } - }); + } + window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', callback); `); } } else { From a4d17eed9f2e656dff343afa918c622ef7791dcd Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Tue, 25 Jul 2023 12:10:25 +0100 Subject: [PATCH 169/489] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 256bf2a4f..5f7f34a9a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # YouTube Music Desktop App +## The team is working on a V2 version of YTM Desktop which is a complete re-write of the project. Please see [this issue](https://github.com/ytmdesktop/ytmdesktop/issues/1139) for more details window + [![Discord][discord-img]](discord-url) [![Gitmoji][gitmoji-img]][gitmoji-url] [![GitHub license][license-img]](license-url) From 1c27475bf9c0f7c155f3d482e961e31d22ba3b52 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Tue, 25 Jul 2023 12:44:22 -0500 Subject: [PATCH 170/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20always=20show=20vo?= =?UTF-8?q?lume=20slider=20+=20move=20setting=20to=20apperance=20category?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 4 +++- src/shared/components/Settings.vue | 8 +++++--- src/shared/store/schema.ts | 2 ++ src/ytmview/preload.ts | 12 ++++++------ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/index.ts b/src/index.ts index b11519148..c4d949c88 100644 --- a/src/index.ts +++ b/src/index.ts @@ -43,7 +43,9 @@ const store = new ElectronStore({ hideToTrayOnClose: false, showNotificationOnSongChange: false, startOnBoot: false, - startMinimized: false, + startMinimized: false + }, + appearance: { alwaysShowVolumeSlider: false }, playback: { diff --git a/src/shared/components/Settings.vue b/src/shared/components/Settings.vue index f22c2728a..2becbcfe2 100644 --- a/src/shared/components/Settings.vue +++ b/src/shared/components/Settings.vue @@ -9,6 +9,7 @@ const store = window.ytmd.store; const safeStorage = window.ytmd.safeStorage; const general: StoreSchema['general'] = await store.get('general'); +const appearance: StoreSchema['appearance'] = await store.get('appearance'); const playback: StoreSchema['playback'] = await store.get('playback'); const integrations: StoreSchema['integrations'] = await store.get('integrations'); const shortcuts: StoreSchema['shortcuts'] = await store.get('shortcuts'); @@ -17,7 +18,7 @@ const hideToTrayOnClose = ref(general.hideToTrayOnClose); const showNotificationOnSongChange = ref(general.showNotificationOnSongChange); const startOnBoot = ref(general.startOnBoot); const startMinimized = ref(general.startMinimized); -const alwaysShowVolumeSlider = ref(general.alwaysShowVolumeSlider); +const alwaysShowVolumeSlider = ref(appearance.alwaysShowVolumeSlider); const continueWhereYouLeftOff = ref(playback.continueWhereYouLeftOff); const continueWhereYouLeftOffPaused = ref(playback.continueWhereYouLeftOffPaused); @@ -40,7 +41,7 @@ store.onDidAnyChange(async (newState, oldState) => { showNotificationOnSongChange.value = newState.general.showNotificationOnSongChange; startOnBoot.value = newState.general.startOnBoot; startMinimized.value = newState.general.startMinimized; - alwaysShowVolumeSlider.value = newState.general.alwaysShowVolumeSlider; + alwaysShowVolumeSlider.value = newState.appearance.alwaysShowVolumeSlider; continueWhereYouLeftOff.value = newState.playback.continueWhereYouLeftOff; continueWhereYouLeftOffPaused.value = newState.playback.continueWhereYouLeftOffPaused; @@ -64,7 +65,8 @@ async function settingsChanged() { store.set('general.showNotificationOnSongChange', showNotificationOnSongChange.value); store.set('general.startOnBoot', startOnBoot.value); store.set('general.startMinimized', startMinimized.value); - store.set("general.alwaysShowVolumeSlider", alwaysShowVolumeSlider.value); + + store.set("appearance.alwaysShowVolumeSlider", alwaysShowVolumeSlider.value); store.set('playback.continueWhereYouLeftOff', continueWhereYouLeftOff.value); store.set('playback.continueWhereYouLeftOffPaused', continueWhereYouLeftOffPaused.value); diff --git a/src/shared/store/schema.ts b/src/shared/store/schema.ts index d70ba2406..6978f982d 100644 --- a/src/shared/store/schema.ts +++ b/src/shared/store/schema.ts @@ -4,6 +4,8 @@ export type StoreSchema = { showNotificationOnSongChange: boolean, startOnBoot: boolean, startMinimized: boolean, + }, + appearance: { alwaysShowVolumeSlider: boolean }, playback: { diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index 81a24c4cf..794231c78 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -683,7 +683,7 @@ window.addEventListener('load', async () => { } } - const alwaysShowVolumeSlider = (await store.get('general')).alwaysShowVolumeSlider; + const alwaysShowVolumeSlider = (await store.get('appearance')).alwaysShowVolumeSlider; if (alwaysShowVolumeSlider) { document.querySelector("#volume-slider").classList.add("ytmd-persist-volume-slider"); } @@ -818,15 +818,15 @@ window.addEventListener('load', async () => { }); store.onDidAnyChange((newState) => { - if (newState.general.alwaysShowVolumeSlider) { + if (newState.appearance.alwaysShowVolumeSlider) { const volumeSlider = document.querySelector("#volume-slider") - if (!volumeSlider.classList.contains("persist-volume-slider")) { - volumeSlider.classList.add("persist-volume-slider") + if (!volumeSlider.classList.contains("ytmd-persist-volume-slider")) { + volumeSlider.classList.add("ytmd-persist-volume-slider") } } else { const volumeSlider = document.querySelector("#volume-slider") - if (volumeSlider.classList.contains("persist-volume-slider")) { - volumeSlider.classList.remove("persist-volume-slider") + if (volumeSlider.classList.contains("ytmd-persist-volume-slider")) { + volumeSlider.classList.remove("ytmd-persist-volume-slider") } } }); From 4e1af014ce0c44cdfd5a3eb1757ec44f73f3e4b7 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Wed, 26 Jul 2023 10:56:26 +0100 Subject: [PATCH 171/489] Create README.md --- README.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..6d0177e5c --- /dev/null +++ b/README.md @@ -0,0 +1,111 @@ +# YouTube Music Desktop App +### Now with a Fresh new Codebase 😉 + +window + +[![Discord][discord-img]](discord-url) +[![Gitmoji][gitmoji-img]][gitmoji-url] +[![GitHub license][license-img]](license-url) +[![GitHub release][release-img]][release-url] +[![Download][download-img]][download-url] + +#### 📖 Guide: +1. [How to use](https://github.com/ytmdesktop/ytmdesktop/wiki/How-use) +2. [FAQ](https://github.com/ytmdesktop/ytmdesktop/wiki/FAQ) + +# ⬇️ Download at + + Packaging status + + +### Current V2 Builds are not actually here yet. +#### Windows + +- Binaries: + +#### Linux + +- Binaries: + +#### Mac + +- Binaries: + +# Developing +To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js (v18)](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: + +```sh +# Clone this repository +git clone https://github.com/ytmdesktop/ytmdesktop.git +# Go into the directory +cd ytmdesktop +``` +##### And: +```sh +# If you do not have Yarn Installed / New to Node as a whole please install Yarn with: +npm install yarn --global + +# Install dependencies +yarn install +# Run the app +yarn start +``` + +# Building the Project +To build for your platform you need to run `yarn make`, however please see the information below regarding the required additionally Software, Tools and Packages which are needed to successfully package into a nice installer file. + +## Windows +To download the full suite of Tools/Software needed to build the app it is recommended to install the suite of build tools that electron provide which includes Visual Studio, Python and other tools. + +`npm i -g @electron/build-tools` + +This will start downloading and installing, and may require a few prompts here and there to finalise everything. + +## MacOS +*to do* + +## Linux +Building the project on Linux only requires you to install: +- For building for Debian based Linux Distros like Ubuntu, you will need to install `fakeroot` and `dpkg` +- For building for RedHat based Linux Distros like Fedora, you will need to install `rpm` or `rpm-build` + +*please note that by default both packages are built if you try to building this application on a linux distro* + + + + + +## Contributors +A Thank you to all the contributors throughout the project, without their work this project would have just been a small project and never expanded to where it is now. + + + + +[discord-img]: https://img.shields.io/badge/Discord-JOIN-GREEN.svg?style=for-the-badge&logo=discord +[discord-url]: https://discord.gg/88P2n2a +[gitmoji-img]: https://img.shields.io/badge/Gitmoji-STANDARD-FFDD67.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJncmluLXRvbmd1ZS13aW5rIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtZ3Jpbi10b25ndWUtd2luayBmYS13LTE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTYgNTEyIj48cGF0aCBmaWxsPSIjRkZERDY3IiBkPSJNMzQ0IDE4NGEyNCAyNCAwIDEwMCA0OCAyNCAyNCAwIDEwMC00OHpNMjQ4IDhhMjQ4IDI0OCAwIDAwLTg3IDQ4MGMtNi0xMi05LTI2LTktNDB2LTQ1Yy0yNS0xNy00My0zOS00OC02NC0yLTEyIDEwLTIyIDIxLTE4IDMwIDEwIDc1IDE1IDEyMyAxNXM5My01IDEyMy0xNWMxMi00IDIzIDYgMjEgMTgtNCAyNS0yMyA0Ny00OCA2M3Y0NmMwIDE0LTMgMjgtOSA0MEEyNDggMjQ4IDAgMDAyNDggOHptLTU2IDIyNWwtOS04Yy0xNS0xNC00Ny0xNC02MSAwbC0xMCA4Yy04IDctMjIgMC0yMC0xMSA0LTI1IDM0LTQyIDYwLTQyczU2IDE3IDYwIDQyYzIgMTEtMTIgMTgtMjAgMTF6bTE1MiAzOWE2NCA2NCAwIDExMC0xMjggNjQgNjQgMCAwMTAgMTI4em0tNTEgMTAzYy0xNC03LTMxIDItMzQgMTdsLTIgOGMtMiA5LTE2IDktMTggMGwtMS04Yy00LTE1LTIxLTI0LTM1LTE3bC0xOSA5djYzYzAgMzUgMjggNjUgNjMgNjUgMzYgMCA2NS0yOSA2NS02NHYtNjRsLTE5LTl6Ii8+PC9zdmc+ +[gitmoji-url]: https://gitmoji.carloscuesta.me +[license-img]: https://img.shields.io/github/license/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=librarything +[license-url]: https://github.com/ytmdesktop/ytmdesktop/blob/master/LICENSE +[release-img]: https://img.shields.io/github/release/ytmdesktop/ytmdesktop.svg?style=for-the-badge&logo=flattr +[release-url]: https://GitHub.com/ytmdesktop/ytmdesktop/releases/ +[download-img]: https://img.shields.io/github/downloads/ytmdesktop/ytmdesktop/total.svg?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJjbG91ZC1kb3dubG9hZC1hbHQiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1jbG91ZC1kb3dubG9hZC1hbHQgZmEtdy0yMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDUxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTUzOCAyMjdjNC0xMSA2LTIzIDYtMzVhOTYgOTYgMCAwMC0xNDktODAgMTYwIDE2MCAwIDAwLTI5OSA4OCAxNDQgMTQ0IDAgMDA0OCAyODBoMzY4YTEyOCAxMjggMCAwMDI2LTI1M3ptLTEzMyA4OEwyOTkgNDIxYy02IDYtMTYgNi0yMiAwTDE3MSAzMTVjLTEwLTEwLTMtMjcgMTItMjdoNjVWMTc2YzAtOSA3LTE2IDE2LTE2aDQ4YzkgMCAxNiA3IDE2IDE2djExMmg2NWMxNSAwIDIyIDE3IDEyIDI3eiIvPjwvc3ZnPg== +[download-url]: https://github.com/ytmdesktop/ytmdesktop/releases/ +[more]: https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/ From 6d76809d380c9b0e6ce0608d3066c993d5721e82 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 26 Jul 2023 11:44:34 -0500 Subject: [PATCH 172/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20continue=20where?= =?UTF-8?q?=20you=20left=20off=20paused?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ytmview/preload.ts | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index 794231c78..bf8884a6b 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -653,6 +653,19 @@ window.addEventListener('load', async () => { if (continueWhereYouLeftOff) { // The last page the user was on is already a page where it will be playing a song from (no point telling YTM to play it again) if (!state.lastUrl.startsWith("https://music.youtube.com/watch") && state.lastVideoId) { + if (continueWhereYouLeftOffPaused) { + webFrame.executeJavaScript(` + // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon + let callback = (event) => { + if (event.type === 'dataloaded' && event.playertype === 1) { + window.ytmdPlayerBar.playerApi_.pauseVideo(); + window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', callback); + } + } + window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', callback); + `); + } + document.dispatchEvent(new CustomEvent('yt-navigate', { detail: { endpoint: { @@ -663,20 +676,14 @@ window.addEventListener('load', async () => { } } })); - + } else { if (continueWhereYouLeftOffPaused) { webFrame.executeJavaScript(` - // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon - let callback = (event) => { - if (event.type === 'dataloaded' && event.playertype === 1) { - window.ytmdPlayerBar.playerApi_.pauseVideo(); - window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', callback); - } - } - window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', callback); + // This is different from the above because loading a watch page means all the video data is already available and would be playing + window.ytmdPlayerBar.playerApi_.pauseVideo(); `); } - } else { + webFrame.executeJavaScript(` window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()); `); From b5b93d9defdabca57afa4b366b92efc2742c3502 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 26 Jul 2023 13:35:25 -0500 Subject: [PATCH 173/489] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20?= =?UTF-8?q?=F0=9F=8E=A8=20Add=20developer=20improvements=20+=20lint=20and?= =?UTF-8?q?=20pretty=20all=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 12 + .eslintrc | 29 + .eslintrc.json | 16 - .prettierrc | 14 + .vscode/extensions.json | 3 + .vscode/settings.json | 4 + forge.config.ts | 70 +-- package.json | 22 +- src/@types/global.d.ts | 50 +- src/@types/shims-vue.d.ts | 2 +- src/index.ts | 426 ++++++------- .../companion-server/api/v1/index.ts | 446 ++++++------- src/integrations/companion-server/index.ts | 105 ++-- .../companion-server/shared/auth.ts | 191 +++--- src/integrations/discord-presence/index.ts | 240 +++---- src/integrations/integration.ts | 14 +- src/player-state-store/index.ts | 108 ++-- src/shared/components/KeybindInput.vue | 170 ++--- src/shared/components/Settings.vue | 425 +++++++------ src/shared/components/TitleBar.vue | 211 +++---- src/shared/store/renderer.ts | 28 +- src/shared/store/schema.ts | 76 +-- src/windows/authorize-companion/Auth.vue | 98 +-- src/windows/authorize-companion/Index.vue | 26 +- src/windows/authorize-companion/preload.ts | 20 +- src/windows/authorize-companion/renderer.ts | 8 +- src/windows/main/Index.vue | 34 +- src/windows/main/preload.ts | 20 +- src/windows/main/renderer.ts | 8 +- src/windows/settings/Index.vue | 140 ++--- src/windows/settings/preload.ts | 32 +- src/windows/settings/renderer.ts | 8 +- src/ytmview/preload.ts | 584 +++++++++--------- webpack.main.config.ts | 12 +- webpack.plugins.ts | 8 +- webpack.renderer.config.ts | 25 +- webpack.rules.ts | 24 +- yarn.lock | 277 ++++++++- 38 files changed, 2169 insertions(+), 1817 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintrc delete mode 100644 .eslintrc.json create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..41fe4eac2 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +insert_final_newline = true +max_line_length = 160 diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..0da94a15c --- /dev/null +++ b/.eslintrc @@ -0,0 +1,29 @@ +{ + "env": { + "browser": true, + "es6": true, + "node": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:import/recommended", + "plugin:import/electron", + "plugin:import/typescript", + "plugin:vue/vue3-recommended", + "prettier" + ], + "parser": "vue-eslint-parser", + "parserOptions": { + "parser": { + "js": "espree", + "ts": "@typescript-eslint/parser", + " diff --git a/src/windows/main/preload.ts b/src/windows/main/preload.ts index 668e4ffd5..774837d6c 100644 --- a/src/windows/main/preload.ts +++ b/src/windows/main/preload.ts @@ -3,13 +3,13 @@ import { contextBridge, ipcRenderer } from "electron"; -contextBridge.exposeInMainWorld('ytmd', { - minimizeWindow: () => ipcRenderer.send("mainWindow:minimize"), - maximizeWindow: () => ipcRenderer.send("mainWindow:maximize"), - restoreWindow: () => ipcRenderer.send("mainWindow:restore"), - closeWindow: () => ipcRenderer.send("mainWindow:close"), - handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("mainWindow:stateChanged", callback), - requestWindowState: () => ipcRenderer.send('mainWindow:requestWindowState'), - openSettingsWindow: () => ipcRenderer.send("settingsWindow:open"), - switchFocus: (context: string) => ipcRenderer.send('ytmView:switchFocus', context) -}); \ No newline at end of file +contextBridge.exposeInMainWorld("ytmd", { + minimizeWindow: () => ipcRenderer.send("mainWindow:minimize"), + maximizeWindow: () => ipcRenderer.send("mainWindow:maximize"), + restoreWindow: () => ipcRenderer.send("mainWindow:restore"), + closeWindow: () => ipcRenderer.send("mainWindow:close"), + handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("mainWindow:stateChanged", callback), + requestWindowState: () => ipcRenderer.send("mainWindow:requestWindowState"), + openSettingsWindow: () => ipcRenderer.send("settingsWindow:open"), + switchFocus: (context: string) => ipcRenderer.send("ytmView:switchFocus", context) +}); diff --git a/src/windows/main/renderer.ts b/src/windows/main/renderer.ts index b739b43b4..ba25aa711 100644 --- a/src/windows/main/renderer.ts +++ b/src/windows/main/renderer.ts @@ -26,10 +26,10 @@ * ``` */ -import 'material-symbols/outlined.css'; +import "material-symbols/outlined.css"; -import { createApp } from 'vue'; -import App from './Index.vue'; +import { createApp } from "vue"; +import App from "./Index.vue"; -const app = createApp(App) +const app = createApp(App); app.mount("#app"); diff --git a/src/windows/settings/Index.vue b/src/windows/settings/Index.vue index 143bb08e6..a24b23ffe 100644 --- a/src/windows/settings/Index.vue +++ b/src/windows/settings/Index.vue @@ -1,121 +1,121 @@ \ No newline at end of file + diff --git a/src/windows/settings/preload.ts b/src/windows/settings/preload.ts index 5fcae6972..c0466bde8 100644 --- a/src/windows/settings/preload.ts +++ b/src/windows/settings/preload.ts @@ -7,19 +7,19 @@ import { StoreSchema } from "../../shared/store/schema"; const store = new Store(); -contextBridge.exposeInMainWorld('ytmd', { - store: { - set: (key: string, value: any) => store.set(key, value), - get: async (key: keyof StoreSchema) => await store.get(key), - onDidAnyChange: (callback: (newState: StoreSchema, oldState: StoreSchema) => void) => store.onDidAnyChange(callback) - }, - safeStorage: { - decryptString: async (value: string) => await ipcRenderer.invoke('safeStorage:decryptString', value), - encryptString: async (value: string) => await ipcRenderer.invoke('safeStorage:encryptString', value), - }, - minimizeWindow: () => ipcRenderer.send("settingsWindow:minimize"), - maximizeWindow: () => ipcRenderer.send("settingsWindow:maximize"), - restoreWindow: () => ipcRenderer.send("settingsWindow:restore"), - closeWindow: () => ipcRenderer.send("settingsWindow:close"), - handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("settingsWindow:stateChanged", callback) -}); \ No newline at end of file +contextBridge.exposeInMainWorld("ytmd", { + store: { + set: (key: string, value: any) => store.set(key, value), + get: async (key: keyof StoreSchema) => await store.get(key), + onDidAnyChange: (callback: (newState: StoreSchema, oldState: StoreSchema) => void) => store.onDidAnyChange(callback) + }, + safeStorage: { + decryptString: async (value: string) => await ipcRenderer.invoke("safeStorage:decryptString", value), + encryptString: async (value: string) => await ipcRenderer.invoke("safeStorage:encryptString", value) + }, + minimizeWindow: () => ipcRenderer.send("settingsWindow:minimize"), + maximizeWindow: () => ipcRenderer.send("settingsWindow:maximize"), + restoreWindow: () => ipcRenderer.send("settingsWindow:restore"), + closeWindow: () => ipcRenderer.send("settingsWindow:close"), + handleWindowEvents: (callback: (event: Electron.IpcRendererEvent, ...args: any[]) => void) => ipcRenderer.on("settingsWindow:stateChanged", callback) +}); diff --git a/src/windows/settings/renderer.ts b/src/windows/settings/renderer.ts index b739b43b4..ba25aa711 100644 --- a/src/windows/settings/renderer.ts +++ b/src/windows/settings/renderer.ts @@ -26,10 +26,10 @@ * ``` */ -import 'material-symbols/outlined.css'; +import "material-symbols/outlined.css"; -import { createApp } from 'vue'; -import App from './Index.vue'; +import { createApp } from "vue"; +import App from "./Index.vue"; -const app = createApp(App) +const app = createApp(App); app.mount("#app"); diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index bf8884a6b..5efb36e88 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -4,145 +4,145 @@ import { StoreSchema } from "../shared/store/schema"; const store = new Store(); -contextBridge.exposeInMainWorld('ytmd', { - sendVideoProgress: (volume: number) => ipcRenderer.send('ytmView:videoProgressChanged', volume), - sendVideoState: (state: number) => ipcRenderer.send('ytmView:videoStateChanged', state), - sendVideoData: (videoDetails: any, playlistId: string) => ipcRenderer.send('ytmView:videoDataChanged', videoDetails, playlistId), - sendAdState: (adRunning: boolean) => ipcRenderer.send('ytmView:adStateChanged', adRunning), - sendStoreUpdate: (queueState: any) => ipcRenderer.send('ytmView:storeStateChanged', queueState) -}) +contextBridge.exposeInMainWorld("ytmd", { + sendVideoProgress: (volume: number) => ipcRenderer.send("ytmView:videoProgressChanged", volume), + sendVideoState: (state: number) => ipcRenderer.send("ytmView:videoStateChanged", state), + sendVideoData: (videoDetails: any, playlistId: string) => ipcRenderer.send("ytmView:videoDataChanged", videoDetails, playlistId), + sendAdState: (adRunning: boolean) => ipcRenderer.send("ytmView:adStateChanged", adRunning), + sendStoreUpdate: (queueState: any) => ipcRenderer.send("ytmView:storeStateChanged", queueState) +}); function createStyleSheet() { - const css = document.createElement('style') - css.appendChild(document.createTextNode( - ` - .ytmd-history-back, .ytmd-history-forward { - cursor: pointer; - margin: 0 18px 0 2px; - font-size: 24px; - color: rgba(255, 255, 255, 0.5); - } + const css = document.createElement("style"); + css.appendChild( + document.createTextNode(` + .ytmd-history-back, .ytmd-history-forward { + cursor: pointer; + margin: 0 18px 0 2px; + font-size: 24px; + color: rgba(255, 255, 255, 0.5); + } - .ytmd-history-back.pivotbar, .ytmd-history-forward.pivotbar { - padding-top: 12px; - } + .ytmd-history-back.pivotbar, .ytmd-history-forward.pivotbar { + padding-top: 12px; + } - .ytmd-history-forward { - transform: rotate(180deg); - } + .ytmd-history-forward { + transform: rotate(180deg); + } - .ytmd-history-back.disabled, .ytmd-history-forward.disabled { - cursor: not-allowed; - } + .ytmd-history-back.disabled, .ytmd-history-forward.disabled { + cursor: not-allowed; + } - .ytmd-history-back:hover:not(.disabled), .ytmd-history-forward:hover:not(.disabled) { - color: #FFFFFF; - } + .ytmd-history-back:hover:not(.disabled), .ytmd-history-forward:hover:not(.disabled) { + color: #FFFFFF; + } - .ytmd-hidden { - display: none; - } + .ytmd-hidden { + display: none; + } - .ytmd-persist-volume-slider { - opacity: 1 !important; - pointer-events: initial !important; - } - - .ytmd-player-bar-control.library-button { - margin-left: 8px; - } + .ytmd-persist-volume-slider { + opacity: 1 !important; + pointer-events: initial !important; + } + + .ytmd-player-bar-control.library-button { + margin-left: 8px; + } - .ytmd-player-bar-control.library-button.hidden { - display: none; - } + .ytmd-player-bar-control.library-button.hidden { + display: none; + } - .ytmd-player-bar-control.playlist-button { - margin-left: 8px; - } + .ytmd-player-bar-control.playlist-button { + margin-left: 8px; + } - .ytmd-player-bar-control.playlist-button.hidden { - display: none; - } + .ytmd-player-bar-control.playlist-button.hidden { + display: none; + } - .ytmd-player-bar-control.sleep-timer-button.active { - color: #FFFFFF; - } - ` - )) - document.head.appendChild(css); + .ytmd-player-bar-control.sleep-timer-button.active { + color: #FFFFFF; + } + `) + ); + document.head.appendChild(css); } function createMaterialSymbolsLink() { - const link = document.createElement('link'); - link.rel = 'stylesheet'; - link.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,100,0,0' - return link; + const link = document.createElement("link"); + link.rel = "stylesheet"; + link.href = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,100,0,0"; + return link; } function createNavigationMenuArrows() { - // Go back in history - const historyBackElement = document.createElement('span'); - historyBackElement.classList.add('material-symbols-outlined', 'ytmd-history-back', 'disabled'); - historyBackElement.innerText = 'keyboard_backspace'; - - historyBackElement.addEventListener('click', function () { - if (!historyBackElement.classList.contains('disabled')) { - history.back(); - } - }); + // Go back in history + const historyBackElement = document.createElement("span"); + historyBackElement.classList.add("material-symbols-outlined", "ytmd-history-back", "disabled"); + historyBackElement.innerText = "keyboard_backspace"; + + historyBackElement.addEventListener("click", function () { + if (!historyBackElement.classList.contains("disabled")) { + history.back(); + } + }); - // Go forward in history - const historyForwardElement = document.createElement('span'); - historyForwardElement.classList.add('material-symbols-outlined', 'ytmd-history-forward', 'disabled'); - historyForwardElement.innerText = 'keyboard_backspace'; + // Go forward in history + const historyForwardElement = document.createElement("span"); + historyForwardElement.classList.add("material-symbols-outlined", "ytmd-history-forward", "disabled"); + historyForwardElement.innerText = "keyboard_backspace"; - historyForwardElement.addEventListener('click', function () { - if (!historyForwardElement.classList.contains('disabled')) { - history.forward(); - } - }); + historyForwardElement.addEventListener("click", function () { + if (!historyForwardElement.classList.contains("disabled")) { + history.forward(); + } + }); - ipcRenderer.on('ytmView:navigationStateChanged', (event, state) => { - if (state.canGoBack) { - historyBackElement.classList.remove('disabled'); - } else { - historyBackElement.classList.add('disabled'); - } + ipcRenderer.on("ytmView:navigationStateChanged", (event, state) => { + if (state.canGoBack) { + historyBackElement.classList.remove("disabled"); + } else { + historyBackElement.classList.add("disabled"); + } - if (state.canGoForward) { - historyForwardElement.classList.remove('disabled'); - } else { - historyForwardElement.classList.add('disabled'); - } - }) - - const pivotBar = document.querySelector("ytmusic-pivot-bar-renderer"); - if (!pivotBar) { - // New YTM UI - const searchBar = document.querySelector("ytmusic-search-box"); - const navBar = searchBar.parentNode; - navBar.insertBefore(historyForwardElement, searchBar); - navBar.insertBefore(historyBackElement, historyForwardElement); + if (state.canGoForward) { + historyForwardElement.classList.remove("disabled"); } else { - historyForwardElement.classList.add("pivotbar"); - historyBackElement.classList.add("pivotbar"); - pivotBar.prepend(historyForwardElement); - pivotBar.prepend(historyBackElement); + historyForwardElement.classList.add("disabled"); } + }); + + const pivotBar = document.querySelector("ytmusic-pivot-bar-renderer"); + if (!pivotBar) { + // New YTM UI + const searchBar = document.querySelector("ytmusic-search-box"); + const navBar = searchBar.parentNode; + navBar.insertBefore(historyForwardElement, searchBar); + navBar.insertBefore(historyBackElement, historyForwardElement); + } else { + historyForwardElement.classList.add("pivotbar"); + historyBackElement.classList.add("pivotbar"); + pivotBar.prepend(historyForwardElement); + pivotBar.prepend(historyBackElement); + } } function createKeyboardNavigation() { - const keyboardNavigation = document.createElement('div'); - keyboardNavigation.tabIndex = 32767; - keyboardNavigation.onfocus = () => { - keyboardNavigation.blur(); - ipcRenderer.send('ytmView:switchFocus', 'main') - } - document.body.appendChild(keyboardNavigation); + const keyboardNavigation = document.createElement("div"); + keyboardNavigation.tabIndex = 32767; + keyboardNavigation.onfocus = () => { + keyboardNavigation.blur(); + ipcRenderer.send("ytmView:switchFocus", "main"); + }; + document.body.appendChild(keyboardNavigation); } function createAdditionalPlayerBarControls() { - webFrame.executeJavaScript(` + webFrame.executeJavaScript(` window.ytmdControlButtons = {}; let currentVideoId = ""; @@ -586,13 +586,13 @@ function createAdditionalPlayerBarControls() { } function hideChromecastButton() { - webFrame.executeJavaScript(` + webFrame.executeJavaScript(` window.ytmdPlayerBar.store.dispatch({ type: 'SET_CAST_AVAILABLE', payload: false }); `); } function hookPlayerApiEvents() { - webFrame.executeJavaScript(` + webFrame.executeJavaScript(` window.ytmdPlayerBar.playerApi_.addEventListener('onVideoProgress', (progress) => { window.ytmd.sendVideoProgress(progress) }); window.ytmdPlayerBar.playerApi_.addEventListener('onStateChange', (state) => { window.ytmd.sendVideoState(state) }); window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()) } }); @@ -606,55 +606,55 @@ function hookPlayerApiEvents() { `); } -window.addEventListener('load', async () => { - if (window.location.hostname !== "music.youtube.com") { - if (window.location.hostname === 'consent.youtube.com') { - ipcRenderer.send('ytmView:loaded'); - } - return; +window.addEventListener("load", async () => { + if (window.location.hostname !== "music.youtube.com") { + if (window.location.hostname === "consent.youtube.com") { + ipcRenderer.send("ytmView:loaded"); } + return; + } - let materialSymbolsLoaded = false; + let materialSymbolsLoaded = false; - const materialSymbols = createMaterialSymbolsLink(); - materialSymbols.onload = () => { - materialSymbolsLoaded = true; - } - document.head.appendChild(materialSymbols); + const materialSymbols = createMaterialSymbolsLink(); + materialSymbols.onload = () => { + materialSymbolsLoaded = true; + }; + document.head.appendChild(materialSymbols); - await new Promise((resolve) => { - const interval = setInterval(async () => { - const playerApiReady: boolean = await webFrame.executeJavaScript(` + await new Promise(resolve => { + const interval = setInterval(async () => { + const playerApiReady: boolean = await webFrame.executeJavaScript(` document.querySelector("ytmusic-player-bar").playerApi_.isReady(); `); - if (materialSymbolsLoaded && playerApiReady) { - clearInterval(interval); - resolve(); - } - }, 250); - }); + if (materialSymbolsLoaded && playerApiReady) { + clearInterval(interval); + resolve(); + } + }, 250); + }); - await webFrame.executeJavaScript(` + await webFrame.executeJavaScript(` window.ytmdPlayerBar = document.querySelector("ytmusic-player-bar"); `); - createStyleSheet(); - createNavigationMenuArrows(); - createKeyboardNavigation(); - createAdditionalPlayerBarControls(); - hideChromecastButton(); - hookPlayerApiEvents(); - - const state = await store.get('state'); - const continueWhereYouLeftOff = (await store.get('playback')).continueWhereYouLeftOff; - const continueWhereYouLeftOffPaused = (await store.get('playback')).continueWhereYouLeftOffPaused; - - if (continueWhereYouLeftOff) { - // The last page the user was on is already a page where it will be playing a song from (no point telling YTM to play it again) - if (!state.lastUrl.startsWith("https://music.youtube.com/watch") && state.lastVideoId) { - if (continueWhereYouLeftOffPaused) { - webFrame.executeJavaScript(` + createStyleSheet(); + createNavigationMenuArrows(); + createKeyboardNavigation(); + createAdditionalPlayerBarControls(); + hideChromecastButton(); + hookPlayerApiEvents(); + + const state = await store.get("state"); + const continueWhereYouLeftOff = (await store.get("playback")).continueWhereYouLeftOff; + const continueWhereYouLeftOffPaused = (await store.get("playback")).continueWhereYouLeftOffPaused; + + if (continueWhereYouLeftOff) { + // The last page the user was on is already a page where it will be playing a song from (no point telling YTM to play it again) + if (!state.lastUrl.startsWith("https://music.youtube.com/watch") && state.lastVideoId) { + if (continueWhereYouLeftOffPaused) { + webFrame.executeJavaScript(` // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon let callback = (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { @@ -664,179 +664,171 @@ window.addEventListener('load', async () => { } window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', callback); `); + } + + document.dispatchEvent( + new CustomEvent("yt-navigate", { + detail: { + endpoint: { + watchEndpoint: { + videoId: state.lastVideoId, + playlistId: state.lastPlaylistId + } } - - document.dispatchEvent(new CustomEvent('yt-navigate', { - detail: { - endpoint: { - watchEndpoint: { - videoId: state.lastVideoId, - playlistId: state.lastPlaylistId - } - } - } - })); - } else { - if (continueWhereYouLeftOffPaused) { - webFrame.executeJavaScript(` + } + }) + ); + } else { + if (continueWhereYouLeftOffPaused) { + webFrame.executeJavaScript(` // This is different from the above because loading a watch page means all the video data is already available and would be playing window.ytmdPlayerBar.playerApi_.pauseVideo(); `); - } + } - webFrame.executeJavaScript(` + webFrame.executeJavaScript(` window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()); `); - } - } - - const alwaysShowVolumeSlider = (await store.get('appearance')).alwaysShowVolumeSlider; - if (alwaysShowVolumeSlider) { - document.querySelector("#volume-slider").classList.add("ytmd-persist-volume-slider"); } + } + + const alwaysShowVolumeSlider = (await store.get("appearance")).alwaysShowVolumeSlider; + if (alwaysShowVolumeSlider) { + document.querySelector("#volume-slider").classList.add("ytmd-persist-volume-slider"); + } + + ipcRenderer.on("remoteControl:execute", async (event, command, value) => { + switch (command) { + case "playPause": { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); + `); + break; + } - ipcRenderer.on('remoteControl:execute', async (event, command, value) => { - - switch (command) { - case 'playPause': - { - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); - `); - break; - } - - case 'play': - { - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.playVideo(); - `); - break; - } + case "play": { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.playVideo(); + `); + break; + } - case 'pause': - { - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.pauseVideo(); - `); - break; - } - - case 'next': - { - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.nextVideo(); - `); - break; - } + case "pause": { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.pauseVideo(); + `); + break; + } - case 'previous': - { - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.previousVideo(); - `); - break; - } + case "next": { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.nextVideo(); + `); + break; + } - case 'thumbsUp': - // TODO - break; + case "previous": { + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.previousVideo(); + `); + break; + } - case 'thumbsDown': - // TODO - break; + case "thumbsUp": + // TODO + break; - case 'volumeUp': - { - const currentVolumeUp: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); - `); + case "thumbsDown": + // TODO + break; - let newVolumeUp = currentVolumeUp + 10; - if (currentVolumeUp > 100) { - newVolumeUp = 100; - } - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); - `); - break; - } + case "volumeUp": { + const currentVolumeUp: number = await webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.getVolume(); + `); - case 'volumeDown': - { - const currentVolumeDown: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); - `); + let newVolumeUp = currentVolumeUp + 10; + if (currentVolumeUp > 100) { + newVolumeUp = 100; + } + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); + `); + break; + } - let newVolumeDown = currentVolumeDown - 10; - if (currentVolumeDown < 0) { - newVolumeDown = 0; - } - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); - `); - break; - } + case "volumeDown": { + const currentVolumeDown: number = await webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.getVolume(); + `); - case 'setVolume': - { - const valueInt: number = parseInt(value); - // Check if Volume is a number and between 0 and 100 - if (isNaN(valueInt) || valueInt < 0 || valueInt > 100) { - return; - } + let newVolumeDown = currentVolumeDown - 10; + if (currentVolumeDown < 0) { + newVolumeDown = 0; + } + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); + `); + break; + } + + case "setVolume": { + const valueInt: number = parseInt(value); + // Check if Volume is a number and between 0 and 100 + if (isNaN(valueInt) || valueInt < 0 || valueInt > 100) { + return; + } - webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); - `); - break; - } + webFrame.executeJavaScript(` + window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); + `); + break; + } - - case 'mute': - webFrame.executeJavaScript(` + case "mute": + webFrame.executeJavaScript(` window.ytmdPlayerBar.playerApi_.mute(); window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: true }); `); - break; + break; - case 'unmute': - webFrame.executeJavaScript(` + case "unmute": + webFrame.executeJavaScript(` window.ytmdPlayerBar.playerApi_.unMute(); window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: false }); `); - break; - - - case 'navigate': - { - const endpoint = value; - document.dispatchEvent(new CustomEvent('yt-navigate', { - detail: { - endpoint - } - })); - break; - } - } - }); - - store.onDidAnyChange((newState) => { - if (newState.appearance.alwaysShowVolumeSlider) { - const volumeSlider = document.querySelector("#volume-slider") - if (!volumeSlider.classList.contains("ytmd-persist-volume-slider")) { - volumeSlider.classList.add("ytmd-persist-volume-slider") + break; + + case "navigate": { + const endpoint = value; + document.dispatchEvent( + new CustomEvent("yt-navigate", { + detail: { + endpoint } - } else { - const volumeSlider = document.querySelector("#volume-slider") - if (volumeSlider.classList.contains("ytmd-persist-volume-slider")) { - volumeSlider.classList.remove("ytmd-persist-volume-slider") - } - } - }); + }) + ); + break; + } + } + }); + + store.onDidAnyChange(newState => { + if (newState.appearance.alwaysShowVolumeSlider) { + const volumeSlider = document.querySelector("#volume-slider"); + if (!volumeSlider.classList.contains("ytmd-persist-volume-slider")) { + volumeSlider.classList.add("ytmd-persist-volume-slider"); + } + } else { + const volumeSlider = document.querySelector("#volume-slider"); + if (volumeSlider.classList.contains("ytmd-persist-volume-slider")) { + volumeSlider.classList.remove("ytmd-persist-volume-slider"); + } + } + }); - ipcRenderer.send('ytmView:loaded'); -}); \ No newline at end of file + ipcRenderer.send("ytmView:loaded"); +}); diff --git a/webpack.main.config.ts b/webpack.main.config.ts index c978c175a..630be8078 100644 --- a/webpack.main.config.ts +++ b/webpack.main.config.ts @@ -1,18 +1,18 @@ -import type { Configuration } from 'webpack'; +import type { Configuration } from "webpack"; -import { rules } from './webpack.rules'; +import { rules } from "./webpack.rules"; export const mainConfig: Configuration = { /** * This is the main entry point for your application, it's the first file * that runs in the main process. */ - entry: './src/index.ts', + entry: "./src/index.ts", // Put your normal webpack config below here module: { - rules, + rules }, resolve: { - extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'], - }, + extensions: [".js", ".ts", ".jsx", ".tsx", ".css", ".json"] + } }; diff --git a/webpack.plugins.ts b/webpack.plugins.ts index 846aa240e..ea233d9c3 100644 --- a/webpack.plugins.ts +++ b/webpack.plugins.ts @@ -1,10 +1,10 @@ -import type IForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; +import type IForkTsCheckerWebpackPlugin from "fork-ts-checker-webpack-plugin"; // eslint-disable-next-line @typescript-eslint/no-var-requires -const ForkTsCheckerWebpackPlugin: typeof IForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); +const ForkTsCheckerWebpackPlugin: typeof IForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin"); export const plugins = [ new ForkTsCheckerWebpackPlugin({ - logger: 'webpack-infrastructure', - }), + logger: "webpack-infrastructure" + }) ]; diff --git a/webpack.renderer.config.ts b/webpack.renderer.config.ts index f91633d3b..adebb86c0 100644 --- a/webpack.renderer.config.ts +++ b/webpack.renderer.config.ts @@ -1,28 +1,25 @@ -import type { Configuration } from 'webpack'; +import type { Configuration } from "webpack"; -import { VueLoaderPlugin } from 'vue-loader'; +import { VueLoaderPlugin } from "vue-loader"; -import { rules } from './webpack.rules'; -import { plugins } from './webpack.plugins'; +import { rules } from "./webpack.rules"; +import { plugins } from "./webpack.plugins"; rules.push({ test: /\.css$/, - use: [{ loader: 'style-loader' }, { loader: 'css-loader' }], + use: [{ loader: "style-loader" }, { loader: "css-loader" }] }); rules.push({ test: /\.vue$/, - loader: 'vue-loader' -}) + loader: "vue-loader" +}); export const rendererConfig: Configuration = { module: { - rules, + rules }, - plugins: [ - new VueLoaderPlugin(), - ...plugins - ], + plugins: [new VueLoaderPlugin(), ...plugins], resolve: { - extensions: ['.js', '.ts', '.jsx', '.tsx', '.css'], - }, + extensions: [".js", ".ts", ".jsx", ".tsx", ".css"] + } }; diff --git a/webpack.rules.ts b/webpack.rules.ts index b3253cbde..ccd688cfa 100644 --- a/webpack.rules.ts +++ b/webpack.rules.ts @@ -1,31 +1,31 @@ -import type { ModuleOptions } from 'webpack'; +import type { ModuleOptions } from "webpack"; -export const rules: Required['rules'] = [ +export const rules: Required["rules"] = [ // Add support for native node modules { // We're specifying native_modules in the test because the asset relocator loader generates a // "fake" .node file which is really a cjs file. test: /native_modules[/\\].+\.node$/, - use: 'node-loader', + use: "node-loader" }, { test: /[/\\]node_modules[/\\].+\.(m?js|node)$/, parser: { amd: false }, use: { - loader: '@vercel/webpack-asset-relocator-loader', + loader: "@vercel/webpack-asset-relocator-loader", options: { - outputAssetBase: 'native_modules', - }, - }, + outputAssetBase: "native_modules" + } + } }, { test: /\.tsx?$/, exclude: /(node_modules|\.webpack)/, use: { - loader: 'ts-loader', + loader: "ts-loader", options: { - transpileOnly: true, - }, - }, - }, + transpileOnly: true + } + } + } ]; diff --git a/yarn.lock b/yarn.lock index 0778027b2..2090cd2f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -314,6 +314,13 @@ minimatch "^3.0.4" plist "^3.0.4" +"@eslint-community/eslint-utils@^4.3.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + "@eslint/eslintrc@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" @@ -1120,6 +1127,11 @@ acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -1210,6 +1222,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1224,6 +1241,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -1577,6 +1599,11 @@ caniuse-lite@^1.0.30001400: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1656,6 +1683,14 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -1738,6 +1773,11 @@ colorette@^2.0.10, colorette@^2.0.19: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2169,6 +2209,11 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -2288,6 +2333,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -2440,6 +2490,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +eslint-config-prettier@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + eslint-import-resolver-node@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" @@ -2474,6 +2529,19 @@ eslint-plugin-import@^2.25.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" +eslint-plugin-vue@^9.15.1: + version "9.15.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be" + integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A== + dependencies: + "@eslint-community/eslint-utils" "^4.3.0" + natural-compare "^1.4.0" + nth-check "^2.0.1" + postcss-selector-parser "^6.0.9" + semver "^7.3.5" + vue-eslint-parser "^9.3.0" + xml-name-validator "^4.0.0" + eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -2507,6 +2575,11 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + eslint@^8.0.1: version "8.31.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" @@ -2552,6 +2625,15 @@ eslint@^8.0.1: strip-json-comments "^3.1.0" text-table "^0.2.0" +espree@^9.3.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + espree@^9.4.0: version "9.4.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" @@ -2643,6 +2725,21 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -3134,7 +3231,7 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -3489,6 +3586,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -3496,6 +3598,11 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3661,6 +3768,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -3742,6 +3854,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -3923,11 +4040,35 @@ light-my-request@^5.6.1: process-warning "^2.0.0" set-cookie-parser "^2.4.1" +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lint-staged@^13.2.3: + version "13.2.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.3.tgz#f899aad6c093473467e9c9e316e3c2d8a28f87a7" + integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg== + dependencies: + chalk "5.2.0" + cli-truncate "^3.1.0" + commander "^10.0.0" + debug "^4.3.4" + execa "^7.0.0" + lilconfig "2.1.0" + listr2 "^5.0.7" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.3" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.2.2" + listr2@^5.0.3: version "5.0.6" resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" @@ -3942,6 +4083,20 @@ listr2@^5.0.3: through "^2.3.8" wrap-ansi "^7.0.0" +listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" + integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.19" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.8.0" + through "^2.3.8" + wrap-ansi "^7.0.0" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -4176,7 +4331,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -4211,6 +4366,11 @@ mimic-fn@^3.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -4494,6 +4654,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + npmlog@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" @@ -4521,6 +4688,11 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -4581,6 +4753,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^8.0.9: version "8.4.0" resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" @@ -4793,6 +4972,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -4830,6 +5014,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4923,6 +5112,14 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -4942,6 +5139,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== + pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -5294,6 +5496,13 @@ rxjs@^7.5.7: dependencies: tslib "^2.1.0" +rxjs@^7.8.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5388,6 +5597,13 @@ semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semve dependencies: lru-cache "^6.0.0" +semver@^7.3.6: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -5532,6 +5748,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -5694,6 +5918,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +string-argv@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5703,6 +5932,15 @@ statuses@2.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" @@ -5742,6 +5980,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5757,6 +6002,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6124,6 +6374,19 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +vue-eslint-parser@^9.3.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" + integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + vue-loader@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-17.0.1.tgz#c0ee8875e0610a0c2d13ba9b4d50a9c8442e7a3a" @@ -6375,6 +6638,11 @@ ws@~8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + xmlbuilder@^15.1.1: version "15.1.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" @@ -6415,6 +6683,11 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 95a8abbe0011704d647bc20f65fe87b84d9f2022 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Fri, 28 Jul 2023 14:27:02 -0500 Subject: [PATCH 174/489] =?UTF-8?q?=E2=9C=A8=20Companion=20server=20APIs?= =?UTF-8?q?=20added:=20GET=20/playlists,=20POST=20/command.=20Ratelimits?= =?UTF-8?q?=20added=20to=20companion=20server.=20New=20realtime=20socket?= =?UTF-8?q?=20events:=20playlist-created,=20playlist-deleted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- src/@types/fastify.d.ts | 7 + src/index.ts | 9 +- .../companion-server/api/v1/index.ts | 252 ++++++++++++++---- src/integrations/companion-server/index.ts | 19 +- .../companion-server/shared/auth.ts | 13 +- src/ytmview/preload.ts | 134 +++++++--- yarn.lock | 129 +++++---- 8 files changed, 411 insertions(+), 155 deletions(-) create mode 100644 src/@types/fastify.d.ts diff --git a/package.json b/package.json index a7160688d..02e8bcd0c 100644 --- a/package.json +++ b/package.json @@ -52,10 +52,11 @@ "vue-template-compiler": "^2.7.14" }, "dependencies": { + "@fastify/rate-limit": "^8.0.3", "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", - "fastify": "^4.11.0", + "fastify": "^4.16.0", "fastify-socket.io": "^4.0.0", "material-symbols": "^0.4.2", "socket.io": "^4.5.4", diff --git a/src/@types/fastify.d.ts b/src/@types/fastify.d.ts new file mode 100644 index 000000000..fa5e65607 --- /dev/null +++ b/src/@types/fastify.d.ts @@ -0,0 +1,7 @@ +import 'fastify'; + +declare module 'fastify' { + interface FastifyRequest { + authId: string + } +} diff --git a/src/index.ts b/src/index.ts index 2ca623204..0aa4d4fea 100644 --- a/src/index.ts +++ b/src/index.ts @@ -103,7 +103,7 @@ store.onDidAnyChange((newState, oldState) => { } if (newState.integrations.companionServerEnabled) { - companionServer.provide(store); + companionServer.provide(store, ytmView); companionServer.enable(); } else { companionServer.disable(); @@ -139,11 +139,11 @@ store.onDidAnyChange((newState, oldState) => { // Integrations setup // CompanionServer -companionServer.addEventListener((command, value) => { +/*companionServer.addEventListener((command, value) => { ytmView.webContents.send("remoteControl:execute", command, value); -}); +});*/ if (store.get("integrations").companionServerEnabled) { - companionServer.provide(store); + companionServer.provide(store, ytmView); companionServer.enable(); } @@ -474,6 +474,7 @@ const createMainWindow = (): void => { preload: YTM_VIEW_PRELOAD_WEBPACK_ENTRY } }); + companionServer.provide(store, ytmView); // This block of code adding the browser view setting the bounds and removing it is a temporary fix for a bug in YTMs UI // where a small window size will lock the scrollbar and have difficulty unlocking it without changing the guide bar collapse state if (ytmView !== null && mainWindow !== null) { diff --git a/src/integrations/companion-server/api/v1/index.ts b/src/integrations/companion-server/api/v1/index.ts index 8811ce522..9c99bb749 100644 --- a/src/integrations/companion-server/api/v1/index.ts +++ b/src/integrations/companion-server/api/v1/index.ts @@ -1,9 +1,11 @@ -import { BrowserWindow, ipcMain, safeStorage } from "electron"; +import { BrowserView, BrowserWindow, ipcMain, safeStorage } from "electron"; import ElectronStore from "electron-store"; import { FastifyPluginCallback, FastifyPluginOptions } from "fastify"; import { StoreSchema } from "../../../../shared/store/schema"; import playerStateStore from "../../../../player-state-store"; import { createAuthToken, getIsTemporaryAuthCodeValidAndRemove, getTemporaryAuthCode, isAuthValid, isAuthValidMiddleware } from "../../shared/auth"; +import fastifyRateLimit from '@fastify/rate-limit'; +import crypto from 'crypto'; declare const AUTHORIZE_COMPANION_WINDOW_WEBPACK_ENTRY: string; declare const AUTHORIZE_COMPANION_WINDOW_PRELOAD_WEBPACK_ENTRY: string; @@ -35,12 +37,11 @@ const mapQueueItems = (item: any) => { }; }; -const getPlayerState = () => { - const state = playerStateStore.getState(); +const transformPlayerState = (state: any) => { return { player: { - state: state.trackState, - progress: state.videoProgress, + trackState: state.trackState, + videoProgress: state.videoProgress, queue: state.queue ? { autoplay: state.queue.autoplay, @@ -71,25 +72,100 @@ const getPlayerState = () => { }; interface CompanionServerAPIv1Options extends FastifyPluginOptions { - remoteCommandEmitter: (command: string, ...args: any[]) => void; + //remoteCommandEmitter: (command: string, ...args: any[]) => void; getStore: () => ElectronStore; + getYtmView: () => BrowserView; } -const CompanionServerAPIv1: FastifyPluginCallback = (fastify, options, next) => { - fastify.post<{ Body: { appName: string } }>("/auth/requestcode", async (request, response) => { +type RemoteCommand = "playPause" | "play" | "pause" | "volumeUp" | "volumeDown" | "mute" | "unmute" | "next" | "previous"; + +const CompanionServerAPIv1: FastifyPluginCallback = async (fastify, options, next) => { + const sendCommand = (command: RemoteCommand) => { + const ytmView = options.getYtmView(); + if (ytmView) { + switch (command) { + case "playPause": { + ytmView.webContents.send("remoteControl:execute", "playPause"); + break; + } + + case "play": { + ytmView.webContents.send("remoteControl:execute", "play"); + break; + } + + case "pause": { + ytmView.webContents.send("remoteControl:execute", "pause"); + break; + } + + case "volumeUp": { + ytmView.webContents.send("remoteControl:execute", "volumeUp"); + break; + } + + case "volumeDown": { + ytmView.webContents.send("remoteControl:execute", "volumeDown"); + break; + } + + case "mute": { + ytmView.webContents.send("remoteControl:execute", "mute"); + break; + } + + case "unmute": { + ytmView.webContents.send("remoteControl:execute", "unmute"); + break; + } + + case "next": { + ytmView.webContents.send("remoteControl:execute", "next"); + break; + } + + case "previous": { + ytmView.webContents.send("remoteControl:execute", "previous"); + break; + } + } + } + } + + await fastify.register(fastifyRateLimit, { + global: true, + max: 100, + timeWindow: 1000 * 60 + }); + + fastify.post<{ Body: { appName: string } }>("/auth/requestcode", { + config: { + rateLimit: { + max: 5, + timeWindow: 1000 * 60 + } + } + }, async (request, response) => { const code = await getTemporaryAuthCode(request.body.appName); if (code) { response.send({ code }); } else { - response.send({ + response.code(504).send({ error: "AUTHORIZATION_TIMEOUT" }); } }); - fastify.post<{ Body: { appName: string; code: string } }>("/auth/request", async (request, response) => { + fastify.post<{ Body: { appName: string; code: string } }>("/auth/request", { + config: { + rateLimit: { + max: 5, + timeWindow: 1000 * 60 + } + } + }, async (request, response) => { let companionServerAuthWindowEnabled = false; try { companionServerAuthWindowEnabled = @@ -99,14 +175,14 @@ const CompanionServerAPIv1: FastifyPluginCallback = } if (!companionServerAuthWindowEnabled) { - response.send({ + response.code(403).send({ error: "AUTHORIZATION_DISABLED" }); return; } if (!getIsTemporaryAuthCodeValidAndRemove(request.body.appName, request.body.code)) { - response.send({ + response.code(400).send({ error: "AUTHORIZATION_INVALID" }); return; @@ -148,12 +224,12 @@ const CompanionServerAPIv1: FastifyPluginCallback = let promiseInterval: string | number | NodeJS.Timeout; function resultListener(_event: Electron.IpcMainEvent, authorized: boolean) { - clearInterval(this.interval); + clearInterval(promiseInterval); promiseResolve(authorized); } function closeListener() { - clearInterval(this.interval); + clearInterval(promiseInterval); promiseResolve(false); } @@ -190,64 +266,142 @@ const CompanionServerAPIv1: FastifyPluginCallback = }); options.getStore().set("integrations.companionServerAuthWindowEnabled", await safeStorage.encryptString("false")); } else { - response.send({ + response.code(403).send({ error: "AUTHORIZATION_DENIED" }); } }); + fastify.get( + "/playlists", + { + config: { + // This endpoint sends a real API request to YTM which allows to fetch playlists. + // API users: Please cache playlists, they are unlikely to change often. A websocket event will be emitted if a playlist is created or deleted + rateLimit: { + hook: 'preHandler', + max: 1, + timeWindow: 1000 * 30, + keyGenerator: (request) => { + return request.authId || request.ip; + } + } + }, + preHandler: (request, response, next) => { + return isAuthValidMiddleware(options.getStore(), request, response, next); + } + }, + (request, response) => { + const ytmView = options.getYtmView(); + if (ytmView) { + const requestId = crypto.randomUUID(); + + const playlistsResponseListener = (_event: Electron.IpcMainEvent, playlists: any) => { + response.send(playlists); + } + ipcMain.once(`ytmView:getPlaylists:response:${requestId}`, playlistsResponseListener); + + setTimeout(() => { + ipcMain.removeListener(`ytmView:getPlaylists:response:${requestId}`, playlistsResponseListener); + response.code(504).send({ + error: 'YTM_RESULT_TIMEOUT' + }); + }, 1000 * 5); + + ytmView.webContents.send(`ytmView:getPlaylists`, requestId); + //response.send(transformPlayerState(playerStateStore.getState())); + } else { + response.code(503).send({ + error: 'YTM_UNAVAILABLE' + }); + } + } + ); + fastify.get( "/state", { + config: { + // API users: Please utilize the realtime websocket to get the state. Request this endpoint as necessary, such as initial state fetching. + rateLimit: { + hook: 'preHandler', + max: 1, + timeWindow: 1000 * 5, + keyGenerator: (request) => { + return request.authId || request.ip; + } + } + }, preHandler: (request, response, next) => { return isAuthValidMiddleware(options.getStore(), request, response, next); } }, (request, response) => { - response.send(getPlayerState()); + response.send(transformPlayerState(playerStateStore.getState())); + } + ); + + fastify.post<{ Body: { command: RemoteCommand } }>( + "/command", + { + config: { + // API users: You may also use the websocket to perform remote command options + rateLimit: { + hook: 'preHandler', + max: 2, + timeWindow: 1000 * 1, + keyGenerator: (request) => { + return request.authId || request.ip; + } + } + }, + preHandler: (request, response, next) => { + return isAuthValidMiddleware(options.getStore(), request, response, next); + } + }, + (request, response) => { + sendCommand(request.body.command); + response.code(204).send(); } ); fastify.ready().then(() => { - fastify.io.of("/api/v1").use((socket, next) => { + fastify.io.of("/api/v1/realtime").use((socket, next) => { const token = socket.handshake.auth.token; const validSession = isAuthValid(options.getStore(), token); if (validSession) next(); else next(new Error("UNAUTHORIZED")); }); - fastify.io.of("/api/v1").on("connection", socket => { - socket.on("command", command => { - switch (command) { - case "playPause": { - options.remoteCommandEmitter("playPause"); - break; - } - - case "volumeUp": { - options.remoteCommandEmitter("volumeUp"); - break; - } - - case "volumeDown": { - options.remoteCommandEmitter("volumeDown"); - break; - } - - case "next": { - options.remoteCommandEmitter("next"); - break; - } - - case "previous`": { - options.remoteCommandEmitter("previous"); - break; - } - } + // Will look into enabling sending commands/requests over the websocket at a later point in time + /*fastify.io.of("/api/v1/realtime").on("connection", socket => { + socket.on("command", (command: RemoteCommand) => { + sendCommand(command); }); - }); - - playerStateStore.addEventListener(() => { - fastify.io.of("/api/v1").emit("state-update", getPlayerState()); + });*/ + + const stateStoreListener = (state: any) => { + fastify.io.of("/api/v1/realtime").emit("state-update", transformPlayerState(state)); + }; + playerStateStore.addEventListener(stateStoreListener); + + const createPlaylistObservedListener = (_event: Electron.IpcMainEvent, playlist: any) => { + console.log("Create playlist observed", playlist); + fastify.io.of("/api/v1/realtime").emit("playlist-created", playlist); + }; + ipcMain.on('ytmView:createPlaylistObserved', createPlaylistObservedListener); + + const deletePlaylistObservedListener = (_event: Electron.IpcMainEvent, playlistId: string) => { + console.log("Delete playlist observed", playlistId); + fastify.io.of("/api/v1/realtime").emit("playlist-deleted", playlistId); + }; + ipcMain.on('ytmView:deletePlaylistObserved', deletePlaylistObservedListener); + + fastify.addHook('onClose', () => { + // This should normally close on its own but we'll make sure it's closed out + fastify.io.close(); + playerStateStore.removeEventListener(stateStoreListener); + ipcMain.off('ytmView:createPlaylistObserved', createPlaylistObservedListener); + ipcMain.off('ytmView:deletePlaylistObserved', deletePlaylistObservedListener); }); }); diff --git a/src/integrations/companion-server/index.ts b/src/integrations/companion-server/index.ts index d21a069a5..0352b0741 100644 --- a/src/integrations/companion-server/index.ts +++ b/src/integrations/companion-server/index.ts @@ -5,14 +5,14 @@ import FastifyIO from "fastify-socket.io"; import CompanionServerAPIv1 from "./api/v1"; import { StoreSchema } from "../../shared/store/schema"; import ElectronStore from "electron-store"; +import { BrowserView } from "electron"; export default class CompanionServer implements IIntegration { private listenIp = "0.0.0.0"; private listenPort = 9863; private fastifyServer: FastifyInstance; private store: ElectronStore; - - private eventEmitter = new EventEmitter(); + private ytmView: BrowserView; constructor() { this.createServer(); @@ -26,7 +26,9 @@ export default class CompanionServer implements IIntegration { }); this.fastifyServer.register(CompanionServerAPIv1, { prefix: "/api/v1", - remoteCommandEmitter: (command: string, ...args: any[]) => this.eventEmitter.emit("executeRemoteCommand", command, ...args), + getYtmView: () => { + return this.ytmView; + }, getStore: () => { return this.store; } @@ -38,16 +40,9 @@ export default class CompanionServer implements IIntegration { }); } - public addEventListener(listener: (...args: any[]) => void) { - this.eventEmitter.addListener("executeRemoteCommand", listener); - } - - public removeEventListener(listener: (...args: any[]) => void) { - this.eventEmitter.removeListener("executeRemoteCommand", listener); - } - - public provide(store: ElectronStore): void { + public provide(store: ElectronStore, ytmView: BrowserView): void { this.store = store; + this.ytmView = ytmView; } public enable() { diff --git a/src/integrations/companion-server/shared/auth.ts b/src/integrations/companion-server/shared/auth.ts index 988dec2ca..ea21bb61b 100644 --- a/src/integrations/companion-server/shared/auth.ts +++ b/src/integrations/companion-server/shared/auth.ts @@ -72,8 +72,8 @@ export function createAuthToken(store: ElectronStore, appName: stri return token; } -export function isAuthValid(store: ElectronStore, authToken: string) { - if (!authToken) return false; +export function isAuthValid(store: ElectronStore, authToken: string): [boolean, string] { + if (!authToken) return [false, null]; const authTokenHash = crypto.createHash("sha256").update(authToken).digest("hex"); @@ -86,18 +86,20 @@ export function isAuthValid(store: ElectronStore, authToken: string } let validSession = false; + let id = null; for (const authSession of authTokens) { if (authSession.token == authTokenHash) { + id = authSession.id; validSession = true; break; } } if (validSession) { - return true; + return [true, id]; } - return false; + return [false, null]; } export function isAuthValidMiddleware(store: ElectronStore, request: FastifyRequest, response: FastifyReply, next: HookHandlerDoneFunction) { @@ -110,9 +112,10 @@ export function isAuthValidMiddleware(store: ElectronStore, request return; } - const validSession = isAuthValid(store, authToken); + const [validSession, tokenId] = isAuthValid(store, authToken); if (validSession) { + request.authId = tokenId; next(); } else { response.code(401); diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index 5efb36e88..65700823c 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -9,7 +9,9 @@ contextBridge.exposeInMainWorld("ytmd", { sendVideoState: (state: number) => ipcRenderer.send("ytmView:videoStateChanged", state), sendVideoData: (videoDetails: any, playlistId: string) => ipcRenderer.send("ytmView:videoDataChanged", videoDetails, playlistId), sendAdState: (adRunning: boolean) => ipcRenderer.send("ytmView:adStateChanged", adRunning), - sendStoreUpdate: (queueState: any) => ipcRenderer.send("ytmView:storeStateChanged", queueState) + sendStoreUpdate: (queueState: any) => ipcRenderer.send("ytmView:storeStateChanged", queueState), + sendCreatePlaylistObservation: (playlist: any) => ipcRenderer.send("ytmView:createPlaylistObserved", playlist), + sendDeletePlaylistObservation: (playlistId: string) => ipcRenderer.send("ytmView:deletePlaylistObserved", playlistId) }); function createStyleSheet() { @@ -602,10 +604,36 @@ function hookPlayerApiEvents() { // We don't want to see everything in the store as there can be some sensitive data so we only send what's necessary to operate let state = window.ytmdPlayerBar.store.getState(); window.ytmd.sendStoreUpdate(state.queue) - }) + }); + window.addEventListener('yt-action', e => { + if (e.detail.actionName === 'yt-service-request') { + if (e.detail.args[1].createPlaylistServiceEndpoint) { + let title = e.detail.args[2].create_playlist_title; + let returnValue = e.detail.returnValue; + returnValue[0].ajaxPromise.then(response => { + let id = response.data.playlistId + window.ytmd.sendCreatePlaylistObservation({ + title, + id + }); + }) + } + } else if (e.detail.actionName === 'yt-handle-playlist-deletion-command') { + let playlistId = e.detail.args[0].handlePlaylistDeletionCommand.playlistId; + window.ytmd.sendDeletePlaylistObservation(playlistId); + } + }); `); } +function getYTMTextRun(runs: any[]) { + let final = ""; + for (const run of runs) { + final += run.text; + } + return final; +} + window.addEventListener("load", async () => { if (window.location.hostname !== "music.youtube.com") { if (window.location.hostname === "consent.youtube.com") { @@ -697,40 +725,40 @@ window.addEventListener("load", async () => { document.querySelector("#volume-slider").classList.add("ytmd-persist-volume-slider"); } - ipcRenderer.on("remoteControl:execute", async (event, command, value) => { + ipcRenderer.on("remoteControl:execute", async (_event, command, value) => { switch (command) { case "playPause": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); - `); + window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); + `); break; } case "play": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.playVideo(); - `); + window.ytmdPlayerBar.playerApi_.playVideo(); + `); break; } case "pause": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.pauseVideo(); - `); + window.ytmdPlayerBar.playerApi_.pauseVideo(); + `); break; } case "next": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.nextVideo(); - `); + window.ytmdPlayerBar.playerApi_.nextVideo(); + `); break; } case "previous": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.previousVideo(); - `); + window.ytmdPlayerBar.playerApi_.previousVideo(); + `); break; } @@ -744,33 +772,33 @@ window.addEventListener("load", async () => { case "volumeUp": { const currentVolumeUp: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); - `); + window.ytmdPlayerBar.playerApi_.getVolume(); + `); let newVolumeUp = currentVolumeUp + 10; if (currentVolumeUp > 100) { newVolumeUp = 100; } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); - `); + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); + `); break; } case "volumeDown": { const currentVolumeDown: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); - `); + window.ytmdPlayerBar.playerApi_.getVolume(); + `); let newVolumeDown = currentVolumeDown - 10; if (currentVolumeDown < 0) { newVolumeDown = 0; } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); - `); + window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); + `); break; } @@ -782,24 +810,24 @@ window.addEventListener("load", async () => { } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); - `); + window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); + `); break; } case "mute": webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.mute(); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: true }); - `); + window.ytmdPlayerBar.playerApi_.mute(); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: true }); + `); break; case "unmute": webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.unMute(); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: false }); - `); + window.ytmdPlayerBar.playerApi_.unMute(); + window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: false }); + `); break; case "navigate": { @@ -816,6 +844,48 @@ window.addEventListener("load", async () => { } }); + ipcRenderer.on('ytmView:getPlaylists', async (_event, requestId) => { + const rawPlaylists = await webFrame.executeJavaScript(` + new Promise((resolve, reject) => { + var returnValue = [] + var serviceRequestEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + window.ytmdPlayerBar, + { + addToPlaylistEndpoint: { + videoId: window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails.videoId + } + } + ], + optionalAction: false, + returnValue + } + }; + window.ytmdPlayerBar.dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); + returnValue[0].ajaxPromise.then((response) => { + resolve(response.data.contents[0].addToPlaylistRenderer.playlists); + }, () => { + reject(); + }); + }); + `); + + const playlists = []; + for (const rawPlaylist of rawPlaylists) { + const playlist = rawPlaylist.playlistAddToOptionRenderer; + playlists.push({ + id: playlist.playlistId, + title: getYTMTextRun(playlist.title.runs) + }) + } + ipcRenderer.send(`ytmView:getPlaylists:response:${requestId}`, playlists); + }); + store.onDidAnyChange(newState => { if (newState.appearance.alwaysShowVolumeSlider) { const volumeSlider = document.querySelector("#volume-slider"); diff --git a/yarn.lock b/yarn.lock index 2090cd2f8..1162f83a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -336,7 +336,7 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@fastify/ajv-compiler@^3.3.1": +"@fastify/ajv-compiler@^3.5.0": version "3.5.0" resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== @@ -350,17 +350,26 @@ resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== -"@fastify/error@^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.2.0.tgz#9010e0acfe07965f5fc7d2b367f58f042d0f4106" - integrity sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ== +"@fastify/error@^3.2.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.3.0.tgz#eba790082e1144bfc8def0c2c8ef350064bc537b" + integrity sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w== -"@fastify/fast-json-stringify-compiler@^4.1.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz#52d047fac76b0d75bd660f04a5dd606659f57c5a" - integrity sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg== +"@fastify/fast-json-stringify-compiler@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz#5df89fa4d1592cbb8780f78998355feb471646d5" + integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA== + dependencies: + fast-json-stringify "^5.7.0" + +"@fastify/rate-limit@^8.0.3": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@fastify/rate-limit/-/rate-limit-8.0.3.tgz#b63b7c6122cec424da7fc5d64da5aedb4228fa9a" + integrity sha512-7wbSKXGKKLI1VkpW2XvS7SFg4n4/uzYt0YA5O2pfCcM6PYaBSV3VhSKGJ9/hJceCSH+zNEDRrWpufqxbcDkTZg== dependencies: - fast-json-stringify "^5.0.0" + fastify-plugin "^4.0.0" + ms "^2.1.3" + tiny-lru "^11.0.0" "@gar/promisify@^1.1.3": version "1.1.3" @@ -1355,10 +1364,10 @@ author-regex@^1.0.0: resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" integrity sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g== -avvio@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" - integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== +avvio@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.1.tgz#b5a482729847abb84d5aadce06511c04a0a62f82" + integrity sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw== dependencies: archy "^1.0.0" debug "^4.0.0" @@ -1861,7 +1870,7 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@^1.0.4, content-type@~1.0.4: +content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== @@ -2802,6 +2811,11 @@ extract-zip@^2.0.0, extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" +fast-content-type-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz#cddce00df7d7efb3727d375a598e4904bfcb751c" + integrity sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA== + fast-decode-uri-component@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" @@ -2828,10 +2842,10 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-json-stringify@^5.0.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz#6655cb944df8da43f6b15312a9564b81c55dadab" - integrity sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA== +fast-json-stringify@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz#b0a04c848fdeb6ecd83440c71a4db35067023bed" + integrity sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ== dependencies: "@fastify/deepmerge" "^1.0.0" ajv "^8.10.0" @@ -2867,6 +2881,11 @@ fastify-plugin@^3.0.0: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-3.0.1.tgz#79e84c29f401020f38b524f59f2402103fd21ed2" integrity sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA== +fastify-plugin@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.1.tgz#44dc6a3cc2cce0988bc09e13f160120bbd91dbee" + integrity sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ== + fastify-socket.io@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fastify-socket.io/-/fastify-socket.io-4.0.0.tgz#791c6bb9952041cb98c4cade897bfcce36857769" @@ -2874,26 +2893,27 @@ fastify-socket.io@^4.0.0: dependencies: fastify-plugin "^3.0.0" -fastify@^4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.11.0.tgz#7fa5614c81a618e67a7a467f0f1b33c43f4ff7d2" - integrity sha512-JteZ8pjEqd+6n+azQnQfSJV8MUMxAmxbvC2Dx/Mybj039Lf/u3kda9Kq84uy/huCpqCzZoyHIZS5JFGF3wLztw== +fastify@^4.16.0: + version "4.21.0" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.21.0.tgz#82f4272310c0fb7733a1a70605c57bdd1de938f2" + integrity sha512-tsu4bcwE4HetxqW8prA5fbC9bKHMYDp7jGEDWyzK1l90a3uOaLoIcQbdGcWeODNLVJviQnzh1wvIjTZE3MJFEg== dependencies: - "@fastify/ajv-compiler" "^3.3.1" - "@fastify/error" "^3.0.0" - "@fastify/fast-json-stringify-compiler" "^4.1.0" + "@fastify/ajv-compiler" "^3.5.0" + "@fastify/error" "^3.2.0" + "@fastify/fast-json-stringify-compiler" "^4.3.0" abstract-logging "^2.0.1" - avvio "^8.2.0" - content-type "^1.0.4" - find-my-way "^7.3.0" - light-my-request "^5.6.1" - pino "^8.5.0" - process-warning "^2.0.0" + avvio "^8.2.1" + fast-content-type-parse "^1.0.0" + fast-json-stringify "^5.7.0" + find-my-way "^7.6.0" + light-my-request "^5.9.1" + pino "^8.12.0" + process-warning "^2.2.0" proxy-addr "^2.0.7" rfdc "^1.3.0" secure-json-parse "^2.5.0" - semver "^7.3.7" - tiny-lru "^10.0.0" + semver "^7.5.0" + tiny-lru "^11.0.1" fastq@^1.6.0: version "1.14.0" @@ -2969,10 +2989,10 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-my-way@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.4.0.tgz#22363e6cd1c466f88883703e169a20c983f9c9cc" - integrity sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ== +find-my-way@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.6.2.tgz#4dd40200d3536aeef5c7342b10028e04cf79146c" + integrity sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw== dependencies: fast-deep-equal "^3.1.3" fast-querystring "^1.0.0" @@ -4031,10 +4051,10 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -light-my-request@^5.6.1: - version "5.8.0" - resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.8.0.tgz#93b28615d4cd134b4e2370bcf2ff7e35b51c8d29" - integrity sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg== +light-my-request@^5.9.1: + version "5.10.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.10.0.tgz#0a2bbc1d1bb573ed3b78143960920ecdc05bf157" + integrity sha512-ZU2D9GmAcOUculTTdH9/zryej6n8TzT+fNGdNtm6SDp5MMMpHrJJkvAdE3c6d8d2chE9i+a//dS9CWZtisknqA== dependencies: cookie "^0.5.0" process-warning "^2.0.0" @@ -4488,7 +4508,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -5037,10 +5057,10 @@ pino-std-serializers@^6.0.0: resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== -pino@^8.5.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.8.0.tgz#1f0d6695a224aa06afc7ad60f2ccc4772d3b9233" - integrity sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ== +pino@^8.12.0: + version "8.14.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.14.2.tgz#99148b3400527fec168691044ba367cc7b7cd605" + integrity sha512-zKu9aWeSWTy1JgvxIpZveJKKsAr4+6uNMZ0Vf0KRwzl/UNZA3XjHiIl/0WwqLMkDwuHuDkT5xAgPA2jpKq4whA== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" @@ -5162,6 +5182,11 @@ process-warning@^2.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.1.0.tgz#1e60e3bfe8183033bbc1e702c2da74f099422d1a" integrity sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg== +process-warning@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.2.0.tgz#008ec76b579820a8e5c35d81960525ca64feb626" + integrity sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg== + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -5597,7 +5622,7 @@ semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semve dependencies: lru-cache "^6.0.0" -semver@^7.3.6: +semver@^7.3.6, semver@^7.5.0: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -6135,10 +6160,10 @@ tiny-each-async@2.0.3: resolved "https://registry.yarnpkg.com/tiny-each-async/-/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" integrity sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA== -tiny-lru@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.0.1.tgz#aaf5d22207e641ed1b176ac2e616d6cc2fc9ef66" - integrity sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA== +tiny-lru@^11.0.0, tiny-lru@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.0.1.tgz#629d6ddd88bd03c0929722680167f1feadf576f2" + integrity sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg== tmp-promise@^3.0.2: version "3.0.3" From 777b229de871281727bd5eb6c92deca8237c0a43 Mon Sep 17 00:00:00 2001 From: Alipoodle Date: Sat, 29 Jul 2023 12:37:48 +0100 Subject: [PATCH 175/489] =?UTF-8?q?=F0=9F=8E=89=20Single=20Instance=20Lock?= =?UTF-8?q?,=20Disable=20Hardware=20Accelleration,=20Speaker=20Fill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Also adds Settings Reload option --- src/@types/global.d.ts | 1 + src/index.ts | 37 ++++++++++++++++++++++-- src/shared/components/Settings.vue | 45 ++++++++++++++++++++++++++++++ src/shared/store/schema.ts | 2 ++ src/windows/settings/preload.ts | 1 + 5 files changed, 83 insertions(+), 3 deletions(-) diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts index 3e7d551f5..b56b9ab6e 100644 --- a/src/@types/global.d.ts +++ b/src/@types/global.d.ts @@ -11,6 +11,7 @@ declare global { encryptString(value: string): Buffer; }; openSettingsWindow(): void; + restartApplication(): void; // Companion Authorization specific sendResult(authorized: boolean); diff --git a/src/index.ts b/src/index.ts index 0aa4d4fea..61402fc29 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,6 +35,22 @@ let lastPlaylistId = ""; let companionAuthWindowEnableTimeout: NodeJS.Timeout | null = null; +// Single Instances Lock +const gotTheLock = app.requestSingleInstanceLock(); +if (!gotTheLock) { + app.quit(); +} else { + app.on("second-instance", () => { + if (mainWindow) { + mainWindow.show(); + if (mainWindow.isMinimized()) { + mainWindow.restore(); + } + mainWindow.focus(); + } + }); +} + // Create the persistent config store const store = new ElectronStore({ watch: true, @@ -43,15 +59,17 @@ const store = new ElectronStore({ hideToTrayOnClose: false, showNotificationOnSongChange: false, startOnBoot: false, - startMinimized: false + startMinimized: false, + disableHardwareAcceleration: false }, appearance: { - alwaysShowVolumeSlider: false + alwaysShowVolumeSlider: false, }, playback: { continueWhereYouLeftOff: true, continueWhereYouLeftOffPaused: true, - progressInTaskbar: false + progressInTaskbar: false, + enableSpeakerFill: false }, integrations: { companionServerEnabled: false, @@ -137,6 +155,14 @@ store.onDidAnyChange((newState, oldState) => { registerShortcuts(); }); +if (store.get('general').disableHardwareAcceleration) { + app.disableHardwareAcceleration(); +} + +if (store.get('playback').enableSpeakerFill) { + app.commandLine.appendSwitch('try-supported-channel-layouts'); +} + // Integrations setup // CompanionServer /*companionServer.addEventListener((command, value) => { @@ -634,6 +660,11 @@ app.on("ready", () => { } }); + ipcMain.on('settingsWindow:restartapplication', () => { + app.relaunch(); + app.exit(0); + }); + // Handle ytm view ipc ipcMain.on("ytmView:loaded", () => { if (ytmView !== null && mainWindow !== null) { diff --git a/src/shared/components/Settings.vue b/src/shared/components/Settings.vue index be8687262..98e6c4909 100644 --- a/src/shared/components/Settings.vue +++ b/src/shared/components/Settings.vue @@ -4,6 +4,7 @@ import KeybindInput from "../../shared/components/KeybindInput.vue"; import { StoreSchema } from "../store/schema"; const currentTab = ref(1); +const requiresRestart = ref(false); const store = window.ytmd.store; const safeStorage = window.ytmd.safeStorage; @@ -18,11 +19,14 @@ const hideToTrayOnClose = ref(general.hideToTrayOnClose); const showNotificationOnSongChange = ref(general.showNotificationOnSongChange); const startOnBoot = ref(general.startOnBoot); const startMinimized = ref(general.startMinimized); +const disableHardwareAcceleration = ref(general.disableHardwareAcceleration); + const alwaysShowVolumeSlider = ref(appearance.alwaysShowVolumeSlider); const continueWhereYouLeftOff = ref(playback.continueWhereYouLeftOff); const continueWhereYouLeftOffPaused = ref(playback.continueWhereYouLeftOffPaused); const progressInTaskbar = ref(playback.progressInTaskbar); +const enableSpeakerFill = ref(playback.enableSpeakerFill); const companionServerEnabled = ref(integrations.companionServerEnabled); const companionServerAuthWindowEnabled = ref( @@ -43,11 +47,14 @@ store.onDidAnyChange(async (newState, oldState) => { showNotificationOnSongChange.value = newState.general.showNotificationOnSongChange; startOnBoot.value = newState.general.startOnBoot; startMinimized.value = newState.general.startMinimized; + disableHardwareAcceleration.value = newState.general.disableHardwareAcceleration; + alwaysShowVolumeSlider.value = newState.appearance.alwaysShowVolumeSlider; continueWhereYouLeftOff.value = newState.playback.continueWhereYouLeftOff; continueWhereYouLeftOffPaused.value = newState.playback.continueWhereYouLeftOffPaused; progressInTaskbar.value = newState.playback.progressInTaskbar; + enableSpeakerFill.value = newState.playback.enableSpeakerFill; companionServerEnabled.value = newState.integrations.companionServerEnabled; companionServerAuthWindowEnabled.value = (await safeStorage.decryptString(newState.integrations.companionServerAuthWindowEnabled)) === "true" ? true : false; @@ -67,12 +74,14 @@ async function settingsChanged() { store.set("general.showNotificationOnSongChange", showNotificationOnSongChange.value); store.set("general.startOnBoot", startOnBoot.value); store.set("general.startMinimized", startMinimized.value); + store.set("general.disableHardwareAcceleration", disableHardwareAcceleration.value); store.set("appearance.alwaysShowVolumeSlider", alwaysShowVolumeSlider.value); store.set("playback.continueWhereYouLeftOff", continueWhereYouLeftOff.value); store.set("playback.continueWhereYouLeftOffPaused", continueWhereYouLeftOffPaused.value); store.set("playback.progressInTaskbar", progressInTaskbar.value); + store.set("playback.enableSpeakerFill", enableSpeakerFill.value); store.set("integrations.companionServerEnabled", companionServerEnabled.value); store.set("integrations.companionServerAuthWindowEnabled", await safeStorage.encryptString(companionServerAuthWindowEnabled.value.toString())); @@ -87,9 +96,18 @@ async function settingsChanged() { store.set("shortcuts.volumeDown", shortcutVolumeDown.value); } +async function settingChangedRequiresRestart() { + requiresRestart.value = true; + settingsChanged(); +} + function changeTab(newTab: number) { currentTab.value = newTab; } + +function restartApplication() { + window.ytmd.restartApplication(); +} diff --git a/src/shared/store/schema.ts b/src/shared/store/schema.ts index c2471d851..09bcb4701 100644 --- a/src/shared/store/schema.ts +++ b/src/shared/store/schema.ts @@ -4,6 +4,7 @@ export type StoreSchema = { showNotificationOnSongChange: boolean; startOnBoot: boolean; startMinimized: boolean; + disableHardwareAcceleration: boolean; }; appearance: { alwaysShowVolumeSlider: boolean; @@ -12,6 +13,7 @@ export type StoreSchema = { continueWhereYouLeftOff: boolean; continueWhereYouLeftOffPaused: boolean; progressInTaskbar: boolean; + enableSpeakerFill: boolean; }; integrations: { companionServerEnabled: boolean; diff --git a/src/windows/settings/preload.ts b/src/windows/settings/preload.ts index c0466bde8..79d2e7b74 100644 --- a/src/windows/settings/preload.ts +++ b/src/windows/settings/preload.ts @@ -17,6 +17,7 @@ contextBridge.exposeInMainWorld("ytmd", { decryptString: async (value: string) => await ipcRenderer.invoke("safeStorage:decryptString", value), encryptString: async (value: string) => await ipcRenderer.invoke("safeStorage:encryptString", value) }, + restartApplication: () => ipcRenderer.send("settingsWindow:restartapplication"), minimizeWindow: () => ipcRenderer.send("settingsWindow:minimize"), maximizeWindow: () => ipcRenderer.send("settingsWindow:maximize"), restoreWindow: () => ipcRenderer.send("settingsWindow:restore"), From 3894e3144b99671c161eb63de165acbba76c2b67 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Sun, 30 Jul 2023 22:30:39 -0500 Subject: [PATCH 176/489] =?UTF-8?q?=E2=9C=A8=20setVolume=20&=20repeatmode?= =?UTF-8?q?=20commands=20for=20companion=20server=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + .../companion-server/api/v1/index.ts | 77 +- src/ytmview/preload.ts | 1190 +++++++++-------- yarn.lock | 2 +- 4 files changed, 688 insertions(+), 582 deletions(-) diff --git a/package.json b/package.json index 02e8bcd0c..03c4e500f 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "vue-template-compiler": "^2.7.14" }, "dependencies": { + "@fastify/error": "^3.3.0", "@fastify/rate-limit": "^8.0.3", "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.0", diff --git a/src/integrations/companion-server/api/v1/index.ts b/src/integrations/companion-server/api/v1/index.ts index 9c99bb749..1cab34759 100644 --- a/src/integrations/companion-server/api/v1/index.ts +++ b/src/integrations/companion-server/api/v1/index.ts @@ -6,6 +6,7 @@ import playerStateStore from "../../../../player-state-store"; import { createAuthToken, getIsTemporaryAuthCodeValidAndRemove, getTemporaryAuthCode, isAuthValid, isAuthValidMiddleware } from "../../shared/auth"; import fastifyRateLimit from '@fastify/rate-limit'; import crypto from 'crypto'; +import createError from "@fastify/error"; declare const AUTHORIZE_COMPANION_WINDOW_WEBPACK_ENTRY: string; declare const AUTHORIZE_COMPANION_WINDOW_PRELOAD_WEBPACK_ENTRY: string; @@ -20,6 +21,14 @@ const mapThumbnails = (thumbnail: any) => { }; }; +function getYTMTextRun(runs: any[]) { + let final = ""; + for (const run of runs) { + final += run.text; + } + return final; +} + const mapQueueItems = (item: any) => { let playlistPanelVideoRenderer; if (item.playlistPanelVideoRenderer) playlistPanelVideoRenderer = item.playlistPanelVideoRenderer; @@ -31,13 +40,15 @@ const mapQueueItems = (item: any) => { return { thubmnails: playlistPanelVideoRenderer.thumbnail.thumbnails.map(mapThumbnails), - title: playlistPanelVideoRenderer.title.runs[0].text, - author: playlistPanelVideoRenderer.shortBylineText.runs[0].text, - duration: playlistPanelVideoRenderer.lengthText.runs[0].text + title: getYTMTextRun(playlistPanelVideoRenderer.title.runs), + author: getYTMTextRun(playlistPanelVideoRenderer.shortBylineText.runs), + duration: getYTMTextRun(playlistPanelVideoRenderer.lengthText.runs), + selected: playlistPanelVideoRenderer.selected }; }; const transformPlayerState = (state: any) => { + const queueItems = state.queue ? state.queue.items.map(mapQueueItems) : null; return { player: { trackState: state.trackState, @@ -46,15 +57,17 @@ const transformPlayerState = (state: any) => { ? { autoplay: state.queue.autoplay, shuffleEnabled: state.queue.shuffleEnabled, - items: state.queue.items.map(mapQueueItems), + items: queueItems, + // automixItems comes from an autoplay queue that isn't pushed yet to the main queue. A radio will never have automixItems (weird YTM distinction from autoplay vs radio) automixItems: state.queue.automixItems.map(mapQueueItems), isGenerating: state.queue.isGenerating, + // Observed state seems to be a radio having infinite true while an autoplay queue has infinite false isInfinite: state.queue.isInfinite, repeatMode: state.queue.repeatMode, - // Developer note: - // selectedItemIndex can be 0 when the current video is not 0 in the queue. - // YouTube Music usually only does this on first navigations if going directly to a video + playlist (possibly within new queues as well on a playlist) - selectedItemIndex: state.queue.selectedItemIndex + // YTM has a native selectedItemIndex property but that isn't updated correctly so we calculate it ourselves + selectedItemIndex: queueItems.findIndex((item: any) => { + return item.selected + }) } : null }, @@ -77,10 +90,13 @@ interface CompanionServerAPIv1Options extends FastifyPluginOptions { getYtmView: () => BrowserView; } -type RemoteCommand = "playPause" | "play" | "pause" | "volumeUp" | "volumeDown" | "mute" | "unmute" | "next" | "previous"; +const InvalidCommandError = createError("INVALID_COMMAND", "Command '%s' is invalid", 400); +const InvalidRepeatModeError = createError("INVALID_REPEAT_MODE", "Repeat mode '%s' is invalid", 400); + +type RemoteCommand = "playPause" | "play" | "pause" | "volumeUp" | "volumeDown" | "setVolume" | "mute" | "unmute" | "next" | "previous" | "repeatMode"; const CompanionServerAPIv1: FastifyPluginCallback = async (fastify, options, next) => { - const sendCommand = (command: RemoteCommand) => { + const sendCommand = (command: RemoteCommand, value: any) => { const ytmView = options.getYtmView(); if (ytmView) { switch (command) { @@ -109,6 +125,17 @@ const CompanionServerAPIv1: FastifyPluginCallback = break; } + case "setVolume": { + const valueInt: number = parseInt(value); + // Check if Volume is a number and between 0 and 100 + if (isNaN(valueInt) || valueInt < 0 || valueInt > 100) { + throw new Error("Invalid volume"); + } + + ytmView.webContents.send("remoteControl:execute", "setVolume", valueInt); + break; + } + case "mute": { ytmView.webContents.send("remoteControl:execute", "mute"); break; @@ -128,6 +155,31 @@ const CompanionServerAPIv1: FastifyPluginCallback = ytmView.webContents.send("remoteControl:execute", "previous"); break; } + + case "repeatMode": { + switch (value) { + case "NONE": { + ytmView.webContents.send("remoteControl:execute", "repeatMode", "NONE"); + break; + } + case "ALL": { + ytmView.webContents.send("remoteControl:execute", "repeatMode", "ALL"); + break; + } + case "ONE": { + ytmView.webContents.send("remoteControl:execute", "repeatMode", "ONE"); + break; + } + default: { + throw new InvalidRepeatModeError(value); + } + } + break; + } + + default: { + throw new InvalidCommandError(command); + } } } } @@ -341,11 +393,10 @@ const CompanionServerAPIv1: FastifyPluginCallback = } ); - fastify.post<{ Body: { command: RemoteCommand } }>( + fastify.post<{ Body: { command: RemoteCommand, data: any } }>( "/command", { config: { - // API users: You may also use the websocket to perform remote command options rateLimit: { hook: 'preHandler', max: 2, @@ -360,7 +411,7 @@ const CompanionServerAPIv1: FastifyPluginCallback = } }, (request, response) => { - sendCommand(request.body.command); + sendCommand(request.body.command, request.body.data); response.code(204).send(); } ); diff --git a/src/ytmview/preload.ts b/src/ytmview/preload.ts index 65700823c..ecbf39b69 100644 --- a/src/ytmview/preload.ts +++ b/src/ytmview/preload.ts @@ -1,3 +1,13 @@ +// IMPORTANT NOTES ABOUT THIS FILE +// +// This file contains all logic related to interacting with YTM itself and works under the assumption of a trusted environment and data. +// Anything passed to this file does not necessarily need to be or will be validated. +// +// If adding new things to this file ensure best security practices are followed. +// - executeJavaScript is used to enter the main world when you need to interact with YTM APIs or anything from YTM that would otherwise need the prototypes or events from YTM. +// - Always wrap your executeJavaScript code in brackets to scope it so you don't accidentally make variables or other data global +// - Add functions to exposeInMainWorld when you need to call back to the main program. By nature you should not trust data coming from this. + import { contextBridge, ipcRenderer, webFrame } from "electron"; import Store from "../shared/store/renderer"; import { StoreSchema } from "../shared/store/schema"; @@ -18,58 +28,58 @@ function createStyleSheet() { const css = document.createElement("style"); css.appendChild( document.createTextNode(` - .ytmd-history-back, .ytmd-history-forward { - cursor: pointer; - margin: 0 18px 0 2px; - font-size: 24px; - color: rgba(255, 255, 255, 0.5); - } + .ytmd-history-back, .ytmd-history-forward { + cursor: pointer; + margin: 0 18px 0 2px; + font-size: 24px; + color: rgba(255, 255, 255, 0.5); + } - .ytmd-history-back.pivotbar, .ytmd-history-forward.pivotbar { - padding-top: 12px; - } + .ytmd-history-back.pivotbar, .ytmd-history-forward.pivotbar { + padding-top: 12px; + } - .ytmd-history-forward { - transform: rotate(180deg); - } + .ytmd-history-forward { + transform: rotate(180deg); + } - .ytmd-history-back.disabled, .ytmd-history-forward.disabled { - cursor: not-allowed; - } + .ytmd-history-back.disabled, .ytmd-history-forward.disabled { + cursor: not-allowed; + } - .ytmd-history-back:hover:not(.disabled), .ytmd-history-forward:hover:not(.disabled) { - color: #FFFFFF; - } + .ytmd-history-back:hover:not(.disabled), .ytmd-history-forward:hover:not(.disabled) { + color: #FFFFFF; + } - .ytmd-hidden { - display: none; - } + .ytmd-hidden { + display: none; + } - .ytmd-persist-volume-slider { - opacity: 1 !important; - pointer-events: initial !important; - } - - .ytmd-player-bar-control.library-button { - margin-left: 8px; - } + .ytmd-persist-volume-slider { + opacity: 1 !important; + pointer-events: initial !important; + } + + .ytmd-player-bar-control.library-button { + margin-left: 8px; + } - .ytmd-player-bar-control.library-button.hidden { - display: none; - } + .ytmd-player-bar-control.library-button.hidden { + display: none; + } - .ytmd-player-bar-control.playlist-button { - margin-left: 8px; - } + .ytmd-player-bar-control.playlist-button { + margin-left: 8px; + } - .ytmd-player-bar-control.playlist-button.hidden { - display: none; - } + .ytmd-player-bar-control.playlist-button.hidden { + display: none; + } - .ytmd-player-bar-control.sleep-timer-button.active { - color: #FFFFFF; - } - `) + .ytmd-player-bar-control.sleep-timer-button.active { + color: #FFFFFF; + } + `) ); document.head.appendChild(css); } @@ -145,485 +155,491 @@ function createKeyboardNavigation() { function createAdditionalPlayerBarControls() { webFrame.executeJavaScript(` - window.ytmdControlButtons = {}; + { + let ytmdControlButtons = {} - let currentVideoId = ""; - - let libraryFeedbackDefaultToken = ""; - let libraryFeedbackToggledToken = ""; - - let sleepTimerTimeout = null; - - let libraryButton = document.createElement("yt-button-shape"); - libraryButton.classList.add("ytmd-player-bar-control"); - libraryButton.classList.add("library-button"); - libraryButton.set('data', { - focused: false, - iconPosition: "icon-only", - onTap: function() { - var closePopoupEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-close-popups-action', - args: [ - ['ytmusic-menu-popup-renderer'] - ], - optionalAction: false, - returnValue: [] - } - }; - var feedbackEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-service-request', - args: [ - this, - { - feedbackEndpoint: { - feedbackToken: this.data.toggled ? libraryFeedbackToggledToken : libraryFeedbackDefaultToken - } - } - ], - optionalAction: false, - returnValue: [] - } - }; - this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); - this.dispatchEvent(new CustomEvent('yt-action', feedbackEvent)); - window.ytmdPlayerBar.store.dispatch({ type: "SET_FEEDBACK_TOGGLE_STATE", payload: { defaultEndpointFeedbackToken: libraryFeedbackDefaultToken, isToggled: !this.data.toggled } }) - }.bind(libraryButton), - style: "mono", - toggled: false, - type: "text" - }); - window.ytmdPlayerBar.querySelector("ytmusic-like-button-renderer").insertAdjacentElement("afterend", libraryButton); - - let playlistButton = document.createElement("yt-button-shape"); - playlistButton.classList.add("ytmd-player-bar-control"); - playlistButton.classList.add("playlist-button"); - playlistButton.set('icon', "yt-sys-icons:playlist_add"); - playlistButton.set('data', { - focused: false, - iconPosition: "icon-only", - onTap: function() { - var closePopoupEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-close-popups-action', - args: [ - ['ytmusic-menu-popup-renderer'] - ], - optionalAction: false, - returnValue: [] - } - }; - var returnValue = [] - var serviceRequestEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-service-request', - args: [ - this, - { - addToPlaylistEndpoint: { - videoId: currentVideoId - } - } - ], - optionalAction: false, - returnValue - } - }; - this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); - this.dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); - returnValue[0].ajaxPromise.then((response) => { - var addToPlaylistEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-open-popup-action', - args: [ - { - openPopupAction: { - popup: { - addToPlaylistRenderer: response.data.contents[0].addToPlaylistRenderer - }, - popupType: "DIALOG" - } - }, - this - ], - optionalAction: false, - returnValue: [] - } - }; - this.dispatchEvent(new CustomEvent('yt-action', addToPlaylistEvent)); - this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); - }, () => { - // service request errored - }, this); - }.bind(playlistButton), - style: "mono", - toggled: false, - type: "text" - }); - libraryButton.insertAdjacentElement("afterend", playlistButton); + let currentVideoId = ""; + + let libraryFeedbackDefaultToken = ""; + let libraryFeedbackToggledToken = ""; + + let sleepTimerTimeout = null; + + let libraryButton = document.createElement("yt-button-shape"); + libraryButton.classList.add("ytmd-player-bar-control"); + libraryButton.classList.add("library-button"); + libraryButton.set('data', { + focused: false, + iconPosition: "icon-only", + onTap: function() { + var closePopoupEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-close-popups-action', + args: [ + ['ytmusic-menu-popup-renderer'] + ], + optionalAction: false, + returnValue: [] + } + }; + var feedbackEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + this, + { + feedbackEndpoint: { + feedbackToken: this.data.toggled ? libraryFeedbackToggledToken : libraryFeedbackDefaultToken + } + } + ], + optionalAction: false, + returnValue: [] + } + }; + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + this.dispatchEvent(new CustomEvent('yt-action', feedbackEvent)); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: "SET_FEEDBACK_TOGGLE_STATE", payload: { defaultEndpointFeedbackToken: libraryFeedbackDefaultToken, isToggled: !this.data.toggled } }) + }.bind(libraryButton), + style: "mono", + toggled: false, + type: "text" + }); + document.querySelector("ytmusic-player-bar").querySelector("ytmusic-like-button-renderer").insertAdjacentElement("afterend", libraryButton); + + let playlistButton = document.createElement("yt-button-shape"); + playlistButton.classList.add("ytmd-player-bar-control"); + playlistButton.classList.add("playlist-button"); + playlistButton.set('icon', "yt-sys-icons:playlist_add"); + playlistButton.set('data', { + focused: false, + iconPosition: "icon-only", + onTap: function() { + var closePopoupEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-close-popups-action', + args: [ + ['ytmusic-menu-popup-renderer'] + ], + optionalAction: false, + returnValue: [] + } + }; + var returnValue = [] + var serviceRequestEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + this, + { + addToPlaylistEndpoint: { + videoId: currentVideoId + } + } + ], + optionalAction: false, + returnValue + } + }; + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + this.dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); + returnValue[0].ajaxPromise.then((response) => { + var addToPlaylistEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + addToPlaylistRenderer: response.data.contents[0].addToPlaylistRenderer + }, + popupType: "DIALOG" + } + }, + this + ], + optionalAction: false, + returnValue: [] + } + }; + this.dispatchEvent(new CustomEvent('yt-action', addToPlaylistEvent)); + this.dispatchEvent(new CustomEvent('yt-action', closePopoupEvent)); + }, () => { + // service request errored + }, this); + }.bind(playlistButton), + style: "mono", + toggled: false, + type: "text" + }); + libraryButton.insertAdjacentElement("afterend", playlistButton); - window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { - if (event.type === 'dataloaded' && event.playertype === 1) { - currentVideoId = window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails.videoId; - } - }); + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onVideoDataChange', (event) => { + if (event.type === 'dataloaded' && event.playertype === 1) { + currentVideoId = document.querySelector("ytmusic-player-bar").playerApi_.getPlayerResponse().videoDetails.videoId; + } + }); - let rightControls = document.querySelector("ytmusic-player-bar").querySelector(".right-controls-buttons"); - let sleepTimerButton = document.createElement("tp-yt-paper-icon-button"); - sleepTimerButton.setAttribute("title", "Sleep timer off"); - sleepTimerButton.classList.add("ytmusic-player-bar"); - sleepTimerButton.classList.add("ytmd-player-bar-control"); - sleepTimerButton.classList.add("sleep-timer-button"); - sleepTimerButton.set("icon", "yt-sys-icons:stopwatch"); - sleepTimerButton.onclick = () => { - sleepTimerButton.dispatchEvent(new CustomEvent('yt-action', { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-open-popup-action', - args: [ - { - openPopupAction: { - popup: { - menuPopupRenderer: { - accessibilityData: { - label: "Action menu" - }, - items: [ - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 5 - } - }, - text: { - runs: [ - { - text: "5 minutes" - } - ] - } - }, - }, - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 10 - } - }, - text: { - runs: [ - { - text: "10 minutes" - } - ] - } - }, - }, - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 15 - } - }, - text: { - runs: [ - { - text: "15 minutes" - } - ] - } - }, - }, - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 30 - } - }, - text: { - runs: [ - { - text: "30 minutes" - } - ] - } - }, - }, - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 45 - } - }, - text: { - runs: [ - { - text: "45 minutes" - } - ] - } - }, - }, - { - menuServiceItemRenderer: { - icon: { - iconType: "CLOCK" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 60 - } - }, - text: { - runs: [ - { - text: "1 hour" - } - ] - } - }, - }, - (sleepTimerTimeout !== null) ? { - menuServiceItemRenderer: { - icon: { - iconType: "DELETE" - }, - serviceEndpoint: { - ytmdSleepTimerServiceEndpoint: { - time: 0 - } - }, - text: { - runs: [ - { - text: "Clear sleep timer" - } - ] - } - }, - } : {} - ] - } - }, - popupType: "DROPDOWN" - } - }, - sleepTimerButton - ], - optionalAction: false, - returnValue: [] - } - })); - }; - rightControls.querySelector(".shuffle").insertAdjacentElement("afterend", sleepTimerButton); - - window.addEventListener("yt-action", (e) => { - if (e.detail.actionName === "yt-service-request") { - if (e.detail.args[1].ytmdSleepTimerServiceEndpoint) { - if (sleepTimerTimeout !== null) { - clearTimeout(sleepTimerTimeout); - sleepTimerTimeout = null; - if (sleepTimerButton.classList.contains("active")) { - sleepTimerButton.classList.remove("active"); - sleepTimerButton.setAttribute("title", "Sleep timer off") - } - } - - if (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time > 0) { - if (!sleepTimerButton.classList.contains("active")) { - sleepTimerButton.classList.add("active") - sleepTimerButton.setAttribute("title", "Sleep timer " + e.detail.args[1].ytmdSleepTimerServiceEndpoint.time + " minutes") - } - - sleepTimerTimeout = setTimeout(() => { - sleepTimerTimeout = null; - sleepTimerButton.classList.remove("active"); - sleepTimerButton.setAttribute("title", "Sleep timer off"); - - if (window.ytmdPlayerBar.playing_) { - window.ytmdPlayerBar.playerApi_.pauseVideo() - - document.body.dispatchEvent(new CustomEvent('yt-action', { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-open-popup-action', - args: [ - { - openPopupAction: { - popup: { - dismissableDialogRenderer: { - title: { - runs: [ - { - text: "Music paused" - } - ] - }, - dialogMessages: [ - { - runs: [ - { - text: "Sleep timer expired and your music has been paused" - } - ] - } - ], - } - }, - popupType: "DIALOG", - } - }, - document.querySelector("ytmusic-app") - ], - optionalAction: false, - returnValue: [] - } - })); - } - }, (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time * 1000) * 60); - } - } - } - }); + let rightControls = document.querySelector("ytmusic-player-bar").querySelector(".right-controls-buttons"); + let sleepTimerButton = document.createElement("tp-yt-paper-icon-button"); + sleepTimerButton.setAttribute("title", "Sleep timer off"); + sleepTimerButton.classList.add("ytmusic-player-bar"); + sleepTimerButton.classList.add("ytmd-player-bar-control"); + sleepTimerButton.classList.add("sleep-timer-button"); + sleepTimerButton.set("icon", "yt-sys-icons:stopwatch"); + sleepTimerButton.onclick = () => { + sleepTimerButton.dispatchEvent(new CustomEvent('yt-action', { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + menuPopupRenderer: { + accessibilityData: { + label: "Action menu" + }, + items: [ + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 5 + } + }, + text: { + runs: [ + { + text: "5 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 10 + } + }, + text: { + runs: [ + { + text: "10 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 15 + } + }, + text: { + runs: [ + { + text: "15 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 30 + } + }, + text: { + runs: [ + { + text: "30 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 45 + } + }, + text: { + runs: [ + { + text: "45 minutes" + } + ] + } + }, + }, + { + menuServiceItemRenderer: { + icon: { + iconType: "CLOCK" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 60 + } + }, + text: { + runs: [ + { + text: "1 hour" + } + ] + } + }, + }, + (sleepTimerTimeout !== null) ? { + menuServiceItemRenderer: { + icon: { + iconType: "DELETE" + }, + serviceEndpoint: { + ytmdSleepTimerServiceEndpoint: { + time: 0 + } + }, + text: { + runs: [ + { + text: "Clear sleep timer" + } + ] + } + }, + } : {} + ] + } + }, + popupType: "DROPDOWN" + } + }, + sleepTimerButton + ], + optionalAction: false, + returnValue: [] + } + })); + }; + rightControls.querySelector(".shuffle").insertAdjacentElement("afterend", sleepTimerButton); + + window.addEventListener("yt-action", (e) => { + if (e.detail.actionName === "yt-service-request") { + if (e.detail.args[1].ytmdSleepTimerServiceEndpoint) { + if (sleepTimerTimeout !== null) { + clearTimeout(sleepTimerTimeout); + sleepTimerTimeout = null; + if (sleepTimerButton.classList.contains("active")) { + sleepTimerButton.classList.remove("active"); + sleepTimerButton.setAttribute("title", "Sleep timer off") + } + } + + if (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time > 0) { + if (!sleepTimerButton.classList.contains("active")) { + sleepTimerButton.classList.add("active") + sleepTimerButton.setAttribute("title", "Sleep timer " + e.detail.args[1].ytmdSleepTimerServiceEndpoint.time + " minutes") + } + + sleepTimerTimeout = setTimeout(() => { + sleepTimerTimeout = null; + sleepTimerButton.classList.remove("active"); + sleepTimerButton.setAttribute("title", "Sleep timer off"); + + if (document.querySelector("ytmusic-player-bar").playing_) { + document.querySelector("ytmusic-player-bar").playerApi_.pauseVideo() + + document.body.dispatchEvent(new CustomEvent('yt-action', { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-open-popup-action', + args: [ + { + openPopupAction: { + popup: { + dismissableDialogRenderer: { + title: { + runs: [ + { + text: "Music paused" + } + ] + }, + dialogMessages: [ + { + runs: [ + { + text: "Sleep timer expired and your music has been paused" + } + ] + } + ], + } + }, + popupType: "DIALOG", + } + }, + document.querySelector("ytmusic-app") + ], + optionalAction: false, + returnValue: [] + } + })); + } + }, (e.detail.args[1].ytmdSleepTimerServiceEndpoint.time * 1000) * 60); + } + } + } + }); - window.ytmdPlayerBar.store.subscribe(() => { - let state = window.ytmdPlayerBar.store.getState(); + document.querySelector("ytmusic-player-bar").store.subscribe(() => { + let state = document.querySelector("ytmusic-player-bar").store.getState(); - // Update library button for current data - const currentMenu = window.ytmdPlayerBar.getMenuRenderer(); - if (currentMenu) { - if (playlistButton.classList.contains("hidden")) { - playlistButton.classList.remove("hidden"); - } + // Update library button for current data + const currentMenu = document.querySelector("ytmusic-player-bar").getMenuRenderer(); + if (currentMenu) { + if (playlistButton.classList.contains("hidden")) { + playlistButton.classList.remove("hidden"); + } - for (let i = 0; i < currentMenu.items.length; i++) { - const item = currentMenu.items[i]; - if (item.toggleMenuServiceItemRenderer) { - if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED" || item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { - libraryFeedbackDefaultToken = item.toggleMenuServiceItemRenderer.defaultServiceEndpoint.feedbackEndpoint.feedbackToken; - libraryFeedbackToggledToken = item.toggleMenuServiceItemRenderer.toggledServiceEndpoint.feedbackEndpoint.feedbackToken; - - if (state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== undefined && state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== null) { - libraryButton.set("data.toggled", state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken]); - } else { - libraryButton.set("data.toggled", false); - } - - if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED") { - // Default value is saved to library (false == remove from library, true == add to library) - if (libraryButton.data.toggled) { - libraryButton.set("icon", "yt-sys-icons:library_add"); - } else { - libraryButton.set("icon", "yt-sys-icons:library_saved"); - } - } else if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { - // Default value is add to library (false == add to library, true == remove from library) - if (libraryButton.data.toggled) { - libraryButton.set("icon", "yt-sys-icons:library_saved"); - } else { - libraryButton.set("icon", "yt-sys-icons:library_add"); - } - } - - if (libraryButton.classList.contains("hidden")) { - libraryButton.classList.remove("hidden"); - } - - break; - } - } - } - } else { - if (!libraryButton.classList.contains("hidden")) { - libraryButton.classList.add("hidden"); - } - if (!playlistButton.classList.contains("hidden")) { - playlistButton.classList.add("hidden"); - } - } - }); + for (let i = 0; i < currentMenu.items.length; i++) { + const item = currentMenu.items[i]; + if (item.toggleMenuServiceItemRenderer) { + if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED" || item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { + libraryFeedbackDefaultToken = item.toggleMenuServiceItemRenderer.defaultServiceEndpoint.feedbackEndpoint.feedbackToken; + libraryFeedbackToggledToken = item.toggleMenuServiceItemRenderer.toggledServiceEndpoint.feedbackEndpoint.feedbackToken; + + if (state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== undefined && state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken] !== null) { + libraryButton.set("data.toggled", state.toggleStates.feedbackToggleStates[libraryFeedbackDefaultToken]); + } else { + libraryButton.set("data.toggled", false); + } + + if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_SAVED") { + // Default value is saved to library (false == remove from library, true == add to library) + if (libraryButton.data.toggled) { + libraryButton.set("icon", "yt-sys-icons:library_add"); + } else { + libraryButton.set("icon", "yt-sys-icons:library_saved"); + } + } else if (item.toggleMenuServiceItemRenderer.defaultIcon.iconType === "LIBRARY_ADD") { + // Default value is add to library (false == add to library, true == remove from library) + if (libraryButton.data.toggled) { + libraryButton.set("icon", "yt-sys-icons:library_saved"); + } else { + libraryButton.set("icon", "yt-sys-icons:library_add"); + } + } + + if (libraryButton.classList.contains("hidden")) { + libraryButton.classList.remove("hidden"); + } + + break; + } + } + } + } else { + if (!libraryButton.classList.contains("hidden")) { + libraryButton.classList.add("hidden"); + } + if (!playlistButton.classList.contains("hidden")) { + playlistButton.classList.add("hidden"); + } + } + }); - window.ytmdControlButtons.libraryButton = libraryButton; - `); + ytmdControlButtons.libraryButton = libraryButton; + } + `); } function hideChromecastButton() { webFrame.executeJavaScript(` - window.ytmdPlayerBar.store.dispatch({ type: 'SET_CAST_AVAILABLE', payload: false }); - `); + { + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_CAST_AVAILABLE', payload: false }); + } + `); } function hookPlayerApiEvents() { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.addEventListener('onVideoProgress', (progress) => { window.ytmd.sendVideoProgress(progress) }); - window.ytmdPlayerBar.playerApi_.addEventListener('onStateChange', (state) => { window.ytmd.sendVideoState(state) }); - window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()) } }); - window.ytmdPlayerBar.playerApi_.addEventListener('onAdStart', () => { window.ytmd.sendAdState(true) }); - window.ytmdPlayerBar.playerApi_.addEventListener('onAdEnd', () => { window.ytmd.sendAdState(false) }); - window.ytmdPlayerBar.store.subscribe(() => { - // We don't want to see everything in the store as there can be some sensitive data so we only send what's necessary to operate - let state = window.ytmdPlayerBar.store.getState(); - window.ytmd.sendStoreUpdate(state.queue) - }); - window.addEventListener('yt-action', e => { - if (e.detail.actionName === 'yt-service-request') { - if (e.detail.args[1].createPlaylistServiceEndpoint) { - let title = e.detail.args[2].create_playlist_title; - let returnValue = e.detail.returnValue; - returnValue[0].ajaxPromise.then(response => { - let id = response.data.playlistId - window.ytmd.sendCreatePlaylistObservation({ - title, - id - }); - }) - } - } else if (e.detail.actionName === 'yt-handle-playlist-deletion-command') { - let playlistId = e.detail.args[0].handlePlaylistDeletionCommand.playlistId; - window.ytmd.sendDeletePlaylistObservation(playlistId); + { + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onVideoProgress', (progress) => { window.ytmd.sendVideoProgress(progress) }); + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onStateChange', (state) => { window.ytmd.sendVideoState(state) }); + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onVideoDataChange', (event) => { if (event.type === 'dataloaded' && event.playertype === 1) { window.ytmd.sendVideoData(document.querySelector("ytmusic-player-bar").playerApi_.getPlayerResponse().videoDetails, document.querySelector("ytmusic-player-bar").playerApi_.getPlaylistId()) } }); + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onAdStart', () => { window.ytmd.sendAdState(true) }); + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onAdEnd', () => { window.ytmd.sendAdState(false) }); + document.querySelector("ytmusic-player-bar").store.subscribe(() => { + // We don't want to see everything in the store as there can be some sensitive data so we only send what's necessary to operate + let state = document.querySelector("ytmusic-player-bar").store.getState(); + window.ytmd.sendStoreUpdate(state.queue) + }); + window.addEventListener('yt-action', e => { + if (e.detail.actionName === 'yt-service-request') { + if (e.detail.args[1].createPlaylistServiceEndpoint) { + let title = e.detail.args[2].create_playlist_title; + let returnValue = e.detail.returnValue; + returnValue[0].ajaxPromise.then(response => { + let id = response.data.playlistId + window.ytmd.sendCreatePlaylistObservation({ + title, + id + }); + }) } - }); - `); + } else if (e.detail.actionName === 'yt-handle-playlist-deletion-command') { + let playlistId = e.detail.args[0].handlePlaylistDeletionCommand.playlistId; + window.ytmd.sendDeletePlaylistObservation(playlistId); + } + }); + } + `); } function getYTMTextRun(runs: any[]) { @@ -653,8 +669,10 @@ window.addEventListener("load", async () => { await new Promise(resolve => { const interval = setInterval(async () => { const playerApiReady: boolean = await webFrame.executeJavaScript(` - document.querySelector("ytmusic-player-bar").playerApi_.isReady(); - `); + { + document.querySelector("ytmusic-player-bar").playerApi_.isReady(); + } + `); if (materialSymbolsLoaded && playerApiReady) { clearInterval(interval); @@ -663,10 +681,6 @@ window.addEventListener("load", async () => { }, 250); }); - await webFrame.executeJavaScript(` - window.ytmdPlayerBar = document.querySelector("ytmusic-player-bar"); - `); - createStyleSheet(); createNavigationMenuArrows(); createKeyboardNavigation(); @@ -683,15 +697,17 @@ window.addEventListener("load", async () => { if (!state.lastUrl.startsWith("https://music.youtube.com/watch") && state.lastVideoId) { if (continueWhereYouLeftOffPaused) { webFrame.executeJavaScript(` - // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon - let callback = (event) => { - if (event.type === 'dataloaded' && event.playertype === 1) { - window.ytmdPlayerBar.playerApi_.pauseVideo(); - window.ytmdPlayerBar.playerApi_.removeEventListener('onVideoDataChange', callback); - } - } - window.ytmdPlayerBar.playerApi_.addEventListener('onVideoDataChange', callback); - `); + { + // The reason we wait for video data to appear before pausing instead of pausing immediately is because the YTM UI will have a missing play/pause button icon + let callback = (event) => { + if (event.type === 'dataloaded' && event.playertype === 1) { + document.querySelector("ytmusic-player-bar").playerApi_.pauseVideo(); + document.querySelector("ytmusic-player-bar").playerApi_.removeEventListener('onVideoDataChange', callback); + } + } + document.querySelector("ytmusic-player-bar").playerApi_.addEventListener('onVideoDataChange', callback); + } + `); } document.dispatchEvent( @@ -709,14 +725,18 @@ window.addEventListener("load", async () => { } else { if (continueWhereYouLeftOffPaused) { webFrame.executeJavaScript(` - // This is different from the above because loading a watch page means all the video data is already available and would be playing - window.ytmdPlayerBar.playerApi_.pauseVideo(); - `); + { + // This is different from the above because loading a watch page means all the video data is already available and would be playing + document.querySelector("ytmusic-player-bar").playerApi_.pauseVideo(); + } + `); } webFrame.executeJavaScript(` - window.ytmd.sendVideoData(window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails, window.ytmdPlayerBar.playerApi_.getPlaylistId()); - `); + { + window.ytmd.sendVideoData(document.querySelector("ytmusic-player-bar").playerApi_.getPlayerResponse().videoDetails, document.querySelector("ytmusic-player-bar").playerApi_.getPlaylistId()); + } + `); } } @@ -729,35 +749,45 @@ window.addEventListener("load", async () => { switch (command) { case "playPause": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playing_ ? window.ytmdPlayerBar.playerApi_.pauseVideo() : window.ytmdPlayerBar.playerApi_.playVideo(); + { + document.querySelector("ytmusic-player-bar").playing_ ? document.querySelector("ytmusic-player-bar").playerApi_.pauseVideo() : document.querySelector("ytmusic-player-bar").playerApi_.playVideo(); + } `); break; } case "play": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.playVideo(); + { + document.querySelector("ytmusic-player-bar").playerApi_.playVideo(); + } `); break; } case "pause": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.pauseVideo(); + { + document.querySelector("ytmusic-player-bar").playerApi_.pauseVideo(); + } `); break; } case "next": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.nextVideo(); + { + document.querySelector("ytmusic-player-bar").playerApi_.nextVideo(); + } `); break; } case "previous": { webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.previousVideo(); + { + document.querySelector("ytmusic-player-bar").playerApi_.previousVideo(); + } `); break; } @@ -772,7 +802,9 @@ window.addEventListener("load", async () => { case "volumeUp": { const currentVolumeUp: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); + { + document.querySelector("ytmusic-player-bar").playerApi_.getVolume(); + } `); let newVolumeUp = currentVolumeUp + 10; @@ -780,15 +812,19 @@ window.addEventListener("load", async () => { newVolumeUp = 100; } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeUp}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); + { + document.querySelector("ytmusic-player-bar").playerApi_.setVolume(${newVolumeUp}); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeUp} }); + } `); break; } case "volumeDown": { const currentVolumeDown: number = await webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.getVolume(); + { + document.querySelector("ytmusic-player-bar").playerApi_.getVolume(); + } `); let newVolumeDown = currentVolumeDown - 10; @@ -796,8 +832,10 @@ window.addEventListener("load", async () => { newVolumeDown = 0; } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${newVolumeDown}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); + { + document.querySelector("ytmusic-player-bar").playerApi_.setVolume(${newVolumeDown}); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_VOLUME', payload: ${newVolumeDown} }); + } `); break; } @@ -810,23 +848,37 @@ window.addEventListener("load", async () => { } webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.setVolume(${valueInt}); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); + { + document.querySelector("ytmusic-player-bar").playerApi_.setVolume(${valueInt}); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_VOLUME', payload: ${valueInt} }); + } `); break; } case "mute": webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.mute(); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: true }); + { + document.querySelector("ytmusic-player-bar").playerApi_.mute(); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_MUTED', payload: true }); + } `); break; case "unmute": webFrame.executeJavaScript(` - window.ytmdPlayerBar.playerApi_.unMute(); - window.ytmdPlayerBar.store.dispatch({ type: 'SET_MUTED', payload: false }); + { + document.querySelector("ytmusic-player-bar").playerApi_.unMute(); + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_MUTED', payload: false }); + } + `); + break; + + case "repeatMode": + webFrame.executeJavaScript(` + { + document.querySelector("ytmusic-player-bar").store.dispatch({ type: 'SET_REPEAT', payload: "${value}" }); + } `); break; @@ -846,33 +898,35 @@ window.addEventListener("load", async () => { ipcRenderer.on('ytmView:getPlaylists', async (_event, requestId) => { const rawPlaylists = await webFrame.executeJavaScript(` - new Promise((resolve, reject) => { - var returnValue = [] - var serviceRequestEvent = { - bubbles: true, - cancelable: false, - composed: true, - detail: { - actionName: 'yt-service-request', - args: [ - window.ytmdPlayerBar, - { - addToPlaylistEndpoint: { - videoId: window.ytmdPlayerBar.playerApi_.getPlayerResponse().videoDetails.videoId - } - } - ], - optionalAction: false, - returnValue - } - }; - window.ytmdPlayerBar.dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); - returnValue[0].ajaxPromise.then((response) => { - resolve(response.data.contents[0].addToPlaylistRenderer.playlists); - }, () => { - reject(); + { + new Promise((resolve, reject) => { + var returnValue = [] + var serviceRequestEvent = { + bubbles: true, + cancelable: false, + composed: true, + detail: { + actionName: 'yt-service-request', + args: [ + document.querySelector("ytmusic-player-bar"), + { + addToPlaylistEndpoint: { + videoId: document.querySelector("ytmusic-player-bar").playerApi_.getPlayerResponse().videoDetails.videoId + } + } + ], + optionalAction: false, + returnValue + } + }; + document.querySelector("ytmusic-player-bar").dispatchEvent(new CustomEvent('yt-action', serviceRequestEvent)); + returnValue[0].ajaxPromise.then((response) => { + resolve(response.data.contents[0].addToPlaylistRenderer.playlists); + }, () => { + reject(); + }); }); - }); + } `); const playlists = []; diff --git a/yarn.lock b/yarn.lock index 1162f83a3..5ef5fa6cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -350,7 +350,7 @@ resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== -"@fastify/error@^3.2.0": +"@fastify/error@^3.2.0", "@fastify/error@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.3.0.tgz#eba790082e1144bfc8def0c2c8ef350064bc537b" integrity sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w== From 9dd69e11bd92434a3e56017ddd1ee9ef628257f1 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 31 Jul 2023 21:55:30 -0500 Subject: [PATCH 177/489] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Upgrade=20dependen?= =?UTF-8?q?cies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 29 +- tsconfig.json | 2 +- yarn.lock | 1647 +++++++++++++++++++++++++++++++------------------ 3 files changed, 1058 insertions(+), 620 deletions(-) diff --git a/package.json b/package.json index 03c4e500f..f79903997 100644 --- a/package.json +++ b/package.json @@ -22,24 +22,24 @@ }, "license": "GPLV3", "devDependencies": { - "@electron-forge/cli": "^6.0.4", - "@electron-forge/maker-deb": "^6.0.4", - "@electron-forge/maker-rpm": "^6.0.4", - "@electron-forge/maker-squirrel": "^6.0.4", - "@electron-forge/maker-zip": "^6.0.4", - "@electron-forge/plugin-webpack": "^6.0.4", + "@electron-forge/cli": "^6.2.1", + "@electron-forge/maker-deb": "^6.2.1", + "@electron-forge/maker-rpm": "^6.2.1", + "@electron-forge/maker-squirrel": "^6.2.1", + "@electron-forge/maker-zip": "^6.2.1", + "@electron-forge/plugin-webpack": "^6.2.1", "@types/discord-rpc": "^4.0.3", - "@types/node": "^18.11.18", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", + "@types/node": "^18.17.1", + "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/parser": "^6.2.1", "@vercel/webpack-asset-relocator-loader": "1.7.3", "css-loader": "^6.0.0", - "electron": "22.0.0", + "electron": "25.3.2", "eslint": "^8.0.1", "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.25.0", "eslint-plugin-vue": "^9.15.1", - "fork-ts-checker-webpack-plugin": "^7.2.13", + "fork-ts-checker-webpack-plugin": "^8.0.0", "husky": "^8.0.3", "lint-staged": "^13.2.3", "node-loader": "^2.0.0", @@ -47,9 +47,10 @@ "style-loader": "^3.0.0", "ts-loader": "^9.2.2", "ts-node": "^10.0.0", - "typescript": "~4.5.4", + "typescript": "~5.1.6", "vue-loader": "^17.0.1", - "vue-template-compiler": "^2.7.14" + "vue-template-compiler": "^2.7.14", + "webpack": "^5.88.2" }, "dependencies": { "@fastify/error": "^3.3.0", @@ -59,7 +60,7 @@ "electron-store": "^8.1.0", "fastify": "^4.16.0", "fastify-socket.io": "^4.0.0", - "material-symbols": "^0.4.2", + "material-symbols": "^0.10.2", "socket.io": "^4.5.4", "vue": "^3.2.45" }, diff --git a/tsconfig.json b/tsconfig.json index cbac2f69f..398587d40 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,4 +20,4 @@ "include": [ "src/**/*" ] -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 5ef5fa6cc..705fd7e8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,31 +2,36 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" -"@babel/helper-validator-identifier@^7.18.6": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.4": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -35,13 +40,13 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@electron-forge/cli@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.4.tgz#0a98ebdf2ec09744129209effd3f10606ef5083c" - integrity sha512-iyQyh0g/cSWVQs30wsAqmTmqgV8E/i9Cy/CsHwHxQlsHHcq8N61k1JlB2dpEV1Hy9Lxafql5TE3/6uI7939IEg== +"@electron-forge/cli@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.2.1.tgz#e5f4c5d51743de8c8ab93a3656b58b85ac68bfb8" + integrity sha512-AyCJ1m7LBgttgUTS3kDwiBLhPHJ+6mFwoMSqu847EJ4Fe1DJ1Hi6gnMsSga7Mv4KsF7iA23Ss1fo+3TGZnvrWw== dependencies: - "@electron-forge/core" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/core" "6.2.1" + "@electron-forge/shared-types" "6.2.1" "@electron/get" "^2.0.0" chalk "^4.0.0" commander "^4.1.1" @@ -50,12 +55,12 @@ listr2 "^5.0.3" semver "^7.2.1" -"@electron-forge/core-utils@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-6.0.4.tgz#dae0a47d9ffb93ee02de05720617d39b65666731" - integrity sha512-nOCjmm8Qr/bYkVNfEiXSk/LKjtv6iBrKcyhKIanNM3n7MJRuTH0ksvuajFBqg+V+EHplMb7y6acDvI+TTRDUxg== +"@electron-forge/core-utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-6.2.1.tgz#556c8cd0b72d2e1c34aca141562825e4727a9d14" + integrity sha512-mJUpy8mZ7/l1BddReFrNZyM5iNEuYwjpeIqZ2E0E/hQPH26QreAV3rPfTj7WhA3V69ftmn++QRt82pNZFhHVEg== dependencies: - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" "@electron/rebuild" "^3.2.10" "@malept/cross-spawn-promise" "^2.0.0" chalk "^4.0.0" @@ -66,19 +71,20 @@ semver "^7.2.1" yarn-or-npm "^3.0.1" -"@electron-forge/core@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-6.0.4.tgz#a6b32b7e4d88d35b2f1e052b2d5cd83c617bb63b" - integrity sha512-l3OiXB/9ebtZZtcQAbofaTmivQUqUVv8TKoxQ8GJbH48Eyk//mphbo7hDC5kb5Tyd0UedMOM9MxJrYjnd6jRnA== - dependencies: - "@electron-forge/core-utils" "^6.0.4" - "@electron-forge/maker-base" "^6.0.4" - "@electron-forge/plugin-base" "^6.0.4" - "@electron-forge/publisher-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" - "@electron-forge/template-base" "^6.0.4" - "@electron-forge/template-webpack" "^6.0.4" - "@electron-forge/template-webpack-typescript" "^6.0.4" +"@electron-forge/core@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-6.2.1.tgz#eee1dbeae0417dee8a8fba8b8aefe5bbc63024a8" + integrity sha512-udjU8r9dzuV/dPMPxONmkWYoqM0uY6ezpdjTLgO9aNdWTbBeBLIOMVT0jdx7GBoTuPu6ul/VhDEFNUaojEOrVA== + dependencies: + "@electron-forge/core-utils" "6.2.1" + "@electron-forge/maker-base" "6.2.1" + "@electron-forge/plugin-base" "6.2.1" + "@electron-forge/publisher-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" + "@electron-forge/template-base" "6.2.1" + "@electron-forge/template-vite" "6.2.1" + "@electron-forge/template-webpack" "6.2.1" + "@electron-forge/template-webpack-typescript" "6.2.1" "@electron/get" "^2.0.0" "@electron/rebuild" "^3.2.10" "@malept/cross-spawn-promise" "^2.0.0" @@ -104,72 +110,73 @@ username "^5.1.0" yarn-or-npm "^3.0.1" -"@electron-forge/maker-base@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.4.tgz#7de68dd11d2a670b552860aea01767870bb44f92" - integrity sha512-qJJ2oPFlyt6u/H67WLfZL0JclSpFj4VwxPfwxqNL/HcwXULJcOeat7oqJLY9UKBE4U2j+++xbA3LSoPAErroIg== +"@electron-forge/maker-base@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.2.1.tgz#04dcc6163a2938480ed5c887fa2894646c7eebb8" + integrity sha512-LnvGtTJ/RNojKdUKktYEcbLqPggXdMBs1uscQRgXkI3XnVGdEi+/j5+Eg5ka4d6FnsaUkz//U5yhPtNFhDbNSw== dependencies: - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" fs-extra "^10.0.0" which "^2.0.2" -"@electron-forge/maker-deb@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-deb/-/maker-deb-6.0.4.tgz#5ac9a844f31898e0bd33b73919622583cc7ded75" - integrity sha512-kBqRiPqAInPqBEZD1iRYiF2yb7Mhcdlrn80kCtTwTF8oAA6d081g6mcrMt12sf5GBGF8IXKzm6JqbqelpYbKww== +"@electron-forge/maker-deb@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-deb/-/maker-deb-6.2.1.tgz#bbf9217e5b8219d0ac5d9f42bb305bacabf7bb4e" + integrity sha512-y4WeBCGOeu1z5yBHPigzYcVPZAwbaJB60wXZ1VQpuKM5n09nONTq2TFhoJDHys3t9aHsBaX7G6Drv0XPUWQExQ== dependencies: - "@electron-forge/maker-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/maker-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" optionalDependencies: electron-installer-debian "^3.0.0" -"@electron-forge/maker-rpm@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-rpm/-/maker-rpm-6.0.4.tgz#3b84efaf2796bc43f346dc4f37274d6771717b1f" - integrity sha512-uNLm6zpK8OgXl2Eq9/uaQyUBKEJhlzJf4zu0DtpPqp5qeu1EObDor0/5OH6MTEmjpGSZ616tdvVN+kwqjNeNHg== +"@electron-forge/maker-rpm@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-rpm/-/maker-rpm-6.2.1.tgz#ef87a55618f4876fe361aa7b00413328994c07c9" + integrity sha512-FIoU9cvtNOIgrqSCdAMjDKvOnFGSf7RGEtLuZ7Q/BEkwUoXxqphqTzxiIxZocvhVfDtaSU18l9k7u/HrXSL9JQ== dependencies: - "@electron-forge/maker-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/maker-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" optionalDependencies: electron-installer-redhat "^3.2.0" -"@electron-forge/maker-squirrel@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.4.tgz#21b09a5165b27cc156e3c15989f7fe157752d8ac" - integrity sha512-1bZ5RgSex5Y45HSuOqjki2oHIq/CquVPP5sLYhObd2p2ABj4ZzyqErNFK1eerDIjoesici3KKCASqBpKf2N90Q== +"@electron-forge/maker-squirrel@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.2.1.tgz#21213e57d7aa4868f1b69e46f4c5c03f514aba83" + integrity sha512-331Pdt6eZh3nvjQaaDGlu2q1ZtBFrUSZWox2wHxG5B9l7/IoJY60dLgkkftsSrT+zUjZmKR67ZV3Fmh7qL/bPw== dependencies: - "@electron-forge/maker-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/maker-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" fs-extra "^10.0.0" optionalDependencies: electron-winstaller "^5.0.0" -"@electron-forge/maker-zip@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.4.tgz#db4cc7f44ccf1d30fa1bc95c36d6b9708d3e5888" - integrity sha512-tjBi46qU4vKpYUNUIv5ar6hBDjr9G7+QIUiaOj4UIN3Rwa20EvsYMBoMJBxV/CUUwkQc1NBihUPLco7PAVNb+g== +"@electron-forge/maker-zip@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.2.1.tgz#90d63bfa84ed5f7cba5ea8c9e231fc2118cf213e" + integrity sha512-EgKArMT3Njn9/NZ7g2gGrhl8Y3F84Mm9b9Yt5WOziQaUAWvywFdijhUn4Oq631f3wU93xNq/CZbKvYWAK0NjnA== dependencies: - "@electron-forge/maker-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/maker-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" cross-zip "^4.0.0" fs-extra "^10.0.0" + got "^11.8.5" -"@electron-forge/plugin-base@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.4.tgz#a3b62e006632dab66d35f845ca61e09745ccbb82" - integrity sha512-iILzbFzmUIGggsTNL9PO1ma6e4OuuhKunNnOkpkoyg6jIaz8Oh1WSHhOALMztlBn2FhreabZnBRy7JsvHVDXlg== +"@electron-forge/plugin-base@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.2.1.tgz#55d46e0025c236240869ba961c2ba94ec89f5061" + integrity sha512-8mVbFgTlxQKDZ7jzeHyWrzOSiv/DpE29flPLgpyeFuz/zbC7oLNdxBCYo7WptQgI+HArphqehKUBf1UOkXmRPg== dependencies: - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" -"@electron-forge/plugin-webpack@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/plugin-webpack/-/plugin-webpack-6.0.4.tgz#9fd7a6179fe06dfe496278e6f4d511c8040ee5aa" - integrity sha512-Zt1plDDKSjCQNO4ywUDCmlbVLaLgJuFlr6Snxihc0wahW4QVtqWUocialan7WHMeh4ernY1xL+Cn+8Rrc1PuAw== +"@electron-forge/plugin-webpack@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-webpack/-/plugin-webpack-6.2.1.tgz#36aff149f442c4d382da2300ef4592d61d42ccee" + integrity sha512-kBeGufqweaKghakVzlu/K2njztVLoQ8RFhNuq3Yw797njZ7MEyrXxAMY7p41cEmnItyERGjhPCdUNkCF2ggNww== dependencies: - "@electron-forge/core-utils" "^6.0.4" - "@electron-forge/plugin-base" "^6.0.4" - "@electron-forge/shared-types" "^6.0.4" - "@electron-forge/web-multi-logger" "^6.0.4" + "@electron-forge/core-utils" "6.2.1" + "@electron-forge/plugin-base" "6.2.1" + "@electron-forge/shared-types" "6.2.1" + "@electron-forge/web-multi-logger" "6.2.1" chalk "^4.0.0" debug "^4.3.1" fs-extra "^10.0.0" @@ -178,55 +185,64 @@ webpack-dev-server "^4.0.0" webpack-merge "^5.7.3" -"@electron-forge/publisher-base@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.0.4.tgz#dd5db7ec04f8c5a6a70afa548950381052673806" - integrity sha512-0C86jnOSTo0z/W58zRx6BijuR4lscB0F6yXaBCFA5xaJ8+fVIsgz29kmVlLrp+YFRgatDCljvk+1+qVRM/Mfpg== +"@electron-forge/publisher-base@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.2.1.tgz#196f6ce14e0a99609f2ea0c79b5c7bf8947f6e25" + integrity sha512-clrrEPsamoe4543smfyZUBp2IRSZ4EEhdj/bm0zmODS2qs/V1cCEf7y8P29huxMskT5bXDxSzothG72or3b2WQ== dependencies: - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" -"@electron-forge/shared-types@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.4.tgz#f8cdcf453459caa156d513582054b8e81057584f" - integrity sha512-lILLKcGZqfJYVI1x6RssVh37E934rCOaSdBQ9I7LypdfI2NWL+5PLLoUqvXbok1V28m3/O5JrXdigwEIZdhjzQ== +"@electron-forge/shared-types@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.2.1.tgz#6e60904e0436bd371db9ab21337d699b45523d6a" + integrity sha512-kLazG5XUAqb3Duyhq7XyGluINRwCQRaIiuvHwlvnZYYu6NZQTz9xUm6tQ9v05EtFblUx2iRjY67DJRZSt3dzTQ== dependencies: "@electron/rebuild" "^3.2.10" electron-packager "^17.1.1" listr2 "^5.0.3" -"@electron-forge/template-base@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.4.tgz#9d42af1fe77cf6d1ee8e43109d3eefabd1caf95e" - integrity sha512-23/b0n+ls0+c2+OG1XrHROk6i3PseONLJY3tcR42uFaP/yGZL8nJfgXE2qTKBwUyFQ0tCgUAD3a4vYkMPLKrwg== +"@electron-forge/template-base@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.2.1.tgz#6b7e49254675f986a3b3120f91bc63d7a030de72" + integrity sha512-hSMaefJRptpszPsZLvEfHV22KO6/XK0kJ6Lota1x3xQEFQs4IpCwUv446JE5hde+5Fukw5vZawbK2m937Te24Q== dependencies: - "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" "@malept/cross-spawn-promise" "^2.0.0" debug "^4.3.1" fs-extra "^10.0.0" username "^5.1.0" -"@electron-forge/template-webpack-typescript@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-6.0.4.tgz#8dea2d6deb6be9b73203fc93c49d88dfe86f2c1f" - integrity sha512-Z9fJ0JfZw9w5OVZgy0qVGapGMQqfaLyQSHzEfm2HQdGGJrHkeXJkMn8Yd1E8h5EPMb3jF5tHRw3VopelzcPQxQ== +"@electron-forge/template-vite@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/template-vite/-/template-vite-6.2.1.tgz#51992e6f98bf1256849cde5cd5b5e4e00eac94aa" + integrity sha512-t05p8ZWtkixjuUFJpaupq2t+ap8vjPjULO2knKC12TqWTxo53M8lKwx0f7h0zvgyqWdtEGQr8KiVfeFS0Lh3jA== dependencies: - "@electron-forge/shared-types" "^6.0.4" - "@electron-forge/template-base" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" + "@electron-forge/template-base" "6.2.1" fs-extra "^10.0.0" -"@electron-forge/template-webpack@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-6.0.4.tgz#17bfd20d93be8238a6ee62cc1cf5c4484906dbde" - integrity sha512-mrzNzkhsLfD20y/vfTYVBFSkptmgSEwqn4zh4vnzP9tzAJ4eMbvhfVtkK/XQfm8ZspPjs+RZSzRrRNo+e0iEaw== +"@electron-forge/template-webpack-typescript@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-6.2.1.tgz#2dd66562a30e3d687ff13d0c151586729a6aceeb" + integrity sha512-8dXu54OsvfeBVGFyHfzVaBlxH+dPFxgLKu+/gsip82OEmLghXWyfvwhpXBw3rhxqG8V2/nbxDYUghSJackWZYA== dependencies: - "@electron-forge/shared-types" "^6.0.4" - "@electron-forge/template-base" "^6.0.4" + "@electron-forge/shared-types" "6.2.1" + "@electron-forge/template-base" "6.2.1" fs-extra "^10.0.0" -"@electron-forge/web-multi-logger@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@electron-forge/web-multi-logger/-/web-multi-logger-6.0.4.tgz#fe4568b92cf2dfe1d7edce878f91b4b9a1ec66fa" - integrity sha512-TvJpHfJFnamjv7Ec5Oe+5ir7zK1wvG42jzRoErv946xr9d2pGIYSLX2+LFMV0bLR35GZCAIom6teK4d3wU6MVA== +"@electron-forge/template-webpack@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-6.2.1.tgz#84b1b8d04f9a86f83a14f3ffab9b551731ce98a1" + integrity sha512-u2/Cm6HjCah07larN1npHDG1dhDZMyqdDnPDh0iQNv+BEV6kCMSHX/8R9Uc7uIpkRVj+uCfcYBnkoKHKbUgKcQ== + dependencies: + "@electron-forge/shared-types" "6.2.1" + "@electron-forge/template-base" "6.2.1" + fs-extra "^10.0.0" + +"@electron-forge/web-multi-logger@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@electron-forge/web-multi-logger/-/web-multi-logger-6.2.1.tgz#659a95765eb2ccc389f4ae15292685c87fde6c04" + integrity sha512-7Wn/MisYGLI4aFzyKxq4iLl6uMkn/lVKq+6VTu1jYiokEa88jFb5B5d3660WY1vLezErZHiS+PGV43kyRZcWSg== dependencies: express "^4.17.1" express-ws "^5.0.2" @@ -314,21 +330,26 @@ minimatch "^3.0.4" plist "^3.0.4" -"@eslint-community/eslint-utils@^4.3.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -336,6 +357,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== + "@fastify/ajv-compiler@^3.5.0": version "3.5.0" resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" @@ -376,10 +402,10 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -422,11 +448,24 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -443,6 +482,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -594,9 +641,9 @@ "@types/node" "*" "@types/discord-rpc@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.3.tgz#3ff5bf9d406841e3744575df0a9e967f52df1ccb" - integrity sha512-4Kh+8u1+OXRHD5OHET3zbBInDkx3cMLaj8Qif8JQbgHZjiru2IYf/WHhuYdzjgtJ/J0CuImOpvt98+Bhe/lr1g== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/discord-rpc/-/discord-rpc-4.0.5.tgz#5e5562d394df04d0d1c234f7c664a9ee3c94344f" + integrity sha512-4Nd8eo/razej1fglurBJGtkv/gAEeSdGySSmWv/dn0Xh0xvNcmtdnXmzMx1IVv52jXHloSegNGFDLjLsax0JFw== "@types/eslint-scope@^3.7.3": version "3.7.4" @@ -624,6 +671,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": version "4.17.32" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" @@ -675,11 +727,16 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== +"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -702,15 +759,15 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/node@*", "@types/node@>=10.0.0", "@types/node@^18.11.18": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== +"@types/node@*", "@types/node@>=10.0.0": + version "20.4.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69" + integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg== -"@types/node@^16.11.26": - version "16.18.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.11.tgz#cbb15c12ca7c16c85a72b6bdc4d4b01151bb3cae" - integrity sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA== +"@types/node@^18.11.18", "@types/node@^18.17.1": + version "18.17.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.1.tgz#84c32903bf3a09f7878c391d31ff08f6fe7d8335" + integrity sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -739,10 +796,10 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/semver@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== "@types/serve-index@^1.9.1": version "1.9.1" @@ -780,88 +837,91 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^5.0.0": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.1.tgz#50cc5085578a7fa22cd46a0806c2e5eae858af02" - integrity sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg== - dependencies: - "@typescript-eslint/scope-manager" "5.47.1" - "@typescript-eslint/type-utils" "5.47.1" - "@typescript-eslint/utils" "5.47.1" +"@typescript-eslint/eslint-plugin@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz#41b79923fee46a745a3a50cba1c33c622aa3c79a" + integrity sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/type-utils" "6.2.1" + "@typescript-eslint/utils" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" - ignore "^5.2.0" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.0.0": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.1.tgz#c4bf16f8c3c7608ce4bf8ff804b677fc899f173f" - integrity sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw== - dependencies: - "@typescript-eslint/scope-manager" "5.47.1" - "@typescript-eslint/types" "5.47.1" - "@typescript-eslint/typescript-estree" "5.47.1" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.2.1.tgz#e18a31eea1cca8841a565f1701960c8123ed07f9" + integrity sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg== + dependencies: + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/typescript-estree" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz#0d302b3c2f20ab24e4787bf3f5a0d8c449b823bd" - integrity sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw== +"@typescript-eslint/scope-manager@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz#b6f43a867b84e5671fe531f2b762e0b68f7cf0c4" + integrity sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q== dependencies: - "@typescript-eslint/types" "5.47.1" - "@typescript-eslint/visitor-keys" "5.47.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" -"@typescript-eslint/type-utils@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.1.tgz#aee13314f840ab336c1adb49a300856fd16d04ce" - integrity sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w== +"@typescript-eslint/type-utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz#8eb8a2cccdf39cd7cf93e02bd2c3782dc90b0525" + integrity sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ== dependencies: - "@typescript-eslint/typescript-estree" "5.47.1" - "@typescript-eslint/utils" "5.47.1" + "@typescript-eslint/typescript-estree" "6.2.1" + "@typescript-eslint/utils" "6.2.1" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.1.tgz#459f07428aec5a8c4113706293c2ae876741ac8e" - integrity sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A== +"@typescript-eslint/types@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.2.1.tgz#7fcdeceb503aab601274bf5e210207050d88c8ab" + integrity sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ== -"@typescript-eslint/typescript-estree@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz#b9d8441308aca53df7f69b2c67a887b82c9ed418" - integrity sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA== +"@typescript-eslint/typescript-estree@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz#2af6e90c1e91cb725a5fe1682841a3f74549389e" + integrity sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q== dependencies: - "@typescript-eslint/types" "5.47.1" - "@typescript-eslint/visitor-keys" "5.47.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/visitor-keys" "6.2.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/utils@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.1.tgz#595f25ac06e9ee28c339fd43c709402820b13d7b" - integrity sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw== +"@typescript-eslint/utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.2.1.tgz#2aa4279ec13053d05615bcbde2398e1e8f08c334" + integrity sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.2.1" + "@typescript-eslint/types" "6.2.1" + "@typescript-eslint/typescript-estree" "6.2.1" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz#442e7c09fe94b715a54ebe30e967987c3c41fbf4" + integrity sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA== dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.47.1" - "@typescript-eslint/types" "5.47.1" - "@typescript-eslint/typescript-estree" "5.47.1" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.47.1": - version "5.47.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz#d35c2da544dbb685db9c5b5b85adac0a1d74d1f2" - integrity sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig== - dependencies: - "@typescript-eslint/types" "5.47.1" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "6.2.1" + eslint-visitor-keys "^3.4.1" "@vercel/webpack-asset-relocator-loader@1.7.3": version "1.7.3" @@ -870,95 +930,95 @@ dependencies: resolve "^1.10.0" -"@vue/compiler-core@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz#d9311207d96f6ebd5f4660be129fb99f01ddb41b" - integrity sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A== +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.45" + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - source-map "^0.6.1" - -"@vue/compiler-dom@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz#c43cc15e50da62ecc16a42f2622d25dc5fd97dce" - integrity sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw== - dependencies: - "@vue/compiler-core" "3.2.45" - "@vue/shared" "3.2.45" - -"@vue/compiler-sfc@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz#7f7989cc04ec9e7c55acd406827a2c4e96872c70" - integrity sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.45" - "@vue/compiler-dom" "3.2.45" - "@vue/compiler-ssr" "3.2.45" - "@vue/reactivity-transform" "3.2.45" - "@vue/shared" "3.2.45" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-sfc@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" postcss "^8.1.10" - source-map "^0.6.1" + source-map-js "^1.0.2" -"@vue/compiler-ssr@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz#bd20604b6e64ea15344d5b6278c4141191c983b2" - integrity sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ== +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== dependencies: - "@vue/compiler-dom" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/reactivity-transform@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz#07ac83b8138550c83dfb50db43cde1e0e5e8124d" - integrity sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ== +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.45" - "@vue/shared" "3.2.45" + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" -"@vue/reactivity@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.45.tgz#412a45b574de601be5a4a5d9a8cbd4dee4662ff0" - integrity sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A== +"@vue/reactivity@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== dependencies: - "@vue/shared" "3.2.45" + "@vue/shared" "3.3.4" -"@vue/runtime-core@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz#7ad7ef9b2519d41062a30c6fa001ec43ac549c7f" - integrity sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A== +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== dependencies: - "@vue/reactivity" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/runtime-dom@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz#1a2ef6ee2ad876206fbbe2a884554bba2d0faf59" - integrity sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA== +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== dependencies: - "@vue/runtime-core" "3.2.45" - "@vue/shared" "3.2.45" - csstype "^2.6.8" + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" -"@vue/server-renderer@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz#ca9306a0c12b0530a1a250e44f4a0abac6b81f3f" - integrity sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g== +"@vue/server-renderer@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== dependencies: - "@vue/compiler-ssr" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/shared@3.2.45": - version "3.2.45" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.45.tgz#a3fffa7489eafff38d984e23d0236e230c818bc2" - integrity sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg== +"@vue/shared@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== "@webassemblyjs/ast@1.11.1": version "1.11.1" @@ -968,21 +1028,44 @@ "@webassemblyjs/helper-numbers" "1.11.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.1" +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/floating-point-hex-parser@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + "@webassemblyjs/helper-api-error@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + "@webassemblyjs/helper-buffer@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + "@webassemblyjs/helper-numbers@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" @@ -992,11 +1075,25 @@ "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + "@webassemblyjs/helper-wasm-bytecode@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + "@webassemblyjs/helper-wasm-section@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" @@ -1007,6 +1104,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.11.1" "@webassemblyjs/wasm-gen" "1.11.1" +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/ieee754@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" @@ -1014,6 +1121,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/leb128@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" @@ -1021,11 +1135,23 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/utf8@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + "@webassemblyjs/wasm-edit@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" @@ -1040,6 +1166,20 @@ "@webassemblyjs/wasm-parser" "1.11.1" "@webassemblyjs/wast-printer" "1.11.1" +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + "@webassemblyjs/wasm-gen@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" @@ -1051,6 +1191,17 @@ "@webassemblyjs/leb128" "1.11.1" "@webassemblyjs/utf8" "1.11.1" +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + "@webassemblyjs/wasm-opt@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" @@ -1061,6 +1212,16 @@ "@webassemblyjs/wasm-gen" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wasm-parser@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" @@ -1073,6 +1234,18 @@ "@webassemblyjs/leb128" "1.11.1" "@webassemblyjs/utf8" "1.11.1" +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + "@webassemblyjs/wast-printer@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" @@ -1081,6 +1254,14 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -1121,6 +1302,11 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1131,12 +1317,12 @@ acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: version "8.8.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== -acorn@^8.9.0: +acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -1184,7 +1370,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1291,6 +1477,14 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1301,7 +1495,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4: +array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -1317,7 +1511,18 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.2.5: +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -1327,6 +1532,28 @@ array.prototype.flat@^1.2.5: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" + integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + asar@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/asar/-/asar-3.2.0.tgz#e6edb5edd6f627ebef04db62f771c61bea9c1221" @@ -1364,6 +1591,11 @@ author-regex@^1.0.0: resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" integrity sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + avvio@^8.2.1: version "8.2.1" resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.1.tgz#b5a482729847abb84d5aadce06511c04a0a62f82" @@ -1954,14 +2186,14 @@ cross-zip@^4.0.0: integrity sha512-MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA== css-loader@^6.0.0: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" @@ -1988,10 +2220,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -csstype@^2.6.8: - version "2.6.21" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" - integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== de-indent@^1.0.2: version "1.0.2" @@ -2005,7 +2237,7 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2044,9 +2276,9 @@ deep-is@^0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.3: version "6.0.3" @@ -2072,10 +2304,10 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -2328,13 +2560,13 @@ electron-winstaller@^5.0.0: lodash.template "^4.2.2" temp "^0.9.0" -electron@22.0.0: - version "22.0.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-22.0.0.tgz#ef84ab9cf23aa3f8c2f42a1e8e000ad7fd941058" - integrity sha512-cgRc4wjyM+81A0E8UGv1HNJjL1HBI5cWNh/DUIjzYvoUuiEM0SS0hAH/zaFQ18xOz2ced6Yih8SybpOiOYJhdg== +electron@25.3.2: + version "25.3.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-25.3.2.tgz#4ca096ea85abf05cbbc42e60da9e2c3a7b87dd80" + integrity sha512-xiktJvXraaE/ARf2OVHFyTze1TksSbsbJgOaBtdIiBvUduez6ipATEPIec8Msz1n6eQ+xqYb6YF8tDuIZtJSPw== dependencies: "@electron/get" "^2.0.0" - "@types/node" "^16.11.26" + "@types/node" "^18.11.18" extract-zip "^2.0.1" emoji-regex@^8.0.0: @@ -2371,15 +2603,15 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== +engine.io-parser@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.1.0.tgz#d593d6372d7f79212df48f807b8cace1ea1cb1b8" + integrity sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w== -engine.io@~6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" - integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== +engine.io@~6.5.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.1.tgz#59725f8593ccc891abb47f1efcdc52a089525a56" + integrity sha512-mGqhI+D7YxS9KJMppR6Iuo37Ed3abhU8NdfgSvJSDUafQutrN+sPTncJYTyM9+tkhSmWodKtVYGPPHyXJEwEQA== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -2389,10 +2621,18 @@ engine.io@~6.2.1: cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" + engine.io-parser "~5.1.0" + ws "~8.11.0" + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.10.0: +enhanced-resolve@^5.10.0: version "5.12.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== @@ -2422,42 +2662,70 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.20.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" - integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== +es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" + globalthis "^1.0.3" gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" + is-typed-array "^1.1.10" is-weakref "^1.0.2" - object-inspect "^1.12.2" + object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" string.prototype.trimend "^1.0.6" string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" unbox-primitive "^1.0.2" + which-typed-array "^1.1.10" es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -2500,58 +2768,64 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + version "8.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" + integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" -eslint-module-utils@^2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-import@^2.25.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== + dependencies: + array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.12.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" + object.values "^1.1.6" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-vue@^9.15.1: - version "9.15.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be" - integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A== + version "9.16.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.16.1.tgz#3508d9279d797b40889db76da2fd26524e9144e6" + integrity sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA== dependencies: - "@eslint-community/eslint-utils" "^4.3.0" + "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" - nth-check "^2.0.1" - postcss-selector-parser "^6.0.9" - semver "^7.3.5" - vue-eslint-parser "^9.3.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.3.1" xml-name-validator "^4.0.0" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2559,82 +2833,63 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== eslint@^8.0.1: - version "8.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" - integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== - dependencies: - "@eslint/eslintrc" "^1.4.1" - "@humanwhocodes/config-array" "^0.11.8" + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.3.1: +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -2643,19 +2898,10 @@ espree@^9.3.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -espree@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -2826,7 +3072,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-glob@^3.2.7: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -2837,6 +3083,17 @@ fast-glob@^3.2.7, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2915,14 +3172,7 @@ fastify@^4.16.0: semver "^7.5.0" tiny-lru "^11.0.1" -fastq@^1.6.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" - integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== - dependencies: - reusify "^1.0.4" - -fastq@^1.6.1: +fastq@^1.6.0, fastq@^1.6.1: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== @@ -3054,10 +3304,17 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -fork-ts-checker-webpack-plugin@^7.2.13: - version "7.2.14" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.14.tgz#746eb15b4d643aafccd3c729995f9c9281eabd22" - integrity sha512-Tg2feh/n8k486KX0EbXVUfJj3j0xnnbKYTJw0fnIb2QdV0+lblOYZSal5ed9hARoWVwKeOC7sYE2EakSRLo5ZA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fork-ts-checker-webpack-plugin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz#dae45dfe7298aa5d553e2580096ced79b6179504" + integrity sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" @@ -3135,10 +3392,10 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: dependencies: minipass "^3.0.0" -fs-monkey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.3, fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== fs.realpath@^1.0.0: version "1.0.0" @@ -3165,7 +3422,7 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -3218,13 +3475,14 @@ get-installed-path@^2.0.3: dependencies: global-modules "1.0.0" -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" + has-proto "^1.0.1" has-symbols "^1.0.3" get-package-info@^1.0.0: @@ -3339,13 +3597,13 @@ global-prefix@^1.0.1: which "^1.2.14" globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" -globalthis@^1.0.1: +globalthis@^1.0.1, globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== @@ -3388,15 +3646,20 @@ got@^11.7.0, got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== handle-thing@^2.0.0: version "2.0.1" @@ -3425,6 +3688,11 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" @@ -3647,12 +3915,12 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3698,12 +3966,12 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" - integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" @@ -3727,6 +3995,15 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3754,15 +4031,15 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -3893,6 +4170,13 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -3917,6 +4201,11 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3946,11 +4235,6 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-sdsl@^4.1.4: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" - integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3998,7 +4282,7 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^1.0.1: +json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== @@ -4257,12 +4541,12 @@ lzma-native@^8.0.5: node-gyp-build "^4.2.1" readable-stream "^3.6.0" -magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== +magic-string@^0.30.0: + version "0.30.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.2.tgz#dcf04aad3d0d1314bc743d076c50feb29b3c7aca" + integrity sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug== dependencies: - sourcemap-codec "^1.4.8" + "@jridgewell/sourcemap-codec" "^1.4.15" make-error@^1.1.1: version "1.3.6" @@ -4305,10 +4589,10 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -material-symbols@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/material-symbols/-/material-symbols-0.4.2.tgz#d0c0613c2be2dada0407f6fb323369a7c3c637f8" - integrity sha512-Qqz9o0pui/7MHk4SihG/1yOE7Wwa4iMh7YiXFMZjVIbxRTkP629m8obg5QKGfgfMIU9Xu3RIJB9mzGI3MEPwrg== +material-symbols@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/material-symbols/-/material-symbols-0.10.2.tgz#0f67e443183016eef35364a2ca07cb86d659c7bf" + integrity sha512-iwWd/+NmYPlhAdYay5tQl6PF9wfd7YIeJaWcEr8yxNyuVcKQzNY7PqjTWLYZqRpXvTIPo9J6okJDl7Gg6Xvgjw== media-typer@0.3.0: version "0.3.0" @@ -4324,7 +4608,14 @@ mem@^4.3.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memfs@^3.4.1, memfs@^3.4.3: +memfs@^3.4.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memfs@^3.4.3: version "3.4.12" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.12.tgz#d00f8ad8dab132dc277c659dc85bfd14b07d03bd" integrity sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw== @@ -4421,9 +4712,9 @@ minimatch@^5.0.1: brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass-collect@^1.0.2: version "1.0.2" @@ -4521,10 +4812,10 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== natural-compare-lite@^1.4.0: version "1.4.0" @@ -4560,16 +4851,16 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.0.0: - version "3.30.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.30.0.tgz#d84687ad5d24ca81cdfa912a36f2c5c19b137359" - integrity sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw== + version "3.45.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== dependencies: semver "^7.3.5" node-abort-controller@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" - integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-addon-api@^1.3.0: version "1.7.2" @@ -4691,7 +4982,7 @@ npmlog@^6.0.0: gauge "^4.0.3" set-blocking "^2.0.0" -nth-check@^2.0.1: +nth-check@^2.0.1, nth-check@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== @@ -4703,12 +4994,7 @@ object-assign@^4: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-inspect@^1.12.3: +object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -4728,7 +5014,26 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.values@^1.1.5: +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + +object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -4789,17 +5094,17 @@ open@^8.0.9: is-docker "^2.1.1" is-wsl "^2.2.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" ora@^5.1.0: version "5.4.1" @@ -5101,10 +5406,10 @@ postcss-modules-extract-imports@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== +postcss-modules-local-by-default@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" + integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== dependencies: icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" @@ -5124,15 +5429,7 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -5145,12 +5442,12 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.10, postcss@^8.4.19: - version "8.4.20" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" - integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== +postcss@^8.1.10, postcss@^8.4.21: + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -5227,9 +5524,9 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== qs@6.11.0: version "6.11.0" @@ -5350,19 +5647,14 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== +regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + define-properties "^1.2.0" + functions-have-names "^1.2.3" "register-scheme@github:devsnek/node-register-scheme": version "0.0.2" @@ -5432,7 +5724,7 @@ resolve-package@^1.0.1: dependencies: get-installed-path "^2.0.3" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0: +resolve@^1.1.6, resolve@^1.10.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -5441,6 +5733,24 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.20.0, resolve@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.22.3: + version "1.22.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283" + integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw== + dependencies: + is-core-module "^2.12.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" @@ -5528,6 +5838,16 @@ rxjs@^7.8.0: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5564,7 +5884,7 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -5573,6 +5893,15 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" @@ -5615,14 +5944,19 @@ semver@^6.2.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" -semver@^7.3.6, semver@^7.5.0: +semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.8, semver@^7.5.0, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -5662,6 +5996,13 @@ serialize-javascript@^6.0.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -5786,30 +6127,33 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socket.io-adapter@~2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" - integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== +socket.io-adapter@~2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12" + integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA== + dependencies: + ws "~8.11.0" -socket.io-parser@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" - integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" socket.io@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90" - integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ== + version "4.7.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.1.tgz#9009f31bf7be25478895145e92fbc972ad1db900" + integrity sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.2.1" - socket.io-adapter "~2.4.0" - socket.io-parser "~4.2.1" + engine.io "~6.5.0" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" sockjs@^0.3.24: version "0.3.24" @@ -5857,16 +6201,11 @@ source-map-support@^0.5.13, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: +source-map@^0.6.0, source-map@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -5966,6 +6305,15 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" @@ -6032,7 +6380,7 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -6045,9 +6393,9 @@ strip-outer@^1.0.1: escape-string-regexp "^1.0.2" style-loader@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" - integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== + version "3.3.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" + integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== sudo-prompt@^9.1.1: version "9.2.1" @@ -6123,6 +6471,17 @@ terser-webpack-plugin@^5.1.3: serialize-javascript "^6.0.0" terser "^5.14.1" +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + terser@^5.10.0, terser@^5.14.1: version "5.16.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" @@ -6133,6 +6492,16 @@ terser@^5.10.0, terser@^5.14.1: commander "^2.20.0" source-map-support "~0.5.20" +terser@^5.16.8: + version "5.19.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" + integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6203,10 +6572,15 @@ trim-repeated@^1.0.0: dependencies: escape-string-regexp "^1.0.2" +ts-api-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" + integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + ts-loader@^9.2.2: - version "9.4.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" - integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== + version "9.4.4" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.4.tgz#6ceaf4d58dcc6979f84125335904920884b7cee4" + integrity sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w== dependencies: chalk "^4.1.0" enhanced-resolve "^5.0.0" @@ -6232,33 +6606,21 @@ ts-node@^10.0.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.0.3, tslib@^2.1.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6294,10 +6656,49 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@~4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" - integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typescript@~5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== unbox-primitive@^1.0.2: version "1.0.2" @@ -6399,7 +6800,7 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vue-eslint-parser@^9.3.0: +vue-eslint-parser@^9.3.1: version "9.3.1" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== @@ -6413,13 +6814,13 @@ vue-eslint-parser@^9.3.0: semver "^7.3.6" vue-loader@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-17.0.1.tgz#c0ee8875e0610a0c2d13ba9b4d50a9c8442e7a3a" - integrity sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg== + version "17.2.2" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-17.2.2.tgz#96148eb70c1365cc8c5bab4274923596811c79df" + integrity sha512-aqNvKJvnz2A/6VWeJZodAo8XLoAlVwBv+2Z6dama+LHsAF+P/xijQ+OfWrxIs0wcGSJduvdzvTuATzXbNKkpiw== dependencies: chalk "^4.1.0" hash-sum "^2.0.0" - loader-utils "^2.0.0" + watchpack "^2.4.0" vue-template-compiler@^2.7.14: version "2.7.14" @@ -6430,15 +6831,15 @@ vue-template-compiler@^2.7.14: he "^1.2.0" vue@^3.2.45: - version "3.2.45" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.45.tgz#94a116784447eb7dbd892167784619fef379b3c8" - integrity sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA== + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== dependencies: - "@vue/compiler-dom" "3.2.45" - "@vue/compiler-sfc" "3.2.45" - "@vue/runtime-dom" "3.2.45" - "@vue/server-renderer" "3.2.45" - "@vue/shared" "3.2.45" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" watchpack@^2.4.0: version "2.4.0" @@ -6556,6 +6957,36 @@ webpack@^5.69.1: watchpack "^2.4.0" webpack-sources "^3.2.3" +webpack@^5.88.2: + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -6594,6 +7025,17 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== +which-typed-array@^1.1.10, which-typed-array@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -6621,9 +7063,9 @@ wildcard@^2.0.0: integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrap-ansi@^6.2.0: version "6.2.0" @@ -6653,16 +7095,11 @@ ws@^7.3.1, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.4.2: +ws@^8.4.2, ws@~8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" From a8660f998b057f0f84a02cb3c7de7a57ec52b9d8 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Mon, 31 Jul 2023 22:21:45 -0500 Subject: [PATCH 178/489] =?UTF-8?q?=E2=9C=A8=20Implement=20WCO=20based=20t?= =?UTF-8?q?itlebar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 14 +++++++++++++- src/shared/components/TitleBar.vue | 21 ++++++++++++++------- src/windows/main/Index.vue | 6 +++--- src/windows/settings/Index.vue | 6 +++--- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/index.ts b/src/index.ts index 61402fc29..5dd41fa37 100644 --- a/src/index.ts +++ b/src/index.ts @@ -439,6 +439,12 @@ const createOrShowSettingsWindow = (): void => { frame: false, parent: mainWindow, modal: true, + titleBarStyle: 'hidden', + titleBarOverlay: { + color: '#000000', + symbolColor: '#BBBBBB', + height: 36 + }, webPreferences: { sandbox: true, contextIsolation: true, @@ -474,7 +480,13 @@ const createMainWindow = (): void => { width: 1280, height: 720, frame: false, - icon: "./assets/icons/ytmd.png", + icon: './assets/icons/ytmd.png', + titleBarStyle: 'hidden', + titleBarOverlay: { + color: '#000000', + symbolColor: '#BBBBBB', + height: 36 + }, webPreferences: { sandbox: true, contextIsolation: true, diff --git a/src/shared/components/TitleBar.vue b/src/shared/components/TitleBar.vue index a89b51747..d0c742093 100644 --- a/src/shared/components/TitleBar.vue +++ b/src/shared/components/TitleBar.vue @@ -22,6 +22,8 @@ const closeWindow = window.ytmd.closeWindow; const openSettingsWindow = window.ytmd.openSettingsWindow; +const wcoVisible = ref((window.navigator as any).windowControlsOverlay.visible); + const windowMaximized = ref(false); window.ytmd.handleWindowEvents((event, state) => { @@ -39,11 +41,11 @@ window.ytmd.handleWindowEvents((event, state) => {
-
-
+
@@ -63,7 +65,8 @@ window.ytmd.handleWindowEvents((event, state) => { diff --git a/src/windows/settings/Index.vue b/src/windows/settings/Index.vue index 6ca720d6f..2e9a151ff 100644 --- a/src/windows/settings/Index.vue +++ b/src/windows/settings/Index.vue @@ -15,6 +15,8 @@ import Settings from "../../shared/components/Settings.vue"; diff --git a/webpack.renderer.config.ts b/webpack.renderer.config.ts index adebb86c0..af70f6597 100644 --- a/webpack.renderer.config.ts +++ b/webpack.renderer.config.ts @@ -1,10 +1,14 @@ -import type { Configuration } from "webpack"; +import { DefinePlugin, type Configuration } from "webpack"; import { VueLoaderPlugin } from "vue-loader"; import { rules } from "./webpack.rules"; import { plugins } from "./webpack.plugins"; +import { GitRevisionPlugin } from "git-revision-webpack-plugin"; + +const gitRevisionPlugin = new GitRevisionPlugin(); + rules.push({ test: /\.css$/, use: [{ loader: "style-loader" }, { loader: "css-loader" }] @@ -13,12 +17,26 @@ rules.push({ test: /\.vue$/, loader: "vue-loader" }); +rules.push({ + test: /\.png$/, + type: "asset/resource" +}); export const rendererConfig: Configuration = { module: { rules }, - plugins: [new VueLoaderPlugin(), ...plugins], + plugins: [ + gitRevisionPlugin, + new DefinePlugin({ + YTMD_GIT_VERSION: JSON.stringify(gitRevisionPlugin.version()), + YTMD_GIT_COMMIT_HASH: JSON.stringify(gitRevisionPlugin.commithash()), + YTMD_GIT_BRANCH: JSON.stringify(gitRevisionPlugin.branch()), + YTMD_GIT_LAST_COMMIT_DATE_TIME: JSON.stringify(gitRevisionPlugin.lastcommitdatetime()) + }), + new VueLoaderPlugin(), + ...plugins + ], resolve: { extensions: [".js", ".ts", ".jsx", ".tsx", ".css"] } diff --git a/yarn.lock b/yarn.lock index 705fd7e8a..0004e2bdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -474,14 +474,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - "@jridgewell/trace-mapping@^0.3.17": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" @@ -490,6 +482,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -666,11 +666,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/estree@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" @@ -1020,14 +1015,6 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -1036,45 +1023,21 @@ "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - "@webassemblyjs/floating-point-hex-parser@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - "@webassemblyjs/helper-api-error@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - "@webassemblyjs/helper-buffer@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@xtuc/long" "4.2.2" - "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" @@ -1084,26 +1047,11 @@ "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== - "@webassemblyjs/helper-wasm-bytecode@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/helper-wasm-section@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" @@ -1114,13 +1062,6 @@ "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/wasm-gen" "1.11.6" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - "@webassemblyjs/ieee754@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" @@ -1128,13 +1069,6 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== - dependencies: - "@xtuc/long" "4.2.2" - "@webassemblyjs/leb128@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" @@ -1142,30 +1076,11 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - "@webassemblyjs/utf8@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - "@webassemblyjs/wasm-edit@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" @@ -1180,17 +1095,6 @@ "@webassemblyjs/wasm-parser" "1.11.6" "@webassemblyjs/wast-printer" "1.11.6" -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-gen@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" @@ -1202,16 +1106,6 @@ "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wasm-opt@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" @@ -1222,18 +1116,6 @@ "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/wasm-parser" "1.11.6" -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - "@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" @@ -1246,14 +1128,6 @@ "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@xtuc/long" "4.2.2" - "@webassemblyjs/wast-printer@1.11.6": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" @@ -1297,11 +1171,6 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" @@ -2632,14 +2501,6 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.10.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" - integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -2707,11 +2568,6 @@ es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: unbox-primitive "^1.0.2" which-typed-array "^1.1.10" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-module-lexer@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" @@ -3522,6 +3378,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +git-revision-webpack-plugin@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/git-revision-webpack-plugin/-/git-revision-webpack-plugin-5.0.0.tgz#0683a6a110ece618499880431cd89e1eb597b536" + integrity sha512-RptQN/4UKcEPkCBmRy8kLPo5i8MnF8+XfAgFYN9gbwmKLTLx4YHsQw726H+C5+sIGDixDkmGL3IxPA2gKo+u4w== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -5884,15 +5745,6 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -schema-utils@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -5989,13 +5841,6 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" @@ -6460,17 +6305,6 @@ temp@^0.9.0: mkdirp "^0.5.1" rimraf "~2.6.2" -terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== - dependencies: - "@jridgewell/trace-mapping" "^0.3.14" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" - terser-webpack-plugin@^5.3.7: version "5.3.9" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" @@ -6482,7 +6316,7 @@ terser-webpack-plugin@^5.3.7: serialize-javascript "^6.0.1" terser "^5.16.8" -terser@^5.10.0, terser@^5.14.1: +terser@^5.10.0: version "5.16.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== @@ -6927,37 +6761,7 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.69.1: - version "5.75.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152" - integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -webpack@^5.88.2: +webpack@^5.69.1, webpack@^5.88.2: version "5.88.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== From cd9e557b1ea772540a0665b7fab949f0d8c89416 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Tue, 1 Aug 2023 15:04:17 -0500 Subject: [PATCH 186/489] =?UTF-8?q?=F0=9F=A9=B9=20Turn=20restart=20app=20b?= =?UTF-8?q?utton=20into=20a=20banner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/components/Settings.vue | 243 ++++++++++++++++------------- 1 file changed, 138 insertions(+), 105 deletions(-) diff --git a/src/shared/components/Settings.vue b/src/shared/components/Settings.vue index d68efecc4..e6c6b2dcb 100644 --- a/src/shared/components/Settings.vue +++ b/src/shared/components/Settings.vue @@ -48,7 +48,7 @@ const shortcutThumbsDown = ref(shortcuts.thumbsDown); const shortcutVolumeUp = ref(shortcuts.volumeUp); const shortcutVolumeDown = ref(shortcuts.volumeDown); -store.onDidAnyChange(async (newState) => { +store.onDidAnyChange(async newState => { hideToTrayOnClose.value = newState.general.hideToTrayOnClose; showNotificationOnSongChange.value = newState.general.showNotificationOnSongChange; startOnBoot.value = newState.general.startOnBoot; @@ -117,106 +117,105 @@ function restartApplication() { From e80af4d6caca28f659313f84f5044fa6ad9ef5a5 Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Wed, 2 Aug 2023 22:50:58 -0500 Subject: [PATCH 187/489] =?UTF-8?q?=F0=9F=90=9B=20Fix=20restart=20applicat?= =?UTF-8?q?ion=20not=20properly=20quitting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 3bd6c27e7..bc7d31d94 100644 --- a/src/index.ts +++ b/src/index.ts @@ -687,7 +687,8 @@ app.on("ready", () => { ipcMain.on('settingsWindow:restartapplication', () => { app.relaunch(); - app.exit(0); + applicationQuitting = true; + app.quit(); }); // Handle ytm view ipc From 95df781456092c80b5e3e88445b8ac4c2bc6db6b Mon Sep 17 00:00:00 2001 From: NovusTheory Date: Thu, 3 Aug 2023 10:21:31 -0500 Subject: [PATCH 188/489] =?UTF-8?q?=F0=9F=A9=B9=20Fix=20fullscreen=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 39 +++++++++++++++++++++++++++++- src/shared/components/TitleBar.vue | 4 ++- src/shared/types.ts | 3 ++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index bc7d31d94..95043d296 100644 --- a/src/index.ts +++ b/src/index.ts @@ -393,7 +393,8 @@ function sendMainWindowStateIpc() { if (mainWindow !== null) { mainWindow.webContents.send("mainWindow:stateChanged", { minimized: mainWindow.isMinimized(), - maximized: mainWindow.isMaximized() + maximized: mainWindow.isMaximized(), + fullscreen: mainWindow.isFullScreen() }); } } @@ -570,6 +571,16 @@ const createMainWindow = (): void => { }); ytmView.webContents.on("did-navigate", ytmViewNavigated); ytmView.webContents.on("did-navigate-in-page", ytmViewNavigated); + ytmView.webContents.on("enter-html-full-screen", () => { + if (mainWindow) { + mainWindow.setFullScreen(true); + } + }); + ytmView.webContents.on("leave-html-full-screen", () => { + if (mainWindow) { + mainWindow.setFullScreen(false); + } + }); ytmView.webContents.setWindowOpenHandler(details => { shell.openExternal(details.url); @@ -590,6 +601,28 @@ const createMainWindow = (): void => { }); }); + mainWindow.on("enter-full-screen", () => { + setTimeout(() => { + ytmView.setBounds({ + x: 0, + y: 0, + width: mainWindow.getContentBounds().width, + height: mainWindow.getContentBounds().height + }); + }); + sendMainWindowStateIpc(); + }); + mainWindow.on("leave-full-screen", () => { + setTimeout(() => { + ytmView.setBounds({ + x: 0, + y: 36, + width: mainWindow.getContentBounds().width, + height: mainWindow.getContentBounds().height - 36 + }); + }); + sendMainWindowStateIpc(); + }); mainWindow.on("maximize", sendMainWindowStateIpc); mainWindow.on("unmaximize", sendMainWindowStateIpc); mainWindow.on("minimize", sendMainWindowStateIpc); @@ -774,6 +807,10 @@ app.on("ready", () => { // Create the permission handlers session.fromPartition("persist:ytmview").setPermissionRequestHandler((webContents, permission, callback) => { + if (permission === "fullscreen") { + return callback(true); + } + return callback(false); }); diff --git a/src/shared/components/TitleBar.vue b/src/shared/components/TitleBar.vue index 87f6f8dee..500e5063b 100644 --- a/src/shared/components/TitleBar.vue +++ b/src/shared/components/TitleBar.vue @@ -25,14 +25,16 @@ const openSettingsWindow = window.ytmd.openSettingsWindow; const wcoVisible = ref(window.navigator.windowControlsOverlay.visible); const windowMaximized = ref(false); +const windowFullscreen = ref(false); window.ytmd.handleWindowEvents((event, state) => { windowMaximized.value = state.maximized; + windowFullscreen.value = state.fullscreen; });