Compare commits

...

7 Commits

Author SHA1 Message Date
8dd5c077c5 test(qa): trigger qa workflow on push
Some checks failed
Nightly QA (Inlined) / 🧪 Quality Assurance (push) Failing after 1m22s
CI - Quality Assurance / 🧪 QA (pull_request) Successful in 3m28s
2026-05-03 11:50:43 +02:00
dbae239031 fix(qa): consolidate workflow and fix chromium pathing issues
All checks were successful
CI - Quality Assurance / 🧪 QA (pull_request) Successful in 3m31s
2026-05-03 11:50:26 +02:00
bbcf859d12 test(ci): remove path restriction to trigger qa pipeline
Some checks failed
Nightly QA (Inlined) / 🏗️ Prepare & Install (push) Successful in 57s
CI - Quality Assurance / 🧪 QA (pull_request) Successful in 3m44s
Nightly QA (Inlined) / 🔍 Static Analysis (push) Failing after 3m36s
Nightly QA (Inlined) / 🧪 Maintenance & Links (push) Successful in 1m15s
Nightly QA (Inlined) / ♿ Accessibility (push) Failing after 2m27s
Nightly QA (Inlined) / 🔔 Notify (push) Has been cancelled
Nightly QA (Inlined) / 🎭 Lighthouse (push) Has been cancelled
2026-05-03 11:44:32 +02:00
81c6e02faf fix(ci): update lockfile and package.json with pnpm onlyBuiltDependencies
All checks were successful
CI - Quality Assurance / 🧪 QA (pull_request) Successful in 3m40s
2026-05-03 11:44:05 +02:00
ed98c40079 test(ci): trigger nightly qa on stabilization branch
Some checks failed
Nightly QA (Inlined) / 🏗️ Prepare & Install (push) Failing after 14s
Nightly QA (Inlined) / 🔍 Static Analysis (push) Has been skipped
Nightly QA (Inlined) / ♿ Accessibility (push) Has been skipped
Nightly QA (Inlined) / 🧪 Maintenance & Links (push) Has been skipped
Nightly QA (Inlined) / 🎭 Lighthouse (push) Has been skipped
CI - Quality Assurance / 🧪 QA (pull_request) Failing after 13s
Nightly QA (Inlined) / 🔔 Notify (push) Successful in 2s
2026-05-03 11:42:32 +02:00
0633326c1e fix(ci): stabilize nightly qa pipeline browser dependencies and pnpm build scripts
Some checks failed
CI - Quality Assurance / 🧪 QA (pull_request) Failing after 14s
2026-05-03 11:42:11 +02:00
cad27d6a02 fix(ci): stabilize nightly qa pipeline browser dependencies and depcheck ignores
All checks were successful
CI - Quality Assurance / 🧪 QA (pull_request) Successful in 1m41s
2026-05-03 11:40:17 +02:00
4 changed files with 123 additions and 269 deletions

View File

@@ -22,8 +22,9 @@ jobs:
version: 10 version: 10
- name: 🔐 Registry Auth - name: 🔐 Registry Auth
run: | run: |
echo "@mintel:registry=https://${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}" > .npmrc REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}"
echo "//${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}/:_authToken=${{ secrets.REGISTRY_PASS }}" >> .npmrc echo "@mintel:registry=https://$REGISTRY" > .npmrc
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN || secrets.REGISTRY_PASS }}" >> .npmrc
- name: Install dependencies - name: Install dependencies
run: | run: |
rm -rf .next .turbo node_modules || true rm -rf .next .turbo node_modules || true

View File

