From bfbfef17b25de3df37df7e18d54b4e4094598b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E8=90=8C=E5=93=92=E8=B5=AB=E8=90=9D?= Date: Sun, 27 Aug 2023 07:48:08 -0700 Subject: [PATCH 01/10] :arrow_up: Upgrade: upgrade deps --- package.json | 65 +- scripts/check-dep.js | 38 + src/renderer/App.vue | 2 + src/renderer/components/ConfigForm.vue | 41 +- src/renderer/hooks/useATagClick.ts | 19 + src/renderer/manage/pages/bucketPage.vue | 2 +- src/renderer/utils/common.ts | 6 + src/universal/types/extra-vue.d.ts | 2 +- src/universal/types/types.d.ts | 2 + yarn.lock | 2840 ++++++++++++++++++---- 10 files changed, 2531 insertions(+), 486 deletions(-) create mode 100644 scripts/check-dep.js create mode 100644 src/renderer/hooks/useATagClick.ts diff --git a/package.json b/package.json index 80c23d1..1803e78 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,8 @@ "upload-dist": "node ./scripts/upload-dist-to-r2.js", "upload-beta": "node ./scripts/upload-beta.js", "link": "node ./scripts/link.js", - "sha256": "node ./scripts/gen-sha256.js" + "sha256": "node ./scripts/gen-sha256.js", + "ncu": "node ./scripts/check-dep.js" }, "dependencies": { "@aws-sdk/client-s3": "^3.388.0", @@ -41,91 +42,91 @@ "@octokit/rest": "^19.0.7", "@picgo/i18n": "^1.0.0", "@picgo/store": "^2.0.4", - "@smithy/node-http-handler": "^2.0.2", - "@types/marked": "^4.0.8", + "@smithy/node-http-handler": "^2.0.5", "@types/mime-types": "^2.1.1", "@videojs-player/vue": "^1.0.0", "ali-oss": "^6.18.0", - "axios": "^1.4.0", + "axios": "^1.5.0", "compare-versions": "^4.1.3", - "core-js": "^3.27.1", + "core-js": "^3.32.1", "cos-nodejs-sdk-v5": "^2.12.4", "dexie": "^3.2.4", "electron-updater": "^6.1.1", "element-plus": "^2.3.9", "epipebomb": "^1.0.0", - "fast-xml-parser": "^4.2.5", + "fast-xml-parser": "^4.2.7", "form-data": "^4.0.0", "fs-extra": "^11.1.1", "got": "^12.6.0", - "highlight.js": "^11.7.0", + "highlight.js": "^11.8.0", "hpagent": "^1.2.0", "keycode": "^2.2.0", "lodash-id": "^0.14.0", "lowdb": "^1.0.0", - "marked": "^4.3.0", + "marked": "^7.0.5", "mime-types": "^2.1.35", - "mitt": "^3.0.0", + "mitt": "^3.0.1", "node-ssh-no-cpu-features": "^1.0.1", "nodejs-file-downloader": "^4.12.1", - "piclist": "^0.8.12", - "pinia": "^2.1.4", - "pinia-plugin-persistedstate": "^3.1.0", + "piclist": "^0.8.14", + "pinia": "^2.1.6", + "pinia-plugin-persistedstate": "^3.2.0", "qiniu": "^7.9.0", - "qrcode.vue": "^3.4.0", + "qrcode.vue": "^3.4.1", "querystring": "^0.2.1", "shell-path": "2.1.0", "upyun": "^3.4.6", "uuid": "^9.0.0", - "video.js": "^8.3.0", + "video.js": "^8.5.2", "vue": "^3.3.4", "vue-router": "^4.2.4", - "vue3-lazyload": "^0.3.6", + "vue3-lazyload": "^0.3.8", "vue3-photo-preview": "^0.3.0", "webdav": "^5.2.3", "write-file-atomic": "^4.0.1" }, "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@electron/notarize": "^2.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@electron/notarize": "^2.1.0", "@picgo/bump-version": "^1.1.2", "@types/ali-oss": "^6.16.8", "@types/electron-devtools-installer": "^2.2.2", "@types/fs-extra": "^11.0.1", "@types/inquirer": "^6.5.0", "@types/js-yaml": "^4.0.5", - "@types/lowdb": "^1.0.9", + "@types/lowdb": "^1.0.11", "@types/node": "^16.10.2", - "@types/request-promise-native": "^1.0.17", + "@types/request-promise-native": "^1.0.18", "@types/semver": "^7.5.0", "@types/tunnel": "^0.0.3", - "@types/uuid": "^9.0.0", + "@types/uuid": "^9.0.2", "@types/write-file-atomic": "^4.0.0", - "@typescript-eslint/eslint-plugin": "^5.48.0", - "@typescript-eslint/parser": "^5.48.0", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", "@vue/cli-plugin-babel": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-router": "^5.0.8", "@vue/cli-plugin-typescript": "^5.0.8", "@vue/cli-service": "^5.0.8", "@vue/eslint-config-standard": "^8.0.1", - "@vue/eslint-config-typescript": "^11.0.2", - "@vue/runtime-dom": "^3.2.45", - "conventional-changelog": "^3.1.18", - "cz-customizable": "^6.2.0", + "@vue/eslint-config-typescript": "^11.0.3", + "@vue/runtime-dom": "^3.3.4", + "conventional-changelog": "^5.0.0", + "cz-customizable": "^7.0.0", "dotenv": "^16.3.1", "electron": "^22.0.2", "electron-devtools-installer": "^3.2.0", - "eslint": "^8.34.0", + "eslint": "^8.48.0", "eslint-config-standard": ">=16.0.0", - "eslint-plugin-import": "^2.24.2", + "eslint-plugin-import": "^2.28.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^5.1.0", - "eslint-plugin-vue": "^9.9.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-vue": "^9.17.0", "husky": "^3.1.0", "node-loader": "^2.0.0", - "stylus": "^0.54.7", - "stylus-loader": "^3.0.2", + "npm-check-updates": "^16.13.1", + "stylus": "^0.59.0", + "stylus-loader": "^7.1.3", "typescript": "^4.9.5", "vue-cli-plugin-electron-builder": "^3.0.0-alpha.4" }, diff --git a/scripts/check-dep.js b/scripts/check-dep.js new file mode 100644 index 0000000..a855d20 --- /dev/null +++ b/scripts/check-dep.js @@ -0,0 +1,38 @@ +const ncu = require('npm-check-updates') +const axios = require('axios') + +async function getRepositoryInfo (packageName) { + try { + const { data } = await axios.get(`https://registry.npmjs.org/${packageName}`) + const repository = data.repository + if (repository && repository.url) { + const gitUrl = repository.url.replace('git+', '').replace('.git', '') + const isGitHub = gitUrl.includes('github.com') + + return isGitHub ? `${gitUrl}/releases` : gitUrl + } + } catch (error) { + console.error(`Error fetching repository info for ${packageName}: ${error.message}`) + } + return null +} + +async function checkUpdates () { + const updated = await ncu.run({ + packageFile: './package.json', + upgrade: false + }) + + if (!Object.keys(updated).length) { + console.log('All dependencies are up-to-date!') + return + } + + console.log('Dependencies that need to be updated:') + for (const [key] of Object.entries(updated)) { + const repoUrl = await getRepositoryInfo(key) + console.log(`${key}: ${updated[key]} ${repoUrl ? `- [GitHub/Repo](${repoUrl})` : ''}`) + } +} + +checkUpdates().catch(err => console.error(err)) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index d9336f5..6ea7ee1 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -20,7 +20,9 @@ import type { IConfig } from 'piclist' // 其他工具 import bus from './utils/bus' import { FORCE_UPDATE } from '~/universal/events/constants' +import { useATagClick } from './hooks/useATagClick' +useATagClick() const store = useStore() onBeforeMount(async () => { const config = await getConfig() diff --git a/src/renderer/components/ConfigForm.vue b/src/renderer/components/ConfigForm.vue index 7a24949..6fccb74 100644 --- a/src/renderer/components/ConfigForm.vue +++ b/src/renderer/components/ConfigForm.vue @@ -25,10 +25,31 @@ + @@ -79,6 +100,8 @@ import { getConfig } from '@/utils/dataSender' import { useRoute } from 'vue-router' import type { FormInstance } from 'element-plus' import { T as $T } from '@/i18n' +import { QuestionFilled } from '@element-plus/icons-vue' +import { marked } from 'marked' interface IProps { config: any[] @@ -118,6 +141,14 @@ async function validate (): Promise { }) } +function transformMarkdownToHTML (markdown: string) { + try { + return marked.parse(markdown) + } catch (e) { + return markdown + } +} + function getConfigType () { switch (props.type) { case 'plugin': { @@ -182,6 +213,10 @@ defineExpose({ })