diff --git a/.github/scripts/bundle-diff.js b/.github/scripts/bundle-diff.js new file mode 100755 index 00000000..4bdeef18 --- /dev/null +++ b/.github/scripts/bundle-diff.js @@ -0,0 +1,283 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); + +/** + * 번들 크기 변화를 분석하고 비교합니다. + * 이전 빌드와 현재 빌드를 비교하여 변화량을 측정합니다. + */ +function analyzeBundleDiff() { + const currentBuildPath = 'apps/web/.next/static'; + const manifestPath = 'apps/web/.next/build-manifest.json'; + + let analysis = { + recommendations: [], + bundleMapping: {}, + }; + + // 현재 빌드 정보 수집 + if (fs.existsSync(manifestPath)) { + try { + const manifest = JSON.parse( + fs.readFileSync(manifestPath, 'utf8'), + ); + + // 페이지별 번들 정보 분석 및 매핑 + Object.entries(manifest.pages || {}).forEach( + ([page, files]) => { + const jsFiles = files.filter((file) => + file.endsWith('.js'), + ); + + // 파일별 사이즈 및 매핑 정보 수집 + jsFiles.forEach((file) => { + const filePath = path.join(currentBuildPath, file); + if (fs.existsSync(filePath)) { + const size = fs.statSync(filePath).size; + const fileName = path.basename(file); + + // 개선된 파일 타입 분류 및 원본 경로 매핑 + let fileType = 'unknown'; + let displayName = fileName; + let originalPath = ''; + + // App Router 경로 매핑 + if (page.startsWith('/')) { + const routePath = + page === '/' ? '/page' : page + '/page'; + originalPath = `app${routePath}.tsx`; + + if (fileName.includes('layout')) { + const layoutPath = + page === '/' ? '/layout' : page + '/layout'; + originalPath = `app${layoutPath}.tsx`; + fileType = 'layout'; + displayName = `📐 Layout (${originalPath})`; + } else if (fileName.includes('page')) { + fileType = 'page'; + displayName = `📄 Page (${originalPath})`; + } else if (fileName.includes('loading')) { + originalPath = + page === '/' + ? 'app/loading.tsx' + : `app${page}/loading.tsx`; + fileType = 'loading'; + displayName = `⏳ Loading (${originalPath})`; + } else if (fileName.includes('error')) { + originalPath = + page === '/' + ? 'app/error.tsx' + : `app${page}/error.tsx`; + fileType = 'error'; + displayName = `❌ Error (${originalPath})`; + } + } + + // 시스템 파일들 + if (fileName.includes('_app')) { + fileType = 'app'; + originalPath = 'pages/_app.tsx'; + displayName = `🚀 App Shell (${originalPath})`; + } else if (fileName.includes('_error')) { + fileType = 'error'; + originalPath = 'pages/_error.tsx'; + displayName = `❌ Error Page (${originalPath})`; + } else if (fileName.includes('_document')) { + fileType = 'document'; + originalPath = 'pages/_document.tsx'; + displayName = `📄 Document (${originalPath})`; + } else if (fileName.match(/^\d+/)) { + fileType = 'chunk'; + displayName = `📦 Shared Chunk (${fileName.split('-')[0]})`; + } else if (fileName.includes('framework')) { + fileType = 'framework'; + displayName = '⚛️ React Framework'; + } else if (fileName.includes('main-bundle')) { + fileType = 'main'; + displayName = '🏠 통합 Main Bundle'; + } else if (fileName.includes('main')) { + fileType = 'main'; + displayName = '🏠 Main Bundle'; + } else if (fileName.includes('polyfill')) { + fileType = 'polyfill'; + displayName = '🔧 Polyfills'; + } else if (fileName.includes('webpack')) { + fileType = 'webpack'; + displayName = '⚙️ Webpack Runtime'; + } + + analysis.bundleMapping[fileName] = { + displayName, + fileType, + size, + page, + originalPath, + formattedSize: formatBytes(size), + }; + } + }); + + const totalSize = jsFiles.reduce((acc, file) => { + const filePath = path.join(currentBuildPath, file); + if (fs.existsSync(filePath)) { + return acc + fs.statSync(filePath).size; + } + return acc; + }, 0); + + if (totalSize > 500 * 1024) { + // 500KB 이상 + analysis.recommendations.push({ + type: 'large-bundle', + page, + size: formatBytes(totalSize), + message: `페이지 ${page}의 번들이 큽니다 (${formatBytes(totalSize)}). 코드 스플리팅을 고려하세요.`, + }); + } + }, + ); + + // 중복 라이브러리 체크 + const allFiles = Object.values(manifest.pages || {}).flat(); + const libraryUsage = {}; + + allFiles.forEach((file) => { + // 라이브러리 패턴 감지 (간단한 휴리스틱) + const match = file.match(/chunks\/(.+?)[\.-]/); + if (match) { + const libName = match[1]; + libraryUsage[libName] = (libraryUsage[libName] || 0) + 1; + } + }); + + Object.entries(libraryUsage).forEach(([lib, count]) => { + if (count > 3) { + analysis.recommendations.push({ + type: 'duplicate-library', + library: lib, + count, + message: `라이브러리 ${lib}가 ${count}개 청크에서 발견되었습니다. 공통 청크로 분리를 고려하세요.`, + }); + } + }); + } catch (error) { + console.warn('Build manifest 분석 실패:', error.message); + } + } + + return analysis; +} + +function formatBytes(bytes) { + if (bytes === 0) return '0 Bytes'; + const k = 1024; + const sizes = ['Bytes', 'KB', 'MB', 'GB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return ( + parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i] + ); +} + +function generateBundleRecommendations(analysis) { + let markdown = ''; + + // 번들 매핑 정보 표시 + if (Object.keys(analysis.bundleMapping).length > 0) { + markdown += `### 📦 번들 구성 상세 + +| 파일 유형 | 크기 | 원본 경로 | 설명 | +|-----------|------|----------|------| +`; + + // 파일 타입별로 그룹화하여 표시 + const groupedByType = {}; + Object.entries(analysis.bundleMapping).forEach( + ([fileName, info]) => { + if (!groupedByType[info.fileType]) { + groupedByType[info.fileType] = []; + } + groupedByType[info.fileType].push(info); + }, + ); + + // 타입별 우선순위 정렬 + const typeOrder = [ + 'app', + 'main', + 'framework', + 'page', + 'layout', + 'chunk', + 'polyfill', + 'error', + 'unknown', + ]; + + typeOrder.forEach((type) => { + if (groupedByType[type]) { + groupedByType[type] + .sort((a, b) => b.size - a.size) // 크기 순 정렬 + .forEach((info) => { + const sourcePath = info.originalPath || '자동 생성'; + const pageInfo = + info.page !== '/' ? `페이지: ${info.page}` : '공통'; + markdown += `| ${info.displayName} | \`${info.formattedSize}\` | \`${sourcePath}\` | ${pageInfo} | +`; + }); + } + }); + + markdown += ` + +`; + } + + // 최적화 권장사항 + if (analysis.recommendations.length > 0) { + markdown += `### 🎯 번들 최적화 권장사항 + +`; + + analysis.recommendations.forEach((rec, index) => { + const emoji = rec.type === 'large-bundle' ? '📦' : '🔄'; + markdown += `${index + 1}. ${emoji} ${rec.message} +`; + }); + + markdown += ` +
+💡 최적화 가이드 + +**번들 크기 줄이기:** +- 불필요한 라이브러리 제거 +- Tree shaking 활용 (사용하지 않는 코드 제거) +- Dynamic imports 사용 (\`import()\` 구문) +- 이미지 최적화 및 WebP 포맷 사용 + +**코드 스플리팅 전략:** +- 페이지별 번들 자동 분리 (Next.js 기본) +- 공통 컴포넌트 청크 생성 +- Lazy loading 적용 (\`React.lazy()\`) +- 라이브러리별 청크 분리 + +**성능 모니터링:** +- 번들 분석기로 정기적 검토 +- Core Web Vitals 지표 확인 +- 중요 리소스 우선순위 설정 + +
+ +`; + } + + return markdown; +} + +// 메인 실행 +const analysis = analyzeBundleDiff(); +const recommendations = generateBundleRecommendations(analysis); + +console.log('BUNDLE_RECOMMENDATIONS< file.endsWith('.json')) + .map((file) => path.join(resultsPath, file)); + + if (files.length === 0) { + console.error('LHCI 결과 파일을 찾을 수 없습니다.'); + return { + performance: 0, + accessibility: 0, + bestPractices: 0, + seo: 0, + status: 'failed', + totalPages: 0, + successfulPages: 0, + pageResults: {}, + }; + } + + let totalPerformance = 0; + let totalAccessibility = 0; + let totalBestPractices = 0; + let totalSeo = 0; + let successfulPages = 0; + const pageResults = {}; + + files.forEach((file) => { + try { + const result = JSON.parse(fs.readFileSync(file, 'utf8')); + + if (result.categories && result.requestedUrl) { + const pageName = getPageNameFromUrl(result.requestedUrl); + + const scores = { + performance: Math.round( + result.categories.performance.score * 100, + ), + accessibility: Math.round( + result.categories.accessibility.score * 100, + ), + bestPractices: Math.round( + result.categories['best-practices'].score * 100, + ), + seo: Math.round(result.categories.seo.score * 100), + }; + + // 페이지별 점수 저장 (동일 페이지의 여러 실행 결과는 평균 계산) + if (!pageResults[pageName]) { + pageResults[pageName] = { + ...scores, + count: 1, + }; + } else { + pageResults[pageName].performance = Math.round( + (pageResults[pageName].performance * + pageResults[pageName].count + + scores.performance) / + (pageResults[pageName].count + 1), + ); + pageResults[pageName].accessibility = Math.round( + (pageResults[pageName].accessibility * + pageResults[pageName].count + + scores.accessibility) / + (pageResults[pageName].count + 1), + ); + pageResults[pageName].bestPractices = Math.round( + (pageResults[pageName].bestPractices * + pageResults[pageName].count + + scores.bestPractices) / + (pageResults[pageName].count + 1), + ); + pageResults[pageName].seo = Math.round( + (pageResults[pageName].seo * + pageResults[pageName].count + + scores.seo) / + (pageResults[pageName].count + 1), + ); + pageResults[pageName].count++; + } + + totalPerformance += scores.performance; + totalAccessibility += scores.accessibility; + totalBestPractices += scores.bestPractices; + totalSeo += scores.seo; + successfulPages++; + } + } catch (error) { + console.error(`파일 파싱 실패: ${file}`, error.message); + } + }); + + if (successfulPages === 0) { + return { + performance: 0, + accessibility: 0, + bestPractices: 0, + seo: 0, + status: 'failed', + totalPages: files.length, + successfulPages: 0, + pageResults: {}, + }; + } + + return { + performance: Math.round(totalPerformance / successfulPages), + accessibility: Math.round(totalAccessibility / successfulPages), + bestPractices: Math.round(totalBestPractices / successfulPages), + seo: Math.round(totalSeo / successfulPages), + status: 'success', + totalPages: files.length, + successfulPages: successfulPages, + pageResults: pageResults, + }; + } catch (error) { + console.error('LHCI 결과 처리 중 오류:', error.message); + return { + performance: 0, + accessibility: 0, + bestPractices: 0, + seo: 0, + status: 'failed', + totalPages: 0, + successfulPages: 0, + pageResults: {}, + }; + } +} + +// GitHub Actions 환경변수로 출력 +try { + const results = parseLHCIResults(); + + // 전체 평균 점수 + process.stdout.write( + `LIGHTHOUSE_PERFORMANCE=${results.performance}\n`, + ); + process.stdout.write( + `LIGHTHOUSE_ACCESSIBILITY=${results.accessibility}\n`, + ); + process.stdout.write( + `LIGHTHOUSE_BEST_PRACTICES=${results.bestPractices}\n`, + ); + process.stdout.write(`LIGHTHOUSE_SEO=${results.seo}\n`); + process.stdout.write(`LIGHTHOUSE_STATUS=${results.status}\n`); + process.stdout.write( + `LIGHTHOUSE_TOTAL_PAGES=${results.totalPages}\n`, + ); + process.stdout.write( + `LIGHTHOUSE_SUCCESSFUL_PAGES=${results.successfulPages}\n`, + ); + + // 페이지별 점수 출력 + const pageOrder = [ + 'community', + 'founder', + 'home', + 'maps', + 'profile', + ]; + + pageOrder.forEach((pageName) => { + const pageData = results.pageResults[pageName]; + if (pageData) { + const upperPageName = pageName.toUpperCase(); + process.stdout.write( + `${upperPageName}_PERFORMANCE=${pageData.performance}\n`, + ); + process.stdout.write( + `${upperPageName}_ACCESSIBILITY=${pageData.accessibility}\n`, + ); + process.stdout.write( + `${upperPageName}_BEST_PRACTICES=${pageData.bestPractices}\n`, + ); + process.stdout.write(`${upperPageName}_SEO=${pageData.seo}\n`); + } else { + // 페이지 데이터가 없는 경우 기본값 + const upperPageName = pageName.toUpperCase(); + process.stdout.write(`${upperPageName}_PERFORMANCE=0\n`); + process.stdout.write(`${upperPageName}_ACCESSIBILITY=0\n`); + process.stdout.write(`${upperPageName}_BEST_PRACTICES=0\n`); + process.stdout.write(`${upperPageName}_SEO=0\n`); + } + }); +} catch (error) { + console.error('스크립트 실행 중 오류:', error.message); + process.exit(1); +} diff --git a/.github/templates/bundle-analysis-comment.md b/.github/templates/bundle-analysis-comment.md new file mode 100644 index 00000000..9d36be44 --- /dev/null +++ b/.github/templates/bundle-analysis-comment.md @@ -0,0 +1,21 @@ +## 📦 번들 분석 결과 + +### 📊 번들 크기 요약 + +| 항목 | 값 | +| --------------------- | ------------------- | +| 📦 전체 번들 크기 | `{{BUNDLE_SIZE}}` | +| 📄 JavaScript 크기 | `{{TOTAL_JS_SIZE}}` | +| 🗂️ JavaScript 파일 수 | `{{JS_COUNT}}개` | + +### 🔍 주요 청크 파일 (크기순) + +``` +{{MAIN_CHUNKS}} +``` + +{{BUNDLE_RECOMMENDATIONS}} + +--- + +🤖 자동 생성된 번들 분석 리포트 diff --git a/.github/templates/lighthouse-comment.md b/.github/templates/lighthouse-comment.md new file mode 100644 index 00000000..e80b80d6 --- /dev/null +++ b/.github/templates/lighthouse-comment.md @@ -0,0 +1,82 @@ +## ⚡ Lighthouse 성능 분석 결과 + +### 📊 전체 평균 점수 + +| 지표 | 점수 | +| ----------------- | ----------------------------------- | +| 🚀 Performance | **{{LIGHTHOUSE_PERFORMANCE}}점** | +| ♿ Accessibility | **{{LIGHTHOUSE_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{LIGHTHOUSE_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{LIGHTHOUSE_SEO}}점** | + +### 📈 측정 현황 + +- **측정 성공**: {{LIGHTHOUSE_SUCCESSFUL_PAGES}}/{{LIGHTHOUSE_TOTAL_PAGES}} 페이지 +- **상태**: {{LIGHTHOUSE_STATUS}} + +### 📄 페이지별 상세 분석 + +#### 🏠 커뮤니티 페이지: `/main/community` + +| 지표 | 점수 | +| ----------------- | ---------------------------------- | +| 🚀 Performance | **{{COMMUNITY_PERFORMANCE}}점** | +| ♿ Accessibility | **{{COMMUNITY_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{COMMUNITY_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{COMMUNITY_SEO}}점** | + +📊 **[상세 분석 보기]({{COMMUNITY_LINK}})** + +#### 👥 창업자 페이지: `/main/founder` + +| 지표 | 점수 | +| ----------------- | -------------------------------- | +| 🚀 Performance | **{{FOUNDER_PERFORMANCE}}점** | +| ♿ Accessibility | **{{FOUNDER_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{FOUNDER_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{FOUNDER_SEO}}점** | + +📊 **[상세 분석 보기]({{FOUNDER_LINK}})** + +#### 🏡 홈 페이지: `/main/home` + +| 지표 | 점수 | +| ----------------- | ----------------------------- | +| 🚀 Performance | **{{HOME_PERFORMANCE}}점** | +| ♿ Accessibility | **{{HOME_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{HOME_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{HOME_SEO}}점** | + +📊 **[상세 분석 보기]({{HOME_LINK}})** + +#### 🗺️ 지도 페이지: `/main/maps` + +| 지표 | 점수 | +| ----------------- | ----------------------------- | +| 🚀 Performance | **{{MAPS_PERFORMANCE}}점** | +| ♿ Accessibility | **{{MAPS_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{MAPS_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{MAPS_SEO}}점** | + +📊 **[상세 분석 보기]({{MAPS_LINK}})** + +#### 👤 프로필 페이지: `/main/profile` + +| 지표 | 점수 | +| ----------------- | -------------------------------- | +| 🚀 Performance | **{{PROFILE_PERFORMANCE}}점** | +| ♿ Accessibility | **{{PROFILE_ACCESSIBILITY}}점** | +| ✅ Best Practices | **{{PROFILE_BEST_PRACTICES}}점** | +| 🔍 SEO | **{{PROFILE_SEO}}점** | + +📊 **[상세 분석 보기]({{PROFILE_LINK}})** + +### 🔗 전체 상세 분석 결과 + +{{LHCI_RESULTS_LINK}} + +{{LIGHTHOUSE_DETAILED_RESULTS}} + +--- + +🤖 자동 생성된 Lighthouse 성능 리포트 diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml new file mode 100644 index 00000000..7a6d0a1c --- /dev/null +++ b/.github/workflows/analysis.yml @@ -0,0 +1,457 @@ +name: 📊 번들 분석 및 성능 분석 + +on: + push: + branches: [dev] + paths-ignore: + - '**/*.md' + - 'docs/**' + pull_request: + branches: [dev] + paths-ignore: + - '**/*.md' + - 'docs/**' + workflow_dispatch: + inputs: + pr_number: + description: 'PR 번호 (선택사항)' + required: false + type: string + +concurrency: + group: analysis-${{ github.event.pull_request.number || github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + analyze: + name: 📊 번들 분석 및 성능 측정 + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + actions: read + + steps: + - name: 📥 Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v3 + with: { version: 9 } + + - name: 🏗️ Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'pnpm' + + - name: 📂 Install dependencies + run: | + cd apps/web + pnpm install --frozen-lockfile + + - name: 📊 번들 분석 빌드 + run: | + cd apps/web + echo "🔄 프로덕션 빌드 (번들 분석 활성화)" + ANALYZE=true pnpm build + echo "✅ 번들 분석 완료" + + - name: 📈 번들 사이즈 분석 + id: bundle-analysis + run: | + cd apps/web + + if [ -d ".next/static" ]; then + BUNDLE_SIZE=$(du -sh .next/static 2>/dev/null | cut -f1 || echo "알 수 없음") + JS_SIZE=$(find .next/static -name "*.js" -exec du -ch {} + 2>/dev/null | grep total | cut -f1 || echo "알 수 없음") + JS_COUNT=$(find .next/static -name "*.js" 2>/dev/null | wc -l || echo "0") + + echo "BUNDLE_SIZE=$BUNDLE_SIZE" >> $GITHUB_OUTPUT + echo "TOTAL_JS_SIZE=$JS_SIZE" >> $GITHUB_OUTPUT + echo "JS_COUNT=$JS_COUNT" >> $GITHUB_OUTPUT + + # 주요 청크 정보 (크기순 정렬) + { + echo "MAIN_CHUNKS</dev/null | sort -k5 -rh | head -10 | awk '{print $9 " - " $5}' | sed 's|.*/||' || echo "청크 정보를 가져올 수 없습니다" + echo "EOF" + } >> $GITHUB_OUTPUT + + echo "✅ 번들 분석 완료" + else + echo "⚠️ .next/static 폴더가 없습니다. 기본값 설정" + echo "BUNDLE_SIZE=알 수 없음" >> $GITHUB_OUTPUT + echo "TOTAL_JS_SIZE=알 수 없음" >> $GITHUB_OUTPUT + echo "JS_COUNT=0" >> $GITHUB_OUTPUT + { + echo "MAIN_CHUNKS<> $GITHUB_OUTPUT + fi + + - name: 🎯 번들 최적화 권장사항 + id: bundle-recommendations + run: | + if node .github/scripts/bundle-diff.js >> $GITHUB_OUTPUT; then + echo "✅ 번들 최적화 분석 완료" + else + echo "⚠️ 번들 최적화 분석 실패 - 기본값 설정" + { + echo "BUNDLE_RECOMMENDATIONS<> $GITHUB_OUTPUT + fi + + - name: 🚀 서버 시작 (Lighthouse 측정용) + run: | + cd apps/web + pnpm start & + SERVER_PID=$! + echo "SERVER_PID=$SERVER_PID" >> $GITHUB_ENV + sleep 10 + + - name: ⚡ LHCI 설치 및 Lighthouse 측정 + id: lighthouse + env: + LIGHTHOUSE_PAGES: '/main/community,/main/founder,/main/home,/main/maps,/main/profile' + run: | + # LHCI 설치 + npm install -g @lhci/cli@latest + + # 서버 상태 확인 + if curl -f http://localhost:3000 > /dev/null 2>&1; then + echo "✅ 로컬 서버 정상 시작" + + # LHCI 설정 파일 생성 + echo '{ + "ci": { + "collect": { + "url": [ + "http://localhost:3000/main/community", + "http://localhost:3000/main/founder", + "http://localhost:3000/main/home", + "http://localhost:3000/main/maps", + "http://localhost:3000/main/profile" + ], + "numberOfRuns": 3 + }, + "upload": { + "target": "temporary-public-storage" + } + } + }' > lighthouserc.json + + # LHCI 실행 + if lhci autorun --config=lighthouserc.json > lhci-output.txt 2>&1; then + echo "✅ LHCI 측정 완료" + + # LHCI 결과 링크 추출 (모든 링크) + LHCI_LINKS=$(grep -o 'https://[^[:space:]]*storage\.googleapis\.com[^[:space:]]*' lhci-output.txt) + + if [ ! -z "$LHCI_LINKS" ]; then + # 각 페이지별 링크 추출 및 매핑 (서브셸 문제 해결) + while IFS= read -r link; do + if [[ $link == *"community"* ]]; then + echo "COMMUNITY_LINK=$link" >> $GITHUB_OUTPUT + elif [[ $link == *"founder"* ]]; then + echo "FOUNDER_LINK=$link" >> $GITHUB_OUTPUT + elif [[ $link == *"home"* ]]; then + echo "HOME_LINK=$link" >> $GITHUB_OUTPUT + elif [[ $link == *"maps"* ]]; then + echo "MAPS_LINK=$link" >> $GITHUB_OUTPUT + elif [[ $link == *"profile"* ]]; then + echo "PROFILE_LINK=$link" >> $GITHUB_OUTPUT + fi + done <<< "$LHCI_LINKS" + + # 첫 번째 링크를 전체 결과 링크로 사용 + FIRST_LINK=$(echo "$LHCI_LINKS" | head -1) + echo "LHCI_RESULTS_LINK=📊 [전체 상세 Lighthouse 분석 결과 보기]($FIRST_LINK)" >> $GITHUB_OUTPUT + else + echo "LHCI_RESULTS_LINK=⚠️ 상세 결과 링크를 생성할 수 없습니다." >> $GITHUB_OUTPUT + echo "COMMUNITY_LINK=#" >> $GITHUB_OUTPUT + echo "FOUNDER_LINK=#" >> $GITHUB_OUTPUT + echo "HOME_LINK=#" >> $GITHUB_OUTPUT + echo "MAPS_LINK=#" >> $GITHUB_OUTPUT + echo "PROFILE_LINK=#" >> $GITHUB_OUTPUT + fi + + # LHCI 결과 파싱하여 실제 점수 계산 + node .github/scripts/parse-lhci-results.js >> $GITHUB_OUTPUT + + { + echo "LIGHTHOUSE_DETAILED_RESULTS<> $GITHUB_OUTPUT + else + echo "❌ LHCI 측정 실패" + echo "LHCI_RESULTS_LINK=❌ Lighthouse 측정에 실패했습니다." >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_SEO=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_STATUS=failed" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_TOTAL_PAGES=5" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_SUCCESSFUL_PAGES=0" >> $GITHUB_OUTPUT + + # 페이지별 점수도 0으로 설정 + echo "COMMUNITY_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_SEO=0" >> $GITHUB_OUTPUT + echo "FOUNDER_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "FOUNDER_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "FOUNDER_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "FOUNDER_SEO=0" >> $GITHUB_OUTPUT + echo "HOME_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "HOME_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "HOME_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "HOME_SEO=0" >> $GITHUB_OUTPUT + echo "MAPS_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "MAPS_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "MAPS_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "MAPS_SEO=0" >> $GITHUB_OUTPUT + echo "PROFILE_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "PROFILE_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "PROFILE_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "PROFILE_SEO=0" >> $GITHUB_OUTPUT + + # 페이지별 링크도 기본값으로 설정 + echo "COMMUNITY_LINK=#" >> $GITHUB_OUTPUT + echo "FOUNDER_LINK=#" >> $GITHUB_OUTPUT + echo "HOME_LINK=#" >> $GITHUB_OUTPUT + echo "MAPS_LINK=#" >> $GITHUB_OUTPUT + echo "PROFILE_LINK=#" >> $GITHUB_OUTPUT + + { + echo "LIGHTHOUSE_DETAILED_RESULTS<> $GITHUB_OUTPUT + fi + else + echo "❌ 로컬 서버 시작 실패" + echo "LHCI_RESULTS_LINK=❌ 로컬 서버를 시작할 수 없습니다." >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_SEO=0" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_STATUS=failed" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_TOTAL_PAGES=5" >> $GITHUB_OUTPUT + echo "LIGHTHOUSE_SUCCESSFUL_PAGES=0" >> $GITHUB_OUTPUT + + # 페이지별 점수도 0으로 설정 + echo "COMMUNITY_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "COMMUNITY_SEO=0" >> $GITHUB_OUTPUT + echo "FOUNDER_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "FOUNDER_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "FOUNDER_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "FOUNDER_SEO=0" >> $GITHUB_OUTPUT + echo "HOME_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "HOME_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "HOME_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "HOME_SEO=0" >> $GITHUB_OUTPUT + echo "MAPS_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "MAPS_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "MAPS_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "MAPS_SEO=0" >> $GITHUB_OUTPUT + echo "PROFILE_PERFORMANCE=0" >> $GITHUB_OUTPUT + echo "PROFILE_ACCESSIBILITY=0" >> $GITHUB_OUTPUT + echo "PROFILE_BEST_PRACTICES=0" >> $GITHUB_OUTPUT + echo "PROFILE_SEO=0" >> $GITHUB_OUTPUT + + # 페이지별 링크도 기본값으로 설정 + echo "COMMUNITY_LINK=#" >> $GITHUB_OUTPUT + echo "FOUNDER_LINK=#" >> $GITHUB_OUTPUT + echo "HOME_LINK=#" >> $GITHUB_OUTPUT + echo "MAPS_LINK=#" >> $GITHUB_OUTPUT + echo "PROFILE_LINK=#" >> $GITHUB_OUTPUT + + { + echo "LIGHTHOUSE_DETAILED_RESULTS<> $GITHUB_OUTPUT + fi + + - name: 🛑 서버 종료 + if: always() + run: | + if [ ! -z "$SERVER_PID" ]; then + kill $SERVER_PID 2>/dev/null || true + fi + + - name: 💬 PR에 분석 결과 코멘트 작성 + if: always() + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + + // PR 번호 확인 + let prNumber; + if (context.payload.pull_request) { + prNumber = context.payload.pull_request.number; + } else if (context.payload.inputs && context.payload.inputs.pr_number) { + prNumber = context.payload.inputs.pr_number; + } + + if (!prNumber) { + console.log('PR 번호를 찾을 수 없습니다. push 이벤트이므로 코멘트를 생성하지 않습니다.'); + return; + } + + // 템플릿 파일 읽기 및 변수 치환 함수 + function replaceTemplate(templatePath, variables) { + let template = fs.readFileSync(templatePath, 'utf8'); + for (const [key, value] of Object.entries(variables)) { + template = template.replace(new RegExp(`{{${key}}}`, 'g'), value); + } + return template; + } + + // 번들 분석 코멘트 생성 + const bundleVariables = { + BUNDLE_SIZE: '${{ steps.bundle-analysis.outputs.BUNDLE_SIZE }}', + TOTAL_JS_SIZE: '${{ steps.bundle-analysis.outputs.TOTAL_JS_SIZE }}', + JS_COUNT: '${{ steps.bundle-analysis.outputs.JS_COUNT }}', + MAIN_CHUNKS: `${{ steps.bundle-analysis.outputs.MAIN_CHUNKS }}`, + BUNDLE_RECOMMENDATIONS: `${{ steps.bundle-recommendations.outputs.BUNDLE_RECOMMENDATIONS }}` + }; + + const bundleComment = replaceTemplate('.github/templates/bundle-analysis-comment.md', bundleVariables); + + // Lighthouse 분석 코멘트 생성 + const lighthouseVariables = { + LIGHTHOUSE_PERFORMANCE: '${{ steps.lighthouse.outputs.LIGHTHOUSE_PERFORMANCE }}', + LIGHTHOUSE_ACCESSIBILITY: '${{ steps.lighthouse.outputs.LIGHTHOUSE_ACCESSIBILITY }}', + LIGHTHOUSE_BEST_PRACTICES: '${{ steps.lighthouse.outputs.LIGHTHOUSE_BEST_PRACTICES }}', + LIGHTHOUSE_SEO: '${{ steps.lighthouse.outputs.LIGHTHOUSE_SEO }}', + LIGHTHOUSE_SUCCESSFUL_PAGES: '${{ steps.lighthouse.outputs.LIGHTHOUSE_SUCCESSFUL_PAGES }}', + LIGHTHOUSE_TOTAL_PAGES: '${{ steps.lighthouse.outputs.LIGHTHOUSE_TOTAL_PAGES }}', + LIGHTHOUSE_STATUS: '${{ steps.lighthouse.outputs.LIGHTHOUSE_STATUS }}', + LHCI_RESULTS_LINK: '${{ steps.lighthouse.outputs.LHCI_RESULTS_LINK }}', + LIGHTHOUSE_DETAILED_RESULTS: `${{ steps.lighthouse.outputs.LIGHTHOUSE_DETAILED_RESULTS }}`, + // 커뮤니티 페이지 + COMMUNITY_PERFORMANCE: '${{ steps.lighthouse.outputs.COMMUNITY_PERFORMANCE }}', + COMMUNITY_ACCESSIBILITY: '${{ steps.lighthouse.outputs.COMMUNITY_ACCESSIBILITY }}', + COMMUNITY_BEST_PRACTICES: '${{ steps.lighthouse.outputs.COMMUNITY_BEST_PRACTICES }}', + COMMUNITY_SEO: '${{ steps.lighthouse.outputs.COMMUNITY_SEO }}', + COMMUNITY_LINK: '${{ steps.lighthouse.outputs.COMMUNITY_LINK }}', + // 창업자 페이지 + FOUNDER_PERFORMANCE: '${{ steps.lighthouse.outputs.FOUNDER_PERFORMANCE }}', + FOUNDER_ACCESSIBILITY: '${{ steps.lighthouse.outputs.FOUNDER_ACCESSIBILITY }}', + FOUNDER_BEST_PRACTICES: '${{ steps.lighthouse.outputs.FOUNDER_BEST_PRACTICES }}', + FOUNDER_SEO: '${{ steps.lighthouse.outputs.FOUNDER_SEO }}', + FOUNDER_LINK: '${{ steps.lighthouse.outputs.FOUNDER_LINK }}', + // 홈 페이지 + HOME_PERFORMANCE: '${{ steps.lighthouse.outputs.HOME_PERFORMANCE }}', + HOME_ACCESSIBILITY: '${{ steps.lighthouse.outputs.HOME_ACCESSIBILITY }}', + HOME_BEST_PRACTICES: '${{ steps.lighthouse.outputs.HOME_BEST_PRACTICES }}', + HOME_SEO: '${{ steps.lighthouse.outputs.HOME_SEO }}', + HOME_LINK: '${{ steps.lighthouse.outputs.HOME_LINK }}', + // 지도 페이지 + MAPS_PERFORMANCE: '${{ steps.lighthouse.outputs.MAPS_PERFORMANCE }}', + MAPS_ACCESSIBILITY: '${{ steps.lighthouse.outputs.MAPS_ACCESSIBILITY }}', + MAPS_BEST_PRACTICES: '${{ steps.lighthouse.outputs.MAPS_BEST_PRACTICES }}', + MAPS_SEO: '${{ steps.lighthouse.outputs.MAPS_SEO }}', + MAPS_LINK: '${{ steps.lighthouse.outputs.MAPS_LINK }}', + // 프로필 페이지 + PROFILE_PERFORMANCE: '${{ steps.lighthouse.outputs.PROFILE_PERFORMANCE }}', + PROFILE_ACCESSIBILITY: '${{ steps.lighthouse.outputs.PROFILE_ACCESSIBILITY }}', + PROFILE_BEST_PRACTICES: '${{ steps.lighthouse.outputs.PROFILE_BEST_PRACTICES }}', + PROFILE_SEO: '${{ steps.lighthouse.outputs.PROFILE_SEO }}', + PROFILE_LINK: '${{ steps.lighthouse.outputs.PROFILE_LINK }}' + }; + + const lighthouseComment = replaceTemplate('.github/templates/lighthouse-comment.md', lighthouseVariables); + + // 기존 코멘트 찾기 + const comments = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + }); + + // 번들 분석 코멘트 처리 + const existingBundleComment = comments.data.find(comment => + comment.body.includes('📦 번들 분석 결과') + ); + + if (existingBundleComment) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existingBundleComment.id, + body: bundleComment + }); + console.log('기존 번들 분석 코멘트를 업데이트했습니다.'); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: bundleComment + }); + console.log('새로운 번들 분석 코멘트를 생성했습니다.'); + } + + // Lighthouse 분석 코멘트 처리 + const existingLighthouseComment = comments.data.find(comment => + comment.body.includes('⚡ Lighthouse 성능 분석 결과') + ); + + if (existingLighthouseComment) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existingLighthouseComment.id, + body: lighthouseComment + }); + console.log('기존 Lighthouse 분석 코멘트를 업데이트했습니다.'); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: lighthouseComment + }); + console.log('새로운 Lighthouse 분석 코멘트를 생성했습니다.'); + } + + - name: 📤 분석 결과 업로드 + uses: actions/upload-artifact@v4 + if: always() + with: + name: analysis-results-${{ github.event.pull_request.number || github.run_id }} + path: | + apps/web/.next/analyze/ + lhci-output.txt + lighthouserc.json + retention-days: 7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a923804..7d5d42ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,22 +33,22 @@ jobs: # TURBO_TEAM: ${{ secrets.TURBO_TEAM }} steps: - - name: Checkout (full history for affected calc) # CHANGED: fetch-depth=0 + - name: 📥 Checkout (full history for affected calc) # CHANGED: fetch-depth=0 uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup pnpm + - name: 📦 Setup pnpm uses: pnpm/action-setup@v3 with: { version: 9 } - - name: Setup Node.js + - name: 🏗️ Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - - name: Install deps + - name: 📂 Install dependencies run: pnpm install --frozen-lockfile # CHANGED: Turbo cache key to lockfile/config hash (commit 간 재사용 ↑) @@ -81,33 +81,35 @@ jobs: echo "BASE_SHA=$BASE_SHA" echo "filter=--filter=...[$BASE_SHA]" >> $GITHUB_OUTPUT - # 린트 → 타입체크 → 빌드 → 테스트 - - name: Lint + # 통합 실행: 린트 → 타입체크 → 빌드 → 테스트 (그래프 재계산 최소화) + - name: ⚡ 통합 검증 및 빌드 run: | FILTER="${{ steps.affected.outputs.filter }}" - pnpm turbo run lint --cache-dir=".turbo" ${FILTER} - - - name: Typecheck - run: | - FILTER="${{ steps.affected.outputs.filter }}" - pnpm turbo run typecheck --cache-dir=".turbo" ${FILTER} - - - name: Build - run: | - FILTER="${{ steps.affected.outputs.filter }}" - pnpm turbo run build --cache-dir=".turbo" ${FILTER} - - - name: Test (coverage) - run: | - FILTER="${{ steps.affected.outputs.filter }}" - pnpm turbo run test:coverage --cache-dir=".turbo" ${FILTER} + pnpm turbo run lint typecheck build test:coverage --cache-dir=".turbo" ${FILTER} # 커버리지/빌드 산출물 업로드 - name: Upload coverage artifact if: always() uses: actions/upload-artifact@v4 with: - name: coverage + name: coverage-reports path: | **/coverage/** if-no-files-found: ignore + retention-days: 3 + + # 빌드 결과 업로드 (PR 분석용) - 필수 파일만 업로드 + - name: Upload build artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: build-outputs + path: | + apps/web/.next/static/** + apps/web/.next/server/** + apps/web/.next/build-manifest.json + apps/web/.next/routes-manifest.json + **/dist/** + **/build/** + if-no-files-found: ignore + retention-days: 3 diff --git a/.lighthouserc.js b/.lighthouserc.js new file mode 100644 index 00000000..8bf8cc17 --- /dev/null +++ b/.lighthouserc.js @@ -0,0 +1,22 @@ +export default { + ci: { + collect: { + url: ['http://localhost:3000'], + startServerCommand: 'pnpm start', + startServerReadyPattern: 'ready started server on', + numberOfRuns: 3, + }, + assert: { + assertions: { + 'categories:performance': ['warn', { minScore: 0.8 }], + 'categories:accessibility': ['error', { minScore: 0.9 }], + 'categories:best-practices': ['warn', { minScore: 0.8 }], + 'categories:seo': ['warn', { minScore: 0.8 }], + 'categories:pwa': 'off', + }, + }, + upload: { + target: 'temporary-public-storage', + }, + }, +}; diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 9c9cbb65..66058cf0 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,3 +1,9 @@ +import bundleAnalyzer from '@next/bundle-analyzer'; + +const withBundleAnalyzer = bundleAnalyzer({ + enabled: process.env.ANALYZE === 'true', +}); + /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: false, @@ -43,4 +49,4 @@ const nextConfig = { }, }; -export default nextConfig; +export default withBundleAnalyzer(nextConfig); diff --git a/apps/web/package.json b/apps/web/package.json index 76071fe6..77bc2e9b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "next dev", "build": "next build", + "build:analyze": "ANALYZE=true next build", "start": "next start", "lint": "next lint", "typecheck": "tsc --noEmit", @@ -36,6 +37,8 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", + "@lhci/cli": "^0.15.1", + "@next/bundle-analyzer": "^15.5.3", "@stylistic/stylelint-config": "^2.0.0", "@stylistic/stylelint-plugin": "^3.1.3", "@svgr/webpack": "^8.1.0", @@ -53,12 +56,14 @@ "autoprefixer": "^10.4.21", "eslint-config-next": "^14.2.3", "jsdom": "^25.0.1", + "lighthouse": "^12.8.2", "postcss": "^8.5.6", "stylelint": "^16.21.1", "stylelint-config-standard": "^38.0.0", "stylelint-config-tailwindcss": "^1", "tailwindcss": "^4.1", "typescript": "^5.4.2", - "vitest": "^3.2.4" + "vitest": "^3.2.4", + "webpack-bundle-analyzer": "^4.10.2" } } diff --git a/apps/web/src/app/main/community/components/CalloutCard.tsx b/apps/web/src/app/main/community/components/CalloutCard.tsx deleted file mode 100644 index a8c18a2b..00000000 --- a/apps/web/src/app/main/community/components/CalloutCard.tsx +++ /dev/null @@ -1,31 +0,0 @@ -// apps/web/src/app/main/community/components/CalloutCard.tsx -import { twMerge } from 'tailwind-merge'; -import { Lightbulb } from 'lucide-react'; -/** - * CalloutCard 컴포넌트 - * 사용자에게 중요한 정보를 강조하는 카드 형태의 컴포넌트입니다. - */ -interface CalloutCardProps { - content: string; - className?: string; -} -export default function CalloutCard({ - content, - className, -}: CalloutCardProps) { - return ( -
-
-
- -