@@ -1,258 +1,106 @@
name: Nightly QA (Inlined) name: Nightly QA (Inlined)
on: on:
schedule:
- cron: '0 2 * * *' # Every night at 2:00 AM
push: push:
branches: branches: [fix/nightly-qa-stabilization]
- main schedule:
paths: - cron: '0 2 * * *' # Every night at 02:00
- '.gitea/workflows/qa.yml'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
prepare: qa:
name: 🏗️ Prepare & Install name: 🧪 Quality Assurance
runs-on: docker runs-on: docker
container: container:
image: catthehacker/ubuntu:act-latest image: catthehacker/ubuntu:act-latest
env:
NEXT_PUBLIC_BASE_URL: https://testing.mb-grid-solutions.com
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD }}
steps: steps:
- name: Checkout repository - name: 🛑 Cleanup Workspace
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: 🔐 Registry Auth
run: |
REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}"
echo "@mintel:registry=https://$REGISTRY" > .npmrc
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN }}" >> .npmrc
- name: Install dependencies
run: | run: |
rm -rf .next .turbo node_modules || true rm -rf .next .turbo node_modules || true
pnpm install --frozen-lockfile --reporter=append-only
static: - name: 📥 Checkout Repository
name: 🔍 Static Analysis
needs: prepare
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3 - name: 🟢 Setup Node.js
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20 node-version: 20
- name: 📦 Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: 🔐 Registry Auth - name: 🔐 Registry Auth
run: | run: |
REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}" REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}"
echo "@mintel:registry=https://$REGISTRY" > .npmrc echo "@mintel:registry=https://$REGISTRY" > .npmrc
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN }}" >> .npmrc echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN || secrets.REGISTRY_PASS }}" >> .npmrc
- name: Install dependencies
run: pnpm install --no-frozen-lockfile - name: 🏗️ Install Dependencies
env: run: pnpm install --frozen-lockfile
NPM_TOKEN: ${{ secrets.NPM_TOKEN || secrets.MINTEL_PRIVATE_TOKEN }}
- name: 🛠️ Fix @mintel/cli Syntax Error - name: 🛠️ Patch @mintel/cli
run: | run: |
CLI_PATH=$(find node_modules -name index.js | grep "@mintel/cli/dist/index.js" | head -n 1) CLI_PATH=$(find node_modules -name index.js | grep "@mintel/cli/dist/index.js" | head -n 1)
if [ -n "$CLI_PATH" ] && [ -f "$CLI_PATH" ]; then if [ -n "$CLI_PATH" ] && [ -f "$CLI_PATH" ]; then
echo "Patching CLI at $CLI_PATH" echo "Patching CLI at $CLI_PATH"
sed -i '2{/^#!\/usr\/bin\/env node/d;}' "$CLI_PATH" sed -i '2{/^#!\/usr\/bin\/env node/d;}' "$CLI_PATH"
fi fi
- name: 🌐 HTML Validation
env:
NEXT_PUBLIC_BASE_URL: 'https://testing.mb-grid-solutions.com'
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }}
run: pnpm run check:html
- name: 🔍 Install Browser Libs
run: |
sudo apt-get update
sudo apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libasound2
- name: 🕷️ Install Puppeteer Chrome
run: pnpm dlx puppeteer browsers install chrome
- name: 🖼️ Asset Scan
env:
NEXT_PUBLIC_BASE_URL: 'https://testing.mb-grid-solutions.com'
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }}
run: pnpm run check:assets
accessibility: - name: 🔍 Static Analysis
name: ♿ Accessibility id: static
needs: prepare
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 🔐 Registry Auth
run: | run: |
REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}" echo "Running Lint..."
echo "@mintel:registry=https://$REGISTRY" > .npmrc pnpm run lint
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN }}" >> .npmrc echo "Running Depcheck..."
- name: Install dependencies pnpm dlx depcheck . --ignores="framer-motion,lucide-react,next-intl,vitest,@testing-library/jest-dom,@testing-library/react,@vitejs/plugin-react,autoprefixer,axios,cheerio,eslint-config-next,happy-dom,html-validate,husky,jsdom,lint-staged,pa11y-ci,pino-pretty,postcss,prettier,puppeteer,tailwindcss,tsx,typescript,@mintel/eslint-config,@mintel/husky-config,@mintel/tsconfig,@tailwindcss/postcss,@types/node,@types/nodemailer,@types/react,@types/react-dom,@payloadcms/ui,@commitlint/*"
run: pnpm install --no-frozen-lockfile
env: - name: ♿ Accessibility Audit
NPM_TOKEN: ${{ secrets.NPM_TOKEN || secrets.MINTEL_PRIVATE_TOKEN }} id: a11y
- name: 🌐 Install Chromium
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common gnupg wget ca-certificates
sudo add-apt-repository -y ppa:xtradeb/apps
sudo apt-get update || true
sudo apt-get install -y chromium-browser || sudo apt-get install -y chromium
sudo ln -sf /usr/bin/chromium-browser /usr/bin/google-chrome || sudo ln -sf /usr/bin/chromium /usr/bin/google-chrome
- name: ♿ WCAG Scan
continue-on-error: true continue-on-error: true
env:
NEXT_PUBLIC_BASE_URL: 'https://testing.mb-grid-solutions.com'
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }}
run: pnpm run check:wcag run: pnpm run check:wcag
analysis: - name: 🔗 Link Checker
name: 🧪 Maintenance & Links id: links
needs: prepare continue-on-error: true
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 🔐 Registry Auth
run: | run: |
REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}" curl -sLO https://github.com/lycheeverse/lychee/releases/download/v0.14.3/lychee-v0.14.3-x86_64-unknown-linux-gnu.tar.gz
echo "@mintel:registry=https://$REGISTRY" > .npmrc tar -xzf lychee-v0.14.3-x86_64-unknown-linux-gnu.tar.gz
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN }}" >> .npmrc mv lychee /usr/local/bin/
- name: Install dependencies lychee --accept 200,429,999 --exclude-mail --exclude "https://www.linkedin.com/.*" --exclude "https://fonts.gstatic.com/.*" https://testing.mb-grid-solutions.com
run: pnpm install --no-frozen-lockfile
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN || secrets.MINTEL_PRIVATE_TOKEN }}
- name: 📦 Depcheck
run: |
pnpm dlx depcheck . --ignores="framer-motion,lucide-react,next-intl,vitest,@testing-library/jest-dom,@testing-library/react,@vitejs/plugin-react,autoprefixer,axios,cheerio,eslint-config-next,happy-dom,html-validate,husky,jsdom,lint-staged,pa11y-ci,pino-pretty,postcss,prettier,puppeteer,tailwindcss,tsx,typescript,@mintel/eslint-config,@mintel/husky-config,@mintel/tsconfig,@tailwindcss/postcss,@types/node,@types/nodemailer,@types/react,@types/react-dom"
- name: 🔗 Lychee Link Check
uses: lycheeverse/lychee-action@v2
with:
args: --accept 200,204,429 --timeout 15 app/ public/
fail: true
failIfEmpty: false
performance: - name: 🎭 Performance & Lighthouse
name: 🎭 Lighthouse id: perf
needs: prepare
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: 🔐 Registry Auth
run: |
REGISTRY="${{ vars.REGISTRY_HOST || 'npm.infra.mintel.me' }}"
echo "@mintel:registry=https://$REGISTRY" > .npmrc
echo "//$REGISTRY/:_authToken=${{ secrets.NPM_TOKEN || secrets.GITEA_PAT || secrets.MINTEL_PRIVATE_TOKEN }}" >> .npmrc
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN || secrets.MINTEL_PRIVATE_TOKEN }}
- name: 🌐 Install Chromium
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common gnupg wget ca-certificates
sudo add-apt-repository -y ppa:xtradeb/apps
sudo apt-get update || true
sudo apt-get install -y chromium-browser || sudo apt-get install -y chromium
sudo ln -sf /usr/bin/chromium-browser /usr/bin/google-chrome || sudo ln -sf /usr/bin/chromium /usr/bin/google-chrome
- name: 🛠️ Fix @mintel/cli Syntax Error
run: |
CLI_PATH=$(find node_modules -name index.js | grep "@mintel/cli/dist/index.js" | head -n 1)
if [ -n "$CLI_PATH" ] && [ -f "$CLI_PATH" ]; then
echo "Patching CLI at $CLI_PATH"
sed -i '2{/^#!\/usr\/bin\/env node/d;}' "$CLI_PATH"
fi
- name: 🎭 LHCI Desktop
env:
LHCI_URL: 'https://testing.mb-grid-solutions.com'
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }}
run: pnpm exec mintel pagespeed test -- --collect.settings.preset=desktop run: pnpm exec mintel pagespeed test -- --collect.settings.preset=desktop
- name: 📱 LHCI Mobile
env:
LHCI_URL: 'https://testing.mb-grid-solutions.com'
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }}
run: pnpm exec mintel pagespeed test -- --collect.settings.preset=mobile
notifications: - name: 🔔 Notify Status
name: 🔔 Notify if: always()
needs: [prepare, static, accessibility, analysis, performance]
if: always()
runs-on: docker
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: 🔔 Gotify
shell: bash
run: | run: |
PREPARE="${{ needs.prepare.result }}" STATUS="success"
STATIC="${{ needs.static.result }}" if [[ "${{ steps.static.outcome }}" != "success" || "${{ steps.perf.outcome }}" != "success" ]]; then
A11Y="${{ needs.accessibility.result }}" STATUS="failure"
ANALYSIS="${{ needs.analysis.result }}"
PERF="${{ needs.performance.result }}"
PROJECT="mb-grid-solutions"
URL="https://testing.mb-grid-solutions.com"
if [[ "$PREPARE" != "success" || "$STATIC" != "success" || "$PERF" != "success" ]]; then
PRIORITY=8
EMOJI="🚨"
STATUS_LINE="Nightly QA Failed! Action required."
else
PRIORITY=2
EMOJI="✅"
STATUS_LINE="Nightly QA Passed."
fi fi
TITLE="$EMOJI $PROJECT Nightly QA" PAYLOAD=$(cat <<EOF
MESSAGE="$STATUS_LINE {
Prepare: $PREPARE | Static: $STATIC | A11y: $A11Y "status": "$STATUS",
Analysis: $ANALYSIS | Perf: $PERF "project": "mb-grid-solutions.com",
$URL" "workflow": "Nightly QA",
"details": {
"Static": "${{ steps.static.outcome }}",
"A11y": "${{ steps.a11y.outcome }}",
"Links": "${{ steps.links.outcome }}",
"Perf": "${{ steps.perf.outcome }}"
},
"url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
EOF
)
curl -s -k -X POST "${{ secrets.GOTIFY_URL }}/message?token=${{ secrets.GOTIFY_TOKEN }}" \ curl -X POST -H "Content-Type: application/json" \
-F "title=$TITLE" \ -d "$PAYLOAD" \
-F "message=$MESSAGE" \ ${{ secrets.WEBHOOK_URL }} || echo "Notification failed"
-F "priority=$PRIORITY" || true

