chore: 用esbuild代替vite来打包main
@ -6,11 +6,13 @@ module.exports = {
|
||||
appId: 'com.qier222.yesplaymusic',
|
||||
productName: 'YesPlayMusic',
|
||||
copyright: 'Copyright © 2022 ${author}',
|
||||
asar: true,
|
||||
asar: false,
|
||||
directories: {
|
||||
output: 'release/${version}',
|
||||
buildResources: 'build',
|
||||
},
|
||||
npmRebuild: false,
|
||||
buildDependenciesFromSource: true,
|
||||
files: ['dist'],
|
||||
win: {
|
||||
target: [
|
||||
@ -44,7 +46,9 @@ module.exports = {
|
||||
artifactName: '${productName}-${version}-Installer.${ext}',
|
||||
},
|
||||
files: [
|
||||
'**/*',
|
||||
'dist/main/**/*',
|
||||
'dist/renderer/**/*',
|
||||
'node_modules/NeteaseCloudMusicApi',
|
||||
'!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}',
|
||||
'!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}',
|
||||
'!**/node_modules/*.d.ts',
|
||||
|
4
.vscode/task.json
vendored
@ -6,8 +6,8 @@
|
||||
"script": "debug",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: debug",
|
||||
"detail": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./packages/renderer\"",
|
||||
"detail": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.main.mjs && vite ./src/renderer\"",
|
||||
"group": "build"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
23
package.json
@ -8,12 +8,15 @@
|
||||
"license": "MIT",
|
||||
"author": "qier222 <qier222@outlook.com>",
|
||||
"repository": "github:qier222/YesPlayMusic",
|
||||
"main": "dist/main/index.cjs",
|
||||
"main": "dist/main/index.js",
|
||||
"scripts": {
|
||||
"dev": "node scripts/watch.mjs",
|
||||
"build": "npm run typecheck && node scripts/build.mjs && electron-builder --config .electron-builder.config.js --dir",
|
||||
"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\"",
|
||||
"dev": "concurrently -n=vite,main -c=#646cff,#74b1be \"npm run dev:renderer\" \"node scripts/build.main.mjs --watch\"",
|
||||
"dev:renderer": "vite dev",
|
||||
"build:main": "node scripts/build.main.mjs",
|
||||
"build:renderer": "vite build",
|
||||
"build": "npm run typecheck && npm run build:renderer && npm run build:main && electron-builder --config .electron-builder.config.js --dir",
|
||||
"typecheck": "tsc --noEmit --project src/renderer/tsconfig.json",
|
||||
"debug": "cross-env-shell NODE_ENV=debug \"npm run typecheck && node scripts/build.mjs && vite ./src/renderer\"",
|
||||
"eslint": "eslint --ext .ts,.js ./",
|
||||
"prettier": "prettier --write './**/*.{ts,js,tsx,jsx}'"
|
||||
},
|
||||
@ -46,13 +49,12 @@
|
||||
"@typescript-eslint/eslint-plugin": "^5.15.0",
|
||||
"@typescript-eslint/parser": "^5.15.0",
|
||||
"@vitejs/plugin-react": "^1.2.0",
|
||||
"ahooks": "^3.1.13",
|
||||
"ansi-styles": "^6.1.0",
|
||||
"autoprefixer": "^10.4.4",
|
||||
"axios": "^0.26.1",
|
||||
"classnames": "^2.3.1",
|
||||
"color.js": "^1.2.0",
|
||||
"colord": "^2.9.2",
|
||||
"concurrently": "^7.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"csstype": "^3.0.11",
|
||||
"dayjs": "^1.11.0",
|
||||
@ -60,6 +62,7 @@
|
||||
"electron": "^17.1.2",
|
||||
"electron-builder": "^22.14.13",
|
||||
"electron-devtools-installer": "^3.2.0",
|
||||
"esbuild": "^0.14.28",
|
||||
"eslint": "^8.11.0",
|
||||
"eslint-plugin-react": "^7.29.4",
|
||||
"eslint-plugin-react-hooks": "^4.3.0",
|
||||
@ -69,7 +72,10 @@
|
||||
"js-cookie": "^3.0.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"md5": "^2.3.0",
|
||||
"minimist": "^1.2.6",
|
||||
"music-metadata": "^7.12.2",
|
||||
"ora": "^6.1.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.12",
|
||||
"prettier": "2.5.1",
|
||||
"prettier-plugin-tailwindcss": "^0.1.8",
|
||||
@ -90,6 +96,7 @@
|
||||
"valtio-persist": "^1.0.2",
|
||||
"vite": "^2.8.6",
|
||||
"vite-plugin-resolve": "^1.8.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1"
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"wait-on": "^6.0.1"
|
||||
}
|
||||
}
|
||||
|
@ -1,39 +0,0 @@
|
||||
import dotenv from 'dotenv'
|
||||
import { builtinModules } from 'module'
|
||||
import path from 'path'
|
||||
import { visualizer } from 'rollup-plugin-visualizer'
|
||||
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/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 || {}),
|
||||
],
|
||||
plugins: [
|
||||
visualizer({
|
||||
filename: './bundle-stats-main.html',
|
||||
gzipSize: true,
|
||||
projectRoot: 'packages/main',
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
})
|
@ -1,36 +0,0 @@
|
||||
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<string, any>) {
|
||||
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
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
/**
|
||||
* 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 = `<div class="${className}"><div></div></div>`
|
||||
|
||||
return {
|
||||
appendLoading() {
|
||||
document.head.appendChild(oStyle)
|
||||
document.body.appendChild(oDiv)
|
||||
},
|
||||
removeLoading() {
|
||||
document.head.removeChild(oStyle)
|
||||
document.body.removeChild(oDiv)
|
||||
},
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
/** 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)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
import dotenv from 'dotenv'
|
||||
import { builtinModules } from 'module'
|
||||
import path from 'path'
|
||||
import { defineConfig } from 'vite'
|
||||
import pkg from '../../package.json'
|
||||
import { visualizer } from 'rollup-plugin-visualizer'
|
||||
|
||||
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 || {}),
|
||||
],
|
||||
plugins: [
|
||||
visualizer({
|
||||
filename: './bundle-stats-preload.html',
|
||||
gzipSize: true,
|
||||
projectRoot: 'packages/preload',
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
})
|
@ -1,169 +0,0 @@
|
||||
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 { defineConfig, Plugin } from 'vite'
|
||||
import resolve from 'vite-plugin-resolve'
|
||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
||||
import { visualizer } from 'rollup-plugin-visualizer'
|
||||
|
||||
dotenv.config({ path: path.resolve(process.cwd(), '.env') })
|
||||
|
||||
/**
|
||||
* @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',
|
||||
rollupOptions: {
|
||||
plugins: [
|
||||
visualizer({
|
||||
filename: './bundle-stats-renderer.html',
|
||||
gzipSize: true,
|
||||
projectRoot: 'packages/renderer',
|
||||
template: 'treemap',
|
||||
}),
|
||||
],
|
||||
},
|
||||
},
|
||||
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/, ''),
|
||||
},
|
||||
'/yesplaymusic/': {
|
||||
target: `http://127.0.0.1:${process.env.ELECTRON_DEV_NETEASE_API_PORT}/yesplaymusic`,
|
||||
changeOrigin: true,
|
||||
rewrite: path => path.replace(/^\/yesplaymusic/, ''),
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
/**
|
||||
* 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), {})
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"compilerOptions": {
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"@/*": ["packages/renderer/src/*"]
|
||||
}
|
||||
}
|
||||
}
|
416
pnpm-lock.yaml
generated
@ -19,13 +19,13 @@ specifiers:
|
||||
'@vitejs/plugin-react': ^1.2.0
|
||||
NeteaseCloudMusicApi: ^4.5.8
|
||||
ahooks: ^3.1.13
|
||||
ansi-styles: ^6.1.0
|
||||
autoprefixer: ^10.4.4
|
||||
axios: ^0.26.1
|
||||
change-case: ^4.1.2
|
||||
classnames: ^2.3.1
|
||||
color.js: ^1.2.0
|
||||
colord: ^2.9.2
|
||||
concurrently: ^7.0.0
|
||||
cookie-parser: ^1.4.6
|
||||
cross-env: ^7.0.3
|
||||
csstype: ^3.0.11
|
||||
@ -36,6 +36,7 @@ specifiers:
|
||||
electron-devtools-installer: ^3.2.0
|
||||
electron-log: ^4.4.6
|
||||
electron-store: ^8.0.1
|
||||
esbuild: ^0.14.28
|
||||
eslint: ^8.11.0
|
||||
eslint-plugin-react: ^7.29.4
|
||||
eslint-plugin-react-hooks: ^4.3.0
|
||||
@ -46,7 +47,10 @@ specifiers:
|
||||
js-cookie: ^3.0.1
|
||||
lodash-es: ^4.17.21
|
||||
md5: ^2.3.0
|
||||
minimist: ^1.2.6
|
||||
music-metadata: ^7.12.2
|
||||
ora: ^6.1.0
|
||||
picocolors: ^1.0.0
|
||||
postcss: ^8.4.12
|
||||
prettier: 2.5.1
|
||||
prettier-plugin-tailwindcss: ^0.1.8
|
||||
@ -69,10 +73,10 @@ specifiers:
|
||||
vite: ^2.8.6
|
||||
vite-plugin-resolve: ^1.8.0
|
||||
vite-plugin-svg-icons: ^2.0.1
|
||||
wait-on: ^6.0.1
|
||||
|
||||
dependencies:
|
||||
'@sentry/node': 6.19.2
|
||||
'@sentry/react': 6.19.2_react@17.0.2
|
||||
'@sentry/tracing': 6.19.2
|
||||
NeteaseCloudMusicApi: 4.5.8
|
||||
change-case: 4.1.2
|
||||
@ -83,6 +87,7 @@ dependencies:
|
||||
realm: 10.13.0
|
||||
|
||||
devDependencies:
|
||||
'@sentry/react': 6.19.2_react@17.0.2
|
||||
'@types/cookie-parser': 1.4.2
|
||||
'@types/express': 4.17.13
|
||||
'@types/express-fileupload': 1.2.2
|
||||
@ -97,12 +102,12 @@ devDependencies:
|
||||
'@typescript-eslint/parser': 5.15.0_eslint@8.11.0+typescript@4.6.2
|
||||
'@vitejs/plugin-react': 1.2.0
|
||||
ahooks: 3.1.13_react@17.0.2
|
||||
ansi-styles: 6.1.0
|
||||
autoprefixer: 10.4.4_postcss@8.4.12
|
||||
axios: 0.26.1
|
||||
classnames: 2.3.1
|
||||
color.js: 1.2.0
|
||||
colord: 2.9.2
|
||||
concurrently: 7.0.0
|
||||
cross-env: 7.0.3
|
||||
csstype: 3.0.11
|
||||
dayjs: 1.11.0
|
||||
@ -110,6 +115,7 @@ devDependencies:
|
||||
electron: 17.1.2
|
||||
electron-builder: 22.14.13
|
||||
electron-devtools-installer: 3.2.0
|
||||
esbuild: 0.14.28
|
||||
eslint: 8.11.0
|
||||
eslint-plugin-react: 7.29.4_eslint@8.11.0
|
||||
eslint-plugin-react-hooks: 4.3.0_eslint@8.11.0
|
||||
@ -119,7 +125,10 @@ devDependencies:
|
||||
js-cookie: 3.0.1
|
||||
lodash-es: 4.17.21
|
||||
md5: 2.3.0
|
||||
minimist: 1.2.6
|
||||
music-metadata: 7.12.2
|
||||
ora: 6.1.0
|
||||
picocolors: 1.0.0
|
||||
postcss: 8.4.12
|
||||
prettier: 2.5.1
|
||||
prettier-plugin-tailwindcss: 0.1.8_prettier@2.5.1
|
||||
@ -135,12 +144,13 @@ devDependencies:
|
||||
sass: 1.49.9
|
||||
tailwindcss: 3.0.23_autoprefixer@10.4.4
|
||||
typescript: 4.6.2
|
||||
unplugin-auto-import: 0.6.6_rollup@2.70.1+vite@2.8.6
|
||||
unplugin-auto-import: 0.6.6_30793d9d6b24634df96d91984952e36a
|
||||
valtio: 1.4.0_react@17.0.2+vite@2.8.6
|
||||
valtio-persist: 1.0.2_valtio@1.4.0
|
||||
vite: 2.8.6_sass@1.49.9
|
||||
vite-plugin-resolve: 1.8.0
|
||||
vite-plugin-svg-icons: 2.0.1_vite@2.8.6
|
||||
wait-on: 6.0.1
|
||||
|
||||
packages:
|
||||
|
||||
@ -483,6 +493,16 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@hapi/hoek/9.2.1:
|
||||
resolution: {integrity: sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==}
|
||||
dev: true
|
||||
|
||||
/@hapi/topo/5.1.0:
|
||||
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.2.1
|
||||
dev: true
|
||||
|
||||
/@humanwhocodes/config-array/0.9.5:
|
||||
resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==}
|
||||
engines: {node: '>=10.10.0'}
|
||||
@ -574,7 +594,7 @@ packages:
|
||||
'@sentry/types': 6.19.2
|
||||
'@sentry/utils': 6.19.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/@sentry/core/6.19.2:
|
||||
resolution: {integrity: sha512-yu1R3ewBT4udmB4v7sc4biQZ0Z0rfB9+TzB5ZKoCftbe6kqXjFMMaFRYNUF9HicVldKAsBktgkWw3+yfqGkw/A==}
|
||||
@ -585,7 +605,6 @@ packages:
|
||||
'@sentry/types': 6.19.2
|
||||
'@sentry/utils': 6.19.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/hub/6.19.2:
|
||||
resolution: {integrity: sha512-W7KCgNBgdBIMagOxy5J5KQPe+maYxSqfE8a5ncQ3R8BcZDQEKnkW/1FplNbfRLZqA/tL/ndKb7pTPqVtzsbARw==}
|
||||
@ -594,7 +613,6 @@ packages:
|
||||
'@sentry/types': 6.19.2
|
||||
'@sentry/utils': 6.19.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/minimal/6.19.2:
|
||||
resolution: {integrity: sha512-ClwxKm77iDHET7kpzv1JvzDx1er5DoNu+EUjst0kQzARIrXvu9xuZuE2/CnBWycQWqw8o3HoGoKz65uIhsUCzQ==}
|
||||
@ -603,7 +621,6 @@ packages:
|
||||
'@sentry/hub': 6.19.2
|
||||
'@sentry/types': 6.19.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/node/6.19.2:
|
||||
resolution: {integrity: sha512-Z1qREpTpYHxaeWjc1zMUk8ZTAp1WbxMiI2TVNc+a14DVT19Z2xNXb06MiRfeLgNc9lVGdmzR62dPmMBjVgPJYg==}
|
||||
@ -634,7 +651,7 @@ packages:
|
||||
hoist-non-react-statics: 3.3.2
|
||||
react: 17.0.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/@sentry/tracing/6.19.2:
|
||||
resolution: {integrity: sha512-rGoPpP1JIAxdq5bzrww0XuNVr6yn7RN6/wUcaxf6CAvklKvDx+q28WTGlZLGTZ/3un8Rv6i1FZFZOXizgnVnrg==}
|
||||
@ -650,7 +667,6 @@ packages:
|
||||
/@sentry/types/6.19.2:
|
||||
resolution: {integrity: sha512-XO5qmVBdTs+7PdCz7fAwn1afWxSnRE2KLBFg5/vOdKosPSSHsSHUURSkxiEZc2QsR+JpRB4AeQ26AkIRX38qTg==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/@sentry/utils/6.19.2:
|
||||
resolution: {integrity: sha512-2DQQ2OJaxjtyxGq5FmMlqb6hptsqMs2xoBiVRMkTS/rvyTrk1oQdKZ8ePwjtgX3nJ728ni3IXIyXV+vfGp4EBw==}
|
||||
@ -658,7 +674,20 @@ packages:
|
||||
dependencies:
|
||||
'@sentry/types': 6.19.2
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sideway/address/4.1.4:
|
||||
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.2.1
|
||||
dev: true
|
||||
|
||||
/@sideway/formula/3.0.0:
|
||||
resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==}
|
||||
dev: true
|
||||
|
||||
/@sideway/pinpoint/2.0.0:
|
||||
resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
|
||||
dev: true
|
||||
|
||||
/@sindresorhus/is/0.14.0:
|
||||
resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
|
||||
@ -1185,6 +1214,11 @@ packages:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/ansi-regex/6.0.1:
|
||||
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/ansi-styles/2.2.1:
|
||||
resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -1203,11 +1237,6 @@ packages:
|
||||
dependencies:
|
||||
color-convert: 2.0.1
|
||||
|
||||
/ansi-styles/6.1.0:
|
||||
resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/anymatch/3.1.2:
|
||||
resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
|
||||
engines: {node: '>= 8'}
|
||||
@ -1435,6 +1464,14 @@ packages:
|
||||
- debug
|
||||
dev: false
|
||||
|
||||
/axios/0.25.0:
|
||||
resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
|
||||
dependencies:
|
||||
follow-redirects: 1.14.9
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/axios/0.26.1:
|
||||
resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
|
||||
dependencies:
|
||||
@ -1503,6 +1540,14 @@ packages:
|
||||
readable-stream: 3.6.0
|
||||
dev: false
|
||||
|
||||
/bl/5.0.0:
|
||||
resolution: {integrity: sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==}
|
||||
dependencies:
|
||||
buffer: 6.0.3
|
||||
inherits: 2.0.4
|
||||
readable-stream: 3.6.0
|
||||
dev: true
|
||||
|
||||
/bluebird-lst/1.0.9:
|
||||
resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==}
|
||||
dependencies:
|
||||
@ -1667,6 +1712,13 @@ packages:
|
||||
base64-js: 1.5.1
|
||||
ieee754: 1.2.1
|
||||
|
||||
/buffer/6.0.3:
|
||||
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
|
||||
dependencies:
|
||||
base64-js: 1.5.1
|
||||
ieee754: 1.2.1
|
||||
dev: true
|
||||
|
||||
/buffers/0.1.1:
|
||||
resolution: {integrity: sha1-skV5w77U1tOWru5tmorn9Ugqt7s=}
|
||||
engines: {node: '>=0.2.0'}
|
||||
@ -1831,6 +1883,11 @@ packages:
|
||||
supports-color: 7.2.0
|
||||
dev: true
|
||||
|
||||
/chalk/5.0.1:
|
||||
resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==}
|
||||
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/change-case/4.1.2:
|
||||
resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==}
|
||||
dependencies:
|
||||
@ -1915,6 +1972,18 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/cli-cursor/4.0.0:
|
||||
resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dependencies:
|
||||
restore-cursor: 4.0.0
|
||||
dev: true
|
||||
|
||||
/cli-spinners/2.6.1:
|
||||
resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==}
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/cli-truncate/2.1.0:
|
||||
resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
|
||||
engines: {node: '>=8'}
|
||||
@ -1944,6 +2013,11 @@ packages:
|
||||
mimic-response: 1.0.1
|
||||
dev: true
|
||||
|
||||
/clone/1.0.4:
|
||||
resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=}
|
||||
engines: {node: '>=0.8'}
|
||||
dev: true
|
||||
|
||||
/clone/2.1.2:
|
||||
resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=}
|
||||
engines: {node: '>=0.8'}
|
||||
@ -2048,6 +2122,21 @@ packages:
|
||||
readable-stream: 2.3.7
|
||||
typedarray: 0.0.6
|
||||
|
||||
/concurrently/7.0.0:
|
||||
resolution: {integrity: sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw==}
|
||||
engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
date-fns: 2.28.0
|
||||
lodash: 4.17.21
|
||||
rxjs: 6.6.7
|
||||
spawn-command: 0.0.2-1
|
||||
supports-color: 8.1.1
|
||||
tree-kill: 1.2.2
|
||||
yargs: 16.2.0
|
||||
dev: true
|
||||
|
||||
/conf/10.1.1:
|
||||
resolution: {integrity: sha512-z2civwq/k8TMYtcn3SVP0Peso4otIWnHtcTuHhQ0zDZDdP4NTxqEc8owfkz4zBsdMYdn/LFcE+ZhbCeqkhtq3Q==}
|
||||
engines: {node: '>=12'}
|
||||
@ -2262,6 +2351,11 @@ packages:
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/date-fns/2.28.0:
|
||||
resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==}
|
||||
engines: {node: '>=0.11'}
|
||||
dev: true
|
||||
|
||||
/dayjs/1.11.0:
|
||||
resolution: {integrity: sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==}
|
||||
dev: true
|
||||
@ -2330,6 +2424,12 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/defaults/1.0.3:
|
||||
resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=}
|
||||
dependencies:
|
||||
clone: 1.0.4
|
||||
dev: true
|
||||
|
||||
/defer-to-connect/1.1.3:
|
||||
resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
|
||||
dev: true
|
||||
@ -2415,7 +2515,7 @@ packages:
|
||||
dependencies:
|
||||
acorn-node: 1.8.2
|
||||
defined: 1.0.0
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
dev: true
|
||||
|
||||
/dicer/0.3.0:
|
||||
@ -2658,7 +2758,7 @@ packages:
|
||||
compare-version: 0.1.2
|
||||
debug: 2.6.9
|
||||
isbinaryfile: 3.0.3
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
plist: 3.0.4
|
||||
dev: true
|
||||
|
||||
@ -2798,8 +2898,17 @@ packages:
|
||||
es6-promise: 4.2.8
|
||||
dev: false
|
||||
|
||||
/esbuild-android-arm64/0.14.21:
|
||||
resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==}
|
||||
/esbuild-android-64/0.14.28:
|
||||
resolution: {integrity: sha512-A52C3zq+9tNwCqZ+4kVLBxnk/WnrYM8P2+QNvNE9B6d2OVPs214lp3g6UyO+dKDhUdefhfPCuwkP8j2A/+szNA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-android-arm64/0.14.28:
|
||||
resolution: {integrity: sha512-sm0fDEGElZhMC3HLZeECI2juE4aG7uPfMBMqNUhy9CeX399Pz8rC6e78OXMXInGjSdEAwQmCOHmfsP7uv3Q8rA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
@ -2807,8 +2916,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-64/0.14.21:
|
||||
resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==}
|
||||
/esbuild-darwin-64/0.14.28:
|
||||
resolution: {integrity: sha512-nzDd7mQ44FvsFHtOafZdBgn3Li5SMsnMnoz1J2MM37xJmR3wGNTFph88KypjHgWqwbxCI7MXS1U+sN4qDeeW6Q==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
@ -2816,8 +2925,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-darwin-arm64/0.14.21:
|
||||
resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==}
|
||||
/esbuild-darwin-arm64/0.14.28:
|
||||
resolution: {integrity: sha512-XEq/bLR/glsUl+uGrBimQzOVs/CmwI833fXUhP9xrLI3IJ+rKyrZ5IA8u+1crOEf1LoTn8tV+hInmX6rGjbScw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
@ -2825,8 +2934,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-64/0.14.21:
|
||||
resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==}
|
||||
/esbuild-freebsd-64/0.14.28:
|
||||
resolution: {integrity: sha512-rTKLgUj/HEcPeE5XZ7IZwWpFx7IWMfprN7QRk/TUJE1s1Ipb58esboIesUpjirJz/BwrgHq+FDG9ChAI8dZAtQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
@ -2834,8 +2943,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-freebsd-arm64/0.14.21:
|
||||
resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==}
|
||||
/esbuild-freebsd-arm64/0.14.28:
|
||||
resolution: {integrity: sha512-sBffxD1UMOsB7aWMoExmipycjcy3HJGwmqE4GQZUTZvdiH4GhjgUiVdtPyt7kSCdL40JqnWQJ4b1l8Y51oCF4Q==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
@ -2843,8 +2952,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-32/0.14.21:
|
||||
resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==}
|
||||
/esbuild-linux-32/0.14.28:
|
||||
resolution: {integrity: sha512-+Wxidh3fBEQ9kHcCsD4etlBTMb1n6QY2uXv3rFhVn88CY/JP782MhA57/ipLMY4kOLeSKEuFGN4rtjHuhmRMig==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
@ -2852,8 +2961,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-64/0.14.21:
|
||||
resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==}
|
||||
/esbuild-linux-64/0.14.28:
|
||||
resolution: {integrity: sha512-7+xgsC4LvR6cnzaBdiljNnPDjbkwzahogN+S9uy9AoYw7ZjPnnXc6sjQAVCbqGb7MEgrWdpa6u/Tao79i4lWxg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@ -2861,8 +2970,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm/0.14.21:
|
||||
resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==}
|
||||
/esbuild-linux-arm/0.14.28:
|
||||
resolution: {integrity: sha512-L5isjmlLbh9E0WVllXiVETbScgMbth/+XkXQii1WwgO1RvLIfaGrVFz8d2n6EH/ImtgYxPYGx+OcvIKQBc91Rg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
@ -2870,8 +2979,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-arm64/0.14.21:
|
||||
resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==}
|
||||
/esbuild-linux-arm64/0.14.28:
|
||||
resolution: {integrity: sha512-EjRHgwg+kgXABzyoPGPOPg4d5wZqRnZ/ZAxBDzLY+i6DS8OUfTSlZHWIOZzU4XF7125WxRBg9ULbrFJBl+57Eg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@ -2879,8 +2988,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-mips64le/0.14.21:
|
||||
resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==}
|
||||
/esbuild-linux-mips64le/0.14.28:
|
||||
resolution: {integrity: sha512-krx9SSg7yfiUKk64EmjefOyiEF6nv2bRE4um/LiTaQ6Y/6FP4UF3/Ou/AxZVyR154uSRq63xejcAsmswXAYRsw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
@ -2888,8 +2997,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-ppc64le/0.14.21:
|
||||
resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==}
|
||||
/esbuild-linux-ppc64le/0.14.28:
|
||||
resolution: {integrity: sha512-LD0Xxu9g+DNuhsEBV5QuVZ4uKVBMup0xPIruLweuAf9/mHXFnaCuNXUBF5t0DxKl7GQ5MSioKtnb92oMo+QXEw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
@ -2897,8 +3006,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-riscv64/0.14.21:
|
||||
resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==}
|
||||
/esbuild-linux-riscv64/0.14.28:
|
||||
resolution: {integrity: sha512-L/DWfRh2P0vxq4Y+qieSNXKGdMg+e9Qe8jkbN2/8XSGYDTPzO2OcAxSujob4qIh7iSl+cknbXV+BvH0YFR0jbg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
@ -2906,8 +3015,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-linux-s390x/0.14.21:
|
||||
resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==}
|
||||
/esbuild-linux-s390x/0.14.28:
|
||||
resolution: {integrity: sha512-rrgxmsbmL8QQknWGnAL9bGJRQYLOi2AzXy5OTwfhxnj9eqjo5mSVbJXjgiq5LPUAMQZGdPH5yaNK0obAXS81Zw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
@ -2915,8 +3024,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-netbsd-64/0.14.21:
|
||||
resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==}
|
||||
/esbuild-netbsd-64/0.14.28:
|
||||
resolution: {integrity: sha512-h8wntIyOR8/xMVVM6TvJxxWKh4AjmLK87IPKpuVi8Pq0kyk0RMA+eo4PFGk5j2XK0D7dj8PcSF5NSlP9kN/j0A==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
@ -2924,8 +3033,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-openbsd-64/0.14.21:
|
||||
resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==}
|
||||
/esbuild-openbsd-64/0.14.28:
|
||||
resolution: {integrity: sha512-HBv18rVapbuDx52/fhZ/c/w6TXyaQAvRxiDDn5Hz/pBcwOs3cdd2WxeIKlWmDoqm2JMx5EVlq4IWgoaRX9mVkw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
@ -2933,8 +3042,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-sunos-64/0.14.21:
|
||||
resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==}
|
||||
/esbuild-sunos-64/0.14.28:
|
||||
resolution: {integrity: sha512-zlIxePhZxKYheR2vBCgPVvTixgo/ozOfOMoP6RZj8dxzquU1NgeyhjkcRXucbLCtmoNJ+i4PtWwPZTLuDd3bGg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
@ -2942,8 +3051,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-32/0.14.21:
|
||||
resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==}
|
||||
/esbuild-windows-32/0.14.28:
|
||||
resolution: {integrity: sha512-am9DIJxXlld1BOAY/VlvBQHMUCPL7S3gB/lnXIY3M4ys0gfuRqPf4EvMwZMzYUbFKBY+/Qb8SRgPRRGhwnJ8Kg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
@ -2951,8 +3060,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-64/0.14.21:
|
||||
resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==}
|
||||
/esbuild-windows-64/0.14.28:
|
||||
resolution: {integrity: sha512-78PhySDnmRZlsPNp/W/5Fim8iivlBQQxfhBFIqR7xwvfDmCFUSByyMKP7LCHgNtb04yNdop8nJJkJaQ8Xnwgiw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@ -2960,8 +3069,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild-windows-arm64/0.14.21:
|
||||
resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==}
|
||||
/esbuild-windows-arm64/0.14.28:
|
||||
resolution: {integrity: sha512-VhXGBTo6HELD8zyHXynV6+L2jWx0zkKnGx4TmEdSBK7UVFACtOyfUqpToG0EtnYyRZ0HESBhzPSVpP781ovmvA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
@ -2969,31 +3078,32 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild/0.14.21:
|
||||
resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==}
|
||||
/esbuild/0.14.28:
|
||||
resolution: {integrity: sha512-YLNprkCcMVKQ5sekmCKEQ3Obu/L7s6+iij38xNKyBeSmSsTWur4Ky/9zB3XIGT8SCJITG/bZwAR2l7YOAXch4Q==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
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
|
||||
esbuild-android-64: 0.14.28
|
||||
esbuild-android-arm64: 0.14.28
|
||||
esbuild-darwin-64: 0.14.28
|
||||
esbuild-darwin-arm64: 0.14.28
|
||||
esbuild-freebsd-64: 0.14.28
|
||||
esbuild-freebsd-arm64: 0.14.28
|
||||
esbuild-linux-32: 0.14.28
|
||||
esbuild-linux-64: 0.14.28
|
||||
esbuild-linux-arm: 0.14.28
|
||||
esbuild-linux-arm64: 0.14.28
|
||||
esbuild-linux-mips64le: 0.14.28
|
||||
esbuild-linux-ppc64le: 0.14.28
|
||||
esbuild-linux-riscv64: 0.14.28
|
||||
esbuild-linux-s390x: 0.14.28
|
||||
esbuild-netbsd-64: 0.14.28
|
||||
esbuild-openbsd-64: 0.14.28
|
||||
esbuild-sunos-64: 0.14.28
|
||||
esbuild-windows-32: 0.14.28
|
||||
esbuild-windows-64: 0.14.28
|
||||
esbuild-windows-arm64: 0.14.28
|
||||
dev: true
|
||||
|
||||
/escalade/3.1.1:
|
||||
@ -3911,7 +4021,7 @@ packages:
|
||||
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
|
||||
dependencies:
|
||||
react-is: 16.13.1
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/hosted-git-info/4.1.0:
|
||||
resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
|
||||
@ -4277,6 +4387,11 @@ packages:
|
||||
is-path-inside: 3.0.3
|
||||
dev: true
|
||||
|
||||
/is-interactive/2.0.0:
|
||||
resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/is-negative-zero/2.0.2:
|
||||
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -4356,6 +4471,11 @@ packages:
|
||||
/is-typedarray/1.0.0:
|
||||
resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=}
|
||||
|
||||
/is-unicode-supported/1.2.0:
|
||||
resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/is-weakref/1.0.2:
|
||||
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
|
||||
dependencies:
|
||||
@ -4427,6 +4547,16 @@ packages:
|
||||
minimatch: 3.1.2
|
||||
dev: true
|
||||
|
||||
/joi/17.6.0:
|
||||
resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==}
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.2.1
|
||||
'@hapi/topo': 5.1.0
|
||||
'@sideway/address': 4.1.4
|
||||
'@sideway/formula': 3.0.0
|
||||
'@sideway/pinpoint': 2.0.0
|
||||
dev: true
|
||||
|
||||
/js-base64/2.6.4:
|
||||
resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
|
||||
dev: true
|
||||
@ -4498,7 +4628,7 @@ packages:
|
||||
resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
dev: true
|
||||
|
||||
/json5/2.2.0:
|
||||
@ -4506,7 +4636,7 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
dev: true
|
||||
|
||||
/jsonfile/4.0.0:
|
||||
@ -4669,6 +4799,14 @@ packages:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: true
|
||||
|
||||
/log-symbols/5.1.0:
|
||||
resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
chalk: 5.0.1
|
||||
is-unicode-supported: 1.2.0
|
||||
dev: true
|
||||
|
||||
/loose-envify/1.4.0:
|
||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||
hasBin: true
|
||||
@ -4839,7 +4977,6 @@ packages:
|
||||
/mimic-fn/2.1.0:
|
||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/mimic-fn/3.1.0:
|
||||
resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
|
||||
@ -4867,8 +5004,8 @@ packages:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
|
||||
/minimist/1.2.5:
|
||||
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
||||
/minimist/1.2.6:
|
||||
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
|
||||
|
||||
/minipass/3.1.6:
|
||||
resolution: {integrity: sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==}
|
||||
@ -4901,7 +5038,7 @@ packages:
|
||||
resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
dev: true
|
||||
|
||||
/mkdirp/1.0.4:
|
||||
@ -5195,7 +5332,6 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
mimic-fn: 2.1.0
|
||||
dev: false
|
||||
|
||||
/open/8.4.0:
|
||||
resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
|
||||
@ -5230,6 +5366,21 @@ packages:
|
||||
word-wrap: 1.2.3
|
||||
dev: true
|
||||
|
||||
/ora/6.1.0:
|
||||
resolution: {integrity: sha512-CxEP6845hLK+NHFWZ+LplGO4zfw4QSfxTlqMfvlJ988GoiUeZDMzCvqsZkFHv69sPICmJH1MDxZoQFOKXerAVw==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dependencies:
|
||||
bl: 5.0.0
|
||||
chalk: 5.0.1
|
||||
cli-cursor: 4.0.0
|
||||
cli-spinners: 2.6.1
|
||||
is-interactive: 2.0.0
|
||||
is-unicode-supported: 1.2.0
|
||||
log-symbols: 5.1.0
|
||||
strip-ansi: 7.0.1
|
||||
wcwidth: 1.0.1
|
||||
dev: true
|
||||
|
||||
/p-cancelable/1.1.0:
|
||||
resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
|
||||
engines: {node: '>=6'}
|
||||
@ -5546,7 +5697,7 @@ packages:
|
||||
detect-libc: 2.0.1
|
||||
expand-template: 2.0.3
|
||||
github-from-package: 0.0.0
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
mkdirp-classic: 0.5.3
|
||||
napi-build-utils: 1.0.2
|
||||
node-abi: 3.8.0
|
||||
@ -5715,7 +5866,7 @@ packages:
|
||||
dependencies:
|
||||
deep-extend: 0.6.0
|
||||
ini: 1.3.8
|
||||
minimist: 1.2.5
|
||||
minimist: 1.2.6
|
||||
strip-json-comments: 2.0.1
|
||||
|
||||
/react-dom/17.0.2_react@17.0.2:
|
||||
@ -6060,6 +6211,14 @@ packages:
|
||||
lowercase-keys: 1.0.1
|
||||
dev: true
|
||||
|
||||
/restore-cursor/4.0.0:
|
||||
resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dependencies:
|
||||
onetime: 5.1.2
|
||||
signal-exit: 3.0.7
|
||||
dev: true
|
||||
|
||||
/ret/0.1.15:
|
||||
resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
|
||||
engines: {node: '>=0.12'}
|
||||
@ -6131,6 +6290,19 @@ packages:
|
||||
queue-microtask: 1.2.3
|
||||
dev: true
|
||||
|
||||
/rxjs/6.6.7:
|
||||
resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
|
||||
engines: {npm: '>=2.0.0'}
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
dev: true
|
||||
|
||||
/rxjs/7.5.5:
|
||||
resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==}
|
||||
dependencies:
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/safe-buffer/5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
|
||||
@ -6443,6 +6615,10 @@ packages:
|
||||
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
||||
dev: true
|
||||
|
||||
/spawn-command/0.0.2-1:
|
||||
resolution: {integrity: sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=}
|
||||
dev: true
|
||||
|
||||
/split-string/3.1.0:
|
||||
resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -6597,6 +6773,13 @@ packages:
|
||||
dependencies:
|
||||
ansi-regex: 5.0.1
|
||||
|
||||
/strip-ansi/7.0.1:
|
||||
resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
ansi-regex: 6.0.1
|
||||
dev: true
|
||||
|
||||
/strip-json-comments/2.0.1:
|
||||
resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -6652,6 +6835,13 @@ packages:
|
||||
has-flag: 4.0.0
|
||||
dev: true
|
||||
|
||||
/supports-color/8.1.1:
|
||||
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
has-flag: 4.0.0
|
||||
dev: true
|
||||
|
||||
/supports-preserve-symlinks-flag/1.0.0:
|
||||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -6879,6 +7069,11 @@ packages:
|
||||
resolution: {integrity: sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=}
|
||||
dev: true
|
||||
|
||||
/tree-kill/1.2.2:
|
||||
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/truncate-utf8-bytes/1.0.2:
|
||||
resolution: {integrity: sha1-QFkjkJWS1W94pYGENLC3hInKXys=}
|
||||
dependencies:
|
||||
@ -7024,7 +7219,7 @@ packages:
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/unplugin-auto-import/0.6.6_rollup@2.70.1+vite@2.8.6:
|
||||
/unplugin-auto-import/0.6.6_30793d9d6b24634df96d91984952e36a:
|
||||
resolution: {integrity: sha512-x3YxAI9ePoumXOakuS5YJlFkSyAkl5vJlaFZSJhSp75nH5gg8LpqQ/0Gz1/CG/JRRv+xaE1CZpEV161AqFGjEg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
@ -7038,7 +7233,7 @@ packages:
|
||||
local-pkg: 0.4.1
|
||||
magic-string: 0.26.1
|
||||
resolve: 1.22.0
|
||||
unplugin: 0.4.0_rollup@2.70.1+vite@2.8.6
|
||||
unplugin: 0.4.0_30793d9d6b24634df96d91984952e36a
|
||||
transitivePeerDependencies:
|
||||
- esbuild
|
||||
- rollup
|
||||
@ -7046,7 +7241,7 @@ packages:
|
||||
- webpack
|
||||
dev: true
|
||||
|
||||
/unplugin/0.4.0_rollup@2.70.1+vite@2.8.6:
|
||||
/unplugin/0.4.0_30793d9d6b24634df96d91984952e36a:
|
||||
resolution: {integrity: sha512-4ScITEmzlz1iZW3tkz+3L1V5k/xMQ6kjgm4lEXKxH0ozd8/OUWfiSA7RMRyrawsvq/t50JIzPpp1UyuSL/AXkA==}
|
||||
peerDependencies:
|
||||
esbuild: '>=0.13'
|
||||
@ -7064,6 +7259,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
chokidar: 3.5.3
|
||||
esbuild: 0.14.28
|
||||
rollup: 2.70.1
|
||||
vite: 2.8.6_sass@1.49.9
|
||||
webpack-virtual-modules: 0.4.3
|
||||
@ -7282,7 +7478,7 @@ packages:
|
||||
stylus:
|
||||
optional: true
|
||||
dependencies:
|
||||
esbuild: 0.14.21
|
||||
esbuild: 0.14.28
|
||||
postcss: 8.4.12
|
||||
resolve: 1.22.0
|
||||
rollup: 2.70.1
|
||||
@ -7300,6 +7496,26 @@ packages:
|
||||
acorn-walk: 8.2.0
|
||||
dev: false
|
||||
|
||||
/wait-on/6.0.1:
|
||||
resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
axios: 0.25.0
|
||||
joi: 17.6.0
|
||||
lodash: 4.17.21
|
||||
minimist: 1.2.6
|
||||
rxjs: 7.5.5
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/wcwidth/1.0.1:
|
||||
resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=}
|
||||
dependencies:
|
||||
defaults: 1.0.3
|
||||
dev: true
|
||||
|
||||
/webidl-conversions/3.0.1:
|
||||
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
|
||||
dev: false
|
||||
@ -7432,6 +7648,11 @@ packages:
|
||||
camelcase: 5.3.1
|
||||
decamelize: 1.2.0
|
||||
|
||||
/yargs-parser/20.2.9:
|
||||
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/yargs-parser/21.0.0:
|
||||
resolution: {integrity: sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==}
|
||||
engines: {node: '>=12'}
|
||||
@ -7452,6 +7673,19 @@ packages:
|
||||
y18n: 4.0.3
|
||||
yargs-parser: 18.1.3
|
||||
|
||||
/yargs/16.2.0:
|
||||
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
cliui: 7.0.4
|
||||
escalade: 3.1.1
|
||||
get-caller-file: 2.0.5
|
||||
require-directory: 2.1.1
|
||||
string-width: 4.2.3
|
||||
y18n: 5.0.8
|
||||
yargs-parser: 20.2.9
|
||||
dev: true
|
||||
|
||||
/yargs/17.3.1:
|
||||
resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==}
|
||||
engines: {node: '>=12'}
|
||||
|
99
scripts/build.main.mjs
Normal file
@ -0,0 +1,99 @@
|
||||
import { build } from 'esbuild'
|
||||
import ora from 'ora'
|
||||
import { builtinModules } from 'module'
|
||||
import electron from 'electron'
|
||||
import { spawn } from 'child_process'
|
||||
import path from 'path'
|
||||
import waitOn from 'wait-on'
|
||||
import 'dotenv/config'
|
||||
import pc from 'picocolors'
|
||||
import minimist from 'minimist'
|
||||
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const TAG = '[script/build.main.ts]'
|
||||
const spinner = ora(`${TAG} Main Process Building...`)
|
||||
|
||||
const options = {
|
||||
entryPoints: ['./src/main/index.ts', './src/main/rendererPreload.ts'],
|
||||
outdir: './dist/main/',
|
||||
platform: 'node',
|
||||
format: 'cjs',
|
||||
bundle: true,
|
||||
external: [
|
||||
...builtinModules.filter(
|
||||
x => !/^_|^(internal|v8|node-inspect)\/|\//.test(x)
|
||||
),
|
||||
'electron',
|
||||
'NeteaseCloudMusicApi',
|
||||
],
|
||||
}
|
||||
|
||||
const runApp = () => {
|
||||
return spawn(
|
||||
electron,
|
||||
[path.resolve(process.cwd(), './dist/main/index.js')],
|
||||
{
|
||||
stdio: 'inherit',
|
||||
env: {
|
||||
...process.env,
|
||||
NODE_ENV: 'development',
|
||||
},
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (argv.watch) {
|
||||
waitOn(
|
||||
{
|
||||
resources: [
|
||||
`http://127.0.0.1:${process.env.ELECTRON_WEB_SERVER_PORT}/index.html`,
|
||||
],
|
||||
timeout: 5000,
|
||||
},
|
||||
err => {
|
||||
if (err) {
|
||||
console.log(err)
|
||||
process.exit(1)
|
||||
} else {
|
||||
let child
|
||||
build({
|
||||
...options,
|
||||
watch: {
|
||||
onRebuild(error) {
|
||||
if (error) {
|
||||
console.error(pc.red('Rebuild Failed:'), error)
|
||||
} else {
|
||||
console.log(pc.green('Rebuild Succeeded'))
|
||||
if (child) child.kill()
|
||||
child = runApp()
|
||||
}
|
||||
},
|
||||
},
|
||||
}).then(() => {
|
||||
console.log(pc.yellow(`⚡ Run App`))
|
||||
if (child) child.kill()
|
||||
child = runApp()
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
} else {
|
||||
spinner.start()
|
||||
build({
|
||||
...options,
|
||||
minify: true,
|
||||
})
|
||||
.then(() => {
|
||||
console.log(TAG, pc.green('Main Process Build Succeeded.'))
|
||||
})
|
||||
.catch(error => {
|
||||
console.log(
|
||||
`\n${TAG} ${pc.red('Main Process Build Failed')}\n`,
|
||||
error,
|
||||
'\n'
|
||||
)
|
||||
})
|
||||
.finally(() => {
|
||||
spinner.stop()
|
||||
})
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
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' })
|
@ -1,45 +0,0 @@
|
||||
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<typeof resolve>[0]),
|
||||
{}
|
||||
),
|
||||
},
|
||||
{ dir: '.vite-plugin-resolve-esm' }
|
||||
)
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
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<import('rollup').RollupWatcher>}
|
||||
*/
|
||||
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<import('rollup').RollupWatcher>}
|
||||
*/
|
||||
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] '))
|
||||
console.log('building renderer')
|
||||
const server = await createServer({
|
||||
configFile: 'packages/renderer/vite.config.ts',
|
||||
})
|
||||
await server.listen()
|
||||
|
||||
console.log('building preload')
|
||||
await watchPreload(server)
|
||||
|
||||
console.log('building main')
|
||||
await watchMain(server)
|
@ -1,6 +1,7 @@
|
||||
import Realm from 'realm'
|
||||
import path from 'path'
|
||||
import { app } from 'electron'
|
||||
import { app, ipcMain } from 'electron'
|
||||
import fs from 'fs'
|
||||
|
||||
export enum ModelNames {
|
||||
ACCOUNT_DATA = 'AccountData',
|
||||
@ -43,6 +44,10 @@ const RegularSchemas = [
|
||||
|
||||
export const realm = new Realm({
|
||||
path: path.resolve(app.getPath('userData'), './api_cache/db.realm'),
|
||||
shouldCompactOnLaunch: (totalSize, usedSize) => {
|
||||
console.log(totalSize, usedSize)
|
||||
return true
|
||||
},
|
||||
schema: [
|
||||
...RegularSchemas,
|
||||
{
|
||||
@ -96,3 +101,31 @@ export const db = {
|
||||
realm.delete(realm.objectForPrimaryKey(model, key))
|
||||
},
|
||||
}
|
||||
|
||||
ipcMain.on('test', () => {
|
||||
;[
|
||||
ModelNames.USER_PLAYLISTS,
|
||||
ModelNames.ARTIST_ALBUMS,
|
||||
ModelNames.PLAYLIST,
|
||||
ModelNames.ALBUM,
|
||||
ModelNames.TRACK,
|
||||
ModelNames.ARTIST,
|
||||
ModelNames.AUDIO,
|
||||
ModelNames.ACCOUNT_DATA,
|
||||
].forEach(name => {
|
||||
const data = realm.objects(name)
|
||||
|
||||
fs.writeFile(`./tmp/${name}.json`, JSON.stringify(data), function (err) {
|
||||
if (err) {
|
||||
return console.log(err)
|
||||
}
|
||||
console.log('The file was saved!')
|
||||
})
|
||||
})
|
||||
|
||||
// realm.write(() => {
|
||||
// realm.deleteAll()
|
||||
// })
|
||||
|
||||
realm.compact()
|
||||
})
|
@ -11,12 +11,12 @@ import { release } from 'os'
|
||||
import path, { join } from 'path'
|
||||
import logger from './logger'
|
||||
import './server'
|
||||
import './database'
|
||||
// import './database'
|
||||
|
||||
const isWindows = process.platform === 'win32'
|
||||
const isMac = process.platform === 'darwin'
|
||||
const isLinux = process.platform === 'linux'
|
||||
const isDev = !app.isPackaged
|
||||
const isDev = process.env.NODE_ENV === 'development'
|
||||
|
||||
// Disable GPU Acceleration for Windows 7
|
||||
if (release().startsWith('6.1')) app.disableHardwareAcceleration()
|
||||
@ -51,10 +51,11 @@ let win: BrowserWindow | null = null
|
||||
|
||||
async function createWindow() {
|
||||
// Create window
|
||||
|
||||
const options: BrowserWindowConstructorOptions = {
|
||||
title: 'Main window',
|
||||
webPreferences: {
|
||||
preload: join(__dirname, '../preload/index.cjs'),
|
||||
preload: join(__dirname, '../main/rendererPreload.js'),
|
||||
},
|
||||
width: store.get('window.width'),
|
||||
height: store.get('window.height'),
|
||||
@ -70,14 +71,12 @@ async function createWindow() {
|
||||
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}`)
|
||||
|
||||
if (isDev) {
|
||||
const url = `http://127.0.0.1:${process.env.ELECTRON_WEB_SERVER_PORT}`
|
||||
win.loadURL(url)
|
||||
win.webContents.openDevTools()
|
||||
} else {
|
||||
win.loadFile(join(__dirname, '../renderer/index.html'))
|
||||
}
|
||||
|
||||
// Make all links open with the browser, not with the application
|
@ -1,29 +1,17 @@
|
||||
import styles from 'ansi-styles'
|
||||
import { app } from 'electron'
|
||||
import logger from 'electron-log'
|
||||
import pc from 'picocolors'
|
||||
|
||||
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.console.format = `${pc.dim('{h}:{i}:{s}{scope}')} › {text}`
|
||||
|
||||
logger.transports.file.level = app.isPackaged ? 'info' : 'debug'
|
||||
logger.info(
|
||||
color(
|
||||
'335eea',
|
||||
`\n\n██╗ ██╗███████╗███████╗██████╗ ██╗ █████╗ ██╗ ██╗███╗ ███╗██╗ ██╗███████╗██╗ ██████╗
|
||||
`\n\n██╗ ██╗███████╗███████╗██████╗ ██╗ █████╗ ██╗ ██╗███╗ ███╗██╗ ██╗███████╗██╗ ██████╗
|
||||
╚██╗ ██╔╝██╔════╝██╔════╝██╔══██╗██║ ██╔══██╗╚██╗ ██╔╝████╗ ████║██║ ██║██╔════╝██║██╔════╝
|
||||
╚████╔╝ █████╗ ███████╗██████╔╝██║ ███████║ ╚████╔╝ ██╔████╔██║██║ ██║███████╗██║██║
|
||||
╚██╔╝ ██╔══╝ ╚════██║██╔═══╝ ██║ ██╔══██║ ╚██╔╝ ██║╚██╔╝██║██║ ██║╚════██║██║██║
|
||||
██║ ███████╗███████║██║ ███████╗██║ ██║ ██║ ██║ ╚═╝ ██║╚██████╔╝███████║██║╚██████╗
|
||||
╚═╝ ╚══════╝╚══════╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝\n`
|
||||
)
|
||||
)
|
||||
|
||||
export default logger
|
4
src/main/rendererPreload.ts
Normal file
@ -0,0 +1,4 @@
|
||||
const { contextBridge, ipcRenderer } = require('electron')
|
||||
|
||||
contextBridge.exposeInMainWorld('ipcRenderer', ipcRenderer)
|
||||
contextBridge.exposeInMainWorld('isElectron', true)
|
@ -1,11 +1,14 @@
|
||||
import * as Sentry from '@sentry/node'
|
||||
import * as Tracing from '@sentry/tracing'
|
||||
import pkg from '../../package.json'
|
||||
import logger from './logger'
|
||||
|
||||
logger.info(`[sentry] init sentry`)
|
||||
|
||||
Sentry.init({
|
||||
dsn: 'https://2aaaa67f1c3d4d6baefafa5d58fcf340@o436528.ingest.sentry.io/6274637',
|
||||
release: `yesplaymusic@${pkg.version}`,
|
||||
environment: import.meta.env.MODE,
|
||||
// environment: import.meta.env.MODE,
|
||||
|
||||
// Set tracesSampleRate to 1.0 to capture 100%
|
||||
// of transactions for performance monitoring.
|
@ -2,12 +2,12 @@ import { pathCase } from 'change-case'
|
||||
import cookieParser from 'cookie-parser'
|
||||
import express, { Request, Response } from 'express'
|
||||
import logger from './logger'
|
||||
import {
|
||||
setCache,
|
||||
getCacheForExpress,
|
||||
cacheAudio,
|
||||
getAudioCache,
|
||||
} from './cache'
|
||||
// import {
|
||||
// setCache,
|
||||
// getCacheForExpress,
|
||||
// cacheAudio,
|
||||
// getAudioCache,
|
||||
// } from './cache'
|
||||
import fileUpload from 'express-fileupload'
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
@ -26,8 +26,8 @@ Object.entries(neteaseApi).forEach(([name, handler]) => {
|
||||
logger.info(`[server] Handling request: ${req.path}`)
|
||||
|
||||
// Get from cache
|
||||
const cache = await getCacheForExpress(name, req)
|
||||
if (cache) return res.json(cache)
|
||||
// const cache = await getCacheForExpress(name, req)
|
||||
// if (cache) return res.json(cache)
|
||||
|
||||
// Request netease api
|
||||
try {
|
||||
@ -36,7 +36,7 @@ Object.entries(neteaseApi).forEach(([name, handler]) => {
|
||||
cookie: `MUSIC_U=${req.cookies['MUSIC_U']}`,
|
||||
})
|
||||
|
||||
setCache(name, result.body, req.query)
|
||||
// setCache(name, result.body, req.query)
|
||||
return res.send(result.body)
|
||||
} catch (error) {
|
||||
return res.status(500).send(error)
|
||||
@ -51,7 +51,7 @@ Object.entries(neteaseApi).forEach(([name, handler]) => {
|
||||
app.get(
|
||||
'/yesplaymusic/audio/:filename',
|
||||
async (req: Request, res: Response) => {
|
||||
getAudioCache(req.params.filename, res)
|
||||
// getAudioCache(req.params.filename, res)
|
||||
}
|
||||
)
|
||||
app.post('/yesplaymusic/audio/:id', async (req: Request, res: Response) => {
|
||||
@ -72,17 +72,17 @@ app.post('/yesplaymusic/audio/:id', async (req: Request, res: Response) => {
|
||||
}
|
||||
|
||||
try {
|
||||
await cacheAudio(req.files.file.data, {
|
||||
id: id,
|
||||
source: 'netease',
|
||||
})
|
||||
// await cacheAudio(req.files.file.data, {
|
||||
// id: id,
|
||||
// source: 'netease',
|
||||
// })
|
||||
res.status(200).send('Audio cached!')
|
||||
} catch (error) {
|
||||
res.status(500).send({ error })
|
||||
}
|
||||
})
|
||||
|
||||
const port = Number(process.env['ELECTRON_DEV_NETEASE_API_PORT'] ?? 3000)
|
||||
const port = Number(process.env.ELECTRON_DEV_NETEASE_API_PORT ?? 3000)
|
||||
app.listen(port, () => {
|
||||
logger.info(`[server] API server listening on port ${port}`)
|
||||
})
|
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 259 B |
Before Width: | Height: | Size: 523 B After Width: | Height: | Size: 523 B |
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 946 B |
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 542 B |
Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 550 B |
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 535 B |
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 258 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 557 B After Width: | Height: | Size: 557 B |
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 284 B After Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 349 B |
Before Width: | Height: | Size: 741 B After Width: | Height: | Size: 741 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 371 B |
Before Width: | Height: | Size: 708 B After Width: | Height: | Size: 708 B |
Before Width: | Height: | Size: 1018 B After Width: | Height: | Size: 1018 B |
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 841 B |
Before Width: | Height: | Size: 496 B After Width: | Height: | Size: 496 B |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 1023 B After Width: | Height: | Size: 1023 B |
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 341 B |
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 525 B |
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 702 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 572 B |
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
@ -3,9 +3,8 @@ export {}
|
||||
declare global {
|
||||
interface Window {
|
||||
// Expose some Api through preload script
|
||||
fs: typeof import('fs')
|
||||
ipcRenderer: import('electron').IpcRenderer
|
||||
removeLoading: () => void
|
||||
ipcRenderer?: import('electron').IpcRenderer
|
||||
isElectron?: boolean
|
||||
}
|
||||
}
|
||||
|
@ -18,13 +18,13 @@ export default function useAlbum(params: FetchAlbumParams, noCache?: boolean) {
|
||||
{
|
||||
enabled: !!params.id,
|
||||
staleTime: 24 * 60 * 60 * 1000, // 24 hours
|
||||
placeholderData: (): FetchAlbumResponse =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'album',
|
||||
query: {
|
||||
id: params.id,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchAlbumResponse =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'album',
|
||||
// query: {
|
||||
// id: params.id,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -12,13 +12,13 @@ export default function useArtist(
|
||||
{
|
||||
enabled: !!params.id && params.id > 0 && !isNaN(Number(params.id)),
|
||||
staleTime: 5 * 60 * 1000, // 5 mins
|
||||
placeholderData: (): FetchArtistResponse =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'artists',
|
||||
query: {
|
||||
id: params.id,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchArtistResponse =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'artists',
|
||||
// query: {
|
||||
// id: params.id,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -15,13 +15,13 @@ export default function useUserAlbums(params: FetchArtistAlbumsParams) {
|
||||
{
|
||||
enabled: !!params.id && params.id !== 0,
|
||||
staleTime: 3600000,
|
||||
placeholderData: (): FetchArtistAlbumsResponse =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'artist/album',
|
||||
query: {
|
||||
id: params.id,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchArtistAlbumsResponse =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'artist/album',
|
||||
// query: {
|
||||
// id: params.id,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -17,13 +17,13 @@ export default function usePlaylist(
|
||||
{
|
||||
enabled: !!(params.id && params.id > 0 && !isNaN(Number(params.id))),
|
||||
refetchOnWindowFocus: true,
|
||||
placeholderData: (): FetchPlaylistResponse | undefined =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'playlist/detail',
|
||||
query: {
|
||||
id: params.id,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchPlaylistResponse | undefined =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'playlist/detail',
|
||||
// query: {
|
||||
// id: params.id,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -16,13 +16,13 @@ export default function useTracks(params: FetchTracksParams) {
|
||||
enabled: params.ids.length !== 0,
|
||||
refetchInterval: false,
|
||||
staleTime: Infinity,
|
||||
initialData: (): FetchTracksResponse | undefined =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'song/detail',
|
||||
query: {
|
||||
ids: params.ids.join(','),
|
||||
},
|
||||
}),
|
||||
// initialData: (): FetchTracksResponse | undefined =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'song/detail',
|
||||
// query: {
|
||||
// ids: params.ids.join(','),
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -4,9 +4,9 @@ import { UserApiNames } from '@/api/user'
|
||||
export default function useUser() {
|
||||
return useQuery(UserApiNames.FETCH_USER_ACCOUNT, fetchUserAccount, {
|
||||
refetchOnWindowFocus: true,
|
||||
placeholderData: (): fetchUserAccountResponse | undefined =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'user/account',
|
||||
}),
|
||||
// placeholderData: (): fetchUserAccountResponse | undefined =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'user/account',
|
||||
// }),
|
||||
})
|
||||
}
|
@ -13,13 +13,13 @@ export default function useUserLikedSongsIDs(
|
||||
{
|
||||
enabled: !!(params.uid && params.uid !== 0),
|
||||
refetchOnWindowFocus: true,
|
||||
placeholderData: (): FetchUserLikedSongsIDsResponse | undefined =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'likelist',
|
||||
query: {
|
||||
uid: params.uid,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchUserLikedSongsIDsResponse | undefined =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'likelist',
|
||||
// query: {
|
||||
// uid: params.uid,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -17,13 +17,13 @@ export default function useUserPlaylists(params: FetchUserPlaylistsParams) {
|
||||
params.uid !== 0 &&
|
||||
params.offset !== undefined
|
||||
),
|
||||
placeholderData: (): FetchUserPlaylistsResponse =>
|
||||
window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
api: 'user/playlist',
|
||||
query: {
|
||||
uid: params.uid,
|
||||
},
|
||||
}),
|
||||
// placeholderData: (): FetchUserPlaylistsResponse =>
|
||||
// window.ipcRenderer.sendSync('getApiCacheSync', {
|
||||
// api: 'user/playlist',
|
||||
// query: {
|
||||
// uid: params.uid,
|
||||
// },
|
||||
// }),
|
||||
}
|
||||
)
|
||||
}
|
@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.tsx"></script>
|
||||
<script type="module" src="/main.tsx"></script>
|
||||
</body>
|
||||
|
||||
</html>
|