diff --git a/.github/workflows/linux_build.yml b/.github/workflows/linux_build.yml deleted file mode 100644 index ea8adf4c..00000000 --- a/.github/workflows/linux_build.yml +++ /dev/null @@ -1,72 +0,0 @@ -# main.yml - -# Workflow's name -name: Linux Build - -# Workflow's trigger -on: - workflow_dispatch: - -env: - ELECTRON_OUTPUT_PATH: ./dist_electron - CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }} - -# Workflow's jobs -jobs: - # job's id - release: - # job's name - name: build and release electron app - - # the type of machine to run the job on - runs-on: ${{ matrix.os }} - - # create a build matrix for jobs - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - - # create steps - steps: - # step1: check out repository - - name: Check out git repository - uses: actions/checkout@v2 - - # step3: install node env - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: '18.17.0' - - - name: Install system deps - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils - - - name: Yarn install linux - if: matrix.os == 'ubuntu-latest' - run: | - yarn - yarn global add xvfb-maybe - - - name: Build & release app - run: | - yarn release - yarn upload-dist - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }} - R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} - R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} - ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }} - XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }} - XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }} - XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }} - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} diff --git a/.github/workflows/mac_beta.yml b/.github/workflows/mac_beta.yml deleted file mode 100644 index 0bb0f7db..00000000 --- a/.github/workflows/mac_beta.yml +++ /dev/null @@ -1,86 +0,0 @@ -# main.yml - -# Workflow's name -name: Mac Beta Build - -# Workflow's trigger -on: - workflow_dispatch: - -env: - ELECTRON_OUTPUT_PATH: ./dist_electron - CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }} - -jobs: - release: - name: build and release electron app - - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - os: [macos-13] - - steps: - - name: Check out git repository - uses: actions/checkout@v2 - - # step2: sign - - name: Install the Apple certificates - if: matrix.os == 'macos-13' - run: | - CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH - - # step3: install node env - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: '18.17.0' - - - name: Install system deps - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils - - # step3: yarn - - name: Yarn install macos - if: matrix.os == 'macos-13' - run: | - yarn - yarn global add xvfb-maybe - npm rebuild --platform=darwin --arch=arm64 sharp - - - name: Yarn install windows - if: matrix.os == 'windows-latest' - run: | - yarn - yarn global add xvfb-maybe - - - name: Yarn install linux - if: matrix.os == 'ubuntu-latest' - run: | - yarn - yarn global add xvfb-maybe - - - name: Build & release app - run: | - yarn run build - yarn upload-beta - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }} - R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} - R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} - ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }} - XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }} - XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }} - XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }} - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} diff --git a/.github/workflows/mac_build.yml b/.github/workflows/mac_build.yml deleted file mode 100644 index f5da1866..00000000 --- a/.github/workflows/mac_build.yml +++ /dev/null @@ -1,75 +0,0 @@ -# main.yml - -# Workflow's name -name: Mac Build - -# Workflow's trigger -on: - workflow_dispatch: - -env: - ELECTRON_OUTPUT_PATH: ./dist_electron - CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }} - -# Workflow's jobs -jobs: - # job's id - release: - # job's name - name: build and release electron app - - # the type of machine to run the job on - runs-on: ${{ matrix.os }} - - # create a build matrix for jobs - strategy: - fail-fast: false - matrix: - os: [macos-13] - - # create steps - steps: - # step1: check out repository - - name: Check out git repository - uses: actions/checkout@v2 - - # step2: sign - - name: Install the Apple certificates - if: matrix.os == 'macos-13' - run: | - CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 - echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH - - # step3: install node env - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: '18.17.0' - - # step3: yarn - - name: Yarn install macos - if: matrix.os == 'macos-13' - run: | - yarn - yarn global add xvfb-maybe - npm rebuild --platform=darwin --arch=arm64 sharp - - - name: Build & release app - run: | - yarn build - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }} - R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} - R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} - ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }} - XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }} - XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }} - XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }} - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index df3049b4..28b4ff62 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,9 +44,9 @@ jobs: # step3: install node env - name: Install Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: - node-version: '16.x' + node-version: '22.x' - name: Install system deps if: matrix.os == 'ubuntu-latest' @@ -57,6 +57,7 @@ jobs: - name: Yarn install macos if: matrix.os == 'macos-13' run: | + yarn config set ignore-engines true yarn yarn global add xvfb-maybe npm rebuild --platform=darwin --arch=arm64 sharp @@ -64,12 +65,14 @@ jobs: - name: Yarn install windows if: matrix.os == 'windows-latest' run: | + yarn config set ignore-engines true yarn yarn global add xvfb-maybe - name: Yarn install linux if: matrix.os == 'ubuntu-latest' run: | + yarn config set ignore-engines true yarn yarn global add xvfb-maybe diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml new file mode 100644 index 00000000..e66d1933 --- /dev/null +++ b/.github/workflows/test-build.yml @@ -0,0 +1,117 @@ +# test-build.yml + +# Workflow's name +name: Test Build + +# Workflow's trigger +on: + workflow_dispatch: + +env: + ELECTRON_OUTPUT_PATH: ./dist_electron + +jobs: + test-build: + name: Test Build for ${{ matrix.os }} + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-13, windows-latest] + + steps: + - name: Set up git config + run: | + git config --global core.autocrlf false + + - name: Check out git repository + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.x' + + - name: Install system deps + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils + + - name: Install dependencies (macOS) + if: matrix.os == 'macos-13' + run: | + yarn config set ignore-engines true + yarn install + npm rebuild --platform=darwin --arch=arm64 sharp + + - name: Install dependencies (Windows) + if: matrix.os == 'windows-latest' + run: | + yarn config set ignore-engines true + yarn install + + - name: Install dependencies (Linux) + if: matrix.os == 'ubuntu-latest' + run: | + yarn config set ignore-engines true + yarn install + + - name: Build application (Windows) + if: matrix.os == 'windows-latest' + run: yarn build:win + env: + ELECTRON_SKIP_NOTARIZATION: true + + - name: Build application (macOS) + if: matrix.os == 'macos-13' + run: yarn build:mac + env: + ELECTRON_SKIP_NOTARIZATION: true + + - name: Build application (Linux) + if: matrix.os == 'ubuntu-latest' + run: yarn build:linux + env: + ELECTRON_SKIP_NOTARIZATION: true + + - name: Upload Windows artifacts + if: matrix.os == 'windows-latest' + uses: actions/upload-artifact@v4 + with: + name: piclist-windows-${{ github.sha }} + path: | + dist_electron/*.exe + dist_electron/*.msi + dist_electron/*.zip + retention-days: 30 + + - name: Upload macOS artifacts + if: matrix.os == 'macos-13' + uses: actions/upload-artifact@v4 + with: + name: piclist-macos-${{ github.sha }} + path: | + dist_electron/*.dmg + dist_electron/*.zip + dist_electron/*.pkg + retention-days: 30 + + - name: Upload Linux artifacts + if: matrix.os == 'ubuntu-latest' + uses: actions/upload-artifact@v4 + with: + name: piclist-linux-${{ github.sha }} + path: | + dist_electron/*.AppImage + dist_electron/*.deb + dist_electron/*.rpm + dist_electron/*.tar.gz + retention-days: 30 + + - name: List build output (Debug) + run: | + echo "Contents of dist_electron directory:" + ls -la dist_electron/ || echo "dist_electron directory not found" diff --git a/.github/workflows/win_beta.yml b/.github/workflows/win_beta.yml deleted file mode 100644 index 42c59456..00000000 --- a/.github/workflows/win_beta.yml +++ /dev/null @@ -1,69 +0,0 @@ -# main.yml - -# Workflow's name -name: Win Beta Build - -# Workflow's trigger -on: - workflow_dispatch: - -env: - ELECTRON_OUTPUT_PATH: ./dist_electron - CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }} - -# Workflow's jobs -jobs: - # job's id - release: - # job's name - name: build and release electron app - - # the type of machine to run the job on - runs-on: ${{ matrix.os }} - - # create a build matrix for jobs - strategy: - fail-fast: false - matrix: - os: [windows-11-arm] - - # create steps - steps: - # step1: check out repository - - name: Check out git repository - uses: actions/checkout@v2 - - # step3: install node env - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: '18.17.0' - architecture: 'x64' - - - name: Yarn install windows - if: matrix.os == 'windows-11-arm' - run: | - yarn - yarn run lint:fix - yarn global add xvfb-maybe - - - name: Build & release app - run: | - yarn release - yarn upload-beta - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }} - R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} - R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} - ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }} - XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }} - XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }} - XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }} - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} diff --git a/.github/workflows/win_build.yml b/.github/workflows/win_build.yml deleted file mode 100644 index 4a796400..00000000 --- a/.github/workflows/win_build.yml +++ /dev/null @@ -1,67 +0,0 @@ -# main.yml - -# Workflow's name -name: Win Build - -# Workflow's trigger -on: - workflow_dispatch: - -env: - ELECTRON_OUTPUT_PATH: ./dist_electron - CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }} - -# Workflow's jobs -jobs: - # job's id - release: - # job's name - name: build and release electron app - - # the type of machine to run the job on - runs-on: ${{ matrix.os }} - - # create a build matrix for jobs - strategy: - fail-fast: false - matrix: - os: [windows-latest] - - # create steps - steps: - # step1: check out repository - - name: Check out git repository - uses: actions/checkout@v2 - - # step3: install node env - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version: '18.17.0' - - - name: Yarn install windows - if: matrix.os == 'windows-latest' - run: | - yarn - yarn global add xvfb-maybe - - - name: Build & release app - run: | - yarn release - yarn upload-dist - env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - R2_SECRET_ID: ${{ secrets.R2_SECRET_ID }} - R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} - R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} - ELECTRON_SKIP_NOTARIZATION: ${{ secrets.ELECTRON_SKIP_NOTARIZATION }} - XCODE_APP_LOADER_EMAIL: ${{ secrets.XCODE_APP_LOADER_EMAIL }} - XCODE_APP_LOADER_PASSWORD: ${{ secrets.XCODE_APP_LOADER_PASSWORD }} - XCODE_TEAM_ID: ${{ secrets.XCODE_TEAM_ID }} - BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} - KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} diff --git a/electron-builder.json b/electron-builder.json index 8cfbb6ab..8a2c9eac 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -3,15 +3,10 @@ "appId": "com.kuingsmile.piclist", "afterSign": "scripts/notarize.cjs", "directories": { - "output": "release/${version}", + "output": "dist_electron", "buildResources": "build" }, - "files": [ - "out/**/*", - "dist/**/*", - "resources/**/*", - "package.json" - ], + "files": ["out/**/*", "dist/**/*", "resources/**/*", "package.json"], "extraResources": [ { "from": "resources", @@ -59,11 +54,7 @@ "target": [ { "target": "default", - "arch": [ - "universal", - "x64", - "arm64" - ] + "arch": ["universal", "x64", "arm64"] } ], "artifactName": "PicList-${version}-${arch}.${ext}" @@ -75,10 +66,7 @@ "target": [ { "target": "nsis", - "arch": [ - "x64", - "ia32" - ] + "arch": ["x64", "ia32"] } ] }, @@ -90,10 +78,7 @@ }, "linux": { "icon": "resources/", - "asarUnpack": [ - "**/node_modules/sharp/**", - "**/node_modules/ssh2-no-cpu-features/**" - ] + "asarUnpack": ["**/node_modules/sharp/**", "**/node_modules/ssh2-no-cpu-features/**"] }, "snap": { "publish": ["github"] diff --git a/package.json b/package.json index 39e77288..1e4f5a14 100644 --- a/package.json +++ b/package.json @@ -1,152 +1,152 @@ -{ - "name": "piclist", - "version": "2.9.9", - "author": { - "name": "Kuingsmile", - "email": "pkukuing@gmail.com" - }, - "description": "A powerful cloud storage manage tool.", - "homepage": "https://piclist.cn", - "bugs": { - "url": "https://github.com/Kuingsmile/PicList/issues", - "email": "pkukuing@gmail.com" - }, - "license": "MIT", - "type": "module", - "main": "./out/main/index.js", - "private": true, - "scripts": { - "build": "electron-vite build && electron-builder", - "build:win": "electron-vite build && electron-builder --win", - "build:mac": "electron-vite build && electron-builder --mac", - "build:linux": "electron-vite build && electron-builder --linux", - "bump": "bump-version", - "cz": "git-cz", - "dev": "electron-vite dev --watch", - "i18n": "node ./scripts/gen-i18n-types.js", - "link": "node ./scripts/link.js", - "lint": "eslint --ext .js,.jsx,.ts,.tsx,.vue src/", - "lint:dpdm": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/main/index.ts", - "lint:dpdm:renderer": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/renderer/main.ts", - "lint:fix": "eslint --fix --ext .js,.jsx,.ts,.tsx,.vue src/", - "ncu": "node ./scripts/check-dep.js", - "postinstall": "electron-builder install-app-deps", - "postuninstall": "electron-builder install-app-deps", - "prebuild": "electron-vite build", - "preview": "electron-vite preview", - "release": "electron-vite build && electron-builder --publish always", - "sha256": "node ./scripts/gen-sha256.js", - "upload-beta": "node ./scripts/upload-beta.cjs", - "upload-dist": "node ./scripts/upload-dist-to-r2.cjs" - }, - "dependencies": { - "@aws-sdk/client-s3": "^3.864.0", - "@aws-sdk/lib-storage": "^3.864.0", - "@aws-sdk/s3-request-presigner": "^3.864.0", - "@electron-toolkit/preload": "^3.0.2", - "@headlessui/vue": "^1.7.23", - "@highlightjs/vue-plugin": "^2.1.2", - "@nodelib/fs.walk": "^3.0.1", - "@octokit/rest": "^22.0.0", - "@piclist/i18n": "^2.0.0", - "@piclist/store": "^3.0.0", - "@smithy/node-http-handler": "^4.1.1", - "@videojs-player/vue": "^1.0.0", - "@vueuse/core": "^13.6.0", - "ali-oss": "^6.23.0", - "axios": "^1.11.0", - "compare-versions": "^6.1.1", - "cos-nodejs-sdk-v5": "^2.15.4", - "dexie": "^3.2.4", - "electron-updater": "^6.6.2", - "fast-xml-parser": "^5.2.5", - "form-data": "^4.0.4", - "fs-extra": "^11.3.0", - "got": "^14.4.7", - "highlight.js": "^11.11.1", - "hpagent": "^1.2.0", - "js-yaml": "^4.1.0", - "lodash-es": "^4.17.21", - "lucide-vue-next": "^0.539.0", - "marked": "^16.1.1", - "mime-types": "^2.1.35", - "mitt": "^3.0.1", - "multer": "^2.0.2", - "node-ssh-no-cpu-features": "^2.0.0", - "nodejs-file-downloader": "^4.13.0", - "piclist": "file:../piclist-core", - "pinia": "^3.0.3", - "pinia-plugin-persistedstate": "^4.4.1", - "proxy-agent": "^6.5.0", - "qiniu": "7.14.0", - "qrcode.vue": "^3.6.0", - "querystring": "^0.2.1", - "semver": "^7.7.2", - "shell-path": "3.0.0", - "ssh2-no-cpu-features": "^2.0.0", - "upyun": "^3.4.6", - "uuid": "^11.1.0", - "video.js": "^8.23.4", - "vue": "^3.5.18", - "vue-i18n": "^11.1.11", - "vue-router": "^4.5.1", - "vue3-lazyload": "^0.3.8", - "webdav": "^5.8.0", - "write-file-atomic": "^6.0.0" - }, - "devDependencies": { - "@electron/notarize": "^3.0.1", - "@eslint/js": "^9.33.0", - "@intlify/unplugin-vue-i18n": "^6.0.8", - "@types/ali-oss": "^6.16.11", - "@types/fs-extra": "^11.0.4", - "@types/js-yaml": "^4.0.9", - "@types/lodash-es": "^4.17.12", - "@types/mime-types": "^2.1.4", - "@types/multer": "^2.0.0", - "@types/node": "^24.1.0", - "@types/semver": "^7.5.6", - "@types/tunnel": "^0.0.7", - "@types/upyun": "^3.4.3", - "@types/video.js": "^7.3.58", - "@types/write-file-atomic": "^4.0.3", - "@vitejs/plugin-vue": "^6.0.1", - "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-standard": "^9.0.1", - "@vue/eslint-config-typescript": "^14.6.0", - "dotenv": "^16.3.1", - "dpdm": "^3.14.0", - "electron": "^36.7.3", - "electron-builder": "^26.0.12", - "electron-devtools-installer": "^4.0.0", - "electron-vite": "^4.0.0", - "eslint": "^9.33.0", - "eslint-plugin-prettier": "^5.5.4", - "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-unicorn": "^60.0.0", - "eslint-plugin-vue": "^10.4.0", - "husky": "^9.1.7", - "node-bump-version": "^2.0.0", - "npm-check-updates": "^18.0.2", - "prettier": "^3.6.2", - "stylus": "^0.64.0", - "typescript": "^5.8.3", - "typescript-eslint": "^8.39.0", - "vite": "^7.1.0", - "vue-eslint-parser": "^10.2.0", - "vue-tsc": "^3.0.5" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-customizable" - }, - "cz-customizable": { - "config": "./node_modules/node-bump-version/.cz-config.cjs" - } - }, - "commitlint": { - "extends": [ - "./node_modules/node-bump-version/dist/commitlint-node/index.js" - ] - } -} +{ + "name": "piclist", + "version": "2.9.9", + "author": { + "name": "Kuingsmile", + "email": "pkukuing@gmail.com" + }, + "description": "A powerful cloud storage manage tool.", + "homepage": "https://piclist.cn", + "bugs": { + "url": "https://github.com/Kuingsmile/PicList/issues", + "email": "pkukuing@gmail.com" + }, + "license": "MIT", + "type": "module", + "main": "./out/main/index.js", + "private": true, + "scripts": { + "build": "electron-vite build && electron-builder", + "build:win": "electron-vite build && electron-builder --win", + "build:mac": "electron-vite build && electron-builder --mac", + "build:linux": "electron-vite build && electron-builder --linux", + "bump": "bump-version", + "cz": "git-cz", + "dev": "electron-vite dev --watch", + "i18n": "node ./scripts/gen-i18n-types.js", + "link": "node ./scripts/link.js", + "lint": "eslint --ext .js,.jsx,.ts,.tsx,.vue src/", + "lint:dpdm": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/main/index.ts", + "lint:dpdm:renderer": "dpdm -T --tsconfig ./tsconfig.json --no-tree --no-warning --exit-code circular:1 src/renderer/main.ts", + "lint:fix": "eslint --fix --ext .js,.jsx,.ts,.tsx,.vue src/", + "ncu": "node ./scripts/check-dep.js", + "postinstall": "electron-builder install-app-deps", + "postuninstall": "electron-builder install-app-deps", + "prebuild": "electron-vite build", + "preview": "electron-vite preview", + "release": "electron-vite build && electron-builder --publish always", + "sha256": "node ./scripts/gen-sha256.js", + "upload-beta": "node ./scripts/upload-beta.cjs", + "upload-dist": "node ./scripts/upload-dist-to-r2.cjs" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.864.0", + "@aws-sdk/lib-storage": "^3.864.0", + "@aws-sdk/s3-request-presigner": "^3.864.0", + "@electron-toolkit/preload": "^3.0.2", + "@headlessui/vue": "^1.7.23", + "@highlightjs/vue-plugin": "^2.1.2", + "@nodelib/fs.walk": "^3.0.1", + "@octokit/rest": "^22.0.0", + "@piclist/i18n": "^2.0.0", + "@piclist/store": "^3.0.0", + "@smithy/node-http-handler": "^4.1.1", + "@videojs-player/vue": "^1.0.0", + "@vueuse/core": "^13.6.0", + "ali-oss": "^6.23.0", + "axios": "^1.11.0", + "compare-versions": "^6.1.1", + "cos-nodejs-sdk-v5": "^2.15.4", + "dexie": "^3.2.4", + "electron-updater": "^6.6.2", + "fast-xml-parser": "^5.2.5", + "form-data": "^4.0.4", + "fs-extra": "^11.3.1", + "got": "^14.4.7", + "highlight.js": "^11.11.1", + "hpagent": "^1.2.0", + "js-yaml": "^4.1.0", + "lodash-es": "^4.17.21", + "lucide-vue-next": "^0.539.0", + "marked": "^16.1.1", + "mime-types": "^3.0.1", + "mitt": "^3.0.1", + "multer": "^2.0.2", + "node-ssh-no-cpu-features": "^2.0.0", + "nodejs-file-downloader": "^4.13.0", + "piclist": "file:../piclist-core", + "pinia": "^3.0.3", + "pinia-plugin-persistedstate": "^4.4.1", + "proxy-agent": "^6.5.0", + "qiniu": "7.14.0", + "qrcode.vue": "^3.6.0", + "querystring": "^0.2.1", + "semver": "^7.7.2", + "shell-path": "3.0.0", + "ssh2-no-cpu-features": "^2.0.0", + "upyun": "^3.4.6", + "uuid": "^11.1.0", + "video.js": "^8.23.4", + "vue": "^3.5.18", + "vue-i18n": "^11.1.11", + "vue-router": "^4.5.1", + "vue3-lazyload": "^0.3.8", + "webdav": "^5.8.0", + "write-file-atomic": "^6.0.0" + }, + "devDependencies": { + "@electron/notarize": "^3.0.2", + "@eslint/js": "^9.33.0", + "@intlify/unplugin-vue-i18n": "^6.0.8", + "@types/ali-oss": "^6.16.11", + "@types/fs-extra": "^11.0.4", + "@types/js-yaml": "^4.0.9", + "@types/lodash-es": "^4.17.12", + "@types/mime-types": "^3.0.1", + "@types/multer": "^2.0.0", + "@types/node": "^24.1.0", + "@types/semver": "^7.5.6", + "@types/tunnel": "^0.0.7", + "@types/upyun": "^3.4.3", + "@types/video.js": "^7.3.58", + "@types/write-file-atomic": "^4.0.3", + "@vitejs/plugin-vue": "^6.0.1", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-standard": "^9.0.1", + "@vue/eslint-config-typescript": "^14.6.0", + "dotenv": "^16.3.1", + "dpdm": "^3.14.0", + "electron": "^36.7.3", + "electron-builder": "^26.0.12", + "electron-devtools-installer": "^4.0.0", + "electron-vite": "^4.0.0", + "eslint": "^9.33.0", + "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-unicorn": "^60.0.0", + "eslint-plugin-vue": "^10.4.0", + "husky": "^9.1.7", + "node-bump-version": "^2.0.0", + "npm-check-updates": "^18.0.2", + "prettier": "^3.6.2", + "stylus": "^0.64.0", + "typescript": "^5.8.3", + "typescript-eslint": "^8.39.0", + "vite": "^7.1.0", + "vue-eslint-parser": "^10.2.0", + "vue-tsc": "^3.0.5" + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-customizable" + }, + "cz-customizable": { + "config": "./node_modules/node-bump-version/.cz-config.cjs" + } + }, + "commitlint": { + "extends": [ + "./node_modules/node-bump-version/dist/commitlint-node/index.js" + ] + } +} diff --git a/yarn.lock b/yarn.lock index 5e21b122..065a19cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1632,10 +1632,10 @@ fs-extra "^9.0.1" promise-retry "^2.0.1" -"@electron/notarize@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-3.0.1.tgz#ad766f1ed6c2fd4cd4520f91c116fa93949555ca" - integrity sha512-5xzcOwvMGNjkSk7s0sPx4XcKWei9FYk4f2S5NkSorWW0ce5yktTOtlPa0W5yQHcREILh+C3JdH+t+M637g9TmQ== +"@electron/notarize@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-3.0.2.tgz#e6afb791f29fd92efed56035cf2d4f2e69ca3648" + integrity sha512-3LCARsJXOxEzzbmKFu/I2oq1eroyLdLBY2/J5ysCiPQ8i58TVIpQ7UdOZmthpppy1aBEiy+YGLUkxz5UMDRfgg== dependencies: debug "^4.4.0" promise-retry "^2.0.1" @@ -3918,10 +3918,10 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.20.tgz#1ca77361d7363432d29f5e55950d9ec1e1c6ea93" integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== -"@types/mime-types@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.4.tgz#93a1933e24fed4fb9e4adc5963a63efcbb3317a2" - integrity sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w== +"@types/mime-types@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-3.0.1.tgz#7fb74656179257c27cd48aa503eb918811727115" + integrity sha512-xRMsfuQbnRq1Ef+C+RKaENOxXX87Ygl38W1vDfPHRku02TgQr+Qd8iivLtAMcR0KF5/29xlnFihkTlbqFrGOVQ== "@types/mime@^1": version "1.3.2" @@ -7368,6 +7368,15 @@ fs-extra@^11.3.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.3.1: + version "11.3.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.1.tgz#ba7a1f97a85f94c6db2e52ff69570db3671d5a74" + integrity sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -9045,7 +9054,7 @@ mime-db@^1.54.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== -mime-types@3.0.1: +mime-types@3.0.1, mime-types@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce" integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA== @@ -9059,7 +9068,7 @@ mime-types@^2.1.12, mime-types@~2.1.24: dependencies: mime-db "1.51.0" -mime-types@^2.1.15, mime-types@^2.1.24, mime-types@^2.1.27, mime-types@^2.1.35, mime-types@~2.1.19: +mime-types@^2.1.15, mime-types@^2.1.24, mime-types@^2.1.27, mime-types@~2.1.19: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==