diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 03f2450..0000000 --- a/.dockerignore +++ /dev/null @@ -1,16 +0,0 @@ -node_modules -npm-debug.log -Dockerfile* -docker-compose* -.dockerignore -.git -.github -.gitignore -README.md -LICENSE -.vscode -dist -dist_electron -build -images -script \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index db87e1f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = false -insert_final_newline = false \ No newline at end of file diff --git a/.electron-builder.config.js b/.electron-builder.config.js new file mode 100644 index 0000000..99fb05f --- /dev/null +++ b/.electron-builder.config.js @@ -0,0 +1,46 @@ +/** + * @type {import('electron-builder').Configuration} + * @see https://www.electron.build/configuration/configuration + */ +module.exports = { + appId: 'yesplaymusic', + productName: 'YesPlayMusic', + copyright: 'Copyright © 2022 ${author}', + asar: true, + directories: { + output: 'release/${version}', + buildResources: 'build', + }, + files: ['dist'], + win: { + target: [ + { + target: 'nsis', + arch: ['x64'], + }, + { + target: 'nsis', + arch: ['arm64'], + }, + { + target: 'nsis', + arch: ['ia32'], + }, + ], + artifactName: '${productName}-${version}-Setup.${ext}', + }, + nsis: { + oneClick: false, + perMachine: false, + allowToChangeInstallationDirectory: true, + deleteAppDataOnUninstall: true, + }, + mac: { + target: ['dmg'], + artifactName: '${productName}-${version}-Installer.${ext}', + }, + linux: { + target: ['AppImage'], + artifactName: '${productName}-${version}-Installer.${ext}', + }, +} diff --git a/.env b/.env new file mode 100644 index 0000000..678f4ef --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +ELECTRON_WEB_SERVER_PORT = 42710 +ELECTRON_DEV_NETEASE_API_PORT = 3000 +VITE_APP_NETEASE_API_URL = /netease diff --git a/.env.example b/.env.example deleted file mode 100644 index 7c0058a..0000000 --- a/.env.example +++ /dev/null @@ -1,7 +0,0 @@ -VUE_APP_NETEASE_API_URL=/api -VUE_APP_ELECTRON_API_URL=/api -VUE_APP_ELECTRON_API_URL_DEV=http://127.0.0.1:10754 -VUE_APP_LASTFM_API_KEY=09c55292403d961aa517ff7f5e8a3d9c -VUE_APP_LASTFM_API_SHARED_SECRET=307c9fda32b3904e53654baff215cb67 -DEV_SERVER_PORT=20201 - diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..7cd9a9d --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,28 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true, + jest: true, + }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:@typescript-eslint/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 'latest', + sourceType: 'module', + }, + plugins: ['react', '@typescript-eslint', 'react-hooks'], + rules: { + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'warn', + 'react/react-in-jsx-scope': 'off', + '@typescript-eslint/no-inferrable-types': 'off', + }, +} diff --git a/.github/ISSUE_TEMPLATE/----------.md b/.github/ISSUE_TEMPLATE/----------.md deleted file mode 100644 index ba42d00..0000000 --- a/.github/ISSUE_TEMPLATE/----------.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: 反馈问题或请求新功能 -about: bug & feature -title: '' -labels: '' -assignees: '' - ---- - -# 尽量每个 issue 只提一个 bug 或新功能 - -### 提新 issue 前请确认 👉 - -- 没人提过这个 issue([这里看所有 issue](https://github.com/qier222/YesPlayMusic/issues)) -- 项目的 Todo 里没有与你 issue 相关的内容([这里看 Todo](https://github.com/qier222/YesPlayMusic/projects/1)) - -### 反馈 bug 需要的信息 - -- 用的是网页版还是客户端 -- 浏览器名称或电脑操作系统 -- 控制台 Console 页面的截图(按 F12 可打开控制台) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 4d4ec4b..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,79 +0,0 @@ -name: Release - -on: - push: - branches: - - master - - "ci/*" - tags: - - v* - -jobs: - release: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [macos-latest, windows-latest, ubuntu-18.04] - - steps: - - name: Check out Git repository - uses: actions/checkout@v2 - with: - submodules: "recursive" - - - name: Install Node.js, NPM and Yarn - uses: actions/setup-node@v3 - with: - node-version: 16 - cache: 'yarn' - - - name: Install RPM & Pacman (on Ubuntu) - if: runner.os == 'Linux' - run: | - sudo apt-get update && - sudo apt-get install --no-install-recommends -y rpm && - sudo apt-get install --no-install-recommends -y bsdtar && - sudo apt-get install --no-install-recommends -y libopenjp2-tools - - - name: Install Snapcraft (on Ubuntu) - uses: samuelmeuli/action-snapcraft@v1 - if: startsWith(matrix.os, 'ubuntu') - with: - snapcraft_token: ${{ secrets.snapcraft_token }} - - - name: Build/release Electron app - uses: samuelmeuli/action-electron-builder@v1.6.0 - env: - VUE_APP_ELECTRON_API_URL: /api - VUE_APP_ELECTRON_API_URL_DEV: http://127.0.0.1:10754 - VUE_APP_LASTFM_API_KEY: 09c55292403d961aa517ff7f5e8a3d9c - VUE_APP_LASTFM_API_SHARED_SECRET: 307c9fda32b3904e53654baff215cb67 - with: - # GitHub token, automatically provided to the action - # (No need to define this secret in the repo settings) - github_token: ${{ secrets.github_token }} - - # If the commit is tagged with a version (e.g. "v1.0.0"), - # release the app after building - release: ${{ startsWith(github.ref, 'refs/tags/v') }} - - use_vue_cli: true - - - uses: actions/upload-artifact@v2 - with: - name: YesPlayMusic-mac - path: dist_electron/*-universal.dmg - if-no-files-found: ignore - - - uses: actions/upload-artifact@v2 - with: - name: YesPlayMusic-win - path: dist_electron/*Setup*.exe - if-no-files-found: ignore - - - uses: actions/upload-artifact@v2 - with: - name: YesPlayMusic-linux - path: dist_electron/*.AppImage - if-no-files-found: ignore diff --git a/.gitignore b/.gitignore index b96fe0f..7fd4188 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,88 @@ -.DS_Store -node_modules -/dist - -# local env files -.env -.env.local -.env.*.local - -# Log files +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +# Runtime data +pids +*.pid +*.seed +*.pid.lock -.vercel +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov -#Electron-builder output -/dist_electron -NeteaseCloudMusicApi-master -NeteaseCloudMusicApi-master.zip +# Coverage directory used by tools like istanbul +coverage -# Local Netlify folder -.netlify -vercel.json +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# 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/ + +# 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.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/ + +# ---- +dist +**/.tmp +release +.DS_Store +dist-ssr +*.local +.vscode/settings.json diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 13859d2..0000000 --- a/.prettierignore +++ /dev/null @@ -1,3 +0,0 @@ -build -coverage -dist diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 38800a3..0000000 --- a/.prettierrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "trailingComma": "es5", - "tabWidth": 2, - "useTabs": false, - "semi": true, - "singleQuote": true, - "jsxSingleQuote": true, - "arrowParens": "avoid", - "endOfLine": "lf", - "bracketSpacing": true, - "htmlWhitespaceSensitivity": "strict" -} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..0bf498a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,39 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Main(inspector)", + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", + "runtimeArgs": [ + "--remote-debugging-port=9222", + "${workspaceFolder}/dist/main/index.cjs", + ], + "env": { + "DEBUG": "true", + }, + "windows": { + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" + }, + "sourceMaps": true + }, + { + "type": "node", + "request": "launch", + "name": "Main(vite)", + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", + "runtimeArgs": [ + "${workspaceFolder}/dist/main/index.cjs", + ], + "env": { + "VITE_DEV_SERVER_HOST": "127.0.0.1", + "VITE_DEV_SERVER_PORT": "3344", + }, + "windows": { + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" + }, + "sourceMaps": true + }, + ] +} \ No newline at end of file diff --git a/.vscode/task.json b/.vscode/task.json new file mode 100644 index 0000000..69dcaa7 --- /dev/null +++ b/.vscode/task.json @@ -0,0 +1,13 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "debug", + "problemMatcher": [], + "label": "npm: debug", + "detail": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./packages/renderer\"", + "group": "build" + } + ] +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 21db7b8..0000000 --- a/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM node:16.13.1-alpine as build -ENV VUE_APP_NETEASE_API_URL=/api -WORKDIR /app -RUN apk add --no-cache python3 make g++ git -COPY package.json yarn.lock ./ -RUN yarn install -COPY . . -RUN yarn build - -FROM nginx:1.20.2-alpine as app -RUN echo $'server { \n\ - gzip on;\n\ - listen 80; \n\ - listen [::]:80; \n\ - server_name localhost; \n\ - \n\ - location / { \n\ - root /usr/share/nginx/html; \n\ - index index.html; \n\ - try_files $uri $uri/ /index.html; \n\ - } \n\ - \n\ - location @rewrites { \n\ - rewrite ^(.*)$ /index.html last; \n\ - } \n\ - \n\ - location /api/ { \n\ - proxy_set_header Host $host; \n\ - proxy_set_header X-Real-IP $remote_addr; \n\ - proxy_set_header X-Forwarded-For $remote_addr; \n\ - proxy_set_header X-Forwarded-Host $remote_addr; \n\ - proxy_set_header X-NginX-Proxy true; \n\ - proxy_pass http://localhost:3000/; \n\ - } \n\ - }' > /etc/nginx/conf.d/default.conf - -RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main libuv \ - && apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.14/main nodejs npm \ - && npm i -g NeteaseCloudMusicApi - -COPY --from=build /app/dist /usr/share/nginx/html - -CMD nginx ; exec npx NeteaseCloudMusicApi diff --git a/LICENSE b/LICENSE index d95eafc..8fd5175 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2022 qier222 +Copyright (c) 2021 草鞋没号 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 2ee5854..758abf2 100644 --- a/README.md +++ b/README.md @@ -1,231 +1 @@ -
-

- - Logo - -

YesPlayMusic

- -

- 高颜值的第三方网易云播放器 -
- 🌎 访问DEMO  |   - 📦️ 下载安装包  |   - 💬 加入交流群 -
-
-

-

- -[![Library][library-screenshot]](https://music.qier222.com) - -## ✨ 特性 - -- ✅ 使用 Vue.js 全家桶开发 -- 🔴 网易云账号登录(扫码/手机/邮箱登录) -- 📺 支持 MV 播放 -- 📃 支持歌词显示 -- 📻 支持私人 FM / 每日推荐歌曲 -- 🚫🤝 无任何社交功能 -- 🌎️ 海外用户可直接播放(需要登录网易云账号) -- 🔐 支持 [UnblockNeteaseMusic](https://github.com/UnblockNeteaseMusic/server#音源清单),自动使用[各类音源](https://github.com/UnblockNeteaseMusic/server#音源清单)替换变灰歌曲链接 (网页版不支持) - - 「各类音源」指默认启用的音源。 - - YouTube 音源需自行安装 `yt-dlp`。 -- ✔️ 每日自动签到(手机端和电脑端同时签到) -- 🌚 Light/Dark Mode 自动切换 -- 👆 支持 Touch Bar -- 🖥️ 支持 PWA,可在 Chrome/Edge 里点击地址栏右边的 ➕ 安装到电脑 -- 🟥 支持 Last.fm Scrobble -- ☁️ 支持音乐云盘 -- ⌨️ 自定义快捷键和全局快捷键 -- 🎧 支持Mpris -- 🛠 更多特性开发中 - -## 📦️ 安装 - -Electron 版本由 [@hawtim](https://github.com/hawtim) 和 [@qier222](https://github.com/qier222) 适配并维护,支持 macOS、Windows、Linux。 - -访问本项目的 [Releases](https://github.com/qier222/YesPlayMusic/releases) -页面下载安装包。 - -macOS 用户也可以通过 `brew install --cask yesplaymusic` 来安装。 - -## ⚙️ 部署至 Vercel - -除了下载安装包使用,你还可以将本项目部署到 Vercel 或你的服务器上。下面是部署到 Vercel 的方法。 - -1. 部署网易云 API,详情参见 [Binaryify/NeteaseCloudMusicApi](https://neteasecloudmusicapi.vercel.app/#/?id=%e5%ae%89%e8%a3%85) - 。你也可以将 API 部署到 Vercel。 - -2. 点击本仓库右上角的 Fork,复制本仓库到你的 GitHub 账号。 - -3. 点击仓库的 Add File,选择 Create new file,输入 `vercel.json`,将下面的内容复制粘贴到文件中,并将 `https://your-netease-api.example.com` 替换为你刚刚部署的网易云 API 地址: - -```json -{ - "rewrites": [ - { - "source": "/api/:match*", - "destination": "https://your-netease-api.example.com/:match*" - } - ] -} -``` - -4. 打开 [Vercel.com](https://vercel.com),使用 GitHub 登录。 - -5. 点击 Import Git Repository 并选择你刚刚复制的仓库并点击 Import。 - -6. 点击 PERSONAL ACCOUNT 旁边的 Select。 - -7. 点击 Environment Variables,填写 Name 为 `VUE_APP_NETEASE_API_URL`,Value 为 `/api`,点击 Add。最后点击底部的 Deploy 就可以部署到 - Vercel 了。 - -## ⚙️ 部署到自己的服务器 - -除了部署到 Vercel,你还可以部署到自己的服务器上 - -1. 部署网易云 API,详情参见 [Binaryify/NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) -2. 克隆本仓库 - -```sh -git clone --recursive https://github.com/qier222/YesPlayMusic.git -``` - -3. 安装依赖 - -```sh -yarn install - -``` - -4. (可选)使用 Nginx 反向代理 API,将 API 路径映射为 `/api`,如果 API 和网页不在同一个域名下的话(跨域),会有一些 bug。 - -5. 复制 `/.env.example` 文件为 `/.env`,修改里面 `VUE_APP_NETEASE_API_URL` 的值为网易云 API 地址。本地开发的话可以填写 API 地址为 `http://localhost:3000`,YesPlayMusic 地址为 `http://localhost:8080`。如果你使用了反向代理 API,可以填写 API 地址为 `/api`。 - -``` -VUE_APP_NETEASE_API_URL=http://localhost:3000 -``` - -6. 编译打包 - -```sh -yarn run build -``` - -7. 将 `/dist` 目录下的文件上传到你的 Web 服务器 - -## ⚙️ Docker 部署 - -1. 构建 Docker Image - -```sh -docker build -t yesplaymusic . -``` - -2. 启动 Docker Container - -```sh -docker run -d --name YesPlayMusic -p 80:80 yesplaymusic -``` - -3. Docker Compose 启动 - -```sh -docker-compose up -d -``` - -YesPlayMusic 地址为 `http://localhost` - -## 👷‍♂️ 打包客户端 - -如果在 Release 页面没有找到适合你的设备的安装包的话,你可以根据下面的步骤来打包自己的客户端。 - -1. 打包 Electron 需要用到 Node.js 和 Yarn。可前往 [Node.js 官网](https://nodejs.org/zh-cn/) 下载安装包。安装 Node.js - 后可在终端里执行 `npm install -g yarn` 来安装 Yarn。 - -2. 使用 `git clone --recursive https://github.com/qier222/YesPlayMusic.git` 克隆本仓库到本地。 - -3. 使用 `yarn install` 安装项目依赖。 - -4. 复制 `/.env.example` 文件为 `/.env` 。 - -5. 选择下列表格的命令来打包适合的你的安装包,打包出来的文件在 `/dist_electron` 目录下。了解更多信息可访问 [electron-builder 文档](https://www.electron.build/cli) - -| 命令 | 说明 | -| ------------------------------------------ | ------------------------- | -| `yarn electron:build --windows nsis:ia32` | Windows 32 位 | -| `yarn electron:build --windows nsis:arm64` | Windows ARM | -| `yarn electron:build --linux deb:armv7l` | Debian armv7l(树莓派等) | -| `yarn electron:build --macos dir:arm64` | macOS ARM | - -## :computer: 配置开发环境 - -本项目由 [NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) 提供 API。 - -运行本项目 - -```shell -# 安装依赖 -yarn install - -# 创建本地环境变量 -cp .env.example .env - -# 运行(网页端) -yarn serve - -# 运行(electron) -yarn electron:serve -``` - -本地运行 NeteaseCloudMusicApi,或者将 API [部署至 Vercel](#%EF%B8%8F-部署至-vercel) - -```shell -# 运行 API (默认 3000 端口) -yarn netease_api:run -``` - -## ☑️ Todo - -查看 Todo 请访问本项目的 [Projects](https://github.com/qier222/YesPlayMusic/projects/1) - -欢迎提 Issue 和 Pull request。 - -## 📜 开源许可 - -本项目仅供个人学习研究使用,禁止用于商业及非法用途。 - -基于 [MIT license](https://opensource.org/licenses/MIT) 许可进行开源。 - -## 灵感来源 - -API 源代码来自 [Binaryify/NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) - -- [Apple Music](https://music.apple.com) -- [YouTube Music](https://music.youtube.com) -- [Spotify](https://www.spotify.com) -- [网易云音乐](https://music.163.com) - -## 🖼️ 截图 - -![lyrics][lyrics-screenshot] -![library-dark][library-dark-screenshot] -![album][album-screenshot] -![home-2][home-2-screenshot] -![artist][artist-screenshot] -![search][search-screenshot] -![home][home-screenshot] -![explore][explore-screenshot] - - - - -[album-screenshot]: images/album.png -[artist-screenshot]: images/artist.png -[explore-screenshot]: images/explore.png -[home-screenshot]: images/home.png -[home-2-screenshot]: images/home-2.png -[lyrics-screenshot]: images/lyrics.png -[library-screenshot]: images/library.png -[library-dark-screenshot]: images/library-dark.png -[search-screenshot]: images/search.png +# YesPlayMusic 2.0 diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 707ce4a..0000000 --- a/babel.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - presets: [ - [ - '@vue/cli-plugin-babel/preset', - { - useBuiltIns: 'usage', - shippedProposals: true, - }, - ], - ], -}; diff --git a/build/icon.icns b/build/icon.icns new file mode 100644 index 0000000..9a9c785 Binary files /dev/null and b/build/icon.icns differ diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000..318c972 Binary files /dev/null and b/build/icon.ico differ diff --git a/build/icons/1024x1024.png b/build/icons/1024x1024.png deleted file mode 100644 index 9fc1c62..0000000 Binary files a/build/icons/1024x1024.png and /dev/null differ diff --git a/build/icons/128x128.png b/build/icons/128x128.png deleted file mode 100644 index af6310e..0000000 Binary files a/build/icons/128x128.png and /dev/null differ diff --git a/build/icons/16x16.png b/build/icons/16x16.png deleted file mode 100644 index 25e80fe..0000000 Binary files a/build/icons/16x16.png and /dev/null differ diff --git a/build/icons/24x24.png b/build/icons/24x24.png deleted file mode 100644 index d8e4715..0000000 Binary files a/build/icons/24x24.png and /dev/null differ diff --git a/build/icons/256x256.png b/build/icons/256x256.png deleted file mode 100644 index c511962..0000000 Binary files a/build/icons/256x256.png and /dev/null differ diff --git a/build/icons/32x32.png b/build/icons/32x32.png deleted file mode 100644 index d70242b..0000000 Binary files a/build/icons/32x32.png and /dev/null differ diff --git a/build/icons/48x48.png b/build/icons/48x48.png deleted file mode 100644 index 74fda19..0000000 Binary files a/build/icons/48x48.png and /dev/null differ diff --git a/build/icons/512x512.png b/build/icons/512x512.png deleted file mode 100644 index c5cda24..0000000 Binary files a/build/icons/512x512.png and /dev/null differ diff --git a/build/icons/64x64.png b/build/icons/64x64.png deleted file mode 100644 index 5eee418..0000000 Binary files a/build/icons/64x64.png and /dev/null differ diff --git a/build/icons/icon.icns b/build/icons/icon.icns deleted file mode 100644 index 9c2b3f3..0000000 Binary files a/build/icons/icon.icns and /dev/null differ diff --git a/build/icons/icon.ico b/build/icons/icon.ico deleted file mode 100644 index c3daede..0000000 Binary files a/build/icons/icon.ico and /dev/null differ diff --git a/build/icons/icon.png b/build/icons/icon.png deleted file mode 100644 index 23f64d2..0000000 Binary files a/build/icons/icon.png and /dev/null differ diff --git a/build/icons/menu@88.png b/build/icons/menu@88.png deleted file mode 100644 index cc14a82..0000000 Binary files a/build/icons/menu@88.png and /dev/null differ diff --git a/build/installerIcon.ico b/build/installerIcon.ico new file mode 100644 index 0000000..318c972 Binary files /dev/null and b/build/installerIcon.ico differ diff --git a/build/uninstallerIcon.ico b/build/uninstallerIcon.ico new file mode 100644 index 0000000..318c972 Binary files /dev/null and b/build/uninstallerIcon.ico differ diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index efc2826..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -services: - YesPlayMusic: - build: - context: . - image: yesplaymusic - container_name: YesPlayMusic - ports: - - 80:80 - restart: always diff --git a/images/album.png b/images/album.png deleted file mode 100644 index bf5936c..0000000 Binary files a/images/album.png and /dev/null differ diff --git a/images/artist.png b/images/artist.png deleted file mode 100644 index 7b5ac77..0000000 Binary files a/images/artist.png and /dev/null differ diff --git a/images/explore.png b/images/explore.png deleted file mode 100644 index 7fd0cfc..0000000 Binary files a/images/explore.png and /dev/null differ diff --git a/images/home-2.png b/images/home-2.png deleted file mode 100644 index 0b98d7d..0000000 Binary files a/images/home-2.png and /dev/null differ diff --git a/images/home.png b/images/home.png deleted file mode 100644 index 6de45c6..0000000 Binary files a/images/home.png and /dev/null differ diff --git a/images/library-dark.png b/images/library-dark.png deleted file mode 100644 index ca9f67a..0000000 Binary files a/images/library-dark.png and /dev/null differ diff --git a/images/library.png b/images/library.png deleted file mode 100644 index bd28ce0..0000000 Binary files a/images/library.png and /dev/null differ diff --git a/images/logo.png b/images/logo.png deleted file mode 100644 index f415d4a..0000000 Binary files a/images/logo.png and /dev/null differ diff --git a/images/lyrics.png b/images/lyrics.png deleted file mode 100644 index 522747a..0000000 Binary files a/images/lyrics.png and /dev/null differ diff --git a/images/search.png b/images/search.png deleted file mode 100644 index 2befdfc..0000000 Binary files a/images/search.png and /dev/null differ diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 0d612a8..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - // 支持 @ 的别名解析 - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["src/*"] - }, - "target": "ES6", - "module": "commonjs", - "allowSyntheticDefaultImports": true - }, - "include": ["src/**/*"], - "exclude": ["node_modules"] -} diff --git a/package.json b/package.json index 8b1a1d9..7b6631e 100644 --- a/package.json +++ b/package.json @@ -1,130 +1,85 @@ { - "name": "yesplaymusic", - "version": "0.4.4", + "name": "yesplamusic", + "productName": "YesPlayMusic", "private": true, - "description": "A third party music player for Netease Music", - "author": "qier222", + "version": "2.0.0", + "description": "A nifty third-party NetEase Music player", + "homepage": "https://github.com/qier222/YesPlayMusic", + "license": "MIT", + "author": "qier222 ", + "repository": "github:qier222/YesPlayMusic", + "main": "dist/main/index.cjs", "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "lint": "vue-cli-service lint", - "electron:build": "vue-cli-service electron:build -p never", - "electron:build-all": "vue-cli-service electron:build -p never -mwl", - "electron:build-mac": "vue-cli-service electron:build -p never -m", - "electron:build-win": "vue-cli-service electron:build -p never -w", - "electron:build-linux": "vue-cli-service electron:build -p never -l", - "electron:serve": "vue-cli-service electron:serve", - "electron:buildicon": "electron-icon-builder --input=./build/icons/icon.png --output=build --flatten", - "electron:publish": "vue-cli-service electron:build -mwl -p always", - "postinstall": "electron-builder install-app-deps", - "postuninstall": "electron-builder install-app-deps", - "prettier": "npx prettier --write ./src", - "netease_api:run": "npx NeteaseCloudMusicApi" + "dev": "node scripts/watch.mjs", + "build": "npm run typecheck && node scripts/build.mjs && electron-builder --config .electron-builder.config.js", + "typecheck": "tsc --noEmit --project packages/renderer/tsconfig.json", + "debug": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./packages/renderer\"", + "eslint": "eslint --ext .ts,.js ./", + "prettier": "prettier --write './**/*.{ts,js,tsx,jsx}'" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "main": "background.js", "dependencies": { - "@unblockneteasemusic/server": "v0.27.0-rc.4", - "NeteaseCloudMusicApi": "^4.5.2", - "axios": "^0.21.0", + "NeteaseCloudMusicApi": "^4.5.8", "change-case": "^4.1.2", - "cli-color": "^2.0.0", - "color": "^3.1.3", - "core-js": "^3.6.5", - "crypto-js": "^4.0.0", - "dayjs": "^1.8.36", - "dexie": "^3.0.3", - "discord-rich-presence": "^0.0.8", - "electron": "^13.6.7", - "electron-builder": "^23.0.0", - "electron-context-menu": "^2.3.0", - "electron-debug": "^3.1.0", - "electron-devtools-installer": "^3.2", - "electron-icon-builder": "^1.0.2", - "electron-is-dev": "^1.2.0", - "electron-log": "^4.3.0", - "electron-store": "^6.0.1", - "electron-updater": "^4.3.5", - "express": "^4.17.1", - "express-fileupload": "^1.2.0", - "express-http-proxy": "^1.6.2", - "extract-zip": "^2.0.1", - "howler": "^2.2.3", - "js-cookie": "^2.2.1", - "jsbi": "^4.1.0", - "lodash": "^4.17.20", - "md5": "^2.3.0", - "mpris-service": "^2.1.2", - "music-metadata": "^7.5.3", - "node-vibrant": "^3.2.1-alpha.1", - "nprogress": "^0.2.0", - "pac-proxy-agent": "^4.1.0", - "plyr": "^3.6.2", - "prettier": "2.5.1", - "qrcode": "^1.4.4", - "register-service-worker": "^1.7.1", - "svg-sprite-loader": "^5.0.0", - "tunnel": "^0.0.6", - "vscode-codicons": "^0.0.17", - "vue": "^2.6.11", - "vue-analytics": "^5.22.1", - "vue-clipboard2": "^0.3.1", - "vue-i18n": "^8.22.0", - "vue-router": "^3.4.3", - "vue-slider-component": "^3.2.5", - "vuex": "^3.4.0", - "x11": "^2.3.0" + "cookie-parser": "^1.4.6", + "electron-log": "^4.4.6", + "electron-store": "^8.0.1", + "express": "^4.17.3", + "realm": "^10.13.0" }, "devDependencies": { - "@types/node": "^17.0.0", - "@vue/cli-plugin-babel": "~4.5.0", - "@vue/cli-plugin-eslint": "~4.5.0", - "@vue/cli-plugin-pwa": "~4.5.0", - "@vue/cli-plugin-vuex": "~4.5.0", - "@vue/cli-service": "~4.5.0", - "babel-eslint": "^10.1.0", - "eslint": "^6.7.2", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-prettier": "^3.3.1", - "eslint-plugin-vue": "^7.9.0", - "husky": "^4.3.0", - "sass": "^1.26.11", - "sass-loader": "^10.0.2", - "vue-cli-plugin-electron-builder": "~2.1.1", - "vue-template-compiler": "^2.6.11" - }, - "resolutions": { - "icon-gen": "3.0.0", - "degenerator": "2.2.0", - "electron-builder": "^23.0.0" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true, - "browser": true - }, - "extends": [ - "plugin:vue/essential", - "plugin:vue/recommended", - "plugin:prettier/recommended", - "eslint:recommended" - ], - "parserOptions": { - "parser": "babel-eslint" - }, - "globals": { - "ipcRenderer": "off" - }, - "rules": {} - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not dead" - ], - "husky": { - "hooks": { - "pre-commit": "npm run prettier" - } + "@trivago/prettier-plugin-sort-imports": "^3.2.0", + "@types/express": "^4.17.13", + "@types/howler": "^2.2.6", + "@types/js-cookie": "^3.0.1", + "@types/lodash-es": "^4.17.6", + "@types/md5": "^2.3.2", + "@types/qrcode": "^1.4.2", + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.11", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.13.0", + "@vitejs/plugin-react": "^1.2.0", + "ahooks": "^3.1.13", + "ansi-styles": "^6.1.0", + "autoprefixer": "^10.4.2", + "axios": "^0.26.0", + "classnames": "^2.3.1", + "color.js": "^1.2.0", + "colord": "^2.9.2", + "cross-env": "^7.0.3", + "dayjs": "^1.10.8", + "electron": "^17.0.0", + "electron-builder": "^22.14.13", + "electron-devtools-installer": "^3.2.0", + "eslint": "^8.10.0", + "eslint-plugin-react": "^7.29.3", + "eslint-plugin-react-hooks": "^4.3.0", + "howler": "^2.2.3", + "js-cookie": "^3.0.1", + "lodash-es": "^4.17.21", + "md5": "^2.3.0", + "postcss": "^8.4.7", + "prettier": "2.5.1", + "prettier-plugin-tailwindcss": "^0.1.8", + "qrcode": "^1.5.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-hot-toast": "^2.2.0", + "react-query": "^3.34.16", + "react-router-dom": "^6.2.2", + "react-use": "^17.3.2", + "rollup-plugin-visualizer": "^5.6.0", + "sass": "^1.49.9", + "tailwindcss": "^3.0.23", + "typescript": "^4.6.2", + "unplugin-auto-import": "^0.6.4", + "valtio": "^1.3.1", + "valtio-persist": "^1.0.2", + "vite": "^2.8.0", + "vite-plugin-resolve": "^1.5.2", + "vite-plugin-svg-icons": "^2.0.1" } } diff --git a/packages/main/index.ts b/packages/main/index.ts new file mode 100644 index 0000000..2771f09 --- /dev/null +++ b/packages/main/index.ts @@ -0,0 +1,136 @@ +import { + BrowserWindow, + BrowserWindowConstructorOptions, + app, + shell, +} from 'electron' +import installExtension, { + REACT_DEVELOPER_TOOLS, + REDUX_DEVTOOLS, +} from 'electron-devtools-installer' +import Store from 'electron-store' +import { release } from 'os' +import { join } from 'path' +import Realm from 'realm' +import logger from './logger' +import './server' + +const isWindows = process.platform === 'win32' +const isMac = process.platform === 'darwin' +const isLinux = process.platform === 'linux' +const isDev = !app.isPackaged + +// Disable GPU Acceleration for Windows 7 +if (release().startsWith('6.1')) app.disableHardwareAcceleration() + +// Set application name for Windows 10+ notifications +if (process.platform === 'win32') app.setAppUserModelId(app.getName()) + +if (!app.requestSingleInstanceLock()) { + app.quit() + process.exit(0) +} + +interface TypedElectronStore { + window: { + width: number + height: number + x?: number + y?: number + } +} + +const store = new Store({ + defaults: { + window: { + width: 1440, + height: 960, + }, + }, +}) + +let win: BrowserWindow | null = null + +async function createWindow() { + // Create window + const options: BrowserWindowConstructorOptions = { + title: 'Main window', + webPreferences: { + preload: join(__dirname, '../preload/index.cjs'), + }, + width: store.get('window.width'), + height: store.get('window.height'), + minWidth: 1080, + minHeight: 720, + vibrancy: 'fullscreen-ui', + titleBarStyle: 'hiddenInset', + } + if (store.get('window')) { + options.x = store.get('window.x') + options.y = store.get('window.y') + } + win = new BrowserWindow(options) + + // Web server + if (app.isPackaged || process.env['DEBUG']) { + win.loadFile(join(__dirname, '../renderer/index.html')) + } else { + const url = `http://${process.env['VITE_DEV_SERVER_HOST']}:${process.env['VITE_DEV_SERVER_PORT']}` + logger.info(`[index] Vite dev server running at: ${url}`) + + win.loadURL(url) + win.webContents.openDevTools() + } + + // Make all links open with the browser, not with the application + win.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith('https:')) shell.openExternal(url) + return { action: 'deny' } + }) + + // Save window position + const saveBounds = () => { + const bounds = win?.getBounds() + if (bounds) { + store.set('window', bounds) + } + } + win.on('resized', saveBounds) + win.on('moved', saveBounds) +} + +app.whenReady().then(async () => { + createWindow() + + // Install devtool extension + if (isDev) { + installExtension(REACT_DEVELOPER_TOOLS.id).catch(err => + console.log('An error occurred: ', err) + ) + installExtension(REDUX_DEVTOOLS.id).catch(err => + console.log('An error occurred: ', err) + ) + } +}) + +app.on('window-all-closed', () => { + win = null + if (process.platform !== 'darwin') app.quit() +}) + +app.on('second-instance', () => { + if (win) { + // Focus on the main window if the user tried to open another + if (win.isMinimized()) win.restore() + win.focus() + } +}) + +app.on('activate', () => { + const allWindows = BrowserWindow.getAllWindows() + if (allWindows.length) { + allWindows[0].focus() + } else { + createWindow() + } +}) diff --git a/packages/main/logger.ts b/packages/main/logger.ts new file mode 100644 index 0000000..90ec5ba --- /dev/null +++ b/packages/main/logger.ts @@ -0,0 +1,29 @@ +import styles from 'ansi-styles' +import { app } from 'electron' +import logger from 'electron-log' + +const color = (hex: string, text: string) => { + return `${styles.color.ansi(styles.hexToAnsi(hex))}${text}${ + styles.color.close + }` +} + +logger.transports.console.format = `${color( + '38bdf8', + '[main]' +)} {h}:{i}:{s}.{ms}{scope} › {text}` + +logger.transports.file.level = app.isPackaged ? 'info' : 'debug' +logger.info( + color( + '335eea', + `\n\n██╗ ██╗███████╗███████╗██████╗ ██╗ █████╗ ██╗ ██╗███╗ ███╗██╗ ██╗███████╗██╗ ██████╗ +╚██╗ ██╔╝██╔════╝██╔════╝██╔══██╗██║ ██╔══██╗╚██╗ ██╔╝████╗ ████║██║ ██║██╔════╝██║██╔════╝ + ╚████╔╝ █████╗ ███████╗██████╔╝██║ ███████║ ╚████╔╝ ██╔████╔██║██║ ██║███████╗██║██║ + ╚██╔╝ ██╔══╝ ╚════██║██╔═══╝ ██║ ██╔══██║ ╚██╔╝ ██║╚██╔╝██║██║ ██║╚════██║██║██║ + ██║ ███████╗███████║██║ ███████╗██║ ██║ ██║ ██║ ╚═╝ ██║╚██████╔╝███████║██║╚██████╗ + ╚═╝ ╚══════╝╚══════╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝\n` + ) +) + +export default logger diff --git a/packages/main/server.ts b/packages/main/server.ts new file mode 100644 index 0000000..5a44289 --- /dev/null +++ b/packages/main/server.ts @@ -0,0 +1,45 @@ +import { pathCase } from 'change-case' +import cookieParser from 'cookie-parser' +import express, { Request, Response } from 'express' +import logger from './logger' + +const neteaseApi = require('NeteaseCloudMusicApi') + +const app = express() +app.use(cookieParser()) +const port = Number(process.env['ELECTRON_DEV_NETEASE_API_PORT'] ?? 3000) + +Object.entries(neteaseApi).forEach(([name, handler]) => { + if (['serveNcmApi', 'getModulesDefinitions'].includes(name)) { + return + } + + const wrappedHandler = async (req: Request, res: Response) => { + logger.info(`[server] Handling request: ${req.path}`) + try { + const result = await handler({ + ...req.query, + // cookie: + // 'MUSIC_U=1239b6c1217d8cd240df9c8fa15e99a62f9aaac86baa7a8aa3166acbad267cd8a237494327fc3ec043124f3fcebe94e446b14e3f0c3f8af9fe5c85647582a507', + // cookie: req.headers.cookie, + cookie: `MUSIC_U=${req.cookies['MUSIC_U']}`, + }) + res.send(result.body) + } catch (error) { + res.status(500).send(error) + } + } + + app.get( + `/netease/${pathCase(name)}`, + async (req: Request, res: Response) => await wrappedHandler(req, res) + ) + app.post( + `/netease/${pathCase(name)}`, + async (req: Request, res: Response) => await wrappedHandler(req, res) + ) +}) + +app.listen(port, () => { + logger.info(`[server] API server listening on port ${port}`) +}) diff --git a/packages/main/vite.config.ts b/packages/main/vite.config.ts new file mode 100644 index 0000000..3441c12 --- /dev/null +++ b/packages/main/vite.config.ts @@ -0,0 +1,32 @@ +import dotenv from 'dotenv' +import { builtinModules } from 'module' +import path from 'path' +import { defineConfig } from 'vite' +import pkg from '../../package.json' +import esm2cjs from '../../scripts/vite-plugin-esm2cjs' + +dotenv.config({ + path: path.resolve(process.cwd(), '.env'), +}) + +export default defineConfig({ + root: __dirname, + build: { + outDir: '../../dist/main', + emptyOutDir: true, + lib: { + entry: 'index.ts', + formats: ['cjs'], + fileName: () => '[name].cjs', + }, + minify: process.env./* from mode option */ NODE_ENV === 'production', + sourcemap: process.env./* from mode option */ NODE_ENV === 'debug', + rollupOptions: { + external: [ + 'electron', + ...builtinModules, + ...Object.keys(pkg.dependencies || {}), + ], + }, + }, +}) diff --git a/packages/preload/index.ts b/packages/preload/index.ts new file mode 100644 index 0000000..ec41276 --- /dev/null +++ b/packages/preload/index.ts @@ -0,0 +1,36 @@ +import { contextBridge, ipcRenderer } from 'electron' +import fs from 'fs' +import { useLoading } from './loading' +import { domReady } from './utils' + +const { appendLoading, removeLoading } = useLoading() + +;(async () => { + await domReady() + + appendLoading() +})() + +// --------- Expose some API to the Renderer process. --------- +contextBridge.exposeInMainWorld('fs', fs) +contextBridge.exposeInMainWorld('removeLoading', removeLoading) +contextBridge.exposeInMainWorld('ipcRenderer', withPrototype(ipcRenderer)) + +// `exposeInMainWorld` can't detect attributes and methods of `prototype`, manually patching it. +function withPrototype(obj: Record) { + const protos = Object.getPrototypeOf(obj) + + for (const [key, value] of Object.entries(protos)) { + if (Object.prototype.hasOwnProperty.call(obj, key)) continue + + if (typeof value === 'function') { + // Some native APIs, like `NodeJS.EventEmitter['on']`, don't work in the Renderer process. Wrapping them into a function. + obj[key] = function (...args: any) { + return value.call(obj, ...args) + } + } else { + obj[key] = value + } + } + return obj +} diff --git a/packages/preload/loading.ts b/packages/preload/loading.ts new file mode 100644 index 0000000..e4babed --- /dev/null +++ b/packages/preload/loading.ts @@ -0,0 +1,54 @@ +/** + * https://tobiasahlin.com/spinkit + * https://connoratherton.com/loaders + * https://projects.lukehaas.me/css-loaders + * https://matejkustec.github.io/SpinThatShit + */ +export function useLoading() { + const className = `loaders-css__square-spin` + const styleContent = ` +@keyframes square-spin { + 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); } + 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); } + 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); } + 100% { transform: perspective(100px) rotateX(0) rotateY(0); } +} +.${className} > div { + animation-fill-mode: both; + width: 50px; + height: 50px; + background: #fff; + animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; +} +.app-loading-wrap { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #282c34; + z-index: 9; +} + ` + const oStyle = document.createElement('style') + const oDiv = document.createElement('div') + + oStyle.id = 'app-loading-style' + oStyle.innerHTML = styleContent + oDiv.className = 'app-loading-wrap' + oDiv.innerHTML = `
` + + return { + appendLoading() { + document.head.appendChild(oStyle) + document.body.appendChild(oDiv) + }, + removeLoading() { + document.head.removeChild(oStyle) + document.body.removeChild(oDiv) + }, + } +} diff --git a/packages/preload/utils.ts b/packages/preload/utils.ts new file mode 100644 index 0000000..7cdda98 --- /dev/null +++ b/packages/preload/utils.ts @@ -0,0 +1,16 @@ +/** Document ready */ +export const domReady = ( + condition: DocumentReadyState[] = ['complete', 'interactive'] +) => { + return new Promise(resolve => { + if (condition.includes(document.readyState)) { + resolve(true) + } else { + document.addEventListener('readystatechange', () => { + if (condition.includes(document.readyState)) { + resolve(true) + } + }) + } + }) +} diff --git a/packages/preload/vite.config.ts b/packages/preload/vite.config.ts new file mode 100644 index 0000000..d2cc802 --- /dev/null +++ b/packages/preload/vite.config.ts @@ -0,0 +1,30 @@ +import dotenv from 'dotenv' +import { builtinModules } from 'module' +import path from 'path' +import { defineConfig } from 'vite' +import pkg from '../../package.json' + +dotenv.config({ + path: path.resolve(process.cwd(), '.env'), +}) + +export default defineConfig({ + root: __dirname, + build: { + outDir: '../../dist/preload', + emptyOutDir: true, + lib: { + entry: 'index.ts', + formats: ['cjs'], + fileName: () => '[name].cjs', + }, + minify: process.env./* from mode option */ NODE_ENV === 'production', + rollupOptions: { + external: [ + 'electron', + ...builtinModules, + ...Object.keys(pkg.dependencies || {}), + ], + }, + }, +}) diff --git a/packages/renderer/index.html b/packages/renderer/index.html new file mode 100644 index 0000000..185f862 --- /dev/null +++ b/packages/renderer/index.html @@ -0,0 +1,17 @@ + + + + + + + + + YesPlayMusic + + + +
+ + + + diff --git a/src/assets/fonts/Barlow-Black.ttf b/packages/renderer/public/fonts/Barlow-Black.ttf similarity index 100% rename from src/assets/fonts/Barlow-Black.ttf rename to packages/renderer/public/fonts/Barlow-Black.ttf diff --git a/src/assets/fonts/Barlow-Black.woff2 b/packages/renderer/public/fonts/Barlow-Black.woff2 similarity index 100% rename from src/assets/fonts/Barlow-Black.woff2 rename to packages/renderer/public/fonts/Barlow-Black.woff2 diff --git a/src/assets/fonts/Barlow-Bold.ttf b/packages/renderer/public/fonts/Barlow-Bold.ttf similarity index 100% rename from src/assets/fonts/Barlow-Bold.ttf rename to packages/renderer/public/fonts/Barlow-Bold.ttf diff --git a/src/assets/fonts/Barlow-Bold.woff2 b/packages/renderer/public/fonts/Barlow-Bold.woff2 similarity index 100% rename from src/assets/fonts/Barlow-Bold.woff2 rename to packages/renderer/public/fonts/Barlow-Bold.woff2 diff --git a/src/assets/fonts/Barlow-ExtraBold.ttf b/packages/renderer/public/fonts/Barlow-ExtraBold.ttf similarity index 100% rename from src/assets/fonts/Barlow-ExtraBold.ttf rename to packages/renderer/public/fonts/Barlow-ExtraBold.ttf diff --git a/src/assets/fonts/Barlow-ExtraBold.woff2 b/packages/renderer/public/fonts/Barlow-ExtraBold.woff2 similarity index 100% rename from src/assets/fonts/Barlow-ExtraBold.woff2 rename to packages/renderer/public/fonts/Barlow-ExtraBold.woff2 diff --git a/src/assets/fonts/Barlow-Medium.ttf b/packages/renderer/public/fonts/Barlow-Medium.ttf similarity index 100% rename from src/assets/fonts/Barlow-Medium.ttf rename to packages/renderer/public/fonts/Barlow-Medium.ttf diff --git a/src/assets/fonts/Barlow-Medium.woff2 b/packages/renderer/public/fonts/Barlow-Medium.woff2 similarity index 100% rename from src/assets/fonts/Barlow-Medium.woff2 rename to packages/renderer/public/fonts/Barlow-Medium.woff2 diff --git a/src/assets/fonts/Barlow-Regular.ttf b/packages/renderer/public/fonts/Barlow-Regular.ttf similarity index 100% rename from src/assets/fonts/Barlow-Regular.ttf rename to packages/renderer/public/fonts/Barlow-Regular.ttf diff --git a/src/assets/fonts/Barlow-Regular.woff2 b/packages/renderer/public/fonts/Barlow-Regular.woff2 similarity index 100% rename from src/assets/fonts/Barlow-Regular.woff2 rename to packages/renderer/public/fonts/Barlow-Regular.woff2 diff --git a/src/assets/fonts/Barlow-SemiBold.ttf b/packages/renderer/public/fonts/Barlow-SemiBold.ttf similarity index 100% rename from src/assets/fonts/Barlow-SemiBold.ttf rename to packages/renderer/public/fonts/Barlow-SemiBold.ttf diff --git a/src/assets/fonts/Barlow-SemiBold.woff2 b/packages/renderer/public/fonts/Barlow-SemiBold.woff2 similarity index 100% rename from src/assets/fonts/Barlow-SemiBold.woff2 rename to packages/renderer/public/fonts/Barlow-SemiBold.woff2 diff --git a/packages/renderer/public/fonts/Manrope-Bold.ttf b/packages/renderer/public/fonts/Manrope-Bold.ttf new file mode 100755 index 0000000..782e6a7 Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-Bold.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-ExtraBold.ttf b/packages/renderer/public/fonts/Manrope-ExtraBold.ttf new file mode 100755 index 0000000..8501230 Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-ExtraBold.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-ExtraLight.ttf b/packages/renderer/public/fonts/Manrope-ExtraLight.ttf new file mode 100755 index 0000000..9e0160b Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-ExtraLight.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-Light.ttf b/packages/renderer/public/fonts/Manrope-Light.ttf new file mode 100755 index 0000000..fcf5ed7 Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-Light.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-Medium.ttf b/packages/renderer/public/fonts/Manrope-Medium.ttf new file mode 100755 index 0000000..22badeb Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-Medium.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-Regular.ttf b/packages/renderer/public/fonts/Manrope-Regular.ttf new file mode 100755 index 0000000..7cf09bf Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-Regular.ttf differ diff --git a/packages/renderer/public/fonts/Manrope-SemiBold.ttf b/packages/renderer/public/fonts/Manrope-SemiBold.ttf new file mode 100755 index 0000000..c3a6768 Binary files /dev/null and b/packages/renderer/public/fonts/Manrope-SemiBold.ttf differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-Bold.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-Bold.woff2 new file mode 100644 index 0000000..931f5ac Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-Bold.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-BoldItalic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-BoldItalic.woff2 new file mode 100644 index 0000000..3fd7482 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-BoldItalic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-ExtraBold.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-ExtraBold.woff2 new file mode 100644 index 0000000..ab159ac Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-ExtraBold.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-ExtraBoldItalic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-ExtraBoldItalic.woff2 new file mode 100644 index 0000000..08a6827 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-ExtraBoldItalic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-ExtraLight.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-ExtraLight.woff2 new file mode 100644 index 0000000..a766da1 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-ExtraLight.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-ExtraLightItalic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-ExtraLightItalic.woff2 new file mode 100644 index 0000000..4485c62 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-ExtraLightItalic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-Italic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-Italic.woff2 new file mode 100644 index 0000000..e5fce48 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-Italic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-Light.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-Light.woff2 new file mode 100644 index 0000000..2d4fd71 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-Light.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-LightItalic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-LightItalic.woff2 new file mode 100644 index 0000000..7f6a6df Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-LightItalic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-Medium.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-Medium.woff2 new file mode 100644 index 0000000..11a4c56 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-Medium.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-MediumItalic.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-MediumItalic.woff2 new file mode 100644 index 0000000..91c7b49 Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-MediumItalic.woff2 differ diff --git a/packages/renderer/public/fonts/PlusJakartaSans-Regular.woff2 b/packages/renderer/public/fonts/PlusJakartaSans-Regular.woff2 new file mode 100644 index 0000000..edfeb8e Binary files /dev/null and b/packages/renderer/public/fonts/PlusJakartaSans-Regular.woff2 differ diff --git a/packages/renderer/src/App.tsx b/packages/renderer/src/App.tsx new file mode 100644 index 0000000..2a688f0 --- /dev/null +++ b/packages/renderer/src/App.tsx @@ -0,0 +1,36 @@ +import { Toaster } from 'react-hot-toast' +import { QueryClientProvider } from 'react-query' +import { ReactQueryDevtools } from 'react-query/devtools' +import Player from '@/components/Player' +import Sidebar from '@/components/Sidebar' +import reactQueryClient from '@/utils/reactQueryClient' +import Main from './components/Main' + +const App = () => { + return ( + +
+ +
+ +
+ + + + {/* Devtool */} + +
+ ) +} + +export default App diff --git a/packages/renderer/src/api/album.ts b/packages/renderer/src/api/album.ts new file mode 100644 index 0000000..fd7d3e7 --- /dev/null +++ b/packages/renderer/src/api/album.ts @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +export enum AlbumApiNames { + FETCH_ALBUM = 'fetchAlbum', +} + +// 专辑详情 +export interface FetchAlbumParams { + id: number +} +interface FetchAlbumResponse { + code: number + resourceState: boolean + album: Album + songs: Track[] + description: string +} +export function fetchAlbum( + params: FetchAlbumParams, + noCache: boolean +): Promise { + const otherParams: { timestamp?: number } = {} + if (noCache) otherParams.timestamp = new Date().getTime() + return request({ + url: '/album', + method: 'get', + params: { ...params, ...otherParams }, + }) +} diff --git a/packages/renderer/src/api/artist.ts b/packages/renderer/src/api/artist.ts new file mode 100644 index 0000000..6e688ba --- /dev/null +++ b/packages/renderer/src/api/artist.ts @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +export enum ArtistApiNames { + FETCH_ARTIST = 'fetchArtist', + FETCH_ARTIST_ALBUMS = 'fetchArtistAlbums', +} + +// 歌手详情 +export interface FetchArtistParams { + id: number +} +interface FetchArtistResponse { + code: number + more: boolean + artist: Artist + hotSongs: Track[] +} +export function fetchArtist( + params: FetchArtistParams, + noCache: boolean +): Promise { + const otherParams: { timestamp?: number } = {} + if (noCache) otherParams.timestamp = new Date().getTime() + return request({ + url: '/artists', + method: 'get', + params: { ...params, ...otherParams }, + }) +} + +// 获取歌手的专辑列表 +export interface FetchArtistAlbumsParams { + id: number + limit?: number // default: 50 + offset?: number // default: 0 +} +interface FetchArtistAlbumsResponse { + code: number + hotAlbums: Album[] + more: boolean + artist: Artist +} +export function fetchArtistAlbums( + params: FetchArtistAlbumsParams +): Promise { + return request({ + url: 'artist/album', + method: 'get', + params, + }) +} diff --git a/packages/renderer/src/api/auth.ts b/packages/renderer/src/api/auth.ts new file mode 100644 index 0000000..67a7822 --- /dev/null +++ b/packages/renderer/src/api/auth.ts @@ -0,0 +1,115 @@ +import type { fetchUserAccountResponse } from '@/api/user' +import request from '@/utils/request' + +// 手机号登录 +interface LoginWithPhoneParams { + countrycode: number | string + phone: string + password?: string + md5_password?: string + captcha?: string | number +} +export interface LoginWithPhoneResponse { + loginType: number + code: number + cookie: string +} +export function loginWithPhone( + params: LoginWithPhoneParams +): Promise { + return request({ + url: '/login/cellphone', + method: 'post', + params, + }) +} + +// 邮箱登录 +export interface LoginWithEmailParams { + email: string + password?: string + md5_password?: string +} +export interface loginWithEmailResponse extends fetchUserAccountResponse { + code: number + cookie: string + loginType: number + token: string + binding: { + bindingTime: number + expired: boolean + expiresIn: number + id: number + refreshTime: number + tokenJsonStr: string + type: number + url: string + userId: number + }[] +} +export function loginWithEmail( + params: LoginWithEmailParams +): Promise { + return request({ + url: '/login', + method: 'post', + params, + }) +} + +// 生成二维码key +export interface fetchLoginQrCodeKeyResponse { + code: number + data: { + code: number + unikey: string + } +} +export function fetchLoginQrCodeKey(): Promise { + return request({ + url: '/login/qr/key', + method: 'get', + params: { + timestamp: new Date().getTime(), + }, + }) +} + +// 二维码检测扫码状态接口 +// 说明: 轮询此接口可获取二维码扫码状态,800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功(803状态码下会返回cookies) +export interface CheckLoginQrCodeStatusParams { + key: string +} +export interface CheckLoginQrCodeStatusResponse { + code: number + message?: string + cookie?: string +} +export function checkLoginQrCodeStatus( + params: CheckLoginQrCodeStatusParams +): Promise { + return request({ + url: '/login/qr/check', + method: 'get', + params: { + key: params.key, + timestamp: new Date().getTime(), + }, + }) +} + +// 刷新登录 +export function refreshCookie() { + return request({ + url: '/login/refresh', + method: 'post', + }) +} + +// 退出登录 +export function logout() { + return request({ + url: '/logout', + method: 'post', + }) +} diff --git a/packages/renderer/src/api/playlist.ts b/packages/renderer/src/api/playlist.ts new file mode 100644 index 0000000..691ea12 --- /dev/null +++ b/packages/renderer/src/api/playlist.ts @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +export enum PlaylistApiNames { + FETCH_PLAYLIST = 'fetchPlaylist', + FETCH_RECOMMENDED_PLAYLISTS = 'fetchRecommendedPlaylists', +} + +// 歌单详情 +export interface FetchPlaylistParams { + id: number + s?: number // 歌单最近的 s 个收藏者 +} +interface FetchPlaylistResponse { + code: number + playlist: Playlist + privileges: unknown // TODO: unknown type + relatedVideos: null + resEntrance: null + sharedPrivilege: null + urls: null +} +export function fetchPlaylist( + params: FetchPlaylistParams, + noCache: boolean +): Promise { + const otherParams: { timestamp?: number } = {} + if (noCache) otherParams.timestamp = new Date().getTime() + if (!params.s) params.s = 0 // 网易云默认返回8个收藏者,这里设置为0,减少返回的JSON体积 + return request({ + url: '/playlist/detail', + method: 'get', + params: { + ...params, + ...otherParams, + }, + }) +} + +// 推荐歌单 +interface FetchRecommendedPlaylistsParams { + limit?: number +} +export interface FetchRecommendedPlaylistsResponse { + code: number + category: number + hasTaste: boolean + result: Playlist[] +} +export function fetchRecommendedPlaylists( + params: FetchRecommendedPlaylistsParams +): Promise { + return request({ + url: '/personalized', + method: 'get', + params, + }) +} diff --git a/packages/renderer/src/api/search.ts b/packages/renderer/src/api/search.ts new file mode 100644 index 0000000..db2b955 --- /dev/null +++ b/packages/renderer/src/api/search.ts @@ -0,0 +1,100 @@ +import request from '@/utils/request' + +export enum SearchApiNames { + SEARCH = 'search', + MULTI_MATCH_SEARCH = 'multiMatchSearch', +} + +// 搜索 +export enum SearchTypes { + SINGLE = 1, + ALBUM = 10, + ARTIST = 100, + PLAYLIST = 1000, + USER = 1002, + MV = 1004, + LYRICS = 1006, + RADIO = 1009, + VIDEO = 1014, + ALL = 1018, +} +export interface SearchParams { + keywords: string + limit?: number // 返回数量 , 默认为 30 + offset?: number // 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0 + type?: SearchTypes // type: 搜索类型 +} +interface SearchResponse { + code: number + result: { + album: { + albums: Album[] + more: boolean + moreText: string + resourceIds: number[] + } + artist: { + artists: Artist[] + more: boolean + moreText: string + resourceIds: number[] + } + playList: { + playLists: Playlist[] + more: boolean + moreText: string + resourceIds: number[] + } + song: { + songs: Track[] + more: boolean + moreText: string + resourceIds: number[] + } + user: { + users: User[] + more: boolean + moreText: string + resourceIds: number[] + } + circle: unknown + new_mlog: unknown + order: string[] + rec_type: null + rec_query: null[] + sim_query: unknown + voice: unknown + voiceList: unknown + } +} +export function search(params: SearchParams): Promise { + return request({ + url: '/search', + method: 'get', + params: params, + }) +} + +// 搜索多重匹配 +export interface MultiMatchSearchParams { + keywords: string +} +interface MultiMatchSearchResponse { + code: number + result: { + album: Album[] + artist: Artist[] + playlist: Playlist[] + orpheus: unknown + orders: Array<'artist' | 'album'> + } +} +export function multiMatchSearch( + params: MultiMatchSearchParams +): Promise { + return request({ + url: '/search/multimatch', + method: 'get', + params: params, + }) +} diff --git a/packages/renderer/src/api/track.ts b/packages/renderer/src/api/track.ts new file mode 100644 index 0000000..5f16f7d --- /dev/null +++ b/packages/renderer/src/api/track.ts @@ -0,0 +1,73 @@ +import request from '@/utils/request' + +export enum TrackApiNames { + FETCH_TRACKS = 'fetchTracks', + FETCH_AUDIO_SOURCE = 'fetchAudioSource', +} + +// 获取歌曲详情 +export interface FetchTracksParams { + ids: number[] +} +interface FetchTracksResponse { + code: number + songs: Track[] + privileges: { + [key: string]: unknown + } +} +export function fetchTracks( + params: FetchTracksParams +): Promise { + return request({ + url: '/song/detail', + method: 'get', + params: { + ids: params.ids.join(','), + }, + }) +} + +// 获取音源URL +export interface FetchAudioSourceParams { + id: number + br?: number // bitrate, default 999000,320000 = 320kbps +} +interface FetchAudioSourceResponse { + code: number + data: { + br: number + canExtend: boolean + code: number + encodeType: 'mp3' | null + expi: number + fee: number + flag: number + freeTimeTrialPrivilege: { + [key: string]: unknown + } + freeTrialPrivilege: { + [key: string]: unknown + } + freeTrialInfo: null + gain: number + id: number + level: 'standard' | 'null' + md5: string | null + payed: number + size: number + type: 'mp3' | null + uf: null + url: string | null + urlSource: number + }[] +} +export function fetchAudioSource( + params: FetchAudioSourceParams +): Promise { + return request({ + url: '/song/url', + method: 'get', + params, + }) +} diff --git a/src/api/user.js b/packages/renderer/src/api/user.ts similarity index 58% rename from src/api/user.js rename to packages/renderer/src/api/user.ts index ec02014..82f0116 100644 --- a/src/api/user.js +++ b/packages/renderer/src/api/user.ts @@ -1,4 +1,10 @@ -import request from '@/utils/request'; +import request from '@/utils/request' + +export enum UserApiNames { + FETCH_USER_ACCOUNT = 'fetchUserAccount', + FETCH_USER_LIKED_SONGS_IDS = 'fetchUserLikedSongsIDs', + FETCH_USER_PLAYLISTS = 'fetchUserPlaylists', +} /** * 获取用户详情 @@ -14,74 +20,118 @@ export function userDetail(uid) { uid, timestamp: new Date().getTime(), }, - }); + }) } -/** - * 获取账号详情 - * 说明 : 登录后调用此接口 ,可获取用户账号信息 - */ -export function userAccount() { +// 获取账号详情 +export interface fetchUserAccountResponse { + code: number + account: { + anonimousUser: boolean + ban: number + baoyueVersion: number + createTime: number + donateVersion: number + id: number + paidFee: boolean + status: number + tokenVersion: number + type: number + userName: string + vipType: number + whitelistAuthority: number + } | null + profile: { + userId: number + userType: number + nickname: string + avatarImgId: number + avatarUrl: string + backgroundImgId: number + backgroundUrl: string + signature: string + createTime: number + userName: string + accountType: number + shortUserName: string + birthday: number + authority: number + gender: number + accountStatus: number + province: number + city: number + authStatus: number + description: string | null + detailDescription: string | null + defaultAvatar: boolean + expertTags: [] | null + experts: [] | null + djStatus: number + locationStatus: number + vipType: number + followed: boolean + mutual: boolean + authenticated: boolean + lastLoginTime: number + lastLoginIP: string + remarkName: string | null + viptypeVersion: number + authenticationTypes: number + avatarDetail: string | null + anchor: boolean + } | null +} +export function fetchUserAccount(): Promise { return request({ url: '/user/account', method: 'get', params: { timestamp: new Date().getTime(), }, - }); + }) } -/** - * 获取用户歌单 - * 说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单 - * - uid : 用户 id - * - limit : 返回数量 , 默认为 30 - * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0 - * @param {Object} params - * @param {number} params.uid - * @param {number} params.limit - * @param {number=} params.offset - */ -export function userPlaylist(params) { +// 获取用户歌单 +export interface FetchUserPlaylistsParams { + uid: number + offset: number + limit?: number // default 30 +} +interface FetchUserPlaylistsResponse { + code: number + more: false + version: string + playlist: Playlist[] +} +export function fetchUserPlaylists( + params: FetchUserPlaylistsParams +): Promise { return request({ url: '/user/playlist', method: 'get', params, - }); + }) } -/** - * 获取用户播放记录 - * 说明 : 登录后调用此接口 , 传入用户 id, 可获取用户播放记录 - * - uid : 用户 id - * - type : type=1 时只返回 weekData, type=0 时返回 allData - * @param {Object} params - * @param {number} params.uid - * @param {number} params.type - */ -export function userPlayHistory(params) { - return request({ - url: '/user/record', - method: 'get', - params, - }); +export interface FetchUserLikedSongsIDsParams { + uid: number } - -/** - * 喜欢音乐列表(需要登录) - * 说明 : 调用此接口 , 传入用户 id, 可获取已喜欢音乐id列表(id数组) - * - uid: 用户 id - * @param {number} uid - */ -export function userLikedSongsIDs(uid) { +interface FetchUserLikedSongsIDsResponse { + code: number + checkPoint: number + ids: number[] +} +export function fetchUserLikedSongsIDs( + params: FetchUserLikedSongsIDsParams +): Promise { return request({ url: '/likelist', method: 'get', params: { - uid, + uid: params.uid, timestamp: new Date().getTime(), }, - }); + }) } /** @@ -98,7 +148,7 @@ export function dailySignin(type = 0) { type, timestamp: new Date().getTime(), }, - }); + }) } /** @@ -118,7 +168,7 @@ export function likedAlbums(params) { limit: params.limit, timestamp: new Date().getTime(), }, - }); + }) } /** @@ -133,7 +183,7 @@ export function likedArtists(params) { limit: params.limit, timestamp: new Date().getTime(), }, - }); + }) } /** @@ -148,15 +198,15 @@ export function likedMVs(params) { limit: params.limit, timestamp: new Date().getTime(), }, - }); + }) } /** * 上传歌曲到云盘(需要登录) */ export function uploadSong(file) { - let formData = new FormData(); - formData.append('songFile', file); + let formData = new FormData() + formData.append('songFile', file) return request({ url: '/cloud', method: 'post', @@ -169,8 +219,8 @@ export function uploadSong(file) { }, timeout: 200000, }).catch(error => { - alert(`上传失败,Error: ${error}`); - }); + alert(`上传失败,Error: ${error}`) + }) } /** @@ -183,12 +233,12 @@ export function uploadSong(file) { * @param {number=} params.offset */ export function cloudDisk(params = {}) { - params.timestamp = new Date().getTime(); + params.timestamp = new Date().getTime() return request({ url: '/user/cloud', method: 'get', params, - }); + }) } /** @@ -202,7 +252,7 @@ export function cloudDiskTrackDetail(id) { timestamp: new Date().getTime(), id, }, - }); + }) } /** @@ -217,5 +267,5 @@ export function cloudDiskTrackDelete(id) { timestamp: new Date().getTime(), id, }, - }); + }) } diff --git a/packages/renderer/src/assets/icons/back.svg b/packages/renderer/src/assets/icons/back.svg new file mode 100644 index 0000000..7aa8869 --- /dev/null +++ b/packages/renderer/src/assets/icons/back.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/chevron-up.svg b/packages/renderer/src/assets/icons/chevron-up.svg new file mode 100644 index 0000000..e653d68 --- /dev/null +++ b/packages/renderer/src/assets/icons/chevron-up.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/compass.svg b/packages/renderer/src/assets/icons/compass.svg new file mode 100644 index 0000000..ed1cdc2 --- /dev/null +++ b/packages/renderer/src/assets/icons/compass.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/dislike.svg b/packages/renderer/src/assets/icons/dislike.svg new file mode 100644 index 0000000..d969533 --- /dev/null +++ b/packages/renderer/src/assets/icons/dislike.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/dj.svg b/packages/renderer/src/assets/icons/dj.svg new file mode 100644 index 0000000..01bfd8d --- /dev/null +++ b/packages/renderer/src/assets/icons/dj.svg @@ -0,0 +1,4 @@ + diff --git a/packages/renderer/src/assets/icons/email.svg b/packages/renderer/src/assets/icons/email.svg new file mode 100644 index 0000000..1e73088 --- /dev/null +++ b/packages/renderer/src/assets/icons/email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/renderer/src/assets/icons/eye-off.svg b/packages/renderer/src/assets/icons/eye-off.svg new file mode 100644 index 0000000..42edefb --- /dev/null +++ b/packages/renderer/src/assets/icons/eye-off.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/renderer/src/assets/icons/eye.svg b/packages/renderer/src/assets/icons/eye.svg new file mode 100644 index 0000000..c7a8391 --- /dev/null +++ b/packages/renderer/src/assets/icons/eye.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/fm.svg b/packages/renderer/src/assets/icons/fm.svg similarity index 100% rename from src/assets/icons/fm.svg rename to packages/renderer/src/assets/icons/fm.svg diff --git a/packages/renderer/src/assets/icons/forward.svg b/packages/renderer/src/assets/icons/forward.svg new file mode 100644 index 0000000..40c6bb8 --- /dev/null +++ b/packages/renderer/src/assets/icons/forward.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/heart-outline.svg b/packages/renderer/src/assets/icons/heart-outline.svg new file mode 100644 index 0000000..dab50ff --- /dev/null +++ b/packages/renderer/src/assets/icons/heart-outline.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/heart.svg b/packages/renderer/src/assets/icons/heart.svg new file mode 100644 index 0000000..c911d27 --- /dev/null +++ b/packages/renderer/src/assets/icons/heart.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/home.svg b/packages/renderer/src/assets/icons/home.svg new file mode 100644 index 0000000..e0ad12a --- /dev/null +++ b/packages/renderer/src/assets/icons/home.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/lock.svg b/packages/renderer/src/assets/icons/lock.svg similarity index 100% rename from src/assets/icons/lock.svg rename to packages/renderer/src/assets/icons/lock.svg diff --git a/src/assets/icons/more.svg b/packages/renderer/src/assets/icons/more.svg similarity index 100% rename from src/assets/icons/more.svg rename to packages/renderer/src/assets/icons/more.svg diff --git a/packages/renderer/src/assets/icons/music-library.svg b/packages/renderer/src/assets/icons/music-library.svg new file mode 100644 index 0000000..7f462e6 --- /dev/null +++ b/packages/renderer/src/assets/icons/music-library.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/music-note.svg b/packages/renderer/src/assets/icons/music-note.svg new file mode 100644 index 0000000..822ed68 --- /dev/null +++ b/packages/renderer/src/assets/icons/music-note.svg @@ -0,0 +1,4 @@ + diff --git a/src/assets/icons/next.svg b/packages/renderer/src/assets/icons/next.svg similarity index 100% rename from src/assets/icons/next.svg rename to packages/renderer/src/assets/icons/next.svg diff --git a/src/assets/icons/pause.svg b/packages/renderer/src/assets/icons/pause.svg similarity index 100% rename from src/assets/icons/pause.svg rename to packages/renderer/src/assets/icons/pause.svg diff --git a/packages/renderer/src/assets/icons/phone.svg b/packages/renderer/src/assets/icons/phone.svg new file mode 100644 index 0000000..f3609ae --- /dev/null +++ b/packages/renderer/src/assets/icons/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/play.svg b/packages/renderer/src/assets/icons/play.svg similarity index 94% rename from src/assets/icons/play.svg rename to packages/renderer/src/assets/icons/play.svg index bcd81f7..d84a7d6 100644 --- a/src/assets/icons/play.svg +++ b/packages/renderer/src/assets/icons/play.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/list.svg b/packages/renderer/src/assets/icons/playlist.svg similarity index 100% rename from src/assets/icons/list.svg rename to packages/renderer/src/assets/icons/playlist.svg diff --git a/src/assets/icons/previous.svg b/packages/renderer/src/assets/icons/previous.svg similarity index 100% rename from src/assets/icons/previous.svg rename to packages/renderer/src/assets/icons/previous.svg diff --git a/packages/renderer/src/assets/icons/qrcode.svg b/packages/renderer/src/assets/icons/qrcode.svg new file mode 100644 index 0000000..6fa1fe0 --- /dev/null +++ b/packages/renderer/src/assets/icons/qrcode.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/repeat-1.svg b/packages/renderer/src/assets/icons/repeat-1.svg similarity index 100% rename from src/assets/icons/repeat-1.svg rename to packages/renderer/src/assets/icons/repeat-1.svg diff --git a/src/assets/icons/repeat.svg b/packages/renderer/src/assets/icons/repeat.svg similarity index 100% rename from src/assets/icons/repeat.svg rename to packages/renderer/src/assets/icons/repeat.svg diff --git a/packages/renderer/src/assets/icons/search.svg b/packages/renderer/src/assets/icons/search.svg new file mode 100644 index 0000000..f845303 --- /dev/null +++ b/packages/renderer/src/assets/icons/search.svg @@ -0,0 +1 @@ + diff --git a/packages/renderer/src/assets/icons/settings.svg b/packages/renderer/src/assets/icons/settings.svg new file mode 100644 index 0000000..af294f4 --- /dev/null +++ b/packages/renderer/src/assets/icons/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/shuffle.svg b/packages/renderer/src/assets/icons/shuffle.svg similarity index 100% rename from src/assets/icons/shuffle.svg rename to packages/renderer/src/assets/icons/shuffle.svg diff --git a/src/assets/icons/volume-half.svg b/packages/renderer/src/assets/icons/volume-half.svg similarity index 100% rename from src/assets/icons/volume-half.svg rename to packages/renderer/src/assets/icons/volume-half.svg diff --git a/src/assets/icons/volume-mute.svg b/packages/renderer/src/assets/icons/volume-mute.svg similarity index 100% rename from src/assets/icons/volume-mute.svg rename to packages/renderer/src/assets/icons/volume-mute.svg diff --git a/src/assets/icons/volume.svg b/packages/renderer/src/assets/icons/volume.svg similarity index 100% rename from src/assets/icons/volume.svg rename to packages/renderer/src/assets/icons/volume.svg diff --git a/packages/renderer/src/assets/icons/x.svg b/packages/renderer/src/assets/icons/x.svg new file mode 100644 index 0000000..0ac16c8 --- /dev/null +++ b/packages/renderer/src/assets/icons/x.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/renderer/src/auto-imports.d.ts b/packages/renderer/src/auto-imports.d.ts new file mode 100644 index 0000000..dd741f8 --- /dev/null +++ b/packages/renderer/src/auto-imports.d.ts @@ -0,0 +1,20 @@ +// Generated by 'unplugin-auto-import' +// We suggest you to commit this file into source control +declare global { + const classNames: typeof import('classnames')['default'] + const toast: typeof import('react-hot-toast')['toast'] + const useCallback: typeof import('react')['useCallback'] + const useContext: typeof import('react')['useContext'] + const useEffect: typeof import('react')['useEffect'] + const useInfiniteQuery: typeof import('react-query')['useInfiniteQuery'] + const useMemo: typeof import('react')['useMemo'] + const useMutation: typeof import('react-query')['useMutation'] + const useNavigate: typeof import('react-router-dom')['useNavigate'] + const useParams: typeof import('react-router-dom')['useParams'] + const useQuery: typeof import('react-query')['useQuery'] + const useReducer: typeof import('react')['useReducer'] + const useRef: typeof import('react')['useRef'] + const useSnapshot: typeof import('valtio')['useSnapshot'] + const useState: typeof import('react')['useState'] +} +export {} diff --git a/packages/renderer/src/components/ArtistsInline.tsx b/packages/renderer/src/components/ArtistsInline.tsx new file mode 100644 index 0000000..70e37cc --- /dev/null +++ b/packages/renderer/src/components/ArtistsInline.tsx @@ -0,0 +1,22 @@ +const ArtistInline = ({ + artists, + className, +}: { + artists: Artist[] + className?: string +}) => { + if (!artists) return
+ + return ( +
+ {artists.map((artist, index) => ( + + {artist.name} + {index < artists.length - 1 ? ', ' : ''}  + + ))} +
+ ) +} + +export default ArtistInline diff --git a/packages/renderer/src/components/Button.tsx b/packages/renderer/src/components/Button.tsx new file mode 100644 index 0000000..85071bd --- /dev/null +++ b/packages/renderer/src/components/Button.tsx @@ -0,0 +1,53 @@ +import { ReactNode } from 'react' + +export enum Color { + Primary = 'primary', + Gray = 'gray', +} + +export enum Shape { + Default = 'default', + Square = 'square', +} + +const Button = ({ + children, + onClick, + color = Color.Primary, + iconColor = Color.Primary, + isSkelton = false, +}: { + children: ReactNode + onClick: () => void + color?: Color + iconColor?: Color + isSkelton?: boolean +}) => { + const shape = + Array.isArray(children) && children.length === 1 + ? Shape.Square + : Shape.Default + + return ( + + ) +} + +export default Button diff --git a/packages/renderer/src/components/Cover.tsx b/packages/renderer/src/components/Cover.tsx new file mode 100644 index 0000000..b29590d --- /dev/null +++ b/packages/renderer/src/components/Cover.tsx @@ -0,0 +1,55 @@ +import SvgIcon from '@/components/SvgIcon' + +const Cover = ({ + isRounded, + imageUrl, + onClick, +}: { + imageUrl: string + isRounded?: boolean + onClick?: () => void +}) => { + const [isError, setIsError] = useState(false) + + return ( +
+ {/* Neon shadow */} +
+ + {/* Cover */} + {isError ? ( +
+ +
+ ) : ( + setIsError(true)} + /> + )} + + {/* Play button */} +
+ +
+
+ ) +} + +export default Cover diff --git a/packages/renderer/src/components/CoverRow.tsx b/packages/renderer/src/components/CoverRow.tsx new file mode 100644 index 0000000..e452bc0 --- /dev/null +++ b/packages/renderer/src/components/CoverRow.tsx @@ -0,0 +1,192 @@ +import Cover from '@/components/Cover' +import Skeleton from '@/components/Skeleton' +import SvgIcon from '@/components/SvgIcon' +import { prefetchAlbum } from '@/hooks/useAlbum' +import { prefetchPlaylist } from '@/hooks/usePlaylist' +import { formatDate, resizeImage } from '@/utils/common' + +export enum Subtitle { + COPYWRITER = 'copywriter', + CREATOR = 'creator', + TYPE_RELEASE_YEAR = 'type+releaseYear', + ARTIST = 'artist', +} + +const Title = ({ + title, + seeMoreLink, +}: { + title: string + seeMoreLink: string +}) => { + return ( +
+
+ {title} +
+ {seeMoreLink && ( +
+ See More +
+ )} +
+ ) +} + +const getSubtitleText = ( + item: Album | Playlist | Artist, + subtitle: Subtitle +) => { + const nickname = 'creator' in item ? item.creator.nickname : 'someone' + const releaseYear = + 'publishTime' in item + ? formatDate(item.publishTime ?? 0, 'en', 'YYYY') + : 'unknown' + const types = { + playlist: 'playlist', + album: 'Album', + 专辑: 'Album', + Single: 'Single', + 'EP/Single': 'EP', + EP: 'EP', + unknown: 'unknown', + } + const type = 'type' in item ? item.type || 'unknown' : 'unknown' + const artist = 'artist' in item ? item.artist.name : 'unknown' + + const table = { + [Subtitle.CREATOR]: `by ${nickname}`, + [Subtitle.TYPE_RELEASE_YEAR]: `${types[type]} · ${releaseYear}`, + [Subtitle.ARTIST]: artist, + } + return table[subtitle] ?? item[subtitle] +} + +const getImageUrl = (item: Album | Playlist | Artist) => { + let cover: string | undefined = '' + if ('coverImgUrl' in item) cover = item.coverImgUrl + if ('picUrl' in item) cover = item.picUrl + if ('img1v1Url' in item) cover = item.img1v1Url + return resizeImage(cover || '', 'md') +} + +const CoverRow = ({ + title, + albums, + artists, + playlists, + subtitle = Subtitle.COPYWRITER, + seeMoreLink, + isSkeleton, + className, +}: { + title?: string + albums?: Album[] + artists?: Artist[] + playlists?: Playlist[] + subtitle?: Subtitle + seeMoreLink?: string + isSkeleton?: boolean + className?: string +}) => { + const renderItems = useMemo(() => { + if (isSkeleton) { + return new Array(10).fill({}) as Array + } + return albums ?? playlists ?? artists ?? [] + }, [albums, artists, isSkeleton, playlists]) + + const navigate = useNavigate() + const goTo = (id: number) => { + if (isSkeleton) return + if (albums) navigate(`/album/${id}`) + if (playlists) navigate(`/playlist/${id}`) + if (artists) navigate(`/artist/${id}`) + } + + const prefetch = (id: number) => { + if (albums) prefetchAlbum({ id }) + if (playlists) prefetchPlaylist({ id }) + } + + return ( +
+ {title && } + + <div + className={classNames( + 'grid gap-x-[24px] gap-y-7', + className, + !className && + 'grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6' + )} + > + {renderItems.map((item, index) => ( + <div + key={item.id ?? index} + onMouseOver={() => prefetch(item.id)} + className="grid gap-x-[24px] gap-y-7" + > + <div> + {/* Cover */} + {isSkeleton ? ( + <Skeleton className="box-content aspect-square w-full rounded-xl border border-black border-opacity-0" /> + ) : ( + <Cover + onClick={() => goTo(item.id)} + imageUrl={getImageUrl(item)} + /> + )} + + {/* Info */} + <div className="mt-2"> + <div className="font-semibold"> + {/* Name */} + {isSkeleton ? ( + <div className="flex w-full -translate-y-px flex-col"> + <Skeleton className="w-full leading-tight"> + PLACEHOLDER + </Skeleton> + <Skeleton className="w-1/3 translate-y-px leading-tight"> + PLACEHOLDER + </Skeleton> + </div> + ) : ( + <span className="line-clamp-2 leading-tight "> + {/* Playlist private icon */} + {(item as Playlist).privacy && ( + <SvgIcon + name="lock" + className="mr-1 mb-1 inline-block h-3 w-3 text-gray-300" + /> + )} + <span + onClick={() => goTo(item.id)} + className="decoration-gray-600 decoration-2 hover:underline dark:text-white" + > + {item.name} + </span> + </span> + )} + </div> + + {/* Subtitle */} + {isSkeleton ? ( + <Skeleton className="w-3/5 translate-y-px text-[12px]"> + PLACEHOLDER + </Skeleton> + ) : ( + <div className="flex text-[12px] text-gray-500 dark:text-gray-400"> + <span>{getSubtitleText(item, subtitle)}</span> + </div> + )} + </div> + </div> + </div> + ))} + </div> + </div> + ) +} + +export default CoverRow diff --git a/packages/renderer/src/components/DailyTracksCard.module.scss b/packages/renderer/src/components/DailyTracksCard.module.scss new file mode 100644 index 0000000..5079304 --- /dev/null +++ b/packages/renderer/src/components/DailyTracksCard.module.scss @@ -0,0 +1,13 @@ +@keyframes move { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(-50%); + } +} + +.animation { + animation: move 38s infinite; + animation-direction: alternate; +} diff --git a/packages/renderer/src/components/DailyTracksCard.tsx b/packages/renderer/src/components/DailyTracksCard.tsx new file mode 100644 index 0000000..cee65fd --- /dev/null +++ b/packages/renderer/src/components/DailyTracksCard.tsx @@ -0,0 +1,33 @@ +import SvgIcon from '@/components/SvgIcon' +import style from './DailyTracksCard.module.scss' + +const DailyTracksCard = () => { + return ( + <div className="relative h-[198px] cursor-pointer overflow-hidden rounded-2xl"> + {/* Cover */} + <img + className={classNames( + 'absolute top-0 left-0 w-full will-change-transform', + style.animation + )} + src="https://p2.music.126.net/QxJA2mr4hhb9DZyucIOIQw==/109951165422200291.jpg?param=1024y1024" + /> + + {/* 每日推荐 */} + <div className="absolute flex h-full w-1/2 items-center bg-gradient-to-r from-[#0000004d] to-transparent pl-8"> + <div className="grid grid-cols-2 grid-rows-2 gap-2 text-[64px] font-semibold leading-[64px] text-white opacity-[96]"> + {Array.from('每日推荐').map(word => ( + <div key={word}>{word}</div> + ))} + </div> + </div> + + {/* Play button */} + <button className="btn-pressed-animation absolute right-6 bottom-6 grid h-11 w-11 cursor-default place-content-center rounded-full border border-white border-opacity-[.08] bg-white bg-opacity-[.14] text-white backdrop-blur backdrop-filter transition-all hover:bg-opacity-[.44]"> + <SvgIcon name="play" className="ml-1 h-4 w-4" /> + </button> + </div> + ) +} + +export default DailyTracksCard diff --git a/packages/renderer/src/components/FMCard.tsx b/packages/renderer/src/components/FMCard.tsx new file mode 100644 index 0000000..4bd7303 --- /dev/null +++ b/packages/renderer/src/components/FMCard.tsx @@ -0,0 +1,65 @@ +import { average } from 'color.js' +import { colord } from 'colord' +import SvgIcon from '@/components/SvgIcon' + +enum ACTION { + DISLIKE = 'dislike', + PLAY = 'play', + NEXT = 'next', +} + +const FMCard = () => { + const coverUrl = + 'https://p1.music.126.net/lEzPSOjusKaRXKXT3987lQ==/109951166035876388.jpg?param=512y512' + const [background, setBackground] = useState('') + + useEffect(() => { + average(coverUrl, { amount: 1, format: 'hex', sample: 1 }).then(color => { + const to = colord(color as string) + .darken(0.15) + .rotate(-5) + .toHex() + setBackground(`linear-gradient(to bottom right, ${color}, ${to})`) + }) + }, [coverUrl]) + + return ( + <div + className="relative flex h-[198px] overflow-hidden rounded-2xl p-4" + style={{ background }} + > + <img className="rounded-lg shadow-2xl" src={coverUrl} /> + + <div className="ml-5 flex w-full flex-col justify-between text-white"> + {/* Track info */} + <div> + <div className="text-xl font-semibold">How Can I Make It OK?</div> + <div className="opacity-75">Wolf Alice</div> + </div> + + <div className="flex items-center justify-between"> + {/* Actions */} + + <div> + {Object.values(ACTION).map(action => ( + <button + key={action} + className="btn-pressed-animation btn-hover-animation mr-1 cursor-default rounded-lg p-2 transition duration-200 after:bg-white/10" + > + <SvgIcon name={action} className="h-5 w-5" /> + </button> + ))} + </div> + + {/* FM logo */} + <div className="right-4 bottom-5 flex text-white opacity-20"> + <SvgIcon name="fm" className="mr-2 h-5 w-5" /> + <span className="font-semibold">私人FM</span> + </div> + </div> + </div> + </div> + ) +} + +export default FMCard diff --git a/packages/renderer/src/components/IconButton.tsx b/packages/renderer/src/components/IconButton.tsx new file mode 100644 index 0000000..caa35ef --- /dev/null +++ b/packages/renderer/src/components/IconButton.tsx @@ -0,0 +1,30 @@ +import { ReactNode } from 'react' + +const IconButton = ({ + children, + onClick, + disabled, + className, +}: { + children: ReactNode + onClick: () => void + disabled?: boolean | undefined + className?: string +}) => { + return ( + <button + onClick={onClick} + className={classNames( + className, + 'relative transform cursor-default p-2 transition duration-200', + !disabled && + 'btn-pressed-animation btn-hover-animation after:bg-black/[.06]', + disabled && 'opacity-30' + )} + > + {children} + </button> + ) +} + +export default IconButton diff --git a/packages/renderer/src/components/Main.tsx b/packages/renderer/src/components/Main.tsx new file mode 100644 index 0000000..8fd5021 --- /dev/null +++ b/packages/renderer/src/components/Main.tsx @@ -0,0 +1,18 @@ +import Router from '@/components/Router' +import Topbar from '@/components/Topbar' + +const Main = () => { + return ( + <div + id="mainContainer" + className="relative flex h-screen max-h-screen flex-grow flex-col overflow-y-auto bg-white dark:bg-[#1d1d1d]" + > + <Topbar /> + <main id="main" className="mb-24 flex-grow px-8"> + <Router /> + </main> + </div> + ) +} + +export default Main diff --git a/packages/renderer/src/components/Player.tsx b/packages/renderer/src/components/Player.tsx new file mode 100644 index 0000000..507e7e3 --- /dev/null +++ b/packages/renderer/src/components/Player.tsx @@ -0,0 +1,162 @@ +import { Fragment } from 'react' +import ArtistInline from '@/components/ArtistsInline' +import IconButton from '@/components/IconButton' +import Slider from '@/components/Slider' +import SvgIcon from '@/components/SvgIcon' +import { player } from '@/store' +import { resizeImage } from '@/utils/common' +import { State as PlayerState } from '@/utils/player' + +const PlayingTrack = () => { + const navigate = useNavigate() + const snappedPlayer = useSnapshot(player) + const track = useMemo(() => snappedPlayer.track, [snappedPlayer.track]) + const trackListSource = useMemo( + () => snappedPlayer.trackListSource, + [snappedPlayer.trackListSource] + ) + + const toAlbum = () => { + const id = track?.al?.id + if (id) navigate(`/album/${id}`) + } + + const toTrackListSource = () => { + if (trackListSource?.type) + navigate(`/${trackListSource.type}/${trackListSource.id}`) + } + + return ( + <Fragment> + {track && ( + <div className="flex items-center gap-3"> + {track?.al?.picUrl && ( + <img + onClick={toAlbum} + className="aspect-square h-full rounded-md shadow-md" + src={resizeImage(track?.al?.picUrl ?? '', 'sm')} + /> + )} + {!track?.al?.picUrl && ( + <div + onClick={toAlbum} + className="flex aspect-square h-full items-center justify-center rounded-md bg-black/[.04] shadow-sm" + > + <SvgIcon className="h-6 w-6 text-gray-300" name="music-note" /> + </div> + )} + + <div className="flex flex-col justify-center leading-tight"> + <div + onClick={toTrackListSource} + className="line-clamp-1 font-semibold text-black decoration-gray-600 decoration-2 hover:underline dark:text-white" + > + {track?.name} + </div> + <div className="mt-0.5 text-xs text-gray-500 dark:text-gray-400"> + <ArtistInline artists={track?.ar ?? []} /> + </div> + </div> + + <IconButton> + <SvgIcon + className="h-4 w-4 text-black dark:text-white" + name="heart-outline" + /> + </IconButton> + </div> + )} + {!track && <div></div>} + </Fragment> + ) +} + +const MediaControls = () => { + const playerSnapshot = useSnapshot(player) + const state = useMemo(() => playerSnapshot.state, [playerSnapshot.state]) + const track = useMemo(() => playerSnapshot.track, [playerSnapshot.track]) + return ( + <div className="flex items-center justify-center gap-2 text-black dark:text-white"> + <IconButton onClick={() => track && player.prevTrack()} disabled={!track}> + <SvgIcon className="h-4 w-4" name="previous" /> + </IconButton> + <IconButton + onClick={() => track && player.playOrPause()} + disabled={!track} + className="rounded-2xl" + > + <SvgIcon + className="h-[1.5rem] w-[1.5rem] " + name={state === PlayerState.PLAYING ? 'pause' : 'play'} + /> + </IconButton> + <IconButton onClick={() => track && player.nextTrack()} disabled={!track}> + <SvgIcon className="h-4 w-4" name="next" /> + </IconButton> + </div> + ) +} + +const Others = () => { + return ( + <div className="flex items-center justify-end gap-2 pr-2 text-black dark:text-white"> + <IconButton> + <SvgIcon className="h-4 w-4" name="playlist" /> + </IconButton> + <IconButton> + <SvgIcon className="h-4 w-4" name="repeat" /> + </IconButton> + <IconButton> + <SvgIcon className="h-4 w-4" name="shuffle" /> + </IconButton> + <IconButton> + <SvgIcon className="h-4 w-4" name="volume" /> + </IconButton> + <IconButton> + <SvgIcon className="h-4 w-4" name="chevron-up" /> + </IconButton> + </div> + ) +} + +const Progress = () => { + const playerSnapshot = useSnapshot(player) + const progress = useMemo( + () => playerSnapshot.progress, + [playerSnapshot.progress] + ) + const track = useMemo(() => playerSnapshot.track, [playerSnapshot.track]) + + return ( + <div className="absolute w-screen"> + {track && ( + <Slider + min={0} + max={(track.dt ?? 0) / 1000} + value={progress} + onChange={value => { + player.progress = value + }} + onlyCallOnChangeAfterDragEnded={true} + /> + )} + {!track && ( + <div className="absolute h-[2px] w-full bg-gray-500 bg-opacity-10"></div> + )} + </div> + ) +} + +const Player = () => { + return ( + <div className="fixed bottom-0 left-0 right-0 grid h-16 grid-cols-3 grid-rows-1 bg-white bg-opacity-[.86] py-2.5 px-5 backdrop-blur-xl backdrop-saturate-[1.8] dark:bg-[#222]"> + <Progress /> + + <PlayingTrack /> + <MediaControls /> + <Others /> + </div> + ) +} + +export default Player diff --git a/packages/renderer/src/components/Router.tsx b/packages/renderer/src/components/Router.tsx new file mode 100644 index 0000000..fe3f909 --- /dev/null +++ b/packages/renderer/src/components/Router.tsx @@ -0,0 +1,33 @@ +import { Fragment } from 'react' +import type { RouteObject } from 'react-router-dom' +import { useRoutes } from 'react-router-dom' +import Album from '@/pages/Album' +import Home from '@/pages/Home' +import Login from '@/pages/Login' +import Playlist from '@/pages/Playlist' + +const routes: RouteObject[] = [ + { + path: '/', + element: <Home />, + }, + { + path: '/login', + element: <Login />, + }, + { + path: '/playlist/:id', + element: <Playlist />, + }, + { + path: '/album/:id', + element: <Album />, + }, +] + +const router = () => { + const element = useRoutes(routes) + return <Fragment>{element}</Fragment> +} + +export default router diff --git a/packages/renderer/src/components/Sidebar.tsx b/packages/renderer/src/components/Sidebar.tsx new file mode 100644 index 0000000..69eaa20 --- /dev/null +++ b/packages/renderer/src/components/Sidebar.tsx @@ -0,0 +1,100 @@ +import { NavLink } from 'react-router-dom' +import SvgIcon from '@/components/SvgIcon' +import { prefetchPlaylist } from '@/hooks/usePlaylist' +import useUser from '@/hooks/useUser' +import useUserPlaylists from '@/hooks/useUserPlaylists' + +interface Tab { + name: string + icon?: string + route: string +} +interface PrimaryTab extends Tab { + icon: string +} + +const primaryTabs: PrimaryTab[] = [ + { + name: 'Home', + icon: 'home', + route: '/', + }, + { + name: 'Explore', + icon: 'compass', + route: '/explore', + }, + { + name: 'Library', + icon: 'music-library', + route: '/library', + }, +] + +const PrimaryTabs = () => { + return ( + <div> + <div className="app-region-drag h-14"></div> + {primaryTabs.map(tab => ( + <NavLink + key={tab.route} + to={tab.route} + className={({ isActive }: { isActive: boolean }) => + classNames( + 'btn-hover-animation mx-3 flex cursor-default items-center rounded-lg px-3 py-2 transition-colors duration-200 after:scale-[0.97] after:bg-black/[.06] dark:after:bg-white/20', + !isActive && 'text-gray-700 dark:text-white', + isActive && 'text-brand-500 ' + ) + } + > + <SvgIcon className="mr-3 h-6 w-6" name={tab.icon} /> + <span className="font-semibold">{tab.name}</span> + </NavLink> + ))} + + <div className="mx-5 my-2 h-px bg-black opacity-5 dark:bg-white dark:opacity-20"></div> + </div> + ) +} + +const Playlists = () => { + const { data: user } = useUser() + const { data: playlists } = useUserPlaylists({ + uid: user?.account?.id ?? 0, + offset: 0, + }) + + return ( + <div className="overflow-auto pb-[4.6rem]"> + {playlists?.playlist?.map(playlist => ( + <NavLink + key={playlist.id} + to={`/playlist/${playlist.id}`} + onMouseOver={() => prefetchPlaylist({ id: playlist.id })} + className={({ isActive }: { isActive: boolean }) => + classNames( + 'btn-hover-animation line-clamp-1 my-px mx-3 flex cursor-default items-center rounded-lg px-3 py-[0.38rem] text-sm text-black opacity-70 transition-colors duration-200 after:scale-[0.97] after:bg-black/[.06] dark:text-white dark:after:bg-white/20', + isActive && 'after:scale-100 after:opacity-100' + ) + } + > + <span className="line-clamp-1">{playlist.name}</span> + </NavLink> + ))} + </div> + ) +} + +const Sidebar = () => { + return ( + <div + id="sidebar" + className="grid h-screen max-w-sm grid-rows-[12rem_auto] border-r border-gray-300/10 bg-gray-50 bg-opacity-[.85] dark:bg-black dark:bg-opacity-70" + > + <PrimaryTabs /> + <Playlists /> + </div> + ) +} + +export default Sidebar diff --git a/packages/renderer/src/components/Skeleton.tsx b/packages/renderer/src/components/Skeleton.tsx new file mode 100644 index 0000000..66fd6bb --- /dev/null +++ b/packages/renderer/src/components/Skeleton.tsx @@ -0,0 +1,22 @@ +import { ReactNode } from 'react' + +const Skeleton = ({ + children, + className, +}: { + children?: ReactNode + className?: string +}) => { + return ( + <div + className={classNames( + 'relative animate-pulse bg-gray-100 text-transparent dark:bg-gray-800', + className + )} + > + {children} + </div> + ) +} + +export default Skeleton diff --git a/packages/renderer/src/components/Slider.tsx b/packages/renderer/src/components/Slider.tsx new file mode 100644 index 0000000..2ef275f --- /dev/null +++ b/packages/renderer/src/components/Slider.tsx @@ -0,0 +1,157 @@ +const Slider = ({ + value, + min, + max, + onChange, + onlyCallOnChangeAfterDragEnded = false, + orientation = 'horizontal', +}: { + value: number + min: number + max: number + onChange: (value: number) => void + onlyCallOnChangeAfterDragEnded?: boolean + orientation?: 'horizontal' | 'vertical' +}) => { + console.log('[Slider.tsx] rendering') + + const sliderRef = useRef<HTMLInputElement>(null) + const [isDragging, setIsDragging] = useState(false) + const [draggingValue, setDraggingValue] = useState(value) + const memoedValue = useMemo( + () => + isDragging && onlyCallOnChangeAfterDragEnded ? draggingValue : value, + [isDragging, draggingValue, value, onlyCallOnChangeAfterDragEnded] + ) + + /** + * Get the value of the slider based on the position of the pointer + */ + const getNewValue = useCallback( + (val: number) => { + if (!sliderRef?.current) return 0 + const sliderWidth = sliderRef.current.getBoundingClientRect().width + const newValue = (val / sliderWidth) * max + if (newValue < min) return min + if (newValue > max) return max + return newValue + }, + [sliderRef, max, min] + ) + + /** + * Handle slider click event + */ + const handleClick = useCallback( + (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => { + onChange(getNewValue(e.clientX)) + }, + [getNewValue, onChange] + ) + + /** + * Handle pointer down event + */ + const handlePointerDown = () => { + setIsDragging(true) + } + + /** + * Handle pointer move events + */ + useEffect(() => { + const handlePointerMove = (e: { clientX: number; clientY: number }) => { + if (!isDragging) return + const newValue = getNewValue(e.clientX) + onlyCallOnChangeAfterDragEnded + ? setDraggingValue(newValue) + : onChange(newValue) + } + document.addEventListener('pointermove', handlePointerMove) + + return () => { + document.removeEventListener('pointermove', handlePointerMove) + } + }, [ + isDragging, + onChange, + setDraggingValue, + onlyCallOnChangeAfterDragEnded, + getNewValue, + ]) + + /** + * Handle pointer up events + */ + useEffect(() => { + const handlePointerUp = () => { + if (!isDragging) return + setIsDragging(false) + if (onlyCallOnChangeAfterDragEnded) { + console.log('draggingValue', draggingValue) + onChange(draggingValue) + } + } + document.addEventListener('pointerup', handlePointerUp) + + return () => { + document.removeEventListener('pointerup', handlePointerUp) + } + }, [ + isDragging, + setIsDragging, + onlyCallOnChangeAfterDragEnded, + draggingValue, + onChange, + ]) + + /** + * Track and thumb styles + */ + const usedTrackStyle = useMemo( + () => ({ width: `${(memoedValue / max) * 100}%` }), + [max, memoedValue] + ) + const thumbStyle = useMemo( + () => ({ + left: `${(memoedValue / max) * 100}%`, + transform: `translateX(-10px)`, + }), + [max, memoedValue] + ) + + return ( + <div + className="group flex h-2 -translate-y-[3px] items-center" + ref={sliderRef} + onClick={handleClick} + > + {/* Track */} + <div className="absolute h-[2px] w-full bg-gray-500 bg-opacity-10"></div> + + {/* Passed track */} + <div + className={classNames( + 'absolute h-[2px] group-hover:bg-brand-500', + isDragging ? 'bg-brand-500' : 'bg-gray-500 dark:bg-gray-400' + )} + style={usedTrackStyle} + ></div> + + {/* Thumb */} + <div + className={classNames( + 'absolute flex h-5 w-5 items-center justify-center rounded-full bg-brand-500 bg-opacity-20 transition-opacity ', + isDragging ? 'opacity-100' : 'opacity-0 group-hover:opacity-100' + )} + style={thumbStyle} + onClick={e => e.stopPropagation()} + onPointerDown={handlePointerDown} + > + <div className="absolute h-2 w-2 rounded-full bg-brand-500"></div> + </div> + </div> + ) +} + +export default Slider diff --git a/packages/renderer/src/components/Slider2.tsx b/packages/renderer/src/components/Slider2.tsx new file mode 100644 index 0000000..d3a4c67 --- /dev/null +++ b/packages/renderer/src/components/Slider2.tsx @@ -0,0 +1,61 @@ +import style from './Slider.module.scss' + +const Slider = () => { + const [value, setValue] = useState(50) + + const thumbStyle = useMemo( + () => ({ + left: `${value}%`, + transform: `translate(-${value}%, -9px)`, + }), + [value] + ) + + const usedTrackStyle = useMemo( + () => ({ + width: `${value}%`, + }), + [value] + ) + + const onDragging = false + + const [isHover, setIsHover] = useState(false) + + return ( + <div + onMouseEnter={() => setIsHover(true)} + onMouseLeave={() => setIsHover(false)} + > + <div className="absolute h-[2px] w-full bg-gray-500 bg-opacity-10"></div> + <div + className={classNames( + 'absolute h-[2px]', + onDragging || isHover ? 'bg-brand-500' : 'bg-gray-500' + )} + style={usedTrackStyle} + ></div> + + <div + className={classNames( + 'absolute flex h-5 w-5 items-center justify-center rounded-full bg-brand-500 bg-opacity-20', + !onDragging && !isHover && 'opacity-0' + )} + style={thumbStyle} + > + <div className="absolute h-2 w-2 rounded-full bg-brand-500"></div> + </div> + + <input + type="range" + min="0" + max="100" + value={value} + onChange={e => setValue(Number(e.target.value))} + className="absolute h-[2px] w-full appearance-none opacity-0" + /> + </div> + ) +} + +export default Slider diff --git a/packages/renderer/src/components/SvgIcon.tsx b/packages/renderer/src/components/SvgIcon.tsx new file mode 100644 index 0000000..c74faca --- /dev/null +++ b/packages/renderer/src/components/SvgIcon.tsx @@ -0,0 +1,10 @@ +const SvgIcon = ({ name, className }: { name: string; className?: string }) => { + const symbolId = `#icon-${name}` + return ( + <svg aria-hidden="true" className={className}> + <use href={symbolId} fill="currentColor" /> + </svg> + ) +} + +export default SvgIcon diff --git a/packages/renderer/src/components/Topbar.tsx b/packages/renderer/src/components/Topbar.tsx new file mode 100644 index 0000000..fc81c8c --- /dev/null +++ b/packages/renderer/src/components/Topbar.tsx @@ -0,0 +1,99 @@ +import SvgIcon from '@/components/SvgIcon' +import useScroll from '@/hooks/useScroll' +import useUser from '@/hooks/useUser' +import { resizeImage } from '@/utils/common' + +const NavigationButtons = () => { + const navigate = useNavigate() + enum ACTION { + BACK = 'back', + FORWARD = 'forward', + } + const handleNavigate = (action: ACTION) => { + if (action === ACTION.BACK) navigate(-1) + if (action === ACTION.FORWARD) navigate(1) + } + return ( + <div className="flex gap-1"> + {[ACTION.BACK, ACTION.FORWARD].map(action => ( + <div + onClick={() => handleNavigate(action)} + key={action} + className="app-region-no-drag btn-hover-animation rounded-lg p-3 text-gray-500 transition duration-300 after:rounded-full after:bg-black/[.06] hover:text-gray-900 dark:text-gray-300 dark:after:bg-white/10 dark:hover:text-gray-200" + > + <SvgIcon className="h-4 w-4" name={action} /> + </div> + ))} + </div> + ) +} + +const SearchBox = () => { + return ( + <div className="app-region-no-drag group flex w-[16rem] cursor-text items-center rounded-full bg-gray-500 bg-opacity-5 px-3 transition duration-300 hover:bg-opacity-10 dark:bg-gray-300 dark:bg-opacity-5"> + <SvgIcon + className="mr-2 h-4 w-4 text-gray-500 transition duration-300 group-hover:text-gray-600 dark:text-gray-400 dark:group-hover:text-gray-200" + name="search" + /> + <input + type="text" + className="w-full bg-transparent placeholder:text-gray-500 dark:text-white dark:placeholder:text-gray-400" + placeholder="Search" + /> + </div> + ) +} + +const Settings = () => { + return ( + <div className="app-region-no-drag btn-hover-animation rounded-lg p-2.5 text-gray-500 transition duration-300 after:rounded-full after:bg-black/[.06] hover:text-gray-900 dark:text-gray-300 dark:after:bg-white/10 dark:hover:text-gray-200"> + <SvgIcon className="h-5 w-5" name="settings" /> + </div> + ) +} + +const Avatar = () => { + const navigate = useNavigate() + const { data: user } = useUser() + return ( + <img + src={user?.profile?.avatarUrl} + onClick={() => navigate('/login')} + className="app-region-no-drag h-9 w-9 rounded-full bg-gray-100 dark:bg-gray-700" + /> + ) +} + +const Topbar = () => { + /** + * Show topbar background when scroll down + */ + const [mainContainer, setMainContainer] = useState<HTMLElement | null>(null) + const scroll = useScroll(mainContainer, { throttle: 100 }) + + useEffect(() => { + setMainContainer(document.getElementById('mainContainer')) + }, [setMainContainer]) + + return ( + <div + className={classNames( + 'app-region-drag sticky top-0 z-30 flex h-16 min-h-[4rem] w-full cursor-default items-center justify-between px-8 transition duration-300', + !scroll.arrivedState.top && + 'bg-white bg-opacity-[.86] backdrop-blur-xl backdrop-saturate-[1.8] dark:bg-[#222]' + )} + > + <div className="flex gap-2"> + <NavigationButtons /> + <SearchBox /> + </div> + + <div className="flex items-center gap-3"> + <Settings /> + <Avatar /> + </div> + </div> + ) +} + +export default Topbar diff --git a/packages/renderer/src/components/TracksAlbum.tsx b/packages/renderer/src/components/TracksAlbum.tsx new file mode 100644 index 0000000..afd7cba --- /dev/null +++ b/packages/renderer/src/components/TracksAlbum.tsx @@ -0,0 +1,247 @@ +import { memo } from 'react' +import ArtistInline from '@/components/ArtistsInline' +import Skeleton from '@/components/Skeleton' +import SvgIcon from '@/components/SvgIcon' +import useUser from '@/hooks/useUser' +import useUserLikedSongsIDs from '@/hooks/useUserLikedSongsIDs' +import { player } from '@/store' +import { formatDuration } from '@/utils/common' +import { State as PlayerState } from '@/utils/player' + +const enableRenderLog = true + +const PlayOrPauseButtonInTrack = memo( + ({ isHighlight, trackID }: { isHighlight: boolean; trackID: number }) => { + if (enableRenderLog) + console.debug(`Rendering TracksAlbum.tsx PlayOrPauseButtonInTrack`) + + const playerSnapshot = useSnapshot(player) + const isPlaying = useMemo( + () => playerSnapshot.state === PlayerState.PLAYING, + [playerSnapshot.state] + ) + + const onClick = () => { + isHighlight ? player.playOrPause() : player.playTrack(trackID) + } + + return ( + <div + onClick={onClick} + className={classNames( + 'self-center', + !isHighlight && 'hidden group-hover:block' + )} + > + <SvgIcon + className="h-3.5 w-3.5 text-brand-500" + name={isPlaying && isHighlight ? 'pause' : 'play'} + /> + </div> + ) + } +) +PlayOrPauseButtonInTrack.displayName = 'PlayOrPauseButtonInTrack' + +const Track = memo( + ({ + track, + isLiked = false, + isSkeleton = false, + isHighlight = false, + onClick, + }: { + track: Track + isLiked?: boolean + isSkeleton?: boolean + isHighlight?: boolean + onClick: (e: React.MouseEvent<HTMLElement>, trackID: number) => void + }) => { + if (enableRenderLog) + console.debug(`Rendering TracksAlbum.tsx Track ${track.name}`) + + return ( + <div + onClick={e => onClick(e, track.id)} + className={classNames( + 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl', + 'grid-cols-12 py-2.5 px-4', + !isSkeleton && { + 'btn-hover-animation after:bg-gray-100 dark:after:bg-white/[.08]': + !isHighlight, + 'bg-brand-100 dark:bg-gray-800': isHighlight, + } + )} + > + {/* Track name and number */} + <div className="col-span-6 grid grid-cols-[2rem_auto] pr-8"> + {/* Track number */} + {isSkeleton ? ( + <Skeleton className="h-6.5 w-6.5 -translate-x-1"></Skeleton> + ) : ( + !isHighlight && ( + <div + className={classNames( + 'self-center group-hover:hidden', + isHighlight && 'text-brand-500', + !isHighlight && 'text-gray-500 dark:text-gray-400' + )} + > + {track.no} + </div> + ) + )} + + {/* Play or pause button for playing track */} + {!isSkeleton && ( + <PlayOrPauseButtonInTrack + isHighlight={isHighlight} + trackID={track.id} + /> + )} + + {/* Track name */} + <div className="flex"> + {isSkeleton ? ( + <Skeleton className="text-lg"> + PLACEHOLDER123456789012345 + </Skeleton> + ) : ( + <div + className={classNames( + 'line-clamp-1 break-all text-lg font-semibold', + isHighlight ? 'text-brand-500' : 'text-black dark:text-white' + )} + > + {track.name} + </div> + )} + </div> + </div> + + {/* Artists */} + <div className="col-span-4 flex items-center"> + {isSkeleton ? ( + <Skeleton>PLACEHOLDER1234</Skeleton> + ) : ( + <ArtistInline + className={ + isHighlight + ? 'text-brand-500' + : 'text-gray-600 dark:text-gray-400' + } + artists={track.ar} + /> + )} + </div> + + {/* Actions & Track duration */} + <div className="col-span-2 flex items-center justify-end"> + {/* Like button */} + {!isSkeleton && ( + <button + className={classNames( + 'mr-5 cursor-default transition duration-300 hover:scale-[1.2]', + isLiked + ? 'text-brand-500 opacity-100' + : 'text-gray-600 opacity-0 dark:text-gray-400', + !isSkeleton && 'group-hover:opacity-100' + )} + > + <SvgIcon + name={isLiked ? 'heart' : 'heart-outline'} + className="h-4 w-4 " + /> + </button> + )} + + {/* Track duration */} + {isSkeleton ? ( + <Skeleton>0:00</Skeleton> + ) : ( + <div + className={classNames( + 'min-w-[2.5rem] text-right', + isHighlight + ? 'text-brand-500' + : 'text-gray-600 dark:text-gray-400' + )} + > + {formatDuration(track.dt, 'en', 'hh:mm:ss')} + </div> + )} + </div> + </div> + ) + } +) +Track.displayName = 'Track' + +const TracksAlbum = ({ + tracks, + isSkeleton = false, + onTrackDoubleClick, +}: { + tracks: Track[] + isSkeleton?: boolean + onTrackDoubleClick?: (trackID: number) => void +}) => { + // Fake data when isSkeleton is true + const skeletonTracks: Track[] = new Array(1).fill({}) + + // Liked songs ids + const { data: user } = useUser() + const { data: userLikedSongs } = useUserLikedSongsIDs({ + uid: user?.account?.id ?? 0, + }) + + const handleClick = useCallback( + (e: React.MouseEvent<HTMLElement>, trackID: number) => { + if (e.detail === 2) onTrackDoubleClick?.(trackID) + }, + [onTrackDoubleClick] + ) + + const playerSnapshot = useSnapshot(player) + const playingTrack = useMemo( + () => playerSnapshot.track, + [playerSnapshot.track] + ) + + return ( + <div className="grid w-full"> + {/* Tracks table header */} + <div className="mx-4 mt-10 mb-2 grid grid-cols-12 border-b border-gray-100 py-2.5 text-sm text-gray-400 dark:border-gray-800 dark:text-gray-500"> + <div className="col-span-6 grid grid-cols-[2rem_auto]"> + <div>#</div> + <div>TITLE</div> + </div> + <div className="col-span-4">ARTIST</div> + <div className="col-span-2 justify-self-end">TIME</div> + </div> + + {/* Tracks */} + {isSkeleton + ? skeletonTracks.map((track, index) => ( + <Track + key={index} + track={track} + onClick={() => null} + isSkeleton={true} + /> + )) + : tracks.map(track => ( + <Track + key={track.id} + track={track} + onClick={handleClick} + isLiked={userLikedSongs?.ids?.includes(track.id) ?? false} + isSkeleton={false} + isHighlight={track.id === playingTrack?.id} + /> + ))} + </div> + ) +} + +export default TracksAlbum diff --git a/packages/renderer/src/components/TracksGrid.tsx b/packages/renderer/src/components/TracksGrid.tsx new file mode 100644 index 0000000..e4e20c0 --- /dev/null +++ b/packages/renderer/src/components/TracksGrid.tsx @@ -0,0 +1,59 @@ +import ArtistInline from '@/components/ArtistsInline' +import Skeleton from '@/components/Skeleton' +import { resizeImage } from '@/utils/common' + +const TrackListGrid = ({ + track, + isSkeleton = false, +}: { + track: Track + isSkeleton: boolean +}) => { + return ( + <div + className={classNames( + 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl', + 'grid-cols-1 py-1.5 px-2' + )} + > + <div className="grid grid-cols-[3rem_auto] items-center"> + {/* Cover */} + <div> + {!isSkeleton && ( + <img + src={resizeImage(track.al.picUrl, 'xs')} + className="box-content h-9 w-9 rounded-md border border-black border-opacity-[.03]" + /> + )} + {isSkeleton && ( + <Skeleton className="mr-4 h-9 w-9 rounded-md border border-gray-100" /> + )} + </div> + + {/* Track name & Artists */} + <div className="flex flex-col justify-center"> + {!isSkeleton && ( + <div + v-if="!isSkeleton" + className="line-clamp-1 break-all text-base font-semibold" + > + {track.name} + </div> + )} + {isSkeleton && ( + <Skeleton className="text-base">PLACEHOLDER12345</Skeleton> + )} + + <div className="text-xs"> + {!isSkeleton && <ArtistInline artists={track.ar} />} + {isSkeleton && ( + <Skeleton className="w-2/3 translate-y-px">PLACE</Skeleton> + )} + </div> + </div> + </div> + </div> + ) +} + +export default TrackListGrid diff --git a/packages/renderer/src/components/TracksList.tsx b/packages/renderer/src/components/TracksList.tsx new file mode 100644 index 0000000..bed7e83 --- /dev/null +++ b/packages/renderer/src/components/TracksList.tsx @@ -0,0 +1,186 @@ +import { Fragment, memo } from 'react' +import { NavLink } from 'react-router-dom' +import ArtistInline from '@/components/ArtistsInline' +import Skeleton from '@/components/Skeleton' +import SvgIcon from '@/components/SvgIcon' +import { prefetchAlbum } from '@/hooks/useAlbum' +import useUser from '@/hooks/useUser' +import useUserLikedSongsIDs from '@/hooks/useUserLikedSongsIDs' +import { formatDuration, resizeImage } from '@/utils/common' + +const Track = memo( + ({ + track, + isLiked = false, + isSkeleton = false, + isPlaying = false, + onClick, + }: { + track: Track + isLiked?: boolean + isSkeleton?: boolean + isPlaying?: boolean + onClick: (e: React.MouseEvent<HTMLElement>, trackID: number) => void + }) => { + return ( + <div + onClick={e => onClick(e, track.id)} + className={classNames( + 'group grid w-full rounded-xl after:scale-[.98] after:rounded-xl dark:after:bg-white/[.08]', + 'grid-cols-12 p-2 pr-4', + !isSkeleton && !isPlaying && 'btn-hover-animation after:bg-gray-100', + !isSkeleton && isPlaying && 'bg-brand-100' + )} + > + {/* Track info */} + <div className="col-span-6 grid grid-cols-[4.2rem_auto] pr-8"> + {/* Cover */} + <div> + {isSkeleton ? ( + <Skeleton className="mr-4 h-12 w-12 rounded-md border border-gray-100 dark:border-gray-800" /> + ) : ( + <img + src={resizeImage(track.al.picUrl, 'xs')} + className="box-content h-12 w-12 rounded-md border border-black border-opacity-[.03]" + /> + )} + </div> + + {/* Track name & Artists */} + <div className="flex flex-col justify-center"> + {isSkeleton ? ( + <Skeleton className="text-lg">PLACEHOLDER12345</Skeleton> + ) : ( + <div className="line-clamp-1 break-all text-lg font-semibold dark:text-white"> + {track.name} + </div> + )} + + <div className="text-sm text-gray-600 dark:text-gray-400"> + {isSkeleton ? ( + <Skeleton className="w-2/3 translate-y-px">PLACE</Skeleton> + ) : ( + <ArtistInline artists={track.ar} /> + )} + </div> + </div> + </div> + + {/* Album name */} + <div className="col-span-4 flex items-center text-gray-600 dark:text-gray-400"> + {isSkeleton ? ( + <Skeleton>PLACEHOLDER1234567890</Skeleton> + ) : ( + <Fragment> + <NavLink + to={`/album/${track.al.id}`} + onMouseOver={() => prefetchAlbum({ id: track.al.id })} + className="hover:underline" + > + {track.al.name} + </NavLink> + <span className="flex-grow"></span> + </Fragment> + )} + </div> + + {/* Actions & Track duration */} + <div className="col-span-2 flex items-center justify-end"> + {/* Like button */} + {!isSkeleton && ( + <button + className={classNames( + 'mr-5 cursor-default transition duration-300 hover:scale-[1.2]', + !isLiked && 'text-gray-600 opacity-0 dark:text-gray-400', + isLiked && 'text-brand-500 opacity-100', + !isSkeleton && 'group-hover:opacity-100' + )} + > + <SvgIcon + name={isLiked ? 'heart' : 'heart-outline'} + className="h-4 w-4 " + /> + </button> + )} + + {/* Track duration */} + {isSkeleton ? ( + <Skeleton>0:00</Skeleton> + ) : ( + <div className="min-w-[2.5rem] text-right text-gray-600 dark:text-gray-400"> + {formatDuration(track.dt, 'en', 'hh:mm:ss')} + </div> + )} + </div> + </div> + ) + } +) +Track.displayName = 'Track' + +const TracksList = memo( + ({ + tracks, + isSkeleton = false, + onTrackDoubleClick, + }: { + tracks: Track[] + isSkeleton?: boolean + onTrackDoubleClick?: (trackID: number) => void + }) => { + console.debug('Rendering TrackList.tsx TrackList') + + // Fake data when isLoading is true + const skeletonTracks: Track[] = new Array(12).fill({}) + + // Liked songs ids + const { data: user } = useUser() + const { data: userLikedSongs } = useUserLikedSongsIDs({ + uid: user?.account?.id ?? 0, + }) + + const handleClick = (e: React.MouseEvent<HTMLElement>, trackID: number) => { + if (e.detail === 2) onTrackDoubleClick?.(trackID) + } + + return ( + <Fragment> + {/* Tracks table header */} + <div className="ml-2 mr-4 mt-10 mb-2 grid grid-cols-12 border-b border-gray-100 py-2.5 text-sm text-gray-400 dark:border-gray-800 dark:text-gray-500"> + <div className="col-span-6 grid grid-cols-[4.2rem_auto]"> + <div></div> + <div>TITLE</div> + </div> + <div className="col-span-4">ALBUM</div> + <div className="col-span-2 justify-self-end">TIME</div> + </div> + + <div className="grid w-full gap-1"> + {/* Tracks */} + {!isSkeleton && + tracks.map(track => ( + <Track + onClick={handleClick} + key={track.id} + track={track} + isLiked={userLikedSongs?.ids?.includes(track.id) ?? false} + isSkeleton={false} + /> + ))} + {isSkeleton && + skeletonTracks.map((track, index) => ( + <Track + key={index} + track={track} + onClick={() => null} + isSkeleton={true} + /> + ))} + </div> + </Fragment> + ) + } +) +TracksList.displayName = 'TracksList' + +export default TracksList diff --git a/packages/renderer/src/global.d.ts b/packages/renderer/src/global.d.ts new file mode 100644 index 0000000..bc390d3 --- /dev/null +++ b/packages/renderer/src/global.d.ts @@ -0,0 +1,14 @@ +export {} + +declare global { + interface Window { + // Expose some Api through preload script + fs: typeof import('fs') + ipcRenderer: import('electron').IpcRenderer + removeLoading: () => void + } +} + +declare module 'valtio' { + function useSnapshot<T extends object>(p: T): T +} diff --git a/packages/renderer/src/hooks/useAlbum.ts b/packages/renderer/src/hooks/useAlbum.ts new file mode 100644 index 0000000..08abbee --- /dev/null +++ b/packages/renderer/src/hooks/useAlbum.ts @@ -0,0 +1,33 @@ +import { fetchAlbum } from '@/api/album' +import { AlbumApiNames } from '@/api/album' +import type { FetchAlbumParams } from '@/api/album' +import reactQueryClient from '@/utils/reactQueryClient' + +const fetch = async (params: FetchAlbumParams, noCache?: boolean) => { + const album = await fetchAlbum(params, !!noCache) + if (album?.album?.songs) { + album.album.songs = album.songs + } + return album +} + +export default function useAlbum(params: FetchAlbumParams, noCache?: boolean) { + return useQuery( + [AlbumApiNames.FETCH_ALBUM, params.id], + () => fetch(params, noCache), + { + enabled: !!params.id, + staleTime: Infinity, + } + ) +} + +export async function prefetchAlbum(params: FetchAlbumParams) { + await reactQueryClient.prefetchQuery( + [AlbumApiNames.FETCH_ALBUM, params.id], + () => fetch(params), + { + staleTime: Infinity, + } + ) +} diff --git a/packages/renderer/src/hooks/useArtist.ts b/packages/renderer/src/hooks/useArtist.ts new file mode 100644 index 0000000..f3075ff --- /dev/null +++ b/packages/renderer/src/hooks/useArtist.ts @@ -0,0 +1,14 @@ +import { fetchArtist } from '@/api/artist' +import { ArtistApiNames } from '@/api/artist' +import type { FetchArtistParams } from '@/api/artist' + +export default function useArtist(params: FetchArtistParams, noCache: boolean) { + return useQuery( + [ArtistApiNames.FETCH_ARTIST, params], + () => fetchArtist(params, noCache), + { + enabled: !!params.id && params.id > 0 && !isNaN(Number(params.id)), + staleTime: 3600000, + } + ) +} diff --git a/packages/renderer/src/hooks/useArtistAlbums.ts b/packages/renderer/src/hooks/useArtistAlbums.ts new file mode 100644 index 0000000..7454623 --- /dev/null +++ b/packages/renderer/src/hooks/useArtistAlbums.ts @@ -0,0 +1,17 @@ +import { fetchArtistAlbums } from '@/api/artist' +import { ArtistApiNames } from '@/api/artist' +import type { FetchArtistAlbumsParams } from '@/api/artist' + +export default function useUserAlbums(params: FetchArtistAlbumsParams) { + return useQuery( + [ArtistApiNames.FETCH_ARTIST_ALBUMS, params], + async () => { + const data = await fetchArtistAlbums(params) + return data + }, + { + enabled: !!params.id && params.id !== 0, + staleTime: 3600000, + } + ) +} diff --git a/packages/renderer/src/hooks/usePlaylist.ts b/packages/renderer/src/hooks/usePlaylist.ts new file mode 100644 index 0000000..131968c --- /dev/null +++ b/packages/renderer/src/hooks/usePlaylist.ts @@ -0,0 +1,33 @@ +import { fetchPlaylist } from '@/api/playlist' +import { PlaylistApiNames } from '@/api/playlist' +import type { FetchPlaylistParams } from '@/api/playlist' +import reactQueryClient from '@/utils/reactQueryClient' + +const fetch = (params: FetchPlaylistParams, noCache?: boolean) => { + return fetchPlaylist(params, !!noCache) +} + +export default function usePlaylist( + params: FetchPlaylistParams, + noCache?: boolean +) { + return useQuery( + [PlaylistApiNames.FETCH_PLAYLIST, params], + () => fetch(params, noCache), + { + enabled: !!(params.id && params.id > 0 && !isNaN(Number(params.id))), + staleTime: 3600000, + } + ) +} + +export async function prefetchPlaylist(params: FetchPlaylistParams) { + console.log('prefetchAlbum', params) + await reactQueryClient.prefetchQuery( + [PlaylistApiNames.FETCH_PLAYLIST, params], + () => fetch(params), + { + staleTime: 3600000, + } + ) +} diff --git a/packages/renderer/src/hooks/useScroll.ts b/packages/renderer/src/hooks/useScroll.ts new file mode 100644 index 0000000..65f0e36 --- /dev/null +++ b/packages/renderer/src/hooks/useScroll.ts @@ -0,0 +1,73 @@ +// Inspired by https://github.com/vueuse/vueuse +import { throttle as lodashThrottle } from 'lodash-es' + +interface ArrivedState { + top: boolean + bottom: boolean + left: boolean + right: boolean +} + +interface Offset { + top?: number + bottom?: number + left?: number + right?: number +} + +const useScroll = ( + ref: React.RefObject<HTMLDivElement> | HTMLElement | null, + { offset, throttle }: { offset?: Offset; throttle?: number } = {} +) => { + const [scroll, setScroll] = useState<{ + x: number + y: number + arrivedState: ArrivedState + }>({ + x: 0, + y: 0, + arrivedState: { + top: true, + bottom: false, + left: false, + right: false, + }, + }) + + useEffect(() => { + if (!ref) return + const handleScroll = (e: React.UIEvent<HTMLDivElement>) => { + if (!e.currentTarget && !e.target) return + const target = e.currentTarget || e.target + + const arrivedState: ArrivedState = { + left: target.scrollLeft <= 0 + (offset?.left || 0), + right: + target.scrollLeft + target.clientWidth >= + target.scrollWidth - (offset?.right || 0), + top: target.scrollTop <= 0 + (offset?.top || 0), + bottom: + target.scrollTop + target.clientHeight >= + target.scrollHeight - (offset?.bottom || 0), + } + + setScroll({ + x: target.scrollLeft, + y: target.scrollTop, + arrivedState, + }) + } + + const readHandleScroll = throttle + ? lodashThrottle(handleScroll, throttle) + : handleScroll + + const element = 'current' in ref ? ref?.current : ref + element?.addEventListener('scroll', readHandleScroll) + return () => element?.removeEventListener('scroll', readHandleScroll) + }, [offset?.bottom, offset?.left, offset?.right, offset?.top, ref, throttle]) + + return scroll +} + +export default useScroll diff --git a/packages/renderer/src/hooks/useTracks.ts b/packages/renderer/src/hooks/useTracks.ts new file mode 100644 index 0000000..474dad1 --- /dev/null +++ b/packages/renderer/src/hooks/useTracks.ts @@ -0,0 +1,43 @@ +import { TrackApiNames, fetchAudioSource, fetchTracks } from '@/api/track' +import type { FetchAudioSourceParams, FetchTracksParams } from '@/api/track' +import reactQueryClient from '@/utils/reactQueryClient' + +export default function useTracks(params: FetchTracksParams) { + return useQuery( + [TrackApiNames.FETCH_TRACKS, params], + () => { + return fetchTracks(params) + }, + { + enabled: params.ids.length !== 0, + refetchInterval: false, + staleTime: Infinity, + } + ) +} + +export function fetchTracksWithReactQuery(params: FetchTracksParams) { + return reactQueryClient.fetchQuery( + [TrackApiNames.FETCH_TRACKS, params], + () => { + return fetchTracks(params) + }, + { + retry: 3, + staleTime: 86400000, + } + ) +} + +export function fetchAudioSourceWithReactQuery(params: FetchAudioSourceParams) { + return reactQueryClient.fetchQuery( + [TrackApiNames.FETCH_AUDIO_SOURCE, params], + () => { + return fetchAudioSource(params) + }, + { + retry: 3, + staleTime: 1200000, + } + ) +} diff --git a/packages/renderer/src/hooks/useTracksInfinite.ts b/packages/renderer/src/hooks/useTracksInfinite.ts new file mode 100644 index 0000000..fd656c7 --- /dev/null +++ b/packages/renderer/src/hooks/useTracksInfinite.ts @@ -0,0 +1,32 @@ +import { TrackApiNames, fetchTracks } from '@/api/track' +import type { FetchTracksParams } from '@/api/track' + +// 100 tracks each page +const offset = 100 + +export default function useTracksInfinite(params: FetchTracksParams) { + return useInfiniteQuery( + [TrackApiNames.FETCH_TRACKS, params], + ({ pageParam = 0 }) => { + const cursorStart = pageParam * offset + const cursorEnd = cursorStart + offset + const ids = params.ids.slice(cursorStart, cursorEnd) + return fetchTracks({ ids }) + }, + { + enabled: params.ids.length !== 0, + refetchOnMount: false, + refetchOnWindowFocus: false, + refetchOnReconnect: false, + refetchInterval: 0, + staleTime: Infinity, + getNextPageParam: (lastPage, pages) => { + // 当 return undefined 时,hasNextPage会等于false + // 当 return 非 undefined 时,return 的数据会传入上面的fetchTracks函数中 + return pages.length * offset < params.ids.length // 判断是否还有下一页 + ? pages.length + : undefined + }, + } + ) +} diff --git a/packages/renderer/src/hooks/useUser.ts b/packages/renderer/src/hooks/useUser.ts new file mode 100644 index 0000000..ae367e0 --- /dev/null +++ b/packages/renderer/src/hooks/useUser.ts @@ -0,0 +1,8 @@ +import { fetchUserAccount } from '@/api/user' +import { UserApiNames } from '@/api/user' + +export default function useUser() { + return useQuery(UserApiNames.FETCH_USER_ACCOUNT, fetchUserAccount, { + refetchOnWindowFocus: true, + }) +} diff --git a/packages/renderer/src/hooks/useUserLikedSongsIDs.ts b/packages/renderer/src/hooks/useUserLikedSongsIDs.ts new file mode 100644 index 0000000..2aabc4e --- /dev/null +++ b/packages/renderer/src/hooks/useUserLikedSongsIDs.ts @@ -0,0 +1,15 @@ +import type { FetchUserLikedSongsIDsParams } from '@/api/user' +import { UserApiNames, fetchUserLikedSongsIDs } from '@/api/user' + +export default function useUserLikedSongsIDs( + params: FetchUserLikedSongsIDsParams +) { + return useQuery( + [UserApiNames.FETCH_USER_LIKED_SONGS_IDS, params], + () => fetchUserLikedSongsIDs(params), + { + enabled: !!(params.uid && params.uid !== 0), + refetchOnWindowFocus: true, + } + ) +} diff --git a/packages/renderer/src/hooks/useUserPlaylists.ts b/packages/renderer/src/hooks/useUserPlaylists.ts new file mode 100644 index 0000000..788a193 --- /dev/null +++ b/packages/renderer/src/hooks/useUserPlaylists.ts @@ -0,0 +1,19 @@ +import type { FetchUserPlaylistsParams } from '@/api/user' +import { UserApiNames, fetchUserPlaylists } from '@/api/user' + +export default function useUserPlaylists(params: FetchUserPlaylistsParams) { + return useQuery( + [UserApiNames.FETCH_USER_PLAYLISTS, params], + async () => { + const data = await fetchUserPlaylists(params) + return data + }, + { + enabled: !!( + !!params.uid && + params.uid !== 0 && + params.offset !== undefined + ), + } + ) +} diff --git a/packages/renderer/src/interface.d.ts b/packages/renderer/src/interface.d.ts new file mode 100644 index 0000000..90f9944 --- /dev/null +++ b/packages/renderer/src/interface.d.ts @@ -0,0 +1,205 @@ +declare interface Playlist { + id: number + name: string + highQuality: boolean + playCount: number + trackCount: number + trackNumberUpdateTime: number + + // 非必有 + + adType?: number + alg?: string + anonimous?: boolean + artists?: [] + backgroundCoverId?: number + backgroundCoverUrl?: string | null + creator: User + canDislike?: boolean + cloudTrackCount?: number + commentThreadId?: string + copywriter?: string + coverImgId_str?: string + coverImgId?: number + coverImgUrl?: string + createTime?: number + description?: string | null + englishTitle?: string | null + historySharedUsers: null + newImported?: boolean + officialPlaylistType: null + opRecommend?: boolean + ordered?: boolean + picUrl?: string + privacy?: number + recommendInfo?: null + remixVideo?: null + sharedUsers?: null + shareStatus?: null + shareCount?: number + specialType?: number + status?: number + subscribed?: boolean + subscribedCount?: number + subscribers?: [] + tags?: [] + titleImage?: number + titleImageUrl?: string | null + totalDuration?: number + trackIds?: { + alg: null + at: number + id: number + rcmdReason: string + t: number + uid: number + v: number + }[] + trackUpdateTime?: number + tracks?: Track[] + type?: number + updateFrequency?: null + updateTime?: number + userId?: number + videoIds: null // TODO: unknown type + videos?: null +} + +declare interface Track { + id: number + a: null + al: Album + alia: string[] + ar: Artist[] + cd: string + cf?: string + copyright: number + cp: number + crbt: null + djId: number + dt: number + fee: number + ftype: number + [key in ('h' | 'm' | 'l')]: { + br: number + fid: number + size: number + vd: number + } + mark: number + mst: number + mv: number + name: string + no: number + noCopyrightRcmd: null + originCoverType: number + originSongSimpleData: null + pop: number + pst: number + publishTime: number + resourceState: boolean + rt: string + rtUrl: string | null + rtUrls: (string | null)[] + rtType: number + rurl: null + s_id: number + single: number + songJumpInfo: null + st: number + t: number + tagPicList: null + v: number + version: number +} +declare interface Artist { + alias: unknown[] + id: number + name: string + tns: string[] + picUrl: string + albumSize: number + picId: string + img1v1Url: string + accountId: number + img1v1: number + identityIconUrl: string + mvSize: number + followed: boolean + alg: string + trans: unknown + cover?: string + musicSize?: number + img1v1Id?: number + topicPerson?: number + briefDesc?: string + publishTime?: number + picId_str?: string + img1v1Id_str?: string +} +declare interface Album { + alias: unknown[] + artist: Artist + artists: Artist[] + blurPicUrl: string + briefDesc: string + commentThreadId: string + company: string + companyId: string + copyrightId: number + description: string + id: number + info: { + commentThread: unknown + } + mark: number + name: string + onSale: boolean + paid: boolean + pic_str: string + pic: number + picId_str: string + picId: number + picUrl: string + publishTime: number + size: number + songs: Track[] + status: number + subType: string + tags: string + tns: unknown[] + type: '专辑' | 'Single' | 'EP/Single' | 'EP' | '精选集' +} +declare interface User { + defaultAvatar: boolean + province: number + authStatus: number + followed: boolean + avatarUrl: string + accountStatus: number + gender: number + city: number + birthday: number + userId: number + userType: number + nickname: string + signature: string + description: string + detailDescription: string + avatarImgId: number + backgroundImgId: number + backgroundUrl: string + authority: number + mutual: boolean + expertTags: null + experts: null + djStatus: number + vipType: number + remarkName: null + authenticationTypes: number + avatarDetail: null + avatarImgIdStr: string + backgroundImgIdStr: string + anchor: boolean + avatarImgId_str: string +} diff --git a/packages/renderer/src/main.tsx b/packages/renderer/src/main.tsx new file mode 100644 index 0000000..30a24ff --- /dev/null +++ b/packages/renderer/src/main.tsx @@ -0,0 +1,24 @@ +import { StrictMode } from 'react' +import { render } from 'react-dom' +import { BrowserRouter } from 'react-router-dom' +import 'virtual:svg-icons-register' +import '@/styles/global.scss' +import App from './App' + +render( + <StrictMode> + <BrowserRouter> + <App /> + </BrowserRouter> + </StrictMode>, + document.getElementById('root'), + window.removeLoading +) + +console.log('fs', window.fs) +console.log('ipcRenderer', window.ipcRenderer) + +// Usage of ipcRenderer.on +window.ipcRenderer.on('main-process-message', (_event, ...args) => { + console.log('[Receive Main-process message]:', ...args) +}) diff --git a/packages/renderer/src/pages/Album.tsx b/packages/renderer/src/pages/Album.tsx new file mode 100644 index 0000000..b4870d0 --- /dev/null +++ b/packages/renderer/src/pages/Album.tsx @@ -0,0 +1,273 @@ +import dayjs from 'dayjs' +import { Fragment } from 'react' +import { NavLink } from 'react-router-dom' +import Button, { Color as ButtonColor } from '@/components/Button' +import CoverRow, { Subtitle } from '@/components/CoverRow' +import Skeleton from '@/components/Skeleton' +import SvgIcon from '@/components/SvgIcon' +import TracksAlbum from '@/components/TracksAlbum' +import useAlbum from '@/hooks/useAlbum' +import useArtistAlbums from '@/hooks/useArtistAlbums' +import { player } from '@/store' +import { formatDate, formatDuration, resizeImage } from '@/utils/common' + +const Header = ({ + album, + isLoading, + handlePlay, +}: { + album: Album | undefined + isLoading: boolean + handlePlay: () => void +}) => { + const coverUrl = resizeImage(album?.picUrl || '', 'lg') + + const albumDuration = useMemo(() => { + const duration = album?.songs?.reduce((acc, cur) => acc + cur.dt, 0) || 0 + return formatDuration(duration, 'en', 'hh[hr] mm[min]') + }, [album?.songs]) + + const [isCoverError, setCoverError] = useState(false) + + return ( + <Fragment> + {/* Header background */} + <div className="absolute top-0 left-0 z-0 h-[24rem] w-full overflow-hidden"> + {coverUrl && !isCoverError && ( + <Fragment> + <img + src={coverUrl} + className="absolute top-[-50%] w-full blur-[100px]" + /> + <img + src={coverUrl} + className="absolute top-[-50%] w-full blur-[100px]" + /> + </Fragment> + )} + <div className="absolute top-0 h-full w-full bg-gradient-to-b from-white/[.84] to-white dark:from-black/[.5] dark:to-[#1d1d1d]"></div> + </div> + + <div className="grid grid-cols-[17rem_auto] items-center gap-9"> + {/* Cover */} + <div className="relative z-0 aspect-square self-start"> + {/* Neon shadow */} + {!isLoading && coverUrl && !isCoverError && ( + <div + className="absolute top-3.5 z-[-1] h-full w-full scale-x-[.92] scale-y-[.96] rounded-2xl bg-cover opacity-40 blur-lg filter" + style={{ + backgroundImage: `url("${coverUrl}")`, + }} + ></div> + )} + + {!isLoading && isCoverError ? ( + // Fallback cover + <div className="flex h-full w-full items-center justify-center rounded-2xl border border-black border-opacity-5 bg-gray-100 text-gray-300"> + <SvgIcon name="music-note" className="h-1/2 w-1/2" /> + </div> + ) : ( + coverUrl && ( + <img + src={coverUrl} + className="rounded-2xl border border-b-0 border-black border-opacity-5 dark:border-white dark:border-opacity-5" + onError={() => setCoverError(true)} + /> + ) + )} + {isLoading && <Skeleton className="h-full w-full rounded-2xl" />} + </div> + + {/* Info */} + <div className="z-10 flex h-full flex-col justify-between"> + {/* Name */} + {!isLoading && ( + <div className="text-6xl font-bold dark:text-white"> + {album?.name} + </div> + )} + {isLoading && ( + <Skeleton className="w-3/4 text-6xl">PLACEHOLDER</Skeleton> + )} + + {/* Artist */} + {!isLoading && ( + <div className="mt-5 text-lg font-medium text-gray-800 dark:text-gray-300"> + Album by{' '} + <NavLink + to={`/artist/${album?.artist.name}`} + className="cursor-default font-semibold hover:underline" + > + {album?.artist.name} + </NavLink> + </div> + )} + {isLoading && ( + <Skeleton className="mt-5 w-64 text-lg">PLACEHOLDER</Skeleton> + )} + + {/* Release date & track count & album duration */} + {!isLoading && ( + <div className="text-sm font-thin text-gray-500 dark:text-gray-400"> + {dayjs(album?.publishTime || 0).year()} · {album?.size} Songs,{' '} + {albumDuration} + </div> + )} + {isLoading && ( + <Skeleton className="w-72 translate-y-px text-sm"> + PLACEHOLDER + </Skeleton> + )} + + {/* Description */} + {!isLoading && ( + <div className="line-clamp-2 mt-5 min-h-[2.5rem] text-sm text-gray-500 dark:text-gray-400"> + {album?.description} + </div> + )} + {isLoading && ( + <Skeleton className="mt-5 min-h-[2.5rem] w-1/2 text-sm"> + PLACEHOLDER + </Skeleton> + )} + + {/* Buttons */} + <div className="mt-5 flex gap-4"> + <Button onClick={() => handlePlay()} isSkelton={isLoading}> + <SvgIcon name="play" className="mr-2 h-4 w-4" /> + PLAY + </Button> + + <Button color={ButtonColor.Gray} isSkelton={isLoading}> + <SvgIcon name="heart" className="h-4 w-4" /> + </Button> + + <Button + color={ButtonColor.Gray} + iconColor={ButtonColor.Gray} + isSkelton={isLoading} + > + <SvgIcon name="more" className="h-4 w-4" /> + </Button> + </div> + </div> + </div> + </Fragment> + ) +} + +const MoreAlbum = ({ album }: { album: Album | undefined }) => { + // Fetch artist's albums + const { data: albums, isLoading } = useArtistAlbums({ + id: album?.artist.id ?? 0, + limit: 1000, + }) + + const filteredAlbums = useMemo((): Album[] => { + if (!albums) return [] + const albumID = album?.id + const allReleases = albums?.hotAlbums || [] + const filteredAlbums = allReleases.filter( + album => + ['专辑', 'EP/Single', 'EP'].includes(album.type) && album.size > 1 + ) + const singles = allReleases.filter(album => album.type === 'Single') + + const qualifiedAlbums = [...filteredAlbums, ...singles] + + const uniqueAlbums: Album[] = [] + qualifiedAlbums.forEach(a => { + // 去除当前页面的专辑 + if (Number(a.id) === Number(albumID) || album?.name === a.name) return + + // 去除重复的专辑(包含 deluxe edition 的专辑会视为重复) + if ( + uniqueAlbums.findIndex(aa => { + return ( + a.name === aa.name || + a.name.toLowerCase().replace(/(\s|deluxe|edition|\(|\))/g, '') === + aa.name.toLowerCase().replace(/(\s|deluxe|edition|\(|\))/g, '') + ) + }) !== -1 + ) { + return + } + + // 去除 remix 专辑 + if ( + a.name.toLowerCase().includes('remix)') || + a.name.toLowerCase().includes('remixes)') + ) { + return + } + + uniqueAlbums.push(a) + }) + + return uniqueAlbums.slice(0, 5) + }, [album?.id, album?.name, albums]) + + return ( + <div> + <div className="my-5 h-px w-full bg-gray-100 dark:bg-gray-800"></div> + <div className="pl-px text-[1.375rem] font-semibold text-gray-800 dark:text-gray-100"> + More by{' '} + <NavLink + to={`/artist/${album?.artist?.id}`} + className="cursor-default hover:underline" + > + {album?.artist.name} + </NavLink> + </div> + <div className="mt-3"> + <CoverRow + albums={filteredAlbums} + subtitle={Subtitle.TYPE_RELEASE_YEAR} + isSkeleton={isLoading} + /> + </div> + </div> + ) +} + +const Album = () => { + const params = useParams() + const { data: album, isLoading } = useAlbum({ + id: Number(params.id) || 0, + }) + + const handlePlay = async (trackID: number | null = null) => { + const realAlbum = album?.album + if (!realAlbum) { + toast('Failed to play album') + return + } + await player.playAlbum(realAlbum, trackID) + } + + return ( + <div className="mt-10"> + <Header + album={album?.album} + isLoading={isLoading} + handlePlay={handlePlay} + /> + <TracksAlbum + tracks={album?.album.songs ?? []} + onTrackDoubleClick={handlePlay} + isSkeleton={isLoading} + /> + {album?.album && ( + <div className="mt-5 text-xs text-gray-400"> + <div> Released {formatDate(album.album.publishTime || 0, 'en')} </div> + {album.album.company && ( + <div className="mt-[2px]">© {album.album.company} </div> + )} + </div> + )} + {!isLoading && <MoreAlbum album={album?.album} />} + </div> + ) +} + +export default Album diff --git a/packages/renderer/src/pages/Home.tsx b/packages/renderer/src/pages/Home.tsx new file mode 100644 index 0000000..f492c87 --- /dev/null +++ b/packages/renderer/src/pages/Home.tsx @@ -0,0 +1,31 @@ +import { PlaylistApiNames, fetchRecommendedPlaylists } from '@/api/playlist' +import CoverRow from '@/components/CoverRow' +import DailyTracksCard from '@/components/DailyTracksCard' +import FMCard from '@/components/FMCard' + +export default function Home() { + const { + data: recommendedPlaylists, + isLoading: isLoadingRecommendedPlaylists, + } = useQuery(PlaylistApiNames.FETCH_RECOMMENDED_PLAYLISTS, () => { + return fetchRecommendedPlaylists({}) + }) + + return ( + <div> + <CoverRow + title="Good Morning" + playlists={recommendedPlaylists?.result.slice(0, 10) ?? []} + isSkeleton={isLoadingRecommendedPlaylists} + /> + + <div className="mt-10 mb-4 text-[28px] font-bold text-black dark:text-white"> + For You + </div> + <div className="grid grid-cols-2 gap-6"> + <DailyTracksCard /> + <FMCard /> + </div> + </div> + ) +} diff --git a/packages/renderer/src/pages/Login.tsx b/packages/renderer/src/pages/Login.tsx new file mode 100644 index 0000000..60ea127 --- /dev/null +++ b/packages/renderer/src/pages/Login.tsx @@ -0,0 +1,299 @@ +import md5 from 'md5' +import QRCode from 'qrcode' +import { Fragment } from 'react' +import { loginWithPhone } from '@/api/auth' +import SvgIcon from '@/components/SvgIcon' +import { state } from '@/store' +import { setCookies } from '@/utils/cookie' + +enum Method { + QRCODE = 'qrcode', + EMAIL = 'email', + PHONE = 'phone', +} + +// Shared components and methods +const EmailInput = ({ + email, + setEmail, +}: { + email: string + setEmail: (email: string) => void +}) => { + return ( + <div className="w-full"> + <div className="mb-1 text-sm font-medium text-gray-700">Email</div> + <input + value={email} + onChange={e => setEmail(e.target.value)} + className="w-full rounded-md border border-gray-300 px-2 py-2" + type="email" + /> + </div> + ) +} + +const PhoneInput = ({ + countryCode, + setCountryCode, + phone, + setPhone, +}: { + countryCode: string + setCountryCode: (code: string) => void + phone: string + setPhone: (phone: string) => void +}) => { + return ( + <div className="w-full"> + <div className="mb-1 text-sm font-medium text-gray-700">Phone</div> + <div className="flex w-full"> + <input + className={classNames( + 'rounded-md rounded-r-none border border-r-0 border-gray-300 px-3 py-2', + countryCode.length <= 3 && 'w-14', + countryCode.length == 4 && 'w-16', + countryCode.length >= 5 && 'w-20' + )} + type="text" + placeholder="+86" + value={countryCode} + onChange={e => setCountryCode(e.target.value)} + /> + <input + className="flex-grow rounded-md rounded-l-none border border-gray-300 px-3 py-2" + type="text" + value={phone} + onChange={e => setPhone(e.target.value)} + /> + </div> + </div> + ) +} + +const PasswordInput = ({ + password, + setPassword, +}: { + password: string + setPassword: (password: string) => void +}) => { + const [showPassword, setShowPassword] = useState(false) + return ( + <div className="mt-3 flex w-full flex-col"> + <div className="mb-1 text-sm font-medium text-gray-700">Password</div> + <div className="flex w-full"> + <input + value={password} + onChange={e => setPassword(e.target.value)} + className="w-full rounded-md rounded-r-none border border-r-0 border-gray-300 px-2 py-2" + type={showPassword ? 'text' : 'password'} + /> + <div className="flex items-center justify-center rounded-md rounded-l-none border border-l-0 border-gray-300 pr-1"> + <button + onClick={() => setShowPassword(!showPassword)} + className="cursor-default rounded p-1.5 text-gray-400 transition duration-300 hover:bg-gray-100 hover:text-gray-600" + > + <SvgIcon + className="h-5 w-5" + name={showPassword ? 'eye-off' : 'eye'} + /> + </button> + </div> + </div> + </div> + ) +} + +const LoginButton = ({ + onClick, + disabled, +}: { + onClick: () => void + disabled: boolean +}) => { + // TODO: Add loading indicator + return ( + <button + onClick={onClick} + className={classNames( + 'my-2 mt-6 flex w-full cursor-default items-center justify-center rounded-lg py-2 text-lg font-semibold transition duration-200', + !disabled && 'bg-brand-100 text-brand-500', + disabled && 'bg-brand-100 text-brand-300' + )} + > + Login + </button> + ) +} + +const OtherLoginMethods = ({ + method, + setMethod, +}: { + method: Method + setMethod: (method: Method) => void +}) => { + const otherLoginMethods: { + id: Method + name: string + }[] = [ + { + id: Method.QRCODE, + name: 'QR Code', + }, + { + id: Method.EMAIL, + name: 'Email', + }, + { + id: Method.PHONE, + name: 'Phone', + }, + ] + return ( + <Fragment> + <div className="mt-8 mb-4 flex w-full items-center"> + <span className="h-px flex-grow bg-gray-300"></span> + <span className="mx-2 text-sm text-gray-400">or</span> + <span className="h-px flex-grow bg-gray-300"></span> + </div> + <div className="flex gap-3"> + {otherLoginMethods.map( + ({ id, name }) => + method !== id && ( + <button + key={id} + onClick={() => setMethod(id)} + className="flex w-full cursor-default items-center justify-center rounded-lg bg-gray-100 py-2 font-medium text-gray-600 transition duration-300 hover:bg-gray-200 hover:text-gray-800" + > + <SvgIcon className="mr-2 h-5 w-5" name={id} /> + <span>{name}</span> + </button> + ) + )} + </div> + </Fragment> + ) +} + +const saveCookie = (cookies: string) => { + setCookies(cookies) +} + +// Login with Email +const LoginWithEmail = () => { + const [password, setPassword] = useState('') + const [email, setEmail] = useState('') + return ( + <Fragment> + <EmailInput {...{ email, setEmail }} /> + <PasswordInput {...{ password, setPassword }} /> + <LoginButton /> + </Fragment> + ) +} + +// Login with Phone +const LoginWithPhone = () => { + const [password, setPassword] = useState('') + const [phone, setPhone] = useState('') + const countryCode = useSnapshot(state).uiStates.loginPhoneCountryCode + const setCountryCode = (countryCode: string) => { + state.uiStates.loginPhoneCountryCode = countryCode + } + const navigate = useNavigate() + + const doLogin = useMutation( + () => { + return loginWithPhone({ + countrycode: Number(countryCode.replace('+', '').trim()) || 86, + phone: phone.trim(), + md5_password: md5(password.trim()), + }) + }, + { + onSuccess: result => { + if (result?.code !== 200) { + toast(`Login failed: ${result.code}`) + return + } + saveCookie(result.cookie) + navigate(-1) + }, + onError: error => { + toast(`Login failed: ${error}`) + }, + } + ) + + const handleLogin = () => { + if (!countryCode || !Number(countryCode.replace('+', '').trim())) { + toast.error('Please enter country code') + return + } + if (!phone) { + toast.error('Please enter phone number') + return + } + if (!password) { + toast.error('Please enter password') + return + } + + doLogin.mutate() + } + + return ( + <Fragment> + <PhoneInput {...{ countryCode, setCountryCode, phone, setPhone }} /> + <PasswordInput {...{ password, setPassword }} /> + <LoginButton onClick={handleLogin} disabled={doLogin.isLoading} /> + </Fragment> + ) +} + +// Login with QRCode +const LoginWithQRCode = () => { + const [qrCodeUrl, setQrCodeUrl] = useState('dasdasfa') + const [qrCodeImage, setQrCodeImage] = useState('') + useMemo(async () => { + try { + const image = await QRCode.toDataURL(qrCodeUrl, { + width: 1024, + margin: 0, + color: { + dark: '#335eea', // TODO: change brand color + light: '#ffffff00', + }, + }) + setQrCodeImage(image) + } catch (err) { + console.error(err) + } + }, [qrCodeUrl]) + const qrCodeMessage = 'test' + return ( + <div className="flex flex-col items-center justify-center"> + <div className="rounded-3xl border p-6"> + <img src={qrCodeImage} alt="QR Code" className="no-drag" /> + </div> + <div className="mt-4 text-sm text-gray-500">{qrCodeMessage}</div> + </div> + ) +} + +export default function Login() { + const [method, setMethod] = useState<Method>(Method.PHONE) + + return ( + <div className="grid h-full place-content-center"> + <div className="w-80"> + {method === Method.EMAIL && <LoginWithEmail />} + {method === Method.PHONE && <LoginWithPhone />} + {method === Method.QRCODE && <LoginWithQRCode />} + <OtherLoginMethods {...{ method, setMethod }} /> + </div> + </div> + ) +} diff --git a/packages/renderer/src/pages/Playlist.tsx b/packages/renderer/src/pages/Playlist.tsx new file mode 100644 index 0000000..85f5a16 --- /dev/null +++ b/packages/renderer/src/pages/Playlist.tsx @@ -0,0 +1,239 @@ +import React, { Fragment, memo } from 'react' +import Button, { Color as ButtonColor } from '@/components/Button' +import Skeleton from '@/components/Skeleton' +import SvgIcon from '@/components/SvgIcon' +import TracksList from '@/components/TracksList' +import usePlaylist from '@/hooks/usePlaylist' +import useScroll from '@/hooks/useScroll' +import useTracksInfinite from '@/hooks/useTracksInfinite' +import { player } from '@/store' +import { formatDate, resizeImage } from '@/utils/common' + +const enableRenderLog = true + +const Header = memo( + ({ + playlist, + isLoading, + handlePlay, + }: { + playlist: Playlist | undefined + isLoading: boolean + handlePlay: () => void + }) => { + if (enableRenderLog) console.debug('Rendering Playlist.tsx Header') + const coverUrl = resizeImage(playlist?.coverImgUrl || '', 'lg') + + return ( + <Fragment> + {/* Header background */} + <div className="absolute top-0 left-0 z-0 h-[24rem] w-full overflow-hidden"> + <img src={coverUrl} className="absolute top-0 w-full blur-[100px]" /> + <img src={coverUrl} className="absolute top-0 w-full blur-[100px]" /> + <div className="absolute top-0 h-full w-full bg-gradient-to-b from-white/[.84] to-white dark:from-black/[.5] dark:to-[#1d1d1d]"></div> + </div> + + <div className="grid grid-cols-[16rem_auto] items-center gap-9"> + {/* Cover */} + <div className="relative z-0 aspect-square self-start"> + {!isLoading && ( + <div + className="absolute top-3.5 z-[-1] h-full w-full scale-x-[.92] scale-y-[.96] rounded-2xl bg-cover opacity-40 blur-lg filter" + style={{ + backgroundImage: `url("${coverUrl}")`, + }} + ></div> + )} + + {!isLoading && ( + <img + src={coverUrl} + className="rounded-2xl border border-black border-opacity-5" + /> + )} + {isLoading && ( + <Skeleton v-else className="h-full w-full rounded-2xl" /> + )} + </div> + + {/* <!-- Playlist info --> */} + <div className="z-10 flex h-full flex-col justify-between"> + {/* <!-- Playlist name --> */} + {!isLoading && ( + <div className="text-4xl font-bold dark:text-white"> + {playlist?.name} + </div> + )} + {isLoading && ( + <Skeleton v-else className="w-3/4 text-4xl"> + PLACEHOLDER + </Skeleton> + )} + + {/* <!-- Playlist creator --> */} + {!isLoading && ( + <div className="mt-5 text-lg font-medium text-gray-800 dark:text-gray-300"> + Playlist by <span>{playlist?.creator?.nickname}</span> + </div> + )} + {isLoading && ( + <Skeleton v-else className="mt-5 w-64 text-lg"> + PLACEHOLDER + </Skeleton> + )} + + {/* <!-- Playlist last update time & track count --> */} + {!isLoading && ( + <div className="text-sm font-thin text-gray-500 dark:text-gray-400"> + Updated at + {formatDate(playlist?.updateTime || 0, 'en')} · + {playlist?.trackCount} Songs + </div> + )} + {isLoading && ( + <Skeleton v-else className="w-72 translate-y-px text-sm"> + PLACEHOLDER + </Skeleton> + )} + + {/* <!-- Playlist description --> */} + {!isLoading && ( + <div className="line-clamp-2 mt-5 min-h-[2.5rem] text-sm text-gray-500 dark:text-gray-400"> + {playlist?.description} + </div> + )} + {isLoading && ( + <Skeleton v-else className="mt-5 min-h-[2.5rem] w-1/2 text-sm"> + PLACEHOLDER + </Skeleton> + )} + + {/* <!-- Buttons --> */} + <div className="mt-5 flex gap-4"> + <Button onClick={() => handlePlay()} isSkelton={isLoading}> + <SvgIcon name="play" className="mr-2 h-4 w-4" /> + PLAY + </Button> + + <Button color={ButtonColor.Gray} isSkelton={isLoading}> + <SvgIcon name="heart" className="h-4 w-4" /> + </Button> + + <Button + color={ButtonColor.Gray} + iconColor={ButtonColor.Gray} + isSkelton={isLoading} + > + <SvgIcon name="more" className="h-4 w-4" /> + </Button> + </div> + </div> + </div> + </Fragment> + ) + } +) +Header.displayName = 'Header' + +const Tracks = memo( + ({ + playlist, + handlePlay, + isLoadingPlaylist, + }: { + playlist: Playlist | undefined + handlePlay: (trackID: number | null) => void + isLoadingPlaylist: boolean + }) => { + if (enableRenderLog) console.debug('Rendering Playlist.tsx Tracks') + + const { + data: tracksPages, + hasNextPage, + isLoading: isLoadingTracks, + isFetchingNextPage, + fetchNextPage, + } = useTracksInfinite({ + ids: playlist?.trackIds?.map(t => t.id) || [], + }) + + const scroll = useScroll(document.getElementById('mainContainer'), { + throttle: 500, + offset: { + bottom: 256, + }, + }) + + useEffect(() => { + if (!scroll.arrivedState.bottom || !hasNextPage || isFetchingNextPage) + return + fetchNextPage() + }, [ + fetchNextPage, + hasNextPage, + isFetchingNextPage, + scroll.arrivedState.bottom, + ]) + + const tracks = useMemo(() => { + if (!tracksPages) return [] + const allTracks: Track[] = [] + tracksPages.pages.forEach(page => allTracks.push(...(page?.songs ?? []))) + return allTracks + }, [tracksPages]) + + return ( + <Fragment> + {isLoadingPlaylist ? ( + <TracksList tracks={[]} isSkeleton={true} /> + ) : isLoadingTracks ? ( + <TracksList + tracks={playlist?.tracks ?? []} + onTrackDoubleClick={handlePlay} + /> + ) : ( + <TracksList tracks={tracks} onTrackDoubleClick={handlePlay} /> + )} + </Fragment> + ) + } +) +Tracks.displayName = 'Tracks' + +const Playlist = () => { + if (enableRenderLog) console.debug('Rendering Playlist.tsx Playlist') + + const params = useParams() + const { data: playlist, isLoading } = usePlaylist({ + id: Number(params.id) || 0, + }) + + const handlePlay = useCallback( + (trackID: number | null = null) => { + if (!playlist) { + toast('Failed to play playlist') + return + } + player.playPlaylist(playlist.playlist, trackID) + }, + [playlist] + ) + + return ( + <div className="mt-10"> + <Header + playlist={playlist?.playlist} + isLoading={isLoading} + handlePlay={handlePlay} + /> + + <Tracks + playlist={playlist?.playlist} + handlePlay={handlePlay} + isLoadingPlaylist={isLoading} + /> + </div> + ) +} + +export default Playlist diff --git a/packages/renderer/src/store.ts b/packages/renderer/src/store.ts new file mode 100644 index 0000000..c05ec6e --- /dev/null +++ b/packages/renderer/src/store.ts @@ -0,0 +1,36 @@ +import { RefObject } from 'react' +import { proxy, subscribe } from 'valtio' +import { devtools } from 'valtio/utils' +import { player as PlayerCore } from '@/utils/player' + +interface Store { + uiStates: { + loginPhoneCountryCode: string + } + settings: { + showSidebar: boolean + } +} + +const initialState: Store = { + uiStates: { + loginPhoneCountryCode: '+86', + }, + settings: { + showSidebar: true, + }, +} + +const stateInLocalStorage = localStorage.getItem('state') +export const state = proxy<Store>( + (stateInLocalStorage && JSON.parse(stateInLocalStorage)) || initialState +) +subscribe(state, () => { + localStorage.setItem('state', JSON.stringify(state)) +}) + +export const player = proxy(PlayerCore) + +// Devtools +devtools(state, 'state') +devtools(player, 'player') diff --git a/packages/renderer/src/styles/global.scss b/packages/renderer/src/styles/global.scss new file mode 100644 index 0000000..03332e6 --- /dev/null +++ b/packages/renderer/src/styles/global.scss @@ -0,0 +1,113 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@mixin line-clamp($lines: 1) { + display: -webkit-box; + -webkit-box-orient: vertical; + overflow: hidden; + word-break: break-all; + -webkit-line-clamp: $lines; +} + +@layer components { + .app-region-drag { + -webkit-app-region: drag; + } + + .app-region-no-drag { + -webkit-app-region: no-drag; + } + + .no-drag { + -webkit-user-drag: none; + } + + .btn-pressed-animation { + @apply transition-transform duration-300; + &:active { + @apply scale-95; + } + } + .btn-hover-animation { + @apply relative transform; + &::after { + @apply absolute top-0 left-0 z-[-1] h-full w-full scale-[0.92] rounded-lg opacity-0 transition-all duration-300; + content: ''; + } + + &:hover::after { + @apply scale-100 opacity-100; + } + } + .line-clamp-1 { + @include line-clamp(1); + } + .line-clamp-2 { + @include line-clamp(2); + } + .line-clamp-3 { + @include line-clamp(3); + } +} + +@font-face { + font-family: Barlow; + font-weight: normal; + src: url('/fonts/Barlow-Regular.woff2') format('woff2'), + url('/fonts/Barlow-Regular.ttf') format('truetype'); +} +@font-face { + font-family: Barlow; + font-weight: medium; + src: url('/fonts/Barlow-Medium.woff2') format('woff2'), + url('/fonts/Barlow-Medium.ttf') format('truetype'); +} +@font-face { + font-family: Barlow; + font-weight: 600; + src: url('/fonts/Barlow-SemiBold.woff2') format('woff2'), + url('/fonts/Barlow-SemiBold.ttf') format('truetype'); +} +@font-face { + font-family: Barlow; + font-weight: bold; + src: url('/fonts/Barlow-Bold.woff2') format('woff2'), + url('/fonts/Barlow-Bold.ttf') format('truetype'); +} +@font-face { + font-family: Barlow; + font-weight: 800; + src: url('/fonts/Barlow-ExtraBold.woff2') format('woff2'), + url('/fonts/Barlow-ExtraBold.ttf') format('truetype'); +} +@font-face { + font-family: Barlow; + font-weight: 900; + src: url('/fonts/Barlow-Black.woff2') format('woff2'), + url('/fonts/Barlow-Black.ttf') format('truetype'); +} + +body, +input { + font-family: 'Barlow', ui-sans-serif, system-ui, -apple-system, + BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, + Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, microsoft uighur, + sans-serif; +} + +body { +} + +html { +} + +button, +input { + @apply outline-none; +} + +a, +button { + cursor: default; +} diff --git a/packages/renderer/src/utils/common.ts b/packages/renderer/src/utils/common.ts new file mode 100644 index 0000000..111f218 --- /dev/null +++ b/packages/renderer/src/utils/common.ts @@ -0,0 +1,104 @@ +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' + +/** + * @description 调整网易云封面图片大小 + * @param {string} url 封面图片URL + * @param {'xs'|'sm'|'md'|'lg'} size - 大小,值对应为 128px | 256px | 512px | 1024px + */ +export function resizeImage( + url: string, + size: 'xs' | 'sm' | 'md' | 'lg' +): string { + if (!url) return '' + const sizeMap = { + xs: '128', + sm: '256', + md: '512', + lg: '1024', + } + if (!Object.keys(sizeMap).includes(size)) { + console.error(`Invalid cover size: ${size}`) + } + return `${url}?param=${sizeMap[size]}y${sizeMap[size]}` +} + +export const storage = { + get(key: string): object | [] | null { + const text = localStorage.getItem(key) + return text ? JSON.parse(text) : null + }, + set(key: string, value: object | []): void { + localStorage.setItem(key, JSON.stringify(value)) + }, +} + +/** + * @description 格式化日期 + * @param {number} timestamp - 时间戳 + * @param {'en'|'zh-TW'|'zh-CN'='en'} locale - 日期语言 + * @param {string='default'} format - 格式化字符串,参考 dayjs + */ +export function formatDate( + timestamp: number, + locale: 'en' | 'zh-TW' | 'zh-CN' = 'en', + format: string = 'default' +): string { + if (!timestamp) return '' + if (format === 'default') { + format = 'MMM D, YYYY' + if (['zh-CN', 'zh-TW'].includes(locale)) format = 'YYYY年MM月DD日' + } + return dayjs(timestamp).format(format) +} + +/** + * @description 格式化时长 + * @param {number} milliseconds - 毫秒数 + * @param {'en'|'zh-TW'|'zh-CN'='en'} locale - 语言 + * @param {'hh:mm:ss'|'hh[hr]mm[min]'='hh:mm:ss'} format - 格式化字符串 + */ +export function formatDuration( + milliseconds: number, + locale: 'en' | 'zh-TW' | 'zh-CN' = 'en', + format: 'hh:mm:ss' | 'hh[hr] mm[min]' = 'hh:mm:ss' +): string { + if (!milliseconds) return '' + + dayjs.extend(duration) + + let time = dayjs.duration(milliseconds) + let hours = time.hours().toString() + let mins = time.minutes().toString() + let seconds = time.seconds().toString().padStart(2, '0') + + if (format === 'hh:mm:ss') { + return hours !== '0' + ? `${hours}:${mins.padStart(2, '0')}:${seconds}` + : `${mins}:${seconds}` + } else if (format === 'hh[hr] mm[min]') { + const units = { + en: { + hours: 'hr', + mins: 'min', + }, + 'zh-CN': { + hours: '小时', + mins: '分钟', + }, + 'zh-TW': { + hours: '小時', + mins: '分鐘', + }, + } + return hours !== '0' + ? `${hours} ${units[locale].hours} ${mins}` + : `${mins} ${units[locale].mins}` + } + + return String(milliseconds) +} + +export function sleep(time: number) { + return new Promise(resolve => setTimeout(resolve, time)) +} diff --git a/packages/renderer/src/utils/cookie.ts b/packages/renderer/src/utils/cookie.ts new file mode 100644 index 0000000..5e3f694 --- /dev/null +++ b/packages/renderer/src/utils/cookie.ts @@ -0,0 +1,19 @@ +import Cookies from 'js-cookie' + +export function setCookies(string: string) { + const cookies = string.replace('HTTPOnly', '').split(';;') + cookies.map(cookie => { + const cookieKeyValue = cookie.split(';')[0].split('=') + const [key, value] = cookieKeyValue + // store.account.cookies[key] = value + Cookies.set(key, value, { expires: 3650 }) + }) +} + +export function getCookie(key: string) { + return Cookies.get(key) +} + +export function removeCookie(key: string) { + Cookies.remove(key) +} diff --git a/packages/renderer/src/utils/player.ts b/packages/renderer/src/utils/player.ts new file mode 100644 index 0000000..c06e066 --- /dev/null +++ b/packages/renderer/src/utils/player.ts @@ -0,0 +1,281 @@ +import { Howl, Howler } from 'howler' +import { + fetchAudioSourceWithReactQuery, + fetchTracksWithReactQuery, +} from '@/hooks/useTracks' + +type TrackID = number +enum TrackListSourceType { + ALBUM = 'album', + PLAYLIST = 'playlist', +} +interface TrackListSource { + type: TrackListSourceType + id: number +} +export enum Mode { + PLAYLIST = 'playlist', + FM = 'fm', +} +export enum State { + INITIALIZING = 'initializing', + PLAYING = 'playing', + PAUSED = 'paused', + LOADED = 'loaded', +} +export enum RepeatMode { + OFF = 'off', + ON = 'on', + ONE = 'one', +} + +let _howler = new Howl({ src: [''], format: ['mp3', 'flac'] }) +export class Player { + private _track: Track | null = null + private _trackIndex: number = 0 + private _progress: number = 0 + private _progressInterval: ReturnType<typeof setInterval> | undefined + + state: State = State.INITIALIZING + mode: Mode = Mode.PLAYLIST + trackList: TrackID[] = [] + trackListSource: TrackListSource | null = null + shuffle: boolean = false + repeatMode: RepeatMode = RepeatMode.OFF + + constructor() { + window.player = this + } + + /** + * Get prev track index + */ + get _prevTrackIndex(): number | undefined { + switch (this.repeatMode) { + case RepeatMode.ONE: + return this._trackIndex + case RepeatMode.OFF: + if (this._trackIndex === 0) return 0 + return this._trackIndex - 1 + case RepeatMode.ON: + if (this._trackIndex - 1 < 0) return this.trackList.length - 1 + return this._trackIndex - 1 + } + } + + /** + * Get next track index + */ + get _nextTrackIndex(): number | undefined { + switch (this.repeatMode) { + case RepeatMode.ONE: + return this._trackIndex + case RepeatMode.OFF: + if (this._trackIndex + 1 >= this.trackList.length) return + return this._trackIndex + 1 + case RepeatMode.ON: + if (this._trackIndex + 1 >= this.trackList.length) return 0 + return this._trackIndex + 1 + } + } + + /** + * Get current playing track ID + */ + get trackID(): TrackID { + const { trackList, _trackIndex } = this + return trackList[_trackIndex] ?? 0 + } + + /** + * Get current playing track + */ + get track(): Track | null { + return this._track ?? null + } + + /** + * Get/Set progress of current track + */ + get progress(): number { + return this._progress + } + set progress(value) { + this._progress = value + _howler.seek(value) + } + + private _setupProgressInterval() { + this._progressInterval = setInterval(() => { + this._progress = _howler.seek() + console.log(this.progress) + }, 1000) + } + + /** + * Fetch track details from Netease based on this.trackID + */ + private async _fetchTrack(trackID: TrackID) { + const response = await fetchTracksWithReactQuery({ ids: [trackID] }) + if (response.songs.length) { + return response.songs[0] + } + } + + /** + * Fetch track audio source url from Netease + * @param {TrackID} trackID + */ + private async _fetchAudioSource(trackID: TrackID) { + const response = await fetchAudioSourceWithReactQuery({ id: trackID }) + if (response.data?.[0]?.url) return response.data[0].url + } + + /** + * Play a track based on this.trackID + */ + private async _playTrack() { + const track = await this._fetchTrack(this.trackID) + if (track) this._track = track + this._playAudio() + } + + /** + * Play audio via howler + * @param {string} audio audio source url + */ + private async _playAudio() { + const audio = await this._fetchAudioSource(this.trackID) + if (!audio) { + toast('Failed to load audio source') + return + } + Howler.unload() + const howler = new Howl({ + src: [audio], + format: ['mp3', 'flac'], + html5: true, + autoplay: true, + volume: 1, + onend: () => this._howlerOnEndCallback(), + }) + _howler = howler + this.play() + + if (!this._progressInterval) { + this._setupProgressInterval() + } + } + + private _howlerOnEndCallback() { + console.log('_howlerOnEndCallback') + if (this.repeatMode === RepeatMode.ONE) { + _howler.seek(0) + _howler.play() + } else { + this.nextTrack() + } + } + + /** + * Play current track + * @param {boolean} fade fade in + */ + play() { + _howler.play() + this.state = State.PLAYING + } + + /** + * Pause current track + * @param {boolean} fade fade out + */ + pause() { + _howler.pause() + this.state = State.PAUSED + } + + /** + * Play or pause current track + */ + playOrPause() { + this.state === State.PLAYING ? this.pause() : this.play() + } + + /** + * Play previous track + */ + prevTrack() { + if (this._prevTrackIndex === undefined) { + toast('No previous track') + return + } + this._trackIndex = this._prevTrackIndex + this._playTrack() + } + + /** + * Play next track + */ + nextTrack() { + console.log(this) + if (this._nextTrackIndex === undefined) { + toast('No next track') + this.pause() + return + } + this._trackIndex = this._nextTrackIndex + this._playTrack() + } + + /** + * Play a playlist + * @param {Playlist} playlist + * @param {null|number=} autoPlayTrackID + */ + async playPlaylist(playlist: Playlist, autoPlayTrackID?: null | number) { + if (!playlist?.trackIds?.length) return + this.trackListSource = { + type: TrackListSourceType.PLAYLIST, + id: playlist.id, + } + this.mode = Mode.PLAYLIST + this.trackList = playlist.trackIds.map(t => t.id) + this._trackIndex = autoPlayTrackID + ? playlist.trackIds.findIndex(t => t.id === autoPlayTrackID) + : 0 + this._playTrack() + } + + /** + * Play am album + * @param {Album} album + * @param {null|number=} autoPlayTrackID + */ + async playAlbum(album: Album, autoPlayTrackID?: null | number) { + console.log(album) + if (!album?.songs?.length) return + this.trackListSource = { + type: TrackListSourceType.ALBUM, + id: album.id, + } + this.mode = Mode.PLAYLIST + this.trackList = album.songs.map(t => t.id) + this._trackIndex = autoPlayTrackID + ? album.songs.findIndex(t => t.id === autoPlayTrackID) + : 0 + this._playTrack() + } + + /** + * Play track in trackList by id + */ + async playTrack(trackID: TrackID) { + const index = this.trackList.findIndex(t => t === trackID) + if (!index) toast('Failed to play: This track is not in the playlist') + this._trackIndex = index + this._playTrack() + } +} + +export const player = new Player() diff --git a/packages/renderer/src/utils/reactQueryClient.ts b/packages/renderer/src/utils/reactQueryClient.ts new file mode 100644 index 0000000..a0ec171 --- /dev/null +++ b/packages/renderer/src/utils/reactQueryClient.ts @@ -0,0 +1,11 @@ +import { QueryClient } from 'react-query' + +const reactQueryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + }, + }, +}) + +export default reactQueryClient diff --git a/packages/renderer/src/utils/request.ts b/packages/renderer/src/utils/request.ts new file mode 100644 index 0000000..2717959 --- /dev/null +++ b/packages/renderer/src/utils/request.ts @@ -0,0 +1,37 @@ +import axios, { + AxiosError, + AxiosInstance, + AxiosRequestConfig, + AxiosResponse, +} from 'axios' + +const baseURL = String( + import.meta.env.DEV ? '/netease' : import.meta.env.VITE_APP_NETEASE_API_URL +) + +const service: AxiosInstance = axios.create({ + baseURL, + withCredentials: true, + timeout: 15000, +}) + +service.interceptors.request.use((config: AxiosRequestConfig) => { + return config +}) + +service.interceptors.response.use( + (response: AxiosResponse) => { + const res = response //.data + return res + }, + (error: AxiosError) => { + return Promise.reject(error) + } +) + +const request = async (config: AxiosRequestConfig) => { + const { data } = await service.request(config) + return data as any +} + +export default request diff --git a/packages/renderer/src/vite-env.d.ts b/packages/renderer/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/renderer/src/vite-env.d.ts @@ -0,0 +1 @@ +/// <reference types="vite/client" /> diff --git a/packages/renderer/tsconfig.json b/packages/renderer/tsconfig.json new file mode 100644 index 0000000..6c79141 --- /dev/null +++ b/packages/renderer/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../paths.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} diff --git a/packages/renderer/vite.config.ts b/packages/renderer/vite.config.ts new file mode 100644 index 0000000..e856a0f --- /dev/null +++ b/packages/renderer/vite.config.ts @@ -0,0 +1,155 @@ +import react from '@vitejs/plugin-react' +import dotenv from 'dotenv' +import { builtinModules } from 'module' +import path, { join } from 'path' +import AutoImport from 'unplugin-auto-import/vite' +import { Plugin, defineConfig } from 'vite' +import resolve from 'vite-plugin-resolve' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' + +dotenv.config({ path: path.resolve(process.cwd(), '.env') }) + +console.log(join(__dirname, '../../.eslintrc.js')) + +/** + * @see https://vitejs.dev/config/ + */ +export default defineConfig({ + mode: process.env.NODE_ENV, + root: __dirname, + plugins: [ + react(), + + /** + * Here you can specify other modules + * 🚧 You have to make sure that your module is in `dependencies` and not in the` devDependencies`, + * which will ensure that the electron-builder can package it correctly + * @example + * { + * 'electron-store': 'const Store = require("electron-store"); export default Store;', + * } + */ + resolveElectron(), + + /** + * @see https://github.com/vbenjs/vite-plugin-svg-icons + */ + createSvgIconsPlugin({ + iconDirs: [ + path.resolve(process.cwd(), 'packages/renderer/src/assets/icons'), + ], + symbolId: 'icon-[name]', + }), + + /** + * @see https://github.com/antfu/unplugin-auto-import + */ + AutoImport({ + dts: './src/auto-imports.d.ts', + imports: [ + 'react', + { classnames: [['default', 'classNames']] }, + { 'react-query': ['useQuery', 'useMutation', 'useInfiniteQuery'] }, + { 'react-router-dom': ['useNavigate', 'useParams'] }, + { 'react-hot-toast': ['toast'] }, + { valtio: ['useSnapshot'] }, + ], + }), + ], + base: './', + build: { + sourcemap: process.env.NODE_ENV === 'debug', + outDir: '../../dist/renderer', + }, + resolve: { + alias: { + '@': join(__dirname, 'src'), + }, + }, + clearScreen: false, + server: { + port: Number(process.env['ELECTRON_WEB_SERVER_PORT'] ?? 42710), + proxy: { + '/netease/': { + target: `http://127.0.0.1:${process.env.ELECTRON_DEV_NETEASE_API_PORT}/netease`, + changeOrigin: true, + rewrite: path => path.replace(/^\/netease/, ''), + }, + }, + }, +}) + +/** + * For usage of Electron and NodeJS APIs in the Renderer process + * @see https://github.com/caoxiemeihao/electron-vue-vite/issues/52 + */ +export function resolveElectron( + resolves: Parameters<typeof resolve>[0] = {} +): Plugin { + const builtins = builtinModules.filter(t => !t.startsWith('_')) + + /** + * @see https://github.com/caoxiemeihao/vite-plugins/tree/main/packages/resolve#readme + */ + return resolve({ + electron: electronExport(), + ...builtinModulesExport(builtins), + ...resolves, + }) + + function electronExport() { + return ` +/** + * For all exported modules see https://www.electronjs.org/docs/latest/api/clipboard -> Renderer Process Modules + */ +const electron = require("electron"); +const { + clipboard, + nativeImage, + shell, + contextBridge, + crashReporter, + ipcRenderer, + webFrame, + desktopCapturer, + deprecate, +} = electron; + +export { + electron as default, + clipboard, + nativeImage, + shell, + contextBridge, + crashReporter, + ipcRenderer, + webFrame, + desktopCapturer, + deprecate, +} +` + } + + function builtinModulesExport(modules: string[]) { + return modules + .map(moduleId => { + const nodeModule = require(moduleId) + const requireModule = `const M = require("${moduleId}");` + const exportDefault = `export default M;` + const exportMembers = + Object.keys(nodeModule) + .map(attr => `export const ${attr} = M.${attr}`) + .join(';\n') + ';' + const nodeModuleCode = ` +${requireModule} + +${exportDefault} + +${exportMembers} +` + + return { [moduleId]: nodeModuleCode } + }) + .reduce((memo, item) => Object.assign(memo, item), {}) + } +} diff --git a/paths.json b/paths.json new file mode 100644 index 0000000..d643910 --- /dev/null +++ b/paths.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "baseUrl": "./", + "paths": { + "@/*": ["packages/renderer/src/*"] + } + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..30ff3f6 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,21 @@ +module.exports = { + trailingComma: 'es5', + tabWidth: 2, + useTabs: false, + semi: false, + jsxBracketSameLine: false, + arrowParens: 'avoid', + endOfLine: 'lf', + bracketSpacing: true, + htmlWhitespaceSensitivity: 'strict', + singleQuote: true, + + // Tailwind CSS + plugins: [require('prettier-plugin-tailwindcss')], + tailwindConfig: './tailwind.config.js', + + // Sort import order + importOrder: ['^@/(.*)$', '^[./]'], + importOrderSeparation: false, + importOrderSortSpecifiers: true, +} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index da39315..0000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/img/icons/1024x1024.png b/public/img/icons/1024x1024.png deleted file mode 100644 index f20aaf1..0000000 Binary files a/public/img/icons/1024x1024.png and /dev/null differ diff --git a/public/img/icons/128x128.png b/public/img/icons/128x128.png deleted file mode 100644 index 5d57494..0000000 Binary files a/public/img/icons/128x128.png and /dev/null differ diff --git a/public/img/icons/16x16.png b/public/img/icons/16x16.png deleted file mode 100644 index ec10d15..0000000 Binary files a/public/img/icons/16x16.png and /dev/null differ diff --git a/public/img/icons/24x24.png b/public/img/icons/24x24.png deleted file mode 100644 index 0915087..0000000 Binary files a/public/img/icons/24x24.png and /dev/null differ diff --git a/public/img/icons/256x256.png b/public/img/icons/256x256.png deleted file mode 100644 index 185a5ea..0000000 Binary files a/public/img/icons/256x256.png and /dev/null differ diff --git a/public/img/icons/32x32.png b/public/img/icons/32x32.png deleted file mode 100644 index 018c6dd..0000000 Binary files a/public/img/icons/32x32.png and /dev/null differ diff --git a/public/img/icons/48x48.png b/public/img/icons/48x48.png deleted file mode 100644 index c806745..0000000 Binary files a/public/img/icons/48x48.png and /dev/null differ diff --git a/public/img/icons/512x512.png b/public/img/icons/512x512.png deleted file mode 100644 index 0b6f725..0000000 Binary files a/public/img/icons/512x512.png and /dev/null differ diff --git a/public/img/icons/64x64.png b/public/img/icons/64x64.png deleted file mode 100644 index 6d07929..0000000 Binary files a/public/img/icons/64x64.png and /dev/null differ diff --git a/public/img/icons/android-chrome-192x192.png b/public/img/icons/android-chrome-192x192.png deleted file mode 100644 index e2669c0..0000000 Binary files a/public/img/icons/android-chrome-192x192.png and /dev/null differ diff --git a/public/img/icons/android-chrome-512x512.png b/public/img/icons/android-chrome-512x512.png deleted file mode 100644 index 8b49079..0000000 Binary files a/public/img/icons/android-chrome-512x512.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon-120x120.png b/public/img/icons/apple-touch-icon-120x120.png deleted file mode 100644 index 1427cf6..0000000 Binary files a/public/img/icons/apple-touch-icon-120x120.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon-152x152.png b/public/img/icons/apple-touch-icon-152x152.png deleted file mode 100644 index f24d454..0000000 Binary files a/public/img/icons/apple-touch-icon-152x152.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon-180x180.png b/public/img/icons/apple-touch-icon-180x180.png deleted file mode 100644 index 404e192..0000000 Binary files a/public/img/icons/apple-touch-icon-180x180.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon-60x60.png b/public/img/icons/apple-touch-icon-60x60.png deleted file mode 100644 index cf10a56..0000000 Binary files a/public/img/icons/apple-touch-icon-60x60.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon-76x76.png b/public/img/icons/apple-touch-icon-76x76.png deleted file mode 100644 index c500769..0000000 Binary files a/public/img/icons/apple-touch-icon-76x76.png and /dev/null differ diff --git a/public/img/icons/apple-touch-icon.png b/public/img/icons/apple-touch-icon.png deleted file mode 100644 index 104a44e..0000000 Binary files a/public/img/icons/apple-touch-icon.png and /dev/null differ diff --git a/public/img/icons/exit.png b/public/img/icons/exit.png deleted file mode 100644 index 01e21b2..0000000 Binary files a/public/img/icons/exit.png and /dev/null differ diff --git a/public/img/icons/favicon-16x16.png b/public/img/icons/favicon-16x16.png deleted file mode 100644 index dd51156..0000000 Binary files a/public/img/icons/favicon-16x16.png and /dev/null differ diff --git a/public/img/icons/favicon-32x32.png b/public/img/icons/favicon-32x32.png deleted file mode 100644 index 5545717..0000000 Binary files a/public/img/icons/favicon-32x32.png and /dev/null differ diff --git a/public/img/icons/favicon.ico b/public/img/icons/favicon.ico deleted file mode 100644 index 69f79b6..0000000 Binary files a/public/img/icons/favicon.ico and /dev/null differ diff --git a/public/img/icons/icon.icns b/public/img/icons/icon.icns deleted file mode 100644 index 66eed86..0000000 Binary files a/public/img/icons/icon.icns and /dev/null differ diff --git a/public/img/icons/icon.ico b/public/img/icons/icon.ico deleted file mode 100644 index d52b6a8..0000000 Binary files a/public/img/icons/icon.ico and /dev/null differ diff --git a/public/img/icons/left.png b/public/img/icons/left.png deleted file mode 100644 index 9e49d7e..0000000 Binary files a/public/img/icons/left.png and /dev/null differ diff --git a/public/img/icons/like.png b/public/img/icons/like.png deleted file mode 100644 index 4bea102..0000000 Binary files a/public/img/icons/like.png and /dev/null differ diff --git a/public/img/icons/menu.png b/public/img/icons/menu.png deleted file mode 100644 index bd91a03..0000000 Binary files a/public/img/icons/menu.png and /dev/null differ diff --git a/public/img/icons/menu@88.png b/public/img/icons/menu@88.png deleted file mode 100644 index cc14a82..0000000 Binary files a/public/img/icons/menu@88.png and /dev/null differ diff --git a/public/img/icons/msapplication-icon-144x144.png b/public/img/icons/msapplication-icon-144x144.png deleted file mode 100644 index 7808237..0000000 Binary files a/public/img/icons/msapplication-icon-144x144.png and /dev/null differ diff --git a/public/img/icons/mstile-150x150.png b/public/img/icons/mstile-150x150.png deleted file mode 100644 index 9d4254d..0000000 Binary files a/public/img/icons/mstile-150x150.png and /dev/null differ diff --git a/public/img/icons/pause.png b/public/img/icons/pause.png deleted file mode 100644 index 509d738..0000000 Binary files a/public/img/icons/pause.png and /dev/null differ diff --git a/public/img/icons/play.png b/public/img/icons/play.png deleted file mode 100644 index 90537c8..0000000 Binary files a/public/img/icons/play.png and /dev/null differ diff --git a/public/img/icons/repeat.png b/public/img/icons/repeat.png deleted file mode 100644 index d4c3fc7..0000000 Binary files a/public/img/icons/repeat.png and /dev/null differ diff --git a/public/img/icons/right.png b/public/img/icons/right.png deleted file mode 100644 index 50c2e75..0000000 Binary files a/public/img/icons/right.png and /dev/null differ diff --git a/public/img/icons/safari-pinned-tab.svg b/public/img/icons/safari-pinned-tab.svg deleted file mode 100644 index e44c0d5..0000000 --- a/public/img/icons/safari-pinned-tab.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> -<path d="M8.00251 14.9297L0 1.07422H6.14651L8.00251 4.27503L9.84583 1.07422H16L8.00251 14.9297Z" fill="black"/> -</svg> diff --git a/public/img/icons/unlike.png b/public/img/icons/unlike.png deleted file mode 100644 index a0afa24..0000000 Binary files a/public/img/icons/unlike.png and /dev/null differ diff --git a/public/img/logos/lastfm.png b/public/img/logos/lastfm.png deleted file mode 100644 index e3964f6..0000000 Binary files a/public/img/logos/lastfm.png and /dev/null differ diff --git a/public/img/logos/netease-music.png b/public/img/logos/netease-music.png deleted file mode 100644 index b14f263..0000000 Binary files a/public/img/logos/netease-music.png and /dev/null differ diff --git a/public/img/logos/nyancat-stop.png b/public/img/logos/nyancat-stop.png deleted file mode 100644 index 72bf07e..0000000 Binary files a/public/img/logos/nyancat-stop.png and /dev/null differ diff --git a/public/img/logos/nyancat.gif b/public/img/logos/nyancat.gif deleted file mode 100644 index bf0314f..0000000 Binary files a/public/img/logos/nyancat.gif and /dev/null differ diff --git a/public/img/logos/yesplaymusic-white24x24.png b/public/img/logos/yesplaymusic-white24x24.png deleted file mode 100644 index d8e4715..0000000 Binary files a/public/img/logos/yesplaymusic-white24x24.png and /dev/null differ diff --git a/public/img/logos/yesplaymusic.png b/public/img/logos/yesplaymusic.png deleted file mode 100644 index e819dd0..0000000 Binary files a/public/img/logos/yesplaymusic.png and /dev/null differ diff --git a/public/img/touchbar/backward.png b/public/img/touchbar/backward.png deleted file mode 100644 index 83b2053..0000000 Binary files a/public/img/touchbar/backward.png and /dev/null differ diff --git a/public/img/touchbar/forward.png b/public/img/touchbar/forward.png deleted file mode 100644 index 5577bb5..0000000 Binary files a/public/img/touchbar/forward.png and /dev/null differ diff --git a/public/img/touchbar/like.png b/public/img/touchbar/like.png deleted file mode 100644 index 09f6534..0000000 Binary files a/public/img/touchbar/like.png and /dev/null differ diff --git a/public/img/touchbar/like_fill.png b/public/img/touchbar/like_fill.png deleted file mode 100644 index bbc2727..0000000 Binary files a/public/img/touchbar/like_fill.png and /dev/null differ diff --git a/public/img/touchbar/next_up.png b/public/img/touchbar/next_up.png deleted file mode 100644 index 60d67a0..0000000 Binary files a/public/img/touchbar/next_up.png and /dev/null differ diff --git a/public/img/touchbar/page_next.png b/public/img/touchbar/page_next.png deleted file mode 100644 index 24ab389..0000000 Binary files a/public/img/touchbar/page_next.png and /dev/null differ diff --git a/public/img/touchbar/page_prev.png b/public/img/touchbar/page_prev.png deleted file mode 100644 index 52cb588..0000000 Binary files a/public/img/touchbar/page_prev.png and /dev/null differ diff --git a/public/img/touchbar/pause.png b/public/img/touchbar/pause.png deleted file mode 100644 index 083f680..0000000 Binary files a/public/img/touchbar/pause.png and /dev/null differ diff --git a/public/img/touchbar/play.png b/public/img/touchbar/play.png deleted file mode 100644 index 101b92f..0000000 Binary files a/public/img/touchbar/play.png and /dev/null differ diff --git a/public/img/touchbar/search.png b/public/img/touchbar/search.png deleted file mode 100644 index e62e725..0000000 Binary files a/public/img/touchbar/search.png and /dev/null differ diff --git a/public/index.html b/public/index.html deleted file mode 100644 index ca6d1ad..0000000 --- a/public/index.html +++ /dev/null @@ -1,25 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - <meta charset="utf-8" /> - <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <meta name="referrer" content="no-referrer" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <link rel="icon" href="<%= BASE_URL %>favicon.ico" /> - <title> - <%= htmlWebpackPlugin.options.title %> - - - - - -
- - - - diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index eb05362..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: diff --git a/scripts/build.mjs b/scripts/build.mjs new file mode 100644 index 0000000..8e79f72 --- /dev/null +++ b/scripts/build.mjs @@ -0,0 +1,8 @@ +import { build } from 'vite' + +await build({ + configFile: 'packages/main/vite.config.ts', + mode: process.env.NODE_ENV === 'debug' ? 'debug' : 'production' +}) +await build({ configFile: 'packages/preload/vite.config.ts' }) +await build({ configFile: 'packages/renderer/vite.config.ts' }) diff --git a/scripts/vite-plugin-esm2cjs.ts b/scripts/vite-plugin-esm2cjs.ts new file mode 100644 index 0000000..0974bee --- /dev/null +++ b/scripts/vite-plugin-esm2cjs.ts @@ -0,0 +1,45 @@ +import { builtinModules } from 'module' +import { Plugin, build } from 'vite' +import resolve from 'vite-plugin-resolve' + +export default function esm2cjs(modules: string[]): Plugin { + return resolve( + { + ...modules.reduce( + (memo, moduleId) => + Object.assign(memo, { + async [moduleId](args) { + await build({ + plugins: [ + { + name: 'vite-plugin[node:mod-to-mod]', + enforce: 'pre', + resolveId(source) { + if (source.startsWith('node:')) { + return source.replace('node:', '') + } + }, + }, + ], + build: { + outDir: args.dir, + minify: false, + emptyOutDir: false, + lib: { + entry: require.resolve(moduleId), + formats: ['cjs'], + fileName: () => `${moduleId}.js`, + }, + rollupOptions: { + external: [...builtinModules], + }, + }, + }) + }, + } as Parameters[0]), + {} + ), + }, + { dir: '.vite-plugin-resolve-esm' } + ) +} diff --git a/scripts/watch.mjs b/scripts/watch.mjs new file mode 100644 index 0000000..ff2fe86 --- /dev/null +++ b/scripts/watch.mjs @@ -0,0 +1,94 @@ +import { spawn } from 'child_process' +import { createServer, build } from 'vite' +import electron from 'electron' +import util from 'util' +import styles from 'ansi-styles' + +/** + * @type {(server: import('vite').ViteDevServer) => Promise} + */ +function watchMain(server) { + /** + * @type {import('child_process').ChildProcessWithoutNullStreams | null} + */ + let electronProcess = null + const address = server.httpServer.address() + const env = Object.assign(process.env, { + VITE_DEV_SERVER_HOST: address.address, + VITE_DEV_SERVER_PORT: address.port, + }) + + return build({ + configFile: 'packages/main/vite.config.ts', + mode: 'development', + plugins: [ + { + name: 'electron-main-watcher', + writeBundle() { + electronProcess && electronProcess.kill() + electronProcess = spawn(electron, ['.'], { stdio: 'inherit', env }) + }, + }, + ], + build: { + watch: true, + }, + }) +} + +/** + * @type {(server: import('vite').ViteDevServer) => Promise} + */ +function watchPreload(server) { + return build({ + configFile: 'packages/preload/vite.config.ts', + mode: 'development', + plugins: [ + { + name: 'electron-preload-watcher', + writeBundle() { + server.ws.send({ type: 'full-reload' }) + }, + }, + ], + build: { + watch: true, + }, + }) +} + +// log prefix +function logPrefix(fn) { + const funcs = { + log: console.log.bind(console), + info: console.info.bind(console), + warn: console.warn.bind(console), + error: console.error.bind(console), + debug: (console.debug || console.log).bind(console), + } + const processLogText = (text, prefix) => { + return text.replaceAll('\n', '\n' + prefix) + } + Object.keys(funcs).forEach(function (k) { + console[k] = function () { + const string = typeof fn === 'function' ? fn() : fn + arguments[0] = util.format(string, processLogText(arguments[0], string)) + funcs[k].apply(console, arguments) + } + }) +} + +const color = (hex, text) => { + return `${styles.color.ansi(styles.hexToAnsi(hex))}${text}${ + styles.color.close + }` +} + +// bootstrap +logPrefix(color('#eab308', '[vite] ')) +const server = await createServer({ + configFile: 'packages/renderer/vite.config.ts', +}) +await server.listen() +await watchPreload(server) +await watchMain(server) diff --git a/src/App.vue b/src/App.vue deleted file mode 100644 index b9d7d41..0000000 --- a/src/App.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - - - diff --git a/src/api/album.js b/src/api/album.js deleted file mode 100644 index 18425d4..0000000 --- a/src/api/album.js +++ /dev/null @@ -1,79 +0,0 @@ -import request from '@/utils/request'; -import { mapTrackPlayableStatus } from '@/utils/common'; -import { cacheAlbum, getAlbumFromCache } from '@/utils/db'; - -/** - * 获取专辑内容 - * 说明 : 调用此接口 , 传入专辑 id, 可获得专辑内容 - * @param {number} id - */ -export function getAlbum(id) { - const fetchLatest = () => { - return request({ - url: '/album', - method: 'get', - params: { - id, - }, - }).then(data => { - cacheAlbum(id, data); - data.songs = mapTrackPlayableStatus(data.songs); - return data; - }); - }; - fetchLatest(); - - return getAlbumFromCache(id).then(result => { - return result ?? fetchLatest(); - }); -} - -/** - * 全部新碟 - * 说明 : 登录后调用此接口 ,可获取全部新碟 - * - limit - 返回数量 , 默认为 30 - * - offset - 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0 - * - area - ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本 - * @param {Object} params - * @param {number} params.limit - * @param {number=} params.offset - * @param {string} params.area - */ -export function newAlbums(params) { - return request({ - url: '/album/new', - method: 'get', - params, - }); -} - -/** - * 专辑动态信息 - * 说明 : 调用此接口 , 传入专辑 id, 可获得专辑动态信息,如是否收藏,收藏数,评论数,分享数 - * - id - 专辑id - * @param {number} id - */ -export function albumDynamicDetail(id) { - return request({ - url: '/album/detail/dynamic', - method: 'get', - params: { id, timestamp: new Date().getTime() }, - }); -} - -/** - * 收藏/取消收藏专辑 - * 说明 : 调用此接口,可收藏/取消收藏专辑 - * - id - 返专辑 id - * - t - 1 为收藏,其他为取消收藏 - * @param {Object} params - * @param {number} params.id - * @param {number} params.t - */ -export function likeAAlbum(params) { - return request({ - url: '/album/sub', - method: 'post', - params, - }); -} diff --git a/src/api/artist.js b/src/api/artist.js deleted file mode 100644 index 462f707..0000000 --- a/src/api/artist.js +++ /dev/null @@ -1,107 +0,0 @@ -import request from '@/utils/request'; -import { mapTrackPlayableStatus } from '@/utils/common'; - -/** - * 获取歌手单曲 - * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手部分信息和热门歌曲 - * @param {number} id - 歌手 id, 可由搜索接口获得 - */ -export function getArtist(id) { - return request({ - url: '/artists', - method: 'get', - params: { - id, - timestamp: new Date().getTime(), - }, - }).then(data => { - data.hotSongs = mapTrackPlayableStatus(data.hotSongs); - return data; - }); -} - -/** - * 获取歌手专辑 - * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手专辑内容 - * - id: 歌手 id - * - limit: 取出数量 , 默认为 50 - * - offset: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认为 0 - * @param {Object} params - * @param {number} params.id - * @param {number=} params.limit - * @param {number=} params.offset - */ -export function getArtistAlbum(params) { - return request({ - url: '/artist/album', - method: 'get', - params, - }); -} - -/** - * 歌手榜 - * 说明 : 调用此接口 , 可获取排行榜中的歌手榜 - * - type : 地区 - * 1: 华语 - * 2: 欧美 - * 3: 韩国 - * 4: 日本 - * @param {number=} type - */ -export function toplistOfArtists(type = null) { - let params = {}; - if (type) { - params.type = type; - } - return request({ - url: '/toplist/artist', - method: 'get', - params, - }); -} -/** - * 获取歌手 mv - * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手 mv 信息 , 具体 mv 播放地址可调 用/mv传入此接口获得的 mvid 来拿到 , 如 : /artist/mv?id=6452,/mv?mvid=5461064 - * @param {number} params.id 歌手 id, 可由搜索接口获得 - * @param {number} params.offset - * @param {number} params.limit - */ -export function artistMv(params) { - return request({ - url: '/artist/mv', - method: 'get', - params, - }); -} - -/** - * 收藏歌手 - * 说明 : 调用此接口 , 传入歌手 id, 可收藏歌手 - * - id: 歌手 id - * - t: 操作,1 为收藏,其他为取消收藏 - * @param {Object} params - * @param {number} params.id - * @param {number} params.t - */ -export function followAArtist(params) { - return request({ - url: '/artist/sub', - method: 'post', - params, - }); -} - -/** - * 相似歌手 - * 说明 : 调用此接口 , 传入歌手 id, 可获得相似歌手 - * - id: 歌手 id - * @param {number} id - */ -export function similarArtists(id) { - return request({ - url: '/simi/artist', - method: 'post', - params: { id }, - }); -} diff --git a/src/api/auth.js b/src/api/auth.js deleted file mode 100644 index 294f551..0000000 --- a/src/api/auth.js +++ /dev/null @@ -1,110 +0,0 @@ -import request from '@/utils/request'; - -/** - * 手机登录 - * - phone: 手机号码 - * - password: 密码 - * - countrycode: 国家码,用于国外手机号登录,例如美国传入:1 - * - md5_password: md5加密后的密码,传入后 password 将失效 - * @param {Object} params - * @param {string} params.phone - * @param {string} params.password - * @param {string=} params.countrycode - * @param {string=} params.md5_password - */ -export function loginWithPhone(params) { - return request({ - url: '/login/cellphone', - method: 'post', - params, - }); -} - -/** - * 邮箱登录 - * - email: 163 网易邮箱 - * - password: 密码 - * - md5_password: md5加密后的密码,传入后 password 将失效 - * @param {Object} params - * @param {string} params.email - * @param {string} params.password - * @param {string=} params.md5_password - */ -export function loginWithEmail(params) { - return request({ - url: '/login', - method: 'post', - params, - }); -} - -/** - * 二维码key生成接口 - */ -export function loginQrCodeKey() { - return request({ - url: '/login/qr/key', - method: 'get', - params: { - timestamp: new Date().getTime(), - }, - }); -} - -/** - * 二维码生成接口 - * 说明: 调用此接口传入上一个接口生成的key可生成二维码图片的base64和二维码信息, - * 可使用base64展示图片,或者使用二维码信息内容自行使用第三方二维码生产库渲染二维码 - * @param {Object} params - * @param {string} params.key - * @param {string=} params.qrimg 传入后会额外返回二维码图片base64编码 - */ -export function loginQrCodeCreate(params) { - return request({ - url: '/login/qr/create', - method: 'get', - params: { - ...params, - timestamp: new Date().getTime(), - }, - }); -} - -/** - * 二维码检测扫码状态接口 - * 说明: 轮询此接口可获取二维码扫码状态,800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功(803状态码下会返回cookies) - * @param {string} key - */ -export function loginQrCodeCheck(key) { - return request({ - url: '/login/qr/check', - method: 'get', - params: { - key, - timestamp: new Date().getTime(), - }, - }); -} - -/** - * 刷新登录 - * 说明 : 调用此接口 , 可刷新登录状态 - * - 调用例子 : /login/refresh - */ -export function refreshCookie() { - return request({ - url: '/login/refresh', - method: 'post', - }); -} - -/** - * 退出登录 - * 说明 : 调用此接口 , 可退出登录 - */ -export function logout() { - return request({ - url: '/logout', - method: 'post', - }); -} diff --git a/src/api/lastfm.js b/src/api/lastfm.js deleted file mode 100644 index 41ad9c5..0000000 --- a/src/api/lastfm.js +++ /dev/null @@ -1,80 +0,0 @@ -// Last.fm API documents 👉 https://www.last.fm/api - -import axios from 'axios'; -import md5 from 'crypto-js/md5'; - -const apiKey = process.env.VUE_APP_LASTFM_API_KEY; -const apiSharedSecret = process.env.VUE_APP_LASTFM_API_SHARED_SECRET; -const baseUrl = window.location.origin; -const url = 'https://ws.audioscrobbler.com/2.0/'; - -const sign = params => { - const sortParamsKeys = Object.keys(params).sort(); - const sortedParams = sortParamsKeys.reduce((acc, key) => { - acc[key] = params[key]; - return acc; - }, {}); - let signature = ''; - for (const [key, value] of Object.entries(sortedParams)) { - signature += `${key}${value}`; - } - return md5(signature + apiSharedSecret).toString(); -}; - -export function auth() { - const url = process.env.IS_ELECTRON - ? `https://www.last.fm/api/auth/?api_key=${apiKey}&cb=${baseUrl}/#/lastfm/callback` - : `https://www.last.fm/api/auth/?api_key=${apiKey}&cb=${baseUrl}/lastfm/callback`; - window.open(url); -} - -export function authGetSession(token) { - const signature = md5( - `api_key${apiKey}methodauth.getSessiontoken${token}${apiSharedSecret}` - ).toString(); - return axios({ - url, - method: 'GET', - params: { - method: 'auth.getSession', - format: 'json', - api_key: apiKey, - api_sig: signature, - token, - }, - }); -} - -export function trackUpdateNowPlaying(params) { - params.api_key = apiKey; - params.method = 'track.updateNowPlaying'; - params.sk = JSON.parse(localStorage.getItem('lastfm'))['key']; - const signature = sign(params); - - return axios({ - url, - method: 'POST', - params: { - ...params, - api_sig: signature, - format: 'json', - }, - }); -} - -export function trackScrobble(params) { - params.api_key = apiKey; - params.method = 'track.scrobble'; - params.sk = JSON.parse(localStorage.getItem('lastfm'))['key']; - const signature = sign(params); - - return axios({ - url, - method: 'POST', - params: { - ...params, - api_sig: signature, - format: 'json', - }, - }); -} diff --git a/src/api/mv.js b/src/api/mv.js deleted file mode 100644 index ecd2b10..0000000 --- a/src/api/mv.js +++ /dev/null @@ -1,69 +0,0 @@ -import request from '@/utils/request'; - -/** - * 获取 mv 数据 - * 说明 : 调用此接口 , 传入 mvid ( 在搜索音乐的时候传 type=1004 获得 ) , 可获取对应 MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等数据 , - * 其中 mv 视频 网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' mv 地址' 接口 - * - 调用例子 : /mv/detail?mvid=5436712 - * @param {number} mvid mv 的 id - */ -export function mvDetail(mvid) { - return request({ - url: '/mv/detail', - method: 'get', - params: { - mvid, - timestamp: new Date().getTime(), - }, - }); -} - -/** - * mv 地址 - * 说明 : 调用此接口 , 传入 mv id,可获取 mv 播放地址 - * - id: mv id - * - r: 分辨率,默认1080,可从 /mv/detail 接口获取分辨率列表 - * - 调用例子 : /mv/url?id=5436712 /mv/url?id=10896407&r=1080 - * @param {Object} params - * @param {number} params.id - * @param {number=} params.r - */ -export function mvUrl(params) { - return request({ - url: '/mv/url', - method: 'get', - params, - }); -} - -/** - * 相似 mv - * 说明 : 调用此接口 , 传入 mvid 可获取相似 mv - * @param {number} mvid - */ -export function simiMv(mvid) { - return request({ - url: '/simi/mv', - method: 'get', - params: { mvid }, - }); -} - -/** - * 收藏/取消收藏 MV - * 说明 : 调用此接口,可收藏/取消收藏 MV - * - mvid: mv id - * - t: 1 为收藏,其他为取消收藏 - * @param {Object} params - * @param {number} params.mvid - * @param {number=} params.t - */ - -export function likeAMV(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/mv/sub', - method: 'post', - params, - }); -} diff --git a/src/api/others.js b/src/api/others.js deleted file mode 100644 index 5c3cd63..0000000 --- a/src/api/others.js +++ /dev/null @@ -1,50 +0,0 @@ -import request from '@/utils/request'; -import { mapTrackPlayableStatus } from '@/utils/common'; - -/** - * 搜索 - * 说明 : 调用此接口 , 传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户 , 关键词可以多个 , 以空格隔开 , - * 如 " 周杰伦 搁浅 "( 不需要登录 ), 搜索获取的 mp3url 不能直接用 , 可通过 /song/url 接口传入歌曲 id 获取具体的播放链接 - * - keywords : 关键词 - * - limit : 返回数量 , 默认为 30 - * - offset : 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0 - * - type: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频, 1018:综合 - * - 调用例子 : /search?keywords=海阔天空 /cloudsearch?keywords=海阔天空(更全) - * @param {Object} params - * @param {string} params.keywords - * @param {number=} params.limit - * @param {number=} params.offset - * @param {number=} params.type - */ -export function search(params) { - return request({ - url: '/search', - method: 'get', - params, - }).then(data => { - if (data.result?.song !== undefined) - data.result.song.songs = mapTrackPlayableStatus(data.result.song.songs); - return data; - }); -} - -export function personalFM() { - return request({ - url: '/personal_fm', - method: 'get', - params: { - timestamp: new Date().getTime(), - }, - }); -} - -export function fmTrash(id) { - return request({ - url: '/fm_trash', - method: 'post', - params: { - timestamp: new Date().getTime(), - id, - }, - }); -} diff --git a/src/api/playlist.js b/src/api/playlist.js deleted file mode 100644 index 58f6b98..0000000 --- a/src/api/playlist.js +++ /dev/null @@ -1,226 +0,0 @@ -import request from '@/utils/request'; -import { mapTrackPlayableStatus } from '@/utils/common'; - -/** - * 推荐歌单 - * 说明 : 调用此接口 , 可获取推荐歌单 - * - limit: 取出数量 , 默认为 30 (不支持 offset) - * - 调用例子 : /personalized?limit=1 - * @param {Object} params - * @param {number=} params.limit - */ -export function recommendPlaylist(params) { - return request({ - url: '/personalized', - method: 'get', - params, - }); -} -/** - * 获取每日推荐歌单 - * 说明 : 调用此接口 , 可获得每日推荐歌单 ( 需要登录 ) - * @param {Object} params - * @param {number=} params.limit - */ -export function dailyRecommendPlaylist(params) { - return request({ - url: '/recommend/resource', - method: 'get', - params, - }); -} -/** - * 获取歌单详情 - * 说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的), - * 但是返回的trackIds是完整的,tracks 则是不完整的,可拿全部 trackIds 请求一次 song/detail 接口 - * 获取所有歌曲的详情 (https://github.com/Binaryify/NeteaseCloudMusicApi/issues/452) - * - id : 歌单 id - * - s : 歌单最近的 s 个收藏者, 默认为8 - * @param {number} id - * @param {boolean=} noCache - */ -export function getPlaylistDetail(id, noCache = false) { - let params = { id }; - if (noCache) params.timestamp = new Date().getTime(); - return request({ - url: '/playlist/detail', - method: 'get', - params, - }).then(data => { - if (data.playlist) { - data.playlist.tracks = mapTrackPlayableStatus( - data.playlist.tracks, - data.privileges || [] - ); - } - return data; - }); -} -/** - * 获取精品歌单 - * 说明 : 调用此接口 , 可获取精品歌单 - * - cat: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 "全部", 可从精品歌单标签列表接口获取(/playlist/highquality/tags) - * - limit: 取出歌单数量 , 默认为 20 - * - before: 分页参数,取上一页最后一个歌单的 updateTime 获取下一页数据 - * @param {Object} params - * @param {string} params.cat - * @param {number=} params.limit - * @param {number} params.before - */ -export function highQualityPlaylist(params) { - return request({ - url: '/top/playlist/highquality', - method: 'get', - params, - }); -} - -/** - * 歌单 ( 网友精选碟 ) - * 说明 : 调用此接口 , 可获取网友精选碟歌单 - * - order: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 'hot' - * - cat: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 "全部",可从歌单分类接口获取(/playlist/catlist) - * - limit: 取出歌单数量 , 默认为 50 - * @param {Object} params - * @param {string} params.order - * @param {string} params.cat - * @param {number=} params.limit - */ -export function topPlaylist(params) { - return request({ - url: '/top/playlist', - method: 'get', - params, - }); -} - -/** - * 歌单分类 - * 说明 : 调用此接口,可获取歌单分类,包含 category 信息 - */ -export function playlistCatlist() { - return request({ - url: '/playlist/catlist', - method: 'get', - }); -} - -/** - * 所有榜单 - * 说明 : 调用此接口,可获取所有榜单 接口地址 : /toplist - */ -export function toplists() { - return request({ - url: '/toplist', - method: 'get', - }); -} - -/** - * 收藏/取消收藏歌单 - * 说明 : 调用此接口, 传入类型和歌单 id 可收藏歌单或者取消收藏歌单 - * - t : 类型,1:收藏,2:取消收藏 - * - id : 歌单 id - * @param {Object} params - * @param {number} params.t - * @param {number} params.id - */ -export function subscribePlaylist(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/playlist/subscribe', - method: 'post', - params, - }); -} - -/** - * 删除歌单 - * 说明 : 调用此接口 , 传入歌单id可删除歌单 - * - id : 歌单id,可多个,用逗号隔开 - * * @param {number} id - */ -export function deletePlaylist(id) { - return request({ - url: '/playlist/delete', - method: 'post', - params: { id }, - }); -} - -/** - * 新建歌单 - * 说明 : 调用此接口 , 传入歌单名字可新建歌单 - * - name : 歌单名 - * - privacy : 是否设置为隐私歌单,默认否,传'10'则设置成隐私歌单 - * - type : 歌单类型,默认'NORMAL',传 'VIDEO'则为视频歌单 - * @param {Object} params - * @param {string} params.name - * @param {number} params.privacy - * @param {string} params.type - */ -export function createPlaylist(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/playlist/create', - method: 'post', - params, - }); -} - -/** - * 对歌单添加或删除歌曲 - * 说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 ) - * - op: 从歌单增加单曲为 add, 删除为 del - * - pid: 歌单 id tracks: 歌曲 id,可多个,用逗号隔开 - * @param {Object} params - * @param {string} params.op - * @param {string} params.pid - */ -export function addOrRemoveTrackFromPlaylist(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/playlist/tracks', - method: 'post', - params, - }); -} - -/** - * 每日推荐歌曲 - * 说明 : 调用此接口 , 可获得每日推荐歌曲 ( 需要登录 ) - * @param {Object} params - * @param {string} params.op - * @param {string} params.pid - */ -export function dailyRecommendTracks() { - return request({ - url: '/recommend/songs', - method: 'get', - params: { timestamp: new Date().getTime() }, - }).then(result => { - result.data.dailySongs = mapTrackPlayableStatus( - result.data.dailySongs, - result.data.privileges - ); - return result; - }); -} - -/** - * 心动模式/智能播放 - * 说明 : 登录后调用此接口 , 可获取心动模式/智能播放列表 必选参数 : id : 歌曲 id - * - id : 歌曲 id - * - pid : 歌单 id - * - sid : 要开始播放的歌曲的 id (可选参数) - * @param {Object} params - * @param {number=} params.id - * @param {number=} params.pid - */ -export function intelligencePlaylist(params) { - return request({ - url: '/playmode/intelligence/list', - method: 'get', - params, - }); -} diff --git a/src/api/track.js b/src/api/track.js deleted file mode 100644 index 472dc6a..0000000 --- a/src/api/track.js +++ /dev/null @@ -1,146 +0,0 @@ -import store from '@/store'; -import request from '@/utils/request'; -import { mapTrackPlayableStatus } from '@/utils/common'; -import { - cacheTrackDetail, - getTrackDetailFromCache, - cacheLyric, - getLyricFromCache, -} from '@/utils/db'; - -/** - * 获取音乐 url - * 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url, - * !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间) - * @param {string} id - 音乐的 id,例如 id=405998841,33894312 - */ -export function getMP3(id) { - let br = - store.state.settings?.musicQuality !== undefined - ? store.state.settings.musicQuality - : 320000; - return request({ - url: '/song/url', - method: 'get', - params: { - id, - br, - }, - }); -} - -/** - * 获取歌曲详情 - * 说明 : 调用此接口 , 传入音乐 id(支持多个 id, 用 , 隔开), 可获得歌曲详情(注意:歌曲封面现在需要通过专辑内容接口获取) - * @param {string} ids - 音乐 id, 例如 ids=405998841,33894312 - */ -export function getTrackDetail(ids) { - const fetchLatest = () => { - return request({ - url: '/song/detail', - method: 'get', - params: { - ids, - }, - }).then(data => { - data.songs.map(song => { - const privileges = data.privileges.find(t => t.id === song.id); - cacheTrackDetail(song, privileges); - }); - data.songs = mapTrackPlayableStatus(data.songs, data.privileges); - return data; - }); - }; - fetchLatest(); - - let idsInArray = [String(ids)]; - if (typeof ids === 'string') { - idsInArray = ids.split(','); - } - - return getTrackDetailFromCache(idsInArray).then(result => { - if (result) { - result.songs = mapTrackPlayableStatus(result.songs, result.privileges); - } - return result ?? fetchLatest(); - }); -} - -/** - * 获取歌词 - * 说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 ) - * @param {number} id - 音乐 id - */ -export function getLyric(id) { - const fetchLatest = () => { - return request({ - url: '/lyric', - method: 'get', - params: { - id, - }, - }).then(result => { - cacheLyric(id, result); - return result; - }); - }; - - fetchLatest(); - - return getLyricFromCache(id).then(result => { - return result ?? fetchLatest(); - }); -} - -/** - * 新歌速递 - * 说明 : 调用此接口 , 可获取新歌速递 - * @param {number} type - 地区类型 id, 对应以下: 全部:0 华语:7 欧美:96 日本:8 韩国:16 - */ -export function topSong(type) { - return request({ - url: '/top/song', - method: 'get', - params: { - type, - }, - }); -} - -/** - * 喜欢音乐 - * 说明 : 调用此接口 , 传入音乐 id, 可喜欢该音乐 - * - id - 歌曲 id - * - like - 默认为 true 即喜欢 , 若传 false, 则取消喜欢 - * @param {Object} params - * @param {number} params.id - * @param {boolean=} [params.like] - */ -export function likeATrack(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/like', - method: 'get', - params, - }); -} - -/** - * 听歌打卡 - * 说明 : 调用此接口 , 传入音乐 id, 来源 id,歌曲时间 time,更新听歌排行数据 - * - id - 歌曲 id - * - sourceid - 歌单或专辑 id - * - time - 歌曲播放时间,单位为秒 - * @param {Object} params - * @param {number} params.id - * @param {number} params.sourceid - * @param {number=} params.time - */ -export function scrobble(params) { - params.timestamp = new Date().getTime(); - return request({ - url: '/scrobble', - method: 'get', - params, - }); -} diff --git a/src/assets/css/global.scss b/src/assets/css/global.scss deleted file mode 100644 index 00c3915..0000000 --- a/src/assets/css/global.scss +++ /dev/null @@ -1,135 +0,0 @@ -@font-face { - font-family: 'Barlow'; - font-weight: normal; - src: url('~@/assets/fonts/Barlow-Regular.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-Regular.ttf') format('truetype'); -} -@font-face { - font-family: 'Barlow'; - font-weight: medium; - src: url('~@/assets/fonts/Barlow-Medium.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-Medium.ttf') format('truetype'); -} -@font-face { - font-family: 'Barlow'; - font-weight: 600; - src: url('~@/assets/fonts/Barlow-SemiBold.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-SemiBold.ttf') format('truetype'); -} -@font-face { - font-family: 'Barlow'; - font-weight: bold; - src: url('~@/assets/fonts/Barlow-Bold.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-Bold.ttf') format('truetype'); -} -@font-face { - font-family: 'Barlow'; - font-weight: 800; - src: url('~@/assets/fonts/Barlow-ExtraBold.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-ExtraBold.ttf') format('truetype'); -} -@font-face { - font-family: 'Barlow'; - font-weight: 900; - src: url('~@/assets/fonts/Barlow-Black.woff2') format('woff2'), - url('~@/assets/fonts/Barlow-Black.ttf') format('truetype'); -} - -:root { - --color-body-bg: #ffffff; - --color-text: #000; - --color-primary: #335eea; - --color-primary-bg: #eaeffd; - --color-secondary: #7a7a7b; - --color-secondary-bg: #f5f5f7; - --color-navbar-bg: rgba(255, 255, 255, 0.86); - --color-primary-bg-for-transparent: rgba(189, 207, 255, 0.28); - --color-secondary-bg-for-transparent: rgba(209, 209, 214, 0.28); - --html-overflow-y: overlay; -} - -[data-theme='dark'] { - --color-body-bg: #222222; - --color-text: #ffffff; - --color-primary: #335eea; - --color-primary-bg: #bbcdff; - --color-secondary: #7a7a7b; - --color-secondary-bg: #323232; - --color-navbar-bg: rgba(34, 34, 34, 0.86); - --color-primary-bg-for-transparent: rgba(255, 255, 255, 0.12); - --color-secondary-bg-for-transparent: rgba(255, 255, 255, 0.08); -} - -#app, -input { - font-family: 'Barlow', ui-sans-serif, system-ui, -apple-system, - BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, - Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif, - microsoft uighur; -} -body { - background-color: var(--color-body-bg); -} - -html { - overflow-y: var(--html-overflow-y); - min-width: 768px; - overscroll-behavior: none; -} - -select, -button { - font-family: inherit; -} -button { - background: none; - border: none; - cursor: pointer; - user-select: none; -} -input, -button { - &:focus { - outline: none; - } -} -a { - color: inherit; - text-decoration: none; - cursor: pointer; - &:hover { - text-decoration: underline; - } -} - -[data-electron='yes'] { - button, - .navigation-links a, - .playlist-info .description { - cursor: default !important; - } -} - -::-webkit-scrollbar { - width: 8px; -} - -::-webkit-scrollbar-track { - background: transparent; - border-left: 1px solid rgba(128, 128, 128, 0.18); - background: var(--color-body-bg); -} - -::-webkit-scrollbar-thumb { - -webkit-border-radius: 10px; - border-radius: 10px; - background: rgba(128, 128, 128, 0.38); -} - -[data-theme='dark'] ::-webkit-scrollbar-thumb { - background: var(--color-secondary-bg); -} - -.user-select-none { - user-select: none; -} diff --git a/src/assets/css/nprogress.css b/src/assets/css/nprogress.css deleted file mode 100644 index bed8b7f..0000000 --- a/src/assets/css/nprogress.css +++ /dev/null @@ -1,40 +0,0 @@ -/* Make clicks pass-through */ -#nprogress { - pointer-events: none; -} - -#nprogress .bar { - background: #335eea; - - position: fixed; - z-index: 1031; - top: 0; - left: 0; - - width: 100%; - height: 2px; -} - -/* Fancy blur effect */ -#nprogress .peg { - display: block; - position: absolute; - right: 0px; - width: 100px; - height: 100%; - box-shadow: 0 0 10px #335eea, 0 0 5px #335eea; - opacity: 1; - - -webkit-transform: rotate(3deg) translate(0px, -4px); - -ms-transform: rotate(3deg) translate(0px, -4px); - transform: rotate(3deg) translate(0px, -4px); -} - -.nprogress-custom-parent { - overflow: hidden; - position: relative; -} - -.nprogress-custom-parent #nprogress .bar { - position: absolute; -} diff --git a/src/assets/css/plyr.css b/src/assets/css/plyr.css deleted file mode 100644 index 1a128f0..0000000 --- a/src/assets/css/plyr.css +++ /dev/null @@ -1,1811 +0,0 @@ -@keyframes plyr-progress { - to { - background-position: 25px 0; - background-position: var(--plyr-progress-loading-size, 25px) 0; - } -} - -@keyframes plyr-popup { - 0% { - opacity: 0.5; - transform: translateY(10px); - } - - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes plyr-fade-in { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -.plyr { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - align-items: center; - direction: ltr; - display: flex; - flex-direction: column; - font-family: inherit; - font-family: var(--plyr-font-family, inherit); - font-variant-numeric: tabular-nums; - font-weight: 400; - font-weight: var(--plyr-font-weight-regular, 400); - height: 100%; - line-height: 1.7; - line-height: var(--plyr-line-height, 1.7); - max-width: 100%; - min-width: 200px; - position: relative; - text-shadow: none; - transition: box-shadow 0.3s ease; - z-index: 0; -} - -.plyr audio, -.plyr iframe, -.plyr video { - display: block; - height: 100%; - width: 100%; -} - -.plyr button { - font: inherit; - line-height: inherit; - width: auto; -} - -.plyr:focus { - outline: 0; -} - -.plyr--full-ui { - box-sizing: border-box; -} - -.plyr--full-ui *, -.plyr--full-ui ::after, -.plyr--full-ui ::before { - box-sizing: inherit; -} - -.plyr--full-ui a, -.plyr--full-ui button, -.plyr--full-ui input, -.plyr--full-ui label { - touch-action: manipulation; -} - -.plyr__badge { - background: #4a5464; - background: var(--plyr-badge-background, #4a5464); - border-radius: 2px; - border-radius: var(--plyr-badge-border-radius, 2px); - color: #fff; - color: var(--plyr-badge-text-color, #fff); - font-size: 9px; - font-size: var(--plyr-font-size-badge, 9px); - line-height: 1; - padding: 3px 4px; -} - -.plyr--full-ui ::-webkit-media-text-track-container { - display: none; -} - -.plyr__captions { - animation: plyr-fade-in 0.3s ease; - bottom: 0; - display: none; - font-size: 13px; - font-size: var(--plyr-font-size-small, 13px); - left: 0; - padding: 10px; - padding: var(--plyr-control-spacing, 10px); - position: absolute; - text-align: center; - transition: transform 0.4s ease-in-out; - width: 100%; -} - -.plyr__captions span:empty { - display: none; -} - -@media (min-width: 480px) { - .plyr__captions { - font-size: 15px; - font-size: var(--plyr-font-size-base, 15px); - padding: calc(10px * 2); - padding: calc(var(--plyr-control-spacing, 10px) * 2); - } -} - -@media (min-width: 768px) { - .plyr__captions { - font-size: 18px; - font-size: var(--plyr-font-size-large, 18px); - } -} - -.plyr--captions-active .plyr__captions { - display: block; -} - -.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty) ~ .plyr__captions { - transform: translateY(calc(10px * -4)); - transform: translateY(calc(var(--plyr-control-spacing, 10px) * -4)); -} - -.plyr__caption { - background: rgba(0, 0, 0, 0.8); - background: var(--plyr-captions-background, rgba(0, 0, 0, 0.8)); - border-radius: 2px; - -webkit-box-decoration-break: clone; - box-decoration-break: clone; - color: #fff; - color: var(--plyr-captions-text-color, #fff); - line-height: 185%; - padding: 0.2em 0.5em; - white-space: pre-wrap; -} - -.plyr__caption div { - display: inline; -} - -.plyr__control { - background: 0 0; - border: 0; - border-radius: 3px; - border-radius: var(--plyr-control-radius, 3px); - color: inherit; - cursor: pointer; - flex-shrink: 0; - overflow: visible; - padding: calc(10px * 0.7); - padding: calc(var(--plyr-control-spacing, 10px) * 0.7); - position: relative; - transition: all 0.3s ease; -} - -.plyr__control svg { - display: block; - fill: currentColor; - height: 18px; - height: var(--plyr-control-icon-size, 18px); - pointer-events: none; - width: 18px; - width: var(--plyr-control-icon-size, 18px); -} - -.plyr__control:focus { - outline: 0; -} - -.plyr__control.plyr__tab-focus { - outline-color: #00b3ff; - outline-color: var( - --plyr-tab-focus-color, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - outline-offset: 2px; - outline-style: dotted; - outline-width: 3px; -} - -a.plyr__control { - text-decoration: none; -} - -a.plyr__control::after, -a.plyr__control::before { - display: none; -} - -.plyr__control.plyr__control--pressed .icon--not-pressed, -.plyr__control.plyr__control--pressed .label--not-pressed, -.plyr__control:not(.plyr__control--pressed) .icon--pressed, -.plyr__control:not(.plyr__control--pressed) .label--pressed { - display: none; -} - -.plyr--full-ui ::-webkit-media-controls { - display: none; -} - -.plyr__controls { - align-items: center; - display: flex; - justify-content: flex-end; - text-align: center; -} - -.plyr__controls .plyr__progress__container { - flex: 1; - min-width: 0; -} - -.plyr__controls .plyr__controls__item { - margin-left: calc(10px / 4); - margin-left: calc(var(--plyr-control-spacing, 10px) / 4); -} - -.plyr__controls .plyr__controls__item:first-child { - margin-left: 0; - margin-right: auto; -} - -.plyr__controls .plyr__controls__item.plyr__progress__container { - padding-left: calc(10px / 4); - padding-left: calc(var(--plyr-control-spacing, 10px) / 4); -} - -.plyr__controls .plyr__controls__item.plyr__time { - padding: 0 calc(10px / 2); - padding: 0 calc(var(--plyr-control-spacing, 10px) / 2); -} - -.plyr__controls .plyr__controls__item.plyr__progress__container:first-child, -.plyr__controls .plyr__controls__item.plyr__time + .plyr__time, -.plyr__controls .plyr__controls__item.plyr__time:first-child { - padding-left: 0; -} - -.plyr__controls:empty { - display: none; -} - -.plyr [data-plyr='airplay'], -.plyr [data-plyr='captions'], -.plyr [data-plyr='fullscreen'], -.plyr [data-plyr='pip'] { - display: none; -} - -.plyr--airplay-supported [data-plyr='airplay'], -.plyr--captions-enabled [data-plyr='captions'], -.plyr--fullscreen-enabled [data-plyr='fullscreen'], -.plyr--pip-supported [data-plyr='pip'] { - display: inline-block; -} - -.plyr__menu { - display: flex; - position: relative; -} - -.plyr__menu .plyr__control svg { - transition: transform 0.3s ease; -} - -.plyr__menu .plyr__control[aria-expanded='true'] svg { - transform: rotate(90deg); -} - -.plyr__menu .plyr__control[aria-expanded='true'] .plyr__tooltip { - display: none; -} - -.plyr__menu__container { - animation: plyr-popup 0.2s ease; - background: rgba(255, 255, 255, 0.9); - background: var(--plyr-menu-background, rgba(255, 255, 255, 0.9)); - border-radius: 8px; - bottom: 100%; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); - box-shadow: var(--plyr-menu-shadow, 0 1px 2px rgba(0, 0, 0, 0.15)); - color: #4a5464; - color: var(--plyr-menu-color, #4a5464); - font-size: 15px; - font-size: var(--plyr-font-size-base, 15px); - margin-bottom: 10px; - position: absolute; - right: -3px; - text-align: left; - white-space: nowrap; - z-index: 3; -} - -.plyr__menu__container > div { - overflow: hidden; - transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), - width 0.35s cubic-bezier(0.4, 0, 0.2, 1); -} - -.plyr__menu__container::after { - border: 4px solid transparent; - border: var(--plyr-menu-arrow-size, 4px) solid transparent; - border-top-color: rgba(255, 255, 255, 0.9); - border-top-color: var(--plyr-menu-background, rgba(255, 255, 255, 0.9)); - content: ''; - height: 0; - position: absolute; - right: calc(((18px / 2) + calc(10px * 0.7)) - (4px / 2)); - right: calc( - ( - (var(--plyr-control-icon-size, 18px) / 2) + - calc(var(--plyr-control-spacing, 10px) * 0.7) - ) - (var(--plyr-menu-arrow-size, 4px) / 2) - ); - top: 100%; - width: 0; -} - -.plyr__menu__container [role='menu'] { - padding: calc(10px * 0.7); - padding: calc(var(--plyr-control-spacing, 10px) * 0.7); -} - -.plyr__menu__container [role='menuitem'], -.plyr__menu__container [role='menuitemradio'] { - margin-top: 2px; -} - -.plyr__menu__container [role='menuitem']:first-child, -.plyr__menu__container [role='menuitemradio']:first-child { - margin-top: 0; -} - -.plyr__menu__container .plyr__control { - align-items: center; - color: #4a5464; - color: var(--plyr-menu-color, #4a5464); - display: flex; - font-size: 13px; - font-size: var(--plyr-font-size-menu, var(--plyr-font-size-small, 13px)); - padding-bottom: calc(calc(10px * 0.7) / 1.5); - padding-bottom: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 1.5); - padding-left: calc(calc(10px * 0.7) * 1.5); - padding-left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5); - padding-right: calc(calc(10px * 0.7) * 1.5); - padding-right: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5); - padding-top: calc(calc(10px * 0.7) / 1.5); - padding-top: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 1.5); - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - width: 100%; -} - -.plyr__menu__container .plyr__control > span { - align-items: inherit; - display: flex; - width: 100%; -} - -.plyr__menu__container .plyr__control::after { - border: 4px solid transparent; - border: var(--plyr-menu-item-arrow-size, 4px) solid transparent; - content: ''; - position: absolute; - top: 50%; - transform: translateY(-50%); -} - -.plyr__menu__container .plyr__control--forward { - padding-right: calc(calc(10px * 0.7) * 4); - padding-right: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 4); -} - -.plyr__menu__container .plyr__control--forward::after { - border-left-color: #728197; - border-left-color: var(--plyr-menu-arrow-color, #728197); - right: calc((calc(10px * 0.7) * 1.5) - 4px); - right: calc( - (calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5) - - var(--plyr-menu-item-arrow-size, 4px) - ); -} - -.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after, -.plyr__menu__container .plyr__control--forward:hover::after { - border-left-color: currentColor; -} - -.plyr__menu__container .plyr__control--back { - font-weight: 400; - font-weight: var(--plyr-font-weight-regular, 400); - margin: calc(10px * 0.7); - margin: calc(var(--plyr-control-spacing, 10px) * 0.7); - margin-bottom: calc(calc(10px * 0.7) / 2); - margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 2); - padding-left: calc(calc(10px * 0.7) * 4); - padding-left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 4); - position: relative; - width: calc(100% - (calc(10px * 0.7) * 2)); - width: calc(100% - (calc(var(--plyr-control-spacing, 10px) * 0.7) * 2)); -} - -.plyr__menu__container .plyr__control--back::after { - border-right-color: #728197; - border-right-color: var(--plyr-menu-arrow-color, #728197); - left: calc((calc(10px * 0.7) * 1.5) - 4px); - left: calc( - (calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5) - - var(--plyr-menu-item-arrow-size, 4px) - ); -} - -.plyr__menu__container .plyr__control--back::before { - background: #dcdfe5; - background: var(--plyr-menu-back-border-color, #dcdfe5); - box-shadow: 0 1px 0 #fff; - box-shadow: 0 1px 0 var(--plyr-menu-back-border-shadow-color, #fff); - content: ''; - height: 1px; - left: 0; - margin-top: calc(calc(10px * 0.7) / 2); - margin-top: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) / 2); - overflow: hidden; - position: absolute; - right: 0; - top: 100%; -} - -.plyr__menu__container .plyr__control--back.plyr__tab-focus::after, -.plyr__menu__container .plyr__control--back:hover::after { - border-right-color: currentColor; -} - -.plyr__menu__container .plyr__control[role='menuitemradio'] { - padding-left: calc(10px * 0.7); - padding-left: calc(var(--plyr-control-spacing, 10px) * 0.7); -} - -.plyr__menu__container .plyr__control[role='menuitemradio']::after, -.plyr__menu__container .plyr__control[role='menuitemradio']::before { - border-radius: 100%; -} - -.plyr__menu__container .plyr__control[role='menuitemradio']::before { - background: rgba(0, 0, 0, 0.1); - content: ''; - display: block; - flex-shrink: 0; - height: 16px; - margin-right: 10px; - margin-right: var(--plyr-control-spacing, 10px); - transition: all 0.3s ease; - width: 16px; -} - -.plyr__menu__container .plyr__control[role='menuitemradio']::after { - background: #fff; - border: 0; - height: 6px; - left: 12px; - opacity: 0; - top: 50%; - transform: translateY(-50%) scale(0); - transition: transform 0.3s ease, opacity 0.3s ease; - width: 6px; -} - -.plyr__menu__container - .plyr__control[role='menuitemradio'][aria-checked='true']::before { - background: #00b3ff; - background: var( - --plyr-control-toggle-checked-background, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); -} - -.plyr__menu__container - .plyr__control[role='menuitemradio'][aria-checked='true']::after { - opacity: 1; - transform: translateY(-50%) scale(1); -} - -.plyr__menu__container - .plyr__control[role='menuitemradio'].plyr__tab-focus::before, -.plyr__menu__container .plyr__control[role='menuitemradio']:hover::before { - background: rgba(35, 40, 47, 0.1); -} - -.plyr__menu__container .plyr__menu__value { - align-items: center; - display: flex; - margin-left: auto; - margin-right: calc((calc(10px * 0.7) - 2) * -1); - margin-right: calc((calc(var(--plyr-control-spacing, 10px) * 0.7) - 2) * -1); - overflow: hidden; - padding-left: calc(calc(10px * 0.7) * 3.5); - padding-left: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 3.5); - pointer-events: none; -} - -.plyr--full-ui input[type='range'] { - -webkit-appearance: none; - background: 0 0; - border: 0; - border-radius: calc(13px * 2); - border-radius: calc(var(--plyr-range-thumb-height, 13px) * 2); - color: #00b3ff; - color: var( - --plyr-range-fill-background, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - display: block; - height: calc((3px * 2) + 13px); - height: calc( - (var(--plyr-range-thumb-active-shadow-width, 3px) * 2) + - var(--plyr-range-thumb-height, 13px) - ); - margin: 0; - padding: 0; - transition: box-shadow 0.3s ease; - width: 100%; -} - -.plyr--full-ui input[type='range']::-webkit-slider-runnable-track { - background: 0 0; - border: 0; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); - -webkit-transition: box-shadow 0.3s ease; - transition: box-shadow 0.3s ease; - -webkit-user-select: none; - user-select: none; - background-image: linear-gradient(to right, currentColor 0, transparent 0); - background-image: linear-gradient( - to right, - currentColor var(--value, 0), - transparent var(--value, 0) - ); -} - -.plyr--full-ui input[type='range']::-webkit-slider-thumb { - background: #fff; - background: var(--plyr-range-thumb-background, #fff); - border: 0; - border-radius: 50%; - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ); - height: 13px; - height: var(--plyr-range-thumb-height, 13px); - position: relative; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - width: 13px; - width: var(--plyr-range-thumb-height, 13px); - -webkit-appearance: none; - margin-top: calc(((13px - 5px) / 2) * -1); - margin-top: calc( - ( - ( - var(--plyr-range-thumb-height, 13px) - - var(--plyr-range-track-height, 5px) - ) / 2 - ) * -1 - ); -} - -.plyr--full-ui input[type='range']::-moz-range-track { - background: 0 0; - border: 0; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); - -moz-transition: box-shadow 0.3s ease; - transition: box-shadow 0.3s ease; - user-select: none; -} - -.plyr--full-ui input[type='range']::-moz-range-thumb { - background: #fff; - background: var(--plyr-range-thumb-background, #fff); - border: 0; - border-radius: 50%; - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ); - height: 13px; - height: var(--plyr-range-thumb-height, 13px); - position: relative; - -moz-transition: all 0.2s ease; - transition: all 0.2s ease; - width: 13px; - width: var(--plyr-range-thumb-height, 13px); -} - -.plyr--full-ui input[type='range']::-moz-range-progress { - background: currentColor; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); -} - -.plyr--full-ui input[type='range']::-ms-track { - background: 0 0; - border: 0; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); - -ms-transition: box-shadow 0.3s ease; - transition: box-shadow 0.3s ease; - -ms-user-select: none; - user-select: none; - color: transparent; -} - -.plyr--full-ui input[type='range']::-ms-fill-upper { - background: 0 0; - border: 0; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); - -ms-transition: box-shadow 0.3s ease; - transition: box-shadow 0.3s ease; - -ms-user-select: none; - user-select: none; -} - -.plyr--full-ui input[type='range']::-ms-fill-lower { - background: 0 0; - border: 0; - border-radius: calc(5px / 2); - border-radius: calc(var(--plyr-range-track-height, 5px) / 2); - height: 5px; - height: var(--plyr-range-track-height, 5px); - -ms-transition: box-shadow 0.3s ease; - transition: box-shadow 0.3s ease; - -ms-user-select: none; - user-select: none; - background: currentColor; -} - -.plyr--full-ui input[type='range']::-ms-thumb { - background: #fff; - background: var(--plyr-range-thumb-background, #fff); - border: 0; - border-radius: 50%; - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ); - height: 13px; - height: var(--plyr-range-thumb-height, 13px); - position: relative; - -ms-transition: all 0.2s ease; - transition: all 0.2s ease; - width: 13px; - width: var(--plyr-range-thumb-height, 13px); - margin-top: 0; -} - -.plyr--full-ui input[type='range']::-ms-tooltip { - display: none; -} - -.plyr--full-ui input[type='range']:focus { - outline: 0; -} - -.plyr--full-ui input[type='range']::-moz-focus-outer { - border: 0; -} - -.plyr--full-ui - input[type='range'].plyr__tab-focus::-webkit-slider-runnable-track { - outline-color: #00b3ff; - outline-color: var( - --plyr-tab-focus-color, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - outline-offset: 2px; - outline-style: dotted; - outline-width: 3px; -} - -.plyr--full-ui input[type='range'].plyr__tab-focus::-moz-range-track { - outline-color: #00b3ff; - outline-color: var( - --plyr-tab-focus-color, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - outline-offset: 2px; - outline-style: dotted; - outline-width: 3px; -} - -.plyr--full-ui input[type='range'].plyr__tab-focus::-ms-track { - outline-color: #00b3ff; - outline-color: var( - --plyr-tab-focus-color, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - outline-offset: 2px; - outline-style: dotted; - outline-width: 3px; -} - -.plyr__poster { - background-color: #000; - background-position: 50% 50%; - background-repeat: no-repeat; - background-size: contain; - height: 100%; - left: 0; - opacity: 0; - position: absolute; - top: 0; - transition: opacity 0.2s ease; - width: 100%; - z-index: 1; -} - -.plyr--stopped.plyr__poster-enabled .plyr__poster { - opacity: 1; -} - -.plyr__time { - font-size: 13px; - font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px)); -} - -.plyr__time + .plyr__time::before { - content: '\2044'; - margin-right: 10px; - margin-right: var(--plyr-control-spacing, 10px); -} - -@media (max-width: calc(768px - 1)) { - .plyr__time + .plyr__time { - display: none; - } -} - -.plyr__tooltip { - background: rgba(255, 255, 255, 0.9); - background: var(--plyr-tooltip-background, rgba(255, 255, 255, 0.9)); - border-radius: 3px; - border-radius: var(--plyr-tooltip-radius, 3px); - bottom: 100%; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); - box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, 0.15)); - color: #4a5464; - color: var(--plyr-tooltip-color, #4a5464); - font-size: 13px; - font-size: var(--plyr-font-size-small, 13px); - font-weight: 400; - font-weight: var(--plyr-font-weight-regular, 400); - left: 50%; - line-height: 1.3; - margin-bottom: calc(calc(10px / 2) * 2); - margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) / 2) * 2); - opacity: 0; - padding: calc(10px / 2) calc(calc(10px / 2) * 1.5); - padding: calc(var(--plyr-control-spacing, 10px) / 2) - calc(calc(var(--plyr-control-spacing, 10px) / 2) * 1.5); - pointer-events: none; - position: absolute; - transform: translate(-50%, 10px) scale(0.8); - transform-origin: 50% 100%; - transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease; - white-space: nowrap; - z-index: 2; -} - -.plyr__tooltip::before { - border-left: 4px solid transparent; - border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent; - border-right: 4px solid transparent; - border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent; - border-top: 4px solid rgba(255, 255, 255, 0.9); - border-top: var(--plyr-tooltip-arrow-size, 4px) solid - var(--plyr-tooltip-background, rgba(255, 255, 255, 0.9)); - bottom: calc(4px * -1); - bottom: calc(var(--plyr-tooltip-arrow-size, 4px) * -1); - content: ''; - height: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); - width: 0; - z-index: 2; -} - -.plyr .plyr__control.plyr__tab-focus .plyr__tooltip, -.plyr .plyr__control:hover .plyr__tooltip, -.plyr__tooltip--visible { - opacity: 1; - transform: translate(-50%, 0) scale(1); -} - -.plyr .plyr__control:hover .plyr__tooltip { - z-index: 3; -} - -.plyr__controls > .plyr__control:first-child .plyr__tooltip, -.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip { - left: 0; - transform: translate(0, 10px) scale(0.8); - transform-origin: 0 100%; -} - -.plyr__controls > .plyr__control:first-child .plyr__tooltip::before, -.plyr__controls - > .plyr__control:first-child - + .plyr__control - .plyr__tooltip::before { - left: calc((18px / 2) + calc(10px * 0.7)); - left: calc( - (var(--plyr-control-icon-size, 18px) / 2) + - calc(var(--plyr-control-spacing, 10px) * 0.7) - ); -} - -.plyr__controls > .plyr__control:last-child .plyr__tooltip { - left: auto; - right: 0; - transform: translate(0, 10px) scale(0.8); - transform-origin: 100% 100%; -} - -.plyr__controls > .plyr__control:last-child .plyr__tooltip::before { - left: auto; - right: calc((18px / 2) + calc(10px * 0.7)); - right: calc( - (var(--plyr-control-icon-size, 18px) / 2) + - calc(var(--plyr-control-spacing, 10px) * 0.7) - ); - transform: translateX(50%); -} - -.plyr__controls > .plyr__control:first-child .plyr__tooltip--visible, -.plyr__controls - > .plyr__control:first-child - + .plyr__control - .plyr__tooltip--visible, -.plyr__controls - > .plyr__control:first-child - + .plyr__control.plyr__tab-focus - .plyr__tooltip, -.plyr__controls - > .plyr__control:first-child - + .plyr__control:hover - .plyr__tooltip, -.plyr__controls > .plyr__control:first-child.plyr__tab-focus .plyr__tooltip, -.plyr__controls > .plyr__control:first-child:hover .plyr__tooltip, -.plyr__controls > .plyr__control:last-child .plyr__tooltip--visible, -.plyr__controls > .plyr__control:last-child.plyr__tab-focus .plyr__tooltip, -.plyr__controls > .plyr__control:last-child:hover .plyr__tooltip { - transform: translate(0, 0) scale(1); -} - -.plyr__progress { - left: calc(13px * 0.5); - left: calc(var(--plyr-range-thumb-height, 13px) * 0.5); - margin-right: 13px; - margin-right: var(--plyr-range-thumb-height, 13px); - position: relative; -} - -.plyr__progress input[type='range'], -.plyr__progress__buffer { - margin-left: calc(13px * -0.5); - margin-left: calc(var(--plyr-range-thumb-height, 13px) * -0.5); - margin-right: calc(13px * -0.5); - margin-right: calc(var(--plyr-range-thumb-height, 13px) * -0.5); - width: calc(100% + 13px); - width: calc(100% + var(--plyr-range-thumb-height, 13px)); -} - -.plyr__progress input[type='range'] { - position: relative; - z-index: 2; -} - -.plyr__progress .plyr__tooltip { - font-size: 13px; - font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px)); - left: 0; -} - -.plyr__progress__buffer { - -webkit-appearance: none; - background: 0 0; - border: 0; - border-radius: 100px; - height: 5px; - height: var(--plyr-range-track-height, 5px); - left: 0; - margin-top: calc((5px / 2) * -1); - margin-top: calc((var(--plyr-range-track-height, 5px) / 2) * -1); - padding: 0; - position: absolute; - top: 50%; -} - -.plyr__progress__buffer::-webkit-progress-bar { - background: 0 0; -} - -.plyr__progress__buffer::-webkit-progress-value { - background: currentColor; - border-radius: 100px; - min-width: 5px; - min-width: var(--plyr-range-track-height, 5px); - -webkit-transition: width 0.2s ease; - transition: width 0.2s ease; -} - -.plyr__progress__buffer::-moz-progress-bar { - background: currentColor; - border-radius: 100px; - min-width: 5px; - min-width: var(--plyr-range-track-height, 5px); - -moz-transition: width 0.2s ease; - transition: width 0.2s ease; -} - -.plyr__progress__buffer::-ms-fill { - border-radius: 100px; - -ms-transition: width 0.2s ease; - transition: width 0.2s ease; -} - -.plyr--loading .plyr__progress__buffer { - animation: plyr-progress 1s linear infinite; - background-image: linear-gradient( - -45deg, - rgba(35, 40, 47, 0.6) 25%, - transparent 25%, - transparent 50%, - rgba(35, 40, 47, 0.6) 50%, - rgba(35, 40, 47, 0.6) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - -45deg, - var(--plyr-progress-loading-background, rgba(35, 40, 47, 0.6)) 25%, - transparent 25%, - transparent 50%, - var(--plyr-progress-loading-background, rgba(35, 40, 47, 0.6)) 50%, - var(--plyr-progress-loading-background, rgba(35, 40, 47, 0.6)) 75%, - transparent 75%, - transparent - ); - background-repeat: repeat-x; - background-size: 25px 25px; - background-size: var(--plyr-progress-loading-size, 25px) - var(--plyr-progress-loading-size, 25px); - color: transparent; -} - -.plyr--video.plyr--loading .plyr__progress__buffer { - background-color: rgba(255, 255, 255, 0.25); - background-color: var( - --plyr-video-progress-buffered-background, - rgba(255, 255, 255, 0.25) - ); -} - -.plyr--audio.plyr--loading .plyr__progress__buffer { - background-color: rgba(193, 200, 209, 0.6); - background-color: var( - --plyr-audio-progress-buffered-background, - rgba(193, 200, 209, 0.6) - ); -} - -.plyr__volume { - align-items: center; - display: flex; - max-width: 110px; - min-width: 80px; - position: relative; - width: 20%; -} - -.plyr__volume input[type='range'] { - margin-left: calc(10px / 2); - margin-left: calc(var(--plyr-control-spacing, 10px) / 2); - margin-right: calc(10px / 2); - margin-right: calc(var(--plyr-control-spacing, 10px) / 2); - position: relative; - z-index: 2; -} - -.plyr--is-ios .plyr__volume { - min-width: 0; - width: auto; -} - -.plyr--audio { - display: block; -} - -.plyr--audio .plyr__controls { - background: #fff; - background: var(--plyr-audio-controls-background, #fff); - border-radius: inherit; - color: #4a5464; - color: var(--plyr-audio-control-color, #4a5464); - padding: 10px; - padding: var(--plyr-control-spacing, 10px); -} - -.plyr--audio .plyr__control.plyr__tab-focus, -.plyr--audio .plyr__control:hover, -.plyr--audio .plyr__control[aria-expanded='true'] { - background: #00b3ff; - background: var( - --plyr-audio-control-background-hover, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - color: #fff; - color: var(--plyr-audio-control-color-hover, #fff); -} - -.plyr--full-ui.plyr--audio input[type='range']::-webkit-slider-runnable-track { - background-color: rgba(193, 200, 209, 0.6); - background-color: var( - --plyr-audio-range-track-background, - var(--plyr-audio-progress-buffered-background, rgba(193, 200, 209, 0.6)) - ); -} - -.plyr--full-ui.plyr--audio input[type='range']::-moz-range-track { - background-color: rgba(193, 200, 209, 0.6); - background-color: var( - --plyr-audio-range-track-background, - var(--plyr-audio-progress-buffered-background, rgba(193, 200, 209, 0.6)) - ); -} - -.plyr--full-ui.plyr--audio input[type='range']::-ms-track { - background-color: rgba(193, 200, 209, 0.6); - background-color: var( - --plyr-audio-range-track-background, - var(--plyr-audio-progress-buffered-background, rgba(193, 200, 209, 0.6)) - ); -} - -.plyr--full-ui.plyr--audio input[type='range']:active::-webkit-slider-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(35, 40, 47, 0.1); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var(--plyr-audio-range-thumb-active-shadow-color, rgba(35, 40, 47, 0.1)); -} - -.plyr--full-ui.plyr--audio input[type='range']:active::-moz-range-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(35, 40, 47, 0.1); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var(--plyr-audio-range-thumb-active-shadow-color, rgba(35, 40, 47, 0.1)); -} - -.plyr--full-ui.plyr--audio input[type='range']:active::-ms-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(35, 40, 47, 0.1); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var(--plyr-audio-range-thumb-active-shadow-color, rgba(35, 40, 47, 0.1)); -} - -.plyr--audio .plyr__progress__buffer { - color: rgba(193, 200, 209, 0.6); - color: var( - --plyr-audio-progress-buffered-background, - rgba(193, 200, 209, 0.6) - ); -} - -.plyr--video { - overflow: hidden; -} - -.plyr--video.plyr--menu-open { - overflow: visible; -} - -.plyr__video-wrapper { - height: 100%; - margin: auto; - overflow: hidden; - position: relative; - width: 100%; -} - -.plyr__video-embed, -.plyr__video-wrapper--fixed-ratio { - height: 0; - padding-bottom: 56.25%; -} - -.plyr__video-embed iframe, -.plyr__video-wrapper--fixed-ratio video { - border: 0; - left: 0; - position: absolute; - top: 0; -} - -.plyr--full-ui .plyr__video-embed > .plyr__video-embed__container { - padding-bottom: 240%; - position: relative; - transform: translateY(-38.28125%); -} - -.plyr--video .plyr__controls { - background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)); - background: var( - --plyr-video-controls-background, - linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75)) - ); - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - bottom: 0; - color: #fff; - color: var(--plyr-video-control-color, #fff); - left: 0; - padding: calc(10px / 2); - padding: calc(var(--plyr-control-spacing, 10px) / 2); - padding-top: calc(10px * 2); - padding-top: calc(var(--plyr-control-spacing, 10px) * 2); - position: absolute; - right: 0; - transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out; - z-index: 3; -} - -@media (min-width: 480px) { - .plyr--video .plyr__controls { - padding: 10px; - padding: var(--plyr-control-spacing, 10px); - padding-top: calc(10px * 3.5); - padding-top: calc(var(--plyr-control-spacing, 10px) * 3.5); - } -} - -.plyr--video.plyr--hide-controls .plyr__controls { - opacity: 0; - pointer-events: none; - transform: translateY(100%); -} - -.plyr--video .plyr__control.plyr__tab-focus, -.plyr--video .plyr__control:hover, -.plyr--video .plyr__control[aria-expanded='true'] { - background: #00b3ff; - background: var( - --plyr-video-control-background-hover, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - color: #fff; - color: var(--plyr-video-control-color-hover, #fff); -} - -.plyr__control--overlaid { - background: #00b3ff; - background: var( - --plyr-video-control-background-hover, - var(--plyr-color-main, var(--plyr-color-main, #00b3ff)) - ); - border: 0; - border-radius: 100%; - color: #fff; - color: var(--plyr-video-control-color, #fff); - display: none; - left: 50%; - opacity: 0.9; - padding: calc(10px * 1.5); - padding: calc(var(--plyr-control-spacing, 10px) * 1.5); - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - transition: 0.3s; - z-index: 2; -} - -.plyr__control--overlaid svg { - left: 2px; - position: relative; -} - -.plyr__control--overlaid:focus, -.plyr__control--overlaid:hover { - opacity: 1; -} - -.plyr--playing .plyr__control--overlaid { - opacity: 0; - visibility: hidden; -} - -.plyr--full-ui.plyr--video .plyr__control--overlaid { - display: block; -} - -.plyr--full-ui.plyr--video input[type='range']::-webkit-slider-runnable-track { - background-color: rgba(255, 255, 255, 0.25); - background-color: var( - --plyr-video-range-track-background, - var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)) - ); -} - -.plyr--full-ui.plyr--video input[type='range']::-moz-range-track { - background-color: rgba(255, 255, 255, 0.25); - background-color: var( - --plyr-video-range-track-background, - var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)) - ); -} - -.plyr--full-ui.plyr--video input[type='range']::-ms-track { - background-color: rgba(255, 255, 255, 0.25); - background-color: var( - --plyr-video-range-track-background, - var(--plyr-video-progress-buffered-background, rgba(255, 255, 255, 0.25)) - ); -} - -.plyr--full-ui.plyr--video input[type='range']:active::-webkit-slider-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(255, 255, 255, 0.5); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var( - --plyr-audio-range-thumb-active-shadow-color, - rgba(255, 255, 255, 0.5) - ); -} - -.plyr--full-ui.plyr--video input[type='range']:active::-moz-range-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(255, 255, 255, 0.5); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var( - --plyr-audio-range-thumb-active-shadow-color, - rgba(255, 255, 255, 0.5) - ); -} - -.plyr--full-ui.plyr--video input[type='range']:active::-ms-thumb { - box-shadow: 0 1px 1px rgba(35, 40, 47, 0.15), 0 0 0 1px rgba(35, 40, 47, 0.2), - 0 0 0 3px rgba(255, 255, 255, 0.5); - box-shadow: var( - --plyr-range-thumb-shadow, - 0 1px 1px rgba(35, 40, 47, 0.15), - 0 0 0 1px rgba(35, 40, 47, 0.2) - ), - 0 0 0 var(--plyr-range-thumb-active-shadow-width, 3px) - var( - --plyr-audio-range-thumb-active-shadow-color, - rgba(255, 255, 255, 0.5) - ); -} - -.plyr--video .plyr__progress__buffer { - color: rgba(255, 255, 255, 0.25); - color: var( - --plyr-video-progress-buffered-background, - rgba(255, 255, 255, 0.25) - ); -} - -.plyr:-webkit-full-screen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:-ms-fullscreen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:fullscreen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:-webkit-full-screen video { - height: 100%; -} - -.plyr:-ms-fullscreen video { - height: 100%; -} - -.plyr:fullscreen video { - height: 100%; -} - -.plyr:-webkit-full-screen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:-ms-fullscreen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:fullscreen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:fullscreen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:fullscreen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:-webkit-full-screen.plyr--hide-controls { - cursor: none; -} - -.plyr:-ms-fullscreen.plyr--hide-controls { - cursor: none; -} - -.plyr:fullscreen.plyr--hide-controls { - cursor: none; -} - -@media (min-width: 1024px) { - .plyr:-webkit-full-screen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } - - .plyr:-ms-fullscreen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } - - .plyr:fullscreen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } -} - -.plyr:-webkit-full-screen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:-webkit-full-screen video { - height: 100%; -} - -.plyr:-webkit-full-screen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:-webkit-full-screen.plyr--hide-controls { - cursor: none; -} - -@media (min-width: 1024px) { - .plyr:-webkit-full-screen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } -} - -.plyr:-moz-full-screen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:-moz-full-screen video { - height: 100%; -} - -.plyr:-moz-full-screen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:-moz-full-screen.plyr--hide-controls { - cursor: none; -} - -@media (min-width: 1024px) { - .plyr:-moz-full-screen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } -} - -.plyr:-ms-fullscreen { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; -} - -.plyr:-ms-fullscreen video { - height: 100%; -} - -.plyr:-ms-fullscreen .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr:-ms-fullscreen.plyr--hide-controls { - cursor: none; -} - -@media (min-width: 1024px) { - .plyr:-ms-fullscreen .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } -} - -.plyr--fullscreen-fallback { - background: #000; - border-radius: 0 !important; - height: 100%; - margin: 0; - width: 100%; - bottom: 0; - display: block; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 10000000; -} - -.plyr--fullscreen-fallback video { - height: 100%; -} - -.plyr--fullscreen-fallback .plyr__video-wrapper { - height: 100%; - position: static; -} - -.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper { - height: 0; - position: relative; -} - -.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen { - display: block; -} - -.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen + svg { - display: none; -} - -.plyr--fullscreen-fallback.plyr--hide-controls { - cursor: none; -} - -@media (min-width: 1024px) { - .plyr--fullscreen-fallback .plyr__captions { - font-size: 21px; - font-size: var(--plyr-font-size-xlarge, 21px); - } -} - -.plyr__ads { - border-radius: inherit; - bottom: 0; - cursor: pointer; - left: 0; - overflow: hidden; - position: absolute; - right: 0; - top: 0; - z-index: -1; -} - -.plyr__ads > div, -.plyr__ads > div iframe { - height: 100%; - position: absolute; - width: 100%; -} - -.plyr__ads::after { - background: #23282f; - border-radius: 2px; - bottom: 10px; - bottom: var(--plyr-control-spacing, 10px); - color: #fff; - content: attr(data-badge-text); - font-size: 11px; - padding: 2px 6px; - pointer-events: none; - position: absolute; - right: 10px; - right: var(--plyr-control-spacing, 10px); - z-index: 3; -} - -.plyr__ads::after:empty { - display: none; -} - -.plyr__cues { - background: currentColor; - display: block; - height: 5px; - height: var(--plyr-range-track-height, 5px); - left: 0; - margin: -var(--plyr-range-track-height, 5px) / 2 0 0; - opacity: 0.8; - position: absolute; - top: 50%; - width: 3px; - z-index: 3; -} - -.plyr__preview-thumb { - background-color: rgba(255, 255, 255, 0.9); - background-color: var(--plyr-tooltip-background, rgba(255, 255, 255, 0.9)); - border-radius: 3px; - bottom: 100%; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); - box-shadow: var(--plyr-tooltip-shadow, 0 1px 2px rgba(0, 0, 0, 0.15)); - margin-bottom: calc(calc(10px / 2) * 2); - margin-bottom: calc(calc(var(--plyr-control-spacing, 10px) / 2) * 2); - opacity: 0; - padding: 3px; - padding: var(--plyr-tooltip-radius, 3px); - pointer-events: none; - position: absolute; - transform: translate(0, 10px) scale(0.8); - transform-origin: 50% 100%; - transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease; - z-index: 2; -} - -.plyr__preview-thumb--is-shown { - opacity: 1; - transform: translate(0, 0) scale(1); -} - -.plyr__preview-thumb::before { - border-left: 4px solid transparent; - border-left: var(--plyr-tooltip-arrow-size, 4px) solid transparent; - border-right: 4px solid transparent; - border-right: var(--plyr-tooltip-arrow-size, 4px) solid transparent; - border-top: 4px solid rgba(255, 255, 255, 0.9); - border-top: var(--plyr-tooltip-arrow-size, 4px) solid - var(--plyr-tooltip-background, rgba(255, 255, 255, 0.9)); - bottom: calc(4px * -1); - bottom: calc(var(--plyr-tooltip-arrow-size, 4px) * -1); - content: ''; - height: 0; - left: 50%; - position: absolute; - transform: translateX(-50%); - width: 0; - z-index: 2; -} - -.plyr__preview-thumb__image-container { - background: #c1c8d1; - border-radius: calc(3px - 1px); - border-radius: calc(var(--plyr-tooltip-radius, 3px) - 1px); - overflow: hidden; - position: relative; - z-index: 0; -} - -.plyr__preview-thumb__image-container img { - height: 100%; - left: 0; - max-height: none; - max-width: none; - position: absolute; - top: 0; - width: 100%; -} - -.plyr__preview-thumb__time-container { - bottom: 6px; - left: 0; - position: absolute; - right: 0; - white-space: nowrap; - z-index: 3; -} - -.plyr__preview-thumb__time-container span { - background-color: rgba(0, 0, 0, 0.55); - border-radius: calc(3px - 1px); - border-radius: calc(var(--plyr-tooltip-radius, 3px) - 1px); - color: #fff; - font-size: 13px; - font-size: var(--plyr-font-size-time, var(--plyr-font-size-small, 13px)); - padding: 3px 6px; -} - -.plyr__preview-scrubbing { - bottom: 0; - filter: blur(1px); - height: 100%; - left: 0; - margin: auto; - opacity: 0; - overflow: hidden; - pointer-events: none; - position: absolute; - right: 0; - top: 0; - transition: opacity 0.3s ease; - width: 100%; - z-index: 1; -} - -.plyr__preview-scrubbing--is-shown { - opacity: 1; -} - -.plyr__preview-scrubbing img { - height: 100%; - left: 0; - max-height: none; - max-width: none; - object-fit: contain; - position: absolute; - top: 0; - width: 100%; -} - -.plyr--no-transition { - transition: none !important; -} - -.plyr__sr-only { - clip: rect(1px, 1px, 1px, 1px); - overflow: hidden; - border: 0 !important; - height: 1px !important; - padding: 0 !important; - position: absolute !important; - width: 1px !important; -} - -.plyr [hidden] { - display: none !important; -} diff --git a/src/assets/css/slider.css b/src/assets/css/slider.css deleted file mode 100644 index 071210b..0000000 --- a/src/assets/css/slider.css +++ /dev/null @@ -1,144 +0,0 @@ -/* rail style */ -.vue-slider-rail { - background-color: rgba(128, 128, 128, 0.18); - border-radius: 15px; -} - -/* process style */ -.vue-slider-process { - background-color: #335eea; - border-radius: 15px; -} - -/* dot style */ -.vue-slider-dot-handle { - cursor: pointer; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: #fff; - box-sizing: border-box; - box-shadow: 0.5px 0.5px 2px 1px rgba(0, 0, 0, 0.12); - visibility: hidden; -} - -/* tooltip style */ -.vue-slider-dot-tooltip-wrapper { - opacity: 0; - transition: all 1s; -} - -.vue-slider-dot-tooltip-wrapper-show { - opacity: 1; -} - -.vue-slider-dot-tooltip-inner { - font-size: 14px; - white-space: nowrap; - padding: 2px 6px; - min-width: 20px; - text-align: center; - color: #000; - border-radius: 5px; - border-color: #fff; - background-color: #fff; - box-sizing: content-box; - box-shadow: 0.5px 0.5px 2px 1px rgba(0, 0, 0, 0.08); -} - -/* hover */ -.vue-slider:hover .vue-slider-dot-handle, -.vue-slider:active .vue-slider-dot-handle { - visibility: visible; -} - -/* volume style */ -.volume-control .vue-slider-process { - opacity: 0.8; - background-color: var(--color-text); - border-radius: 15px; -} - -.volume-control:hover .vue-slider-process { - background-color: #335eea; -} - -/* nyancat */ - -.nyancat .vue-slider-rail { - background-color: rgba(128, 128, 128, 0.18); - padding: 2.5px 0px; - border-radius: 0; -} - -.nyancat .vue-slider-process { - padding: 0px 1px; - top: -2px; - border-radius: 0; - background: -webkit-gradient( - linear, - left top, - left bottom, - color-stop(0, #f00), - color-stop(17%, #f90), - color-stop(33%, #ff0), - color-stop(50%, #3f0), - color-stop(67%, #09f), - color-stop(83%, #63f) - ); -} - -.nyancat .vue-slider-dot-handle { - background: url('/img/logos/nyancat.gif'); - background-size: 36px; - width: 36px; - height: 24px; - margin-top: -6px; - box-shadow: none; - border-radius: 0; - box-sizing: border-box; - visibility: visible; -} - -.nyancat-stop .vue-slider-dot-handle { - background-image: url('/img/logos/nyancat-stop.png'); - transition: 300ms; -} - -/* lyrics */ -.lyrics-page .vue-slider-rail { - background-color: rgba(128, 128, 128, 0.18); - border-radius: 2px; - height: 4px; - opacity: 0.88; -} - -.lyrics-page .vue-slider-process { - background-color: #060606; -} - -.lyrics-page .vue-slider-dot-handle { - background-color: #060606; - box-shadow: unset; -} - -.lyrics-page .vue-slider-dot-tooltip { - display: none; -} - -body[data-theme='dark'] .lyrics-page .vue-slider-process { - background-color: #fafafa; -} - -body[data-theme='dark'] .lyrics-page .vue-slider-dot-handle { - background-color: #fff; -} - -.lyrics-page[data-theme='dark'] .vue-slider-rail { - background-color: rgba(255, 255, 255, 0.18); -} - -.lyrics-page[data-theme='dark'] .vue-slider-process, -.lyrics-page[data-theme='dark'] .vue-slider-dot-handle { - background-color: #fff; -} diff --git a/src/assets/icons/arrow-down.svg b/src/assets/icons/arrow-down.svg deleted file mode 100644 index 333ce72..0000000 --- a/src/assets/icons/arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/arrow-left.svg b/src/assets/icons/arrow-left.svg deleted file mode 100644 index 39198fc..0000000 --- a/src/assets/icons/arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/arrow-right.svg b/src/assets/icons/arrow-right.svg deleted file mode 100644 index 26cb61e..0000000 --- a/src/assets/icons/arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/arrow-up-alt.svg b/src/assets/icons/arrow-up-alt.svg deleted file mode 100644 index 1980837..0000000 --- a/src/assets/icons/arrow-up-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/arrow-up.svg b/src/assets/icons/arrow-up.svg deleted file mode 100644 index bc5a0bd..0000000 --- a/src/assets/icons/arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/dropdown.svg b/src/assets/icons/dropdown.svg deleted file mode 100644 index e1d0723..0000000 --- a/src/assets/icons/dropdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/explicit.svg b/src/assets/icons/explicit.svg deleted file mode 100644 index b381e0f..0000000 --- a/src/assets/icons/explicit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/github.svg b/src/assets/icons/github.svg deleted file mode 100644 index 7870c06..0000000 --- a/src/assets/icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/heart-solid.svg b/src/assets/icons/heart-solid.svg deleted file mode 100644 index 0269383..0000000 --- a/src/assets/icons/heart-solid.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/assets/icons/heart.svg b/src/assets/icons/heart.svg deleted file mode 100644 index ac5b105..0000000 --- a/src/assets/icons/heart.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js deleted file mode 100644 index ee45a56..0000000 --- a/src/assets/icons/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import Vue from 'vue'; -import SvgIcon from '@/components/SvgIcon'; - -Vue.component('svg-icon', SvgIcon); -const requireAll = requireContext => requireContext.keys().map(requireContext); -const req = require.context('./', true, /\.svg$/); -requireAll(req); diff --git a/src/assets/icons/login.svg b/src/assets/icons/login.svg deleted file mode 100644 index b4acd61..0000000 --- a/src/assets/icons/login.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/logout.svg b/src/assets/icons/logout.svg deleted file mode 100644 index 5c9daff..0000000 --- a/src/assets/icons/logout.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/mail.svg b/src/assets/icons/mail.svg deleted file mode 100644 index e0c6e57..0000000 --- a/src/assets/icons/mail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/mobile.svg b/src/assets/icons/mobile.svg deleted file mode 100644 index ae8b81b..0000000 --- a/src/assets/icons/mobile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/plus.svg b/src/assets/icons/plus.svg deleted file mode 100644 index e254d52..0000000 --- a/src/assets/icons/plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg deleted file mode 100644 index f41bbdd..0000000 --- a/src/assets/icons/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/settings.svg b/src/assets/icons/settings.svg deleted file mode 100644 index c85ffb2..0000000 --- a/src/assets/icons/settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/sort-up.svg b/src/assets/icons/sort-up.svg deleted file mode 100644 index 3efe4cf..0000000 --- a/src/assets/icons/sort-up.svg +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/assets/icons/thumbs-down.svg b/src/assets/icons/thumbs-down.svg deleted file mode 100644 index 02fe63b..0000000 --- a/src/assets/icons/thumbs-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/x.svg b/src/assets/icons/x.svg deleted file mode 100644 index 8144622..0000000 --- a/src/assets/icons/x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/background.js b/src/background.js deleted file mode 100644 index 276d790..0000000 --- a/src/background.js +++ /dev/null @@ -1,429 +0,0 @@ -'use strict'; -import { - app, - protocol, - BrowserWindow, - shell, - dialog, - globalShortcut, - nativeTheme, -} from 'electron'; -import { - isWindows, - isMac, - isLinux, - isDevelopment, - isCreateTray, - isCreateMpris, -} from '@/utils/platform'; -import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'; -import { startNeteaseMusicApi } from './electron/services'; -import { initIpcMain } from './electron/ipcMain.js'; -import { createMenu } from './electron/menu'; -import { createTray } from '@/electron/tray'; -import { createTouchBar } from './electron/touchBar'; -import { createDockMenu } from './electron/dockMenu'; -import { registerGlobalShortcut } from './electron/globalShortcut'; -import { autoUpdater } from 'electron-updater'; -import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'; -import { EventEmitter } from 'events'; -import express from 'express'; -import expressProxy from 'express-http-proxy'; -import Store from 'electron-store'; -import { createMpris } from '@/electron/mpris'; -const clc = require('cli-color'); -const log = text => { - console.log(`${clc.blueBright('[background.js]')} ${text}`); -}; - -const closeOnLinux = (e, win, store) => { - let closeOpt = store.get('settings.closeAppOption'); - if (closeOpt !== 'exit') { - e.preventDefault(); - } - - if (closeOpt === 'ask') { - dialog - .showMessageBox({ - type: 'info', - title: 'Information', - cancelId: 2, - defaultId: 0, - message: '确定要关闭吗?', - buttons: ['最小化到托盘', '直接退出'], - checkboxLabel: '记住我的选择', - }) - .then(result => { - if (result.checkboxChecked && result.response !== 2) { - win.webContents.send( - 'rememberCloseAppOption', - result.response === 0 ? 'minimizeToTray' : 'exit' - ); - } - - if (result.response === 0) { - win.hide(); //调用 最小化实例方法 - } else if (result.response === 1) { - win = null; - app.exit(); //exit()直接关闭客户端,不会执行quit(); - } - }) - .catch(err => { - log(err); - }); - } else if (closeOpt === 'exit') { - win = null; - app.quit(); - } else { - win.hide(); - } -}; - -class Background { - constructor() { - this.window = null; - this.ypmTrayImpl = null; - this.store = new Store({ - windowWidth: { - width: { type: 'number', default: 1440 }, - height: { type: 'number', default: 840 }, - }, - }); - this.neteaseMusicAPI = null; - this.expressApp = null; - this.willQuitApp = !isMac; - - this.init(); - } - - init() { - log('initializing'); - - // Make sure the app is singleton. - if (!app.requestSingleInstanceLock()) return app.quit(); - - // start netease music api - this.neteaseMusicAPI = startNeteaseMusicApi(); - - // create Express app - this.createExpressApp(); - - // Scheme must be registered before the app is ready - protocol.registerSchemesAsPrivileged([ - { scheme: 'app', privileges: { secure: true, standard: true } }, - ]); - - // handle app events - this.handleAppEvents(); - - // disable chromium mpris - if (isCreateMpris) { - app.commandLine.appendSwitch( - 'disable-features', - 'HardwareMediaKeyHandling,MediaSessionService' - ); - } - } - - async initDevtools() { - // Install Vue Devtools extension - try { - await installExtension(VUEJS_DEVTOOLS); - } catch (e) { - console.error('Vue Devtools failed to install:', e.toString()); - } - - // Exit cleanly on request from parent process in development mode. - if (isWindows) { - process.on('message', data => { - if (data === 'graceful-exit') { - app.quit(); - } - }); - } else { - process.on('SIGTERM', () => { - app.quit(); - }); - } - } - - createExpressApp() { - log('creating express app'); - - const expressApp = express(); - expressApp.use('/', express.static(__dirname + '/')); - expressApp.use('/api', expressProxy('http://127.0.0.1:10754')); - expressApp.use('/player', (req, res) => { - this.window.webContents - .executeJavaScript('window.yesplaymusic.player') - .then(result => { - res.send({ - currentTrack: result._isPersonalFM - ? result._personalFMTrack - : result._currentTrack, - progress: result._progress, - }); - }); - }); - this.expressApp = expressApp.listen(27232, '127.0.0.1'); - } - - createWindow() { - log('creating app window'); - - const appearance = this.store.get('settings.appearance'); - const showLibraryDefault = this.store.get('settings.showLibraryDefault'); - - const options = { - width: this.store.get('window.width') || 1440, - height: this.store.get('window.height') || 840, - minWidth: 1080, - minHeight: 720, - titleBarStyle: 'hiddenInset', - frame: !( - isWindows || - (isLinux && this.store.get('settings.linuxEnableCustomTitlebar')) - ), - title: 'YesPlayMusic', - show: false, - webPreferences: { - webSecurity: false, - nodeIntegration: true, - enableRemoteModule: true, - contextIsolation: false, - }, - backgroundColor: - ((appearance === undefined || appearance === 'auto') && - nativeTheme.shouldUseDarkColors) || - appearance === 'dark' - ? '#222' - : '#fff', - }; - - if (this.store.get('window.x') && this.store.get('window.y')) { - options.x = this.store.get('window.x'); - options.y = this.store.get('window.y'); - } - - this.window = new BrowserWindow(options); - - // hide menu bar on Microsoft Windows and Linux - this.window.setMenuBarVisibility(false); - - if (process.env.WEBPACK_DEV_SERVER_URL) { - // Load the url of the dev server if in development mode - this.window.loadURL( - showLibraryDefault - ? `${process.env.WEBPACK_DEV_SERVER_URL}/#/library` - : process.env.WEBPACK_DEV_SERVER_URL - ); - if (!process.env.IS_TEST) this.window.webContents.openDevTools(); - } else { - createProtocol('app'); - this.window.loadURL( - showLibraryDefault - ? 'http://localhost:27232/#/library' - : 'http://localhost:27232' - ); - } - } - - checkForUpdates() { - if (isDevelopment) return; - log('checkForUpdates'); - autoUpdater.checkForUpdatesAndNotify(); - - const showNewVersionMessage = info => { - dialog - .showMessageBox({ - title: '发现新版本 v' + info.version, - message: '发现新版本 v' + info.version, - detail: '是否前往 GitHub 下载新版本安装包?', - buttons: ['下载', '取消'], - type: 'question', - noLink: true, - }) - .then(result => { - if (result.response === 0) { - shell.openExternal( - 'https://github.com/qier222/YesPlayMusic/releases' - ); - } - }); - }; - - autoUpdater.on('update-available', info => { - showNewVersionMessage(info); - }); - } - - handleWindowEvents() { - this.window.once('ready-to-show', () => { - log('window ready-to-show event'); - this.window.show(); - }); - - this.window.on('close', e => { - log('window close event'); - - if (isLinux) { - closeOnLinux(e, this.window, this.store); - } else if (isMac) { - if (this.willQuitApp) { - this.window = null; - app.quit(); - } else { - e.preventDefault(); - this.window.hide(); - } - } else { - let closeOpt = this.store.get('settings.closeAppOption'); - if (this.willQuitApp && (closeOpt === 'exit' || closeOpt === 'ask')) { - this.window = null; - app.quit(); - } else { - e.preventDefault(); - this.window.hide(); - } - } - }); - - this.window.on('resized', () => { - this.store.set('window', this.window.getBounds()); - }); - - this.window.on('moved', () => { - this.store.set('window', this.window.getBounds()); - }); - - this.window.webContents.on('new-window', function (e, url) { - e.preventDefault(); - log('open url'); - const excludeHosts = ['www.last.fm']; - const exclude = excludeHosts.find(host => url.includes(host)); - if (exclude) { - const newWindow = new BrowserWindow({ - width: 800, - height: 600, - titleBarStyle: 'default', - title: 'YesPlayMusic', - webPreferences: { - webSecurity: false, - nodeIntegration: true, - enableRemoteModule: true, - contextIsolation: false, - }, - }); - newWindow.loadURL(url); - return; - } - shell.openExternal(url); - }); - } - - handleAppEvents() { - app.on('ready', async () => { - // 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. - log('app ready event'); - - // for development - if (isDevelopment) { - this.initDevtools(); - } - - // create window - this.createWindow(); - this.window.once('ready-to-show', () => { - this.window.show(); - }); - this.handleWindowEvents(); - - // create tray - if (isCreateTray) { - this.trayEventEmitter = new EventEmitter(); - this.ypmTrayImpl = createTray(this.window, this.trayEventEmitter); - } - - // init ipcMain - initIpcMain(this.window, this.store, this.trayEventEmitter); - - // set proxy - const proxyRules = this.store.get('proxy'); - if (proxyRules) { - this.window.webContents.session.setProxy({ proxyRules }, result => { - log('finished setProxy', result); - }); - } - - // check for updates - this.checkForUpdates(); - - // create menu - createMenu(this.window, this.store); - - // create dock menu for macOS - const createdDockMenu = createDockMenu(this.window); - if (createDockMenu && app.dock) app.dock.setMenu(createdDockMenu); - - // create touch bar - const createdTouchBar = createTouchBar(this.window); - if (createdTouchBar) this.window.setTouchBar(createdTouchBar); - - // register global shortcuts - if (this.store.get('settings.enableGlobalShortcut') !== false) { - registerGlobalShortcut(this.window, this.store); - } - - // create mpris - if (isCreateMpris) { - createMpris(this.window); - } - }); - - app.on('activate', () => { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - log('app activate event'); - if (this.window === null) { - this.createWindow(); - } else { - this.window.show(); - } - }); - - app.on('window-all-closed', () => { - if (!isMac) { - app.quit(); - } - }); - - app.on('before-quit', () => { - this.willQuitApp = true; - }); - - app.on('quit', () => { - this.expressApp.close(); - }); - - app.on('will-quit', () => { - // unregister all global shortcuts - globalShortcut.unregisterAll(); - }); - - if (!isMac) { - app.on('second-instance', (e, cl, wd) => { - if (this.window) { - this.window.show(); - if (this.window.isMinimized()) { - this.window.restore(); - } - this.window.focus(); - } - }); - } - } -} - -new Background(); diff --git a/src/components/ArtistsInLine.vue b/src/components/ArtistsInLine.vue deleted file mode 100644 index cc13384..0000000 --- a/src/components/ArtistsInLine.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/src/components/ButtonIcon.vue b/src/components/ButtonIcon.vue deleted file mode 100644 index d6afee3..0000000 --- a/src/components/ButtonIcon.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/src/components/ButtonTwoTone.vue b/src/components/ButtonTwoTone.vue deleted file mode 100644 index c72739a..0000000 --- a/src/components/ButtonTwoTone.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/src/components/ContextMenu.vue b/src/components/ContextMenu.vue deleted file mode 100644 index a290a47..0000000 --- a/src/components/ContextMenu.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/src/components/Cover.vue b/src/components/Cover.vue deleted file mode 100644 index 654d217..0000000 --- a/src/components/Cover.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/src/components/CoverRow.vue b/src/components/CoverRow.vue deleted file mode 100644 index d0e2163..0000000 --- a/src/components/CoverRow.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - diff --git a/src/components/DailyTracksCard.vue b/src/components/DailyTracksCard.vue deleted file mode 100644 index fd584f1..0000000 --- a/src/components/DailyTracksCard.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/src/components/ExplicitSymbol.vue b/src/components/ExplicitSymbol.vue deleted file mode 100644 index 99b2cd4..0000000 --- a/src/components/ExplicitSymbol.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/src/components/FMCard.vue b/src/components/FMCard.vue deleted file mode 100644 index a485002..0000000 --- a/src/components/FMCard.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/src/components/LinuxTitlebar.vue b/src/components/LinuxTitlebar.vue deleted file mode 100644 index 8575c6c..0000000 --- a/src/components/LinuxTitlebar.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/src/components/Modal.vue b/src/components/Modal.vue deleted file mode 100644 index 4ddc909..0000000 --- a/src/components/Modal.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - - diff --git a/src/components/ModalAddTrackToPlaylist.vue b/src/components/ModalAddTrackToPlaylist.vue deleted file mode 100644 index 193bcd4..0000000 --- a/src/components/ModalAddTrackToPlaylist.vue +++ /dev/null @@ -1,174 +0,0 @@ - - - - - diff --git a/src/components/ModalNewPlaylist.vue b/src/components/ModalNewPlaylist.vue deleted file mode 100644 index 29e997e..0000000 --- a/src/components/ModalNewPlaylist.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - diff --git a/src/components/MvRow.vue b/src/components/MvRow.vue deleted file mode 100644 index a5d4d7a..0000000 --- a/src/components/MvRow.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - - diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue deleted file mode 100644 index b6af865..0000000 --- a/src/components/Navbar.vue +++ /dev/null @@ -1,344 +0,0 @@ - - - - - diff --git a/src/components/Player.vue b/src/components/Player.vue deleted file mode 100644 index 6e3eec4..0000000 --- a/src/components/Player.vue +++ /dev/null @@ -1,444 +0,0 @@ - - - - - diff --git a/src/components/Scrollbar.vue b/src/components/Scrollbar.vue deleted file mode 100644 index d2e793d..0000000 --- a/src/components/Scrollbar.vue +++ /dev/null @@ -1,198 +0,0 @@ - - - - - diff --git a/src/components/SvgIcon.vue b/src/components/SvgIcon.vue deleted file mode 100644 index 42848db..0000000 --- a/src/components/SvgIcon.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/src/components/Toast.vue b/src/components/Toast.vue deleted file mode 100644 index d5b5eb8..0000000 --- a/src/components/Toast.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/src/components/TrackList.vue b/src/components/TrackList.vue deleted file mode 100644 index a37eb18..0000000 --- a/src/components/TrackList.vue +++ /dev/null @@ -1,294 +0,0 @@ - - - - - diff --git a/src/components/TrackListItem.vue b/src/components/TrackListItem.vue deleted file mode 100644 index b51cd70..0000000 --- a/src/components/TrackListItem.vue +++ /dev/null @@ -1,437 +0,0 @@ - - - - - diff --git a/src/components/Win32Titlebar.vue b/src/components/Win32Titlebar.vue deleted file mode 100644 index 1a6cae3..0000000 --- a/src/components/Win32Titlebar.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - - diff --git a/src/electron/dockMenu.js b/src/electron/dockMenu.js deleted file mode 100644 index fe0eb24..0000000 --- a/src/electron/dockMenu.js +++ /dev/null @@ -1,25 +0,0 @@ -const { Menu } = require('electron'); - -export function createDockMenu(win) { - return Menu.buildFromTemplate([ - { - label: 'Play', - click() { - win.webContents.send('play'); - }, - }, - { type: 'separator' }, - { - label: 'Next', - click() { - win.webContents.send('next'); - }, - }, - { - label: 'Previous', - click() { - win.webContents.send('previous'); - }, - }, - ]); -} diff --git a/src/electron/globalShortcut.js b/src/electron/globalShortcut.js deleted file mode 100644 index c352eaf..0000000 --- a/src/electron/globalShortcut.js +++ /dev/null @@ -1,58 +0,0 @@ -import defaultShortcuts from '@/utils/shortcuts'; -const { globalShortcut } = require('electron'); - -const clc = require('cli-color'); -const log = text => { - console.log(`${clc.blueBright('[globalShortcut.js]')} ${text}`); -}; - -export function registerGlobalShortcut(win, store) { - log('registerGlobalShortcut'); - let shortcuts = store.get('settings.shortcuts'); - if (shortcuts === undefined) { - shortcuts = defaultShortcuts; - } - - globalShortcut.register( - shortcuts.find(s => s.id === 'play').globalShortcut, - () => { - win.webContents.send('play'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'next').globalShortcut, - () => { - win.webContents.send('next'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'previous').globalShortcut, - () => { - win.webContents.send('previous'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'increaseVolume').globalShortcut, - () => { - win.webContents.send('increaseVolume'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'decreaseVolume').globalShortcut, - () => { - win.webContents.send('decreaseVolume'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'like').globalShortcut, - () => { - win.webContents.send('like'); - } - ); - globalShortcut.register( - shortcuts.find(s => s.id === 'minimize').globalShortcut, - () => { - win.isVisible() ? win.hide() : win.show(); - } - ); -} diff --git a/src/electron/ipcMain.js b/src/electron/ipcMain.js deleted file mode 100644 index 9d0d42e..0000000 --- a/src/electron/ipcMain.js +++ /dev/null @@ -1,289 +0,0 @@ -import { app, dialog, globalShortcut, ipcMain } from 'electron'; -import match from '@unblockneteasemusic/server'; -import { registerGlobalShortcut } from '@/electron/globalShortcut'; -import cloneDeep from 'lodash/cloneDeep'; -import shortcuts from '@/utils/shortcuts'; -import { createMenu } from './menu'; -import { isCreateTray, isMac } from '@/utils/platform'; - -const clc = require('cli-color'); -const log = text => { - console.log(`${clc.blueBright('[ipcMain.js]')} ${text}`); -}; - -const exitAsk = (e, win) => { - e.preventDefault(); //阻止默认行为 - dialog - .showMessageBox({ - type: 'info', - title: 'Information', - cancelId: 2, - defaultId: 0, - message: '确定要关闭吗?', - buttons: ['最小化', '直接退出'], - }) - .then(result => { - if (result.response == 0) { - e.preventDefault(); //阻止默认行为 - win.minimize(); //调用 最小化实例方法 - } else if (result.response == 1) { - win = null; - //app.quit(); - app.exit(); //exit()直接关闭客户端,不会执行quit(); - } - }) - .catch(err => { - log(err); - }); -}; - -const exitAskWithoutMac = (e, win) => { - e.preventDefault(); //阻止默认行为 - dialog - .showMessageBox({ - type: 'info', - title: 'Information', - cancelId: 2, - defaultId: 0, - message: '确定要关闭吗?', - buttons: ['最小化到托盘', '直接退出'], - checkboxLabel: '记住我的选择', - }) - .then(result => { - if (result.checkboxChecked && result.response !== 2) { - win.webContents.send( - 'rememberCloseAppOption', - result.response === 0 ? 'minimizeToTray' : 'exit' - ); - } - - if (result.response === 0) { - e.preventDefault(); //阻止默认行为 - win.hide(); //调用 最小化实例方法 - } else if (result.response === 1) { - win = null; - //app.quit(); - app.exit(); //exit()直接关闭客户端,不会执行quit(); - } - }) - .catch(err => { - log(err); - }); -}; - -const client = require('discord-rich-presence')('818936529484906596'); - -/** - * Make data a Buffer. - * - * @param {?} data The data to convert. - * @returns {import("buffer").Buffer} The converted data. - */ -function toBuffer(data) { - if (data instanceof Buffer) { - return data; - } else { - return Buffer.from(data); - } -} - -/** - * Get the file URI from bilivideo. - * - * @param {string} url The URL to fetch. - * @returns {Promise} The file URI. - */ -async function getBiliVideoFile(url) { - const axios = await import('axios').then(m => m.default); - const response = await axios.get(url, { - headers: { - Referer: 'https://www.bilibili.com/', - 'User-Agent': 'okhttp/3.4.1', - }, - responseType: 'arraybuffer', - }); - - const buffer = toBuffer(response.data); - const encodedData = buffer.toString('base64'); - - return `data:application/octet-stream;base64,${encodedData}`; -} - -/** - * Parse the source string (`a, b`) to source list `['a', 'b']`. - * - * @param {string} sourceString The source string. - * @returns {string[]} The source list. - */ -function parseSourceStringToList(sourceString) { - return sourceString.split(',').map(s => s.trim()); -} - -export function initIpcMain(win, store, trayEventEmitter) { - ipcMain.handle('unblock-music', async (_, track, source) => { - // 兼容 unblockneteasemusic 所使用的 api 字段 - track.alias = track.alia || []; - track.duration = track.dt || 0; - track.album = track.al || []; - track.artists = track.ar || []; - - const timeoutPromise = new Promise((_, reject) => { - setTimeout(() => { - reject('timeout'); - }, 5000); - }); - - const sourceList = - typeof source === 'string' ? parseSourceStringToList(source) : null; - log(`[UNM] using source: ${sourceList || ''}`); - - try { - const matchedAudio = await Promise.race([ - // TODO: tell users to install yt-dlp. - // we passed "null" to source, to let UNM choose the default source. - match(track.id, sourceList, track), - timeoutPromise, - ]); - - if (!matchedAudio || !matchedAudio.url) { - throw new Error('no such a song found'); - } - - // bilibili's audio file needs some special treatment - if (matchedAudio.url.includes('bilivideo.com')) { - matchedAudio.url = await getBiliVideoFile(matchedAudio.url); - } - - return matchedAudio; - } catch (err) { - const errorMessage = err instanceof Error ? `${err.message}` : `${err}`; - log(`UnblockNeteaseMusic failed: ${errorMessage}`); - return null; - } - }); - - ipcMain.on('close', e => { - if (isMac) { - win.hide(); - exitAsk(e, win); - } else { - let closeOpt = store.get('settings.closeAppOption'); - if (closeOpt === 'exit') { - win = null; - //app.quit(); - app.exit(); //exit()直接关闭客户端,不会执行quit(); - } else if (closeOpt === 'minimizeToTray') { - e.preventDefault(); - win.hide(); - } else { - exitAskWithoutMac(e, win); - } - } - }); - - ipcMain.on('minimize', () => { - win.minimize(); - }); - - ipcMain.on('maximizeOrUnmaximize', () => { - const isMaximized = win.isMaximized(); - isMaximized ? win.unmaximize() : win.maximize(); - win.webContents.send('isMaximized', isMaximized); - }); - - ipcMain.on('settings', (event, options) => { - store.set('settings', options); - if (options.enableGlobalShortcut) { - registerGlobalShortcut(win, store); - } else { - log('unregister global shortcut'); - globalShortcut.unregisterAll(); - } - }); - - ipcMain.on('playDiscordPresence', (event, track) => { - client.updatePresence({ - details: track.name + ' - ' + track.ar.map(ar => ar.name).join(','), - state: track.al.name, - endTimestamp: Date.now() + track.dt, - largeImageKey: 'logo', - largeImageText: 'Listening ' + track.name, - smallImageKey: 'play', - smallImageText: 'Playing', - instance: true, - }); - }); - - ipcMain.on('pauseDiscordPresence', (event, track) => { - client.updatePresence({ - details: track.name + ' - ' + track.ar.map(ar => ar.name).join(','), - state: track.al.name, - largeImageKey: 'logo', - largeImageText: 'YesPlayMusic', - smallImageKey: 'pause', - smallImageText: 'Pause', - instance: true, - }); - }); - - ipcMain.on('setProxy', (event, config) => { - const proxyRules = `${config.protocol}://${config.server}:${config.port}`; - store.set('proxy', proxyRules); - win.webContents.session.setProxy( - { - proxyRules, - }, - () => { - log('finished setProxy'); - } - ); - }); - - ipcMain.on('removeProxy', (event, arg) => { - log('removeProxy'); - win.webContents.session.setProxy({}); - store.set('proxy', ''); - }); - - ipcMain.on('switchGlobalShortcutStatusTemporary', (e, status) => { - log('switchGlobalShortcutStatusTemporary'); - if (status === 'disable') { - globalShortcut.unregisterAll(); - } else { - registerGlobalShortcut(win, store); - } - }); - - ipcMain.on('updateShortcut', (e, { id, type, shortcut }) => { - log('updateShortcut'); - let shortcuts = store.get('settings.shortcuts'); - let newShortcut = shortcuts.find(s => s.id === id); - newShortcut[type] = shortcut; - store.set('settings.shortcuts', shortcuts); - - createMenu(win, store); - globalShortcut.unregisterAll(); - registerGlobalShortcut(win, store); - }); - - ipcMain.on('restoreDefaultShortcuts', () => { - log('restoreDefaultShortcuts'); - store.set('settings.shortcuts', cloneDeep(shortcuts)); - - createMenu(win, store); - globalShortcut.unregisterAll(); - registerGlobalShortcut(win, store); - }); - - if (isCreateTray) { - ipcMain.on('updateTrayTooltip', (_, title) => { - trayEventEmitter.emit('updateTooltip', title); - }); - ipcMain.on('updateTrayPlayState', (_, isPlaying) => { - trayEventEmitter.emit('updatePlayState', isPlaying); - }); - ipcMain.on('updateTrayLikeState', (_, isLiked) => { - trayEventEmitter.emit('updateLikeState', isLiked); - }); - } -} diff --git a/src/electron/ipcRenderer.js b/src/electron/ipcRenderer.js deleted file mode 100644 index ea8faf9..0000000 --- a/src/electron/ipcRenderer.js +++ /dev/null @@ -1,94 +0,0 @@ -import store from '@/store'; - -const player = store.state.player; - -export function ipcRenderer(vueInstance) { - const self = vueInstance; - // 添加专有的类名 - document.body.setAttribute('data-electron', 'yes'); - document.body.setAttribute( - 'data-electron-os', - window.require('os').platform() - ); - // ipc message channel - const electron = window.require('electron'); - const ipcRenderer = electron.ipcRenderer; - - // listens to the main process 'changeRouteTo' event and changes the route from - // inside this Vue instance, according to what path the main process requires. - // responds to Menu click() events at the main process and changes the route accordingly. - - ipcRenderer.on('changeRouteTo', (event, path) => { - self.$router.push(path); - if (store.state.showLyrics) { - store.commit('toggleLyrics'); - } - }); - - ipcRenderer.on('search', () => { - // 触发数据响应 - self.$refs.navbar.$refs.searchInput.focus(); - self.$refs.navbar.inputFocus = true; - }); - - ipcRenderer.on('play', () => { - player.playOrPause(); - }); - - ipcRenderer.on('next', () => { - if (player.isPersonalFM) { - player.playNextFMTrack(); - } else { - player.playNextTrack(); - } - }); - - ipcRenderer.on('previous', () => { - player.playPrevTrack(); - }); - - ipcRenderer.on('increaseVolume', () => { - if (player.volume + 0.1 >= 1) { - return (player.volume = 1); - } - player.volume += 0.1; - }); - - ipcRenderer.on('decreaseVolume', () => { - if (player.volume - 0.1 <= 0) { - return (player.volume = 0); - } - player.volume -= 0.1; - }); - - ipcRenderer.on('like', () => { - store.dispatch('likeATrack', player.currentTrack.id); - }); - - ipcRenderer.on('repeat', () => { - player.switchRepeatMode(); - }); - - ipcRenderer.on('shuffle', () => { - player.switchShuffle(); - }); - - ipcRenderer.on('routerGo', (event, where) => { - self.$refs.navbar.go(where); - }); - - ipcRenderer.on('nextUp', () => { - self.$refs.player.goToNextTracksPage(); - }); - - ipcRenderer.on('rememberCloseAppOption', (event, value) => { - store.commit('updateSettings', { - key: 'closeAppOption', - value, - }); - }); - - ipcRenderer.on('setPosition', (event, position) => { - player._howler.seek(position); - }); -} diff --git a/src/electron/menu.js b/src/electron/menu.js deleted file mode 100644 index 494f3fd..0000000 --- a/src/electron/menu.js +++ /dev/null @@ -1,220 +0,0 @@ -import defaultShortcuts from '@/utils/shortcuts'; -const { app, Menu } = require('electron'); -// import { autoUpdater } from "electron-updater" -// const version = app.getVersion(); - -const isMac = process.platform === 'darwin'; - -export function createMenu(win, store) { - let shortcuts = store.get('settings.shortcuts'); - if (shortcuts === undefined) { - shortcuts = defaultShortcuts; - } - - let menu = null; - const template = [ - ...(isMac - ? [ - { - label: app.name, - submenu: [ - { role: 'about' }, - { type: 'separator' }, - { role: 'services' }, - { type: 'separator' }, - { type: 'separator' }, - { - label: 'Preferences...', - accelerator: 'CmdOrCtrl+,', - click: () => { - win.webContents.send('changeRouteTo', '/settings'); - }, - role: 'preferences', - }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideothers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'quit' }, - ], - }, - ] - : []), - { - label: 'Edit', - submenu: [ - { role: 'undo' }, - { role: 'redo' }, - { type: 'separator' }, - { role: 'cut' }, - { role: 'copy' }, - { role: 'paste' }, - ...(isMac - ? [ - { role: 'delete' }, - { role: 'selectAll' }, - { type: 'separator' }, - { - label: 'Speech', - submenu: [{ role: 'startspeaking' }, { role: 'stopspeaking' }], - }, - ] - : [{ role: 'delete' }, { type: 'separator' }, { role: 'selectAll' }]), - { - label: 'Search', - accelerator: 'CmdOrCtrl+F', - click: () => { - win.webContents.send('search'); - }, - }, - ], - }, - { - label: 'Controls', - submenu: [ - { - label: 'Play', - accelerator: shortcuts.find(s => s.id === 'play').shortcut, - click: () => { - win.webContents.send('play'); - }, - }, - { - label: 'Next', - accelerator: shortcuts.find(s => s.id === 'next').shortcut, - click: () => { - win.webContents.send('next'); - }, - }, - { - label: 'Previous', - accelerator: shortcuts.find(s => s.id === 'previous').shortcut, - click: () => { - win.webContents.send('previous'); - }, - }, - { - label: 'Increase Volume', - accelerator: shortcuts.find(s => s.id === 'increaseVolume').shortcut, - click: () => { - win.webContents.send('increaseVolume'); - }, - }, - { - label: 'Decrease Volume', - accelerator: shortcuts.find(s => s.id === 'decreaseVolume').shortcut, - click: () => { - win.webContents.send('decreaseVolume'); - }, - }, - { - label: 'Like', - accelerator: shortcuts.find(s => s.id === 'like').shortcut, - click: () => { - win.webContents.send('like'); - }, - }, - { - label: 'Repeat', - accelerator: 'Alt+R', - click: () => { - win.webContents.send('repeat'); - }, - }, - { - label: 'Shuffle', - accelerator: 'Alt+S', - click: () => { - win.webContents.send('shuffle'); - }, - }, - ], - }, - { - label: 'Window', - submenu: [ - { role: 'close' }, - { role: 'minimize' }, - { role: 'zoom' }, - { role: 'reload' }, - { role: 'forcereload' }, - { role: 'toggledevtools' }, - { type: 'separator' }, - { role: 'togglefullscreen' }, - ...(isMac - ? [ - { type: 'separator' }, - { role: 'front' }, - { type: 'separator' }, - { - role: 'window', - id: 'window', - label: 'YesPlayMusic', - type: 'checkbox', - checked: true, - click: () => { - const current = menu.getMenuItemById('window'); - if (current.checked === false) { - win.hide(); - } else { - win.show(); - } - }, - }, - ] - : [{ role: 'close' }]), - ], - }, - { - label: 'Help', - submenu: [ - { - label: 'GitHub', - click: async () => { - const { shell } = require('electron'); - await shell.openExternal('https://github.com/qier222/YesPlayMusic'); - }, - }, - { - label: 'Electron', - click: async () => { - const { shell } = require('electron'); - await shell.openExternal('https://electronjs.org'); - }, - }, - { - label: '开发者工具', - accelerator: 'F12', - click: () => { - win.webContents.openDevTools(); - }, - }, - ], - }, - ]; - // for window - // if (process.platform === "win32") { - // template.push({ - // label: "Help", - // submenu: [ - // { - // label: `Current version v${version}`, - // enabled: false, - // }, - // { - // label: "Check for update", - // accelerator: "Ctrl+U", - // click: (item, focusedWindow) => { - // win = focusedWindow; - // updateSource = "menu"; - // autoUpdater.checkForUpdates(); - // }, - // }, - // ], - // }); - // } - - menu = Menu.buildFromTemplate(template); - Menu.setApplicationMenu(menu); -} diff --git a/src/electron/mpris.js b/src/electron/mpris.js deleted file mode 100644 index 2ea5073..0000000 --- a/src/electron/mpris.js +++ /dev/null @@ -1,62 +0,0 @@ -import { ipcMain, app } from 'electron'; - -export function createMpris(window) { - const Player = require('mpris-service'); - const renderer = window.webContents; - - const player = Player({ - name: 'yesplaymusic', - identity: 'YesPlayMusic', - }); - - player.on('next', () => renderer.send('next')); - player.on('previous', () => renderer.send('previous')); - player.on('playpause', () => renderer.send('play')); - player.on('play', () => renderer.send('play')); - player.on('pause', () => renderer.send('play')); - player.on('quit', () => app.exit()); - player.on('position', args => - renderer.send('setPosition', args.position / 1000 / 1000) - ); - player.on('loopStatus', () => renderer.send('repeat')); - player.on('shuffle', () => renderer.send('shuffle')); - - ipcMain.on('player', (e, { playing }) => { - player.playbackStatus = playing - ? Player.PLAYBACK_STATUS_PLAYING - : Player.PLAYBACK_STATUS_PAUSED; - }); - - ipcMain.on('metadata', (e, metadata) => { - player.metadata = { - 'mpris:trackid': player.objectPath('track/' + metadata.trackId), - 'mpris:artUrl': metadata.artwork[0].src, - 'mpris:length': metadata.length * 1000 * 1000, - 'xesam:title': metadata.title, - 'xesam:album': metadata.album, - 'xesam:artist': metadata.artist.split(','), - }; - }); - - ipcMain.on('playerCurrentTrackTime', (e, position) => { - player.getPosition = () => position * 1000 * 1000; - }); - - ipcMain.on('switchRepeatMode', (e, mode) => { - switch (mode) { - case 'off': - player.loopStatus = Player.LOOP_STATUS_NONE; - break; - case 'one': - player.loopStatus = Player.LOOP_STATUS_TRACK; - break; - case 'on': - player.loopStatus = Player.LOOP_STATUS_PLAYLIST; - break; - } - }); - - ipcMain.on('switchShuffle', (e, shuffle) => { - player.shuffle = shuffle; - }); -} diff --git a/src/electron/services.js b/src/electron/services.js deleted file mode 100644 index 1840672..0000000 --- a/src/electron/services.js +++ /dev/null @@ -1,13 +0,0 @@ -import clc from 'cli-color'; -import server from 'NeteaseCloudMusicApi/server'; - -export async function startNeteaseMusicApi() { - // Let user know that the service is starting - console.log(`${clc.redBright('[NetEase API]')} initiating NCM API`); - - // Load the NCM API. - await server.serveNcmApi({ - port: 10754, - moduleDefs: require('../ncmModDef'), - }); -} diff --git a/src/electron/touchBar.js b/src/electron/touchBar.js deleted file mode 100644 index 0541c93..0000000 --- a/src/electron/touchBar.js +++ /dev/null @@ -1,97 +0,0 @@ -const { TouchBar, nativeImage, ipcMain } = require('electron'); -const { TouchBarButton, TouchBarSpacer } = TouchBar; -const path = require('path'); - -export function createTouchBar(window) { - const renderer = window.webContents; - - // Icon follow touchbar design guideline. - // See: https://developer.apple.com/design/human-interface-guidelines/macos/touch-bar/touch-bar-icons-and-images/ - // Icon Resource: https://devimages-cdn.apple.com/design/resources/ - function getNativeIcon(name) { - return nativeImage.createFromPath( - // eslint-disable-next-line no-undef - path.join(__static, 'img/touchbar/', name) - ); - } - - const previousPage = new TouchBarButton({ - click: () => { - renderer.send('routerGo', 'back'); - }, - icon: getNativeIcon('page_prev.png'), - }); - - const nextPage = new TouchBarButton({ - click: () => { - renderer.send('routerGo', 'forward'); - }, - icon: getNativeIcon('page_next.png'), - }); - - const searchButton = new TouchBarButton({ - click: () => { - renderer.send('search'); - }, - icon: getNativeIcon('search.png'), - }); - - const playButton = new TouchBarButton({ - click: () => { - renderer.send('play'); - }, - icon: getNativeIcon('play.png'), - }); - - const previousTrackButton = new TouchBarButton({ - click: () => { - renderer.send('previous'); - }, - icon: getNativeIcon('backward.png'), - }); - - const nextTrackButton = new TouchBarButton({ - click: () => { - renderer.send('next'); - }, - icon: getNativeIcon('forward.png'), - }); - - const likeButton = new TouchBarButton({ - click: () => { - renderer.send('like'); - }, - icon: getNativeIcon('like.png'), - }); - - const nextUpButton = new TouchBarButton({ - click: () => { - renderer.send('nextUp'); - }, - icon: getNativeIcon('next_up.png'), - }); - - ipcMain.on('player', (e, { playing, likedCurrentTrack }) => { - playButton.icon = - playing === true ? getNativeIcon('pause.png') : getNativeIcon('play.png'); - likeButton.icon = likedCurrentTrack - ? getNativeIcon('like_fill.png') - : getNativeIcon('like.png'); - }); - - const touchBar = new TouchBar({ - items: [ - previousPage, - nextPage, - searchButton, - new TouchBarSpacer({ size: 'flexible' }), - previousTrackButton, - playButton, - nextTrackButton, - new TouchBarSpacer({ size: 'flexible' }), - likeButton, - nextUpButton, - ], - }); - return touchBar; -} diff --git a/src/electron/tray.js b/src/electron/tray.js deleted file mode 100644 index 6afa580..0000000 --- a/src/electron/tray.js +++ /dev/null @@ -1,205 +0,0 @@ -/* global __static */ -import path from 'path'; -import { app, nativeImage, Tray, Menu } from 'electron'; -import { isLinux } from '@/utils/platform'; - -function createMenuTemplate(win) { - return [ - { - label: '播放', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/play.png') - ), - click: () => { - win.webContents.send('play'); - }, - id: 'play', - }, - { - label: '暂停', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/pause.png') - ), - click: () => { - win.webContents.send('play'); - }, - id: 'pause', - visible: false, - }, - { - label: '上一首', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/left.png') - ), - accelerator: 'CmdOrCtrl+Left', - click: () => { - win.webContents.send('previous'); - }, - }, - { - label: '下一首', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/right.png') - ), - accelerator: 'CmdOrCtrl+Right', - click: () => { - win.webContents.send('next'); - }, - }, - { - label: '循环播放', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/repeat.png') - ), - accelerator: 'Alt+R', - click: () => { - win.webContents.send('repeat'); - }, - }, - { - label: '加入喜欢', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/like.png') - ), - accelerator: 'CmdOrCtrl+L', - click: () => { - win.webContents.send('like'); - }, - id: 'like', - }, - { - label: '取消喜欢', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/unlike.png') - ), - accelerator: 'CmdOrCtrl+L', - click: () => { - win.webContents.send('like'); - }, - id: 'unlike', - visible: false, - }, - { - label: '退出', - icon: nativeImage.createFromPath( - path.join(__static, 'img/icons/exit.png') - ), - accelerator: 'CmdOrCtrl+W', - click: () => { - app.exit(); - }, - }, - ]; -} - -// linux下托盘的实现方式比较迷惑 -// right-click无法在linux下使用 -// click在默认行为下会弹出一个contextMenu,里面的唯一选项才会调用click事件 -// setContextMenu应该是目前唯一能在linux下使用托盘菜单api -// 但是无法区分鼠标左右键 -class YPMTrayLinuxImpl { - constructor(tray, win, emitter) { - this.tray = tray; - this.win = win; - this.emitter = emitter; - this.template = undefined; - this.initTemplate(); - this.contextMenu = Menu.buildFromTemplate(this.template); - - this.tray.setContextMenu(this.contextMenu); - this.handleEvents(); - } - - initTemplate() { - //在linux下,鼠标左右键都会呼出contextMenu - //所以此处单独为linux添加一个 显示主面板 选项 - this.template = [ - { - label: '显示主面板', - click: () => { - this.win.show(); - }, - }, - { - type: 'separator', - }, - ].concat(createMenuTemplate(this.win)); - } - - handleEvents() { - this.emitter.on('updateTooltip', title => this.tray.setToolTip(title)); - this.emitter.on('updatePlayState', isPlaying => { - this.contextMenu.getMenuItemById('play').visible = !isPlaying; - this.contextMenu.getMenuItemById('pause').visible = isPlaying; - this.tray.setContextMenu(this.contextMenu); - }); - this.emitter.on('updateLikeState', isLiked => { - this.contextMenu.getMenuItemById('like').visible = !isLiked; - this.contextMenu.getMenuItemById('unlike').visible = isLiked; - this.tray.setContextMenu(this.contextMenu); - }); - } -} - -class YPMTrayWindowsImpl { - constructor(tray, win, emitter) { - this.tray = tray; - this.win = win; - this.emitter = emitter; - this.template = createMenuTemplate(win); - this.contextMenu = Menu.buildFromTemplate(this.template); - - this.isPlaying = false; - this.curDisplayPlaying = false; - - this.isLiked = false; - this.curDisplayLiked = false; - - this.handleEvents(); - } - - handleEvents() { - this.tray.on('click', () => { - this.win.show(); - }); - - this.tray.on('right-click', () => { - if (this.isPlaying !== this.curDisplayPlaying) { - this.curDisplayPlaying = this.isPlaying; - this.contextMenu.getMenuItemById('play').visible = !this.isPlaying; - this.contextMenu.getMenuItemById('pause').visible = this.isPlaying; - } - - if (this.isLiked !== this.curDisplayLiked) { - this.curDisplayLiked = this.isLiked; - this.contextMenu.getMenuItemById('like').visible = !this.isLiked; - this.contextMenu.getMenuItemById('unlike').visible = this.isLiked; - } - - this.tray.popUpContextMenu(this.contextMenu); - }); - - this.emitter.on('updateTooltip', title => this.tray.setToolTip(title)); - this.emitter.on( - 'updatePlayState', - isPlaying => (this.isPlaying = isPlaying) - ); - this.emitter.on('updateLikeState', isLiked => (this.isLiked = isLiked)); - } -} - -export function createTray(win, eventEmitter) { - let icon = nativeImage - .createFromPath(path.join(__static, 'img/icons/menu@88.png')) - .resize({ - height: 20, - width: 20, - }); - - let tray = new Tray(icon); - tray.setToolTip('YesPlayMusic'); - - return isLinux - ? new YPMTrayLinuxImpl(tray, win, eventEmitter) - : new YPMTrayWindowsImpl(tray, win, eventEmitter); -} diff --git a/src/locale/index.js b/src/locale/index.js deleted file mode 100644 index e528213..0000000 --- a/src/locale/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import Vue from 'vue'; -import VueClipboard from 'vue-clipboard2'; -import VueI18n from 'vue-i18n'; -import store from '@/store'; - -import en from './lang/en.js'; -import zhCN from './lang/zh-CN.js'; -import zhTW from './lang/zh-TW.js'; -import tr from './lang/tr.js'; - -Vue.use(VueClipboard); -Vue.use(VueI18n); - -const i18n = new VueI18n({ - locale: store.state.settings.lang, - messages: { - en, - 'zh-CN': zhCN, - 'zh-TW': zhTW, - tr, - }, - silentTranslationWarn: true, -}); - -export default i18n; diff --git a/src/locale/lang/en.js b/src/locale/lang/en.js deleted file mode 100644 index eac25c1..0000000 --- a/src/locale/lang/en.js +++ /dev/null @@ -1,199 +0,0 @@ -export default { - common: { - play: 'PLAY', - songs: 'Songs', - }, - nav: { - home: 'Home', - explore: 'Explore', - library: 'Library', - search: 'Search', - github: 'GitHub Repo', - }, - footer: { - settings: 'Settings', - }, - home: { - recommendPlaylist: 'Recommended Playlists', - recommendArtist: 'Recommended Artists', - newAlbum: 'Latest Albums', - seeMore: 'SEE MORE', - charts: 'Charts', - }, - library: { - sLibrary: "'s Library", - likedSongs: 'Liked Songs', - sLikedSongs: "'s Liked Songs", - playlists: 'Playlists', - albums: 'Albums', - artists: 'Artists', - mvs: 'MVs', - newPlayList: 'New Playlist', - userProfileMenu: { - settings: 'Settings', - logout: 'Logout', - }, - }, - explore: { - explore: 'Explore', - loadMore: 'Load More', - }, - artist: { - latestRelease: 'Latest Releases', - latestMV: 'Latest MV', - popularSongs: 'Popular Songs', - showMore: 'SHOW MORE', - showLess: 'SHOW LESS', - EPsSingles: 'EPs & Singles', - albums: 'Albums', - withAlbums: 'Albums', - artist: 'Artist', - videos: 'Music Videos', - following: 'Following', - follow: 'Follow', - similarArtists: 'Similar Artists', - artistDesc: 'Artist Description', - }, - album: { - released: 'Released', - albumDesc: 'Album Description', - }, - playlist: { - playlist: 'Playlists', - updatedAt: 'Updated at', - search: 'Search in playlist', - }, - login: { - accessToAll: 'Access to all data', - loginText: 'Login to Netease', - search: 'Search account', - readonly: 'Only access to public data', - usernameLogin: 'Username Login', - searchHolder: 'Your account username', - enterTip: "Press 'enter' to search", - choose: 'Choose your account', - confirm: 'Confirm', - countryCode: 'Country code', - phone: 'Phone', - email: 'Email address', - password: 'Password', - login: 'Login', - loginWithEmail: 'Login with Email', - loginWithPhone: 'Login with Phone', - notice: `YesPlayMusic promises not to save any of your account information to the cloud.
- Your password will be MD5 encrypted locally and then transmitted to NetEase Music API.
- YesPlayMusic is not the official website of NetEase Music, please consider carefully before entering account information. You can also go to YesPlayMusic's GitHub repository to build and use the self-hosted NetEase Music API.`, - noticeElectron: `Your password will be MD5 encrypted locally and then transmitted to NetEase Music API.
- YesPlayMusic promises not to save any of your account information to the cloud.
`, - }, - mv: { - moreVideo: 'More Videos', - }, - next: { - nowPlaying: 'Now Playing', - nextUp: 'Next Up', - }, - player: { - like: 'Like', - previous: 'Previous Song', - next: 'Next Song', - repeat: 'Repeat', - repeatTrack: 'Repeat Track', - shuffle: 'Shuffle', - reversed: 'Reversed', - play: 'Play', - pause: 'Pause', - mute: 'Mute', - nextUp: 'Next Up', - }, - modal: { - close: 'Close', - }, - search: { - artist: 'Artists', - album: 'Albums', - song: 'Songs', - mv: 'Music Videos', - playlist: 'Playlists', - noResult: 'No Results', - searchFor: 'Search for', - }, - settings: { - settings: 'Settings', - logout: 'LOGOUT', - language: 'Languages', - musicQuality: { - text: 'Music Quality', - low: 'Low', - medium: 'Medium', - high: 'High', - lossless: 'Lossless', - }, - cacheLimit: { - text: 'Songs Cache limit', - none: 'None', - }, - lyricFontSize: { - text: 'Lyric Font Size', - small: 'Small', - medium: 'Medium', - large: 'Large (Default)', - xlarge: 'X-Large', - }, - deviceSelector: 'Audio Output Device', - permissionRequired: 'Microphone Permission Required', - appearance: { - text: 'Appearance', - auto: 'Auto', - light: 'Light', - dark: 'Dark', - }, - automaticallyCacheSongs: 'Automatically cache songs', - clearSongsCache: 'Clear Songs Cache', - cacheCount: 'Cached {song} songs ({size})', - showLyricsTranslation: 'Show lyrics translation', - showPlaylistsByAppleMusic: 'Show playlists by Apple Music', - enableDiscordRichPresence: 'Enable Discord Rich Presence', - enableGlobalShortcut: 'Enable Global Shortcut', - showLibraryDefault: 'Show Library after App Launched', - subTitleDefault: 'Show Alias for Subtitle by default', - enableReversedMode: 'Enable Reversed Mode (Experimental)', - enableCustomTitlebar: 'Enable custom title bar (Need restart)', - lyricsBackground: { - text: 'Show Lyrics Background', - off: 'Off', - on: 'On', - dynamic: 'Dynamic (High GPU usage)', - }, - closeAppOption: { - text: 'Close App...', - ask: 'Ask', - exit: 'Exit', - minimizeToTray: 'Minimize to tray', - }, - }, - contextMenu: { - play: 'Play', - addToQueue: 'Add to queue', - saveToMyLikedSongs: 'Save to my Liked Songs', - removeFromMyLikedSongs: 'Remove from my Liked Songs', - saveToLibrary: 'Save to library', - removeFromLibrary: 'Remove from library', - addToPlaylist: 'Add to playlist', - searchInPlaylist: 'Search in playlist', - copyUrl: 'Copy URL', - openInBrowser: 'Open in Browser', - allPlaylists: 'All Playlists', - minePlaylists: 'My Playlists', - likedPlaylists: 'Liked Playlists', - }, - toast: { - savedToPlaylist: 'Saved to playlist', - removedFromPlaylist: 'Removed from playlist', - savedToMyLikedSongs: 'Saved to my Liked Songs', - removedFromMyLikedSongs: 'Removed from my Liked Songs', - copied: 'Copied', - copyFailed: 'Copy failed: ', - needToLogin: 'Need to log into netease account', - }, -}; diff --git a/src/locale/lang/tr.js b/src/locale/lang/tr.js deleted file mode 100644 index 66b3b6e..0000000 --- a/src/locale/lang/tr.js +++ /dev/null @@ -1,179 +0,0 @@ -export default { - common: { - play: 'OYNAT', - songs: 'Müzikler', - }, - nav: { - home: 'Anasayfa', - explore: 'Keşfet', - library: 'Kitaplık', - search: 'Ara', - github: 'GitHub Repo', - }, - footer: { - settings: 'Ayarlar', - }, - home: { - recommendPlaylist: 'Önerilen Çalma Listeier', - recommendArtist: 'Önerilen Sanatçılar', - newAlbum: 'Son Çıkan Albümler', - seeMore: 'DAHA FAZLASI', - charts: 'Listeler', - }, - library: { - sLibrary: "'in Kütüphanesi", - likedSongs: 'Beğenilen Müzikler', - sLikedSongs: "'in Beğendiği Müzikler", - playlists: 'Çalma Listeleri', - albums: 'Albümler', - artists: 'Sanatçılar', - mvs: 'MVs', - newPlayList: 'Yeni Çalma Listesi', - userProfileMenu: { - settings: 'Ayarlar', - logout: 'Çıkış Yap', - }, - }, - explore: { - explore: 'Keşfet', - loadMore: 'Daha Fazlası', - }, - artist: { - latestRelease: 'Son Çıkanlar', - popularSongs: 'Popüler Müzikler', - showMore: 'Daha Fazlası', - showLess: 'Daha Azı', - EPsSingles: 'EPs & Singles', - albums: 'Albümler', - withAlbums: 'Albümler', - artist: 'Sanatçı', - videos: 'Müzik Videoları', - following: 'Takip Ediyor', - follow: 'Takip Et', - }, - album: { - released: 'Yayınlandı', - }, - playlist: { - playlist: 'Çalma Listeleri', - updatedAt: 'Tarihinde Güncellendş', - search: 'Çalma Listesinde Ara', - }, - login: { - accessToAll: 'Tüm verilere eriş', - loginText: "Netease'e giriş yap", - search: 'Hesap ara', - readonly: 'Sadece halka açık verilere erişir', - usernameLogin: 'Kullanıcı adı giriş', - searchHolder: 'Hesabının kullanıcı adı', - enterTip: "Aramak için 'enter'e basınız", - choose: 'Hesabını seç', - confirm: 'Onayla', - countryCode: 'Ülke kodu', - phone: 'Telefon', - email: 'Email adresi', - password: 'Şifre', - login: 'Giriş Yap', - loginWithEmail: 'Email ile giriş yap', - loginWithPhone: 'Phone ile giriş yap', - notice: `YesPlayMusic hesabınızın hiçbir bilgisini kaydetmeyeceğine dair söz veriyor
- Şifren MD5 şifreleme ile yerel olarak şifrelenir ve daha sonra NetEase Müzik API'sine gönderilir
- YesPlayMusic, NetEase Music'in resmi websitesi değildir, lütfen hesap bilgilerinizi girmeden önce dikkatlice düşününüz. Aynı zamanda, Kendi NetEase Musix API'nızı host etmek için YesPlayMusic'in GitHub Repo'suna gidebilirsiniz.`, - noticeElectron: `YesPlayMusic hesabınızın hiçbir bilgisini kaydetmeyeceğine dair söz veriyor
- Şifren MD5 şifreleme ile yerel olarak şifrelenir ve daha sonra NetEase Müzik API'sine gönderilir
`, - }, - mv: { - moreVideo: 'Daha Fazla Video', - }, - next: { - nowPlaying: 'Şuan çalıyor', - nextUp: 'Sıradaki', - }, - player: { - like: 'Beğen', - previous: 'Önceki Müzik', - next: 'Sonraki Müzik', - repeat: 'Tekrarla', - repeatTrack: 'Parçayı Tekrarla', - shuffle: 'Karıştır', - play: 'Oynat', - pause: 'Durdur', - mute: 'Sesi kapat', - nextUp: 'Sıradaki', - }, - modal: { - close: 'Kapat', - }, - search: { - artist: 'Sanatçılar', - album: 'Albümler', - song: 'Müzikler', - mv: 'Müzik Videoları', - playlist: 'Çalma Listeleri', - noResult: 'Sonuç Bulunamadı', - searchFor: 'Search for', - }, - settings: { - settings: 'Ayarlar', - logout: 'ÇIKIŞ YAP', - language: 'Diller', - musicQuality: { - text: 'Müzik Kalitesi', - low: 'Düşük', - medium: 'Orta', - high: 'Yüksek', - lossless: 'Kaliteli', - }, - cacheLimit: { - text: 'Şarkılar Önbellek sınırı', - none: 'Yok', - }, - lyricFontSize: { - text: 'Şarkı Sözleri Yazı Boyutu', - small: 'Küçük', - medium: 'Orta', - large: 'Büyük(Varsayılan)', - xlarge: 'Çok-Büyük', - }, - deviceSelector: 'Ses Çıkış Cihazı', - permissionRequired: 'Mikrofon izni gerekiyor', - appearance: { - text: 'Görünüş', - auto: 'Otomatik', - light: 'Aydınlık', - dark: 'Karanlık', - }, - automaticallyCacheSongs: 'Müzikleri otomatik çerezle', - clearSongsCache: 'Müzik çerezlerini temizle', - cacheCount: 'Çerezlenen {song} Müzikler ({size})', - showLyricsTranslation: 'Müzik sözlerinin çevirilerini göster', - showPlaylistsByAppleMusic: "Apple Music'in Çalma Listelerini Göster", - enableDiscordRichPresence: 'Discord gösterimini aktifleştir', - showLibraryDefault: 'Kitaplık Varsayılanını göster', - subTitleDefault: 'Show Alias for Subtitle by default', - enableReversedMode: 'Enable Reversed Mode (Experimental)', - enableCustomTitlebar: 'Enable custom title bar (Need restart)', - lyricsBackground: { - text: 'Şarkı Sözleri Arka Planını Göster', - off: 'kapalı', - on: 'açık', - dynamic: 'dinamik(Yüksek GPU kullanımı)', - }, - closeAppOption: { - text: 'Close App...', - ask: 'Ask', - exit: 'Exit', - minimizeToTray: 'Küçült', - }, - }, - contextMenu: { - play: 'Oynat', - addToQueue: 'Sonrakini Oynat', - saveToMyLikedSongs: 'Beğendiğim Müziklere Kaydet', - removeFromMyLikedMüzikler: 'Beğendiğim Müziklerden Kaldır', - }, - toast: { - savedToMyLikedSongs: 'Beğendiğim Müziklere Kaydet', - removedFromMyLikedSongs: 'Beğendiğim Müziklerden Kaldır', - }, -}; diff --git a/src/locale/lang/zh-CN.js b/src/locale/lang/zh-CN.js deleted file mode 100644 index 99bdf43..0000000 --- a/src/locale/lang/zh-CN.js +++ /dev/null @@ -1,200 +0,0 @@ -export default { - common: { - play: '播放', - songs: '首歌', - }, - nav: { - home: '首页', - explore: '发现', - library: '音乐库', - search: '搜索', - github: 'GitHub 仓库', - }, - home: { - recommendPlaylist: '推荐歌单', - recommendArtist: '推荐艺人', - newAlbum: '新专速递', - seeMore: '查看全部', - charts: '排行榜', - }, - library: { - sLibrary: '的音乐库', - likedSongs: '我喜欢的音乐', - sLikedSongs: '喜欢的音乐', - playlists: '歌单', - albums: '专辑', - artists: '艺人', - mvs: 'MV', - newPlayList: '新建歌单', - userProfileMenu: { - settings: '设置', - logout: '登出', - }, - }, - explore: { - explore: '发现', - loadMore: '加载更多', - }, - artist: { - latestRelease: '最新发布', - latestMV: '最新 MV', - popularSongs: '热门歌曲', - showMore: '显示更多', - showLess: '收起', - EPsSingles: 'EP 和单曲', - albums: '专辑', - withAlbums: '张专辑', - artist: '艺人', - videos: '个 MV', - following: '正在关注', - follow: '关注', - similarArtists: '相似艺人', - artistDesc: '艺术家介绍', - }, - album: { - released: '发行于', - albumDesc: '专辑介绍', - }, - playlist: { - playlist: '歌单', - updatedAt: '最后更新于', - search: '搜索歌单音乐', - }, - login: { - accessToAll: '可访问全部数据', - loginText: '登录网易云账号', - search: '搜索网易云账号', - readonly: '只能读取账号公开数据', - usernameLogin: '用户名登录', - searchHolder: '请输入你的网易云用户名', - enterTip: '按 Enter 搜索', - choose: '在列表中选中你的账号', - confirm: '确认', - countryCode: '国际区号', - phone: '手机号', - email: '邮箱', - password: '密码', - login: '登录', - loginWithEmail: '邮箱登录', - loginWithPhone: '手机号登录', - notice: `YesPlayMusic 承诺不会保存你的任何账号信息到云端。
- 你的密码会在本地进行 MD5 加密后再传输到网易云 API。
- YesPlayMusic 并非网易云官方网站,输入账号信息前请慎重考虑。 你也可以前往 - YesPlayMusic 的 GitHub 源代码仓库 - 自行构建并使用自托管的网易云 API。`, - noticeElectron: `你的密码会在本地进行 MD5 加密后再传输到网易云 API。
- YesPlayMusic 不会传输你的账号数据到任何非网易云音乐官方的服务器。
`, - }, - mv: { - moreVideo: '更多视频', - }, - next: { - nowPlaying: '正在播放', - nextUp: '即将播放', - }, - player: { - like: '喜欢', - previous: '上一首', - next: '下一首', - repeat: '循环播放', - repeatTrack: '单曲循环', - shuffle: '随机播放', - reversed: '倒序播放', - play: '播放', - pause: '暂停', - mute: '静音', - nextUp: '播放列表', - }, - modal: { - close: '关闭', - }, - search: { - artist: '艺人', - album: '专辑', - song: '歌曲', - mv: '视频', - playlist: '歌单', - noResult: '暂无结果', - searchFor: '搜索', - }, - settings: { - settings: '设置', - logout: '登出', - language: '语言', - musicQuality: { - text: '音质选择', - low: '普通', - medium: '较高', - high: '极高', - lossless: '无损', - }, - cacheLimit: { - text: '歌曲缓存上限', - none: '无限制', - }, - lyricFontSize: { - text: '歌词字体大小', - small: '小', - medium: '中', - large: '大(默认)', - xlarge: '超大', - }, - deviceSelector: '音频输出设备', - permissionRequired: '需要麦克风权限', - appearance: { - text: '外观', - auto: '自动', - light: '浅色', - dark: '深色', - }, - automaticallyCacheSongs: '自动缓存歌曲', - clearSongsCache: '清除歌曲缓存', - cacheCount: '已缓存 {song} 首 ({size})', - showLyricsTranslation: '显示歌词翻译', - showPlaylistsByAppleMusic: '首页显示来自 Apple Music 的歌单', - enableDiscordRichPresence: '启用 Discord Rich Presence', - enableGlobalShortcut: '启用全局快捷键', - showLibraryDefault: '启动后显示音乐库', - subTitleDefault: '副标题使用别名', - enableReversedMode: '启用倒序播放功能 (实验性功能)', - enableCustomTitlebar: '启用自定义标题栏 (重启后生效)', - lyricsBackground: { - text: '显示歌词背景', - off: '关闭', - on: '打开', - dynamic: '动态(GPU 占用较高)', - }, - closeAppOption: { - text: '关闭主面板时...', - ask: '询问', - exit: '退出', - minimizeToTray: '最小化到托盘', - }, - }, - contextMenu: { - play: '播放', - addToQueue: '添加到队列', - saveToMyLikedSongs: '添加到我喜欢的音乐', - removeFromMyLikedSongs: '从喜欢的音乐中删除', - saveToLibrary: '保存到音乐库', - removeFromLibrary: '从音乐库删除', - addToPlaylist: '添加到歌单', - searchInPlaylist: '歌单内搜索', - copyUrl: '复制链接', - openInBrowser: '在浏览器中打开', - allPlaylists: '全部歌单', - minePlaylists: '创建的歌单', - likedPlaylists: '收藏的歌单', - }, - toast: { - savedToPlaylist: '已添加到歌单', - removedFromPlaylist: '已从歌单中删除', - savedToMyLikedSongs: '已添加到我喜欢的音乐', - removedFromMyLikedSongs: '已从喜欢的音乐中删除', - copied: '已复制', - copyFailed: '复制失败:', - needToLogin: '此操作需要登录网易云帐号', - }, -}; diff --git a/src/locale/lang/zh-TW.js b/src/locale/lang/zh-TW.js deleted file mode 100644 index 088d815..0000000 --- a/src/locale/lang/zh-TW.js +++ /dev/null @@ -1,197 +0,0 @@ -export default { - common: { - play: '播放', - songs: '首歌', - }, - nav: { - home: '首頁', - explore: '發現', - library: '音樂庫', - search: '搜尋', - github: 'GitHub Repo', - }, - home: { - recommendPlaylist: '推薦歌單', - recommendArtist: '推薦藝人', - newAlbum: '新曲上架', - seeMore: '查看全部', - charts: '排行榜', - }, - library: { - sLibrary: '的音樂庫', - likedSongs: '我喜歡的音樂', - sLikedSongs: '喜歡的音樂', - playlists: '歌單', - albums: '專輯', - artists: '藝人', - mvs: 'MV', - newPlayList: '新增歌單', - userProfileMenu: { - settings: '設定', - logout: '登出', - }, - }, - explore: { - explore: '探索', - loadMore: '載入更多', - }, - artist: { - latestRelease: '最新發佈', - popularSongs: '熱門歌曲', - showMore: '顯示更多', - showLess: '收起', - EPsSingles: 'EP 和單曲', - albums: '專輯', - withAlbums: '張專輯', - artist: '藝人', - videos: '個 MV', - following: '正在追蹤', - follow: '追蹤', - }, - album: { - released: '發行於', - }, - playlist: { - playlist: '歌單', - updatedAt: '最後更新於', - search: '搜尋歌單內音樂', - }, - login: { - accessToAll: '可存取全部資料', - loginText: '登入網易雲帳戶', - search: '搜尋網易雲帳戶', - readonly: '只能讀取帳戶公開資料', - usernameLogin: '使用者名稱登入', - searchHolder: '請輸入您的網易雲使用者名稱', - enterTip: '按 Enter 搜尋', - choose: '在選單中選擇你的帳戶', - confirm: '確認', - countryCode: '國際區碼', - phone: '手機號碼', - email: 'Email', - password: '密碼', - login: '登入', - loginWithEmail: '信箱登入', - loginWithPhone: '手機號碼登入', - notice: `YesPlayMusic 承諾不會保存您的任何帳戶資訊到雲端。
- 您的密碼會在本地進行 MD5 加密後再傳輸到網易雲 API。
- YesPlayMusic 並非網易雲官方網站,輸入帳戶資訊前請慎重考慮。 您也可以前往 - YesPlayMusic 的 GitHub 原始碼 Repo - 自行編譯並使用自託管的網易雲 API。`, - noticeElectron: `您的密碼會在本地進行 MD5 加密後再傳輸到網易雲 API。
- YesPlayMusic 不會傳輸你的帳戶資料到任何非網易雲音樂官方的伺服器。
`, - }, - mv: { - moreVideo: '更多影片', - }, - next: { - nowPlaying: '正在播放', - nextUp: '即將播放', - }, - player: { - like: '喜歡', - previous: '上一首', - next: '下一首', - repeat: '循環播放', - repeatTrack: '單曲循環', - shuffle: '隨機播放', - reversed: '倒序播放', - play: '播放', - pause: '暫停', - mute: '靜音', - nextUp: '播放清單', - }, - modal: { - close: '關閉', - }, - search: { - artist: '藝人', - album: '專輯', - song: '歌曲', - mv: '影片', - playlist: '歌單', - noResult: '暫無結果', - searchFor: '搜尋', - }, - settings: { - settings: '設定', - logout: '登出', - language: '語言', - musicQuality: { - text: '音質選擇', - low: '普通', - medium: '較高', - high: '極高', - lossless: '無損', - }, - cacheLimit: { - text: '歌曲快取上限', - none: '無限制', - }, - lyricFontSize: { - text: '歌詞字體大小', - small: '小', - medium: '中', - large: '大(預設)', - xlarge: '超大', - }, - deviceSelector: '音訊輸出裝置', - permissionRequired: '需要麥克風權限', - appearance: { - text: '外觀', - auto: '自動', - light: '淺色', - dark: '深色', - }, - automaticallyCacheSongs: '自動快取歌曲', - clearSongsCache: '清除歌曲快取', - cacheCount: '已快取 {song} 首 ({size})', - showLyricsTranslation: '顯示歌詞翻譯', - minimizeToTray: '最小化到工作列角落', - showPlaylistsByAppleMusic: '首頁顯示來自 Apple Music 的歌單', - enableDiscordRichPresence: '啟用 Discord Rich Presence', - enableGlobalShortcut: '啟用全域快捷鍵', - showLibraryDefault: '啟動後顯示音樂庫', - subTitleDefault: '副標題使用別名', - enableReversedMode: '啟用倒序播放功能 (實驗性功能)', - enableCustomTitlebar: '啟用自訂標題列(重新啟動後生效)', - lyricsBackground: { - text: '顯示歌詞背景', - off: '關閉', - on: '開啟', - dynamic: '動態(GPU 占用較高)', - }, - closeAppOption: { - text: '關閉主面板時...', - ask: '詢問', - exit: '退出', - minimizeToTray: '最小化到工作列角落', - }, - }, - contextMenu: { - play: '播放', - addToQueue: '新增至佇列', - saveToMyLikedSongs: '新增至我喜歡的音樂', - removeFromMyLikedSongs: '從喜歡的音樂中刪除', - saveToLibrary: '新增至音樂庫', - removeFromLibrary: '從音樂庫刪除', - addToPlaylist: '新增至歌單', - searchInPlaylist: '歌單內搜尋', - openInBrowser: '在瀏覽器中打開', - copyUrl: '複製連結', - allPlaylists: '全部歌單', - minePlaylists: '我建立的歌單', - likedPlaylists: '收藏的歌單', - }, - toast: { - savedToPlaylist: '已新增至歌單', - removedFromPlaylist: '已從歌單中刪除', - savedToMyLikedSongs: '已新增至我喜歡的音樂', - removedFromMyLikedSongs: '已從喜歡的音樂中刪除', - copied: '已複製', - copyFailed: '複製失敗:', - needToLogin: '此動作需要登入網易雲帳戶', - }, -}; diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 3903764..0000000 --- a/src/main.js +++ /dev/null @@ -1,45 +0,0 @@ -import Vue from 'vue'; -import VueAnalytics from 'vue-analytics'; -import App from './App.vue'; -import router from './router'; -import store from './store'; -import i18n from '@/locale'; -import '@/assets/icons'; -import '@/utils/filters'; -import './registerServiceWorker'; -import { dailyTask } from '@/utils/common'; -import '@/assets/css/global.scss'; -import NProgress from 'nprogress'; -import '@/assets/css/nprogress.css'; - -window.resetApp = () => { - localStorage.clear(); - indexedDB.deleteDatabase('yesplaymusic'); - document.cookie.split(';').forEach(function (c) { - document.cookie = c - .replace(/^ +/, '') - .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/'); - }); - return '已重置应用,请刷新页面(按Ctrl/Command + R)'; -}; -console.log( - '如出现问题,可尝试在本页输入 %cresetApp()%c 然后按回车重置应用。', - 'background: #eaeffd;color:#335eea;padding: 4px 6px;border-radius:3px;', - 'background:unset;color:unset;' -); - -Vue.use(VueAnalytics, { - id: 'UA-180189423-1', - router, -}); -Vue.config.productionTip = false; - -NProgress.configure({ showSpinner: false, trickleSpeed: 100 }); -dailyTask(); - -new Vue({ - i18n, - store, - router, - render: h => h(App), -}).$mount('#app'); diff --git a/src/ncmModDef.js b/src/ncmModDef.js deleted file mode 100644 index 043ce28..0000000 --- a/src/ncmModDef.js +++ /dev/null @@ -1,617 +0,0 @@ -module.exports = [ - { - identifier: 'user_update', - route: '/user/update', - module: require('NeteaseCloudMusicApi/module/user_update'), - }, - { - identifier: 'user_subcount', - route: '/user/subcount', - module: require('NeteaseCloudMusicApi/module/user_subcount'), - }, - { - identifier: 'user_replacephone', - route: '/user/replacephone', - module: require('NeteaseCloudMusicApi/module/user_replacephone'), - }, - { - identifier: 'user_record', - route: '/user/record', - module: require('NeteaseCloudMusicApi/module/user_record'), - }, - { - identifier: 'user_playlist', - route: '/user/playlist', - module: require('NeteaseCloudMusicApi/module/user_playlist'), - }, - { - identifier: 'user_level', - route: '/user/level', - module: require('NeteaseCloudMusicApi/module/user_level'), - }, - { - identifier: 'user_follows', - route: '/user/follows', - module: require('NeteaseCloudMusicApi/module/user_follows'), - }, - { - identifier: 'user_followeds', - route: '/user/followeds', - module: require('NeteaseCloudMusicApi/module/user_followeds'), - }, - { - identifier: 'user_event', - route: '/user/event', - module: require('NeteaseCloudMusicApi/module/user_event'), - }, - { - identifier: 'user_dj', - route: '/user/dj', - module: require('NeteaseCloudMusicApi/module/user_dj'), - }, - { - identifier: 'user_detail', - route: '/user/detail', - module: require('NeteaseCloudMusicApi/module/user_detail'), - }, - { - identifier: 'user_cloud_detail', - route: '/user/cloud/detail', - module: require('NeteaseCloudMusicApi/module/user_cloud_detail'), - }, - { - identifier: 'user_cloud_del', - route: '/user/cloud/del', - module: require('NeteaseCloudMusicApi/module/user_cloud_del'), - }, - { - identifier: 'user_cloud', - route: '/user/cloud', - module: require('NeteaseCloudMusicApi/module/user_cloud'), - }, - { - identifier: 'user_bindingcellphone', - route: '/user/bindingcellphone', - module: require('NeteaseCloudMusicApi/module/user_bindingcellphone'), - }, - { - identifier: 'user_binding', - route: '/user/binding', - module: require('NeteaseCloudMusicApi/module/user_binding'), - }, - { - identifier: 'user_audio', - route: '/user/audio', - module: require('NeteaseCloudMusicApi/module/user_audio'), - }, - { - identifier: 'user_account', - route: '/user/account', - module: require('NeteaseCloudMusicApi/module/user_account'), - }, - { - identifier: 'toplist_detail', - route: '/toplist/detail', - module: require('NeteaseCloudMusicApi/module/toplist_detail'), - }, - { - identifier: 'toplist_artist', - route: '/toplist/artist', - module: require('NeteaseCloudMusicApi/module/toplist_artist'), - }, - { - identifier: 'toplist', - route: '/toplist', - module: require('NeteaseCloudMusicApi/module/toplist'), - }, - { - identifier: 'topic_sublist', - route: '/topic/sublist', - module: require('NeteaseCloudMusicApi/module/topic_sublist'), - }, - { - identifier: 'topic_detail_event_hot', - route: '/topic/detail/event/hot', - module: require('NeteaseCloudMusicApi/module/topic_detail_event_hot'), - }, - { - identifier: 'topic_detail', - route: '/topic/detail', - module: require('NeteaseCloudMusicApi/module/topic_detail'), - }, - { - identifier: 'top_song', - route: '/top/song', - module: require('NeteaseCloudMusicApi/module/top_song'), - }, - { - identifier: 'top_playlist_highquality', - route: '/top/playlist/highquality', - module: require('NeteaseCloudMusicApi/module/top_playlist_highquality'), - }, - { - identifier: 'top_playlist', - route: '/top/playlist', - module: require('NeteaseCloudMusicApi/module/top_playlist'), - }, - { - identifier: 'top_mv', - route: '/top/mv', - module: require('NeteaseCloudMusicApi/module/top_mv'), - }, - { - identifier: 'top_list', - route: '/top/list', - module: require('NeteaseCloudMusicApi/module/top_list'), - }, - { - identifier: 'top_artists', - route: '/top/artists', - module: require('NeteaseCloudMusicApi/module/top_artists'), - }, - { - identifier: 'top_album', - route: '/top/album', - module: require('NeteaseCloudMusicApi/module/top_album'), - }, - { - identifier: 'song_url', - route: '/song/url', - module: require('NeteaseCloudMusicApi/module/song_url'), - }, - { - identifier: 'song_download_url', - route: '/song/download/url', - module: require('NeteaseCloudMusicApi/module/song_download_url'), - }, - { - identifier: 'song_detail', - route: '/song/detail', - module: require('NeteaseCloudMusicApi/module/song_detail'), - }, - { - identifier: 'simi_mv', - route: '/simi/mv', - module: require('NeteaseCloudMusicApi/module/simi_mv'), - }, - { - identifier: 'simi_artist', - route: '/simi/artist', - module: require('NeteaseCloudMusicApi/module/simi_artist'), - }, - { - identifier: 'search', - route: '/search', - module: require('NeteaseCloudMusicApi/module/search'), - }, - { - identifier: 'scrobble', - route: '/scrobble', - module: require('NeteaseCloudMusicApi/module/scrobble'), - }, - { - identifier: 'recommend_songs', - route: '/recommend/songs', - module: require('NeteaseCloudMusicApi/module/recommend_songs'), - }, - { - identifier: 'recommend_resource', - route: '/recommend/resource', - module: require('NeteaseCloudMusicApi/module/recommend_resource'), - }, - { - identifier: 'playmode_intelligence_list', - route: '/playmode/intelligence/list', - module: require('NeteaseCloudMusicApi/module/playmode_intelligence_list'), - }, - { - identifier: 'playlist_video_recent', - route: '/playlist/video/recent', - module: require('NeteaseCloudMusicApi/module/playlist_video_recent'), - }, - { - identifier: 'playlist_update', - route: '/playlist/update', - module: require('NeteaseCloudMusicApi/module/playlist_update'), - }, - { - identifier: 'playlist_tracks', - route: '/playlist/tracks', - module: require('NeteaseCloudMusicApi/module/playlist_tracks'), - }, - { - identifier: 'playlist_track_delete', - route: '/playlist/track/delete', - module: require('NeteaseCloudMusicApi/module/playlist_track_delete'), - }, - { - identifier: 'playlist_track_all', - route: '/playlist/track/all', - module: require('NeteaseCloudMusicApi/module/playlist_track_all'), - }, - { - identifier: 'playlist_track_add', - route: '/playlist/track/add', - module: require('NeteaseCloudMusicApi/module/playlist_track_add'), - }, - { - identifier: 'playlist_tags_update', - route: '/playlist/tags/update', - module: require('NeteaseCloudMusicApi/module/playlist_tags_update'), - }, - { - identifier: 'playlist_subscribers', - route: '/playlist/subscribers', - module: require('NeteaseCloudMusicApi/module/playlist_subscribers'), - }, - { - identifier: 'playlist_subscribe', - route: '/playlist/subscribe', - module: require('NeteaseCloudMusicApi/module/playlist_subscribe'), - }, - { - identifier: 'playlist_privacy', - route: '/playlist/privacy', - module: require('NeteaseCloudMusicApi/module/playlist_privacy'), - }, - { - identifier: 'playlist_order_update', - route: '/playlist/order/update', - module: require('NeteaseCloudMusicApi/module/playlist_order_update'), - }, - { - identifier: 'playlist_name_update', - route: '/playlist/name/update', - module: require('NeteaseCloudMusicApi/module/playlist_name_update'), - }, - { - identifier: 'playlist_mylike', - route: '/playlist/mylike', - module: require('NeteaseCloudMusicApi/module/playlist_mylike'), - }, - { - identifier: 'playlist_hot', - route: '/playlist/hot', - module: require('NeteaseCloudMusicApi/module/playlist_hot'), - }, - { - identifier: 'playlist_highquality_tags', - route: '/playlist/highquality/tags', - module: require('NeteaseCloudMusicApi/module/playlist_highquality_tags'), - }, - { - identifier: 'playlist_detail_dynamic', - route: '/playlist/detail/dynamic', - module: require('NeteaseCloudMusicApi/module/playlist_detail_dynamic'), - }, - { - identifier: 'playlist_detail', - route: '/playlist/detail', - module: require('NeteaseCloudMusicApi/module/playlist_detail'), - }, - { - identifier: 'playlist_desc_update', - route: '/playlist/desc/update', - module: require('NeteaseCloudMusicApi/module/playlist_desc_update'), - }, - { - identifier: 'playlist_delete', - route: '/playlist/delete', - module: require('NeteaseCloudMusicApi/module/playlist_delete'), - }, - { - identifier: 'playlist_create', - route: '/playlist/create', - module: require('NeteaseCloudMusicApi/module/playlist_create'), - }, - { - identifier: 'playlist_cover_update', - route: '/playlist/cover/update', - module: require('NeteaseCloudMusicApi/module/playlist_cover_update'), - }, - { - identifier: 'playlist_catlist', - route: '/playlist/catlist', - module: require('NeteaseCloudMusicApi/module/playlist_catlist'), - }, - { - identifier: 'personalized', - route: '/personalized', - module: require('NeteaseCloudMusicApi/module/personalized'), - }, - { - identifier: 'personal_fm', - route: '/personal_fm', - module: require('NeteaseCloudMusicApi/module/personal_fm'), - }, - { - identifier: 'mv_url', - route: '/mv/url', - module: require('NeteaseCloudMusicApi/module/mv_url'), - }, - { - identifier: 'mv_sublist', - route: '/mv/sublist', - module: require('NeteaseCloudMusicApi/module/mv_sublist'), - }, - { - identifier: 'mv_sub', - route: '/mv/sub', - module: require('NeteaseCloudMusicApi/module/mv_sub'), - }, - { - identifier: 'mv_first', - route: '/mv/first', - module: require('NeteaseCloudMusicApi/module/mv_first'), - }, - { - identifier: 'mv_exclusive_rcmd', - route: '/mv/exclusive/rcmd', - module: require('NeteaseCloudMusicApi/module/mv_exclusive_rcmd'), - }, - { - identifier: 'mv_detail_info', - route: '/mv/detail/info', - module: require('NeteaseCloudMusicApi/module/mv_detail_info'), - }, - { - identifier: 'mv_detail', - route: '/mv/detail', - module: require('NeteaseCloudMusicApi/module/mv_detail'), - }, - { - identifier: 'mv_all', - route: '/mv/all', - module: require('NeteaseCloudMusicApi/module/mv_all'), - }, - { - identifier: 'lyric', - route: '/lyric', - module: require('NeteaseCloudMusicApi/module/lyric'), - }, - { - identifier: 'logout', - route: '/logout', - module: require('NeteaseCloudMusicApi/module/logout'), - }, - { - identifier: 'login_status', - route: '/login/status', - module: require('NeteaseCloudMusicApi/module/login_status'), - }, - { - identifier: 'login_refresh', - route: '/login/refresh', - module: require('NeteaseCloudMusicApi/module/login_refresh'), - }, - { - identifier: 'login_qr_key', - route: '/login/qr/key', - module: require('NeteaseCloudMusicApi/module/login_qr_key'), - }, - { - identifier: 'login_qr_create', - route: '/login/qr/create', - module: require('NeteaseCloudMusicApi/module/login_qr_create'), - }, - { - identifier: 'login_qr_check', - route: '/login/qr/check', - module: require('NeteaseCloudMusicApi/module/login_qr_check'), - }, - { - identifier: 'login_cellphone', - route: '/login/cellphone', - module: require('NeteaseCloudMusicApi/module/login_cellphone'), - }, - { - identifier: 'login', - route: '/login', - module: require('NeteaseCloudMusicApi/module/login'), - }, - { - identifier: 'likelist', - route: '/likelist', - module: require('NeteaseCloudMusicApi/module/likelist'), - }, - { - identifier: 'like', - route: '/like', - module: require('NeteaseCloudMusicApi/module/like'), - }, - { - identifier: 'follow', - route: '/follow', - module: require('NeteaseCloudMusicApi/module/follow'), - }, - { - identifier: 'fm_trash', - route: '/fm_trash', - module: require('NeteaseCloudMusicApi/module/fm_trash'), - }, - { - identifier: 'daily_signin', - route: '/daily_signin', - module: require('NeteaseCloudMusicApi/module/daily_signin'), - }, - { - identifier: 'cloudsearch', - route: '/cloudsearch', - module: require('NeteaseCloudMusicApi/module/cloudsearch'), - }, - { - identifier: 'cloud', - route: '/cloud', - module: require('NeteaseCloudMusicApi/module/cloud'), - }, - { - identifier: 'check_music', - route: '/check/music', - module: require('NeteaseCloudMusicApi/module/check_music'), - }, - { - identifier: 'cellphone_existence_check', - route: '/cellphone/existence/check', - module: require('NeteaseCloudMusicApi/module/cellphone_existence_check'), - }, - { - identifier: 'captcha_verify', - route: '/captcha/verify', - module: require('NeteaseCloudMusicApi/module/captcha_verify'), - }, - { - identifier: 'captcha_sent', - route: '/captcha/sent', - module: require('NeteaseCloudMusicApi/module/captcha_sent'), - }, - { - identifier: 'calendar', - route: '/calendar', - module: require('NeteaseCloudMusicApi/module/calendar'), - }, - { - identifier: 'batch', - route: '/batch', - module: require('NeteaseCloudMusicApi/module/batch'), - }, - { - identifier: 'banner', - route: '/banner', - module: require('NeteaseCloudMusicApi/module/banner'), - }, - { - identifier: 'avatar_upload', - route: '/avatar/upload', - module: require('NeteaseCloudMusicApi/module/avatar_upload'), - }, - { - identifier: 'audio_match', - route: '/audio/match', - module: require('NeteaseCloudMusicApi/module/audio_match'), - }, - { - identifier: 'artists', - route: '/artists', - module: require('NeteaseCloudMusicApi/module/artists'), - }, - { - identifier: 'artist_video', - route: '/artist/video', - module: require('NeteaseCloudMusicApi/module/artist_video'), - }, - { - identifier: 'artist_top_song', - route: '/artist/top/song', - module: require('NeteaseCloudMusicApi/module/artist_top_song'), - }, - { - identifier: 'artist_sublist', - route: '/artist/sublist', - module: require('NeteaseCloudMusicApi/module/artist_sublist'), - }, - { - identifier: 'artist_sub', - route: '/artist/sub', - module: require('NeteaseCloudMusicApi/module/artist_sub'), - }, - { - identifier: 'artist_songs', - route: '/artist/songs', - module: require('NeteaseCloudMusicApi/module/artist_songs'), - }, - { - identifier: 'artist_new_song', - route: '/artist/new/song', - module: require('NeteaseCloudMusicApi/module/artist_new_song'), - }, - { - identifier: 'artist_new_mv', - route: '/artist/new/mv', - module: require('NeteaseCloudMusicApi/module/artist_new_mv'), - }, - { - identifier: 'artist_mv', - route: '/artist/mv', - module: require('NeteaseCloudMusicApi/module/artist_mv'), - }, - { - identifier: 'artist_list', - route: '/artist/list', - module: require('NeteaseCloudMusicApi/module/artist_list'), - }, - { - identifier: 'artist_fans', - route: '/artist/fans', - module: require('NeteaseCloudMusicApi/module/artist_fans'), - }, - { - identifier: 'artist_detail', - route: '/artist/detail', - module: require('NeteaseCloudMusicApi/module/artist_detail'), - }, - { - identifier: 'artist_desc', - route: '/artist/desc', - module: require('NeteaseCloudMusicApi/module/artist_desc'), - }, - { - identifier: 'artist_album', - route: '/artist/album', - module: require('NeteaseCloudMusicApi/module/artist_album'), - }, - { - identifier: 'album_sublist', - route: '/album/sublist', - module: require('NeteaseCloudMusicApi/module/album_sublist'), - }, - { - identifier: 'album_sub', - route: '/album/sub', - module: require('NeteaseCloudMusicApi/module/album_sub'), - }, - { - identifier: 'album_songsaleboard', - route: '/album/songsaleboard', - module: require('NeteaseCloudMusicApi/module/album_songsaleboard'), - }, - { - identifier: 'album_newest', - route: '/album/newest', - module: require('NeteaseCloudMusicApi/module/album_newest'), - }, - { - identifier: 'album_new', - route: '/album/new', - module: require('NeteaseCloudMusicApi/module/album_new'), - }, - { - identifier: 'album_list_style', - route: '/album/list/style', - module: require('NeteaseCloudMusicApi/module/album_list_style'), - }, - { - identifier: 'album_list', - route: '/album/list', - module: require('NeteaseCloudMusicApi/module/album_list'), - }, - { - identifier: 'album_detail_dynamic', - route: '/album/detail/dynamic', - module: require('NeteaseCloudMusicApi/module/album_detail_dynamic'), - }, - { - identifier: 'album_detail', - route: '/album/detail', - module: require('NeteaseCloudMusicApi/module/album_detail'), - }, - { - identifier: 'album', - route: '/album', - module: require('NeteaseCloudMusicApi/module/album'), - }, - { - identifier: 'activate_init_profile', - route: '/activate/init/profile', - module: require('NeteaseCloudMusicApi/module/activate_init_profile'), - }, -]; diff --git a/src/registerServiceWorker.js b/src/registerServiceWorker.js deleted file mode 100644 index dc27e7c..0000000 --- a/src/registerServiceWorker.js +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint-disable no-console */ - -import { register } from 'register-service-worker'; - -if (!process.env.IS_ELECTRON) { - register(`${process.env.BASE_URL}service-worker.js`, { - ready() { - // console.log( - // "App is being served from cache by a service worker.\n" + - // "For more details, visit https://goo.gl/AFskqB" - // ); - }, - registered() { - // console.log("Service worker has been registered."); - }, - cached() { - // console.log("Content has been cached for offline use."); - }, - updatefound() { - // console.log("New content is downloading."); - }, - updated() { - // console.log("New content is available; please refresh."); - }, - offline() { - // console.log( - // "No internet connection found. App is running in offline mode." - // ); - }, - error(error) { - console.error('Error during service worker registration:', error); - }, - }); -} diff --git a/src/router/index.js b/src/router/index.js deleted file mode 100644 index d38fa2d..0000000 --- a/src/router/index.js +++ /dev/null @@ -1,171 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import { isLooseLoggedIn, isAccountLoggedIn } from '@/utils/auth'; - -Vue.use(VueRouter); -const routes = [ - { - path: '/', - name: 'home', - component: () => import('@/views/home.vue'), - meta: { - keepAlive: true, - savePosition: true, - }, - }, - { - path: '/login', - name: 'login', - component: () => import('@/views/login.vue'), - }, - { - path: '/login/username', - name: 'loginUsername', - component: () => import('@/views/loginUsername.vue'), - }, - { - path: '/login/account', - name: 'loginAccount', - component: () => import('@/views/loginAccount.vue'), - }, - { - path: '/playlist/:id', - name: 'playlist', - component: () => import('@/views/playlist.vue'), - }, - { - path: '/album/:id', - name: 'album', - component: () => import('@/views/album.vue'), - }, - { - path: '/artist/:id', - name: 'artist', - component: () => import('@/views/artist.vue'), - meta: { - keepAlive: true, - savePosition: true, - }, - }, - { - path: '/artist/:id/mv', - name: 'artistMV', - component: () => import('@/views/artistMV.vue'), - meta: { - keepAlive: true, - }, - }, - { - path: '/mv/:id', - name: 'mv', - component: () => import('@/views/mv.vue'), - }, - { - path: '/next', - name: 'next', - component: () => import('@/views/next.vue'), - meta: { - keepAlive: true, - savePosition: true, - }, - }, - { - path: '/search/:keywords?', - name: 'search', - component: () => import('@/views/search.vue'), - meta: { - keepAlive: true, - }, - }, - { - path: '/search/:keywords/:type', - name: 'searchType', - component: () => import('@/views/searchType.vue'), - }, - { - path: '/new-album', - name: 'newAlbum', - component: () => import('@/views/newAlbum.vue'), - }, - { - path: '/explore', - name: 'explore', - component: () => import('@/views/explore.vue'), - meta: { - keepAlive: true, - savePosition: true, - }, - }, - { - path: '/library', - name: 'library', - component: () => import('@/views/library.vue'), - meta: { - requireLogin: true, - keepAlive: true, - savePosition: true, - }, - }, - { - path: '/library/liked-songs', - name: 'likedSongs', - component: () => import('@/views/playlist.vue'), - meta: { - requireLogin: true, - }, - }, - { - path: '/settings', - name: 'settings', - component: () => import('@/views/settings.vue'), - }, - { - path: '/daily/songs', - name: 'dailySongs', - component: () => import('@/views/dailyTracks.vue'), - meta: { - requireAccountLogin: true, - }, - }, - { - path: '/lastfm/callback', - name: 'lastfmCallback', - component: () => import('@/views/lastfmCallback.vue'), - }, -]; - -const router = new VueRouter({ - mode: process.env.IS_ELECTRON ? 'hash' : 'history', - routes, -}); - -const originalPush = VueRouter.prototype.push; -VueRouter.prototype.push = function push(location) { - return originalPush.call(this, location).catch(err => err); -}; - -router.beforeEach((to, from, next) => { - // 需要登录的逻辑 - if (to.meta.requireAccountLogin) { - if (isAccountLoggedIn()) { - next(); - } else { - next({ path: '/login/account' }); - } - } - if (to.meta.requireLogin) { - if (isLooseLoggedIn()) { - next(); - } else { - if (process.env.IS_ELECTRON === true) { - next({ path: '/login/account' }); - } else { - next({ path: '/login' }); - } - } - } else { - next(); - } -}); - -export default router; diff --git a/src/store/actions.js b/src/store/actions.js deleted file mode 100644 index 83c0666..0000000 --- a/src/store/actions.js +++ /dev/null @@ -1,201 +0,0 @@ -// import store, { state, dispatch, commit } from "@/store"; -import { isAccountLoggedIn, isLooseLoggedIn } from '@/utils/auth'; -import { likeATrack } from '@/api/track'; -import { getPlaylistDetail } from '@/api/playlist'; -import { getTrackDetail } from '@/api/track'; -import { - userPlaylist, - userPlayHistory, - userLikedSongsIDs, - likedAlbums, - likedArtists, - likedMVs, - cloudDisk, - userAccount, -} from '@/api/user'; - -export default { - showToast({ state, commit }, text) { - if (state.toast.timer !== null) { - clearTimeout(state.toast.timer); - commit('updateToast', { show: false, text: '', timer: null }); - } - commit('updateToast', { - show: true, - text, - timer: setTimeout(() => { - commit('updateToast', { - show: false, - text: state.toast.text, - timer: null, - }); - }, 3200), - }); - }, - likeATrack({ state, commit, dispatch }, id) { - if (!isAccountLoggedIn()) { - dispatch('showToast', '此操作需要登录网易云账号'); - return; - } - let like = true; - if (state.liked.songs.includes(id)) like = false; - likeATrack({ id, like }) - .then(() => { - if (like === false) { - commit('updateLikedXXX', { - name: 'songs', - data: state.liked.songs.filter(d => d !== id), - }); - } else { - let newLikeSongs = state.liked.songs; - newLikeSongs.push(id); - commit('updateLikedXXX', { - name: 'songs', - data: newLikeSongs, - }); - } - dispatch('fetchLikedSongsWithDetails'); - }) - .catch(() => { - dispatch('showToast', '操作失败,专辑下架或版权锁定'); - }); - }, - fetchLikedSongs: ({ state, commit }) => { - if (!isLooseLoggedIn()) return; - if (isAccountLoggedIn()) { - return userLikedSongsIDs({ uid: state.data.user.userId }).then(result => { - if (result.ids) { - commit('updateLikedXXX', { - name: 'songs', - data: result.ids, - }); - } - }); - } else { - // TODO:搜索ID登录的用户 - } - }, - fetchLikedSongsWithDetails: ({ state, commit }) => { - return getPlaylistDetail(state.data.likedSongPlaylistID, true).then( - result => { - if (result.playlist?.trackIds?.length === 0) { - return new Promise(resolve => { - resolve(); - }); - } - return getTrackDetail( - result.playlist.trackIds - .slice(0, 12) - .map(t => t.id) - .join(',') - ).then(result => { - commit('updateLikedXXX', { - name: 'songsWithDetails', - data: result.songs, - }); - }); - } - ); - }, - fetchLikedPlaylist: ({ state, commit }) => { - if (!isLooseLoggedIn()) return; - if (isAccountLoggedIn()) { - return userPlaylist({ - uid: state.data.user?.userId, - limit: 2000, // 最多只加载2000个歌单(等有用户反馈问题再修) - timestamp: new Date().getTime(), - }).then(result => { - if (result.playlist) { - commit('updateLikedXXX', { - name: 'playlists', - data: result.playlist, - }); - // 更新用户”喜欢的歌曲“歌单ID - commit('updateData', { - key: 'likedSongPlaylistID', - value: result.playlist[0].id, - }); - } - }); - } else { - // TODO:搜索ID登录的用户 - } - }, - fetchLikedAlbums: ({ commit }) => { - if (!isAccountLoggedIn()) return; - return likedAlbums({ limit: 2000 }).then(result => { - if (result.data) { - commit('updateLikedXXX', { - name: 'albums', - data: result.data, - }); - } - }); - }, - fetchLikedArtists: ({ commit }) => { - if (!isAccountLoggedIn()) return; - return likedArtists({ limit: 2000 }).then(result => { - if (result.data) { - commit('updateLikedXXX', { - name: 'artists', - data: result.data, - }); - } - }); - }, - fetchLikedMVs: ({ commit }) => { - if (!isAccountLoggedIn()) return; - return likedMVs({ limit: 1000 }).then(result => { - if (result.data) { - commit('updateLikedXXX', { - name: 'mvs', - data: result.data, - }); - } - }); - }, - fetchCloudDisk: ({ commit }) => { - if (!isAccountLoggedIn()) return; - // FIXME: #1242 - return cloudDisk({ limit: 1000 }).then(result => { - if (result.data) { - commit('updateLikedXXX', { - name: 'cloudDisk', - data: result.data, - }); - } - }); - }, - fetchPlayHistory: ({ state, commit }) => { - if (!isAccountLoggedIn()) return; - return Promise.all([ - userPlayHistory({ uid: state.data.user?.userId, type: 0 }), - userPlayHistory({ uid: state.data.user?.userId, type: 1 }), - ]).then(result => { - const data = {}; - const dataType = { 0: 'allData', 1: 'weekData' }; - if (result[0] && result[1]) { - for (let i = 0; i < result.length; i++) { - const songData = result[i][dataType[i]].map(item => { - const song = item.song; - song.playCount = item.playCount; - return song; - }); - data[[dataType[i]]] = songData; - } - commit('updateLikedXXX', { - name: 'playHistory', - data: data, - }); - } - }); - }, - fetchUserProfile: ({ commit }) => { - if (!isAccountLoggedIn()) return; - return userAccount().then(result => { - if (result.code === 200) { - commit('updateData', { key: 'user', value: result.profile }); - } - }); - }, -}; diff --git a/src/store/index.js b/src/store/index.js deleted file mode 100644 index d4804d6..0000000 --- a/src/store/index.js +++ /dev/null @@ -1,67 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import state from './state'; -import mutations from './mutations'; -import actions from './actions'; -import { changeAppearance } from '@/utils/common'; -import Player from '@/utils/Player'; -// vuex 自定义插件 -import saveToLocalStorage from './plugins/localStorage'; -import { getSendSettingsPlugin } from './plugins/sendSettings'; - -Vue.use(Vuex); - -let plugins = [saveToLocalStorage]; -if (process.env.IS_ELECTRON === true) { - let sendSettings = getSendSettingsPlugin(); - plugins.push(sendSettings); -} -const options = { - state, - mutations, - actions, - plugins, -}; - -const store = new Vuex.Store(options); - -if ([undefined, null].includes(store.state.settings.lang)) { - const defaultLang = 'en'; - const langMapper = new Map() - .set('zh', 'zh-CN') - .set('zh-TW', 'zh-TW') - .set('en', 'en') - .set('tr', 'tr'); - store.state.settings.lang = - langMapper.get( - langMapper.has(navigator.language) - ? navigator.language - : navigator.language.slice(0, 2) - ) || defaultLang; - localStorage.setItem('settings', JSON.stringify(store.state.settings)); -} - -changeAppearance(store.state.settings.appearance); - -window - .matchMedia('(prefers-color-scheme: dark)') - .addEventListener('change', () => { - if (store.state.settings.appearance === 'auto') { - changeAppearance(store.state.settings.appearance); - } - }); - -let player = new Player(); -player = new Proxy(player, { - set(target, prop, val) { - // console.log({ prop, val }); - target[prop] = val; - if (prop === '_howler') return true; - target.saveSelfToLocalStorage(); - target.sendSelfToIpcMain(); - return true; - }, -}); -store.state.player = player; - -export default store; diff --git a/src/store/initLocalStorage.js b/src/store/initLocalStorage.js deleted file mode 100644 index d5b3005..0000000 --- a/src/store/initLocalStorage.js +++ /dev/null @@ -1,52 +0,0 @@ -import { playlistCategories } from '@/utils/staticData'; -import shortcuts from '@/utils/shortcuts'; - -console.debug('[debug][initLocalStorage.js]'); -const enabledPlaylistCategories = playlistCategories - .filter(c => c.enable) - .map(c => c.name); - -let localStorage = { - player: {}, - settings: { - lang: null, - musicLanguage: 'all', - appearance: 'auto', - musicQuality: 320000, - lyricFontSize: 28, - outputDevice: 'default', - showPlaylistsByAppleMusic: true, - enableUnblockNeteaseMusic: true, - automaticallyCacheSongs: true, - cacheLimit: 8192, - enableReversedMode: false, - nyancatStyle: false, - showLyricsTranslation: true, - lyricsBackground: true, - closeAppOption: 'ask', - enableDiscordRichPresence: false, - enableGlobalShortcut: true, - showLibraryDefault: false, - subTitleDefault: false, - linuxEnableCustomTitlebar: false, - enabledPlaylistCategories, - proxyConfig: { - protocol: 'noProxy', - server: '', - port: null, - }, - shortcuts: shortcuts, - }, - data: { - user: {}, - likedSongPlaylistID: 0, - lastRefreshCookieDate: 0, - loginMode: null, - }, -}; - -if (process.env.IS_ELECTRON === true) { - localStorage.settings.automaticallyCacheSongs = true; -} - -export default localStorage; diff --git a/src/store/mutations.js b/src/store/mutations.js deleted file mode 100644 index d6a4b3b..0000000 --- a/src/store/mutations.js +++ /dev/null @@ -1,78 +0,0 @@ -import shortcuts from '@/utils/shortcuts'; -import cloneDeep from 'lodash/cloneDeep'; - -export default { - updateLikedXXX(state, { name, data }) { - state.liked[name] = data; - if (name === 'songs') { - state.player.sendSelfToIpcMain(); - } - }, - changeLang(state, lang) { - state.settings.lang = lang; - }, - changeMusicQuality(state, value) { - state.settings.musicQuality = value; - }, - changeLyricFontSize(state, value) { - state.settings.lyricFontSize = value; - }, - changeOutputDevice(state, deviceId) { - state.settings.outputDevice = deviceId; - }, - updateSettings(state, { key, value }) { - state.settings[key] = value; - }, - updateData(state, { key, value }) { - state.data[key] = value; - }, - togglePlaylistCategory(state, name) { - const index = state.settings.enabledPlaylistCategories.findIndex( - c => c === name - ); - if (index !== -1) { - state.settings.enabledPlaylistCategories = - state.settings.enabledPlaylistCategories.filter(c => c !== name); - } else { - state.settings.enabledPlaylistCategories.push(name); - } - }, - updateToast(state, toast) { - state.toast = toast; - }, - updateModal(state, { modalName, key, value }) { - state.modals[modalName][key] = value; - if (key === 'show') { - // 100ms的延迟是为等待右键菜单blur之后再disableScrolling - value === true - ? setTimeout(() => (state.enableScrolling = false), 100) - : (state.enableScrolling = true); - } - }, - toggleLyrics(state) { - state.showLyrics = !state.showLyrics; - }, - updateDailyTracks(state, dailyTracks) { - state.dailyTracks = dailyTracks; - }, - updateLastfm(state, session) { - state.lastfm = session; - }, - updateShortcut(state, { id, type, shortcut }) { - let newShortcut = state.settings.shortcuts.find(s => s.id === id); - newShortcut[type] = shortcut; - state.settings.shortcuts = state.settings.shortcuts.map(s => { - if (s.id !== id) return s; - return newShortcut; - }); - }, - restoreDefaultShortcuts(state) { - state.settings.shortcuts = cloneDeep(shortcuts); - }, - enableScrolling(state, status = null) { - state.enableScrolling = status ? status : !state.enableScrolling; - }, - updateTitle(state, title) { - state.title = title; - }, -}; diff --git a/src/store/plugins/localStorage.js b/src/store/plugins/localStorage.js deleted file mode 100644 index 9907aa5..0000000 --- a/src/store/plugins/localStorage.js +++ /dev/null @@ -1,7 +0,0 @@ -export default store => { - store.subscribe((mutation, state) => { - // console.log(mutation); - localStorage.setItem('settings', JSON.stringify(state.settings)); - localStorage.setItem('data', JSON.stringify(state.data)); - }); -}; diff --git a/src/store/plugins/sendSettings.js b/src/store/plugins/sendSettings.js deleted file mode 100644 index 3bfe8ad..0000000 --- a/src/store/plugins/sendSettings.js +++ /dev/null @@ -1,11 +0,0 @@ -export function getSendSettingsPlugin() { - const electron = window.require('electron'); - const ipcRenderer = electron.ipcRenderer; - return store => { - store.subscribe((mutation, state) => { - // console.log(mutation); - if (mutation.type !== 'updateSettings') return; - ipcRenderer.send('settings', state.settings); - }); - }; -} diff --git a/src/store/state.js b/src/store/state.js deleted file mode 100644 index 1a3f349..0000000 --- a/src/store/state.js +++ /dev/null @@ -1,50 +0,0 @@ -import initLocalStorage from './initLocalStorage'; -import pkg from '../../package.json'; -import updateApp from '@/utils/updateApp'; - -if (localStorage.getItem('appVersion') === null) { - localStorage.setItem('settings', JSON.stringify(initLocalStorage.settings)); - localStorage.setItem('data', JSON.stringify(initLocalStorage.data)); - localStorage.setItem('appVersion', pkg.version); -} - -updateApp(); - -export default { - showLyrics: false, - enableScrolling: true, - title: 'YesPlayMusic', - liked: { - songs: [], - songsWithDetails: [], // 只有前12首 - playlists: [], - albums: [], - artists: [], - mvs: [], - cloudDisk: [], - }, - contextMenu: { - clickObjectID: 0, - showMenu: false, - }, - toast: { - show: false, - text: '', - timer: null, - }, - modals: { - addTrackToPlaylistModal: { - show: false, - selectedTrackID: 0, - }, - newPlaylistModal: { - show: false, - afterCreateAddTrackID: 0, - }, - }, - dailyTracks: [], - lastfm: JSON.parse(localStorage.getItem('lastfm')) || {}, - player: JSON.parse(localStorage.getItem('player')), - settings: JSON.parse(localStorage.getItem('settings')), - data: JSON.parse(localStorage.getItem('data')), -}; diff --git a/src/utils/Player.js b/src/utils/Player.js deleted file mode 100644 index 908d3e8..0000000 --- a/src/utils/Player.js +++ /dev/null @@ -1,833 +0,0 @@ -import { getTrackDetail, scrobble, getMP3 } from '@/api/track'; -import shuffle from 'lodash/shuffle'; -import { Howler, Howl } from 'howler'; -import { cacheTrackSource, getTrackSource } from '@/utils/db'; -import { getAlbum } from '@/api/album'; -import { getPlaylistDetail, intelligencePlaylist } from '@/api/playlist'; -import { getArtist } from '@/api/artist'; -import { personalFM, fmTrash } from '@/api/others'; -import store from '@/store'; -import { isAccountLoggedIn } from '@/utils/auth'; -import { trackUpdateNowPlaying, trackScrobble } from '@/api/lastfm'; -import { isCreateMpris, isCreateTray } from '@/utils/platform'; - -const electron = - process.env.IS_ELECTRON === true ? window.require('electron') : null; -const ipcRenderer = - process.env.IS_ELECTRON === true ? electron.ipcRenderer : null; -const delay = ms => - new Promise(resolve => { - setTimeout(() => { - resolve(''); - }, ms); - }); -const excludeSaveKeys = [ - '_playing', - '_personalFMLoading', - '_personalFMNextLoading', -]; - -function setTitle(track) { - document.title = track - ? `${track.name} · ${track.ar[0].name} - YesPlayMusic` - : 'YesPlayMusic'; - if (isCreateTray) { - ipcRenderer.send('updateTrayTooltip', document.title); - } - store.commit('updateTitle', document.title); -} - -function setTrayLikeState(isLiked) { - if (isCreateTray) { - ipcRenderer.send('updateTrayLikeState', isLiked); - } -} - -export default class { - constructor() { - // 播放器状态 - this._playing = false; // 是否正在播放中 - this._progress = 0; // 当前播放歌曲的进度 - this._enabled = false; // 是否启用Player - this._repeatMode = 'off'; // off | on | one - this._shuffle = false; // true | false - this._reversed = false; - this._volume = 1; // 0 to 1 - this._volumeBeforeMuted = 1; // 用于保存静音前的音量 - this._personalFMLoading = false; // 是否正在私人FM中加载新的track - this._personalFMNextLoading = false; // 是否正在缓存私人FM的下一首歌曲 - - // 播放信息 - this._list = []; // 播放列表 - this._current = 0; // 当前播放歌曲在播放列表里的index - this._shuffledList = []; // 被随机打乱的播放列表,随机播放模式下会使用此播放列表 - this._shuffledCurrent = 0; // 当前播放歌曲在随机列表里面的index - this._playlistSource = { type: 'album', id: 123 }; // 当前播放列表的信息 - this._currentTrack = { id: 86827685 }; // 当前播放歌曲的详细信息 - this._playNextList = []; // 当这个list不为空时,会优先播放这个list的歌 - this._isPersonalFM = false; // 是否是私人FM模式 - this._personalFMTrack = { id: 0 }; // 私人FM当前歌曲 - this._personalFMNextTrack = { id: 0 }; // 私人FM下一首歌曲信息(为了快速加载下一首) - - /** - * The blob records for cleanup. - * - * @private - * @type {string[]} - */ - this.createdBlobRecords = []; - - // howler (https://github.com/goldfire/howler.js) - this._howler = null; - Object.defineProperty(this, '_howler', { - enumerable: false, - }); - - // init - this._init(); - - window.yesplaymusic = {}; - window.yesplaymusic.player = this; - } - - get repeatMode() { - return this._repeatMode; - } - set repeatMode(mode) { - if (this._isPersonalFM) return; - if (!['off', 'on', 'one'].includes(mode)) { - console.warn("repeatMode: invalid args, must be 'on' | 'off' | 'one'"); - return; - } - this._repeatMode = mode; - } - get shuffle() { - return this._shuffle; - } - set shuffle(shuffle) { - if (this._isPersonalFM) return; - if (shuffle !== true && shuffle !== false) { - console.warn('shuffle: invalid args, must be Boolean'); - return; - } - this._shuffle = shuffle; - if (shuffle) { - this._shuffleTheList(); - } - } - get reversed() { - return this._reversed; - } - set reversed(reversed) { - if (this._isPersonalFM) return; - if (reversed !== true && reversed !== false) { - console.warn('reversed: invalid args, must be Boolean'); - return; - } - console.log('changing reversed to:', reversed); - this._reversed = reversed; - } - get volume() { - return this._volume; - } - set volume(volume) { - this._volume = volume; - Howler.volume(volume); - } - get list() { - return this.shuffle ? this._shuffledList : this._list; - } - set list(list) { - this._list = list; - } - get current() { - return this.shuffle ? this._shuffledCurrent : this._current; - } - set current(current) { - if (this.shuffle) { - this._shuffledCurrent = current; - } else { - this._current = current; - } - } - get enabled() { - return this._enabled; - } - get playing() { - return this._playing; - } - get currentTrack() { - return this._currentTrack; - } - get playlistSource() { - return this._playlistSource; - } - get playNextList() { - return this._playNextList; - } - get isPersonalFM() { - return this._isPersonalFM; - } - get personalFMTrack() { - return this._personalFMTrack; - } - get currentTrackDuration() { - const trackDuration = this._currentTrack.dt || 1000; - let duration = ~~(trackDuration / 1000); - return duration > 1 ? duration - 1 : duration; - } - get progress() { - return this._progress; - } - set progress(value) { - if (this._howler) { - this._howler.seek(value); - } - } - get isCurrentTrackLiked() { - return store.state.liked.songs.includes(this.currentTrack.id); - } - - _init() { - this._loadSelfFromLocalStorage(); - Howler.autoUnlock = false; - Howler.usingWebAudio = true; - Howler.volume(this.volume); - - if (this._enabled) { - // 恢复当前播放歌曲 - this._replaceCurrentTrack(this._currentTrack.id, false).then(() => { - this._howler?.seek(localStorage.getItem('playerCurrentTrackTime') ?? 0); - }); // update audio source and init howler - this._initMediaSession(); - } - - this._setIntervals(); - - // 初始化私人FM - if ( - this._personalFMTrack.id === 0 || - this._personalFMNextTrack.id === 0 || - this._personalFMTrack.id === this._personalFMNextTrack.id - ) { - personalFM().then(result => { - this._personalFMTrack = result.data[0]; - this._personalFMNextTrack = result.data[1]; - return this._personalFMTrack; - }); - } - } - _setPlaying(isPlaying) { - this._playing = isPlaying; - if (isCreateTray) { - ipcRenderer.send('updateTrayPlayState', this._playing); - } - } - _setIntervals() { - // 同步播放进度 - // TODO: 如果 _progress 在别的地方被改变了,这个定时器会覆盖之前改变的值,是bug - setInterval(() => { - if (this._howler === null) return; - this._progress = this._howler.seek(); - localStorage.setItem('playerCurrentTrackTime', this._progress); - if (isCreateMpris) { - ipcRenderer.send('playerCurrentTrackTime', this._progress); - } - }, 1000); - } - _getNextTrack() { - const next = this._reversed ? this.current - 1 : this.current + 1; - - if (this._playNextList.length > 0) { - let trackID = this._playNextList.shift(); - return [trackID, this.current]; - } - - // 循环模式开启,则重新播放当前模式下的相对的下一首 - if (this.repeatMode === 'on') { - if (this._reversed && this.current === 0) { - // 倒序模式,当前歌曲是第一首,则重新播放列表最后一首 - return [this.list[this.list.length - 1], this.list.length - 1]; - } else if (this.list.length === this.current + 1) { - // 正序模式,当前歌曲是最后一首,则重新播放第一首 - return [this.list[0], 0]; - } - } - - // 返回 [trackID, index] - return [this.list[next], next]; - } - _getPrevTrack() { - const next = this._reversed ? this.current + 1 : this.current - 1; - - // 循环模式开启,则重新播放当前模式下的相对的下一首 - if (this.repeatMode === 'on') { - if (this._reversed && this.current === 0) { - // 倒序模式,当前歌曲是最后一首,则重新播放列表第一首 - return [this.list[0], 0]; - } else if (this.list.length === this.current + 1) { - // 正序模式,当前歌曲是第一首,则重新播放列表最后一首 - return [this.list[this.list.length - 1], this.list.length - 1]; - } - } - - // 返回 [trackID, index] - return [this.list[next], next]; - } - async _shuffleTheList(firstTrackID = this._currentTrack.id) { - let list = this._list.filter(tid => tid !== firstTrackID); - if (firstTrackID === 'first') list = this._list; - this._shuffledList = shuffle(list); - if (firstTrackID !== 'first') this._shuffledList.unshift(firstTrackID); - } - async _scrobble(track, time, completed = false) { - console.debug( - `[debug][Player.js] scrobble track 👉 ${track.name} by ${track.ar[0].name} 👉 time:${time} completed: ${completed}` - ); - const trackDuration = ~~(track.dt / 1000); - time = completed ? trackDuration : ~~time; - scrobble({ - id: track.id, - sourceid: this.playlistSource.id, - time, - }); - if ( - store.state.lastfm.key !== undefined && - (time >= trackDuration / 2 || time >= 240) - ) { - const timestamp = ~~(new Date().getTime() / 1000) - time; - trackScrobble({ - artist: track.ar[0].name, - track: track.name, - timestamp, - album: track.al.name, - trackNumber: track.no, - duration: trackDuration, - }); - } - } - _playAudioSource(source, autoplay = true) { - Howler.unload(); - this._howler = new Howl({ - src: [source], - html5: true, - format: ['mp3', 'flac'], - onend: () => { - this._nextTrackCallback(); - }, - }); - if (autoplay) { - this.play(); - if (this._currentTrack.name) { - setTitle(this._currentTrack); - } - setTrayLikeState(store.state.liked.songs.includes(this.currentTrack.id)); - } - this.setOutputDevice(); - } - _getAudioSourceFromCache(id) { - return getTrackSource(id).then(t => { - if (!t) return null; - - // Create a new object URL. - const source = URL.createObjectURL(new Blob([t.source])); - - // Clean up the previous object URLs since we've created a new one. - // Revoke object URLs can release the memory taken by a Blob, - // which occupied a large proportion of memory. - for (const url in this.createdBlobRecords) { - URL.revokeObjectURL(url); - } - - // Then, we replace the createBlobRecords with new one with - // our newly created object URL. - this.createdBlobRecords = [source]; - - return source; - }); - } - _getAudioSourceFromNetease(track) { - if (isAccountLoggedIn()) { - return getMP3(track.id).then(result => { - if (!result.data[0]) return null; - if (!result.data[0].url) return null; - if (result.data[0].freeTrialInfo !== null) return null; // 跳过只能试听的歌曲 - const source = result.data[0].url.replace(/^http:/, 'https:'); - if (store.state.settings.automaticallyCacheSongs) { - cacheTrackSource(track, source, result.data[0].br); - } - return source; - }); - } else { - return new Promise(resolve => { - resolve(`https://music.163.com/song/media/outer/url?id=${track.id}`); - }); - } - } - async _getAudioSourceFromUnblockMusic(track) { - console.debug(`[debug][Player.js] _getAudioSourceFromUnblockMusic`); - if ( - process.env.IS_ELECTRON !== true || - store.state.settings.enableUnblockNeteaseMusic === false - ) { - return null; - } - const source = await ipcRenderer.invoke( - 'unblock-music', - track, - store.state.settings.unmSource - ); - if (store.state.settings.automaticallyCacheSongs && source?.url) { - // TODO: 将unblockMusic字样换成真正的来源(比如酷我咪咕等) - cacheTrackSource(track, source.url, 128000, 'unblockMusic'); - } - return source?.url; - } - _getAudioSource(track) { - return this._getAudioSourceFromCache(String(track.id)) - .then(source => { - return source ?? this._getAudioSourceFromNetease(track); - }) - .then(source => { - return source ?? this._getAudioSourceFromUnblockMusic(track); - }); - } - _replaceCurrentTrack( - id, - autoplay = true, - ifUnplayableThen = 'playNextTrack' - ) { - if (autoplay && this._currentTrack.name) { - this._scrobble(this.currentTrack, this._howler?.seek()); - } - return getTrackDetail(id).then(data => { - let track = data.songs[0]; - this._currentTrack = track; - this._updateMediaSessionMetaData(track); - return this._getAudioSource(track).then(source => { - if (source) { - this._playAudioSource(source, autoplay); - this._cacheNextTrack(); - return source; - } else { - store.dispatch('showToast', `无法播放 ${track.name}`); - if (ifUnplayableThen === 'playNextTrack') { - if (this.isPersonalFM) { - this.playNextFMTrack(); - } else { - this.playNextTrack(); - } - } else { - this.playPrevTrack(); - } - } - }); - }); - } - _cacheNextTrack() { - let nextTrackID = this._isPersonalFM - ? this._personalFMNextTrack?.id ?? 0 - : this._getNextTrack()[0]; - if (!nextTrackID) return; - if (this._personalFMTrack.id == nextTrackID) return; - getTrackDetail(nextTrackID).then(data => { - let track = data.songs[0]; - this._getAudioSource(track); - }); - } - _loadSelfFromLocalStorage() { - const player = JSON.parse(localStorage.getItem('player')); - if (!player) return; - for (const [key, value] of Object.entries(player)) { - this[key] = value; - } - } - _initMediaSession() { - if ('mediaSession' in navigator) { - navigator.mediaSession.setActionHandler('play', () => { - this.play(); - }); - navigator.mediaSession.setActionHandler('pause', () => { - this.pause(); - }); - navigator.mediaSession.setActionHandler('previoustrack', () => { - this.playPrevTrack(); - }); - navigator.mediaSession.setActionHandler('nexttrack', () => { - if (this.isPersonalFM) { - this.playNextFMTrack(); - } else { - this.playNextTrack(); - } - }); - navigator.mediaSession.setActionHandler('stop', () => { - this.pause(); - }); - navigator.mediaSession.setActionHandler('seekto', event => { - this.seek(event.seekTime); - this._updateMediaSessionPositionState(); - }); - navigator.mediaSession.setActionHandler('seekbackward', event => { - this.seek(this.seek() - (event.seekOffset || 10)); - this._updateMediaSessionPositionState(); - }); - navigator.mediaSession.setActionHandler('seekforward', event => { - this.seek(this.seek() + (event.seekOffset || 10)); - this._updateMediaSessionPositionState(); - }); - } - } - _updateMediaSessionMetaData(track) { - if ('mediaSession' in navigator === false) { - return; - } - let artists = track.ar.map(a => a.name); - const metadata = { - title: track.name, - artist: artists.join(','), - album: track.al.name, - artwork: [ - { - src: track.al.picUrl + '?param=512y512', - type: 'image/jpg', - sizes: '512x512', - }, - ], - length: this.currentTrackDuration, - trackId: this.current, - }; - - navigator.mediaSession.metadata = new window.MediaMetadata(metadata); - if (isCreateMpris) { - ipcRenderer.send('metadata', metadata); - } - } - _updateMediaSessionPositionState() { - if ('mediaSession' in navigator === false) { - return; - } - if ('setPositionState' in navigator.mediaSession) { - navigator.mediaSession.setPositionState({ - duration: ~~(this.currentTrack.dt / 1000), - playbackRate: 1.0, - position: this.seek(), - }); - } - } - _nextTrackCallback() { - this._scrobble(this._currentTrack, 0, true); - if (!this.isPersonalFM && this.repeatMode === 'one') { - this._replaceCurrentTrack(this._currentTrack.id); - } else if (this.isPersonalFM) { - this.playNextFMTrack(); - } else { - this.playNextTrack(); - } - } - _loadPersonalFMNextTrack() { - if (this._personalFMNextLoading) { - return [false, undefined]; - } - this._personalFMNextLoading = true; - return personalFM() - .then(result => { - if (!result || !result.data) { - this._personalFMNextTrack = undefined; - } else { - this._personalFMNextTrack = result.data[0]; - this._cacheNextTrack(); // cache next track - } - this._personalFMNextLoading = false; - return [true, this._personalFMNextTrack]; - }) - .catch(() => { - this._personalFMNextTrack = undefined; - this._personalFMNextLoading = false; - return [false, this._personalFMNextTrack]; - }); - } - _playDiscordPresence(track, seekTime = 0) { - if ( - process.env.IS_ELECTRON !== true || - store.state.settings.enableDiscordRichPresence === false - ) { - return null; - } - let copyTrack = { ...track }; - copyTrack.dt -= seekTime * 1000; - ipcRenderer.send('playDiscordPresence', copyTrack); - } - _pauseDiscordPresence(track) { - if ( - process.env.IS_ELECTRON !== true || - store.state.settings.enableDiscordRichPresence === false - ) { - return null; - } - ipcRenderer.send('pauseDiscordPresence', track); - } - - currentTrackID() { - const { list, current } = this._getListAndCurrent(); - return list[current]; - } - appendTrack(trackID) { - this.list.append(trackID); - } - playNextTrack() { - // TODO: 切换歌曲时增加加载中的状态 - const [trackID, index] = this._getNextTrack(); - if (trackID === undefined) { - this._howler?.stop(); - this._setPlaying(false); - return false; - } - this.current = index; - this._replaceCurrentTrack(trackID); - return true; - } - async playNextFMTrack() { - if (this._personalFMLoading) { - return false; - } - - this._isPersonalFM = true; - if (!this._personalFMNextTrack) { - this._personalFMLoading = true; - let result = null; - let retryCount = 5; - for (; retryCount >= 0; retryCount--) { - result = await personalFM().catch(() => null); - if (!result) { - this._personalFMLoading = false; - store.dispatch('showToast', 'personal fm timeout'); - return false; - } - if (result.data?.length > 0) { - break; - } else if (retryCount > 0) { - await delay(1000); - } - } - this._personalFMLoading = false; - - if (retryCount < 0) { - let content = '获取私人FM数据时重试次数过多,请手动切换下一首'; - store.dispatch('showToast', content); - console.log(content); - return false; - } - // 这里只能拿到一条数据 - this._personalFMTrack = result.data[0]; - } else { - if (this._personalFMNextTrack.id === this._personalFMTrack.id) { - return false; - } - this._personalFMTrack = this._personalFMNextTrack; - } - if (this._isPersonalFM) { - this._replaceCurrentTrack(this._personalFMTrack.id); - } - this._loadPersonalFMNextTrack(); - return true; - } - playPrevTrack() { - const [trackID, index] = this._getPrevTrack(); - if (trackID === undefined) return false; - this.current = index; - this._replaceCurrentTrack(trackID, true, 'playPrevTrack'); - return true; - } - saveSelfToLocalStorage() { - let player = {}; - for (let [key, value] of Object.entries(this)) { - if (excludeSaveKeys.includes(key)) continue; - player[key] = value; - } - - localStorage.setItem('player', JSON.stringify(player)); - } - - pause() { - this._howler?.pause(); - this._setPlaying(false); - setTitle(null); - this._pauseDiscordPresence(this._currentTrack); - } - play() { - if (this._howler?.playing()) return; - this._howler?.play(); - this._setPlaying(true); - if (this._currentTrack.name) { - setTitle(this._currentTrack); - } - this._playDiscordPresence(this._currentTrack, this.seek()); - if (store.state.lastfm.key !== undefined) { - trackUpdateNowPlaying({ - artist: this.currentTrack.ar[0].name, - track: this.currentTrack.name, - album: this.currentTrack.al.name, - trackNumber: this.currentTrack.no, - duration: ~~(this.currentTrack.dt / 1000), - }); - } - } - playOrPause() { - if (this._howler?.playing()) { - this.pause(); - } else { - this.play(); - } - } - seek(time = null) { - if (time !== null) { - this._howler?.seek(time); - if (this._playing) - this._playDiscordPresence(this._currentTrack, this.seek()); - } - return this._howler === null ? 0 : this._howler.seek(); - } - mute() { - if (this.volume === 0) { - this.volume = this._volumeBeforeMuted; - } else { - this._volumeBeforeMuted = this.volume; - this.volume = 0; - } - } - setOutputDevice() { - if (this._howler?._sounds.length <= 0 || !this._howler?._sounds[0]._node) { - return; - } - this._howler?._sounds[0]._node.setSinkId(store.state.settings.outputDevice); - } - - replacePlaylist( - trackIDs, - playlistSourceID, - playlistSourceType, - autoPlayTrackID = 'first' - ) { - this._isPersonalFM = false; - if (!this._enabled) this._enabled = true; - this.list = trackIDs; - this.current = 0; - this._playlistSource = { - type: playlistSourceType, - id: playlistSourceID, - }; - if (this.shuffle) this._shuffleTheList(autoPlayTrackID); - if (autoPlayTrackID === 'first') { - this._replaceCurrentTrack(this.list[0]); - } else { - this.current = trackIDs.indexOf(autoPlayTrackID); - this._replaceCurrentTrack(autoPlayTrackID); - } - } - playAlbumByID(id, trackID = 'first') { - getAlbum(id).then(data => { - let trackIDs = data.songs.map(t => t.id); - this.replacePlaylist(trackIDs, id, 'album', trackID); - }); - } - playPlaylistByID(id, trackID = 'first', noCache = false) { - console.debug( - `[debug][Player.js] playPlaylistByID 👉 id:${id} trackID:${trackID} noCache:${noCache}` - ); - getPlaylistDetail(id, noCache).then(data => { - let trackIDs = data.playlist.trackIds.map(t => t.id); - this.replacePlaylist(trackIDs, id, 'playlist', trackID); - }); - } - playArtistByID(id, trackID = 'first') { - getArtist(id).then(data => { - let trackIDs = data.hotSongs.map(t => t.id); - this.replacePlaylist(trackIDs, id, 'artist', trackID); - }); - } - playTrackOnListByID(id, listName = 'default') { - if (listName === 'default') { - this._current = this._list.findIndex(t => t === id); - } - this._replaceCurrentTrack(id); - } - playIntelligenceListById(id, trackID = 'first', noCache = false) { - getPlaylistDetail(id, noCache).then(data => { - const randomId = Math.floor( - Math.random() * (data.playlist.trackIds.length + 1) - ); - const songId = data.playlist.trackIds[randomId].id; - intelligencePlaylist({ id: songId, pid: id }).then(result => { - let trackIDs = result.data.map(t => t.id); - this.replacePlaylist(trackIDs, id, 'playlist', trackID); - }); - }); - } - addTrackToPlayNext(trackID, playNow = false) { - this._playNextList.push(trackID); - if (playNow) { - if (this.isPersonalFM) { - this.playNextFMTrack(); - } else { - this.playNextTrack(); - } - } - } - playPersonalFM() { - this._isPersonalFM = true; - if (!this._enabled) this._enabled = true; - if (this._currentTrack.id !== this._personalFMTrack.id) { - this._replaceCurrentTrack(this._personalFMTrack.id).then(() => - this.playOrPause() - ); - } else { - this.playOrPause(); - } - } - async moveToFMTrash() { - this._isPersonalFM = true; - let id = this._personalFMTrack.id; - if (await this.playNextFMTrack()) { - fmTrash(id); - } - } - - sendSelfToIpcMain() { - if (process.env.IS_ELECTRON !== true) return false; - let liked = store.state.liked.songs.includes(this.currentTrack.id); - ipcRenderer.send('player', { - playing: this.playing, - likedCurrentTrack: liked, - }); - setTrayLikeState(liked); - } - - switchRepeatMode() { - if (this._repeatMode === 'on') { - this.repeatMode = 'one'; - } else if (this._repeatMode === 'one') { - this.repeatMode = 'off'; - } else { - this.repeatMode = 'on'; - } - if (isCreateMpris) { - ipcRenderer.send('switchRepeatMode', this.repeatMode); - } - } - switchShuffle() { - this.shuffle = !this.shuffle; - if (isCreateMpris) { - ipcRenderer.send('switchShuffle', this.shuffle); - } - } - switchReversed() { - this.reversed = !this.reversed; - } - - clearPlayNextList() { - this._playNextList = []; - } - removeTrackFromQueue(index) { - this._playNextList.splice(index, 1); - } -} diff --git a/src/utils/auth.js b/src/utils/auth.js deleted file mode 100644 index 6c43863..0000000 --- a/src/utils/auth.js +++ /dev/null @@ -1,56 +0,0 @@ -import Cookies from 'js-cookie'; -import { logout } from '@/api/auth'; -import store from '@/store'; - -export function setCookies(string) { - const cookies = string.split(';;'); - cookies.map(cookie => { - document.cookie = cookie; - const cookieKeyValue = cookie.split(';')[0].split('='); - localStorage.setItem(`cookie-${cookieKeyValue[0]}`, cookieKeyValue[1]); - }); -} - -export function getCookie(key) { - return Cookies.get(key) ?? localStorage.getItem(`cookie-${key}`); -} - -export function removeCookie(key) { - Cookies.remove(key); - localStorage.removeItem(`cookie-${key}`); -} - -// MUSIC_U 只有在账户登录的情况下才有 -export function isLoggedIn() { - return getCookie('MUSIC_U') !== undefined; -} - -// 账号登录 -export function isAccountLoggedIn() { - return ( - getCookie('MUSIC_U') !== undefined && - store.state.data.loginMode === 'account' - ); -} - -// 用户名搜索(用户数据为只读) -export function isUsernameLoggedIn() { - return store.state.data.loginMode === 'username'; -} - -// 账户登录或者用户名搜索都判断为登录,宽松检查 -export function isLooseLoggedIn() { - return isAccountLoggedIn() || isUsernameLoggedIn(); -} - -export function doLogout() { - logout(); - removeCookie('MUSIC_U'); - removeCookie('__csrf'); - // 更新状态仓库中的用户信息 - store.commit('updateData', { key: 'user', value: {} }); - // 更新状态仓库中的登录状态 - store.commit('updateData', { key: 'loginMode', value: null }); - // 更新状态仓库中的喜欢列表 - store.commit('updateData', { key: 'likedSongPlaylistID', value: undefined }); -} diff --git a/src/utils/common.js b/src/utils/common.js deleted file mode 100644 index 0e6b2ff..0000000 --- a/src/utils/common.js +++ /dev/null @@ -1,227 +0,0 @@ -import { isAccountLoggedIn } from './auth'; -import { refreshCookie } from '@/api/auth'; -import { dailySignin } from '@/api/user'; -import dayjs from 'dayjs'; -import store from '@/store'; - -export function isTrackPlayable(track) { - let result = { - playable: true, - reason: '', - }; - if (track?.privilege?.pl > 0) { - return result; - } - // cloud storage judgement logic - if (isAccountLoggedIn() && track?.privilege?.cs) { - return result; - } - if (track.fee === 1 || track.privilege?.fee === 1) { - if (isAccountLoggedIn() && store.state.data.user.vipType === 11) { - result.playable = true; - } else { - result.playable = false; - result.reason = 'VIP Only'; - } - } else if (track.fee === 4 || track.privilege?.fee === 4) { - result.playable = false; - result.reason = '付费专辑'; - } else if ( - track.noCopyrightRcmd !== null && - track.noCopyrightRcmd !== undefined - ) { - result.playable = false; - result.reason = '无版权'; - } else if (track.privilege?.st < 0 && isAccountLoggedIn()) { - result.playable = false; - result.reason = '已下架'; - } - return result; -} - -export function mapTrackPlayableStatus(tracks, privileges = []) { - if (tracks?.length === undefined) return tracks; - return tracks.map(t => { - const privilege = privileges.find(item => item.id === t.id) || {}; - if (t.privilege) { - Object.assign(t.privilege, privilege); - } else { - t.privilege = privilege; - } - let result = isTrackPlayable(t); - t.playable = result.playable; - t.reason = result.reason; - return t; - }); -} - -export function randomNum(minNum, maxNum) { - switch (arguments.length) { - case 1: - return parseInt(Math.random() * minNum + 1, 10); - case 2: - return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10); - default: - return 0; - } -} - -export function shuffleAList(list) { - let sortsList = list.map(t => t.sort); - for (let i = 1; i < sortsList.length; i++) { - const random = Math.floor(Math.random() * (i + 1)); - [sortsList[i], sortsList[random]] = [sortsList[random], sortsList[i]]; - } - let newSorts = {}; - list.map(track => { - newSorts[track.id] = sortsList.pop(); - }); - return newSorts; -} - -export function throttle(fn, time) { - let isRun = false; - return function () { - if (isRun) return; - isRun = true; - fn.apply(this, arguments); - setTimeout(() => { - isRun = false; - }, time); - }; -} - -export function updateHttps(url) { - if (!url) return ''; - return url.replace(/^http:/, 'https:'); -} - -export function dailyTask() { - let lastDate = store.state.data.lastRefreshCookieDate; - if ( - isAccountLoggedIn() && - (lastDate === undefined || lastDate !== dayjs().date()) - ) { - console.debug('[debug][common.js] execute dailyTask'); - refreshCookie().then(() => { - console.debug('[debug][common.js] 刷新cookie'); - store.commit('updateData', { - key: 'lastRefreshCookieDate', - value: dayjs().date(), - }); - }); - dailySignin(0).catch(() => { - console.debug('[debug][common.js] 手机端重复签到'); - }); - dailySignin(1).catch(() => { - console.debug('[debug][common.js] PC端重复签到'); - }); - } -} - -export function changeAppearance(appearance) { - if (appearance === 'auto' || appearance === undefined) { - appearance = window.matchMedia('(prefers-color-scheme: dark)').matches - ? 'dark' - : 'light'; - } - document.body.setAttribute('data-theme', appearance); - document - .querySelector('meta[name="theme-color"]') - .setAttribute('content', appearance === 'dark' ? '#222' : '#fff'); -} - -export function splitSoundtrackAlbumTitle(title) { - let keywords = [ - 'Music from the Original Motion Picture Score', - 'The Original Motion Picture Soundtrack', - 'Original MGM Motion Picture Soundtrack', - 'Complete Original Motion Picture Score', - 'Original Music From The Motion Picture', - 'Music From The Disney+ Original Movie', - 'Original Music From The Netflix Film', - 'Original Score to the Motion Picture', - 'Original Motion Picture Soundtrack', - 'Soundtrack from the Motion Picture', - 'Original Television Soundtrack', - 'Original Motion Picture Score', - 'Music From the Motion Picture', - 'Music From The Motion Picture', - 'Complete Motion Picture Score', - 'Music from the Motion Picture', - 'Original Videogame Soundtrack', - 'La Bande Originale du Film', - 'Music from the Miniseries', - 'Bande Originale du Film', - 'Die Original Filmmusik', - 'Original Soundtrack', - 'Complete Score', - 'Original Score', - ]; - for (let keyword of keywords) { - if (title.includes(keyword) === false) continue; - return { - title: title - .replace(`(${keyword})`, '') - .replace(`: ${keyword}`, '') - .replace(`[${keyword}]`, '') - .replace(`- ${keyword}`, '') - .replace(`${keyword}`, ''), - subtitle: keyword, - }; - } - return { - title: title, - subtitle: '', - }; -} - -export function splitAlbumTitle(title) { - let keywords = [ - 'Bonus Tracks Edition', - 'Complete Edition', - 'Deluxe Edition', - 'Deluxe Version', - 'Tour Edition', - ]; - for (let keyword of keywords) { - if (title.includes(keyword) === false) continue; - return { - title: title - .replace(`(${keyword})`, '') - .replace(`: ${keyword}`, '') - .replace(`[${keyword}]`, '') - .replace(`- ${keyword}`, '') - .replace(`${keyword}`, ''), - subtitle: keyword, - }; - } - return { - title: title, - subtitle: '', - }; -} - -export function bytesToSize(bytes) { - let marker = 1024; // Change to 1000 if required - let decimal = 2; // Change as required - let kiloBytes = marker; - let megaBytes = marker * marker; - let gigaBytes = marker * marker * marker; - - let lang = store.state.settings.lang; - - if (bytes < kiloBytes) return bytes + (lang === 'en' ? ' Bytes' : '字节'); - else if (bytes < megaBytes) - return (bytes / kiloBytes).toFixed(decimal) + ' KB'; - else if (bytes < gigaBytes) - return (bytes / megaBytes).toFixed(decimal) + ' MB'; - else return (bytes / gigaBytes).toFixed(decimal) + ' GB'; -} - -export function formatTrackTime(value) { - if (!value) return ''; - let min = ~~((value / 60) % 60); - let sec = (~~(value % 60)).toString().padStart(2, '0'); - return `${min}:${sec}`; -} diff --git a/src/utils/db.js b/src/utils/db.js deleted file mode 100644 index 6dfabeb..0000000 --- a/src/utils/db.js +++ /dev/null @@ -1,183 +0,0 @@ -import axios from 'axios'; -import Dexie from 'dexie'; -import store from '@/store'; -// import pkg from "../../package.json"; - -const db = new Dexie('yesplaymusic'); - -db.version(4).stores({ - trackDetail: '&id, updateTime', - lyric: '&id, updateTime', - album: '&id, updateTime', -}); - -db.version(3) - .stores({ - trackSources: '&id, createTime', - }) - .upgrade(tx => - tx - .table('trackSources') - .toCollection() - .modify( - track => !track.createTime && (track.createTime = new Date().getTime()) - ) - ); - -db.version(1).stores({ - trackSources: '&id', -}); - -let tracksCacheBytes = 0; - -async function deleteExcessCache() { - if ( - store.state.settings.cacheLimit === false || - tracksCacheBytes < store.state.settings.cacheLimit * Math.pow(1024, 2) - ) { - return; - } - try { - const delCache = await db.trackSources.orderBy('createTime').first(); - await db.trackSources.delete(delCache.id); - tracksCacheBytes -= delCache.source.byteLength; - console.debug( - `[debug][db.js] deleteExcessCacheSucces, track: ${delCache.name}, size: ${delCache.source.byteLength}, cacheSize:${tracksCacheBytes}` - ); - deleteExcessCache(); - } catch (error) { - console.debug('[debug][db.js] deleteExcessCacheFailed', error); - } -} - -export function cacheTrackSource(trackInfo, url, bitRate, from = 'netease') { - if (!process.env.IS_ELECTRON) return; - const name = trackInfo.name; - const artist = - (trackInfo.ar && trackInfo.ar[0]?.name) || - (trackInfo.artists && trackInfo.artists[0]?.name) || - 'Unknown'; - let cover = trackInfo.al.picUrl; - if (cover.slice(0, 5) !== 'https') { - cover = 'https' + cover.slice(4); - } - axios.get(`${cover}?param=512y512`); - axios.get(`${cover}?param=224y224`); - axios.get(`${cover}?param=1024y1024`); - return axios - .get(url, { - responseType: 'arraybuffer', - }) - .then(response => { - db.trackSources.put({ - id: trackInfo.id, - source: response.data, - bitRate, - from, - name, - artist, - createTime: new Date().getTime(), - }); - console.debug(`[debug][db.js] cached track 👉 ${name} by ${artist}`); - tracksCacheBytes += response.data.byteLength; - deleteExcessCache(); - return { trackID: trackInfo.id, source: response.data, bitRate }; - }); -} - -export function getTrackSource(id) { - return db.trackSources.get(Number(id)).then(track => { - if (!track) return null; - console.debug( - `[debug][db.js] get track from cache 👉 ${track.name} by ${track.artist}` - ); - return track; - }); -} - -export function cacheTrackDetail(track, privileges) { - db.trackDetail.put({ - id: track.id, - detail: track, - privileges: privileges, - updateTime: new Date().getTime(), - }); -} - -export function getTrackDetailFromCache(ids) { - return db.trackDetail - .filter(track => { - return ids.includes(String(track.id)); - }) - .toArray() - .then(tracks => { - const result = { songs: [], privileges: [] }; - ids.map(id => { - const one = tracks.find(t => String(t.id) === id); - result.songs.push(one?.detail); - result.privileges.push(one?.privileges); - }); - if (result.songs.includes(undefined)) { - return undefined; - } - return result; - }); -} - -export function cacheLyric(id, lyrics) { - db.lyric.put({ - id, - lyrics, - updateTime: new Date().getTime(), - }); -} - -export function getLyricFromCache(id) { - return db.lyric.get(Number(id)).then(result => { - if (!result) return undefined; - return result.lyrics; - }); -} - -export function cacheAlbum(id, album) { - db.album.put({ - id: Number(id), - album, - updateTime: new Date().getTime(), - }); -} - -export function getAlbumFromCache(id) { - return db.album.get(Number(id)).then(result => { - if (!result) return undefined; - return result.album; - }); -} - -export function countDBSize() { - const trackSizes = []; - return db.trackSources - .each(track => { - trackSizes.push(track.source.byteLength); - }) - .then(() => { - const res = { - bytes: trackSizes.reduce((s1, s2) => s1 + s2, 0), - length: trackSizes.length, - }; - tracksCacheBytes = res.bytes; - console.debug( - `[debug][db.js] load tracksCacheBytes: ${tracksCacheBytes}` - ); - return res; - }); -} - -export function clearDB() { - return new Promise(resolve => { - db.tables.forEach(function (table) { - table.clear(); - }); - resolve(); - }); -} diff --git a/src/utils/filters.js b/src/utils/filters.js deleted file mode 100644 index 5f3ed82..0000000 --- a/src/utils/filters.js +++ /dev/null @@ -1,113 +0,0 @@ -import Vue from 'vue'; -import dayjs from 'dayjs'; -import duration from 'dayjs/plugin/duration'; -import relativeTime from 'dayjs/plugin/relativeTime'; -import locale from '@/locale'; - -Vue.filter('formatTime', (Milliseconds, format = 'HH:MM:SS') => { - if (!Milliseconds) return ''; - dayjs.extend(duration); - dayjs.extend(relativeTime); - - let time = dayjs.duration(Milliseconds); - let hours = time.hours().toString(); - let mins = time.minutes().toString(); - let seconds = time.seconds().toString().padStart(2, '0'); - - if (format === 'HH:MM:SS') { - return hours !== '0' - ? `${hours}:${mins.padStart(2, '0')}:${seconds}` - : `${mins}:${seconds}`; - } else if (format === 'Human') { - let hoursUnit, minitesUnit; - switch (locale.locale) { - case 'zh-CN': - hoursUnit = '小时'; - minitesUnit = '分钟'; - break; - case 'zh-TW': - hoursUnit = '小時'; - minitesUnit = '分鐘'; - break; - default: - hoursUnit = 'hr'; - minitesUnit = 'min'; - break; - } - return hours !== '0' - ? `${hours} ${hoursUnit} ${mins} ${minitesUnit}` - : `${mins} ${minitesUnit}`; - } -}); - -Vue.filter('formatDate', (timestamp, format = 'MMM D, YYYY') => { - if (!timestamp) return ''; - if (locale.locale === 'zh-CN') format = 'YYYY年MM月DD日'; - else if (locale.locale === 'zh-TW') format = 'YYYY年MM月DD日'; - return dayjs(timestamp).format(format); -}); - -Vue.filter('formatAlbumType', (type, album) => { - if (!type) return ''; - if (type === 'EP/Single') { - return album.size === 1 ? 'Single' : 'EP'; - } else if (type === 'Single') { - return 'Single'; - } else if (type === '专辑') { - return 'Album'; - } else { - return type; - } -}); - -Vue.filter('resizeImage', (imgUrl, size = 512) => { - if (!imgUrl) return ''; - let httpsImgUrl = imgUrl; - if (imgUrl.slice(0, 5) !== 'https') { - httpsImgUrl = 'https' + imgUrl.slice(4); - } - return `${httpsImgUrl}?param=${size}y${size}`; -}); - -Vue.filter('formatPlayCount', count => { - if (!count) return ''; - if (locale.locale === 'zh-CN') { - if (count > 100000000) { - return `${Math.floor((count / 100000000) * 100) / 100}亿`; // 2.32 亿 - } - if (count > 100000) { - return `${Math.floor((count / 10000) * 10) / 10}万`; // 232.1 万 - } - if (count > 10000) { - return `${Math.floor((count / 10000) * 100) / 100}万`; // 2.3 万 - } - return count; - } else if (locale.locale === 'zh-TW') { - if (count > 100000000) { - return `${Math.floor((count / 100000000) * 100) / 100}億`; // 2.32 億 - } - if (count > 100000) { - return `${Math.floor((count / 10000) * 10) / 10}萬`; // 232.1 萬 - } - if (count > 10000) { - return `${Math.floor((count / 10000) * 100) / 100}萬`; // 2.3 萬 - } - return count; - } else { - if (count > 10000000) { - return `${Math.floor((count / 1000000) * 10) / 10}M`; // 233.2M - } - if (count > 1000000) { - return `${Math.floor((count / 1000000) * 100) / 100}M`; // 2.3M - } - if (count > 1000) { - return `${Math.floor((count / 1000) * 100) / 100}K`; // 233.23K - } - return count; - } -}); - -Vue.filter('toHttps', url => { - if (!url) return ''; - return url.replace(/^http:/, 'https:'); -}); diff --git a/src/utils/lyrics.js b/src/utils/lyrics.js deleted file mode 100644 index fd9919a..0000000 --- a/src/utils/lyrics.js +++ /dev/null @@ -1,85 +0,0 @@ -export function lyricParser(lrc) { - return { - lyric: parseLyric(lrc?.lrc?.lyric || ''), - tlyric: parseLyric(lrc?.tlyric?.lyric || ''), - lyricuser: lrc.lyricUser, - transuser: lrc.transUser, - }; -} - -// regexr.com/6e52n -const extractLrcRegex = - /^(?(?:\[.+?\])+)(?!\[)(?.+)$/gm; -const extractTimestampRegex = - /\[(?\d+):(?\d+)(?:\.|:)*(?\d+)*\]/g; - -/** - * @typedef {{time: number, rawTime: string, content: string}} ParsedLyric - */ - -/** - * Parse the lyric string. - * - * @param {string} lrc The `lrc` input. - * @returns {ParsedLyric[]} The parsed lyric. - * @example parseLyric("[00:00.00] Hello, World!\n[00:00.10] Test\n"); - */ -function parseLyric(lrc) { - /** - * A sorted list of parsed lyric and its timestamp. - * - * @type {ParsedLyric[]} - * @see binarySearch - */ - const parsedLyrics = []; - - /** - * Find the appropriate index to push our parsed lyric. - * @param {ParsedLyric} lyric - */ - const binarySearch = lyric => { - let time = lyric.time; - - let low = 0; - let high = parsedLyrics.length - 1; - - while (low <= high) { - const mid = Math.floor((low + high) / 2); - const midTime = parsedLyrics[mid].time; - if (midTime === time) { - return mid; - } else if (midTime < time) { - low = mid + 1; - } else { - high = mid - 1; - } - } - - return low; - }; - - for (const line of lrc.trim().matchAll(extractLrcRegex)) { - const { lyricTimestamps, content } = line.groups; - - for (const timestamp of lyricTimestamps.matchAll(extractTimestampRegex)) { - const { min, sec, ms } = timestamp.groups; - const rawTime = timestamp[0]; - const time = Number(min) * 60 + Number(sec) + Number(ms ?? 0) * 0.001; - - /** @type {ParsedLyric} */ - const parsedLyric = { rawTime, time, content: trimContent(content) }; - parsedLyrics.splice(binarySearch(parsedLyric), 0, parsedLyric); - } - } - - return parsedLyrics; -} - -/** - * @param {string} content - * @returns {string} - */ -function trimContent(content) { - let t = content.trim(); - return t.length < 1 ? content : t; -} diff --git a/src/utils/nativeAlert.js b/src/utils/nativeAlert.js deleted file mode 100644 index 123cc70..0000000 --- a/src/utils/nativeAlert.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Returns an alert-like function that fits current runtime environment - * - * This function is amid to solve a electron bug on Windows, that, when - * user dismissed a browser alert, elements cannot be focused - * for further editing unless switching to another window and then back - * - * @returns { (message:string) => void } - * Built-in alert function for browser environment - * A function wrapping {@link dialog.showMessageBoxSync} for electron environment - * - * @see {@link https://github.com/electron/electron/issues/19977} for upstream electron issue - */ -const nativeAlert = (() => { - if (process.env.IS_ELECTRON === true) { - const { dialog } = require('electron'); - if (dialog) { - return message => { - var options = { - type: 'warning', - message, - }; - dialog.showMessageBoxSync(null, options); - }; - } - } - return alert; -})(); - -export default nativeAlert; diff --git a/src/utils/platform.js b/src/utils/platform.js deleted file mode 100644 index c386d8a..0000000 --- a/src/utils/platform.js +++ /dev/null @@ -1,7 +0,0 @@ -export const isWindows = process.platform === 'win32'; -export const isMac = process.platform === 'darwin'; -export const isLinux = process.platform === 'linux'; -export const isDevelopment = process.env.NODE_ENV === 'development'; - -export const isCreateTray = isWindows || isLinux || isDevelopment; -export const isCreateMpris = isLinux; diff --git a/src/utils/playList.js b/src/utils/playList.js deleted file mode 100644 index f476f28..0000000 --- a/src/utils/playList.js +++ /dev/null @@ -1,22 +0,0 @@ -import router from '../router'; -import state from '../store/state'; - -export function hasListSource() { - return !state.player.isPersonalFM && state.player.playlistSource.id !== 0; -} - -export function goToListSource() { - router.push({ path: getListSourcePath() }); -} - -export function getListSourcePath() { - if (state.player.playlistSource.id === state.data.likedSongPlaylistID) { - return '/library/liked-songs'; - } else if (state.player.playlistSource.type === 'url') { - return state.player.playlistSource.id; - } else if (state.player.playlistSource.type === 'cloudDisk') { - return '/library'; - } else { - return `/${state.player.playlistSource.type}/${state.player.playlistSource.id}`; - } -} diff --git a/src/utils/request.js b/src/utils/request.js deleted file mode 100644 index 6eae75c..0000000 --- a/src/utils/request.js +++ /dev/null @@ -1,50 +0,0 @@ -import axios from 'axios'; -import { getCookie } from '@/utils/auth'; - -let baseURL = ''; -// Web 和 Electron 跑在不同端口避免同时启动时冲突 -if (process.env.IS_ELECTRON) { - if (process.env.NODE_ENV === 'production') { - baseURL = process.env.VUE_APP_ELECTRON_API_URL; - } else { - baseURL = process.env.VUE_APP_ELECTRON_API_URL_DEV; - } -} else { - baseURL = process.env.VUE_APP_NETEASE_API_URL; -} - -const service = axios.create({ - baseURL, - withCredentials: true, - timeout: 15000, -}); - -service.interceptors.request.use(function (config) { - if (!config.params) config.params = {}; - if (baseURL[0] !== '/' && !process.env.IS_ELECTRON) { - config.params.cookie = `MUSIC_U=${getCookie('MUSIC_U')};`; - } - - if (!process.env.IS_ELECTRON && !config.url.includes('/login')) { - config.params.realIP = '211.161.244.70'; - } - - const proxy = JSON.parse(localStorage.getItem('settings')).proxyConfig; - if (['HTTP', 'HTTPS'].includes(proxy.protocol)) { - config.params.proxy = `${proxy.protocol}://${proxy.server}:${proxy.port}`; - } - - return config; -}); - -service.interceptors.response.use( - response => { - const res = response.data; - return res; - }, - error => { - return Promise.reject(error); - } -); - -export default service; diff --git a/src/utils/shortcuts.js b/src/utils/shortcuts.js deleted file mode 100644 index 1a6582c..0000000 --- a/src/utils/shortcuts.js +++ /dev/null @@ -1,47 +0,0 @@ -// default shortcuts -// for more info, check https://www.electronjs.org/docs/api/accelerator - -export default [ - { - id: 'play', - name: '播放/暂停', - shortcut: 'CommandOrControl+P', - globalShortcut: 'Alt+CommandOrControl+P', - }, - { - id: 'next', - name: '下一首', - shortcut: 'CommandOrControl+Right', - globalShortcut: 'Alt+CommandOrControl+Right', - }, - { - id: 'previous', - name: '上一首', - shortcut: 'CommandOrControl+Left', - globalShortcut: 'Alt+CommandOrControl+Left', - }, - { - id: 'increaseVolume', - name: '增加音量', - shortcut: 'CommandOrControl+Up', - globalShortcut: 'Alt+CommandOrControl+Up', - }, - { - id: 'decreaseVolume', - name: '减少音量', - shortcut: 'CommandOrControl+Down', - globalShortcut: 'Alt+CommandOrControl+Down', - }, - { - id: 'like', - name: '喜欢歌曲', - shortcut: 'CommandOrControl+L', - globalShortcut: 'Alt+CommandOrControl+L', - }, - { - id: 'minimize', - name: '隐藏/显示播放器', - shortcut: 'CommandOrControl+M', - globalShortcut: 'Alt+CommandOrControl+M', - }, -]; diff --git a/src/utils/staticData.js b/src/utils/staticData.js deleted file mode 100644 index 0105b7e..0000000 --- a/src/utils/staticData.js +++ /dev/null @@ -1,420 +0,0 @@ -export const byAppleMusic = [ - { - coverImgUrl: - 'https://p2.music.126.net/GvYQoflE99eoeGi9jG4Bsw==/109951165375336156.jpg', - name: 'Happy Hits', - id: 5278068783, - }, - { - coverImgUrl: - 'https://p2.music.126.net/5CJeYN35LnzRDsv5Lcs0-Q==/109951165374966765.jpg', - name: '\u4e2d\u563b\u5408\u74a7', - id: 5277771961, - }, - { - coverImgUrl: - 'https://p1.music.126.net/cPaBXr1wZSg86ddl47AK7Q==/109951165375130918.jpg', - name: 'Heartbreak Pop', - id: 5277965913, - }, - { - coverImgUrl: - 'https://p2.music.126.net/FDtX55P2NjccDna-LBj9PA==/109951165375065973.jpg', - name: 'Festival Bangers', - id: 5277969451, - }, - { - coverImgUrl: - 'https://p2.music.126.net/hC0q2dGbOWHVfg4nkhIXPg==/109951165374881177.jpg', - name: 'Bedtime Beats', - id: 5277778542, - }, -]; - -export const playlistCategories = [ - { - name: '全部', - enable: true, - bigCat: 'static', - }, - // { - // name: "For You", - // enable: true, - // bigCat: "static", - // }, - { - name: '推荐歌单', - enable: true, - bigCat: 'static', - }, - // { - // name: "最新专辑", - // enable: false, - // bigCat: "static", - // }, - { - name: '精品歌单', - enable: true, - bigCat: 'static', - }, - { - name: '官方', - enable: true, - bigCat: 'static', - }, - { - name: '排行榜', - enable: true, - bigCat: 'static', - }, - { - name: '华语', - enable: false, - bigCat: '语种', - }, - { - name: '欧美', - enable: true, - bigCat: '语种', - }, - { - name: '日语', - enable: false, - bigCat: '语种', - }, - { - name: '韩语', - enable: false, - bigCat: '语种', - }, - { - name: '粤语', - enable: false, - bigCat: '语种', - }, - { - name: '流行', - enable: true, - bigCat: '风格', - }, - { - name: '摇滚', - enable: true, - bigCat: '风格', - }, - { - name: '民谣', - enable: false, - bigCat: '风格', - }, - { - name: '电子', - enable: true, - bigCat: '风格', - }, - { - name: '舞曲', - enable: false, - bigCat: '风格', - }, - { - name: '说唱', - enable: true, - bigCat: '风格', - }, - { - name: '轻音乐', - enable: false, - bigCat: '风格', - }, - { - name: '爵士', - enable: false, - bigCat: '风格', - }, - { - name: '乡村', - enable: false, - bigCat: '风格', - }, - { - name: 'R&B/Soul', - enable: false, - bigCat: '风格', - }, - { - name: '古典', - enable: false, - bigCat: '风格', - }, - { - name: '民族', - enable: false, - bigCat: '风格', - }, - { - name: '英伦', - enable: false, - bigCat: '风格', - }, - { - name: '金属', - enable: false, - bigCat: '风格', - }, - { - name: '朋克', - enable: false, - bigCat: '风格', - }, - { - name: '蓝调', - enable: false, - bigCat: '风格', - }, - { - name: '雷鬼', - enable: false, - bigCat: '风格', - }, - { - name: '世界音乐', - enable: false, - bigCat: '风格', - }, - { - name: '拉丁', - enable: false, - bigCat: '风格', - }, - { - name: 'New Age', - enable: false, - bigCat: '风格', - }, - { - name: '古风', - enable: false, - bigCat: '风格', - }, - { - name: '后摇', - enable: false, - bigCat: '风格', - }, - { - name: 'Bossa Nova', - enable: false, - bigCat: '风格', - }, - { - name: '清晨', - enable: false, - bigCat: '场景', - }, - { - name: '夜晚', - enable: false, - bigCat: '场景', - }, - { - name: '学习', - enable: false, - bigCat: '场景', - }, - { - name: '工作', - enable: false, - bigCat: '场景', - }, - { - name: '午休', - enable: false, - bigCat: '场景', - }, - { - name: '下午茶', - enable: false, - bigCat: '场景', - }, - { - name: '地铁', - enable: false, - bigCat: '场景', - }, - { - name: '驾车', - enable: false, - bigCat: '场景', - }, - { - name: '运动', - enable: false, - bigCat: '场景', - }, - { - name: '旅行', - enable: false, - bigCat: '场景', - }, - { - name: '散步', - enable: false, - bigCat: '场景', - }, - { - name: '酒吧', - enable: false, - bigCat: '场景', - }, - { - name: '怀旧', - enable: false, - bigCat: '情感', - }, - { - name: '清新', - enable: false, - bigCat: '情感', - }, - { - name: '浪漫', - enable: false, - bigCat: '情感', - }, - { - name: '伤感', - enable: false, - bigCat: '情感', - }, - { - name: '治愈', - enable: false, - bigCat: '情感', - }, - { - name: '放松', - enable: false, - bigCat: '情感', - }, - { - name: '孤独', - enable: false, - bigCat: '情感', - }, - { - name: '感动', - enable: false, - bigCat: '情感', - }, - { - name: '兴奋', - enable: false, - bigCat: '情感', - }, - { - name: '快乐', - enable: false, - bigCat: '情感', - }, - { - name: '安静', - enable: false, - bigCat: '情感', - }, - { - name: '思念', - enable: false, - bigCat: '情感', - }, - { - name: '综艺', - enable: false, - bigCat: '主题', - }, - { - name: '影视原声', - enable: false, - bigCat: '主题', - }, - { - name: 'ACG', - enable: true, - bigCat: '主题', - }, - { - name: '儿童', - enable: false, - bigCat: '主题', - }, - { - name: '校园', - enable: false, - bigCat: '主题', - }, - { - name: '游戏', - enable: false, - bigCat: '主题', - }, - { - name: '70后', - enable: false, - bigCat: '主题', - }, - { - name: '80后', - enable: false, - bigCat: '主题', - }, - { - name: '90后', - enable: false, - bigCat: '主题', - }, - { - name: '网络歌曲', - enable: false, - bigCat: '主题', - }, - { - name: 'KTV', - enable: false, - bigCat: '主题', - }, - { - name: '经典', - enable: false, - bigCat: '主题', - }, - { - name: '翻唱', - enable: false, - bigCat: '主题', - }, - { - name: '吉他', - enable: false, - bigCat: '主题', - }, - { - name: '钢琴', - enable: false, - bigCat: '主题', - }, - { - name: '器乐', - enable: false, - bigCat: '主题', - }, - { - name: '榜单', - enable: false, - bigCat: '主题', - }, - { - name: '00后', - enable: false, - bigCat: '主题', - }, -]; diff --git a/src/utils/updateApp.js b/src/utils/updateApp.js deleted file mode 100644 index 25124d7..0000000 --- a/src/utils/updateApp.js +++ /dev/null @@ -1,62 +0,0 @@ -import initLocalStorage from '@/store/initLocalStorage.js'; -import pkg from '../../package.json'; - -const updateSetting = () => { - const parsedSettings = JSON.parse(localStorage.getItem('settings')); - const settings = { - ...initLocalStorage.settings, - ...parsedSettings, - }; - - if ( - settings.shortcuts.length !== initLocalStorage.settings.shortcuts.length - ) { - // 当新增 shortcuts 时 - const oldShortcutsId = settings.shortcuts.map(s => s.id); - const newShortcutsId = initLocalStorage.settings.shortcuts.filter( - s => oldShortcutsId.includes(s.id) === false - ); - newShortcutsId.map(id => { - settings.shortcuts.push( - initLocalStorage.settings.shortcuts.find(s => s.id === id) - ); - }); - } - - if (localStorage.getItem('appVersion') === '"0.3.9"') { - settings.lyricsBackground = true; - } - - localStorage.setItem('settings', JSON.stringify(settings)); -}; - -const updateData = () => { - const parsedData = JSON.parse(localStorage.getItem('data')); - const data = { - ...parsedData, - }; - localStorage.setItem('data', JSON.stringify(data)); -}; - -const updatePlayer = () => { - let parsedData = JSON.parse(localStorage.getItem('player')); - let appVersion = localStorage.getItem('appVersion'); - if (appVersion === `"0.2.5"`) parsedData = {}; // 0.2.6版本重构了player - const data = { - ...parsedData, - }; - localStorage.setItem('player', JSON.stringify(data)); -}; - -const removeOldStuff = () => { - // remove old indexedDB databases created by localforage - indexedDB.deleteDatabase('tracks'); -}; - -export default function () { - updateSetting(); - updateData(); - updatePlayer(); - removeOldStuff(); - localStorage.setItem('appVersion', JSON.stringify(pkg.version)); -} diff --git a/src/views/album.vue b/src/views/album.vue deleted file mode 100644 index f90fa19..0000000 --- a/src/views/album.vue +++ /dev/null @@ -1,435 +0,0 @@ - - - - - diff --git a/src/views/artist.vue b/src/views/artist.vue deleted file mode 100644 index cec51e4..0000000 --- a/src/views/artist.vue +++ /dev/null @@ -1,545 +0,0 @@ - - - - - diff --git a/src/views/artistMV.vue b/src/views/artistMV.vue deleted file mode 100644 index 69a7f35..0000000 --- a/src/views/artistMV.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/src/views/dailyTracks.vue b/src/views/dailyTracks.vue deleted file mode 100644 index 6f07b0a..0000000 --- a/src/views/dailyTracks.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/src/views/explore.vue b/src/views/explore.vue deleted file mode 100644 index 2e5057b..0000000 --- a/src/views/explore.vue +++ /dev/null @@ -1,304 +0,0 @@ - - - - - diff --git a/src/views/home.vue b/src/views/home.vue deleted file mode 100644 index 2d2a090..0000000 --- a/src/views/home.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - - - diff --git a/src/views/lastfmCallback.vue b/src/views/lastfmCallback.vue deleted file mode 100644 index b09f7b2..0000000 --- a/src/views/lastfmCallback.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/src/views/library.vue b/src/views/library.vue deleted file mode 100644 index 9b47a35..0000000 --- a/src/views/library.vue +++ /dev/null @@ -1,591 +0,0 @@ - - - - - diff --git a/src/views/login.vue b/src/views/login.vue deleted file mode 100644 index a09cfe1..0000000 --- a/src/views/login.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - - diff --git a/src/views/loginAccount.vue b/src/views/loginAccount.vue deleted file mode 100644 index 33a111d..0000000 --- a/src/views/loginAccount.vue +++ /dev/null @@ -1,483 +0,0 @@ - - - - - diff --git a/src/views/loginUsername.vue b/src/views/loginUsername.vue deleted file mode 100644 index 5a9f69b..0000000 --- a/src/views/loginUsername.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - diff --git a/src/views/lyrics.vue b/src/views/lyrics.vue deleted file mode 100644 index 3673231..0000000 --- a/src/views/lyrics.vue +++ /dev/null @@ -1,823 +0,0 @@ - - - - - diff --git a/src/views/mv.vue b/src/views/mv.vue deleted file mode 100644 index c060df7..0000000 --- a/src/views/mv.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - diff --git a/src/views/newAlbum.vue b/src/views/newAlbum.vue deleted file mode 100644 index b120c4f..0000000 --- a/src/views/newAlbum.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/src/views/next.vue b/src/views/next.vue deleted file mode 100644 index 3dacf03..0000000 --- a/src/views/next.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/src/views/playlist.vue b/src/views/playlist.vue deleted file mode 100644 index c75a78f..0000000 --- a/src/views/playlist.vue +++ /dev/null @@ -1,941 +0,0 @@ - - - - - diff --git a/src/views/search.vue b/src/views/search.vue deleted file mode 100644 index df000a7..0000000 --- a/src/views/search.vue +++ /dev/null @@ -1,288 +0,0 @@ - - - - - diff --git a/src/views/searchType.vue b/src/views/searchType.vue deleted file mode 100644 index 2a6b9f1..0000000 --- a/src/views/searchType.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/src/views/settings.vue b/src/views/settings.vue deleted file mode 100644 index 2201b8c..0000000 --- a/src/views/settings.vue +++ /dev/null @@ -1,1440 +0,0 @@ - - - - - diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..155845c --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,30 @@ +const colors = require('tailwindcss/colors') + +module.exports = { + content: [ + './packages/renderer/index.html', + './packages/renderer/src/**/*.{vue,js,ts,jsx,tsx}', + ], + darkMode: 'media', + theme: { + extend: { + colors: { + // brand: { + // 50: '#f5f7fe', + // 100: '#ebeffd', + // 200: '#ccd7fa', + // 300: '#adbff7', + // 400: '#708ef0', + // 500: '#335eea', + // 600: '#2e55d3', + // 700: '#2647b0', + // 800: '#1f388c', + // 900: '#192e73', + // }, + brand: colors.blue, + gray: colors.neutral, + }, + }, + }, + variants: {}, +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a2f0e6f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "./paths.json", + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "allowJs": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "esModuleInterop": true, + "moduleResolution": "Node", + "resolveJsonModule": true, + "strict": true, + "jsx": "react-jsx" + }, + "exclude": ["node_modules", "./dist"] +} diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..5be797c1 --- /dev/null +++ b/types.d.ts @@ -0,0 +1,7 @@ +declare namespace NodeJS { + interface ProcessEnv { + NODE_ENV: 'development' | 'production' | 'debug' + readonly VITE_DEV_SERVER_HOST: string + readonly VITE_DEV_SERVER_PORT: string + } +} diff --git a/vercel.example.json b/vercel.example.json deleted file mode 100644 index 26e819c..0000000 --- a/vercel.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rewrites": [ - { - "source": "/api/:match*", - "destination": "https://your-netease-api.example.com/:match*" - } - ] -} diff --git a/vue.config.js b/vue.config.js deleted file mode 100644 index b24d638..0000000 --- a/vue.config.js +++ /dev/null @@ -1,184 +0,0 @@ -const webpack = require('webpack'); -const path = require('path'); -function resolve(dir) { - return path.join(__dirname, dir); -} - -module.exports = { - // 生产环境打包不输出 map - productionSourceMap: false, - devServer: { - disableHostCheck: true, - port: process.env.DEV_SERVER_PORT || 8080, - proxy: { - '^/api': { - target: 'http://localhost:3000', - changeOrigin: true, - pathRewrite: { - '^/api': '/', - }, - }, - }, - }, - pwa: { - name: 'YesPlayMusic', - iconPaths: { - favicon32: 'img/icons/favicon-32x32.png', - }, - themeColor: '#ffffff00', - manifestOptions: { - background_color: '#335eea', - }, - // workboxOptions: { - // swSrc: "dev/sw.js", - // }, - }, - pages: { - index: { - entry: 'src/main.js', - template: 'public/index.html', - filename: 'index.html', - title: 'YesPlayMusic', - chunks: ['main', 'chunk-vendors', 'chunk-common', 'index'], - }, - }, - chainWebpack(config) { - config.module.rules.delete('svg'); - config.module.rule('svg').exclude.add(resolve('src/assets/icons')).end(); - config.module - .rule('icons') - .test(/\.svg$/) - .include.add(resolve('src/assets/icons')) - .end() - .use('svg-sprite-loader') - .loader('svg-sprite-loader') - .options({ - symbolId: 'icon-[name]', - }) - .end(); - // LimitChunkCountPlugin 可以通过合并块来对块进行后期处理。用以解决 chunk 包太多的问题 - config.plugin('chunkPlugin').use(webpack.optimize.LimitChunkCountPlugin, [ - { - maxChunks: 3, - minChunkSize: 10_000, - }, - ]); - }, - // 添加插件的配置 - pluginOptions: { - // electron-builder的配置文件 - electronBuilder: { - nodeIntegration: true, - externals: [ - '@unblockneteasemusic/server', - '@unblockneteasemusic/server/src/consts', - ], - builderOptions: { - productName: 'YesPlayMusic', - copyright: 'Copyright © YesPlayMusic', - // compression: "maximum", // 机器好的可以打开,配置压缩,开启后会让 .AppImage 格式的客户端启动缓慢 - asar: true, - publish: [ - { - provider: 'github', - owner: 'qier222', - repo: 'YesPlayMusic', - vPrefixedTagName: true, - releaseType: 'draft', - }, - ], - directories: { - output: 'dist_electron', - }, - mac: { - target: [ - { - target: 'dmg', - arch: ['x64', 'arm64', 'universal'], - }, - ], - artifactName: '${productName}-${os}-${version}-${arch}.${ext}', - category: 'public.app-category.music', - darkModeSupport: true, - }, - win: { - target: [ - { - target: 'portable', - arch: ['x64'], - }, - { - target: 'nsis', - arch: ['x64'], - }, - ], - publisherName: 'YesPlayMusic', - icon: 'build/icons/icon.ico', - publish: ['github'], - }, - linux: { - target: [ - { - target: 'AppImage', - arch: ['x64'], - }, - { - target: 'tar.gz', - arch: ['x64', 'arm64'], - }, - { - target: 'deb', - arch: ['x64', 'armv7l', 'arm64'], - }, - { - target: 'rpm', - arch: ['x64'], - }, - { - target: 'snap', - arch: ['x64'], - }, - { - target: 'pacman', - arch: ['x64'], - }, - ], - category: 'Music', - icon: './build/icon.icns', - }, - dmg: { - icon: 'build/icons/icon.icns', - }, - nsis: { - oneClick: true, - perMachine: true, - deleteAppDataOnUninstall: true, - }, - }, - // 主线程的配置文件 - chainWebpackMainProcess: config => { - config.plugin('define').tap(args => { - args[0]['IS_ELECTRON'] = true; - return args; - }); - config.resolve.alias.set( - 'jsbi', - path.join(__dirname, 'node_modules/jsbi/dist/jsbi-cjs.js') - ); - }, - // 渲染线程的配置文件 - chainWebpackRendererProcess: config => { - // 渲染线程的一些其他配置 - // Chain webpack config for electron renderer process only - // The following example will set IS_ELECTRON to true in your app - config.plugin('define').tap(args => { - args[0]['IS_ELECTRON'] = true; - return args; - }); - }, - // 主入口文件 - // mainProcessFile: 'src/main.js', - // mainProcessArgs: [] - }, - }, -}; diff --git a/yarn.lock b/yarn.lock index eab343a..aafad76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,42 +4,69 @@ "7zip-bin@~5.1.1": version "5.1.1" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" + resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz" integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== +"@ampproject/remapping@^2.0.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.0.tgz" + integrity sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g== dependencies: "@jridgewell/trace-mapping" "^0.3.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": +"@antfu/utils@^0.5.0": + version "0.5.0" + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.5.0.tgz" + integrity sha512-MrAQ/MrPSxbh1bBrmwJjORfJymw4IqSHFBXqvxaga3ZdDM+/zokYF8DjyJpSjY2QmpmgQrajDUBJOWrYeARfzA== + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": +"@babel/compat-data@^7.16.4": version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz" integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== -"@babel/core@^7.11.0": - version "7.17.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" - integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== +"@babel/core@7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" + integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== dependencies: - "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.10" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.10" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.16.12": + version "7.17.2" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz" + integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw== + dependencies: + "@ampproject/remapping" "^2.0.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.3" + "@babel/parser" "^7.17.0" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.0" "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" @@ -47,7 +74,16 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/generator@^7.17.3": +"@babel/generator@7.13.9": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.13.0", "@babel/generator@^7.13.9", "@babel/generator@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== @@ -56,24 +92,25 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.0": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz" + integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz" integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": +"@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.9.6": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz" integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== dependencies: "@babel/compat-data" "^7.16.4" @@ -81,58 +118,16 @@ browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" - integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - "@babel/helper-environment-visitor@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz" integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-explode-assignable-expression@^7.16.7": +"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== dependencies: "@babel/helper-get-function-arity" "^7.16.7" @@ -141,33 +136,26 @@ "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== dependencies: "@babel/types" "^7.16.7" "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz" integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7": +"@babel/helper-module-imports@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" - integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz" integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.7": +"@babel/helper-module-transforms@^7.13.0": version "7.17.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0" integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA== @@ -181,82 +169,52 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" -"@babel/helper-optimise-call-expression@^7.16.7": +"@babel/helper-module-transforms@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== dependencies: "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-plugin-utils@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + "@babel/helper-simple-access@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz" integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": +"@babel/helper-split-export-declaration@^7.12.13", "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz" integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.16.7": +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/helper-validator-option@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.17.2": +"@babel/helpers@^7.13.10", "@babel/helpers@^7.17.2": version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz" integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: "@babel/template" "^7.16.7" @@ -265,655 +223,99 @@ "@babel/highlight@^7.16.7": version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.7.0": +"@babel/parser@7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" + integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== + +"@babel/parser@^7.13.0", "@babel/parser@^7.13.10", "@babel/parser@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-decorators@^7.8.3": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz#c36372ddfe0360cac1ee331a238310bddca11493" - integrity sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.1" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/plugin-syntax-decorators" "^7.17.0" - charcodes "^0.2.0" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== - dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.17.0": +"@babel/parser@^7.16.7", "@babel/parser@^7.17.0": version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" - integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz" + integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": +"@babel/plugin-syntax-jsx@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz" integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-transform-arrow-functions@^7.16.7": +"@babel/plugin-transform-react-jsx-development@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz" + integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.16.7" + +"@babel/plugin-transform-react-jsx-self@^7.16.7": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz" + integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - -"@babel/plugin-transform-block-scoped-functions@^7.16.7": +"@babel/plugin-transform-react-jsx-source@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz" + integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw== dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoping@^7.16.7": +"@babel/plugin-transform-react-jsx@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz" + integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" - integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== - dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" - integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" - integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== - dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" - integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-runtime@^7.11.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" - integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== - dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" + "@babel/plugin-syntax-jsx" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/preset-env@^7.11.0": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6": version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz" integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.16.7": +"@babel/template@^7.12.13", "@babel/template@^7.16.7": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz" integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== dependencies: "@babel/code-frame" "^7.16.7" "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.7.0": +"@babel/traverse@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" + integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.0" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.13.0" + "@babel/types" "^7.13.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== @@ -929,9 +331,34 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0": version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz" + integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.0" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.0" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" + integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@babel/types@^7.13.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" @@ -939,15 +366,15 @@ "@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" ajv-keywords "^3.4.1" -"@electron/get@^1.0.1": +"@electron/get@^1.13.0": version "1.13.1" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368" + resolved "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz" integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA== dependencies: debug "^4.1.1" @@ -961,496 +388,59 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" -"@electron/universal@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.0.tgz#518cac72bccd79c00bf41345119e6fdbabdb871d" - integrity sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q== +"@electron/universal@1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz" + integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag== dependencies: "@malept/cross-spawn-promise" "^1.1.0" - asar "^3.1.0" + asar "^3.0.3" debug "^4.3.1" dir-compare "^2.4.0" fs-extra "^9.0.1" + +"@eslint/eslintrc@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz" + integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.1" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^4.1.0" minimatch "^3.0.4" - plist "^3.0.4" + strip-json-comments "^3.1.1" -"@gar/promisify@^1.0.1": - 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== - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.0.0", "@hapi/joi@^15.0.1": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== +"@humanwhocodes/config-array@^0.9.2": + version "0.9.5" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== - dependencies: - "@hapi/hoek" "^8.3.0" - -"@intervolga/optimize-cssnano-plugin@^1.0.5": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" - integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== - dependencies: - cssnano "^4.0.0" - cssnano-preset-default "^4.0.0" - postcss "^7.0.0" - -"@jimp/bmp@^0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz#6e2da655b2ba22e721df0795423f34e92ef13768" - integrity sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - bmp-js "^0.1.0" - -"@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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz#68c4288f6ef7f31a0f6b859ba3fb28dae930d39d" - integrity sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - any-base "^1.1.0" - buffer "^5.2.0" - 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/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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz#28b659c59e20a1d75a0c46067bd3f4bd302cf9c5" - integrity sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/core" "^0.16.1" - -"@jimp/custom@^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" - -"@jimp/gif@^0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz#d1f7c3a58f4666482750933af8b8f4666414f3ca" - integrity sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - gifwrap "^0.9.2" - omggif "^1.0.9" - -"@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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz#3b7bb08a4173f2f6d81f3049b251df3ee2ac8175" - integrity sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - jpeg-js "0.4.2" - -"@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-blit@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.9.8.tgz#916bf6f261e6a91dbecca0ca866b8d9cba563753" - integrity sha512-6xTDomxJybhBcby1IUVaPydZFhxf+V0DRgfDlVK81kR9kSCoshJpzWqDuWrMqjNEPspPE7jRQwHMs0FdU7mVwQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-blur@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.9.8.tgz#00055d54b90532b7951dae377b3e40352c187f07" - integrity sha512-dqbxuNFBRbmt35iIRacdgma7nlXklmPThsKcGWNTDmqb/hniK5IC+0xSPzBV4qMI2fLGP39LWHqqDZ0xDz14dA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-circle@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.9.8.tgz#5de8735f32f931d9160d0f5211e9aab6413a1d4b" - integrity sha512-+UStXUPCzPqzTixLC8eVqcFcEa6TS+BEM/6/hyM11TDb9sbiMGeUtgpwZP/euR5H5gfpAQDA1Ppzqhh5fuMDlw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-color@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.9.8.tgz#3c633f22955a4f5013025e9e9e78a267ac4c3a88" - integrity sha512-SDHxOQsJHpt75hk6+sSlCPc2B3UJlXosFW+iLZ11xX1Qr0IdDtbfYlIoPmjKQFIDUNzqLSue/z7sKQ1OMZr/QA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - tinycolor2 "^1.4.1" - -"@jimp/plugin-contain@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.9.8.tgz#f892fb7fc87134a47b37281f0ff17d608f3e51af" - integrity sha512-oK52CPt7efozuLYCML7qOmpFeDt3zpU8qq8UZlnjsDs15reU6L8EiUbwYpJvzoEnEOh1ZqamB8F/gymViEO5og== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-cover@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.9.8.tgz#37474b19027ac0155100b71ca17266aab19e50fc" - integrity sha512-nnamtHzMrNd5j5HRSPd1VzpZ8v9YYtUJPtvCdHOOiIjqG72jxJ2kTBlsS3oG5XS64h/2MJwpl/fmmMs1Tj1CmQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-crop@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.9.8.tgz#2308696597a8bcb528d09eeebbbadb22248e7c1c" - integrity sha512-Nv/6AIp4aJmbSIH2uiIqm+kSoShKM8eaX2fyrUTj811kio0hwD3f/vIxrWebvAqwDZjAFIAmMufFoFCVg6caoQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-displace@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.9.8.tgz#00331047039cb2d0d9d5f7c3d8ce542e07eea791" - integrity sha512-0OgPjkOVa2xdbqI8P6gBKX/UK36RbaYVrFyXL8Jy9oNF69+LYWyTskuCu9YbGxzlCVjY/JFqQOvrKDbxgMYAKA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-dither@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.9.8.tgz#9cca12997f2917f27d5681275b32affdb3083450" - integrity sha512-jGM/4ByniZJnmV2fv8hKwyyydXZe/YzvgBcnB8XxzCq8kVR3Imcn+qnd2PEPZzIPKOTH4Cig/zo9Vk9Bs+m5FQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-fisheye@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.9.8.tgz#e3f5f616ec06a9ef99aa268446f0096eac863437" - integrity sha512-VnsalrD05f4pxG1msjnkwIFi5QveOqRm4y7VkoZKNX+iqs4TvRnH5+HpBnfdMzX/RXBi+Lf/kpTtuZgbOu/QWw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-flip@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.9.8.tgz#c00559a8543a684c7cff4d1128b7152e598fbb1c" - integrity sha512-XbiZ4OfHD6woc0f6Sk7XxB6a7IyMjTRQ4pNU7APjaNxsl3L6qZC8qfCQphWVe3DHx7f3y7jEiPMvNnqRDP1xgA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-gaussian@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.9.8.tgz#d1666167ce1b947b65db5093bb9a00d319bcfe4d" - integrity sha512-ZBl5RA6+4XAD+mtqLfiG7u+qd8W5yqq3RBNca8eFqUSVo1v+eB2tzeLel0CWfVC/z6cw93Awm/nVnm6/CL2Oew== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-invert@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.9.8.tgz#41d6e87faf01a5d8fe7554e322d2aad25f596ab1" - integrity sha512-ESploqCoF6qUv5IWhVLaO5fEcrYZEsAWPFflh6ROiD2mmFKQxfeK+vHnk3IDLHtUwWTkAZQNbk89BVq7xvaNpQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-mask@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.9.8.tgz#fe92132db1a2b9f7718226bc3c37794dd148ce36" - integrity sha512-zSvEisTV4iGsBReitEdnQuGJq9/1xB5mPATadYZmIlp8r5HpD72HQb0WdEtb51/pu9Odt8KAxUf0ASg/PRVUiQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-normalize@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.9.8.tgz#05646aa15b6a789c4ba447edcad77c83c1d51f16" - integrity sha512-dPFBfwTa67K1tRw1leCidQT25R3ozrTUUOpO4jcGFHqXvBTWaR8sML1qxdfOBWs164mE5YpfdTvu6MM/junvCg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-print@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.9.8.tgz#808f723176d0a57186d7558290c7e53a7a8bf812" - integrity sha512-nLLPv1/faehRsOjecXXUb6kzhRcZzImO55XuFZ0c90ZyoiHm4UFREwO5sKxHGvpLXS6RnkhvSav4+IWD2qGbEQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - load-bmfont "^1.4.0" - -"@jimp/plugin-resize@^0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz#65e39d848ed13ba2d6c6faf81d5d590396571d10" - integrity sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - -"@jimp/plugin-resize@^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" - -"@jimp/plugin-rotate@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.9.8.tgz#5eba01f75a397777c6782b7999c9ac6c7ed8a411" - integrity sha512-bpqzQheISYnBXKyU1lIj46uR7mRs0UhgEREWK70HnvFJSlRshdcoNMIrKamyrJeFdJrkYPSfR/a6D0d5zsWf1Q== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-scale@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.9.8.tgz#c875d5e0b377b15b8b398ee402f45e3fc43fea40" - integrity sha512-QU3ZS4Lre8nN66U9dKCOC4FNfaOh/QJFYUmQPKpPS924oYbtnm4OlmsdfpK2hVMSVVyVOis8M+xpA1rDBnIp7w== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-shadow@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.9.8.tgz#ca2d18afa29a1027b77b3e1fb2ce7d4e073a7170" - integrity sha512-t/pE+QS3r1ZUxGIQNmwWDI3c5+/hLU+gxXD+C3EEC47/qk3gTBHpj/xDdGQBoObdT/HRjR048vC2BgBfzjj2hg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugin-threshold@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.9.8.tgz#2d1dde0791f70b2ff2d0b915cab8d40b0e446594" - integrity sha512-WWmC3lnIwOTPvkKu55w4DUY8Ehlzf3nU98bY0QtIzkqxkAOZU5m+lvgC/JxO5FyGiA57j9FLMIf0LsWkjARj7g== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.9.8" - core-js "^3.4.1" - -"@jimp/plugins@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.9.8.tgz#5279dfe22d0d27633f4201ab36103e587b32eb85" - integrity sha512-tD+cxS9SuEZaQ1hhAkNKw9TkUAqfoBAhdWPBrEZDr/GvGPrvJR4pYmmpSYhc5IZmMbXfQayHTTGqjj8D18bToA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/plugin-blit" "^0.9.8" - "@jimp/plugin-blur" "^0.9.8" - "@jimp/plugin-circle" "^0.9.8" - "@jimp/plugin-color" "^0.9.8" - "@jimp/plugin-contain" "^0.9.8" - "@jimp/plugin-cover" "^0.9.8" - "@jimp/plugin-crop" "^0.9.8" - "@jimp/plugin-displace" "^0.9.8" - "@jimp/plugin-dither" "^0.9.8" - "@jimp/plugin-fisheye" "^0.9.8" - "@jimp/plugin-flip" "^0.9.8" - "@jimp/plugin-gaussian" "^0.9.8" - "@jimp/plugin-invert" "^0.9.8" - "@jimp/plugin-mask" "^0.9.8" - "@jimp/plugin-normalize" "^0.9.8" - "@jimp/plugin-print" "^0.9.8" - "@jimp/plugin-resize" "^0.9.8" - "@jimp/plugin-rotate" "^0.9.8" - "@jimp/plugin-scale" "^0.9.8" - "@jimp/plugin-shadow" "^0.9.8" - "@jimp/plugin-threshold" "^0.9.8" - core-js "^3.4.1" - timm "^1.6.1" - -"@jimp/png@^0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz#f24cfc31529900b13a2dd9d4fdb4460c1e4d814e" - integrity sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.16.1" - pngjs "^3.3.3" - -"@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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz#0e8756695687d7574b6bc73efab0acd4260b7a12" - integrity sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== - dependencies: - "@babel/runtime" "^7.7.2" - utif "^2.0.1" - -"@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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz#0dbab37b3202315c91010f16c31766d35a2322cc" - integrity sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/bmp" "^0.16.1" - "@jimp/gif" "^0.16.1" - "@jimp/jpeg" "^0.16.1" - "@jimp/png" "^0.16.1" - "@jimp/tiff" "^0.16.1" - timm "^1.6.1" - -"@jimp/types@^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" - "@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.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz#2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7" - integrity sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== - dependencies: - "@babel/runtime" "^7.7.2" - regenerator-runtime "^0.13.3" - -"@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" +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.0.4" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz" + integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.10" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz" + integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== "@jridgewell/trace-mapping@^0.3.0": version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz" integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -1458,14 +448,14 @@ "@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" + resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== dependencies: cross-spawn "^7.0.1" "@malept/flatpak-bundler@^0.4.0": version "0.4.0" - resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + 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" @@ -1473,17 +463,9 @@ lodash "^4.17.15" tmp-promise "^3.0.2" -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - "@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" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1491,127 +473,117 @@ "@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" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nornagon/put@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@nornagon/put/-/put-0.0.8.tgz#9d497ec46c9364acc3f8b59aa3cf8ee4134ae337" - integrity sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow== +"@realm.io/common@^0.1.1": + version "0.1.1" + resolved "https://registry.npmjs.org/@realm.io/common/-/common-0.1.1.tgz" + integrity sha512-sXc7Ndhh39O9bm7/e0eeAx8keDBO83yoG7WfH04o6PqwVaIwm4T1uT0bhTO6OizP6ojhugZlVSu9HzgUVRE1Ag== -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== +"@rollup/pluginutils@^4.1.2": + version "4.1.2" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.2.tgz" + integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" + estree-walker "^2.0.1" + picomatch "^2.2.2" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== +"@rollup/pluginutils@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.0.tgz#a14bbd058fdbba0a5647143b16ed0d86fb60bd08" + integrity sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA== dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" + estree-walker "^2.0.1" + picomatch "^2.2.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== -"@soda/friendly-errors-webpack-plugin@^1.7.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz#4d4fbb1108993aaa362116247c3d18188a2c6c85" - integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg== - dependencies: - chalk "^3.0.0" - error-stack-parser "^2.0.6" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -"@soda/get-current-script@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" - integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== - "@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" "@tokenizer/token@^0.3.0": version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== "@tootallnate/once@1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@trivago/prettier-plugin-sort-imports@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-3.2.0.tgz#7a32b6b3085c436eda0143b2710c440a4a56db90" + integrity sha512-DnwLe+z8t/dZX5xBbYZV1+C5STkyK/P6SSq3Nk6NXlJZsgvDZX2eN4ND7bMFgGV/NL/YChWzcNf6ziGba1ktQQ== + dependencies: + "@babel/core" "7.13.10" + "@babel/generator" "7.13.9" + "@babel/parser" "7.14.6" + "@babel/traverse" "7.13.0" + "@babel/types" "7.13.0" + javascript-natural-sort "0.7.1" + lodash "4.17.21" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@types/body-parser@*": version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: "@types/connect" "*" "@types/node" "*" -"@types/connect-history-api-fallback@*": - 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" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" "@types/debug@^4.1.6": version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: "@types/ms" "*" -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": +"@types/express-serve-static-core@^4.17.18": version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*": +"@types/express@^4.17.13": version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== dependencies: "@types/body-parser" "*" @@ -1621,721 +593,267 @@ "@types/fs-extra@^9.0.11": version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + 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.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/http-proxy@^1.17.5": - version "1.17.8" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55" - integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== - dependencies: - "@types/node" "*" +"@types/howler@^2.2.6": + version "2.2.6" + resolved "https://registry.npmjs.org/@types/howler/-/howler-2.2.6.tgz" + integrity sha512-9cLZICB6CFNIbwk0kJGvIvlEVI7D0dbbtcj00Uin81jQSMeKafaLq7r3v0RWQOX8BkM+KqboJaOeH5S/qpNqJg== -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/js-cookie@^2.2.6", "@types/js-cookie@^2.x.x": + version "2.2.7" + resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz" + integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== + +"@types/js-cookie@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.1.tgz" + integrity sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ== + +"@types/json-schema@^7.0.9": version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.179" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.179.tgz#490ec3288088c91295780237d2497a3aa9dfb5c5" + integrity sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w== + +"@types/md5@^2.3.2": + version "2.3.2" + resolved "https://registry.npmjs.org/@types/md5/-/md5-2.3.2.tgz" + integrity sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og== + "@types/mime@^1": version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*": version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - "@types/ms@*": version "0.7.31" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@^17.0.0": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== - -"@types/node@^10.12.18": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^14.6.2": - version "14.18.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" - integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/node@*", "@types/node@^14.6.2": + version "14.18.10" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz" + integrity sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ== "@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.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" + resolved "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz" integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== dependencies: "@types/node" "*" xmlbuilder ">=11.0.1" -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/prop-types@*": + version "15.7.4" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + +"@types/qrcode@^1.4.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.4.2.tgz" + integrity sha512-7uNT9L4WQTNJejHTSTdaJhfBSCN73xtXaHFyBJ8TSwiLhe4PRuTue7Iph0s2nG9R/ifUaSnGhLUOZavlBEqDWQ== + dependencies: + "@types/node" "*" "@types/qs@*": version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" 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" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/semver@^7.3.6": - version "7.3.9" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" - integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== +"@types/react-dom@^17.0.11": + version "17.0.11" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz" + integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.39": + version "17.0.39" + resolved "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz" + integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== "@types/serve-static@*": version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: "@types/mime" "^1" "@types/node" "*" -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/tapable@^1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== - -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== +"@types/svgo@^2.6.1": + version "2.6.2" + resolved "https://registry.npmjs.org/@types/svgo/-/svgo-2.6.2.tgz" + integrity sha512-m1SqMc/EDAZ8v0BBX+NmlYytUXtvrMD2/J9LICwnMvAuJwb0GSmACU3XPvcORqE7ghEJA4Mk6NYzpwhQI/biPw== dependencies: - source-map "^0.6.1" + "@types/node" "*" "@types/verror@^1.10.3": version "1.10.5" - resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz#2a1413aded46e67a1fe2386800e291123ed75eb1" + resolved "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz" integrity sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw== -"@types/webpack-dev-server@^3.11.0": - version "3.11.6" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" - -"@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4", "@types/webpack@^4.0.0": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== - dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" - "@types/yargs-parser@*": version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== "@types/yargs@^17.0.1": version "17.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz" integrity sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw== dependencies: "@types/yargs-parser" "*" -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== +"@typescript-eslint/eslint-plugin@^5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz" + integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== dependencies: - "@types/node" "*" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/type-utils" "5.13.0" + "@typescript-eslint/utils" "5.13.0" + debug "^4.3.2" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.2.0" + semver "^7.3.5" + tsutils "^3.21.0" -"@unblockneteasemusic/server@v0.27.0-rc.4": - version "0.27.0-rc.4" - resolved "https://registry.yarnpkg.com/@unblockneteasemusic/server/-/server-0.27.0-rc.4.tgz#56f057fde01f86cb9ed273f63fe66f0e115e8c4f" - integrity sha512-fqFStb71/N9Ek9VoYRF4ConMc1A7LJBBCzOz2Haq3UnXi4W7tlvWb038ih/qh7wH03/qJGLDxxD3oThJQHJFZQ== +"@typescript-eslint/parser@^5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz" + integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== dependencies: - node-windows "^1.0.0-beta.6" - pino "6" - pino-pretty "^7.1.0" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" + debug "^4.3.2" -"@vibrant/color@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/color/-/color-3.2.1-alpha.1.tgz#1bcee4545d2276d36f9a1acb42ab3485a9b489ec" - integrity sha512-cvm+jAPwao2NerTr3d1JttYyLhp3eD/AQBeevxF7KT6HctToWZCwr2AeTr003/wKgbjzdOV1qySnbyOeu+R+Jw== - -"@vibrant/core@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/core/-/core-3.2.1-alpha.1.tgz#9adff0835b5c750be3386ec01669d2a8d6389fdb" - integrity sha512-X9Oa9WfPEQnZ6L+5dLRlh+IlsxJkYTw9b/g3stFKoNXbVRKCeXHmH48l7jIBBOg3VcXOGUdsYBqsTwPNkIveaA== +"@typescript-eslint/scope-manager@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz" + integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/generator" "^3.2.1-alpha.1" - "@vibrant/image" "^3.2.1-alpha.1" - "@vibrant/quantizer" "^3.2.1-alpha.1" - "@vibrant/types" "^3.2.1-alpha.1" - "@vibrant/worker" "^3.2.1-alpha.1" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" -"@vibrant/generator-default@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/generator-default/-/generator-default-3.2.1-alpha.1.tgz#70ae71ea1f72d3e71aa6b244830d01ecae1d755a" - integrity sha512-BWnQhDaz92UhyHnpdAzKXHQecY+jvyMXtzjKYbveFxThm6+HVoLjwONlbck7oyOpFzV2OM7V11XuR85BxaHvjw== +"@typescript-eslint/type-utils@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz" + integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/generator" "^3.2.1-alpha.1" + "@typescript-eslint/utils" "5.13.0" + debug "^4.3.2" + tsutils "^3.21.0" -"@vibrant/generator@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/generator/-/generator-3.2.1-alpha.1.tgz#887b36f7ed978ff94c93cc8a3ac742ce769b6112" - integrity sha512-luS5YvMhwMqG01YTj1dJ+cmkuIw1VCByOR6zIaCOwQqI/mcOs88JBWcA1r2TywJTOPlVpjfnDvAlyaKBKh4dMA== +"@typescript-eslint/types@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz" + integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== + +"@typescript-eslint/typescript-estree@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz" + integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/types" "^3.2.1-alpha.1" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" -"@vibrant/image-browser@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/image-browser/-/image-browser-3.2.1-alpha.1.tgz#fe595bfe0c0ddc412300b5419e1e42d8b88d4380" - integrity sha512-6xWvQfB20sE6YtCWylgEAHuee3iD8h3aFIDbCS2yj7jIelKcYTrrp5jg2d2BhOOB6pC5JzF+QfpCrm0DmAIlgQ== +"@typescript-eslint/utils@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz" + integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== dependencies: - "@vibrant/image" "^3.2.1-alpha.1" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@vibrant/image-node@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/image-node/-/image-node-3.2.1-alpha.1.tgz#2901e09aee05d64ac9e792a951ee0727299ab80f" - integrity sha512-/Io/Rpo4EkO6AhaXdcxUXkbOFhSFtjm0LSAM4c0AyGA5EbC8PyZqjk8b11bQAEMCaYaweFQfTdGD7oVbXe21CQ== +"@typescript-eslint/visitor-keys@5.13.0": + version "5.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz" + integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== dependencies: - "@jimp/custom" "^0.16.1" - "@jimp/plugin-resize" "^0.16.1" - "@jimp/types" "^0.16.1" - "@vibrant/image" "^3.2.1-alpha.1" + "@typescript-eslint/types" "5.13.0" + eslint-visitor-keys "^3.0.0" -"@vibrant/image@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/image/-/image-3.2.1-alpha.1.tgz#8bcde820f5ad873e2e96b00479def80f86e925a5" - integrity sha512-4aF5k79QfyhZOqRovJpbnIjWfe3uuWhY8voqVdd4/qgu4o70/AwVlM+pYmCaJVzI45VWNWWHYA5QlYuKsXnBqQ== - dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/types" "^3.2.1-alpha.1" - -"@vibrant/quantizer-mmcq@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/quantizer-mmcq/-/quantizer-mmcq-3.2.1-alpha.1.tgz#b36ecb48f4bff9ea35ed23389d8af79c079c079a" - integrity sha512-Wuk9PTZtxr8qsWTcgP6lcrrmrq36syVwxf+BUxdgQYntBcQ053SaN34lVGOJ0WPdK5vABoxbYljhceCgiILtZw== - dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/image" "^3.2.1-alpha.1" - "@vibrant/quantizer" "^3.2.1-alpha.1" - -"@vibrant/quantizer@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/quantizer/-/quantizer-3.2.1-alpha.1.tgz#8d29e288ea7acbcd0c9ab8c6b86f80adce606210" - integrity sha512-iHnPx/+n4iLtYLm1GClSfyg2fFbMatFG0ipCyp9M6tXNIPAg+pSvUJSGBnVnH7Nl/bR8Gkkj1h0pJ4RsKcdIrQ== - dependencies: - "@vibrant/color" "^3.2.1-alpha.1" - "@vibrant/image" "^3.2.1-alpha.1" - "@vibrant/types" "^3.2.1-alpha.1" - -"@vibrant/types@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/types/-/types-3.2.1-alpha.1.tgz#54ecf8b4d1045af699bfaf592e455079801bc951" - integrity sha512-ts9u7nsrENoYI5s0MmPOeY5kCLFKvQndKVDOPFCbTA0z493uhDp8mpiQhjFYTf3kPbS04z9zbHLE2luFC7x4KQ== - -"@vibrant/worker@^3.2.1-alpha.1": - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/@vibrant/worker/-/worker-3.2.1-alpha.1.tgz#d09e4ec72902d36b9632c2c0aab855747acf1015" - integrity sha512-mtSlBdHkFNr4FOnMtqtHJxy9z5AsUcZzGlpiHzvWOoaoN9lNTDPwxOBd0q4VTYWuGPrIm6Fuq5m7aRbLv7KqiQ== - dependencies: - "@vibrant/types" "^3.2.1-alpha.1" - -"@vue/babel-helper-vue-jsx-merge-props@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" - integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== - -"@vue/babel-helper-vue-transform-on@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" - integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== - -"@vue/babel-plugin-jsx@^1.0.3": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" - integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - "@vue/babel-helper-vue-transform-on" "^1.0.2" - camelcase "^6.0.0" - html-tags "^3.1.0" - svg-tags "^1.0.0" - -"@vue/babel-plugin-transform-vue-jsx@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7" - integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^4.5.15": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz#f6bc08f8f674e98a260004234cde18b966d72eb0" - integrity sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg== - dependencies: - "@babel/core" "^7.11.0" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-decorators" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.3" - "@vue/babel-preset-jsx" "^1.2.4" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" - -"@vue/babel-preset-jsx@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87" - integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - "@vue/babel-sugar-composition-api-inject-h" "^1.2.1" - "@vue/babel-sugar-composition-api-render-instance" "^1.2.4" - "@vue/babel-sugar-functional-vue" "^1.2.2" - "@vue/babel-sugar-inject-h" "^1.2.2" - "@vue/babel-sugar-v-model" "^1.2.3" - "@vue/babel-sugar-v-on" "^1.2.3" - -"@vue/babel-sugar-composition-api-inject-h@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb" - integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-composition-api-render-instance@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19" - integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-functional-vue@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658" - integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa" - integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2" - integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada" - integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" - camelcase "^5.0.0" - -"@vue/cli-overlay@^4.5.15": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.15.tgz#0700fd6bad39336d4189ba3ff7d25e638e818c9c" - integrity sha512-0zI0kANAVmjFO2LWGUIzdGPMeE3+9k+KeRDXsUqB30YfRF7abjfiiRPq5BU9pOzlJbVdpRkisschBrvdJqDuDg== - -"@vue/cli-plugin-babel@~4.5.0": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.15.tgz#ae4fb2ed54255fe3d84df381dab68509641179ed" - integrity sha512-hBLrwYfFkHldEe34op/YNgPhpOWI5n5DB2Qt9I/1Epeif4M4iFaayrgjvOR9AVM6WbD3Yx7WCFszYpWrQZpBzQ== - dependencies: - "@babel/core" "^7.11.0" - "@vue/babel-preset-app" "^4.5.15" - "@vue/cli-shared-utils" "^4.5.15" - babel-loader "^8.1.0" - cache-loader "^4.1.0" - thread-loader "^2.1.3" - webpack "^4.0.0" - -"@vue/cli-plugin-eslint@~4.5.0": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.15.tgz#5781824a941f34c26336a67b1f6584a06c6a24ff" - integrity sha512-/2Fl6wY/5bz3HD035oSnFRMsKNxDxU396KqBdpCQdwdvqk4mm6JAbXqihpcBRTNPeTO6w+LwGe6FE56PVbJdbg== - dependencies: - "@vue/cli-shared-utils" "^4.5.15" - eslint-loader "^2.2.1" - globby "^9.2.0" - inquirer "^7.1.0" - webpack "^4.0.0" - yorkie "^2.0.0" - -"@vue/cli-plugin-pwa@~4.5.0": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-pwa/-/cli-plugin-pwa-4.5.15.tgz#eb800c418d96b496deec9d063a1798fe6e9c2db8" - integrity sha512-yQzsspaIkjeQyN6btF8ATgbJFU023q1HC8uUpmiBa4QE9EyBlR8fSrKFhcJ0EmT6KnU7PMwlnOJ/OqjguFnufA== - dependencies: - "@vue/cli-shared-utils" "^4.5.15" - webpack "^4.0.0" - workbox-webpack-plugin "^4.3.1" - -"@vue/cli-plugin-router@^4.5.15": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.15.tgz#1e75c8c89df42c694f143b9f1028de3cf5d61e1e" - integrity sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA== - dependencies: - "@vue/cli-shared-utils" "^4.5.15" - -"@vue/cli-plugin-vuex@^4.5.15", "@vue/cli-plugin-vuex@~4.5.0": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz#466c1f02777d02fef53a9bb49a36cc3a3bcfec4e" - integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg== - -"@vue/cli-service@~4.5.0": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.15.tgz#0e9a186d51550027d0e68e95042077eb4d115b45" - integrity sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA== - dependencies: - "@intervolga/optimize-cssnano-plugin" "^1.0.5" - "@soda/friendly-errors-webpack-plugin" "^1.7.1" - "@soda/get-current-script" "^1.0.0" - "@types/minimist" "^1.2.0" - "@types/webpack" "^4.0.0" - "@types/webpack-dev-server" "^3.11.0" - "@vue/cli-overlay" "^4.5.15" - "@vue/cli-plugin-router" "^4.5.15" - "@vue/cli-plugin-vuex" "^4.5.15" - "@vue/cli-shared-utils" "^4.5.15" - "@vue/component-compiler-utils" "^3.1.2" - "@vue/preload-webpack-plugin" "^1.1.0" - "@vue/web-component-wrapper" "^1.2.0" - acorn "^7.4.0" - acorn-walk "^7.1.1" - address "^1.1.2" - autoprefixer "^9.8.6" - browserslist "^4.12.0" - cache-loader "^4.1.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - cli-highlight "^2.1.4" - clipboardy "^2.3.0" - cliui "^6.0.0" - copy-webpack-plugin "^5.1.1" - css-loader "^3.5.3" - cssnano "^4.1.10" - debug "^4.1.1" - default-gateway "^5.0.5" - dotenv "^8.2.0" - dotenv-expand "^5.1.0" - file-loader "^4.2.0" - fs-extra "^7.0.1" - globby "^9.2.0" - hash-sum "^2.0.0" - html-webpack-plugin "^3.2.0" - launch-editor-middleware "^2.2.1" - lodash.defaultsdeep "^4.6.1" - lodash.mapvalues "^4.6.0" - lodash.transform "^4.6.0" - mini-css-extract-plugin "^0.9.0" - minimist "^1.2.5" - pnp-webpack-plugin "^1.6.4" - portfinder "^1.0.26" - postcss-loader "^3.0.0" - ssri "^8.0.1" - terser-webpack-plugin "^1.4.4" - thread-loader "^2.1.3" - url-loader "^2.2.0" - vue-loader "^15.9.2" - vue-style-loader "^4.1.2" - webpack "^4.0.0" - webpack-bundle-analyzer "^3.8.0" - webpack-chain "^6.4.0" - webpack-dev-server "^3.11.0" - webpack-merge "^4.2.2" - optionalDependencies: - vue-loader-v16 "npm:vue-loader@^16.1.0" - -"@vue/cli-shared-utils@^4.5.15", "@vue/cli-shared-utils@^4.5.6": - version "4.5.15" - resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.15.tgz#dba3858165dbe3465755f256a4890e69084532d6" - integrity sha512-SKaej9hHzzjKSOw1NlFmc6BSE0vcqUQMQiv1cxQ2DhVyy4QxZXBmzmiLBUBe+hYZZs1neXW7n//udeN9bCAY+Q== - dependencies: - "@hapi/joi" "^15.0.1" - chalk "^2.4.2" - execa "^1.0.0" - launch-editor "^2.2.1" - lru-cache "^5.1.1" - node-ipc "^9.1.1" - open "^6.3.0" - ora "^3.4.0" - read-pkg "^5.1.1" - request "^2.88.2" - semver "^6.1.0" - strip-ansi "^6.0.0" - -"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" - integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.36" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2 || ^2.0.0" - -"@vue/preload-webpack-plugin@^1.1.0": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" - integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== - -"@vue/web-component-wrapper@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" - integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": +"@vitejs/plugin-react@^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== + resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.2.0.tgz" + integrity sha512-Rywwt0IXXg6yQ0hv3cMT3mtdDcGIw31mGaa+MMMAT651LhoXLF2yFy4LrakiTs7UKs7RPBo9eNgaS8pgl2A6Qw== + dependencies: + "@babel/core" "^7.16.12" + "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-jsx-self" "^7.16.7" + "@babel/plugin-transform-react-jsx-source" "^7.16.7" + "@rollup/pluginutils" "^4.1.2" + react-refresh "^0.11.0" + resolve "^1.22.0" -"@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== +"@xobotyi/scrollbar-width@^1.9.5": + version "1.9.5" + resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz" + integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== -NeteaseCloudMusicApi@^4.5.2: - version "4.5.7" - resolved "https://registry.yarnpkg.com/NeteaseCloudMusicApi/-/NeteaseCloudMusicApi-4.5.7.tgz#16e2704b982843eef811a2fe98507c5f2a9389f0" - integrity sha512-pJbBDlC8EejVVrOundUavZ10U2SLIvs45/MlstL253D/PNQpjdOnAr3+QdIRKuxXnU9eKcczwAkVoe9aDpgkAQ== +NeteaseCloudMusicApi@^4.5.8: + version "4.5.8" + resolved "https://registry.npmjs.org/NeteaseCloudMusicApi/-/NeteaseCloudMusicApi-4.5.8.tgz" + integrity sha512-kdXUS4migCgmegxilo7OfoJNQ/uJM/Lbz44OIJ1r6+/rRR3tPJB7RpbucYtfl5Gk/wBW9DDT+mia3HQGlSWxeQ== dependencies: axios "^0.24.0" express "^4.17.1" @@ -2348,75 +866,103 @@ NeteaseCloudMusicApi@^4.5.2: tunnel "^0.0.6" yargs "^17.1.1" -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== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: - bindings "^1.2.1" - nan "^2.12.1" + event-target-shim "^5.0.0" -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.8: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" negotiator "0.6.3" -acorn-jsx@^5.2.0: +acorn-jsx@^5.3.1: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: +acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn-walk@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.0.0: version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -address@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== +acorn@^8.7.0: + version "8.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 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" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -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== +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + es6-promisify "^5.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +ahooks-v3-count@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz#ddeb392e009ad6e748905b3cbf63a9fd8262ca80" + integrity sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ahooks@^3.1.13: + version "3.1.13" + resolved "https://registry.yarnpkg.com/ahooks/-/ahooks-3.1.13.tgz#23492e2a24f9d7951a52d9359b877e010a0a56e0" + integrity sha512-ZWwWRhikXCWuR+X+LxXK8sWu2KPU7nh7UfaTTB93NhmoeytzN8VODRfVjq8LbT2ow5Q7PuG13143OcW9nN1vBg== + dependencies: + "@types/js-cookie" "^2.x.x" + ahooks-v3-count "^1.0.0" + dayjs "^1.9.1" + intersection-observer "^0.12.0" + js-cookie "^2.x.x" + lodash "^4.17.21" + resize-observer-polyfill "^1.5.1" + screenfull "^5.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.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.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2424,123 +970,88 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.12.3, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= +ajv@^8.0.0, ajv@^8.6.3: + version "8.10.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + 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-align@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - 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@^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" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +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.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: 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== +ansi-styles@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.0, anymatch@~3.1.2: +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@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.1.0.tgz#db4108c005ca5ea53b00d1eb4cd6f6c265fafdc9" - integrity sha512-rbdMe0sIVE95cpYqMQh4IFqhTDdB8LkKlTRcbO/Y3QleRYoIePejIbX774IYomYYzZbJfJuX7pLRiGvSdIxIYA== +app-builder-bin@3.7.1: + version "3.7.1" + resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz" + integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw== -app-builder-lib@23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.0.1.tgz#a916f525f65875c6e05aa288413f1aa7c08a19b6" - integrity sha512-XO+xQ7oVmGjGyBttXfaE2WawgPYQjBhLu8ZZhvGUiKL8WiLFrRUunoaoF+WzwLda4pMIvEEd7MGQ1VRopWO4tQ== +app-builder-lib@22.14.13: + version "22.14.13" + resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.13.tgz" + integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.2.0" + "@electron/universal" "1.0.5" "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "23.0.0" - builder-util-runtime "9.0.0" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chromium-pickle-js "^0.2.0" debug "^4.3.2" ejs "^3.1.6" - electron-osx-sign "^0.6.0" - electron-publish "23.0.0" + electron-osx-sign "^0.5.0" + electron-publish "22.14.13" form-data "^4.0.0" fs-extra "^10.0.0" hosted-git-info "^4.0.2" @@ -2554,96 +1065,92 @@ app-builder-lib@23.0.1: semver "^7.3.5" temp-file "^3.4.0" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.0.3: 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== -arch@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - are-we-there-yet@~1.1.2: version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== 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" +arg@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz" + integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -args@^5.0.0, args@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/args/-/args-5.0.1.tgz#4bf298df90a4799a09521362c579278cc2fdd761" - integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ== - dependencies: - camelcase "5.0.0" - chalk "2.4.2" - leven "2.1.0" - mri "1.1.4" - arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= +array-includes@^3.1.3, array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== dependencies: - array-uniq "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + is-string "^1.0.7" array-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== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asar@^3.1.0: +array.prototype.flatmap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz" + integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.19.0" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asar@^3.0.3: version "3.1.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" + resolved "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz" integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== dependencies: chromium-pickle-js "^0.2.0" @@ -2653,246 +1160,119 @@ asar@^3.1.0: optionalDependencies: "@types/glob" "^7.1.1" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + 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" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-types@^0.13.2: version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - 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" - 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" + resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" +async@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 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" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -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.3.1: +atomically@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" + resolved "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz" integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== -autoprefixer@^9.8.6: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== +autoprefixer@^10.4.2: + version "10.4.2" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz" + integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" + browserslist "^4.19.1" + caniuse-lite "^1.0.30001297" + fraction.js "^4.1.2" normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@^0.21.0: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - axios@^0.24.0: version "0.24.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" + resolved "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz" integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== dependencies: follow-redirects "^1.14.4" -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== +axios@^0.26.0: + version "0.26.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz" + integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-extract-comments@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" - integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== - dependencies: - babylon "^6.18.0" - -babel-loader@^8.1.0: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" - integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^1.4.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + follow-redirects "^1.14.8" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.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== base@^0.11.1: version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -2903,58 +1283,38 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" -bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== - dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== +big-integer@^1.6.16: + version "1.6.51" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - 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, bindings@^1.5.0: +bindings@^1.5.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.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -2963,34 +1323,19 @@ bl@^4.0.3: 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.1.1, bluebird@^3.5.0, 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" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - body-parser@1.19.2: version "1.19.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz" integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== dependencies: bytes "3.1.2" @@ -3004,31 +1349,19 @@ body-parser@1.19.2: raw-body "2.4.3" type-is "~1.6.18" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 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== + version "3.1.4" + resolved "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz" + integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w== boxen@^5.0.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + resolved "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: ansi-align "^3.0.0" @@ -3042,15 +1375,15 @@ boxen@^5.0.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" -braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: +braces@^2.2.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -3066,96 +1399,51 @@ braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: braces@^3.0.1, 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" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== +broadcast-channel@^3.4.1: + version "3.7.0" + resolved "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz" + integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg== dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" + "@babel/runtime" "^7.7.2" + detect-node "^2.1.0" + js-sha3 "0.8.0" + microseconds "0.2.0" + nano-time "1.0.0" + oblivious-set "1.0.0" + rimraf "3.0.2" + unload "2.2.0" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== +browserslist@^4.17.5, browserslist@^4.19.1: + version "4.19.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1: - version "4.19.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" - integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== - dependencies: - caniuse-lite "^1.0.30001312" - electron-to-chromium "^1.4.71" + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.1" picocolors "^1.0.0" +bson@4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/bson/-/bson-4.4.1.tgz" + integrity sha512-Uu4OCZa0jouQJCKOk1EmmyqtdWAP5HVLru4lQxTwzJzxT+sJ13lVpEZU/MATDxtHiekWMAL84oQY3Xn1LpJVSg== + dependencies: + buffer "^5.6.0" + buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + 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.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + 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" @@ -3163,56 +1451,27 @@ buffer-alloc@^1.2.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" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - buffer-equal@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.1.0, buffer@^5.2.0, buffer@^5.5.0: +buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -3220,31 +1479,23 @@ buffer@^5.1.0, buffer@^5.2.0, buffer@^5.5.0: builder-util-runtime@8.9.2: version "8.9.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28" + resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz" integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A== dependencies: debug "^4.3.2" sax "^1.2.4" -builder-util-runtime@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz#3a40ba7382712ccdb24471567f91d7c167e00830" - integrity sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA== - dependencies: - debug "^4.3.2" - sax "^1.2.4" - -builder-util@23.0.0: - version "23.0.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.0.0.tgz#63a6d0d585f49b2c502d64bb074098827e2a9df3" - integrity sha512-OkRo/W19it+9ulWoqVKIWmfTS1i6J6vaWIB4j33u5+vNbhyRP7PkBMzB878gBDGyuBwjT/Oq4bh8DzrrB374IA== +builder-util@22.14.13: + version "22.14.13" + resolved "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz" + integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" "@types/fs-extra" "^9.0.11" - app-builder-bin "4.1.0" + app-builder-bin "3.7.1" bluebird-lst "^1.0.9" - builder-util-runtime "9.0.0" + builder-util-runtime "8.9.2" chalk "^4.1.1" cross-spawn "^7.0.3" debug "^4.3.2" @@ -3257,76 +1508,21 @@ builder-util@23.0.0: stat-mode "^1.0.0" temp-file "^3.4.0" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - busboy@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" + resolved "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz" integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== dependencies: dicer "0.3.0" -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -3339,21 +1535,9 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - 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" @@ -3366,118 +1550,67 @@ cacheable-request@^6.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" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - 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== -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - camel-case@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: 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== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001312: - version "1.0.30001312" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== +caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297: + version "1.0.30001310" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz" + integrity sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg== capital-case@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + resolved "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz" integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== dependencies: no-case "^3.0.4" tslib "^2.0.3" upper-case-first "^2.0.2" -case-sensitive-paths-webpack-plugin@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c= caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, 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@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -3486,17 +1619,18 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.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== +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + 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.1: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3504,7 +1638,7 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: change-case@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + resolved "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz" integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== dependencies: camel-case "^4.1.2" @@ -3520,29 +1654,14 @@ change-case@^4.1.2: snake-case "^3.0.4" tslib "^2.0.3" -charcodes@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" - integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - charenc@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.2, chokidar@^3.4.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -3555,71 +1674,43 @@ check-types@^8.0.3: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chownr@^1.1.1: 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== -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" + resolved "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - 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== ci-info@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== +clang-format@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/clang-format/-/clang-format-1.6.0.tgz" + integrity sha512-W3/L7fWkA8DoLkz9UGjrRnNi+J5a5TuS2HDLqk6WsicpOzb66MBu4eY/EcXhicHriVnAXWQVyk5/VeHWY6w4ow== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + async "^1.5.2" + glob "^7.0.0" + resolve "^1.1.6" class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -3627,108 +1718,27 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - 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== +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== cli-boxes@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-color@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.1.tgz#93e3491308691f1e46beb78b63d0fb2585e42ba6" - integrity sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg== - dependencies: - d "^1.0.1" - es5-ext "^0.10.53" - es6-iterator "^2.0.3" - memoizee "^0.4.15" - timers-ext "^0.1.7" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -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-highlight@^2.1.4: - version "2.1.11" - resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== - dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - -cli-spinners@^2.0.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + 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" -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboard@^2.0.0: - version "2.0.10" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6" - integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -clipboardy@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" - integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== - dependencies: - arch "^2.1.1" - execa "^1.0.0" - is-wsl "^2.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -3737,7 +1747,7 @@ cliui@^6.0.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" @@ -3746,193 +1756,120 @@ cliui@^7.0.2: 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" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - 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= collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.3: +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.0.0, color-name@~1.1.4: +color-name@^1.1.4, 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-string@^1.6.0, color-string@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" +color.js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/color.js/-/color.js-1.2.0.tgz" + integrity sha512-0ajlNgWWOR7EK9N6l2h0YKsZPzMCLQG5bheCoTGpGfhkR8tB5eQNItdua1oFHDTeq9JKgSzQJqo+Gp3V/xW+Lw== -color@^3.0.0, color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -color@^4.0.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.1.tgz#498aee5fce7fc982606c8875cab080ac0547c884" - integrity sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - -colorette@^2.0.7: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +colord@^2.9.2: + version "2.9.2" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== colors@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= 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.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== +command-line-args@^5.1.1: + version "5.2.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" commander@2.9.0: version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= dependencies: graceful-readlink ">= 1.0.0" -commander@^2.18.0, 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@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" 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== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== compare-version@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + resolved "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= -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-emitter@^1.2.1: 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== -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" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.2: +concat-stream@^1.4.6, concat-stream@^1.4.7, 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" @@ -3940,25 +1877,25 @@ concat-stream@^1.5.0, concat-stream@^1.6.2: 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== +conf@^10.0.3: + version "10.1.1" + resolved "https://registry.npmjs.org/conf/-/conf-10.1.1.tgz" + integrity sha512-z2civwq/k8TMYtcn3SVP0Peso4otIWnHtcTuHhQ0zDZDdP4NTxqEc8owfkz4zBsdMYdn/LFcE+ZhbCeqkhtq3Q== dependencies: - ajv "^6.12.2" - atomically "^1.3.1" + ajv "^8.6.3" + ajv-formats "^2.1.1" + atomically "^1.7.0" debounce-fn "^4.0.0" - dot-prop "^5.2.0" - env-paths "^2.2.0" + dot-prop "^6.0.1" + env-paths "^2.2.1" json-schema-typed "^7.0.3" - make-dir "^3.1.0" - onetime "^5.1.0" + onetime "^5.1.2" pkg-up "^3.1.0" - semver "^7.3.2" + semver "^7.3.5" config-chain@^1.1.11: version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -3966,7 +1903,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" @@ -3976,147 +1913,95 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - 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" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - constant-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + resolved "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz" integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== dependencies: no-case "^3.0.4" tslib "^2.0.3" upper-case "^2.0.2" -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" 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" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.7.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" +cookie-parser@^1.4.6: + version "1.4.6" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz" + integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== + dependencies: + cookie "0.4.1" + cookie-signature "1.0.6" + cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= +cookie@0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + cookie@0.4.2: version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" - integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== +copy-to-clipboard@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.6.5: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" - integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== - dependencies: - browserslist "^4.19.1" - semver "7.0.0" - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.20.0, core-js@^3.4.1, core-js@^3.6.5: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" - integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== + toggle-selection "^1.0.6" core-util-is@1.0.2: 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= 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" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + object-assign "^4" + vary "^1" -cosmiconfig@^7.0.0: +cosmiconfig@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" @@ -4127,65 +2012,21 @@ cosmiconfig@^7.0.0: crc@^3.8.0: version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + resolved "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz" integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== dependencies: buffer "^5.1.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -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.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: +cross-env@^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-env/-/cross-env-7.0.3.tgz" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -4194,86 +2035,25 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: crypt@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-js@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== - 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== -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== +css-in-js-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz" + integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^3.5.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" + hyphenate-style-name "^1.0.2" + isobject "^3.0.1" css-select@^4.1.3: version "4.2.1" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz" integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== dependencies: boolbase "^1.0.0" @@ -4282,430 +2062,238 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - css-what@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.0.0, cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: +csso@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" -custom-event-polyfill@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz#9bc993ddda937c1a30ccd335614c6c58c4f87aee" - integrity sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w== +csstype@^3.0.2: + version "3.0.10" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" +csstype@^3.0.6: + version "3.0.11" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz" + integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" data-uri-to-buffer@3: version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== -dateformat@^4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - -dayjs@^1.8.36: - version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== - -dbus-next@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/dbus-next/-/dbus-next-0.9.2.tgz#d69a24ea5b54d90ab6bd543c7b81bcb965a99f93" - integrity sha512-tzQq/+wrTZ2yU+U5PoeXc97KABhX2v55C/T0finH3tSKYuI8H/SqppIFymBBrUHcK13LvEGY3vdj3ikPPenL5g== - dependencies: - "@nornagon/put" "0.0.8" - event-stream "3.3.4" - hexy "^0.2.10" - jsbi "^2.0.5" - long "^4.0.0" - safe-buffer "^5.1.1" - xml2js "^0.4.17" - optionalDependencies: - abstract-socket "^2.0.0" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= +dayjs@^1.10.8, dayjs@^1.9.1: + version "1.10.8" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.8.tgz" + integrity sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow== 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.6.9, debug@^2.2.0, debug@^2.3.3, 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@4, 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, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" -debug@^3.0.1, debug@^3.1.1, debug@^3.2.6: +debug@^3.1.0: 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" decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 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" - 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" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.3.2.tgz#1663691629d4dbfe364fa12a2a4f0aa86aa3a050" - integrity sha1-FmNpFinU2/42T6EqKk8KqGqjoFA= - -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -default-gateway@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10" - integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA== - dependencies: - execa "^3.3.0" - -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" +deepmerge@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.1.0.tgz" + integrity sha512-Q89Z26KAfA3lpPGhbF6XMfYAm3jIV3avViy6KOJ2JLzFbeWHOvPQUu5aSJIWXap3gDZC2y1eF5HXEPI2wGqgvw== 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== -define-properties@^1.1.2, define-properties@^1.1.3: +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +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" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" -degenerator@2.2.0, degenerator@^2.2.0, degenerator@^3.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-2.2.0.tgz#49e98c11fa0293c5b26edfbb52f15729afcdb254" - integrity sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg== +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +degenerator@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz" + integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== dependencies: ast-types "^0.13.2" escodegen "^1.8.1" esprima "^4.0.0" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -del@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" + vm2 "^3.9.8" delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - 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@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: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -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-libc@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== -detect-node@^2.0.4: +detect-node@^2.0.4, detect-node@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dexie@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/dexie/-/dexie-3.2.1.tgz#ef21456d725e700c1ab7ac4307896e4fdabaf753" - integrity sha512-Y8oz3t2XC9hvjkP35B5I8rUkKKwM36GGRjWQCMjzIYScg7W+GHKDXobSYswkisW7CxL1/tKQtggMDsiWqDUc1g== +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" dicer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" + resolved "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz" integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== dependencies: streamsearch "0.1.2" -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== dijkstrajs@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" + resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz" integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== dir-compare@^2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" + resolved "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz" integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== dependencies: buffer-equal "1.0.0" @@ -4713,44 +2301,26 @@ dir-compare@^2.4.0: commander "2.9.0" minimatch "3.0.4" -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" -discord-rich-presence@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/discord-rich-presence/-/discord-rich-presence-0.0.8.tgz#7a2b41ff87a278e8a2c8835cd91c9890d6b9fbdd" - integrity sha512-IpVMPjv15C9UvppxvrrGdv6bzQHOW1P1vLoMH15HvdJwGJ3dBd2bnrJ63Uy36YRUfrAMxGLiwUDHncvC8AuPaQ== - dependencies: - discord-rpc "github:discordjs/rpc" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -"discord-rpc@github:discordjs/rpc": - version "4.0.1" - resolved "https://codeload.github.com/discordjs/rpc/tar.gz/9e7de2a6d917591f10a66389e62e1dc053c04fec" +dmg-builder@22.14.13: + version "22.14.13" + resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.13.tgz" + integrity sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg== dependencies: - node-fetch "^2.6.1" - ws "^7.3.1" - optionalDependencies: - register-scheme "github:devsnek/node-register-scheme" - -dmg-builder@23.0.1: - version "23.0.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.0.1.tgz#fc5d3e6939b4ca7769d83224d48c2e8da453e84d" - integrity sha512-pyqUXprUD5bWeCfW/heG80iJdf6/pF0v8WjP2VDk0fATMYJiYqZpmkWy00BxAEAnFRIqv3iXYRtGlgwFjhr+3g== - dependencies: - app-builder-lib "23.0.1" - builder-util "23.0.0" - builder-util-runtime "9.0.0" + app-builder-lib "22.14.13" + builder-util "22.14.13" + builder-util-runtime "8.9.2" fs-extra "^10.0.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" @@ -4758,9 +2328,9 @@ dmg-builder@23.0.1: dmg-license "^1.0.9" dmg-license@^1.0.9: - version "1.0.11" - resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" - integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + version "1.0.10" + resolved "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.10.tgz" + integrity sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A== dependencies: "@types/plist" "^3.0.1" "@types/verror" "^1.10.3" @@ -4771,43 +2341,23 @@ dmg-license@^1.0.9: smart-buffer "^4.0.2" verror "^1.10.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" + esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 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@0: version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" @@ -4815,63 +2365,48 @@ dom-serializer@0: dom-serializer@^1.0.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz" integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -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== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@1, domelementtype@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domhandler@^2.3.0: version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: +domhandler@^4.2.0, domhandler@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz" integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== dependencies: domelementtype "^2.2.0" -domready@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/domready/-/domready-1.0.8.tgz#91f252e597b65af77e745ae24dd0185d5e26d58c" - integrity sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw= - -domutils@^1.5.1, domutils@^1.7.0: +domutils@^1.5.1: version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" -domutils@^2.5.2, domutils@^2.8.0: +domutils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -4880,7 +2415,7 @@ domutils@^2.5.2, domutils@^2.8.0: dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -4888,64 +2423,36 @@ dot-case@^3.0.4: dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + 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.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - dotenv@^9.0.2: version "9.0.2" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + 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, 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== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -duplexify@^4.1.1, duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -easy-stack@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" - integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== - ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -4953,32 +2460,27 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - ejs@^3.1.6: version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz" integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== dependencies: jake "^10.6.1" -electron-builder@^22.2.0, electron-builder@^23.0.0: - version "23.0.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.0.1.tgz#2e5481ff66fe4e4d171e393a8ac2189338d054a6" - integrity sha512-0ISmpdJlIjcKxuLu0JOygA4c90y1aOiNTAqML2ln2BQJ+UsfizWyBeVOEJdZnEurmCAt1ICeiQ9DeQcMgCLnnQ== +electron-builder@^22.14.13: + version "22.14.13" + resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.13.tgz" + integrity sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw== dependencies: "@types/yargs" "^17.0.1" - app-builder-lib "23.0.1" - builder-util "23.0.0" - builder-util-runtime "9.0.0" + app-builder-lib "22.14.13" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chalk "^4.1.1" - dmg-builder "23.0.1" + dmg-builder "22.14.13" fs-extra "^10.0.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -4986,26 +2488,9 @@ electron-builder@^22.2.0, electron-builder@^23.0.0: update-notifier "^5.1.0" yargs "^17.0.1" -electron-context-menu@^2.3.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/electron-context-menu/-/electron-context-menu-2.5.2.tgz#7f2383f011d0d53f282300e0d80b44e2f64c16a7" - integrity sha512-1cEQR6fA9ktFsRBc+eXPwvrOgAPytUD7rUV4iBAA5zTrLAPKokJ23xeMjcK2fjrDPrlFRBxcLz0KP+GUhMrSCQ== - dependencies: - cli-truncate "^2.1.0" - electron-dl "^3.1.0" - electron-is-dev "^1.2.0" - -electron-debug@^3.1.0: +electron-devtools-installer@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/electron-debug/-/electron-debug-3.2.0.tgz#46a15b555c3b11872218c65ea01d058aa0814920" - integrity sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow== - dependencies: - electron-is-dev "^1.1.0" - electron-localshortcut "^3.1.0" - -electron-devtools-installer@^3.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz#acc48d24eb7033fe5af284a19667e73b78d406d0" + resolved "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz" integrity sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ== dependencies: rimraf "^3.0.2" @@ -5013,53 +2498,15 @@ electron-devtools-installer@^3.2: tslib "^2.1.0" unzip-crx-3 "^0.2.0" -electron-dl@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/electron-dl/-/electron-dl-3.3.0.tgz#4e422e276c627373ba61fcf3f92ffa088988db1a" - integrity sha512-Zwaz/OMGPIfBLV2SQH4sTsdDOs/U4y5AOHfremMBXEpjIxX+SiTx845DZAvJJwgb5hfowyWOBLiJhd/emBNLLQ== - dependencies: - ext-name "^5.0.0" - pupa "^2.0.1" - unused-filename "^2.1.0" - -electron-icon-builder@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/electron-icon-builder/-/electron-icon-builder-1.0.2.tgz#da4875d3e4241bcfec2eedfc0c6c9424918d65e5" - integrity sha512-ti7Xp6UmOmq+AThfrnmPVaCiMYLWaVcyTVkPommmFHb4GkQhtOeTJtwtko+FnnC7RFBLo4MogDrz611lNdSVPw== - dependencies: - args "^5.0.0" - icon-gen "^2.0.0" - jimp "^0.9.3" - -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.1.0, 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.1.0: - 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.0: +electron-log@^4.4.6: version "4.4.6" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-4.4.6.tgz#e7824fc725370384f6edaaac0480c423e570dc69" + resolved "https://registry.npmjs.org/electron-log/-/electron-log-4.4.6.tgz" integrity sha512-nirYgRdY+F+vclr8ijdwy2vW03IzFpDHTaKNWu76dEN21Y76+smcES5knS7cgHUUB0qNLOi8vZO36taakjbSXA== -electron-osx-sign@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz#9b69c191d471d9458ef5b1e4fdd52baa059f1bb8" - integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg== +electron-osx-sign@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz" + integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ== dependencies: bluebird "^3.5.0" compare-version "^0.1.2" @@ -5068,153 +2515,100 @@ electron-osx-sign@^0.6.0: minimist "^1.2.0" plist "^3.0.1" -electron-publish@23.0.0: - version "23.0.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.0.0.tgz#d17c7e407a8bd2c6fc359be2e36d1f88d69cca74" - integrity sha512-T4UuPjwaGrm+5DYkmSLlY3ae8EQ8LvkDdO/ZHiyIa7o43myjKXDLkYVISA4mH4FtGVBk1SSQF0CNH96TimZK6g== +electron-publish@22.14.13: + version "22.14.13" + resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.13.tgz" + integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "23.0.0" - builder-util-runtime "9.0.0" + builder-util "22.14.13" + builder-util-runtime "8.9.2" chalk "^4.1.1" fs-extra "^10.0.0" lazy-val "^1.0.5" mime "^2.5.2" -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== +electron-store@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/electron-store/-/electron-store-8.0.1.tgz" + integrity sha512-ZyLvNywiqSpbwC/pp89O/AycVWY/UJIkmtyzF2Bd0Nm/rLmcFc0NTGuLdg6+LE8mS8qsiK5JMoe4PnrecLHH5w== dependencies: - conf "^7.1.2" - type-fest "^0.16.0" + conf "^10.0.3" + type-fest "^1.0.2" -electron-to-chromium@^1.4.71: - version "1.4.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.73.tgz#422f6f514315bcace9615903e4a9b6b9fa283137" - integrity sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA== +electron-to-chromium@^1.4.17: + version "1.4.67" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.67.tgz" + integrity sha512-A6a2jEPLueEDfb7kvh7/E94RKKnIb01qL+4I7RFxtajmo+G9F5Ei7HgY5PRbQ4RDrh6DGDW66P0hD5XI2nRAcg== -electron-updater@^4.3.5: - version "4.6.5" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.6.5.tgz#e9a75458bbfd6bb41a58a829839e150ad2eb2d3d" - integrity sha512-kdTly8O9mSZfm9fslc1mnCY+mYOeaYRy7ERa2Fed240u01BKll3aiupzkd07qKw69KvhBSzuHroIW3mF0D8DWA== +electron@^17.0.0: + version "17.0.0" + resolved "https://registry.npmjs.org/electron/-/electron-17.0.0.tgz" + integrity sha512-3UXcBQMwbMWdPvGHaSdPMluHrd+/bc+K143MyvE5zVZ+S1XCHt4sau7dj6svJHns5llN0YG/c6h/vRfadIp8Zg== dependencies: - "@types/semver" "^7.3.6" - builder-util-runtime "8.9.2" - fs-extra "^10.0.0" - js-yaml "^4.1.0" - lazy-val "^1.0.5" - lodash.escaperegexp "^4.1.2" - lodash.isequal "^4.5.0" - semver "^7.3.5" - -electron@^13.6.7: - version "13.6.9" - resolved "https://registry.yarnpkg.com/electron/-/electron-13.6.9.tgz#7bd83cc1662ceaaa09dcd132a7b507cec888b028" - integrity sha512-Es/sBy85NIuqsO9MW41PUCpwIkeinlTQ7g0ainfnmRAM2rmog3GBxVCaoV5dzEjwTF7TKG1Yr/E7Z3qHmlfWAg== - dependencies: - "@electron/get" "^1.0.1" + "@electron/get" "^1.13.0" "@types/node" "^14.6.2" extract-zip "^1.0.3" -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -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" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encode-utf8@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz" integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== encodeurl@^1.0.2, 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= -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: 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" -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - entities@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -env-paths@^2.2.0: +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" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - 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" -error-stack-parser@^2.0.0, error-stack-parser@^2.0.6: +error-stack-parser@^2.0.6: version "2.0.7" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz" integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== dependencies: stackframe "^1.1.1" -es-abstract@^1.17.2, es-abstract@^1.19.1: +es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== dependencies: call-bind "^1.0.2" @@ -5240,87 +2634,178 @@ es-abstract@^1.17.2, es-abstract@^1.19.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" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - 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== -es6-iterator@^2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.1.1: +es6-promise@^4.0.3: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: - d "^1.0.1" - ext "^1.1.2" + es6-promise "^4.0.3" -es6-weak-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" +esbuild-android-arm64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.21.tgz#8842d0c3b7c81fbe2dc46ddb416ffd6eb822184b" + integrity sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ== + +esbuild-darwin-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.21.tgz#ec7df02ad88ecf7f8fc23a3ed7917e07dea0c9c9" + integrity sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ== + +esbuild-darwin-arm64@0.14.21: + version "0.14.21" + resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.21.tgz" + integrity sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ== + +esbuild-freebsd-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.21.tgz#f5b5fc1d031286c3a0949d1bda7db774b7d0404e" + integrity sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g== + +esbuild-freebsd-arm64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.21.tgz#a05cab908013e4992b31a675850b8c44eb468c0c" + integrity sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA== + +esbuild-linux-32@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.21.tgz#638d244cc58b951f447addb4bade628d126ef84b" + integrity sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg== + +esbuild-linux-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.21.tgz#8eb634abee928be7e35b985fafbfef2f2e31397f" + integrity sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA== + +esbuild-linux-arm64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.21.tgz#e05599ea6253b58394157da162d856f3ead62f9e" + integrity sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g== + +esbuild-linux-arm@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.21.tgz#1ae1078231cf689d3ba894a32d3723c0be9b91fd" + integrity sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w== + +esbuild-linux-mips64le@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.21.tgz#f05be62d126764e99b37edcac5bb49b78c7a8890" + integrity sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A== + +esbuild-linux-ppc64le@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.21.tgz#592c98d82dad7982268ef8deed858c4566f07ab1" + integrity sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ== + +esbuild-linux-riscv64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.21.tgz#0db7bd6f10d8f9afea973a7d6bf87b449b864b7b" + integrity sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q== + +esbuild-linux-s390x@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.21.tgz#254a9354d34c9d1b41a3e21d2ec9269cbbb2c5df" + integrity sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA== + +esbuild-netbsd-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.21.tgz#4cb783d060b02bf3b897a9a12cce2b3b547726f8" + integrity sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g== + +esbuild-openbsd-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.21.tgz#f886b93feefddbe573528fa4b421c9c6e2bc969b" + integrity sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA== + +esbuild-sunos-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.21.tgz#3829e4d57d4cb6950837fe90b0b67cdfb37cf13a" + integrity sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA== + +esbuild-windows-32@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.21.tgz#b858a22d1a82e53cdc59310cd56294133f7a95e7" + integrity sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A== + +esbuild-windows-64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.21.tgz#7bb5a027d5720cf9caf18a4bedd11327208f1f12" + integrity sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA== + +esbuild-windows-arm64@0.14.21: + version "0.14.21" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.21.tgz#25df54521ad602c826b262ea2e7cc1fe80f5c2f5" + integrity sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw== + +esbuild@^0.14.14: + version "0.14.21" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.14.21.tgz" + integrity sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A== + optionalDependencies: + esbuild-android-arm64 "0.14.21" + esbuild-darwin-64 "0.14.21" + esbuild-darwin-arm64 "0.14.21" + esbuild-freebsd-64 "0.14.21" + esbuild-freebsd-arm64 "0.14.21" + esbuild-linux-32 "0.14.21" + esbuild-linux-64 "0.14.21" + esbuild-linux-arm "0.14.21" + esbuild-linux-arm64 "0.14.21" + esbuild-linux-mips64le "0.14.21" + esbuild-linux-ppc64le "0.14.21" + esbuild-linux-riscv64 "0.14.21" + esbuild-linux-s390x "0.14.21" + esbuild-netbsd-64 "0.14.21" + esbuild-openbsd-64 "0.14.21" + esbuild-sunos-64 "0.14.21" + esbuild-windows-32 "0.14.21" + esbuild-windows-64 "0.14.21" + esbuild-windows-arm64 "0.14.21" 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-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@1.0.5, 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" + 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== escodegen@^1.8.1: version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" @@ -5330,281 +2815,166 @@ escodegen@^1.8.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.1.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz#8e6d17c7436649e98c4c2189868562921ef563de" - integrity sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw== +eslint-plugin-react-hooks@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz" + integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== -eslint-loader@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== +eslint-plugin-react@^7.29.3: + version "7.29.3" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.3.tgz" + integrity sha512-MzW6TuCnDOcta67CkpDyRfRsEVx9FNMDV8wZsDqe1luHPdGTrQIUaUXD27Ja3gHsdOIs/cXzNchWGlqm+qRVRg== dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-plugin-prettier@^3.3.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-vue@^7.9.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" - integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== - dependencies: - eslint-utils "^2.1.0" - natural-compare "^1.4.0" + array-includes "^3.1.4" + array.prototype.flatmap "^1.2.5" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.0" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" semver "^6.3.0" - vue-eslint-parser "^7.10.0" + string.prototype.matchall "^4.0.6" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.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" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-utils@^2.1.0: +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + 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-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^6.7.2: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^8.10.0: + version "8.10.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz" + integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== dependencies: - "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^1.2.0" + "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" + glob-parent "^6.0.1" + globals "^13.6.0" + ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" - js-yaml "^3.13.1" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash.merge "^4.6.2" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2, espree@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^9.3.1: + version "9.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz" + integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + acorn "^8.7.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^3.3.0" esprima@^4.0.0, esprima@^4.0.1: 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== -esquery@^1.0.1, esquery@^1.4.0: +esquery@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + 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" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: +etag@^1.8.1, etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -event-pubsub@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" - integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== - -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" - -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.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -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@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.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" - -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= +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -5617,28 +2987,19 @@ expand-brackets@^2.1.4: expand-template@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -express-fileupload@^1.1.9, express-fileupload@^1.2.0: +express-fileupload@^1.1.9: version "1.3.1" - resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.3.1.tgz#3238472def305b8cb4cc5936a953761d0c442011" + resolved "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.3.1.tgz" integrity sha512-LD1yabD3exmWIFujKGDnT1rmxSomaqQSlUvzIsrA1ZgwCJ6ci7lg2YHFGM3Q6DfK+Yk0gAVU7GWLE7qDMwZLkw== dependencies: busboy "^0.3.1" -express-http-proxy@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/express-http-proxy/-/express-http-proxy-1.6.3.tgz#f3ef139ffd49a7962e7af0462bbcca557c913175" - integrity sha512-/l77JHcOUrDUX8V67E287VEUQT0lbm71gdGVoodnlWBziarYKgMcpqT7xvh/HM8Jv52phw8Bd8tY+a7QjOr7Yg== - dependencies: - debug "^3.0.1" - es6-promise "^4.1.1" - raw-body "^2.3.0" - -express@^4.16.3, express@^4.17.1: +express@^4.17.1, express@^4.17.3: version "4.17.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + resolved "https://registry.npmjs.org/express/-/express-4.17.3.tgz" integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== dependencies: accepts "~1.3.8" @@ -5672,38 +3033,16 @@ express@^4.16.3, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" @@ -5711,21 +3050,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: 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== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.2, extglob@^2.0.4: +extglob@^2.0.2: version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -5739,7 +3069,7 @@ extglob@^2.0.2, extglob@^2.0.4: 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" @@ -5747,52 +3077,24 @@ extract-zip@^1.0.3: mkdirp "^0.5.4" yauzl "^2.10.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" - extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== -fast-deep-equal@^3.1.1: +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" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -5803,111 +3105,74 @@ fast-glob@^3.2.9: 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== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-redact@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" - integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== +fast-shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz" + integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fastest-stable-stringify@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz" + integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== fastq@^1.6.0: version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 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" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" + flat-cache "^3.0.4" file-type@16.5.3: version "16.5.3" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06" + resolved "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz" integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A== dependencies: readable-web-to-node-stream "^3.0.0" strtok3 "^6.2.4" token-types "^4.1.1" -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" + 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== file-uri-to-path@2: version "2.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz" integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== filelist@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz" integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== dependencies: minimatch "^3.0.4" -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -5917,14 +3182,14 @@ fill-range@^4.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" + 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" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -5935,116 +3200,59 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" + array-back "^3.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.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" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 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== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" + flatted "^3.1.0" + rimraf "^3.0.2" -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" +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatstr@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" - integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.4: +follow-redirects@^1.14.4, follow-redirects@^1.14.8: version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== for-in@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -6053,7 +3261,7 @@ form-data@^4.0.0: 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" @@ -6062,78 +3270,52 @@ form-data@~2.3.2: forwarded@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.1.2: + version "4.2.0" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -friendly-errors-webpack-plugin@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" - integrity sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw== - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" - integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== + version "10.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^4.0.2: +fs-extra@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" 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.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" + 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" @@ -6142,7 +3324,7 @@ fs-extra@^8.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" + 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" @@ -6152,42 +3334,24 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: fs-minipass@^2.0.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-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - 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@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - 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== ftp@^0.3.10: version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz" integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= dependencies: readable-stream "1.1.x" @@ -6195,17 +3359,17 @@ ftp@^0.3.10: 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== functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 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" @@ -6219,55 +3383,40 @@ gauge@~2.7.3: gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 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" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: +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: +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" -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" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -6275,7 +3424,7 @@ get-symbol-description@^1.0.0: get-uri@3: version "3.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz" integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== dependencies: "@tootallnate/once" "1" @@ -6287,52 +3436,38 @@ get-uri@3: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" -gifwrap@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz#348e286e67d7cf57942172e1e6f05a71cee78489" - integrity sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA== - dependencies: - image-q "^1.1.1" - omggif "^1.0.10" - github-from-package@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: +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" + 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-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-parent@^6.0.1, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -6344,7 +3479,7 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: global-agent@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + resolved "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz" integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== dependencies: boolean "^3.0.1" @@ -6356,14 +3491,14 @@ global-agent@^3.0.0: global-dirs@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz" integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== dependencies: ini "2.0.0" 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" @@ -6371,36 +3506,28 @@ global-tunnel-ng@^2.7.1: npm-conf "^1.1.3" tunnel "^0.0.6" -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== +globals@^13.6.0, globals@^13.9.0: + version "13.12.1" + resolved "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== dependencies: - type-fest "^0.8.1" + type-fest "^0.20.2" globalthis@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz" integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== dependencies: define-properties "^1.1.3" -globby@^11.0.1: +globby@^11.0.4: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -6410,53 +3537,14 @@ globby@^11.0.1: merge2 "^1.4.1" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" +goober@^2.1.1: + version "2.1.8" + resolved "https://registry.npmjs.org/goober/-/goober-2.1.8.tgz" + integrity sha512-S0C85gCzcfFCMSdjD/CxyQMt1rbf2qEg6hmDzxk2FfD7+7Ogk55m8ZFUMtqNaZM4VVX/qaU9AzSORG+Gf4ZpAQ== 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" @@ -6471,37 +3559,24 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= -gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -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== - har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" 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" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz" integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: ajv "^6.12.3" @@ -6509,51 +3584,51 @@ har-validator@~5.1.3: has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-bigints@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= 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.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + 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" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-unicode@^2.0.0: 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-value@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -6562,7 +3637,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -6571,12 +3646,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -6584,166 +3659,51 @@ has-values@^1.0.0: 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.0, has@^1.0.3: +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" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -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== - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x, he@^1.1.0, he@^1.1.1: +he@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== header-case@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + resolved "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz" integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== dependencies: capital-case "^1.0.4" tslib "^2.0.3" -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -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== - -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= +history@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/history/-/history-5.3.0.tgz" + integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -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== + "@babel/runtime" "^7.7.6" hosted-git-info@^4.0.2: version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + 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" howler@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/howler/-/howler-2.2.3.tgz#a2eff9b08b586798e7a2ee17a602a90df28715da" + resolved "https://registry.npmjs.org/howler/-/howler-2.2.3.tgz" integrity sha512-QM0FFkw0LRX1PR8pNzJVAY25JhIWvbKMBFM4gqk+QdV+kPXOhleWGCB6AiAF/goGjIHK2e/nIElplvjQwhr0jg== -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - -html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - htmlparser2@^3.8.3: version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: domelementtype "^1.3.1" @@ -6753,29 +3713,23 @@ htmlparser2@^3.8.3: inherits "^2.0.1" readable-stream "^3.1.1" -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== +http-basic@^2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/http-basic/-/http-basic-2.5.1.tgz" + integrity sha1-jORHvbW2xXf4pj4/p4BW7Eu02/s= dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" + caseless "~0.11.0" + concat-stream "^1.4.6" + http-response-object "^1.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" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" 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 sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - http-errors@1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: depd "~1.1.2" @@ -6784,35 +3738,9 @@ http-errors@1.8.1: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -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 sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - 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.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== - http-proxy-agent@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: "@tootallnate/once" "1" @@ -6821,243 +3749,121 @@ http-proxy-agent@^4.0.1: 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" + 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-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, 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" +http-response-object@^1.0.0, http-response-object@^1.0.1, http-response-object@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-1.1.0.tgz" + integrity sha1-p8TnWq6C87tJBOT0P2FWc7TVGMM= http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@5, https-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== dependencies: agent-base "6" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -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== - -husky@^4.3.0: - version "4.3.8" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" - integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== +https-proxy-agent@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== 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" + agent-base "^4.3.0" + debug "^3.1.0" -icon-gen@3.0.0, icon-gen@^2.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/icon-gen/-/icon-gen-3.0.0.tgz#7b23f75e24a6a8f3630910dfc546008f0247d7a9" - integrity sha512-KD1zxN10cbnMSDQGvjrueF30+vO/E61G8iNS+LB8xnlYWcbhNUoDuGPMY//o3EvKrPvRtgKhhv/Hee9kn/bErw== - dependencies: - commander "^8.3.0" - del "^6.0.0" - mkdirp "^1.0.4" - pngjs "^6.0.0" - sharp "^0.29.3" - uuid "^8.3.2" +hyphenate-style-name@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== iconv-corefoundation@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" + 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.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: 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.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.2.1: 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== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3, ignore@^4.0.6: +ignore@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.2.0: +ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -image-q@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056" - integrity sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY= - image-size@^0.5.1: version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= immediate@~3.0.5: version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= immutable@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - 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" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.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" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - 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.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, 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" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -7065,146 +3871,86 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, 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== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.7, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@^7.0.0, inquirer@^7.1.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== +inline-style-prefixer@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz" + integrity sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" + css-in-js-utils "^2.0.0" internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" has "^1.0.3" side-channel "^1.0.4" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +intersection-observer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.0.tgz#6c84628f67ce8698e5f9ccf857d97718745837aa" + integrity sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ== -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - 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-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - 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-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" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -7212,78 +3958,59 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5, is-buffer@~1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - 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.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + 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-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.8.1: +is-core-module@^2.2.0, is-core-module@^2.8.1: version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" 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" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -7292,79 +4019,57 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.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" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +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" - 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" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +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" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -7372,217 +4077,158 @@ is-installed-globally@^0.4.0: is-negative-zero@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-npm@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== is-number-object@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== dependencies: has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" 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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - 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-cwd@^2.0.0, is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.0.0, is-plain-obj@^1.1: +is-plain-obj@^1.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -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.3, 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" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-promise@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.0.4, is-regex@^1.1.4: +is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-shared-array-buffer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -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" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 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" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" 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-weakref@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: +is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" 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@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, 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@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + 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.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz" integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== 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= isobject@^2.0.0, isobject@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" 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" + resolved "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz" integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== dependencies: async "0.9.x" @@ -7590,209 +4236,126 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" - integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== - -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jimp@^0.9.3: - version "0.9.8" - resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.9.8.tgz#2ee87b81b42e723ad74c73b8012f879c0abe5b04" - integrity sha512-DHN4apKMwLIvD/TKO9tFfPuankNuVK98vCwHm/Jv9z5cJnrd38xhi+4I7IAGmDU3jIDlrEVhzTkFH1Ymv5yTQQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/custom" "^0.9.8" - "@jimp/plugins" "^0.9.8" - "@jimp/types" "^0.9.8" - core-js "^3.4.1" - regenerator-runtime "^0.13.3" - -joycon@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== - -jpeg-js@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" - integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== - -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== +javascript-natural-sort@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + integrity sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k= js-base64@^2.1.9: version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== -js-cookie@^2.2.1: +js-cookie@^2.2.1, js-cookie@^2.x.x: version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== -js-message@1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" - integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== +js-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz" + integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== -js-queue@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482" - integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA== - dependencies: - easy-stack "^1.0.1" +js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", 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: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + 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" - integrity sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ== - -jsbi@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.1.0.tgz#f0c25ed8881bc09891334b03a3952efaa7add337" - integrity sha512-384Z4keIsJtYpnVggsxaB255MZctILbxv+ihtwoWPF7KNOlYHn1LFpRnUw5qsAspUAA2+I7qzjVJxVYtHVjxNw== - jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - 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-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + 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== 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-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + 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" + resolved "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz" integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== 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" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - 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= -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" json5@^2.1.2, json5@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 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" + 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.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - jsprim@^1.2.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" @@ -7800,9 +4363,17 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.2.1" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz" + integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== + dependencies: + array-includes "^3.1.3" + object.assign "^4.1.2" + jszip@^3.1.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" + resolved "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz" integrity sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg== dependencies: lie "~3.3.0" @@ -7810,92 +4381,60 @@ jszip@^3.1.0: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" -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" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - latest-version@^5.1.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" -launch-editor-middleware@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz#edd0ed45a46f5f1cf27540f93346b5de9e8c3be0" - integrity sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w== - dependencies: - launch-editor "^2.3.0" - -launch-editor@^2.2.1, launch-editor@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4" - integrity sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.6.1" - lazy-val@^1.0.4, lazy-val@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + resolved "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== -leven@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" -levn@^0.3.0, levn@~0.3.0: +levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" @@ -7903,79 +4442,38 @@ levn@^0.3.0, levn@~0.3.0: lie@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" +lilconfig@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + 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" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -load-bmfont@^1.3.1, load-bmfont@^1.4.0: - 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" - -loader-fs-cache@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" - integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== - dependencies: - find-cache-dir "^0.1.1" - mkdirp "^0.5.1" - -loader-runner@^2.3.1, loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.1.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loadjs@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loadjs/-/loadjs-4.2.0.tgz#2a0336376397a6a43edf98c9ec3229ddd5abb6f6" - integrity sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA== +local-pkg@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz" + integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw== 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" @@ -7983,212 +4481,106 @@ 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" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.defaultsdeep@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" - integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= - -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.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.mapvalues@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.6.1: +lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.template@^4.4.0: - 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.transform@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" - integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3: +lodash@4.17.21, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: 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@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: - chalk "^2.0.1" - -loglevel@^1.6.8: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - -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== - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + js-tokens "^3.0.0 || ^4.0.0" lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" 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@^4.0.1, lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - 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-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= +magic-string@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" + integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== dependencies: - es5-ext "~0.10.2" + sourcemap-codec "^1.4.8" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.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" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -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= - map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" +match-sorter@^6.0.2: + version "6.3.1" + resolved "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz" + integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== + dependencies: + "@babel/runtime" "^7.12.5" + remove-accents "0.4.2" + 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" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - md5@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== dependencies: charenc "0.0.2" @@ -8197,91 +4589,44 @@ md5@^2.3.0: mdn-data@2.0.14: version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= media-typer@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memoizee@^0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" - integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== - dependencies: - d "^1.0.1" - es5-ext "^0.10.53" - es6-weak-map "^2.0.3" - event-emitter "^0.3.5" - is-promise "^2.2.2" - lru-queue "^0.1.0" - next-tick "^1.1.0" - timers-ext "^0.1.7" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-options@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-1.0.1.tgz#2a64b24457becd4e4dc608283247e94ce589aa32" + resolved "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz" integrity sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg== dependencies: is-plain-obj "^1.1" -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -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.2.3, merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" 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" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz" integrity sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g== dependencies: arr-diff "^4.0.0" @@ -8298,204 +4643,98 @@ micromatch@3.1.0: snapdragon "^0.8.1" to-regex "^3.0.1" -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.4: version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== dependencies: braces "^3.0.1" picomatch "^2.2.3" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" +microseconds@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz" + integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA== mime-db@1.51.0: version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -"mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: - 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.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: mime-db "1.51.0" -mime@1.6.0, mime@^1.3.4: +mime@1.6.0: 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.4, mime@^2.5.2: +mime@^2.5.2: version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - 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" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - 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== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - 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.0.4, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, 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== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -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-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.2: - 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@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0: version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" minizlib@^2.1.1: 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" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mitt@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.2.tgz#380e61480d6a615b660f07abb60d51e0a4e4bed6" - integrity sha1-OA5hSA1qYVtmDwertg1R4KTkvtY= - mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" @@ -8503,84 +4742,40 @@ mixin-deep@^1.2.0: mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.4: 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.4: +mkdirp@^1.0.3: 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== -modify-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" - integrity sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE= - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -mpris-service@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/mpris-service/-/mpris-service-2.1.2.tgz#ed6db2574f48e1fc356413fd3fc8e857d93d2e7b" - integrity sha512-AC6WepCnFWwOME9OWplHZ8ps/BB+g9QrEpUKCv7wX82fDPzR3nPrypOFmL/Fm0JloEAu6QTWSfDLLc6mM/jinw== - dependencies: - dbus-next "^0.9.2" - deep-equal "^1.0.1" - source-map-support "^0.5.11" - -mri@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" - integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== - ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.2: 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== ms@2.1.3, ms@^2.1.1: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - music-metadata@^7.5.3: - version "7.12.0" - resolved "https://registry.yarnpkg.com/music-metadata/-/music-metadata-7.12.0.tgz#e397c573dfd37ed9078e8dbd48bf3dc5f223ea34" - integrity sha512-8Cy7YvM+zXxONsvzoI6WFo0ejywA313ym7QBX108t3+eWL7hDxOitQ1wDiMHKYJ/xvkG4eEagj9Q5xGjEgpbsg== + version "7.12.2" + resolved "https://registry.npmjs.org/music-metadata/-/music-metadata-7.12.2.tgz" + integrity sha512-KO1L6q30b6HfGlDQk1VAdrZqCKi4Gy7pN7eZOZ0YZQkhF/KCLHxKCjKKli9ao9kIBC/9s+uXHvjW3bDIBWuGew== dependencies: "@tokenizer/token" "^0.3.0" content-type "^1.0.4" @@ -8590,28 +4785,35 @@ music-metadata@^7.5.3: strtok3 "^6.2.4" token-types "^4.2.0" -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== - -mz@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== +nano-css@^5.3.1: + version "5.3.4" + resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.4.tgz" + integrity sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg== dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" + css-tree "^1.1.2" + csstype "^3.0.6" + fastest-stable-stringify "^2.0.2" + inline-style-prefixer "^6.0.0" + rtl-css-js "^1.14.0" + sourcemap-codec "^1.4.8" + stacktrace-js "^2.0.2" + stylis "^4.0.6" -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nano-time@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz" + integrity sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8= + dependencies: + big-integer "^1.6.16" -nanomatch@^1.2.1, nanomatch@^1.2.9: +nanoid@^3.1.32, nanoid@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +nanomatch@^1.2.1: version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -8628,54 +4830,27 @@ nanomatch@^1.2.1, nanomatch@^1.2.9: napi-build-utils@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, 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== - netmask@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -next-tick@1, next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -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@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - no-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" @@ -8683,174 +4858,64 @@ no-case@^3.0.4: node-abi@^3.3.0: version "3.8.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz" integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw== dependencies: semver "^7.3.5" -node-addon-api@^1.3.0, node-addon-api@^1.6.3: +node-addon-api@4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz" + integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q== + +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@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" - integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== - -node-fetch@^2.6.1: +node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-machine-id@^1.1.10: + version "1.1.12" + resolved "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz" + integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== -node-ipc@^9.1.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b" - integrity sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ== - dependencies: - event-pubsub "4.3.0" - js-message "1.0.7" - js-queue "2.0.2" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^2.0.2: +node-releases@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== -node-vibrant@^3.2.1-alpha.1: - version "3.2.1-alpha.1" - resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.2.1-alpha.1.tgz#d80a3dd22741150b804ae0d3eb99ceaf9f79980a" - integrity sha512-EQergCp7fvbvUCE0VMCBnvaAV0lGWSP8SXLmuWQIBzQK5M5pIwcd9fIOXuzFkJx/8hUiiiLvAzzGDS/bIy2ikA== - dependencies: - "@types/node" "^10.12.18" - "@vibrant/core" "^3.2.1-alpha.1" - "@vibrant/generator-default" "^3.2.1-alpha.1" - "@vibrant/image-browser" "^3.2.1-alpha.1" - "@vibrant/image-node" "^3.2.1-alpha.1" - "@vibrant/quantizer-mmcq" "^3.2.1-alpha.1" - url "^0.11.0" - -node-windows@^1.0.0-beta.6: - version "1.0.0-beta.6" - resolved "https://registry.yarnpkg.com/node-windows/-/node-windows-1.0.0-beta.6.tgz#04bf66946760bb8507f1d1326267587b56b8c8b3" - integrity sha512-Ehig70tF9A9Wns4VMpnsvT7dyat/d2fio6C4g1RAEaAi+piAjN6Wc+/fdSOifl8YCCncVllijv5Q9wdyHvdgeA== - dependencies: - optimist "~0.6.0" - xml "0.0.12" - -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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.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-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - normalize-url@^4.1.0: version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== 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" pify "^3.0.0" -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 sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.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@^4.0.1: 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" @@ -8858,87 +4923,62 @@ npmlog@^4.0.1: gauge "~2.7.3" set-blocking "~2.0.0" -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - nth-check@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz" integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== dependencies: boolbase "^1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - 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.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: 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-copy@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - 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-visit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.2: +object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -8946,109 +4986,86 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== +object.entries@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" es-abstract "^1.19.1" +object.fromentries@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.hasown@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz" + integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.19.1" + object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" -object.values@^1.1.0: +object.values@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" es-abstract "^1.19.1" -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== - -omggif@^1.0.10, 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== +oblivious-set@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz" + integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 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" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.2: 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" -open@^6.3.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== +open@^8.4.0: + version "8.4.0" + resolved "https://registry.npmjs.org/open/-/open-8.4.0.tgz" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: - is-wsl "^1.1.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.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== - -opener@^1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.3: +optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -9058,132 +5075,52 @@ optionator@^0.8.1, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.1: - 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.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + 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" 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-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -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, p-limit@^2.2.1: +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" - 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" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -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@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.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== -pac-proxy-agent@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz#66883eeabadc915fc5e95457324cb0f0ac78defb" - integrity sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - get-uri "3" - http-proxy-agent "^4.0.1" - https-proxy-agent "5" - pac-resolver "^4.1.0" - raw-body "^2.2.0" - socks-proxy-agent "5" - pac-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz" integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== dependencies: "@tootallnate/once" "1" @@ -9196,18 +5133,9 @@ pac-proxy-agent@^5.0.0: raw-body "^2.2.0" socks-proxy-agent "5" -pac-resolver@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-4.2.0.tgz#b82bcb9992d48166920bc83c7542abb454bd9bdd" - integrity sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ== - dependencies: - degenerator "^2.2.0" - ip "^1.1.5" - netmask "^2.0.1" - pac-resolver@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz" integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== dependencies: degenerator "^3.0.1" @@ -9216,7 +5144,7 @@ pac-resolver@^5.0.0: 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" @@ -9224,30 +5152,14 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -pako@^1.0.5, pako@~1.0.2, pako@~1.0.5: +pako@~1.0.2: 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== -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - param-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" @@ -9255,56 +5167,14 @@ param-case@^3.0.4: 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-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -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.4" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" - integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -9312,31 +5182,14 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" 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" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -9344,646 +5197,155 @@ pascal-case@^3.1.2: pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + resolved "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz" integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== dependencies: dot-case "^3.0.4" tslib "^2.0.3" -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.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-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -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 sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.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.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 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" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.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" + 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" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" +pathe@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz" + integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== peek-readable@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== 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" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" 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== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 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 sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - 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= -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pino-abstract-transport@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-pretty@^7.1.0: - version "7.5.1" - resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-7.5.1.tgz#4614b8c1077b718428c5a630749c905247951693" - integrity sha512-xEOUJiokdBGcZ9d0v7OY6SqEp+rrVH2drE3bHOUsK8elw44eh9V83InZqeL1dFwgD1IDnd6crUoec3hIXxfdBQ== - dependencies: - args "^5.0.1" - colorette "^2.0.7" - dateformat "^4.6.3" - fast-safe-stringify "^2.0.7" - joycon "^3.1.1" - pino-abstract-transport "^0.5.0" - pump "^3.0.0" - readable-stream "^3.6.0" - rfdc "^1.3.0" - secure-json-parse "^2.4.0" - sonic-boom "^2.2.0" - strip-json-comments "^3.1.1" - -pino-std-serializers@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" - integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== - -pino@6: - version "6.14.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-6.14.0.tgz#b745ea87a99a6c4c9b374e4f29ca7910d4c69f78" - integrity sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg== - dependencies: - fast-redact "^3.0.0" - fast-safe-stringify "^2.0.8" - flatstr "^1.0.12" - pino-std-serializers "^3.1.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - sonic-boom "^1.0.2" - -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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.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-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" + 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" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - plist@^3.0.1, plist@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe" + resolved "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz" integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg== dependencies: base64-js "^1.5.1" xmlbuilder "^9.0.7" -plyr@^3.6.2: - version "3.6.12" - resolved "https://registry.yarnpkg.com/plyr/-/plyr-3.6.12.tgz#e64481f163f9188d783447aedbf424fefd2ee92f" - integrity sha512-42WhYpMS/FEyX2unSEvhYtj1RvJgWvOsjZQFDongOQHA4eVzsyr7b06bzVpinMAOVC9e5H7RCbK+6CCAFIl2VQ== - dependencies: - core-js "^3.20.0" - custom-event-polyfill "^1.0.7" - loadjs "^4.2.0" - rangetouch "^2.0.1" - url-polyfill "^1.1.12" - -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== - pngjs@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz" integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== -pngjs@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" - integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== - -pnp-webpack-plugin@^1.6.4: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" - integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.16, portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== +postcss-js@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz" + integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + camelcase-css "^2.0.1" -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-load-config@^3.1.0: + version "3.1.3" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz" + integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + lilconfig "^2.0.4" + yaml "^1.10.2" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== +postcss-nested@5.0.6: + version "5.0.6" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-selector-parser "^6.0.6" postcss-prefix-selector@^1.6.0: version "1.14.0" - resolved "https://registry.yarnpkg.com/postcss-prefix-selector/-/postcss-prefix-selector-1.14.0.tgz#93b8433074b7aadc5715d57379475246341cfb2d" + resolved "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.14.0.tgz" integrity sha512-8d5fiBQZWMtGWH/7ewEeo6RnBNyT2kLD5wTIfV2oHYqH4hjiofg/rP5X3SUwnqOINzE4mM/K/UOAiNrIaKzd4w== -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: +postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: version "6.0.9" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz" integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.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" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^5.2.17: version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + resolved "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz" integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== dependencies: chalk "^1.1.3" @@ -9991,17 +5353,18 @@ postcss@^5.2.17: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== +postcss@^8.4.5, postcss@^8.4.6, postcss@^8.4.7: + version "8.4.7" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.7.tgz" + integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" posthtml-parser@^0.2.0, posthtml-parser@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz#35d530de386740c2ba24ff2eb2faf39ccdf271dd" + resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz" integrity sha1-NdUw3jhnQMK6JP8usvrznM3ycd0= dependencies: htmlparser2 "^3.8.3" @@ -10009,19 +5372,19 @@ posthtml-parser@^0.2.0, posthtml-parser@^0.2.1: posthtml-rename-id@^1.0: version "1.0.12" - resolved "https://registry.yarnpkg.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz#cf7f6eb37146bf1afac31e68f18c6cc19ae61433" + resolved "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz" integrity sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw== dependencies: escape-string-regexp "1.0.5" posthtml-render@^1.0.5, posthtml-render@^1.0.6: version "1.4.0" - resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.4.0.tgz#40114070c45881cacb93347dae3eff53afbcff13" + resolved "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz" integrity sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw== posthtml-svg-mode@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz#abd554face81223cab0cb367e18e4efd2a4e74b0" + resolved "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz" integrity sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ== dependencies: merge-options "1.0.1" @@ -10031,15 +5394,15 @@ posthtml-svg-mode@^1.0.3: posthtml@^0.9.2: version "0.9.2" - resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.9.2.tgz#f4c06db9f67b61fd17c4e256e7e3d9515bf726fd" + resolved "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz" integrity sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0= dependencies: posthtml-parser "^0.2.0" posthtml-render "^1.0.5" -prebuild-install@^7.0.0: +prebuild-install@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz" integrity sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg== dependencies: detect-libc "^2.0.0" @@ -10056,175 +5419,103 @@ prebuild-install@^7.0.0: tar-fs "^2.0.0" tunnel-agent "^0.6.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - 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= -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" +prettier-plugin-tailwindcss@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.8.tgz" + integrity sha512-hwarSBCswAXa+kqYtaAkFr3Vop9o04WOyZs0qo3NyvW8L7f1rif61wRyq0+ArmVThOuRBcJF5hjGXYk86cwemg== -prettier@2.5.1, "prettier@^1.18.2 || ^2.0.0": +prettier@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== -pretty-bytes@^5.1.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - 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-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0, progress@^2.0.3: +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.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" 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= proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" ipaddr.js "1.9.1" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= +proxy-compare@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.0.3.tgz#13fac7a72ca186a3f4a5e99bdff4863f2ced85c1" + integrity sha512-YEmiPmDvwSUwudfjt68DTRo0VaUC2WrDOfktTYEICInBDCIwveTsnn0cRxkWPSUvZBhzRIxtI0ZoYeUpXU870Q== psl@^1.1.28: version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - 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" once "^1.3.1" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -pumpify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" - integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== - dependencies: - duplexify "^4.1.1" - inherits "^2.0.3" - pump "^3.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - 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, pupa@^2.1.1: +pupa@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qrcode@^1.4.4: +qrcode@^1.4.4, qrcode@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.0.tgz#95abb8a91fdafd86f8190f2836abbfc500c72d1b" + resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz" integrity sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ== dependencies: dijkstrajs "^1.0.1" @@ -10234,75 +5525,52 @@ qrcode@^1.4.4: qs@6.9.7: version "6.9.7" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz" integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +qs@^6.1.0: + version "6.10.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -query-string@^4.1.0, query-string@^4.3.2: +query-string@^4.3.2: version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - querystringify@^2.1.1: version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 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.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, 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" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, 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" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rangetouch@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/rangetouch/-/rangetouch-2.0.1.tgz#c01105110fd3afca2adcb1a580692837d883cb70" - integrity sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA== - -raw-body@2.4.3: +raw-body@2.4.3, raw-body@^2.2.0: version "2.4.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz" integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== dependencies: bytes "3.1.2" @@ -10310,19 +5578,9 @@ raw-body@2.4.3: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@^2.2.0, raw-body@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.0.tgz#865890d9435243e9fe6141feb4decf929a6e1525" - integrity sha512-XpyZ6O7PVu3ItMQl0LslfsRoKxMOxi3SzDkrOtxMES5AqLFpYjQCryxI4LGygUN2jL+RgFsPkMPPlG7cg/47+A== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - 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" @@ -10330,9 +5588,92 @@ rc@^1.2.7, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-hot-toast@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.2.0.tgz" + integrity sha512-248rXw13uhf/6TNDVzagX+y7R8J183rp7MwUMNkcrBRyHj/jWOggfXTGlM8zAOuh701WyVW+eUaWG2LeSufX9g== + dependencies: + goober "^2.1.1" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-query@^3.34.16: + version "3.34.16" + resolved "https://registry.npmjs.org/react-query/-/react-query-3.34.16.tgz" + integrity sha512-7FvBvjgEM4YQ8nPfmAr+lJfbW95uyW/TVjFoi2GwCkF33/S8ajx45tuPHPFGWs4qYwPy1mzwxD4IQfpUDrefNQ== + dependencies: + "@babel/runtime" "^7.5.5" + broadcast-channel "^3.4.1" + match-sorter "^6.0.2" + +react-refresh@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== + +react-router-dom@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.2.2.tgz#f1a2c88365593c76b9612ae80154a13fcb72e442" + integrity sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ== + dependencies: + history "^5.2.0" + react-router "6.2.2" + +react-router@6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz" + integrity sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ== + dependencies: + history "^5.2.0" + +react-universal-interface@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz" + integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== + +react-use@^17.3.2: + version "17.3.2" + resolved "https://registry.npmjs.org/react-use/-/react-use-17.3.2.tgz" + integrity sha512-bj7OD0/1wL03KyWmzFXAFe425zziuTf7q8olwCYBfOeFHY1qfO1FAMjROQLsLZYwG4Rx63xAfb7XAbBrJsZmEw== + dependencies: + "@types/js-cookie" "^2.2.6" + "@xobotyi/scrollbar-width" "^1.9.5" + copy-to-clipboard "^3.3.1" + fast-deep-equal "^3.1.3" + fast-shallow-equal "^1.0.0" + js-cookie "^2.2.1" + nano-css "^5.3.1" + react-universal-interface "^0.6.2" + resize-observer-polyfill "^1.5.1" + screenfull "^5.1.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^3.0.1" + ts-easing "^0.2.0" + tslib "^2.1.0" + +react@^17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + read-config-file@6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade" + resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== dependencies: dotenv "^9.0.2" @@ -10341,19 +5682,19 @@ read-config-file@6.2.0: json5 "^2.2.0" lazy-val "^1.0.4" -read-pkg@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: 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" @@ -10364,19 +5705,9 @@ read-pkg@^5.1.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, 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" @@ -10385,161 +5716,111 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable readable-web-to-node-stream@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== dependencies: readable-stream "^3.6.0" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - 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" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +realm-network-transport@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/realm-network-transport/-/realm-network-transport-0.7.1.tgz" + integrity sha512-ZKGJVk6hzVeLE/cme9H4MyVnfpPlCTMheQdnMHWkLMhvNUqgyPFkgSCB+B5IsnGns2l5g2rmKeTNPoUFHi+Khw== dependencies: - regenerate "^1.4.2" + abort-controller "^3.0.0" + node-fetch "^2.6.0" -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +realm@^10.13.0: + version "10.13.0" + resolved "https://registry.npmjs.org/realm/-/realm-10.13.0.tgz" + integrity sha512-MgvGTXNfMTzl6BsAk53espuEjIyoneXeoZ1Yk335AjzlQ36RvVCli8siOn/Ub8jCIOnkQoHi/EJsSnM/Nw1zzQ== + dependencies: + "@realm.io/common" "^0.1.1" + bindings "^1.5.0" + bson "4.4.1" + clang-format "^1.6.0" + command-line-args "^5.1.1" + deepmerge "2.1.0" + fs-extra "^4.0.3" + https-proxy-agent "^2.2.4" + ini "^1.3.7" + node-addon-api "4.2.0" + node-fetch "^2.6.1" + node-machine-id "^1.1.10" + prebuild-install "^7.0.1" + progress "^2.0.3" + prop-types "^15.6.2" + realm-network-transport "^0.7.1" + request "^2.88.0" + stream-counter "^1.0.0" + sync-request "^3.0.1" + tar "^6.0.1" + url-parse "^1.4.4" -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: +regexp.prototype.flags@^1.3.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz" integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -"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" - -register-service-worker@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.2.tgz#6516983e1ef790a98c4225af1216bc80941a4bd2" - integrity sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A== +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== registry-auth-token@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== 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" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" +remove-accents@0.4.2: + version "0.4.2" + resolved "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz" + integrity sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U= repeat-element@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request@^2.88.2: +request@^2.88.0: 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" @@ -10565,135 +5846,83 @@ 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= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + 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" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" 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" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== 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-url@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2: +resolve@^1.1.6, resolve@^1.22.0: version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + 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" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -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.1.10: version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -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== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@2.6.3: - 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" - -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: - 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" - -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - roarr@^2.15.3: version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + resolved "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== dependencies: boolean "^3.0.1" @@ -10703,182 +5932,125 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +rollup-plugin-visualizer@^5.6.0: + version "5.6.0" + resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz" + integrity sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA== + dependencies: + nanoid "^3.1.32" + open "^8.4.0" + source-map "^0.7.3" + yargs "^17.3.1" + +rollup@^2.59.0: + version "2.67.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.67.1.tgz" + integrity sha512-1Sbcs4OuW+aD+hhqpIRl+RqooIpF6uQcfzU/QSI7vGkwADY6cM4iLsBGRM2CGLXDTDN5y/yShohFmnKegSPWzg== + optionalDependencies: + fsevents "~2.3.2" + +rtl-css-js@^1.14.0: + version "1.15.0" + resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.15.0.tgz" + integrity sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew== + dependencies: + "@babel/runtime" "^7.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" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.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.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2: 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.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-decode-uri-component@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/safe-decode-uri-component/-/safe-decode-uri-component-1.2.1.tgz#ddd30c57e6797a3b0671888393a4984b454e2129" + resolved "https://registry.npmjs.org/safe-decode-uri-component/-/safe-decode-uri-component-1.2.1.tgz" integrity sha512-j0PKk0v8qPOD0goqRAvoI7GKy+HwLHXEpXaQlA1IqJ65jjiILRK1InlfNdIKUUUYuLtERADaJumgYKNfyQBO+w== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "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.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" -sass-loader@^10.0.2: - version "10.2.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.1.tgz#17e51df313f1a7a203889ce8ff91be362651276e" - integrity sha512-RRvWl+3K2LSMezIsd008ErK4rk6CulIMSwrcc2aZvjymUgKo/vjXGp1rSWmfTUX7bblEOz8tst4wBwWtCGBqKA== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sass@^1.26.11: +sass@^1.49.9: version "1.49.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" + resolved "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz" integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +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== -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" + loose-envify "^1.1.0" + object-assign "^4.1.1" -schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.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" - -secure-json-parse@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" - integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== - dependencies: - node-forge "^0.10.0" +screenfull@^5.0.0, screenfull@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz" + integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== 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.3" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +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.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" send@0.17.2: version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz" integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== dependencies: debug "2.6.9" @@ -10897,7 +6069,7 @@ send@0.17.2: sentence-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== dependencies: no-case "^3.0.4" @@ -10906,34 +6078,14 @@ sentence-case@^3.0.4: 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" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - 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 sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - serve-static@1.14.2: version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== dependencies: encodeurl "~1.0.2" @@ -10943,17 +6095,22 @@ serve-static@1.14.2: 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= +set-harmonic-interval@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz" + integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== + set-immediate-shim@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -10961,139 +6118,59 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -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" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sharp@^0.29.3: - version "0.29.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.3.tgz#0da183d626094c974516a48fab9b3e4ba92eb5c2" - integrity sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA== - dependencies: - color "^4.0.1" - detect-libc "^1.0.3" - node-addon-api "^4.2.0" - prebuild-install "^7.0.0" - semver "^7.3.5" - simple-get "^4.0.0" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - 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" + 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-loader@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/shebang-loader/-/shebang-loader-0.0.1.tgz#a4000495d44cceefbec63435e7b1698569fa52ec" - integrity sha1-pAAEldRMzu++xjQ157FphWn6Uuw= - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - 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== -shell-quote@^1.6.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 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.0, signal-exit@^3.0.2: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: decompress-response "^6.0.0" once "^1.3.1" simple-concat "^1.0.0" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - 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@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -11102,12 +6179,12 @@ slice-ansi@^3.0.0: smart-buffer@^4.0.2, smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snake-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: dot-case "^3.0.4" @@ -11115,7 +6192,7 @@ snake-case@^3.0.4: snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -11124,14 +6201,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -11143,30 +6220,9 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" - -sockjs@^0.3.21: - 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@5: version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz" integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== dependencies: agent-base "^6.0.2" @@ -11175,54 +6231,20 @@ socks-proxy-agent@5: socks@^2.3.3: version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: ip "^1.1.5" smart-buffer "^4.2.0" -sonic-boom@^1.0.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" - integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== - dependencies: - atomic-sleep "^1.0.0" - flatstr "^1.0.12" - -sonic-boom@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.6.0.tgz#8786fc78be07c18a90381acd816d1d4afe3537a2" - integrity sha512-6xYZFRmDEtxGqfOKcDQ4cPLrNa0SPEDI+wlzDAHowXE6YV42NeXqg9mP2KkiM8JVu3lHfZ2iQKYlGOz+kTpphg== - dependencies: - atomic-sleep "^1.0.0" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -"source-map-js@>=0.6.2 <2.0.0": +"source-map-js@>=0.6.2 <2.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" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -11231,9 +6253,9 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.11, source-map-support@^0.5.19, source-map-support@~0.5.12: +source-map-support@^0.5.19: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -11241,112 +6263,49 @@ source-map-support@^0.5.11, source-map-support@^0.5.19, source-map-support@~0.5. source-map-url@^0.4.0: version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 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== source-map@^0.7.3: version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -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.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -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" +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^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== - -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" + 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" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - sshpk@^1.7.0: version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz" integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" @@ -11359,105 +6318,76 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - stable@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-generator@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz" + integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== + dependencies: + stackframe "^1.1.1" + stackframe@^1.1.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz" integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== +stacktrace-gps@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz" + integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== + dependencies: + source-map "0.5.6" + stackframe "^1.1.1" + +stacktrace-js@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz" + integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== + dependencies: + error-stack-parser "^2.0.6" + stack-generator "^2.0.5" + stacktrace-gps "^3.0.4" + 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== static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" -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", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -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" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-counter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz" + integrity sha1-kc8lac5NxQYf6816yyY5SloRR1E= streamsearch@0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= 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" @@ -11466,33 +6396,30 @@ string-width@^1.0.1: "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.2, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 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-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +string.prototype.matchall@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz" + integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.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" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" string.prototype.trimend@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: call-bind "^1.0.2" @@ -11500,175 +6427,102 @@ string.prototype.trimend@^1.0.4: string.prototype.trimstart@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@^1.0.0, 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@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -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" -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= 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.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.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, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-comments@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" - integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== - dependencies: - babel-extract-comments "^1.0.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -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-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.1: +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" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 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= strtok3@^6.2.4: version "6.3.0" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== dependencies: "@tokenizer/token" "^0.3.0" peek-readable "^4.1.0" -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" +stylis@^4.0.6: + version "4.0.13" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== 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@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= dependencies: has-flag "^1.0.0" supports-color@^5.3.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@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 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" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svg-baker-runtime@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/svg-baker-runtime/-/svg-baker-runtime-1.4.7.tgz#f4720637f5b6202eef6378d81f1fead0815f8a4e" - integrity sha512-Zorfwwj5+lWjk/oxwSMsRdS2sPQQdTmmsvaSpzU+i9ZWi3zugHLt6VckWfnswphQP0LmOel3nggpF5nETbt6xw== - dependencies: - deepmerge "1.3.2" - mitt "1.1.2" - svg-baker "^1.7.0" - -svg-baker@^1.5.0, svg-baker@^1.7.0: +svg-baker@1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/svg-baker/-/svg-baker-1.7.0.tgz#8367f78d875550c52fe4756f7303d5c5d7c2e9a7" + resolved "https://registry.npmjs.org/svg-baker/-/svg-baker-1.7.0.tgz" integrity sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg== dependencies: bluebird "^3.5.0" @@ -11685,62 +6539,58 @@ svg-baker@^1.5.0, svg-baker@^1.7.0: query-string "^4.3.2" traverse "^0.6.6" -svg-sprite-loader@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/svg-sprite-loader/-/svg-sprite-loader-5.2.1.tgz#f0c37e76665ddfdf7abc8ff6ebd1da35cdd212d9" - integrity sha512-n2IZc87rpOeXh+PQFksFMGCfMV/BT01YG+Dlbyjoh2Cz8BSTL5Vi/7KDr86Pt/u1NRDCVb3vY74BF5rKCmqbNA== +svgo@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: - bluebird "^3.5.0" - deepmerge "1.3.2" - domready "1.0.8" - escape-string-regexp "1.0.5" - loader-utils "^1.1.0" - svg-baker "^1.5.0" - svg-baker-runtime "^1.4.7" - url-slug "2.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +sync-request@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/sync-request/-/sync-request-3.0.1.tgz" + integrity sha1-yqEjWq+Im6UBB2oYNMQ2gwqC+3M= dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + concat-stream "^1.4.7" + http-response-object "^1.0.1" + then-request "^2.0.1" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tailwindcss@^3.0.23: + version "3.0.23" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz" + integrity sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA== + dependencies: + arg "^5.0.1" + chalk "^4.1.2" + chokidar "^3.5.3" + color-name "^1.1.4" + cosmiconfig "^7.0.1" + detective "^5.2.0" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.11" + glob-parent "^6.0.2" + is-glob "^4.0.3" + normalize-path "^3.0.0" + object-hash "^2.2.0" + postcss "^8.4.6" + postcss-js "^4.0.0" + postcss-load-config "^3.1.0" + postcss-nested "5.0.6" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + quick-lru "^5.1.1" + resolve "^1.22.0" -tar-fs@^2.0.0, tar-fs@^2.1.1: +tar-fs@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" @@ -11750,7 +6600,7 @@ tar-fs@^2.0.0, tar-fs@^2.1.1: tar-stream@^2.1.4: version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -11759,9 +6609,9 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2: +tar@^6.0.1: version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" @@ -11773,194 +6623,68 @@ tar@^6.0.2: temp-file@^3.4.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + 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 "^10.0.0" -terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.1.0.tgz#91e6d39571460ed240c0cf69d295bcf30ebf98cb" - integrity sha512-cjdZte66fYkZ65rQ2oJfrdCAkkhJA7YLYk5eGOcGCSGlq0ieZupRdjedSQXYknMPo2IveQL+tPdrxUkERENCFA== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.2.1" - p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.8.0" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= +then-request@^2.0.1: + version "2.2.0" + resolved "https://registry.npmjs.org/then-request/-/then-request-2.2.0.tgz" + integrity sha1-ZnizL6DKIY/laZgbvYhxtZQGDYE= dependencies: - thenify ">= 3.1.0 < 4" + caseless "~0.11.0" + concat-stream "^1.4.7" + http-basic "^2.5.1" + http-response-object "^1.1.0" + promise "^7.1.1" + qs "^6.1.0" -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -thread-loader@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" - integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== - dependencies: - loader-runner "^2.3.1" - loader-utils "^1.1.0" - neo-async "^2.6.0" - -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-map/-/through2-map-3.0.0.tgz#a6c3026ce63b4898a997d540506b66ffd970f271" - integrity sha1-psMCbOY7SJipl9VAUGtm/9lw8nE= - dependencies: - through2 "~2.0.0" - xtend "^4.0.0" - -through2@^2.0.0, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@2, through@^2.3.6, 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= - -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== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timers-ext@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" - integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== - dependencies: - es5-ext "~0.10.46" - next-tick "1" - -timm@^1.6.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" - integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tinycolor2@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== tmp-promise@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== dependencies: tmp "^0.2.0" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmp@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" 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@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -11968,14 +6692,14 @@ to-regex-range@^2.1.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" + 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" -to-regex@^3.0.1, to-regex@^3.0.2: +to-regex@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -11983,27 +6707,27 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== token-types@^4.1.1, token-types@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.0.tgz#b66bc3d67420c6873222a424eee64a744f4c2f13" + resolved "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz" integrity sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w== dependencies: "@tokenizer/token" "^0.3.0" ieee754 "^1.2.1" -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - 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" @@ -12011,141 +6735,122 @@ tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= traverse@^0.6.6: version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + resolved "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= 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" -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-easing@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz" + integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -tslib@^1.9.0: +tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" 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" + 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" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" 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" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 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@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -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== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" - integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== - 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= -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" +typescript@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== unbox-primitive@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" @@ -12153,37 +6858,9 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -unidecode@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/unidecode/-/unidecode-0.1.8.tgz#efbb301538bc45246a9ac8c559d72f015305053e" - integrity sha1-77swFTi8RSRqmsjFWdcvAVMFBT4= - union-value@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -12191,99 +6868,76 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - 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@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unload@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz" + integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA== + dependencies: + "@babel/runtime" "^7.6.2" + detect-node "^2.0.4" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= +unplugin-auto-import@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.6.4.tgz#5c1112055b8e3597033ee745fe37cb3ca49d29f7" + integrity sha512-gkjVKnugRCIh1JtwZhn8bdvdW8RW17WoCEJgJXJ9sGMsKrgP9xbaNMLULrmtrfxyGOabm42XXWoaR12EzdcVNA== + dependencies: + "@antfu/utils" "^0.5.0" + "@rollup/pluginutils" "^4.2.0" + local-pkg "^0.4.1" + magic-string "^0.26.1" + resolve "^1.22.0" + unplugin "^0.4.0" + +unplugin@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.4.0.tgz#43a923f0267f8834118a926c406131d1d84a1358" + integrity sha512-4ScITEmzlz1iZW3tkz+3L1V5k/xMQ6kjgm4lEXKxH0ozd8/OUWfiSA7RMRyrawsvq/t50JIzPpp1UyuSL/AXkA== + dependencies: + chokidar "^3.5.3" + webpack-virtual-modules "^0.4.3" unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" -unused-filename@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unused-filename/-/unused-filename-2.1.0.tgz#33719c4e8d9644f32d2dec1bc8525c6aaeb4ba51" - integrity sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg== - dependencies: - modify-filename "^1.1.0" - path-exists "^4.0.0" - unzip-crx-3@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz#d5324147b104a8aed9ae8639c95521f6f7cda292" + resolved "https://registry.npmjs.org/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz" integrity sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ== dependencies: jszip "^3.1.0" mkdirp "^0.5.1" yaku "^0.16.6" -unzip-crx@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/unzip-crx/-/unzip-crx-0.2.0.tgz#4c0baa8bdac756256754beca7843c13d7b858c18" - integrity sha1-TAuqi9rHViVnVL7KeEPBPXuFjBg= - dependencies: - jszip "^3.1.0" - mkdirp "^0.5.1" - yaku "^0.16.6" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - update-notifier@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== dependencies: boxen "^5.0.0" @@ -12303,179 +6957,97 @@ update-notifier@^5.1.0: upper-case-first@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz" integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== dependencies: tslib "^2.0.3" -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - upper-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz" integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== dependencies: tslib "^2.0.3" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" - integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.5.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-parse@^1.4.3, url-parse@^1.5.3: +url-parse@^1.4.4: version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" -url-polyfill@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/url-polyfill/-/url-polyfill-1.1.12.tgz#6cdaa17f6b022841b3aec0bf8dbd87ac0cd33331" - integrity sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A== - -url-slug@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/url-slug/-/url-slug-2.0.0.tgz#a789d5aed4995c0d95af33377ad1d5c68d4d7027" - integrity sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc= - dependencies: - unidecode "0.1.8" - -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" - use@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 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" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - 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" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 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.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@^2.0.3: version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -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== +valtio-persist@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/valtio-persist/-/valtio-persist-1.0.2.tgz#a704e315ae9785368a5733521b178d74246be8f5" + integrity sha512-OBVEUZTS1heiA5R3j8CPDuXIMmmjIvq/4CiO+pElXd7f7b7nR3vIH5qql35hXw/AkLdftqTUcVCNVf6yAJ1ypA== dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" + lodash "^4.17.21" -vary@~1.1.2: +valtio@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.3.1.tgz#4532cc2e24dd7a38884fc8e1b1b2a3054b3707d8" + integrity sha512-k1eCoGbt88KuYT6fTRXb4lSZcuh4qLhhhNFwlZP8wItY7ue/3FJeZRCcM1YB3gNNKAMk5WlupQeVZbOp8EPRBg== + dependencies: + proxy-compare "2.0.3" + +vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" @@ -12484,343 +7056,65 @@ verror@1.10.0: verror@^1.10.0: version "1.10.1" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" + 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" extsprintf "^1.2.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vite-plugin-resolve@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/vite-plugin-resolve/-/vite-plugin-resolve-1.5.2.tgz" + integrity sha512-2+PNgW5FeTyTWd4GZNMKjZqaumyTrOgcrl+6k4BkQN6PJxQVPz7WL05cD9hpdUOB1owPtHAQbK2Q1LgNRnbirA== -vscode-codicons@^0.0.17: - version "0.0.17" - resolved "https://registry.yarnpkg.com/vscode-codicons/-/vscode-codicons-0.0.17.tgz#5ab4f2015641adaa1a73136195ba916aebf8764d" - integrity sha512-Hzclzhz9ouj5sfjDbXE78fciSGwDrlOMimkRIxFNy0pmHoexzLH1+OKTbrlR+Gz17C9ZCfX7Mlpq21jGsyhgSg== - -vue-analytics@^5.22.1: - version "5.22.1" - resolved "https://registry.yarnpkg.com/vue-analytics/-/vue-analytics-5.22.1.tgz#9d6b32da56daee1b9dfb23a267b50349a03f710f" - integrity sha512-HPKQMN7gfcUqS5SxoO0VxqLRRSPkG1H1FqglsHccz6BatBatNtm/Vyy8brApktZxNCfnAkrSVDpxg3/FNDeOgQ== - -vue-class-component@^7.1.0: - version "7.2.6" - resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.2.6.tgz#8471e037b8e4762f5a464686e19e5afc708502e4" - integrity sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w== - -vue-cli-plugin-electron-builder@~2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vue-cli-plugin-electron-builder/-/vue-cli-plugin-electron-builder-2.1.1.tgz#de8bed25b32e73e28dd08061dd2a3c6bfff73227" - integrity sha512-ZrxFZ2uxgpwyFUE8LtguYqaTzSfZ1osME1uFlIj/Iz7GtLrATqs23n/BkKEpyEf5nYNAylzIM8ykGAfH/0QdmA== - dependencies: - "@vue/cli-shared-utils" "^4.5.6" - chokidar "^3.0.2" - electron-builder "^22.2.0" - execa "^5.0.0" - friendly-errors-webpack-plugin "^1.7.0" - fs-extra "^9.0.1" - lodash.merge "^4.6.1" - portfinder "^1.0.16" - pumpify "^2.0.1" - semver "^7.3.2" - shebang-loader "^0.0.1" - split2 "^3.0.0" - terser-webpack-plugin "^3.0.3" - through2-filter "^3.0.0" - through2-map "^3.0.0" - unzip-crx "^0.2.0" - webpack "^4.18.0" - webpack-chain "^6.0.0" - webpack-merge "^4.2.2" - yargs "^15.3.1" - -vue-clipboard2@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz#331fec85f9d4f175eb0d4feaef4d77338562af36" - integrity sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw== - dependencies: - clipboard "^2.0.0" - -vue-eslint-parser@^7.10.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf" - integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg== - dependencies: - debug "^4.1.1" - eslint-scope "^5.1.1" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^6.3.0" - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-i18n@^8.22.0: - version "8.27.0" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.27.0.tgz#3e3b3ed2c107ccbd7f20dbdd7a96763a9990253e" - integrity sha512-SX35iJHL5PJ4Gfh0Mo/q0shyHiI2V6Zkh51c+k8E9O1RKv5BQyYrCxRzpvPrsIOJEnLaeiovet3dsUB0e/kDzw== - -"vue-loader-v16@npm:vue-loader@^16.1.0": - version "16.8.3" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087" - integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA== - dependencies: - chalk "^4.1.0" - hash-sum "^2.0.0" - loader-utils "^2.0.0" - -vue-loader@^15.9.2: - version "15.9.8" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" - integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-property-decorator@^8.0.0: - version "8.5.1" - resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz#571a91cf8d2b507f537d79bf8275af3184572fff" - integrity sha512-O6OUN2OMsYTGPvgFtXeBU3jPnX5ffQ9V4I1WfxFQ6dqz6cOUbR3Usou7kgFpfiXDvV7dJQSFcJ5yUPgOtPPm1Q== - dependencies: - vue-class-component "^7.1.0" - -vue-router@^3.4.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.3.tgz#041048053e336829d05dafacf6a8fb669a2e7999" - integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg== - -vue-slider-component@^3.2.5: - version "3.2.15" - resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-3.2.15.tgz#fd40564c1d15a90a1290cb691990c0bc745b3aa9" - integrity sha512-FpmMsQ6MQFn22B6boDcEjRmuawdaHwjHRVZiuv5w37jijHra6+HogjSrh3mb42jE+PUIFFagXi36oFEzpDbadg== - dependencies: - core-js "^3.6.5" - vue-property-decorator "^8.0.0" - -vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.11: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^2.6.11: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== - -vuex@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" - integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== - -watchpack-chokidar2@^2.0.1: +vite-plugin-svg-icons@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + resolved "https://registry.npmjs.org/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz" + integrity sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA== dependencies: - chokidar "^2.1.8" + "@types/svgo" "^2.6.1" + cors "^2.8.5" + debug "^4.3.3" + etag "^1.8.1" + fs-extra "^10.0.0" + pathe "^0.2.0" + svg-baker "1.7.0" + svgo "^2.8.0" -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +vite@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/vite/-/vite-2.8.0.tgz" + integrity sha512-ed5rjyeysttuPJX/aKSA0gTB/8ZKLM5xF6FtEuKy1B9DiQbDNFMVMQxnb9JesgBPUMMIJxC8w5KZ/KNWLKFXoA== dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" + esbuild "^0.14.14" + postcss "^8.4.5" + resolve "^1.22.0" + rollup "^2.59.0" optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + fsevents "~2.3.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== +vm2@^3.9.8: + version "3.9.9" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz" + integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== 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 sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" + acorn "^8.7.0" + acorn-walk "^8.2.0" webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -webpack-bundle-analyzer@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" - integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.19" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-chain@^6.0.0, webpack-chain@^6.4.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" - integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.11.0: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.0.0, webpack@^4.18.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -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== +webpack-virtual-modules@^0.4.3: + version "0.4.3" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz" + integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= dependencies: tr46 "~0.0.3" @@ -12828,7 +7122,7 @@ whatwg-url@^5.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" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -12839,206 +7133,38 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which-pm-runs@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" - integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== - -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: 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.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + 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 || 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" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -workbox-background-sync@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" - integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== - dependencies: - workbox-core "^4.3.1" - -workbox-broadcast-update@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" - integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== - dependencies: - workbox-core "^4.3.1" - -workbox-build@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" - integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== - dependencies: - "@babel/runtime" "^7.3.4" - "@hapi/joi" "^15.0.0" - common-tags "^1.8.0" - fs-extra "^4.0.2" - glob "^7.1.3" - lodash.template "^4.4.0" - pretty-bytes "^5.1.0" - stringify-object "^3.3.0" - strip-comments "^1.0.2" - workbox-background-sync "^4.3.1" - workbox-broadcast-update "^4.3.1" - workbox-cacheable-response "^4.3.1" - workbox-core "^4.3.1" - workbox-expiration "^4.3.1" - workbox-google-analytics "^4.3.1" - workbox-navigation-preload "^4.3.1" - workbox-precaching "^4.3.1" - workbox-range-requests "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" - workbox-streams "^4.3.1" - workbox-sw "^4.3.1" - workbox-window "^4.3.1" - -workbox-cacheable-response@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" - integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== - dependencies: - workbox-core "^4.3.1" - -workbox-core@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" - integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== - -workbox-expiration@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" - integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== - dependencies: - workbox-core "^4.3.1" - -workbox-google-analytics@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" - integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== - dependencies: - workbox-background-sync "^4.3.1" - workbox-core "^4.3.1" - workbox-routing "^4.3.1" - workbox-strategies "^4.3.1" - -workbox-navigation-preload@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" - integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== - dependencies: - workbox-core "^4.3.1" - -workbox-precaching@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" - integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== - dependencies: - workbox-core "^4.3.1" - -workbox-range-requests@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" - integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== - dependencies: - workbox-core "^4.3.1" - -workbox-routing@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" - integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== - dependencies: - workbox-core "^4.3.1" - -workbox-strategies@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" - integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== - dependencies: - workbox-core "^4.3.1" - -workbox-streams@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" - integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== - dependencies: - workbox-core "^4.3.1" - -workbox-sw@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" - integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== - -workbox-webpack-plugin@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz#47ff5ea1cc074b6c40fb5a86108863a24120d4bd" - integrity sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ== - dependencies: - "@babel/runtime" "^7.0.0" - json-stable-stringify "^1.0.1" - workbox-build "^4.3.1" - -workbox-window@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" - integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== - dependencies: - workbox-core "^4.3.1" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.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" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -13047,7 +7173,7 @@ wrap-ansi@^6.2.0: 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" @@ -13056,12 +7182,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" @@ -13069,170 +7195,72 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^6.0.0, ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -ws@^7.3.1: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -x11@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/x11/-/x11-2.3.0.tgz#bdaccedccdac2482fd560f0511e7bf2bd9e1dbf2" - integrity sha1-vazO3M2sJIL9Vg8FEee/K9nh2/I= - dependencies: - os-homedir "^1.0.1" - 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.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.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" - -xml@0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/xml/-/xml-0.0.12.tgz#f08b347109912be00285785f46f15ad8e50a5f67" - integrity sha1-8Is0cQmRK+AChXhfRvFa2OUKX2c= - xmlbuilder@>=11.0.1: version "15.1.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== xmlbuilder@^9.0.7: version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -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== - xregexp@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz" integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= -xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.2: 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@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" 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" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaku@^0.16.6: version "0.16.7" - resolved "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz#1d195c78aa9b5bf8479c895b9504fd4f0847984e" + resolved "https://registry.npmjs.org/yaku/-/yaku-0.16.7.tgz" integrity sha1-HRlceKqbW/hHnIlblQT9TwhHmE4= -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - 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" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" 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.0.0: version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz" integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^15.3.1: version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -13247,22 +7275,9 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.0: - 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, yargs@^17.1.1: +yargs@^17.0.1, yargs@^17.1.1, yargs@^17.3.1: version "17.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz" integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== dependencies: cliui "^7.0.2" @@ -13275,23 +7290,8 @@ yargs@^17.0.1, yargs@^17.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" fd-slicer "~1.1.0" - -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== - -yorkie@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" - integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== - dependencies: - execa "^0.8.0" - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0"