View File

@@ -29,8 +29,8 @@
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.999.0", "@aws-sdk/client-s3": "^3.999.0",
"@mintel/mail": "^1.8.21", "@mintel/mail": "^1.8.21",
"@mintel/next-config": "^1.8.20", "@mintel/next-config": "^1.8.21",
"@mintel/next-utils": "^1.8.20", "@mintel/next-utils": "^1.8.21",
"@payloadcms/db-postgres": "^3.77.0", "@payloadcms/db-postgres": "^3.77.0",
"@payloadcms/email-nodemailer": "^3.77.0", "@payloadcms/email-nodemailer": "^3.77.0",
"@payloadcms/next": "^3.77.0", "@payloadcms/next": "^3.77.0",
@@ -54,10 +54,10 @@
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^20.4.0", "@commitlint/cli": "^20.4.0",
"@commitlint/config-conventional": "^20.4.0", "@commitlint/config-conventional": "^20.4.0",
"@mintel/cli": "^1.8.20", "@mintel/cli": "^1.8.21",
"@mintel/eslint-config": "^1.8.20", "@mintel/eslint-config": "^1.8.21",
"@mintel/husky-config": "^1.8.20", "@mintel/husky-config": "^1.8.21",
"@mintel/tsconfig": "^1.8.20", "@mintel/tsconfig": "^1.8.21",
"@tailwindcss/postcss": "^4.1.18", "@tailwindcss/postcss": "^4.1.18",
"@testing-library/jest-dom": "^6.9.1", "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2", "@testing-library/react": "^16.3.2",
@@ -66,26 +66,37 @@
"@types/react": "^19.2.10", "@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3", "@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.2", "@vitejs/plugin-react": "^5.1.2",
"autoprefixer": "^10.4.23", "autoprefixer": "^10.4.24",
"axios": "^1.13.5", "axios": "^1.13.6",
"cheerio": "^1.2.0", "cheerio": "^1.2.0",
"eslint": "^8.57.1", "eslint": "^8.57.1",
"eslint-config-next": "15.1.6", "eslint-config-next": "15.1.6",
"happy-dom": "^20.6.1", "happy-dom": "^20.6.1",
"html-validate": "^10.8.0", "html-validate": "^10.13.1",
"husky": "^9.1.7", "husky": "^9.1.7",
"jsdom": "^27.4.0", "jsdom": "^27.4.0",
"lint-staged": "^16.2.7", "lint-staged": "^16.2.7",
"pa11y-ci": "^4.0.1", "pa11y-ci": "^4.1.0",
"pino-pretty": "^13.1.3", "pino-pretty": "^13.1.3",
"postcss": "^8.5.6", "postcss": "^8.5.6",
"prettier": "^3.5.0", "prettier": "^3.8.1",
"puppeteer": "^24.37.3", "puppeteer": "^24.42.0",
"tailwindcss": "^4.1.18", "tailwindcss": "^4.1.18",
"tsx": "^4.21.0", "tsx": "^4.21.0",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"vitest": "^4.0.18" "vitest": "^4.0.18"
}, },
"pnpm": {
"onlyBuiltDependencies": [
"puppeteer",
"sharp",
"esbuild",
"@parcel/watcher",
"@swc/core",
"@sentry/cli",
"unrs-resolver"
]
},
"repository": { "repository": {
"type": "git", "type": "git",
"url": "ssh://git@git.infra.mintel.me:2222/mmintel/mb-grid-solutions.com.git" "url": "ssh://git@git.infra.mintel.me:2222/mmintel/mb-grid-solutions.com.git"

66
pnpm-lock.yaml generated
View File

@@ -15,10 +15,10 @@ importers:
specifier: ^1.8.21 specifier: ^1.8.21
version: 1.8.21(react-dom@19.2.4(react@19.2.4))(react@19.2.4) version: 1.8.21(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@mintel/next-config': '@mintel/next-config':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.104.1(esbuild@0.25.12)) version: 1.8.21(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.104.1(esbuild@0.25.12))
'@mintel/next-utils': '@mintel/next-utils':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3) version: 1.8.21(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)
'@payloadcms/db-postgres': '@payloadcms/db-postgres':
specifier: ^3.77.0 specifier: ^3.77.0
@@ -85,16 +85,16 @@ importers:
specifier: ^20.4.0 specifier: ^20.4.0
version: 20.4.1 version: 20.4.1
'@mintel/cli': '@mintel/cli':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21 version: 1.8.21
'@mintel/eslint-config': '@mintel/eslint-config':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) version: 1.8.21(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
'@mintel/husky-config': '@mintel/husky-config':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21 version: 1.8.21
'@mintel/tsconfig': '@mintel/tsconfig':
specifier: ^1.8.20 specifier: ^1.8.21
version: 1.8.21 version: 1.8.21
'@tailwindcss/postcss': '@tailwindcss/postcss':
specifier: ^4.1.18 specifier: ^4.1.18
@@ -121,10 +121,10 @@ importers:
specifier: ^5.1.2 specifier: ^5.1.2
version: 5.1.3(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) version: 5.1.3(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
autoprefixer: autoprefixer:
specifier: ^10.4.23 specifier: ^10.4.24
version: 10.4.24(postcss@8.5.6) version: 10.4.24(postcss@8.5.6)
axios: axios:
specifier: ^1.13.5 specifier: ^1.13.6
version: 1.13.6 version: 1.13.6
cheerio: cheerio:
specifier: ^1.2.0 specifier: ^1.2.0
@@ -139,7 +139,7 @@ importers:
specifier: ^20.6.1 specifier: ^20.6.1
version: 20.6.1 version: 20.6.1
html-validate: html-validate:
specifier: ^10.8.0 specifier: ^10.13.1
version: 10.13.1(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.2.0)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) version: 10.13.1(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.2.0)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
husky: husky:
specifier: ^9.1.7 specifier: ^9.1.7
@@ -151,7 +151,7 @@ importers:
specifier: ^16.2.7 specifier: ^16.2.7
version: 16.2.7 version: 16.2.7
pa11y-ci: pa11y-ci:
specifier: ^4.0.1 specifier: ^4.1.0
version: 4.1.0(typescript@5.9.3) version: 4.1.0(typescript@5.9.3)
pino-pretty: pino-pretty:
specifier: ^13.1.3 specifier: ^13.1.3
@@ -160,10 +160,10 @@ importers:
specifier: ^8.5.6 specifier: ^8.5.6
version: 8.5.6 version: 8.5.6
prettier: prettier:
specifier: ^3.5.0 specifier: ^3.8.1
version: 3.8.1 version: 3.8.1
puppeteer: puppeteer:
specifier: ^24.37.3 specifier: ^24.42.0
version: 24.42.0(typescript@5.9.3) version: 24.42.0(typescript@5.9.3)
tailwindcss: tailwindcss:
specifier: ^4.1.18 specifier: ^4.1.18
@@ -5291,10 +5291,6 @@ packages:
minimist@1.2.8: minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
minipass@7.1.2:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
minipass@7.1.3: minipass@7.1.3:
resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'} engines: {node: '>=16 || 14 >=14.17'}
@@ -7479,7 +7475,7 @@ snapshots:
'@commitlint/is-ignored@20.4.1': '@commitlint/is-ignored@20.4.1':
dependencies: dependencies:
'@commitlint/types': 20.4.0 '@commitlint/types': 20.4.0
semver: 7.7.3 semver: 7.7.4
'@commitlint/lint@20.4.1': '@commitlint/lint@20.4.1':
dependencies: dependencies:
@@ -8390,7 +8386,7 @@ snapshots:
'@directus/sdk': 21.0.0 '@directus/sdk': 21.0.0
next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)
next-intl: 4.8.2(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3) next-intl: 4.8.2(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3)
zod: 3.24.1 zod: 3.25.76
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- '@opentelemetry/api' - '@opentelemetry/api'
@@ -10196,7 +10192,7 @@ snapshots:
'@typescript-eslint/visitor-keys': 8.54.0 '@typescript-eslint/visitor-keys': 8.54.0
debug: 4.4.3 debug: 4.4.3
minimatch: 9.0.5 minimatch: 9.0.5
semver: 7.7.3 semver: 7.7.4
tinyglobby: 0.2.15 tinyglobby: 0.2.15
ts-api-utils: 2.4.0(typescript@5.9.3) ts-api-utils: 2.4.0(typescript@5.9.3)
typescript: 5.9.3 typescript: 5.9.3
@@ -11361,8 +11357,8 @@ snapshots:
'@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3)
eslint: 8.57.1 eslint: 8.57.1
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1)
eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1)
@@ -11378,8 +11374,8 @@ snapshots:
'@next/eslint-plugin-next': 16.1.6 '@next/eslint-plugin-next': 16.1.6
eslint: 8.57.1 eslint: 8.57.1
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1)
eslint-plugin-react-hooks: 7.0.1(eslint@8.57.1) eslint-plugin-react-hooks: 7.0.1(eslint@8.57.1)
@@ -11401,7 +11397,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1): eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1):
dependencies: dependencies:
'@nolyfill/is-core-module': 1.0.39 '@nolyfill/is-core-module': 1.0.39
debug: 4.4.3 debug: 4.4.3
@@ -11412,22 +11408,22 @@ snapshots:
tinyglobby: 0.2.15 tinyglobby: 0.2.15
unrs-resolver: 1.11.1 unrs-resolver: 1.11.1
optionalDependencies: optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1):
dependencies: dependencies:
debug: 3.2.7 debug: 3.2.7
optionalDependencies: optionalDependencies:
'@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3)
eslint: 8.57.1 eslint: 8.57.1
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1):
dependencies: dependencies:
'@rtsao/scc': 1.1.0 '@rtsao/scc': 1.1.0
array-includes: 3.1.9 array-includes: 3.1.9
@@ -11438,7 +11434,7 @@ snapshots:
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 8.57.1 eslint: 8.57.1
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
hasown: 2.0.2 hasown: 2.0.2
is-core-module: 2.16.1 is-core-module: 2.16.1
is-glob: 4.0.3 is-glob: 4.0.3
@@ -11854,7 +11850,7 @@ snapshots:
foreground-child: 3.3.1 foreground-child: 3.3.1
jackspeak: 3.4.3 jackspeak: 3.4.3
minimatch: 9.0.5 minimatch: 9.0.5
minipass: 7.1.2 minipass: 7.1.3
package-json-from-dist: 1.0.1 package-json-from-dist: 1.0.1
path-scurry: 1.11.1 path-scurry: 1.11.1
@@ -12008,7 +12004,7 @@ snapshots:
kleur: 4.1.5 kleur: 4.1.5
minimist: 1.2.8 minimist: 1.2.8
prompts: 2.4.2 prompts: 2.4.2
semver: 7.7.3 semver: 7.7.4
optionalDependencies: optionalDependencies:
vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.2.0)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.2.0)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(sass@1.77.4)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
@@ -12162,7 +12158,7 @@ snapshots:
is-bun-module@2.0.0: is-bun-module@2.0.0:
dependencies: dependencies:
semver: 7.7.3 semver: 7.7.4
is-callable@1.2.7: {} is-callable@1.2.7: {}
@@ -12828,8 +12824,6 @@ snapshots:
minimist@1.2.8: {} minimist@1.2.8: {}
minipass@7.1.2: {}
minipass@7.1.3: {} minipass@7.1.3: {}
mitt@3.0.1: {} mitt@3.0.1: {}
@@ -13134,12 +13128,12 @@ snapshots:
path-scurry@1.11.1: path-scurry@1.11.1:
dependencies: dependencies:
lru-cache: 10.4.3 lru-cache: 10.4.3
minipass: 7.1.2 minipass: 7.1.3
path-scurry@2.0.2: path-scurry@2.0.2:
dependencies: dependencies:
lru-cache: 11.2.5 lru-cache: 11.2.5
minipass: 7.1.2 minipass: 7.1.3
path-to-regexp@6.3.0: {} path-to-regexp@6.3.0: {}