更新依赖

pull/1295/head
lyswhut 2023-04-09 15:35:00 +08:00
parent 6d949d7e4d
commit bdd5b46708
18 changed files with 833 additions and 492 deletions

1211
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -205,37 +205,37 @@
}, },
"homepage": "https://github.com/lyswhut/lx-music-desktop#readme", "homepage": "https://github.com/lyswhut/lx-music-desktop#readme",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.21.3", "@babel/core": "^7.21.4",
"@babel/eslint-parser": "^7.21.3", "@babel/eslint-parser": "^7.21.3",
"@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-modules-umd": "^7.18.6",
"@babel/plugin-transform-runtime": "^7.21.0", "@babel/plugin-transform-runtime": "^7.21.4",
"@babel/preset-env": "^7.20.2", "@babel/preset-env": "^7.21.4",
"@babel/preset-typescript": "^7.21.0", "@babel/preset-typescript": "^7.21.4",
"@types/better-sqlite3": "^7.6.3", "@types/better-sqlite3": "^7.6.4",
"@types/needle": "^3.2.0", "@types/needle": "^3.2.0",
"@types/tunnel": "^0.0.3", "@types/tunnel": "^0.0.3",
"@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/eslint-plugin": "^5.57.1",
"@typescript-eslint/parser": "^5.57.0", "@typescript-eslint/parser": "^5.57.1",
"@volar/vue-language-plugin-pug": "^1.2.0", "@volar/vue-language-plugin-pug": "^1.2.0",
"babel-loader": "^9.1.2", "babel-loader": "^9.1.2",
"browserslist": "^4.21.5", "browserslist": "^4.21.5",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"changelog-parser": "^3.0.1", "changelog-parser": "^3.0.1",
"copy-webpack-plugin": "^11.0.0", "copy-webpack-plugin": "^11.0.0",
"core-js": "^3.29.1", "core-js": "^3.30.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"css-loader": "^6.7.3", "css-loader": "^6.7.3",
"css-minimizer-webpack-plugin": "^5.0.0", "css-minimizer-webpack-plugin": "^5.0.0",
"del": "^6.1.1", "del": "^6.1.1",
"electron": "^22.3.5", "electron": "^22.3.5",
"electron-builder": "^24.1.2", "electron-builder": "^24.2.0",
"electron-debug": "^3.2.0", "electron-debug": "^3.2.0",
"electron-devtools-installer": "^3.2.0", "electron-devtools-installer": "^3.2.0",
"electron-to-chromium": "^1.4.345", "electron-to-chromium": "^1.4.356",
"electron-updater": "^6.0.2", "electron-updater": "^6.0.3",
"eslint": "^8.37.0", "eslint": "^8.38.0",
"eslint-config-standard": "^17.0.0", "eslint-config-standard": "^17.0.0",
"eslint-config-standard-with-typescript": "^34.0.1", "eslint-config-standard-with-typescript": "^34.0.1",
"eslint-formatter-friendly": "github:lyswhut/eslint-friendly-formatter#2170d1320e2fad13615a9dcf229669f0bb473a53", "eslint-formatter-friendly": "github:lyswhut/eslint-friendly-formatter#2170d1320e2fad13615a9dcf229669f0bb473a53",
@ -251,7 +251,7 @@
"mini-css-extract-plugin": "^2.7.5", "mini-css-extract-plugin": "^2.7.5",
"node-loader": "^2.0.0", "node-loader": "^2.0.0",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-loader": "^7.1.0", "postcss-loader": "^7.2.4",
"postcss-pxtorem": "^6.0.0", "postcss-pxtorem": "^6.0.0",
"pug": "^3.0.2", "pug": "^3.0.2",
"pug-plain-loader": "^1.1.0", "pug-plain-loader": "^1.1.0",
@ -263,19 +263,19 @@
"terser": "^5.16.8", "terser": "^5.16.8",
"terser-webpack-plugin": "^5.3.7", "terser-webpack-plugin": "^5.3.7",
"ts-loader": "^9.4.2", "ts-loader": "^9.4.2",
"typescript": "^5.0.2", "typescript": "^5.0.4",
"vue-eslint-parser": "^9.1.1", "vue-eslint-parser": "^9.1.1",
"vue-loader": "^17.0.1", "vue-loader": "^17.0.1",
"vue-template-compiler": "^2.7.14", "vue-template-compiler": "^2.7.14",
"webpack": "^5.77.0", "webpack": "^5.78.0",
"webpack-cli": "^5.0.1", "webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.13.1", "webpack-dev-server": "^4.13.2",
"webpack-hot-middleware": "github:lyswhut/webpack-hot-middleware#329c4375134b89d39da23a56a94db651247c74a1", "webpack-hot-middleware": "github:lyswhut/webpack-hot-middleware#329c4375134b89d39da23a56a94db651247c74a1",
"webpack-merge": "^5.8.0" "webpack-merge": "^5.8.0"
}, },
"dependencies": { "dependencies": {
"@simonwep/pickr": "^1.8.2", "@simonwep/pickr": "^1.8.2",
"better-sqlite3": "^8.2.0", "better-sqlite3": "^8.3.0",
"bufferutil": "^4.0.7", "bufferutil": "^4.0.7",
"comlink": "~4.3.1", "comlink": "~4.3.1",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",

View File

@ -29,7 +29,7 @@ export default (db: Database.Database) => {
// PRAGMA user_version = x // PRAGMA user_version = x
// console.log(db.prepare('PRAGMA user_version').get().user_version) // console.log(db.prepare('PRAGMA user_version').get().user_version)
// https://github.com/WiseLibs/better-sqlite3/issues/668#issuecomment-1145285728 // https://github.com/WiseLibs/better-sqlite3/issues/668#issuecomment-1145285728
const version = db.prepare('SELECT "field_value" FROM "main"."db_info" WHERE "field_name" = ?').get('version').field_value const version = (db.prepare<[string]>('SELECT "field_value" FROM "main"."db_info" WHERE "field_name" = ?').get('version') as { field_value: string }).field_value
switch (version) { switch (version) {
case '1': case '1':
migrateV1(db) migrateV1(db)

View File

@ -11,9 +11,9 @@ import {
/** /**
* *
*/ */
export const queryDownloadList = (): LX.DBService.DownloadMusicInfo[] => { export const queryDownloadList = () => {
const queryStatement = createQueryStatement() const queryStatement = createQueryStatement()
return queryStatement.all() return queryStatement.all() as LX.DBService.DownloadMusicInfo[]
} }
/** /**

View File

@ -6,7 +6,7 @@ import { getDB } from '../../db'
*/ */
export const createQueryStatement = () => { export const createQueryStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
SELECT "id", "isComplate", "status", "statusText", "progress_downloaded", "progress_total", "url", "quality", "ext", "fileName", "filePath", "musicInfo", "position" SELECT "id", "isComplate", "status", "statusText", "progress_downloaded", "progress_total", "url", "quality", "ext", "fileName", "filePath", "musicInfo", "position"
FROM download_list FROM download_list
ORDER BY "position" ASC ORDER BY "position" ASC
@ -30,7 +30,7 @@ export const createInsertStatement = () => {
*/ */
export const createClearStatement = () => { export const createClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
DELETE FROM "main"."download_list" DELETE FROM "main"."download_list"
`) `)
} }

View File

@ -24,8 +24,8 @@ import {
* *
* @returns * @returns
*/ */
export const queryAllUserList = (): LX.DBService.UserListInfo[] => { export const queryAllUserList = () => {
return createListQueryStatement().all() return createListQueryStatement().all() as LX.DBService.UserListInfo[]
} }
/** /**
@ -154,9 +154,9 @@ export const updateMusicInfos = (list: LX.DBService.MusicInfo[]) => {
* @param listId Id * @param listId Id
* @returns * @returns
*/ */
export const queryMusicInfoByListId = (listId: string): LX.DBService.MusicInfo[] => { export const queryMusicInfoByListId = (listId: string) => {
const musicInfoQueryStatement = createMusicInfoQueryStatement() const musicInfoQueryStatement = createMusicInfoQueryStatement()
return musicInfoQueryStatement.all({ listId }) return musicInfoQueryStatement.all({ listId }) as LX.DBService.MusicInfo[]
} }
/** /**
@ -268,9 +268,9 @@ export const removeMusicInfoByListId = (ids: string[]) => {
* @param musicInfoId id * @param musicInfoId id
* @returns * @returns
*/ */
export const queryMusicInfoByListIdAndMusicInfoId = (listId: string, musicInfoId: string): LX.DBService.MusicInfo | null => { export const queryMusicInfoByListIdAndMusicInfoId = (listId: string, musicInfoId: string) => {
const musicInfoByListAndMusicInfoIdQueryStatement = createMusicInfoByListAndMusicInfoIdQueryStatement() const musicInfoByListAndMusicInfoIdQueryStatement = createMusicInfoByListAndMusicInfoIdQueryStatement()
return musicInfoByListAndMusicInfoIdQueryStatement.get({ listId, musicInfoId }) return musicInfoByListAndMusicInfoIdQueryStatement.get({ listId, musicInfoId }) as LX.DBService.MusicInfo | null
} }
/** /**
@ -278,9 +278,9 @@ export const queryMusicInfoByListIdAndMusicInfoId = (listId: string, musicInfoId
* @param id id * @param id id
* @returns * @returns
*/ */
export const queryMusicInfoByMusicInfoId = (id: string): LX.DBService.MusicInfo[] => { export const queryMusicInfoByMusicInfoId = (id: string) => {
const musicInfoByMusicInfoIdQueryStatement = createMusicInfoByMusicInfoIdQueryStatement() const musicInfoByMusicInfoIdQueryStatement = createMusicInfoByMusicInfoIdQueryStatement()
return musicInfoByMusicInfoIdQueryStatement.all(id) return musicInfoByMusicInfoIdQueryStatement.all(id) as LX.DBService.MusicInfo[]
} }
/** /**

View File

@ -7,7 +7,7 @@ import { getDB } from '../../db'
*/ */
export const createListQueryStatement = () => { export const createListQueryStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
SELECT "id", "name", "source", "sourceListId", "position", "locationUpdateTime" SELECT "id", "name", "source", "sourceListId", "position", "locationUpdateTime"
FROM "main"."my_list" FROM "main"."my_list"
`) `)
@ -30,7 +30,7 @@ export const createListInsertStatement = () => {
*/ */
export const createListClearStatement = () => { export const createListClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare('DELETE FROM "main"."my_list"') return db.prepare<[]>('DELETE FROM "main"."my_list"')
} }
/** /**
@ -100,7 +100,7 @@ export const createMusicInfoUpdateStatement = () => {
*/ */
export const createMusicInfoClearStatement = () => { export const createMusicInfoClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare('DELETE FROM "main"."my_list_music_info"') return db.prepare<[]>('DELETE FROM "main"."my_list_music_info"')
} }
/** /**
@ -162,7 +162,7 @@ export const createMusicInfoOrderInsertStatement = () => {
*/ */
export const createMusicInfoOrderClearStatement = () => { export const createMusicInfoOrderClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare('DELETE FROM "main"."my_list_music_info_order"') return db.prepare<[]>('DELETE FROM "main"."my_list_music_info_order"')
} }
/** /**

View File

@ -20,9 +20,9 @@ import {
* @param id id * @param id id
* @returns * @returns
*/ */
export const queryLyric = (id: string): LX.DBService.Lyricnfo[] => { export const queryLyric = (id: string) => {
const lyricQueryStatement = createLyricQueryStatement() const lyricQueryStatement = createLyricQueryStatement()
return lyricQueryStatement.all(id) return lyricQueryStatement.all(id) as LX.DBService.Lyricnfo[]
} }
/** /**
@ -30,9 +30,9 @@ export const queryLyric = (id: string): LX.DBService.Lyricnfo[] => {
* @param id id * @param id id
* @returns * @returns
*/ */
export const queryRawLyric = (id: string): LX.DBService.Lyricnfo[] => { export const queryRawLyric = (id: string) => {
const rawLyricQueryStatement = createRawLyricQueryStatement() const rawLyricQueryStatement = createRawLyricQueryStatement()
return rawLyricQueryStatement.all(id) return rawLyricQueryStatement.all(id) as LX.DBService.Lyricnfo[]
} }
/** /**
@ -84,7 +84,7 @@ export const clearRawLyric = () => {
*/ */
export const countRawLyric = () => { export const countRawLyric = () => {
const countStatement = createRawLyricCountStatement() const countStatement = createRawLyricCountStatement()
return countStatement.get().count return (countStatement.get() as { count: number }).count
} }
@ -93,9 +93,9 @@ export const countRawLyric = () => {
* @param id id * @param id id
* @returns * @returns
*/ */
export const queryEditedLyric = (id: string): LX.DBService.Lyricnfo[] => { export const queryEditedLyric = (id: string) => {
const rawLyricQueryStatement = createEditedLyricQueryStatement() const rawLyricQueryStatement = createEditedLyricQueryStatement()
return rawLyricQueryStatement.all(id) return rawLyricQueryStatement.all(id) as LX.DBService.Lyricnfo[]
} }
/** /**
@ -148,5 +148,5 @@ export const clearEditedLyric = () => {
*/ */
export const countEditedLyric = () => { export const countEditedLyric = () => {
const countStatement = createEditedLyricCountStatement() const countStatement = createEditedLyricCountStatement()
return countStatement.get().count return (countStatement.get() as { count: number }).count
} }

View File

@ -46,7 +46,7 @@ export const createRawLyricInsertStatement = () => {
*/ */
export const createRawLyricClearStatement = () => { export const createRawLyricClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
DELETE FROM "main"."lyric" DELETE FROM "main"."lyric"
WHERE "source"='${RAW_LYRIC}' WHERE "source"='${RAW_LYRIC}'
`) `)
@ -83,7 +83,7 @@ export const createRawLyricUpdateStatement = () => {
*/ */
export const createRawLyricCountStatement = () => { export const createRawLyricCountStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(`SELECT COUNT(*) as count FROM "main"."lyric" WHERE "source"='${RAW_LYRIC}'`) return db.prepare<[]>(`SELECT COUNT(*) as count FROM "main"."lyric" WHERE "source"='${RAW_LYRIC}'`)
} }
@ -117,7 +117,7 @@ export const createEditedLyricInsertStatement = () => {
*/ */
export const createEditedLyricClearStatement = () => { export const createEditedLyricClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
DELETE FROM "main"."lyric" DELETE FROM "main"."lyric"
WHERE "source"='${EDITED_LYRIC}' WHERE "source"='${EDITED_LYRIC}'
`) `)
@ -153,5 +153,5 @@ export const createEditedLyricUpdateStatement = () => {
*/ */
export const createEditedLyricCountStatement = () => { export const createEditedLyricCountStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(`SELECT COUNT(*) as count FROM "main"."lyric" WHERE "source"='${EDITED_LYRIC}'`) return db.prepare<[]>(`SELECT COUNT(*) as count FROM "main"."lyric" WHERE "source"='${EDITED_LYRIC}'`)
} }

View File

@ -13,9 +13,9 @@ import {
* @param id id * @param id id
* @returns * @returns
*/ */
export const queryMusicInfo = (id: string): LX.DBService.MusicInfoOtherSource[] => { export const queryMusicInfo = (id: string) => {
const musicInfoQueryStatement = createMusicInfoQueryStatement() const musicInfoQueryStatement = createMusicInfoQueryStatement()
return musicInfoQueryStatement.all(id) return musicInfoQueryStatement.all(id) as LX.DBService.MusicInfoOtherSource[]
} }
/** /**
@ -55,5 +55,5 @@ export const clearMusicInfo = () => {
*/ */
export const countMusicInfo = () => { export const countMusicInfo = () => {
const countStatement = createCountStatement() const countStatement = createCountStatement()
return countStatement.get().count return (countStatement.get() as { count: number }).count
} }

View File

@ -33,7 +33,7 @@ export const createMusicInfoInsertStatement = () => {
*/ */
export const createMusicInfoClearStatement = () => { export const createMusicInfoClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
DELETE FROM "main"."music_info_other_source" DELETE FROM "main"."music_info_other_source"
`) `)
} }
@ -56,5 +56,5 @@ export const createMusicInfoDeleteStatement = () => {
*/ */
export const createCountStatement = () => { export const createCountStatement = () => {
const db = getDB() const db = getDB()
return db.prepare('SELECT COUNT(*) as count FROM "main"."music_info_other_source"') return db.prepare<[]>('SELECT COUNT(*) as count FROM "main"."music_info_other_source"')
} }

View File

@ -13,9 +13,9 @@ import {
* @param id id * @param id id
* @returns url * @returns url
*/ */
export const queryMusicUrl = (id: string): string | null => { export const queryMusicUrl = (id: string) => {
const queryStatement = createQueryStatement() const queryStatement = createQueryStatement()
return queryStatement.get(id)?.url return (queryStatement.get(id) as { url: string } | null)?.url ?? null
} }
/** /**
@ -71,5 +71,5 @@ export const clearMusicUrl = () => {
*/ */
export const countMusicUrl = () => { export const countMusicUrl = () => {
const countStatement = createCountStatement() const countStatement = createCountStatement()
return countStatement.get().count return (countStatement.get() as { count: number }).count
} }

View File

@ -30,7 +30,7 @@ export const createInsertStatement = () => {
*/ */
export const createClearStatement = () => { export const createClearStatement = () => {
const db = getDB() const db = getDB()
return db.prepare(` return db.prepare<[]>(`
DELETE FROM "main"."music_url" DELETE FROM "main"."music_url"
`) `)
} }
@ -65,5 +65,5 @@ export const createUpdateStatement = () => {
*/ */
export const createCountStatement = () => { export const createCountStatement = () => {
const db = getDB() const db = getDB()
return db.prepare('SELECT COUNT(*) as count FROM "main"."music_url"') return db.prepare<[]>('SELECT COUNT(*) as count FROM "main"."music_url"')
} }

View File

@ -3,7 +3,7 @@ import tables from './tables'
const rxp = /\n|\s|;|--.+/g const rxp = /\n|\s|;|--.+/g
export default (db: Database.Database) => { export default (db: Database.Database) => {
const result = db.prepare('SELECT type,name,tbl_name,sql FROM "main".sqlite_master WHERE sql NOT NULL;').all() const result = db.prepare<[]>('SELECT type,name,tbl_name,sql FROM "main".sqlite_master WHERE sql NOT NULL;').all() as Array<{ type: string, name: string, tbl_name: string, sql: string }>
const dbTableMap = new Map<string, string>() const dbTableMap = new Map<string, string>()
for (const info of result) dbTableMap.set(info.name, info.sql.replace(rxp, '')) for (const info of result) dbTableMap.set(info.name, info.sql.replace(rxp, ''))
return Array.from(tables.entries()).every(([name, sql]) => { return Array.from(tables.entries()).every(([name, sql]) => {