{content}

-
-
-
- ); -} diff --git a/apps/web/src/app/main/home/page.tsx b/apps/web/src/app/main/home/page.tsx new file mode 100644 index 00000000..0523c75c --- /dev/null +++ b/apps/web/src/app/main/home/page.tsx @@ -0,0 +1,12 @@ +export default function HomePage() { + return ( +
+

+ 홈 페이지 +

+

+ 환영합니다! 여기는 홈 페이지입니다. +

+
+ ); +} diff --git a/apps/web/vitest.config.ts b/apps/web/vitest.config.ts new file mode 100644 index 00000000..7a90b698 --- /dev/null +++ b/apps/web/vitest.config.ts @@ -0,0 +1,44 @@ +import { defineConfig } from 'vitest/config'; +import react from '@vitejs/plugin-react'; +import { resolve } from 'path'; + +export default defineConfig({ + plugins: [react()], + test: { + environment: 'jsdom', + setupFiles: ['./src/test/setup.ts'], + globals: true, + css: true, + reporter: ['verbose', 'json', 'html'], + outputFile: { + json: './coverage/test-results.json', + html: './coverage/test-report.html', + }, + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html', 'json-summary'], + exclude: [ + 'node_modules/', + 'src/test/', + '**/*.d.ts', + '**/*.config.*', + '**/coverage/**', + '**/.next/**', + ], + thresholds: { + global: { + branches: 70, + functions: 70, + lines: 70, + statements: 70, + }, + }, + }, + }, + resolve: { + alias: { + '@': resolve(__dirname, './src'), + '@public': resolve(__dirname, './public'), + }, + }, +}); diff --git a/commitlint.config.cjs b/commitlint.config.cjs index e83d69f1..5012f264 100644 --- a/commitlint.config.cjs +++ b/commitlint.config.cjs @@ -21,7 +21,7 @@ module.exports = { ], // 제목 길이 제한 'subject-max-length': [2, 'always', 100], - 'subject-min-length': [2, 'always', 10], + 'subject-min-length': [2, 'always', 5], // 제목 케이스 (소문자로 시작) 'subject-case': [2, 'always', 'lower-case'], // 제목 끝에 마침표 허용 diff --git a/package.json b/package.json index b5ba5262..a20c8698 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,13 @@ "main": "index.js", "packageManager": "pnpm@9.15.9", "scripts": { - "dev": "turbo run dev --parallel", - "build": "turbo run build", - "lint": "turbo run lint", - "lint:fix": "turbo run lint -- --fix", - "typecheck": "turbo run typecheck", - "test": "turbo run test", - "test:ci": "turbo run test:coverage", + "dev": "TURBO_NO_UPDATE_NOTIFIER=true turbo run dev --parallel", + "build": "TURBO_NO_UPDATE_NOTIFIER=true turbo run build", + "lint": "TURBO_NO_UPDATE_NOTIFIER=true turbo run lint", + "lint:fix": "TURBO_NO_UPDATE_NOTIFIER=true turbo run lint -- --fix", + "typecheck": "TURBO_NO_UPDATE_NOTIFIER=true turbo run typecheck", + "test": "TURBO_NO_UPDATE_NOTIFIER=true turbo run test", + "test:ci": "TURBO_NO_UPDATE_NOTIFIER=true turbo run test:coverage", "commitlint": "commitlint --from HEAD~1 --to HEAD --verbose", "hooks:help": "sh .husky/help.sh", "validate": "pnpm lint && pnpm typecheck && pnpm test", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3d5eebb..788649a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -87,7 +87,7 @@ importers: version: 0.525.0(react@18.3.1) next: specifier: ^14.2.3 - version: 14.2.30(@babel/core@7.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.30(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.2.0 version: 18.3.1 @@ -113,6 +113,12 @@ importers: '@eslint/eslintrc': specifier: ^3 version: 3.3.1 + '@lhci/cli': + specifier: ^0.15.1 + version: 0.15.1 + '@next/bundle-analyzer': + specifier: ^15.5.3 + version: 15.5.3 '@stylistic/stylelint-config': specifier: ^2.0.0 version: 2.0.0(stylelint@16.21.1(typescript@5.8.3)) @@ -164,6 +170,9 @@ importers: jsdom: specifier: ^25.0.1 version: 25.0.1 + lighthouse: + specifier: ^12.8.2 + version: 12.8.2 postcss: specifier: ^8.5.6 version: 8.5.6 @@ -185,6 +194,9 @@ importers: vitest: specifier: ^3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.7)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0) + webpack-bundle-analyzer: + specifier: ^4.10.2 + version: 4.10.2 docs: dependencies: @@ -1453,6 +1465,13 @@ packages: } engines: { node: '>=14' } + '@discoveryjs/json-ext@0.5.7': + resolution: + { + integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==, + } + engines: { node: '>=10.0.0' } + '@dual-bundle/import-meta-resolve@4.1.0': resolution: { @@ -1979,6 +1998,36 @@ packages: integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==, } + '@formatjs/ecma402-abstract@2.3.4': + resolution: + { + integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==, + } + + '@formatjs/fast-memoize@2.2.7': + resolution: + { + integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==, + } + + '@formatjs/icu-messageformat-parser@2.11.2': + resolution: + { + integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==, + } + + '@formatjs/icu-skeleton-parser@1.8.14': + resolution: + { + integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==, + } + + '@formatjs/intl-localematcher@0.6.1': + resolution: + { + integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==, + } + '@humanwhocodes/config-array@0.13.0': resolution: { @@ -2421,6 +2470,19 @@ packages: integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==, } + '@lhci/cli@0.15.1': + resolution: + { + integrity: sha512-yhC0oXnXqGHYy1xl4D8YqaydMZ/khFAnXGY/o2m/J3PqPa/D0nj3V6TLoH02oVMFeEF2AQim7UbmdXMiXx2tOw==, + } + hasBin: true + + '@lhci/utils@0.15.1': + resolution: + { + integrity: sha512-WclJnUQJeOMY271JSuaOjCv/aA0pgvuHZS29NFNdIeI14id8eiFsjith85EGKYhljgoQhJ2SiW4PsVfFiakNNw==, + } + '@mdx-js/mdx@3.1.0': resolution: { @@ -2433,6 +2495,12 @@ packages: integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==, } + '@next/bundle-analyzer@15.5.3': + resolution: + { + integrity: sha512-l2NxnWHP2gWHbomAlz/wFnN2jNCx/dpr7P/XWeOLhULiyKkXSac8O8SjxRO/8FNhr2l4JNtWVKk82Uya4cZYTw==, + } + '@next/env@14.2.30': resolution: { @@ -2554,6 +2622,293 @@ packages: } engines: { node: '>=12.4.0' } + '@opentelemetry/api-logs@0.57.2': + resolution: + { + integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==, + } + engines: { node: '>=14' } + + '@opentelemetry/api@1.9.0': + resolution: + { + integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==, + } + engines: { node: '>=8.0.0' } + + '@opentelemetry/context-async-hooks@1.30.1': + resolution: + { + integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@1.30.1': + resolution: + { + integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/instrumentation-amqplib@0.46.1': + resolution: + { + integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-connect@0.43.1': + resolution: + { + integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-dataloader@0.16.1': + resolution: + { + integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-express@0.47.1': + resolution: + { + integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-fs@0.19.1': + resolution: + { + integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-generic-pool@0.43.1': + resolution: + { + integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-graphql@0.47.1': + resolution: + { + integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-hapi@0.45.2': + resolution: + { + integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.57.2': + resolution: + { + integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-ioredis@0.47.1': + resolution: + { + integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-kafkajs@0.7.1': + resolution: + { + integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-knex@0.44.1': + resolution: + { + integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-koa@0.47.1': + resolution: + { + integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-lru-memoizer@0.44.1': + resolution: + { + integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongodb@0.52.0': + resolution: + { + integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongoose@0.46.1': + resolution: + { + integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql2@0.45.2': + resolution: + { + integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql@0.45.1': + resolution: + { + integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pg@0.51.1': + resolution: + { + integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-redis-4@0.46.1': + resolution: + { + integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-tedious@0.18.1': + resolution: + { + integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-undici@0.10.1': + resolution: + { + integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.7.0 + + '@opentelemetry/instrumentation@0.57.2': + resolution: + { + integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/redis-common@0.36.2': + resolution: + { + integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==, + } + engines: { node: '>=14' } + + '@opentelemetry/resources@1.30.1': + resolution: + { + integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@1.30.1': + resolution: + { + integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.28.0': + resolution: + { + integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==, + } + engines: { node: '>=14' } + + '@opentelemetry/semantic-conventions@1.37.0': + resolution: + { + integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==, + } + engines: { node: '>=14' } + + '@opentelemetry/sql-common@0.40.1': + resolution: + { + integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==, + } + engines: { node: '>=14' } + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@oslojs/encoding@1.1.0': resolution: { @@ -2606,6 +2961,18 @@ packages: cpu: [x64] os: [win32] + '@paulirish/trace_engine@0.0.53': + resolution: + { + integrity: sha512-PUl/vlfo08Oj804VI5nDPeSk9vyslnBlVzDDwFt8SUVxY8+KdGMkra/vrXjEEHe8gb7+RqVTfOIlGw0nyrEelA==, + } + + '@paulirish/trace_engine@0.0.59': + resolution: + { + integrity: sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==, + } + '@pkgjs/parseargs@0.11.0': resolution: { @@ -2619,6 +2986,22 @@ packages: integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==, } + '@prisma/instrumentation@6.11.1': + resolution: + { + integrity: sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==, + } + peerDependencies: + '@opentelemetry/api': ^1.8 + + '@puppeteer/browsers@2.10.10': + resolution: + { + integrity: sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==, + } + engines: { node: '>=18' } + hasBin: true + '@rolldown/pluginutils@1.0.0-beta.19': resolution: { @@ -2809,6 +3192,90 @@ packages: integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==, } + '@sentry-internal/tracing@7.120.4': + resolution: + { + integrity: sha512-Fz5+4XCg3akeoFK+K7g+d7HqGMjmnLoY2eJlpONJmaeT9pXY7yfUyXKZMmMajdE2LxxKJgQ2YKvSCaGVamTjHw==, + } + engines: { node: '>=8' } + + '@sentry/core@7.120.4': + resolution: + { + integrity: sha512-TXu3Q5kKiq8db9OXGkWyXUbIxMMuttB5vJ031yolOl5T/B69JRyAoKuojLBjRv1XX583gS1rSSoX8YXX7ATFGA==, + } + engines: { node: '>=8' } + + '@sentry/core@9.46.0': + resolution: + { + integrity: sha512-it7JMFqxVproAgEtbLgCVBYtQ9fIb+Bu0JD+cEplTN/Ukpe6GaolyYib5geZqslVxhp2sQgT+58aGvfd/k0N8Q==, + } + engines: { node: '>=18' } + + '@sentry/integrations@7.120.4': + resolution: + { + integrity: sha512-kkBTLk053XlhDCg7OkBQTIMF4puqFibeRO3E3YiVc4PGLnocXMaVpOSCkMqAc1k1kZ09UgGi8DxfQhnFEjUkpA==, + } + engines: { node: '>=8' } + + '@sentry/node-core@9.46.0': + resolution: + { + integrity: sha512-XRVu5pqoklZeh4wqhxCLZkz/ipoKhitctgEFXX9Yh1e1BoHM2pIxT52wf+W6hHM676TFmFXW3uKBjsmRM3AjgA==, + } + engines: { node: '>=18' } + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/instrumentation': '>=0.57.1 <1' + '@opentelemetry/resources': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 + + '@sentry/node@7.120.4': + resolution: + { + integrity: sha512-qq3wZAXXj2SRWhqErnGCSJKUhPSlZ+RGnCZjhfjHpP49KNpcd9YdPTIUsFMgeyjdh6Ew6aVCv23g1hTP0CHpYw==, + } + engines: { node: '>=8' } + + '@sentry/node@9.46.0': + resolution: + { + integrity: sha512-pRLqAcd7GTGvN8gex5FtkQR5Mcol8gOy1WlyZZFq4rBbVtMbqKOQRhohwqnb+YrnmtFpj7IZ7KNDo077MvNeOQ==, + } + engines: { node: '>=18' } + + '@sentry/opentelemetry@9.46.0': + resolution: + { + integrity: sha512-w2zTxqrdmwRok0cXBoh+ksXdGRUHUZhlpfL/H2kfTodOL+Mk8rW72qUmfqQceXoqgbz8UyK8YgJbyt+XS5H4Qg==, + } + engines: { node: '>=18' } + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 + + '@sentry/types@7.120.4': + resolution: + { + integrity: sha512-cUq2hSSe6/qrU6oZsEP4InMI5VVdD86aypE+ENrQ6eZEVLTCYm1w6XhW1NvIu3UuWh7gZec4a9J7AFpYxki88Q==, + } + engines: { node: '>=8' } + + '@sentry/utils@7.120.4': + resolution: + { + integrity: sha512-zCKpyDIWKHwtervNK2ZlaK8mMV7gVUijAgFeJStH+CU/imcdquizV3pFLlSQYRswG+Lbyd6CT/LGRh3IbtkCFw==, + } + engines: { node: '>=8' } + '@shikijs/core@3.7.0': resolution: { @@ -3217,6 +3684,12 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: + { + integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, + } + '@trysound/sax@0.2.0': resolution: { @@ -3260,10 +3733,16 @@ packages: integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==, } - '@types/chai@5.2.2': + '@types/chai@5.2.2': + resolution: + { + integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, + } + + '@types/connect@3.4.38': resolution: { - integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, } '@types/conventional-commits-parser@5.0.1': @@ -3344,6 +3823,12 @@ packages: integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==, } + '@types/mysql@2.15.26': + resolution: + { + integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==, + } + '@types/nlcst@2.0.3': resolution: { @@ -3368,6 +3853,18 @@ packages: integrity: sha512-YIEUUr4yf8q8oQoXPpSlnvKNVKDQlPMWrmOcgzoduo7kvA2UF0/BwJ/eMKFTiTtkNL17I0M6Xe2tvwFU7be6iw==, } + '@types/pg-pool@2.0.6': + resolution: + { + integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==, + } + + '@types/pg@8.6.1': + resolution: + { + integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==, + } + '@types/prop-types@15.7.15': resolution: { @@ -3394,6 +3891,18 @@ packages: integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, } + '@types/shimmer@1.2.0': + resolution: + { + integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==, + } + + '@types/tedious@4.0.14': + resolution: + { + integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==, + } + '@types/unist@2.0.11': resolution: { @@ -3406,6 +3915,12 @@ packages: integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, } + '@types/yauzl@2.10.3': + resolution: + { + integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==, + } + '@typescript-eslint/eslint-plugin@8.36.0': resolution: { @@ -3757,6 +4272,21 @@ packages: } hasBin: true + accepts@1.3.8: + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } + + acorn-import-attributes@1.9.5: + resolution: + { + integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, + } + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: { @@ -3765,6 +4295,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.4: + resolution: + { + integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==, + } + engines: { node: '>=0.4.0' } + acorn@8.15.0: resolution: { @@ -3798,6 +4335,20 @@ packages: integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, } + ansi-colors@4.1.3: + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: '>=6' } + + ansi-escapes@3.2.0: + resolution: + { + integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==, + } + engines: { node: '>=4' } + ansi-escapes@7.0.0: resolution: { @@ -3805,6 +4356,20 @@ packages: } engines: { node: '>=18' } + ansi-regex@3.0.1: + resolution: + { + integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, + } + engines: { node: '>=4' } + + ansi-regex@4.1.1: + resolution: + { + integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, + } + engines: { node: '>=6' } + ansi-regex@5.0.1: resolution: { @@ -3819,6 +4384,13 @@ packages: } engines: { node: '>=12' } + ansi-styles@3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: '>=4' } + ansi-styles@4.3.0: resolution: { @@ -3853,6 +4425,12 @@ packages: integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, } + argparse@1.0.10: + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } + argparse@2.0.1: resolution: { @@ -3885,6 +4463,12 @@ packages: } engines: { node: '>= 0.4' } + array-flatten@1.1.1: + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } + array-ify@1.0.0: resolution: { @@ -3966,6 +4550,13 @@ packages: integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==, } + ast-types@0.13.4: + resolution: + { + integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, + } + engines: { node: '>=4' } + ast-v8-to-istanbul@0.3.5: resolution: { @@ -4020,6 +4611,12 @@ packages: integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, } + atomically@2.0.3: + resolution: + { + integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==, + } + autoprefixer@10.4.21: resolution: { @@ -4057,6 +4654,17 @@ packages: } engines: { node: '>= 0.4' } + b4a@1.7.1: + resolution: + { + integrity: sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==, + } + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + babel-plugin-polyfill-corejs2@0.4.14: resolution: { @@ -4099,6 +4707,57 @@ packages: integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, } + bare-events@2.7.0: + resolution: + { + integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==, + } + + bare-fs@4.4.4: + resolution: + { + integrity: sha512-Q8yxM1eLhJfuM7KXVP3zjhBvtMJCYRByoTT+wHXjpdMELv0xICFJX+1w4c7csa+WZEOsq4ItJ4RGwvzid6m/dw==, + } + engines: { bare: '>=1.16.0' } + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.6.2: + resolution: + { + integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==, + } + engines: { bare: '>=1.14.0' } + + bare-path@3.0.0: + resolution: + { + integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==, + } + + bare-stream@2.7.0: + resolution: + { + integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==, + } + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.2.2: + resolution: + { + integrity: sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==, + } + base-64@1.0.0: resolution: { @@ -4111,6 +4770,13 @@ packages: integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } + basic-ftp@5.0.5: + resolution: + { + integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==, + } + engines: { node: '>=10.0.0' } + bcp-47-match@2.0.3: resolution: { @@ -4129,6 +4795,13 @@ packages: integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==, } + body-parser@1.20.3: + resolution: + { + integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + boolbase@1.0.0: resolution: { @@ -4185,6 +4858,12 @@ packages: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true + buffer-crc32@0.2.13: + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + } + buffer-from@1.1.2: resolution: { @@ -4204,6 +4883,13 @@ packages: } engines: { node: '>=10.16.0' } + bytes@3.1.2: + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: '>= 0.8' } + cac@6.7.14: resolution: { @@ -4245,6 +4931,13 @@ packages: } engines: { node: '>=6' } + camelcase@5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: '>=6' } + camelcase@6.3.0: resolution: { @@ -4284,6 +4977,13 @@ packages: } engines: { node: '>=18' } + chalk@2.4.2: + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: '>=4' } + chalk@4.1.2: resolution: { @@ -4322,6 +5022,12 @@ packages: integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, } + chardet@0.7.0: + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } + chart.js@4.5.0: resolution: { @@ -4350,6 +5056,28 @@ packages: } engines: { node: '>=18' } + chrome-launcher@0.13.4: + resolution: + { + integrity: sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==, + } + + chrome-launcher@1.2.0: + resolution: + { + integrity: sha512-JbuGuBNss258bvGil7FT4HKdC3SC2K7UAEUqiPy3ACS3Yxo3hAW6bvFpCu2HsIJLgTqxgEX6BkujvzZfLpUD0Q==, + } + engines: { node: '>=12.13.0' } + hasBin: true + + chromium-bidi@8.0.0: + resolution: + { + integrity: sha512-d1VmE0FD7lxZQHzcDUCKZSNRtRwISXDsdg4HjdTR5+Ll5nQ/vzU12JeNmupD6VWffrPSlrnGhEWlLESKH3VO+g==, + } + peerDependencies: + devtools-protocol: '*' + ci-info@4.3.0: resolution: { @@ -4357,6 +5085,12 @@ packages: } engines: { node: '>=8' } + cjs-module-lexer@1.4.3: + resolution: + { + integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==, + } + class-variance-authority@0.7.1: resolution: { @@ -4370,6 +5104,13 @@ packages: } engines: { node: '>=10' } + cli-cursor@2.1.0: + resolution: + { + integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==, + } + engines: { node: '>=4' } + cli-cursor@5.0.0: resolution: { @@ -4384,12 +5125,24 @@ packages: } engines: { node: '>=18' } + cli-width@2.2.1: + resolution: + { + integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, + } + client-only@0.0.1: resolution: { integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, } + cliui@6.0.0: + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, + } + cliui@8.0.1: resolution: { @@ -4417,6 +5170,12 @@ packages: integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, } + color-convert@1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + color-convert@2.0.1: resolution: { @@ -4424,6 +5183,12 @@ packages: } engines: { node: '>=7.0.0' } + color-name@1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + color-name@1.1.4: resolution: { @@ -4500,18 +5265,60 @@ packages: integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, } + compressible@2.0.18: + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } + + compression@1.8.1: + resolution: + { + integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==, + } + engines: { node: '>= 0.8.0' } + concat-map@0.0.1: resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, } + configstore@5.0.1: + resolution: + { + integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==, + } + engines: { node: '>=8' } + + configstore@7.1.0: + resolution: + { + integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==, + } + engines: { node: '>=18' } + confusing-browser-globals@1.0.11: resolution: { integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, } + content-disposition@0.5.4: + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: '>= 0.6' } + + content-type@1.0.5: + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: '>= 0.6' } + conventional-changelog-angular@7.0.0: resolution: { @@ -4546,6 +5353,19 @@ packages: integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==, } + cookie-signature@1.0.6: + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } + + cookie@0.7.1: + resolution: + { + integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==, + } + engines: { node: '>= 0.6' } + cookie@1.0.2: resolution: { @@ -4613,6 +5433,19 @@ packages: integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==, } + crypto-random-string@2.0.0: + resolution: + { + integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, + } + engines: { node: '>=8' } + + csp_evaluator@1.1.5: + resolution: + { + integrity: sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==, + } + css-functions-list@3.2.3: resolution: { @@ -4715,6 +5548,13 @@ packages: } engines: { node: '>=12' } + data-uri-to-buffer@6.0.2: + resolution: + { + integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==, + } + engines: { node: '>= 14' } + data-urls@5.0.0: resolution: { @@ -4739,9 +5579,26 @@ packages: data-view-byte-offset@1.0.1: resolution: { - integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, + integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, + } + engines: { node: '>= 0.4' } + + debounce@1.2.1: + resolution: + { + integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==, + } + + debug@2.6.9: + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, } - engines: { node: '>= 0.4' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true debug@3.2.7: resolution: @@ -4766,6 +5623,25 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: + { + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, + } + engines: { node: '>=0.10.0' } + decimal.js@10.6.0: resolution: { @@ -4812,6 +5688,13 @@ packages: } engines: { node: '>= 0.4' } + define-lazy-prop@2.0.0: + resolution: + { + integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, + } + engines: { node: '>=8' } + define-properties@1.2.1: resolution: { @@ -4825,6 +5708,13 @@ packages: integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==, } + degenerator@5.0.1: + resolution: + { + integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==, + } + engines: { node: '>= 14' } + delayed-stream@1.0.0: resolution: { @@ -4832,6 +5722,13 @@ packages: } engines: { node: '>=0.4.0' } + depd@2.0.0: + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: '>= 0.8' } + dequal@2.0.3: resolution: { @@ -4845,6 +5742,13 @@ packages: integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==, } + destroy@1.2.0: + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + detect-libc@2.0.4: resolution: { @@ -4871,6 +5775,24 @@ packages: integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, } + devtools-protocol@0.0.1467305: + resolution: + { + integrity: sha512-LxwMLqBoPPGpMdRL4NkLFRNy3QLp6Uqa7GNp1v6JaBheop2QrB9Q7q0A/q/CYYP9sBfZdHOyszVx4gc9zyk7ow==, + } + + devtools-protocol@0.0.1495869: + resolution: + { + integrity: sha512-i+bkd9UYFis40RcnkW7XrOprCujXRAHg62IVh/Ah3G8MmNXpCGt1m0dTFhSdx/AVs8XEMbdOGRwdkR1Bcta8AA==, + } + + devtools-protocol@0.0.1507524: + resolution: + { + integrity: sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==, + } + dfa@1.2.0: resolution: { @@ -4968,6 +5890,13 @@ packages: } engines: { node: '>=8' } + dot-prop@9.0.0: + resolution: + { + integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==, + } + engines: { node: '>=18' } + dset@3.1.4: resolution: { @@ -4982,12 +5911,24 @@ packages: } engines: { node: '>= 0.4' } + duplexer@0.1.2: + resolution: + { + integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, + } + eastasianwidth@0.2.0: resolution: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, } + ee-first@1.1.1: + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } + electron-to-chromium@1.5.182: resolution: { @@ -5018,6 +5959,26 @@ packages: integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, } + encodeurl@1.0.2: + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: '>= 0.8' } + + encodeurl@2.0.0: + resolution: + { + integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, + } + engines: { node: '>= 0.8' } + + end-of-stream@1.4.5: + resolution: + { + integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==, + } + enhanced-resolve@5.18.2: resolution: { @@ -5025,6 +5986,13 @@ packages: } engines: { node: '>=10.13.0' } + enquirer@2.4.1: + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, + } + engines: { node: '>=8.6' } + entities@4.5.0: resolution: { @@ -5162,6 +6130,19 @@ packages: } engines: { node: '>=6' } + escape-html@1.0.3: + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } + + escape-string-regexp@1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } + escape-string-regexp@4.0.0: resolution: { @@ -5176,6 +6157,14 @@ packages: } engines: { node: '>=12' } + escodegen@2.1.0: + resolution: + { + integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==, + } + engines: { node: '>=6.0' } + hasBin: true + eslint-config-airbnb-base@15.0.0: resolution: { @@ -5369,6 +6358,14 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + esprima@4.0.1: + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: '>=4' } + hasBin: true + esquery@1.6.0: resolution: { @@ -5445,6 +6442,13 @@ packages: } engines: { node: '>=0.10.0' } + etag@1.8.1: + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: '>= 0.6' } + eventemitter3@5.0.1: resolution: { @@ -5458,6 +6462,13 @@ packages: } engines: { node: '>=12.0.0' } + express@4.21.2: + resolution: + { + integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==, + } + engines: { node: '>= 0.10.0' } + expressive-code@0.41.3: resolution: { @@ -5470,12 +6481,33 @@ packages: integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, } + external-editor@3.1.0: + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: '>=4' } + + extract-zip@2.0.1: + resolution: + { + integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==, + } + engines: { node: '>= 10.17.0' } + hasBin: true + fast-deep-equal@3.1.3: resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, } + fast-fifo@1.3.2: + resolution: + { + integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, + } + fast-glob@3.3.3: resolution: { @@ -5514,6 +6546,12 @@ packages: integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, } + fd-slicer@1.1.0: + resolution: + { + integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, + } + fdir@6.4.6: resolution: { @@ -5531,6 +6569,13 @@ packages: integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, } + figures@2.0.0: + resolution: + { + integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, + } + engines: { node: '>=4' } + file-entry-cache@10.1.1: resolution: { @@ -5551,6 +6596,20 @@ packages: } engines: { node: '>=8' } + finalhandler@1.3.1: + resolution: + { + integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, + } + engines: { node: '>= 0.8' } + + find-up@4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } + find-up@5.0.0: resolution: { @@ -5636,12 +6695,32 @@ packages: } engines: { node: '>= 6' } + forwarded-parse@2.1.2: + resolution: + { + integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==, + } + + forwarded@0.2.0: + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: '>= 0.6' } + fraction.js@4.3.7: resolution: { integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, } + fresh@0.5.2: + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: '>= 0.6' } + fs.realpath@1.0.0: resolution: { @@ -5718,6 +6797,13 @@ packages: } engines: { node: '>= 0.4' } + get-stream@5.2.0: + resolution: + { + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, + } + engines: { node: '>=8' } + get-symbol-description@1.1.0: resolution: { @@ -5731,6 +6817,13 @@ packages: integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==, } + get-uri@6.0.5: + resolution: + { + integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==, + } + engines: { node: '>= 14' } + git-raw-commits@4.0.0: resolution: { @@ -5855,6 +6948,13 @@ packages: integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, } + gzip-size@6.0.0: + resolution: + { + integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==, + } + engines: { node: '>=10' } + h3@1.15.3: resolution: { @@ -5868,6 +6968,13 @@ packages: } engines: { node: '>= 0.4' } + has-flag@3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: '>=4' } + has-flag@4.0.0: resolution: { @@ -6079,6 +7186,20 @@ packages: integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==, } + http-errors@2.0.0: + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: '>= 0.8' } + + http-link-header@1.1.3: + resolution: + { + integrity: sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==, + } + engines: { node: '>=6.0.0' } + http-proxy-agent@7.0.2: resolution: { @@ -6107,6 +7228,13 @@ packages: integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==, } + iconv-lite@0.4.24: + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: '>=0.10.0' } + iconv-lite@0.6.3: resolution: { @@ -6134,6 +7262,18 @@ packages: } engines: { node: '>= 4' } + image-ssim@0.2.0: + resolution: + { + integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==, + } + + immediate@3.0.6: + resolution: + { + integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, + } + import-fresh@3.3.1: resolution: { @@ -6141,6 +7281,12 @@ packages: } engines: { node: '>=6' } + import-in-the-middle@1.14.2: + resolution: + { + integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==, + } + import-meta-resolve@4.1.0: resolution: { @@ -6193,6 +7339,13 @@ packages: integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, } + inquirer@6.5.2: + resolution: + { + integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==, + } + engines: { node: '>=6.0.0' } + install@0.13.0: resolution: { @@ -6207,6 +7360,26 @@ packages: } engines: { node: '>= 0.4' } + intl-messageformat@10.7.16: + resolution: + { + integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==, + } + + ip-address@10.0.1: + resolution: + { + integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==, + } + engines: { node: '>= 12' } + + ipaddr.js@1.9.1: + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: '>= 0.10' } + iron-webcrypto@1.2.1: resolution: { @@ -6312,6 +7485,14 @@ packages: integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, } + is-docker@2.2.1: + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: '>=8' } + hasBin: true + is-docker@3.0.0: resolution: { @@ -6334,6 +7515,13 @@ packages: } engines: { node: '>= 0.4' } + is-fullwidth-code-point@2.0.0: + resolution: + { + integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, + } + engines: { node: '>=4' } + is-fullwidth-code-point@3.0.0: resolution: { @@ -6494,6 +7682,12 @@ packages: } engines: { node: '>= 0.4' } + is-typedarray@1.0.0: + resolution: + { + integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, + } + is-weakmap@2.0.2: resolution: { @@ -6515,6 +7709,13 @@ packages: } engines: { node: '>= 0.4' } + is-wsl@2.2.0: + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: '>=8' } + is-wsl@3.1.0: resolution: { @@ -6534,6 +7735,12 @@ packages: integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } + isomorphic-fetch@3.0.0: + resolution: + { + integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==, + } + istanbul-lib-coverage@3.2.2: resolution: { @@ -6585,9 +7792,15 @@ packages: jiti@2.4.2: resolution: { - integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==, + integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==, + } + hasBin: true + + jpeg-js@0.4.4: + resolution: + { + integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==, } - hasBin: true js-cookie@3.0.5: resolution: @@ -6596,6 +7809,13 @@ packages: } engines: { node: '>=14' } + js-library-detector@6.7.0: + resolution: + { + integrity: sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==, + } + engines: { node: '>=12' } + js-tokens@4.0.0: resolution: { @@ -6608,6 +7828,13 @@ packages: integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, } + js-yaml@3.14.1: + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } + hasBin: true + js-yaml@4.1.0: resolution: { @@ -6767,6 +7994,12 @@ packages: } engines: { node: '>=0.10' } + legacy-javascript@0.0.1: + resolution: + { + integrity: sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==, + } + levn@0.4.1: resolution: { @@ -6774,6 +8007,46 @@ packages: } engines: { node: '>= 0.8.0' } + lie@3.1.1: + resolution: + { + integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==, + } + + lighthouse-logger@1.2.0: + resolution: + { + integrity: sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==, + } + + lighthouse-logger@2.0.2: + resolution: + { + integrity: sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==, + } + + lighthouse-stack-packs@1.12.2: + resolution: + { + integrity: sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==, + } + + lighthouse@12.6.1: + resolution: + { + integrity: sha512-85WDkjcXAVdlFem9Y6SSxqoKiz/89UsDZhLpeLJIsJ4LlHxw047XTZhlFJmjYCB7K5S1erSBAf5cYLcfyNbH3A==, + } + engines: { node: '>=18.20' } + hasBin: true + + lighthouse@12.8.2: + resolution: + { + integrity: sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==, + } + engines: { node: '>=18.16' } + hasBin: true + lightningcss-darwin-arm64@1.30.1: resolution: { @@ -6899,6 +8172,19 @@ packages: } engines: { node: '>=18.0.0' } + localforage@1.10.0: + resolution: + { + integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==, + } + + locate-path@5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } + locate-path@6.0.0: resolution: { @@ -6913,6 +8199,12 @@ packages: } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + lodash-es@4.17.21: + resolution: + { + integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, + } + lodash.camelcase@4.3.0: resolution: { @@ -6979,6 +8271,12 @@ packages: integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, } + lodash@4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + log-update@6.1.0: resolution: { @@ -6992,6 +8290,12 @@ packages: integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, } + lookup-closest-locale@6.2.0: + resolution: + { + integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==, + } + loose-envify@1.4.0: resolution: { @@ -7023,6 +8327,13 @@ packages: integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, } + lru-cache@7.18.3: + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: '>=12' } + lucide-react@0.525.0: resolution: { @@ -7050,6 +8361,13 @@ packages: integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==, } + make-dir@3.1.0: + resolution: + { + integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, + } + engines: { node: '>=8' } + make-dir@4.0.0: resolution: { @@ -7070,6 +8388,12 @@ packages: integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==, } + marky@1.3.0: + resolution: + { + integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==, + } + math-intrinsics@1.1.0: resolution: { @@ -7209,6 +8533,13 @@ packages: integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==, } + media-typer@0.3.0: + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: '>= 0.6' } + meow@12.1.1: resolution: { @@ -7223,6 +8554,12 @@ packages: } engines: { node: '>=18' } + merge-descriptors@1.0.3: + resolution: + { + integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, + } + merge2@1.4.1: resolution: { @@ -7230,6 +8567,19 @@ packages: } engines: { node: '>= 8' } + metaviewport-parser@0.3.0: + resolution: + { + integrity: sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==, + } + + methods@1.1.2: + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: '>= 0.6' } + micromark-core-commonmark@2.0.3: resolution: { @@ -7467,6 +8817,21 @@ packages: } engines: { node: '>= 0.6' } + mime@1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: '>=4' } + hasBin: true + + mimic-fn@1.2.0: + resolution: + { + integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==, + } + engines: { node: '>=4' } + mimic-function@5.0.1: resolution: { @@ -7514,6 +8879,19 @@ packages: } engines: { node: '>= 18' } + mitt@3.0.1: + resolution: + { + integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, + } + + mkdirp@0.5.6: + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } + hasBin: true + mkdirp@3.0.1: resolution: { @@ -7522,6 +8900,12 @@ packages: engines: { node: '>=10' } hasBin: true + module-details-from-path@1.0.4: + resolution: + { + integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==, + } + mrmime@2.0.1: resolution: { @@ -7529,12 +8913,24 @@ packages: } engines: { node: '>=10' } + ms@2.0.0: + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } + ms@2.1.3: resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, } + mute-stream@0.0.7: + resolution: + { + integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==, + } + nano-spawn@1.0.2: resolution: { @@ -7564,6 +8960,20 @@ packages: integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, } + negotiator@0.6.3: + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: '>= 0.6' } + + negotiator@0.6.4: + resolution: + { + integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==, + } + engines: { node: '>= 0.6' } + neotraverse@0.6.18: resolution: { @@ -7571,6 +8981,13 @@ packages: } engines: { node: '>= 10' } + netmask@2.0.2: + resolution: + { + integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, + } + engines: { node: '>= 0.4.0' } + next@14.2.30: resolution: { @@ -7735,12 +9152,33 @@ packages: integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==, } + on-finished@2.4.1: + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: '>= 0.8' } + + on-headers@1.1.0: + resolution: + { + integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==, + } + engines: { node: '>= 0.8' } + once@1.4.0: resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, } + onetime@2.0.1: + resolution: + { + integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, + } + engines: { node: '>=4' } + onetime@7.0.0: resolution: { @@ -7760,6 +9198,27 @@ packages: integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==, } + open@7.4.2: + resolution: + { + integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, + } + engines: { node: '>=8' } + + open@8.4.2: + resolution: + { + integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, + } + engines: { node: '>=12' } + + opener@1.5.2: + resolution: + { + integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, + } + hasBin: true + optionator@0.9.4: resolution: { @@ -7767,6 +9226,13 @@ packages: } engines: { node: '>= 0.8.0' } + os-tmpdir@1.0.2: + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: '>=0.10.0' } + own-keys@1.0.1: resolution: { @@ -7774,6 +9240,13 @@ packages: } engines: { node: '>= 0.4' } + p-limit@2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } + p-limit@3.1.0: resolution: { @@ -7795,6 +9268,13 @@ packages: } engines: { node: '>=18' } + p-locate@4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } + p-locate@5.0.0: resolution: { @@ -7823,6 +9303,27 @@ packages: } engines: { node: '>=14.16' } + p-try@2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } + + pac-proxy-agent@7.2.0: + resolution: + { + integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==, + } + engines: { node: '>= 14' } + + pac-resolver@7.0.1: + resolution: + { + integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==, + } + engines: { node: '>= 14' } + package-json-from-dist@1.0.1: resolution: { @@ -7855,6 +9356,12 @@ packages: } engines: { node: '>=6' } + parse-cache-control@1.0.1: + resolution: + { + integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==, + } + parse-entities@4.0.2: resolution: { @@ -7880,6 +9387,13 @@ packages: integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==, } + parseurl@1.3.3: + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: '>= 0.8' } + path-exists@4.0.0: resolution: { @@ -7921,6 +9435,12 @@ packages: } engines: { node: '>=16 || 14 >=14.18' } + path-to-regexp@0.1.12: + resolution: + { + integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==, + } + path-type@4.0.0: resolution: { @@ -7941,6 +9461,32 @@ packages: } engines: { node: '>= 14.16' } + pend@1.2.0: + resolution: + { + integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, + } + + pg-int8@1.0.1: + resolution: + { + integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==, + } + engines: { node: '>=4.0.0' } + + pg-protocol@1.10.3: + resolution: + { + integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==, + } + + pg-types@2.2.0: + resolution: + { + integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==, + } + engines: { node: '>=4' } + picocolors@1.1.1: resolution: { @@ -8050,6 +9596,34 @@ packages: } engines: { node: ^10 || ^12 || >=14 } + postgres-array@2.0.0: + resolution: + { + integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==, + } + engines: { node: '>=4' } + + postgres-bytea@1.0.0: + resolution: + { + integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==, + } + engines: { node: '>=0.10.0' } + + postgres-date@1.0.7: + resolution: + { + integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==, + } + engines: { node: '>=0.10.0' } + + postgres-interval@1.2.0: + resolution: + { + integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==, + } + engines: { node: '>=0.10.0' } + prelude-ls@1.2.1: resolution: { @@ -8077,7 +9651,14 @@ packages: { integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==, } - engines: { node: '>=6' } + engines: { node: '>=6' } + + progress@2.0.3: + resolution: + { + integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, + } + engines: { node: '>=0.4.0' } prompts@2.4.2: resolution: @@ -8104,12 +9685,32 @@ packages: integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==, } + proxy-addr@2.0.7: + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, + } + engines: { node: '>= 0.10' } + + proxy-agent@6.5.0: + resolution: + { + integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==, + } + engines: { node: '>= 14' } + proxy-from-env@1.1.0: resolution: { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, } + pump@3.0.3: + resolution: + { + integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==, + } + punycode@2.3.1: resolution: { @@ -8117,6 +9718,20 @@ packages: } engines: { node: '>=6' } + puppeteer-core@24.22.0: + resolution: + { + integrity: sha512-oUeWlIg0pMz8YM5pu0uqakM+cCyYyXkHBxx9di9OUELu9X9+AYrNGGRLK9tNME3WfN3JGGqQIH3b4/E9LGek/w==, + } + engines: { node: '>=18' } + + qs@6.13.0: + resolution: + { + integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, + } + engines: { node: '>=0.6' } + queue-microtask@1.2.3: resolution: { @@ -8129,6 +9744,20 @@ packages: integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==, } + range-parser@1.2.1: + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: '>= 0.6' } + + raw-body@2.5.2: + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + } + engines: { node: '>= 0.8' } + react-chartjs-2@5.3.0: resolution: { @@ -8391,6 +10020,19 @@ packages: } engines: { node: '>=0.10.0' } + require-in-the-middle@7.5.2: + resolution: + { + integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==, + } + engines: { node: '>=8.6.0' } + + require-main-filename@2.0.0: + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, + } + resolve-from@4.0.0: resolution: { @@ -8426,6 +10068,13 @@ packages: } hasBin: true + restore-cursor@2.0.0: + resolution: + { + integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==, + } + engines: { node: '>=4' } + restore-cursor@5.1.0: resolution: { @@ -8476,6 +10125,14 @@ packages: integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, } + rimraf@2.7.1: + resolution: + { + integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, + } + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@3.0.2: resolution: { @@ -8484,6 +10141,13 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + robots-parser@3.0.1: + resolution: + { + integrity: sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==, + } + engines: { node: '>=10.0.0' } + rollup@4.45.0: resolution: { @@ -8504,12 +10168,26 @@ packages: integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==, } + run-async@2.4.1: + resolution: + { + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, + } + engines: { node: '>=0.12.0' } + run-parallel@1.2.0: resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, } + rxjs@6.6.7: + resolution: + { + integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, + } + engines: { npm: '>=2.0.0' } + safe-array-concat@1.1.3: resolution: { @@ -8517,6 +10195,12 @@ packages: } engines: { node: '>=0.4' } + safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + safe-push-apply@1.0.0: resolution: { @@ -8556,6 +10240,13 @@ packages: integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==, } + semver@5.7.2: + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } + hasBin: true + semver@6.3.1: resolution: { @@ -8571,6 +10262,26 @@ packages: engines: { node: '>=10' } hasBin: true + send@0.19.0: + resolution: + { + integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, + } + engines: { node: '>= 0.8.0' } + + serve-static@1.16.2: + resolution: + { + integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, + } + engines: { node: '>= 0.8.0' } + + set-blocking@2.0.0: + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } + set-function-length@1.2.2: resolution: { @@ -8592,6 +10303,12 @@ packages: } engines: { node: '>= 0.4' } + setprototypeof@1.2.0: + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } + sharp@0.33.5: resolution: { @@ -8626,6 +10343,12 @@ packages: integrity: sha512-ZcI4UT9n6N2pDuM2n3Jbk0sR4Swzq43nLPgS/4h0E3B/NrFn2HKElrDtceSf8Zx/OWYOo7G1SAtBLypCp+YXqg==, } + shimmer@1.2.1: + resolution: + { + integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==, + } + side-channel-list@1.0.0: resolution: { @@ -8660,6 +10383,12 @@ packages: integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, } + signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + signal-exit@4.1.0: resolution: { @@ -8673,6 +10402,13 @@ packages: integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, } + sirv@2.0.4: + resolution: + { + integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==, + } + engines: { node: '>= 10' } + sirv@3.0.1: resolution: { @@ -8722,6 +10458,13 @@ packages: } engines: { node: '>=18' } + smart-buffer@4.2.0: + resolution: + { + integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, + } + engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } + smol-toml@1.4.1: resolution: { @@ -8735,6 +10478,20 @@ packages: integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, } + socks-proxy-agent@8.0.5: + resolution: + { + integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==, + } + engines: { node: '>= 14' } + + socks@2.8.7: + resolution: + { + integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==, + } + engines: { node: '>= 10.0.0', npm: '>= 3.0.0' } + source-map-js@1.2.1: resolution: { @@ -8768,6 +10525,13 @@ packages: integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, } + speedline-core@1.4.3: + resolution: + { + integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==, + } + engines: { node: '>=8.0' } + split2@4.2.0: resolution: { @@ -8775,6 +10539,12 @@ packages: } engines: { node: '>= 10.x' } + sprintf-js@1.0.3: + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } + stable-hash@0.0.5: resolution: { @@ -8787,6 +10557,13 @@ packages: integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, } + statuses@2.0.1: + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: '>= 0.8' } + std-env@3.9.0: resolution: { @@ -8813,6 +10590,12 @@ packages: } engines: { node: '>=10.0.0' } + streamx@2.22.1: + resolution: + { + integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==, + } + string-argv@0.3.2: resolution: { @@ -8820,6 +10603,13 @@ packages: } engines: { node: '>=0.6.19' } + string-width@2.1.1: + resolution: + { + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, + } + engines: { node: '>=4' } + string-width@4.2.3: resolution: { @@ -8888,6 +10678,20 @@ packages: integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, } + strip-ansi@4.0.0: + resolution: + { + integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, + } + engines: { node: '>=4' } + + strip-ansi@5.2.0: + resolution: + { + integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, + } + engines: { node: '>=6' } + strip-ansi@6.0.1: resolution: { @@ -8929,6 +10733,12 @@ packages: integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==, } + stubborn-fs@1.2.5: + resolution: + { + integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==, + } + style-search@0.1.0: resolution: { @@ -8998,6 +10808,13 @@ packages: engines: { node: '>=18.12.0' } hasBin: true + supports-color@5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: '>=4' } + supports-color@7.2.0: resolution: { @@ -9077,6 +10894,18 @@ packages: } engines: { node: '>=6' } + tar-fs@3.1.1: + resolution: + { + integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==, + } + + tar-stream@3.1.7: + resolution: + { + integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, + } + tar@7.4.3: resolution: { @@ -9099,6 +10928,12 @@ packages: } engines: { node: '>=18' } + text-decoder@1.2.3: + resolution: + { + integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==, + } + text-extensions@2.4.0: resolution: { @@ -9112,6 +10947,18 @@ packages: integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, } + third-party-web@0.26.7: + resolution: + { + integrity: sha512-buUzX4sXC4efFX6xg2bw6/eZsCUh8qQwSavC4D9HpONMFlRbcHhD8Je5qwYdCpViR6q0qla2wPP+t91a2vgolg==, + } + + third-party-web@0.27.0: + resolution: + { + integrity: sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==, + } + through@2.3.8: resolution: { @@ -9176,6 +11023,24 @@ packages: integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==, } + tldts-core@7.0.15: + resolution: + { + integrity: sha512-YBkp2VfS9VTRMPNL2PA6PMESmxV1JEVoAr5iBlZnB5JG3KUrWzNCB3yNNkRa2FZkqClaBgfNYCp8PgpYmpjkZw==, + } + + tldts-icann@6.1.86: + resolution: + { + integrity: sha512-NFxmRT2lAEMcCOBgeZ0NuM0zsK/xgmNajnY6n4S1mwAKocft2s2ise1O3nQxrH3c+uY6hgHUV9GGNVp7tUE4Sg==, + } + + tldts-icann@7.0.15: + resolution: + { + integrity: sha512-gyyBrx48kK2tbrGxmEIFcNtwYb1gNv8xYxPCW7tO4DUcF+pGLGh1k3RW10Qoo4+6pkv2II9jIkgFnvxlKq/EjA==, + } + tldts@6.1.86: resolution: { @@ -9183,6 +11048,20 @@ packages: } hasBin: true + tmp@0.0.33: + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: '>=0.6.0' } + + tmp@0.1.0: + resolution: + { + integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==, + } + engines: { node: '>=6' } + to-regex-range@5.0.1: resolution: { @@ -9190,6 +11069,13 @@ packages: } engines: { node: '>=8.0' } + toidentifier@1.0.1: + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: '>=0.6' } + totalist@3.0.1: resolution: { @@ -9217,6 +11103,13 @@ packages: } engines: { node: '>=18' } + tree-kill@1.2.2: + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } + hasBin: true + trim-lines@3.0.1: resolution: { @@ -9257,6 +11150,12 @@ packages: integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, } + tslib@1.14.1: + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } + tslib@2.8.1: resolution: { @@ -9339,6 +11238,13 @@ packages: } engines: { node: '>=16' } + type-is@1.6.18: + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: '>= 0.6' } + typed-array-buffer@1.0.3: resolution: { @@ -9367,6 +11273,18 @@ packages: } engines: { node: '>= 0.4' } + typed-query-selector@2.12.0: + resolution: + { + integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==, + } + + typedarray-to-buffer@3.1.5: + resolution: + { + integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, + } + typescript@5.8.3: resolution: { @@ -9471,6 +11389,13 @@ packages: integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==, } + unique-string@2.0.0: + resolution: + { + integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, + } + engines: { node: '>=8' } + unist-util-find-after@5.0.0: resolution: { @@ -9531,6 +11456,13 @@ packages: integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, } + unpipe@1.0.0: + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: '>= 0.8' } + unrs-resolver@1.11.1: resolution: { @@ -9622,11 +11554,32 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - util-deprecate@1.0.2: + util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } + + utils-merge@1.0.1: + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: '>= 0.4.0' } + + uuid@8.3.2: + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } + hasBin: true + + vary@1.1.2: resolution: { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, } + engines: { node: '>= 0.8' } vfile-location@5.0.3: resolution: @@ -9829,6 +11782,12 @@ packages: integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, } + webdriver-bidi-protocol@0.2.11: + resolution: + { + integrity: sha512-Y9E1/oi4XMxcR8AT0ZC4OvYntl34SPgwjmELH+owjBr0korAX4jKgZULBWILGCVGdVCQ0dodTToIETozhG8zvA==, + } + webidl-conversions@3.0.1: resolution: { @@ -9842,6 +11801,22 @@ packages: } engines: { node: '>=12' } + webpack-bundle-analyzer@4.10.1: + resolution: + { + integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==, + } + engines: { node: '>= 10.13.0' } + hasBin: true + + webpack-bundle-analyzer@4.10.2: + resolution: + { + integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==, + } + engines: { node: '>= 10.13.0' } + hasBin: true + whatwg-encoding@3.1.1: resolution: { @@ -9849,6 +11824,12 @@ packages: } engines: { node: '>=18' } + whatwg-fetch@3.6.20: + resolution: + { + integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==, + } + whatwg-mimetype@4.0.0: resolution: { @@ -9869,6 +11850,12 @@ packages: integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, } + when-exit@2.1.4: + resolution: + { + integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==, + } + which-boxed-primitive@1.1.1: resolution: { @@ -9890,6 +11877,12 @@ packages: } engines: { node: '>= 0.4' } + which-module@2.0.1: + resolution: + { + integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, + } + which-pm-runs@1.1.0: resolution: { @@ -9941,6 +11934,13 @@ packages: } engines: { node: '>=0.10.0' } + wrap-ansi@6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } + wrap-ansi@7.0.0: resolution: { @@ -9968,6 +11968,12 @@ packages: integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, } + write-file-atomic@3.0.3: + resolution: + { + integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, + } + write-file-atomic@5.0.1: resolution: { @@ -9975,6 +11981,21 @@ packages: } engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + ws@7.5.10: + resolution: + { + integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==, + } + engines: { node: '>=8.3.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.3: resolution: { @@ -9990,6 +12011,20 @@ packages: utf-8-validate: optional: true + xdg-basedir@4.0.0: + resolution: + { + integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==, + } + engines: { node: '>=8' } + + xdg-basedir@5.1.0: + resolution: + { + integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==, + } + engines: { node: '>=12' } + xml-name-validator@5.0.0: resolution: { @@ -10003,12 +12038,25 @@ packages: integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, } + xtend@4.0.2: + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: '>=0.4' } + xxhash-wasm@1.1.0: resolution: { integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==, } + y18n@4.0.3: + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, + } + y18n@5.0.8: resolution: { @@ -10037,6 +12085,19 @@ packages: engines: { node: '>= 14.6' } hasBin: true + yargs-parser@13.1.2: + resolution: + { + integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==, + } + + yargs-parser@18.1.3: + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, + } + engines: { node: '>=6' } + yargs-parser@21.1.1: resolution: { @@ -10044,6 +12105,13 @@ packages: } engines: { node: '>=12' } + yargs@15.4.1: + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, + } + engines: { node: '>=8' } + yargs@17.7.2: resolution: { @@ -10051,6 +12119,12 @@ packages: } engines: { node: '>=12' } + yauzl@2.10.0: + resolution: + { + integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, + } + yocto-queue@0.1.0: resolution: { @@ -11203,6 +13277,8 @@ snapshots: '@ctrl/tinycolor@4.1.0': {} + '@discoveryjs/json-ext@0.5.7': {} + '@dual-bundle/import-meta-resolve@4.1.0': {} '@emnapi/core@1.4.4': @@ -11430,6 +13506,32 @@ snapshots: dependencies: '@expressive-code/core': 0.41.3 + '@formatjs/ecma402-abstract@2.3.4': + dependencies: + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.1 + decimal.js: 10.6.0 + tslib: 2.8.1 + + '@formatjs/fast-memoize@2.2.7': + dependencies: + tslib: 2.8.1 + + '@formatjs/icu-messageformat-parser@2.11.2': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/icu-skeleton-parser': 1.8.14 + tslib: 2.8.1 + + '@formatjs/icu-skeleton-parser@1.8.14': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.6.1': + dependencies: + tslib: 2.8.1 + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -11649,6 +13751,46 @@ snapshots: '@kurkle/color@0.3.4': {} + '@lhci/cli@0.15.1': + dependencies: + '@lhci/utils': 0.15.1 + chrome-launcher: 0.13.4 + compression: 1.8.1 + debug: 4.4.1 + express: 4.21.2 + inquirer: 6.5.2 + isomorphic-fetch: 3.0.0 + lighthouse: 12.6.1 + lighthouse-logger: 1.2.0 + open: 7.4.2 + proxy-agent: 6.5.0 + tmp: 0.1.0 + uuid: 8.3.2 + yargs: 15.4.1 + yargs-parser: 13.1.2 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - encoding + - react-native-b4a + - supports-color + - utf-8-validate + + '@lhci/utils@0.15.1': + dependencies: + debug: 4.4.1 + isomorphic-fetch: 3.0.0 + js-yaml: 3.14.1 + lighthouse: 12.6.1 + tree-kill: 1.2.2 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - encoding + - react-native-b4a + - supports-color + - utf-8-validate + '@mdx-js/mdx@3.1.0(acorn@8.15.0)': dependencies: '@types/estree': 1.0.8 @@ -11686,6 +13828,13 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true + '@next/bundle-analyzer@15.5.3': + dependencies: + webpack-bundle-analyzer: 4.10.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@next/env@14.2.30': {} '@next/eslint-plugin-next@14.2.30': @@ -11733,6 +13882,248 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@opentelemetry/api-logs@0.57.2': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@types/connect': 3.4.38 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + forwarded-parse: 2.1.2 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@types/mysql': 2.15.26 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.6 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.37.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + semver: 7.7.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/redis-common@0.36.2': {} + + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/semantic-conventions@1.28.0': {} + + '@opentelemetry/semantic-conventions@1.37.0': {} + + '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@oslojs/encoding@1.1.0': {} '@pagefind/darwin-arm64@1.3.0': @@ -11752,11 +14143,42 @@ snapshots: '@pagefind/windows-x64@1.3.0': optional: true + '@paulirish/trace_engine@0.0.53': + dependencies: + legacy-javascript: 0.0.1 + third-party-web: 0.27.0 + + '@paulirish/trace_engine@0.0.59': + dependencies: + legacy-javascript: 0.0.1 + third-party-web: 0.27.0 + '@pkgjs/parseargs@0.11.0': optional: true '@polka/url@1.0.0-next.29': {} + '@prisma/instrumentation@6.11.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@puppeteer/browsers@2.10.10': + dependencies: + debug: 4.4.3 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.5.0 + semver: 7.7.2 + tar-fs: 3.1.1 + yargs: 17.7.2 + transitivePeerDependencies: + - bare-buffer + - react-native-b4a + - supports-color + '@rolldown/pluginutils@1.0.0-beta.19': {} '@rollup/pluginutils@5.2.0(rollup@4.45.0)': @@ -11827,9 +14249,105 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.45.0': optional: true - '@rtsao/scc@1.1.0': {} + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.12.0': {} + + '@sentry-internal/tracing@7.120.4': + dependencies: + '@sentry/core': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/core@7.120.4': + dependencies: + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/core@9.46.0': {} + + '@sentry/integrations@7.120.4': + dependencies: + '@sentry/core': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + localforage: 1.10.0 + + '@sentry/node-core@9.46.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@sentry/core': 9.46.0 + '@sentry/opentelemetry': 9.46.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0) + import-in-the-middle: 1.14.2 + + '@sentry/node@7.120.4': + dependencies: + '@sentry-internal/tracing': 7.120.4 + '@sentry/core': 7.120.4 + '@sentry/integrations': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/node@9.46.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@prisma/instrumentation': 6.11.1(@opentelemetry/api@1.9.0) + '@sentry/core': 9.46.0 + '@sentry/node-core': 9.46.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0) + '@sentry/opentelemetry': 9.46.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0) + import-in-the-middle: 1.14.2 + minimatch: 9.0.5 + transitivePeerDependencies: + - supports-color + + '@sentry/opentelemetry@9.46.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@sentry/core': 9.46.0 - '@rushstack/eslint-patch@1.12.0': {} + '@sentry/types@7.120.4': {} + + '@sentry/utils@7.120.4': + dependencies: + '@sentry/types': 7.120.4 '@shikijs/core@3.7.0': dependencies: @@ -12124,6 +14642,8 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 + '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trysound/sax@0.2.0': {} '@tybys/wasm-util@0.10.0': @@ -12158,6 +14678,10 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.19.7 + '@types/conventional-commits-parser@5.0.1': dependencies: '@types/node': 20.19.7 @@ -12196,6 +14720,10 @@ snapshots: '@types/ms@2.1.0': {} + '@types/mysql@2.15.26': + dependencies: + '@types/node': 20.19.7 + '@types/nlcst@2.0.3': dependencies: '@types/unist': 3.0.3 @@ -12210,6 +14738,16 @@ snapshots: dependencies: undici-types: 7.8.0 + '@types/pg-pool@2.0.6': + dependencies: + '@types/pg': 8.6.1 + + '@types/pg@8.6.1': + dependencies: + '@types/node': 20.19.7 + pg-protocol: 1.10.3 + pg-types: 2.2.0 + '@types/prop-types@15.7.15': {} '@types/react-dom@18.3.7(@types/react@18.3.23)': @@ -12225,10 +14763,21 @@ snapshots: dependencies: '@types/node': 20.19.7 + '@types/shimmer@1.2.0': {} + + '@types/tedious@4.0.14': + dependencies: + '@types/node': 20.19.7 + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 20.19.7 + optional: true + '@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -12505,10 +15054,23 @@ snapshots: jsonparse: 1.3.1 through: 2.3.8 + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + acorn@8.15.0: {} agent-base@7.1.4: {} @@ -12531,14 +15093,26 @@ snapshots: dependencies: string-width: 4.2.3 + ansi-colors@4.1.3: {} + + ansi-escapes@3.2.0: {} + ansi-escapes@7.0.0: dependencies: environment: 1.1.0 + ansi-regex@3.0.1: {} + + ansi-regex@4.1.1: {} + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -12554,6 +15128,10 @@ snapshots: arg@5.0.2: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-query@5.1.3: @@ -12571,6 +15149,8 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 + array-flatten@1.1.1: {} + array-ify@1.0.0: {} array-includes@3.1.9: @@ -12643,6 +15223,10 @@ snapshots: ast-types-flow@0.0.8: {} + ast-types@0.13.4: + dependencies: + tslib: 2.8.1 + ast-v8-to-istanbul@0.3.5: dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -12762,6 +15346,11 @@ snapshots: asynckit@0.4.0: {} + atomically@2.0.3: + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.4 + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.25.1 @@ -12788,6 +15377,8 @@ snapshots: axobject-query@4.1.0: {} + b4a@1.7.1: {} + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): dependencies: '@babel/compat-data': 7.28.0 @@ -12818,10 +15409,48 @@ snapshots: balanced-match@2.0.0: {} + bare-events@2.7.0: + optional: true + + bare-fs@4.4.4: + dependencies: + bare-events: 2.7.0 + bare-path: 3.0.0 + bare-stream: 2.7.0(bare-events@2.7.0) + bare-url: 2.2.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - react-native-b4a + optional: true + + bare-os@3.6.2: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.6.2 + optional: true + + bare-stream@2.7.0(bare-events@2.7.0): + dependencies: + streamx: 2.22.1 + optionalDependencies: + bare-events: 2.7.0 + transitivePeerDependencies: + - react-native-b4a + optional: true + + bare-url@2.2.2: + dependencies: + bare-path: 3.0.0 + optional: true + base-64@1.0.0: {} base64-js@1.5.1: {} + basic-ftp@5.0.5: {} + bcp-47-match@2.0.3: {} bcp-47@2.1.0: @@ -12832,6 +15461,23 @@ snapshots: blob-to-buffer@1.2.9: {} + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + boolbase@1.0.0: {} boxen@8.0.1: @@ -12876,6 +15522,8 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.3) + buffer-crc32@0.2.13: {} + buffer-from@1.1.2: optional: true @@ -12888,6 +15536,8 @@ snapshots: dependencies: streamsearch: 1.1.0 + bytes@3.1.2: {} + cac@6.7.14: {} cacheable@1.10.1: @@ -12914,6 +15564,8 @@ snapshots: callsites@3.1.0: {} + camelcase@5.3.1: {} + camelcase@6.3.0: {} camelcase@8.0.0: {} @@ -12932,6 +15584,12 @@ snapshots: loupe: 3.1.4 pathval: 2.0.1 + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -12947,6 +15605,8 @@ snapshots: character-reference-invalid@2.0.1: {} + chardet@0.7.0: {} + chart.js@4.5.0: dependencies: '@kurkle/color': 0.3.4 @@ -12959,14 +15619,46 @@ snapshots: chownr@3.0.0: {} + chrome-launcher@0.13.4: + dependencies: + '@types/node': 20.19.7 + escape-string-regexp: 1.0.5 + is-wsl: 2.2.0 + lighthouse-logger: 1.2.0 + mkdirp: 0.5.6 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + + chrome-launcher@1.2.0: + dependencies: + '@types/node': 20.19.7 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.2 + transitivePeerDependencies: + - supports-color + + chromium-bidi@8.0.0(devtools-protocol@0.0.1495869): + dependencies: + devtools-protocol: 0.0.1495869 + mitt: 3.0.1 + zod: 3.25.76 + ci-info@4.3.0: {} + cjs-module-lexer@1.4.3: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 cli-boxes@3.0.0: {} + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -12976,8 +15668,16 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 + cli-width@2.2.1: {} + client-only@0.0.1: {} + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -12990,10 +15690,16 @@ snapshots: collapse-white-space@2.1.0: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + color-convert@2.0.1: dependencies: color-name: 1.1.4 + color-name@1.1.3: {} + color-name@1.1.4: {} color-string@1.9.1: @@ -13030,10 +15736,48 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compressible@2.0.18: + dependencies: + mime-db: 1.52.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + concat-map@0.0.1: {} + configstore@5.0.1: + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.11 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + + configstore@7.1.0: + dependencies: + atomically: 2.0.3 + dot-prop: 9.0.0 + graceful-fs: 4.2.11 + xdg-basedir: 5.1.0 + confusing-browser-globals@1.0.11: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 @@ -13053,6 +15797,10 @@ snapshots: cookie-es@1.2.2: {} + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + cookie@1.0.2: {} core-js-compat@3.45.1: @@ -13100,6 +15848,10 @@ snapshots: dependencies: uncrypto: 0.1.3 + crypto-random-string@2.0.0: {} + + csp_evaluator@1.1.5: {} + css-functions-list@3.2.3: {} css-select@5.2.2: @@ -13148,6 +15900,8 @@ snapshots: dargs@8.1.0: {} + data-uri-to-buffer@6.0.2: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -13171,6 +15925,12 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + debounce@1.2.1: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + debug@3.2.7: dependencies: ms: 2.1.3 @@ -13179,6 +15939,12 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.2.0: @@ -13218,6 +15984,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -13226,12 +15994,22 @@ snapshots: defu@6.1.4: {} + degenerator@5.0.1: + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + delayed-stream@1.0.0: {} + depd@2.0.0: {} + dequal@2.0.3: {} destr@2.0.5: {} + destroy@1.2.0: {} + detect-libc@2.0.4: {} deterministic-object-hash@2.0.2: @@ -13244,6 +16022,12 @@ snapshots: dependencies: dequal: 2.0.3 + devtools-protocol@0.0.1467305: {} + + devtools-protocol@0.0.1495869: {} + + devtools-protocol@0.0.1507524: {} + dfa@1.2.0: {} diff@5.2.0: {} @@ -13295,6 +16079,10 @@ snapshots: dependencies: is-obj: 2.0.0 + dot-prop@9.0.0: + dependencies: + type-fest: 4.41.0 + dset@3.1.4: {} dunder-proto@1.0.1: @@ -13303,8 +16091,12 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer@0.1.2: {} + eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + electron-to-chromium@1.5.182: {} electron-to-chromium@1.5.211: {} @@ -13315,11 +16107,24 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 tapable: 2.2.2 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + entities@4.5.0: {} entities@6.0.1: {} @@ -13518,10 +16323,22 @@ snapshots: escalade@3.2.0: {} + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.36.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1): dependencies: confusing-browser-globals: 1.0.11 @@ -13751,6 +16568,8 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -13798,10 +16617,48 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + eventemitter3@5.0.1: {} expect-type@1.2.2: {} + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + expressive-code@0.41.3: dependencies: '@expressive-code/core': 0.41.3 @@ -13811,8 +16668,26 @@ snapshots: extend@3.0.2: {} + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extract-zip@2.0.1: + dependencies: + debug: 4.4.3 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13833,12 +16708,20 @@ snapshots: dependencies: reusify: 1.1.0 + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 fflate@0.8.2: {} + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + file-entry-cache@10.1.1: dependencies: flat-cache: 6.1.11 @@ -13851,6 +16734,23 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -13914,8 +16814,14 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + forwarded-parse@2.1.2: {} + + forwarded@0.2.0: {} + fraction.js@4.3.7: {} + fresh@0.5.2: {} + fs.realpath@1.0.0: {} fsevents@2.3.2: @@ -13961,6 +16867,10 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stream@5.2.0: + dependencies: + pump: 3.0.3 + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -13971,6 +16881,14 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-uri@6.0.5: + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + git-raw-commits@4.0.0: dependencies: dargs: 8.1.0 @@ -14055,6 +16973,10 @@ snapshots: graphemer@1.4.0: {} + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + h3@1.15.3: dependencies: cookie-es: 1.2.2 @@ -14069,6 +16991,8 @@ snapshots: has-bigints@1.1.0: {} + has-flag@3.0.0: {} + has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -14296,6 +17220,16 @@ snapshots: http-cache-semantics@4.2.0: {} + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-link-header@1.1.3: {} + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -14316,6 +17250,10 @@ snapshots: dependencies: '@babel/runtime': 7.27.6 + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -14326,11 +17264,22 @@ snapshots: ignore@7.0.5: {} + image-ssim@0.2.0: {} + + immediate@3.0.6: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + import-in-the-middle@1.14.2: + dependencies: + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.4 + import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} @@ -14350,6 +17299,22 @@ snapshots: inline-style-parser@0.2.4: {} + inquirer@6.5.2: + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + install@0.13.0: {} internal-slot@1.1.0: @@ -14358,6 +17323,17 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + intl-messageformat@10.7.16: + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/icu-messageformat-parser': 2.11.2 + tslib: 2.8.1 + + ip-address@10.0.1: {} + + ipaddr.js@1.9.1: {} + iron-webcrypto@1.2.1: {} is-alphabetical@2.0.1: {} @@ -14422,6 +17398,8 @@ snapshots: is-decimal@2.0.1: {} + is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -14430,6 +17408,8 @@ snapshots: dependencies: call-bound: 1.0.4 + is-fullwidth-code-point@2.0.0: {} + is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@4.0.0: {} @@ -14508,6 +17488,8 @@ snapshots: dependencies: which-typed-array: 1.1.19 + is-typedarray@1.0.0: {} + is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -14519,6 +17501,10 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -14527,6 +17513,13 @@ snapshots: isexe@2.0.0: {} + isomorphic-fetch@3.0.0: + dependencies: + node-fetch: 2.7.0 + whatwg-fetch: 3.6.20 + transitivePeerDependencies: + - encoding + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -14571,12 +17564,21 @@ snapshots: jiti@2.4.2: {} + jpeg-js@0.4.4: {} + js-cookie@3.0.5: {} + js-library-detector@6.7.0: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -14664,10 +17666,105 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 - levn@0.4.1: + legacy-javascript@0.0.1: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.1.1: + dependencies: + immediate: 3.0.6 + + lighthouse-logger@1.2.0: + dependencies: + debug: 2.6.9 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + lighthouse-logger@2.0.2: + dependencies: + debug: 4.4.1 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + lighthouse-stack-packs@1.12.2: {} + + lighthouse@12.6.1: + dependencies: + '@paulirish/trace_engine': 0.0.53 + '@sentry/node': 7.120.4 + axe-core: 4.10.3 + chrome-launcher: 1.2.0 + configstore: 5.0.1 + csp_evaluator: 1.1.5 + devtools-protocol: 0.0.1467305 + enquirer: 2.4.1 + http-link-header: 1.1.3 + intl-messageformat: 10.7.16 + jpeg-js: 0.4.4 + js-library-detector: 6.7.0 + lighthouse-logger: 2.0.2 + lighthouse-stack-packs: 1.12.2 + lodash-es: 4.17.21 + lookup-closest-locale: 6.2.0 + metaviewport-parser: 0.3.0 + open: 8.4.2 + parse-cache-control: 1.0.1 + puppeteer-core: 24.22.0 + robots-parser: 3.0.1 + semver: 5.7.2 + speedline-core: 1.4.3 + third-party-web: 0.26.7 + tldts-icann: 6.1.86 + ws: 7.5.10 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - utf-8-validate + + lighthouse@12.8.2: dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + '@paulirish/trace_engine': 0.0.59 + '@sentry/node': 9.46.0 + axe-core: 4.10.3 + chrome-launcher: 1.2.0 + configstore: 7.1.0 + csp_evaluator: 1.1.5 + devtools-protocol: 0.0.1507524 + enquirer: 2.4.1 + http-link-header: 1.1.3 + intl-messageformat: 10.7.16 + jpeg-js: 0.4.4 + js-library-detector: 6.7.0 + lighthouse-logger: 2.0.2 + lighthouse-stack-packs: 1.12.2 + lodash-es: 4.17.21 + lookup-closest-locale: 6.2.0 + metaviewport-parser: 0.3.0 + open: 8.4.2 + parse-cache-control: 1.0.1 + puppeteer-core: 24.22.0 + robots-parser: 3.0.1 + speedline-core: 1.4.3 + third-party-web: 0.27.0 + tldts-icann: 7.0.15 + ws: 7.5.10 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - utf-8-validate lightningcss-darwin-arm64@1.30.1: optional: true @@ -14742,6 +17839,14 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 + localforage@1.10.0: + dependencies: + lie: 3.1.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -14750,6 +17855,8 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash-es@4.17.21: {} + lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -14772,6 +17879,8 @@ snapshots: lodash.upperfirst@4.3.1: {} + lodash@4.17.21: {} + log-update@6.1.0: dependencies: ansi-escapes: 7.0.0 @@ -14782,6 +17891,8 @@ snapshots: longest-streak@3.1.0: {} + lookup-closest-locale@6.2.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -14798,6 +17909,8 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@7.18.3: {} + lucide-react@0.525.0(react@18.3.1): dependencies: react: 18.3.1 @@ -14814,6 +17927,10 @@ snapshots: '@babel/types': 7.28.1 source-map-js: 1.2.1 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + make-dir@4.0.0: dependencies: semver: 7.7.2 @@ -14822,6 +17939,8 @@ snapshots: markdown-table@3.0.4: {} + marky@1.3.0: {} + math-intrinsics@1.1.0: {} mathml-tag-names@2.1.3: {} @@ -15015,12 +18134,20 @@ snapshots: mdn-data@2.12.2: {} + media-typer@0.3.0: {} + meow@12.1.1: {} meow@13.2.0: {} + merge-descriptors@1.0.3: {} + merge2@1.4.1: {} + metaviewport-parser@0.3.0: {} + + methods@1.1.2: {} + micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.2.0 @@ -15306,6 +18433,10 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@1.6.0: {} + + mimic-fn@1.2.0: {} + mimic-function@5.0.1: {} min-indent@1.0.1: {} @@ -15326,12 +18457,24 @@ snapshots: dependencies: minipass: 7.1.2 + mitt@3.0.1: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mkdirp@3.0.1: {} + module-details-from-path@1.0.4: {} + mrmime@2.0.1: {} + ms@2.0.0: {} + ms@2.1.3: {} + mute-stream@0.0.7: {} + nano-spawn@1.0.2: {} nanoid@3.3.11: {} @@ -15340,9 +18483,15 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + neotraverse@0.6.18: {} - next@14.2.30(@babel/core@7.28.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + netmask@2.0.2: {} + + next@14.2.30(@babel/core@7.28.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.30 '@swc/helpers': 0.5.5 @@ -15363,6 +18512,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.30 '@next/swc-win32-ia32-msvc': 14.2.30 '@next/swc-win32-x64-msvc': 14.2.30 + '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -15451,10 +18601,20 @@ snapshots: ohash@2.0.11: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + once@1.4.0: dependencies: wrappy: 1.0.2 + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + onetime@7.0.0: dependencies: mimic-function: 5.0.1 @@ -15467,6 +18627,19 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + opener@1.5.2: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -15476,12 +18649,18 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + os-tmpdir@1.0.2: {} + own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -15494,6 +18673,10 @@ snapshots: dependencies: yocto-queue: 1.2.1 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -15509,6 +18692,26 @@ snapshots: p-timeout@6.1.4: {} + p-try@2.2.0: {} + + pac-proxy-agent@7.2.0: + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.4 + debug: 4.4.1 + get-uri: 6.0.5 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + pac-resolver@7.0.1: + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + package-json-from-dist@1.0.1: {} package-manager-detector@1.3.0: {} @@ -15527,6 +18730,8 @@ snapshots: dependencies: callsites: 3.1.0 + parse-cache-control@1.0.1: {} + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -15557,6 +18762,8 @@ snapshots: dependencies: entities: 6.0.1 + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -15572,12 +18779,28 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-to-regexp@0.1.12: {} + path-type@4.0.0: {} pathe@2.0.3: {} pathval@2.0.1: {} + pend@1.2.0: {} + + pg-int8@1.0.1: {} + + pg-protocol@1.10.3: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -15633,6 +18856,16 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + prelude-ls@1.2.1: {} prettier@3.6.2: {} @@ -15645,6 +18878,8 @@ snapshots: prismjs@1.30.0: {} + progress@2.0.3: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -15660,14 +18895,66 @@ snapshots: property-information@7.1.0: {} + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-agent@6.5.0: + dependencies: + agent-base: 7.1.4 + debug: 4.4.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 7.18.3 + pac-proxy-agent: 7.2.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + proxy-from-env@1.1.0: {} + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + punycode@2.3.1: {} + puppeteer-core@24.22.0: + dependencies: + '@puppeteer/browsers': 2.10.10 + chromium-bidi: 8.0.0(devtools-protocol@0.0.1495869) + debug: 4.4.3 + devtools-protocol: 0.0.1495869 + typed-query-selector: 2.12.0 + webdriver-bidi-protocol: 0.2.11 + ws: 8.18.3 + transitivePeerDependencies: + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - utf-8-validate + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + queue-microtask@1.2.3: {} radix3@1.1.2: {} + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + react-chartjs-2@5.3.0(chart.js@4.5.0)(react@18.3.1): dependencies: chart.js: 4.5.0 @@ -15888,6 +19175,16 @@ snapshots: require-from-string@2.0.2: {} + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.1 + module-details-from-path: 1.0.4 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + require-main-filename@2.0.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -15906,6 +19203,11 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -15942,10 +19244,16 @@ snapshots: rfdc@1.4.1: {} + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + rimraf@3.0.2: dependencies: glob: 7.2.3 + robots-parser@3.0.1: {} + rollup@4.45.0: dependencies: '@types/estree': 1.0.8 @@ -15976,10 +19284,16 @@ snapshots: rrweb-cssom@0.8.0: {} + run-async@2.4.1: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -15988,6 +19302,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -16011,10 +19327,41 @@ snapshots: dependencies: loose-envify: 1.4.0 + semver@5.7.2: {} + semver@6.3.1: {} semver@7.7.2: {} + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + set-blocking@2.0.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -16037,6 +19384,8 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + setprototypeof@1.2.0: {} + sharp@0.33.5: dependencies: color: 4.2.3 @@ -16110,6 +19459,8 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shimmer@1.2.1: {} + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -16140,12 +19491,20 @@ snapshots: siginfo@2.0.0: {} + signal-exit@3.0.7: {} + signal-exit@4.1.0: {} simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + sirv@3.0.1: dependencies: '@polka/url': 1.0.0-next.29 @@ -16179,6 +19538,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + smart-buffer@4.2.0: {} + smol-toml@1.4.1: {} snake-case@3.0.4: @@ -16186,6 +19547,19 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.1 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.0.1 + smart-buffer: 4.2.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -16201,12 +19575,22 @@ snapshots: space-separated-tokens@2.0.2: {} + speedline-core@1.4.3: + dependencies: + '@types/node': 20.19.7 + image-ssim: 0.2.0 + jpeg-js: 0.4.4 + split2@4.2.0: {} + sprintf-js@1.0.3: {} + stable-hash@0.0.5: {} stackback@0.0.2: {} + statuses@2.0.1: {} + std-env@3.9.0: {} stop-iteration-iterator@1.1.0: @@ -16218,8 +19602,22 @@ snapshots: streamsearch@1.1.0: {} + streamx@2.22.1: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.7.0 + transitivePeerDependencies: + - react-native-b4a + string-argv@0.3.2: {} + string-width@2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -16293,6 +19691,14 @@ snapshots: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + strip-ansi@4.0.0: + dependencies: + ansi-regex: 3.0.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -16313,6 +19719,8 @@ snapshots: dependencies: js-tokens: 9.0.1 + stubborn-fs@1.2.5: {} + style-search@0.1.0: {} style-to-js@1.1.17: @@ -16388,6 +19796,10 @@ snapshots: - supports-color - typescript + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -16431,6 +19843,25 @@ snapshots: tapable@2.2.2: {} + tar-fs@3.1.1: + dependencies: + pump: 3.0.3 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 4.4.4 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-buffer + - react-native-b4a + + tar-stream@3.1.7: + dependencies: + b4a: 1.7.1 + fast-fifo: 1.3.2 + streamx: 2.22.1 + transitivePeerDependencies: + - react-native-b4a + tar@7.4.3: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -16454,10 +19885,20 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 + text-decoder@1.2.3: + dependencies: + b4a: 1.7.1 + transitivePeerDependencies: + - react-native-b4a + text-extensions@2.4.0: {} text-table@0.2.0: {} + third-party-web@0.26.7: {} + + third-party-web@0.27.0: {} + through@2.3.8: {} tiny-inflate@1.0.3: {} @@ -16481,14 +19922,34 @@ snapshots: tldts-core@6.1.86: {} + tldts-core@7.0.15: {} + + tldts-icann@6.1.86: + dependencies: + tldts-core: 6.1.86 + + tldts-icann@7.0.15: + dependencies: + tldts-core: 7.0.15 + tldts@6.1.86: dependencies: tldts-core: 6.1.86 + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.1.0: + dependencies: + rimraf: 2.7.1 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + totalist@3.0.1: {} tough-cookie@5.1.2: @@ -16501,6 +19962,8 @@ snapshots: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -16520,6 +19983,8 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@1.14.1: {} + tslib@2.8.1: {} turbo-darwin-64@2.5.4: @@ -16557,6 +20022,11 @@ snapshots: type-fest@4.41.0: {} + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -16590,6 +20060,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typed-query-selector@2.12.0: {} + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + typescript@5.8.3: {} ufo@1.6.1: {} @@ -16648,6 +20124,10 @@ snapshots: ofetch: 1.4.1 ohash: 2.0.11 + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -16694,6 +20174,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + unpipe@1.0.0: {} + unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.0 @@ -16752,6 +20234,12 @@ snapshots: util-deprecate@1.0.2: {} + utils-merge@1.0.1: {} + + uuid@8.3.2: {} + + vary@1.1.2: {} + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -16886,14 +20374,55 @@ snapshots: web-namespaces@2.0.1: {} + webdriver-bidi-protocol@0.2.11: {} + webidl-conversions@3.0.1: {} webidl-conversions@7.0.0: {} + webpack-bundle-analyzer@4.10.1: + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.15.0 + acorn-walk: 8.3.4 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + is-plain-object: 5.0.0 + opener: 1.5.2 + picocolors: 1.1.1 + sirv: 2.0.4 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + webpack-bundle-analyzer@4.10.2: + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.15.0 + acorn-walk: 8.3.4 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + opener: 1.5.2 + picocolors: 1.1.1 + sirv: 2.0.4 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} + whatwg-mimetype@4.0.0: {} whatwg-url@14.2.0: @@ -16906,6 +20435,8 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + when-exit@2.1.4: {} + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -16937,6 +20468,8 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 + which-module@2.0.1: {} + which-pm-runs@1.1.0: {} which-typed-array@1.1.19: @@ -16968,6 +20501,12 @@ snapshots: word-wrap@1.2.5: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -16988,19 +20527,36 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 + ws@7.5.10: {} + ws@8.18.3: {} + xdg-basedir@4.0.0: {} + + xdg-basedir@5.1.0: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} + xtend@4.0.2: {} + xxhash-wasm@1.1.0: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -17009,8 +20565,32 @@ snapshots: yaml@2.8.0: {} + yargs-parser@13.1.2: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -17021,6 +20601,11 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + yocto-queue@0.1.0: {} yocto-queue@1.2.1: {} diff --git a/turbo.json b/turbo.json index f43f2a64..3a85f51e 100644 --- a/turbo.json +++ b/turbo.json @@ -1,5 +1,6 @@ { "$schema": "https://turbo.build/schema.json", + "noUpdateNotifier": true, "globalDependencies": [], "tasks": { "dev": {