📦 Chore(custom): add build test action file

This commit is contained in:
Kuingsmile
2025-08-10 16:48:58 +08:00
parent b40eeee165
commit ed02d00f05
10 changed files with 298 additions and 553 deletions

View File

@@ -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 }}

View File

@@ -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 }}

View File

@@ -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 }}

View File

@@ -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

117
.github/workflows/test-build.yml vendored Normal file
View File

@@ -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"

View File

@@ -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 }}

View File

@@ -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 }}

View File

@@ -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"]

View File

@@ -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"
]
}
}

View File

@@ -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==