📦 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

@@ -61,7 +61,7 @@
"electron-updater": "^6.6.2",
"fast-xml-parser": "^5.2.5",
"form-data": "^4.0.4",
"fs-extra": "^11.3.0",
"fs-extra": "^11.3.1",
"got": "^14.4.7",
"highlight.js": "^11.11.1",
"hpagent": "^1.2.0",
@@ -69,7 +69,7 @@
"lodash-es": "^4.17.21",
"lucide-vue-next": "^0.539.0",
"marked": "^16.1.1",
"mime-types": "^2.1.35",
"mime-types": "^3.0.1",
"mitt": "^3.0.1",
"multer": "^2.0.2",
"node-ssh-no-cpu-features": "^2.0.0",
@@ -95,14 +95,14 @@
"write-file-atomic": "^6.0.0"
},
"devDependencies": {
"@electron/notarize": "^3.0.1",
"@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": "^2.1.4",
"@types/mime-types": "^3.0.1",
"@types/multer": "^2.0.0",
"@types/node": "^24.1.0",
"@types/semver": "^7.5.6",

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