mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-09-26 01:12:43 -05:00
Compare commits
5 Commits
fix-move-t
...
fix-codeco
Author | SHA1 | Date | |
---|---|---|---|
![]() |
37409ee564 | ||
![]() |
8d53c9cd36 | ||
![]() |
f8189abd81 | ||
![]() |
f203a79dbf | ||
![]() |
84ff073695 |
34
.codecov.yml
Normal file
34
.codecov.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
codecov:
|
||||
require_ci_to_pass: true
|
||||
# https://docs.codecov.com/docs/components
|
||||
component_management:
|
||||
individual_components:
|
||||
- component_id: backend
|
||||
paths:
|
||||
- src/**
|
||||
- component_id: frontend
|
||||
paths:
|
||||
- src-ui/**
|
||||
# https://docs.codecov.com/docs/pull-request-comments
|
||||
comment:
|
||||
layout: "header, diff, components, flags, files"
|
||||
# https://docs.codecov.com/docs/javascript-bundle-analysis
|
||||
require_bundle_changes: true
|
||||
bundle_change_threshold: "50Kb"
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
# https://docs.codecov.com/docs/commit-status#threshold
|
||||
threshold: 1%
|
||||
patch:
|
||||
default:
|
||||
# For the changed lines only, target 100% covered, but
|
||||
# allow as low as 75%
|
||||
target: 100%
|
||||
threshold: 25%
|
||||
# https://docs.codecov.com/docs/javascript-bundle-analysis
|
||||
bundle_analysis:
|
||||
# Fail if the bundle size increases by more than 1MB
|
||||
warning_threshold: "1MB"
|
||||
status: true
|
497
.github/workflows/ci.yml
vendored
497
.github/workflows/ci.yml
vendored
@@ -179,15 +179,19 @@ jobs:
|
||||
--dev \
|
||||
--frozen \
|
||||
pytest
|
||||
- name: Upload backend coverage to Coveralls
|
||||
- name: Upload backend test results to Codecov
|
||||
if: always()
|
||||
uses: coverallsapp/github-action@v2
|
||||
uses: codecov/test-results-action@v1
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: coverage.xml
|
||||
format: cobertura
|
||||
flag-name: backend-python-${{ matrix.python-version }}
|
||||
parallel: true
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: backend-python-${{ matrix.python-version }}
|
||||
files: junit.xml
|
||||
- name: Upload backend coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: backend-python-${{ matrix.python-version }}
|
||||
files: coverage.xml
|
||||
- name: Stop containers
|
||||
if: always()
|
||||
run: |
|
||||
@@ -257,27 +261,19 @@ jobs:
|
||||
run: cd src-ui && pnpm run lint
|
||||
- name: Run Jest unit tests
|
||||
run: cd src-ui && pnpm run test --max-workers=2 --shard=${{ matrix.shard-index }}/${{ matrix.shard-count }}
|
||||
- name: Upload frontend coverage to Coveralls
|
||||
- name: Upload frontend test results to Codecov
|
||||
uses: codecov/test-results-action@v1
|
||||
if: always()
|
||||
uses: coverallsapp/github-action@v2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: src-ui/coverage/lcov.info
|
||||
format: lcov
|
||||
flag-name: frontend-node-${{ matrix.node-version }}-shard-${{ matrix.shard-index }}
|
||||
parallel: true
|
||||
coveralls-finish:
|
||||
name: Finalize Coveralls
|
||||
runs-on: ubuntu-24.04
|
||||
needs:
|
||||
- tests-backend
|
||||
- tests-frontend
|
||||
steps:
|
||||
- name: Mark Coveralls jobs complete
|
||||
uses: coverallsapp/github-action@v2
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: frontend-node-${{ matrix.node-version }}
|
||||
directory: src-ui/
|
||||
- name: Upload frontend coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
parallel-finished: true
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
flags: frontend-node-${{ matrix.node-version }}
|
||||
directory: src-ui/coverage/
|
||||
tests-frontend-e2e:
|
||||
name: "Frontend E2E Tests (Node ${{ matrix.node-version }} - ${{ matrix.shard-index }}/${{ matrix.shard-count }})"
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -326,6 +322,455 @@ jobs:
|
||||
run: cd src-ui && pnpm exec playwright install
|
||||
- name: Run Playwright e2e tests
|
||||
run: cd src-ui && pnpm exec playwright test --shard ${{ matrix.shard-index }}/${{ matrix.shard-count }}
|
||||
codecov-comment:
|
||||
name: "Codecov PR Comment"
|
||||
runs-on: ubuntu-24.04
|
||||
needs:
|
||||
- tests-backend
|
||||
- tests-frontend
|
||||
- tests-frontend-e2e
|
||||
if: github.event_name == 'pull_request'
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Gather pull request context
|
||||
id: pr
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const pr = context.payload.pull_request;
|
||||
if (!pr) {
|
||||
core.info('No associated pull request. Skipping.');
|
||||
core.setOutput('shouldRun', 'false');
|
||||
return;
|
||||
}
|
||||
|
||||
core.setOutput('shouldRun', 'true');
|
||||
core.setOutput('prNumber', pr.number.toString());
|
||||
core.setOutput('headSha', pr.head.sha);
|
||||
- name: Fetch Codecov coverage
|
||||
id: coverage
|
||||
if: steps.pr.outputs.shouldRun == 'true'
|
||||
uses: actions/github-script@v7
|
||||
env:
|
||||
COMMIT_SHA: ${{ steps.pr.outputs.headSha }}
|
||||
PR_NUMBER: ${{ steps.pr.outputs.prNumber }}
|
||||
with:
|
||||
script: |
|
||||
const commitSha = process.env.COMMIT_SHA;
|
||||
const prNumber = process.env.PR_NUMBER;
|
||||
const owner = context.repo.owner;
|
||||
const repo = context.repo.repo;
|
||||
const service = 'gh';
|
||||
const baseUrl = `https://api.codecov.io/api/v2/${service}/${owner}/repos/${repo}`;
|
||||
const commitUrl = `${baseUrl}/commits/${commitSha}`;
|
||||
const maxAttempts = 20;
|
||||
const waitMs = 15000;
|
||||
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||
|
||||
let data;
|
||||
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
||||
core.info(`Fetching Codecov report (attempt ${attempt}/${maxAttempts})`);
|
||||
let response;
|
||||
try {
|
||||
response = await fetch(commitUrl, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Accept: 'application/json',
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
core.warning(`Codecov fetch failed: ${error}. Waiting before retrying.`);
|
||||
await sleep(waitMs);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (response.status === 404) {
|
||||
core.info('Report not ready yet (404). Waiting before retrying.');
|
||||
await sleep(waitMs);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ([429, 500, 502, 503, 504].includes(response.status)) {
|
||||
const text = await response.text().catch(() => '');
|
||||
core.info(`Codecov API transient error ${response.status}: ${text}. Waiting before retrying.`);
|
||||
await sleep(waitMs);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text().catch(() => '');
|
||||
core.warning(`Codecov API returned ${response.status}: ${text}. Skipping comment.`);
|
||||
core.setOutput('shouldComment', 'false');
|
||||
return;
|
||||
}
|
||||
|
||||
data = await response.json().catch((error) => {
|
||||
core.warning(`Failed to parse Codecov response: ${error}.`);
|
||||
return undefined;
|
||||
});
|
||||
if (data && Object.keys(data).length > 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
core.info('Report payload empty. Waiting before retrying.');
|
||||
await sleep(waitMs);
|
||||
}
|
||||
|
||||
if (!data && prNumber) {
|
||||
core.info('Attempting to retrieve coverage from PR endpoint.');
|
||||
const prUrl = `${baseUrl}/pulls/${prNumber}`;
|
||||
let prResponse;
|
||||
try {
|
||||
prResponse = await fetch(prUrl, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Accept: 'application/json',
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
core.warning(`Codecov PR fetch failed: ${error}.`);
|
||||
}
|
||||
|
||||
if (prResponse) {
|
||||
if ([429, 500, 502, 503, 504].includes(prResponse.status)) {
|
||||
const text = await prResponse.text().catch(() => '');
|
||||
core.info(`Codecov PR endpoint transient error ${prResponse.status}: ${text}.`);
|
||||
} else if (!prResponse.ok) {
|
||||
const text = await prResponse.text().catch(() => '');
|
||||
core.warning(`Codecov PR endpoint returned ${prResponse.status}: ${text}.`);
|
||||
} else {
|
||||
const prData = await prResponse.json().catch((error) => {
|
||||
core.warning(`Failed to parse Codecov PR response: ${error}.`);
|
||||
return undefined;
|
||||
});
|
||||
|
||||
if (prData?.latest_report) {
|
||||
data = { report: prData.latest_report };
|
||||
} else if (prData?.head_totals) {
|
||||
const headTotals = prData.head_totals;
|
||||
const baseTotals = prData.base_totals;
|
||||
let compareTotals;
|
||||
if (baseTotals && headTotals) {
|
||||
const headCoverage = Number(headTotals.coverage);
|
||||
const baseCoverage = Number(baseTotals.coverage);
|
||||
if (Number.isFinite(headCoverage) && Number.isFinite(baseCoverage)) {
|
||||
compareTotals = {
|
||||
base_coverage: baseCoverage,
|
||||
coverage_change: headCoverage - baseCoverage,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
data = {
|
||||
report: {
|
||||
totals: headTotals,
|
||||
compare: compareTotals ? { totals: compareTotals } : undefined,
|
||||
totals_by_flag: [],
|
||||
},
|
||||
head_totals: headTotals,
|
||||
base_totals: baseTotals,
|
||||
};
|
||||
} else {
|
||||
data = prData;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
core.warning('Unable to retrieve Codecov report after multiple attempts.');
|
||||
core.setOutput('shouldComment', 'false');
|
||||
return;
|
||||
}
|
||||
|
||||
const toNumber = (value) => {
|
||||
if (value === null || value === undefined || value === '') {
|
||||
return undefined;
|
||||
}
|
||||
const num = Number(value);
|
||||
return Number.isFinite(num) ? num : undefined;
|
||||
};
|
||||
|
||||
const reportData = data.report || data;
|
||||
const totals = reportData.totals ?? data.head_totals ?? data.totals;
|
||||
if (!totals) {
|
||||
core.warning('Codecov response does not contain coverage totals.');
|
||||
core.setOutput('shouldComment', 'false');
|
||||
return;
|
||||
}
|
||||
|
||||
let compareTotals = reportData.compare?.totals ?? data.compare?.totals;
|
||||
if (!compareTotals && data.base_totals) {
|
||||
const baseCoverageValue = toNumber(data.base_totals.coverage);
|
||||
if (baseCoverageValue !== undefined) {
|
||||
const headCoverageValue = toNumber((data.head_totals ?? {}).coverage);
|
||||
compareTotals = {
|
||||
base_coverage: baseCoverageValue,
|
||||
coverage_change:
|
||||
headCoverageValue !== undefined ? headCoverageValue - baseCoverageValue : undefined,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const coverage = toNumber(totals.coverage);
|
||||
const baseCoverage = toNumber(compareTotals?.base_coverage ?? compareTotals?.base);
|
||||
let delta = toNumber(
|
||||
compareTotals?.coverage_change ??
|
||||
compareTotals?.coverage_diff ??
|
||||
totals.delta ??
|
||||
totals.diff ??
|
||||
totals.change,
|
||||
);
|
||||
|
||||
if (delta === undefined && coverage !== undefined && baseCoverage !== undefined) {
|
||||
delta = coverage - baseCoverage;
|
||||
}
|
||||
|
||||
const formatPercent = (value) => {
|
||||
if (value === undefined) return '—';
|
||||
return `${value.toFixed(2)}%`;
|
||||
};
|
||||
|
||||
const formatDelta = (value) => {
|
||||
if (value === undefined) return '—';
|
||||
const sign = value >= 0 ? '+' : '';
|
||||
return `${sign}${value.toFixed(2)}%`;
|
||||
};
|
||||
|
||||
const shortSha = commitSha.slice(0, 7);
|
||||
const reportBaseUrl = `https://app.codecov.io/gh/${owner}/${repo}`;
|
||||
const commitReportUrl = `${reportBaseUrl}/commit/${commitSha}?src=pr&el=comment`;
|
||||
const prReportUrl = prNumber
|
||||
? `${reportBaseUrl}/pull/${prNumber}?src=pr&el=comment`
|
||||
: commitReportUrl;
|
||||
|
||||
const findBaseCommitSha = () =>
|
||||
data?.report?.compare?.base_commitid ??
|
||||
data?.report?.compare?.base?.commitid ??
|
||||
data?.report?.base_commitid ??
|
||||
data?.compare?.base_commitid ??
|
||||
data?.compare?.base?.commitid ??
|
||||
data?.base_commitid ??
|
||||
data?.base?.commitid;
|
||||
|
||||
const baseCommitSha = findBaseCommitSha();
|
||||
const baseCommitUrl = baseCommitSha
|
||||
? `${reportBaseUrl}/commit/${baseCommitSha}?src=pr&el=comment`
|
||||
: undefined;
|
||||
const baseShortSha = baseCommitSha ? baseCommitSha.slice(0, 7) : undefined;
|
||||
|
||||
const lines = ['<!-- codecov-coverage-comment -->'];
|
||||
lines.push(`## [Codecov](${prReportUrl}) Report`);
|
||||
lines.push('');
|
||||
|
||||
if (coverage !== undefined) {
|
||||
lines.push(`:white_check_mark: Project coverage for \`${shortSha}\` is ${formatPercent(coverage)}.`);
|
||||
} else {
|
||||
lines.push(':warning: Coverage for the head commit is unavailable.');
|
||||
}
|
||||
|
||||
if (baseCoverage !== undefined) {
|
||||
const changeEmoji = delta === undefined ? ':grey_question:' : delta >= 0 ? ':white_check_mark:' : ':small_red_triangle_down:';
|
||||
const baseCoverageText = `Base${baseShortSha ? ` \`${baseShortSha}\`` : ''} ${formatPercent(baseCoverage)}`;
|
||||
const baseLink = baseCommitUrl ? `[${baseCoverageText}](${baseCommitUrl})` : baseCoverageText;
|
||||
const changeText =
|
||||
delta !== undefined
|
||||
? `${baseLink} (${formatDelta(delta)})`
|
||||
: `${baseLink} (change unknown)`;
|
||||
lines.push(`${changeEmoji} ${changeText}.`);
|
||||
}
|
||||
|
||||
lines.push(`:clipboard: [View full report on Codecov](${commitReportUrl}).`);
|
||||
|
||||
const normalizeTotals = (value) => {
|
||||
if (!value) return undefined;
|
||||
if (value.totals && typeof value.totals === 'object') return value.totals;
|
||||
return value;
|
||||
};
|
||||
|
||||
const headTotals = normalizeTotals(totals) ?? {};
|
||||
const baseTotals =
|
||||
normalizeTotals(data.base_totals) ??
|
||||
normalizeTotals(reportData.base_totals) ??
|
||||
normalizeTotals(reportData.compare?.base_totals) ??
|
||||
normalizeTotals(reportData.compare?.base);
|
||||
|
||||
const formatInteger = (value) => {
|
||||
if (value === undefined) return '—';
|
||||
return value.toLocaleString('en-US');
|
||||
};
|
||||
|
||||
const formatIntegerDelta = (value) => {
|
||||
if (value === undefined) return '—';
|
||||
const sign = value >= 0 ? '+' : '';
|
||||
return `${sign}${value.toLocaleString('en-US')}`;
|
||||
};
|
||||
|
||||
const getInteger = (value) => {
|
||||
const num = toNumber(value);
|
||||
return Number.isFinite(num) ? Math.round(num) : undefined;
|
||||
};
|
||||
|
||||
const metrics = [];
|
||||
metrics.push({
|
||||
label: 'Coverage',
|
||||
base: baseCoverage,
|
||||
head: coverage,
|
||||
diff: delta,
|
||||
format: formatPercent,
|
||||
formatDiff: formatDelta,
|
||||
});
|
||||
|
||||
const pushIntegerMetric = (label, headValueRaw, baseValueRaw) => {
|
||||
const headValue = getInteger(headValueRaw);
|
||||
const baseValue = getInteger(baseValueRaw);
|
||||
if (headValue === undefined && baseValue === undefined) {
|
||||
return;
|
||||
}
|
||||
const diff = headValue !== undefined && baseValue !== undefined ? headValue - baseValue : undefined;
|
||||
metrics.push({
|
||||
label,
|
||||
base: baseValue,
|
||||
head: headValue,
|
||||
diff,
|
||||
format: formatInteger,
|
||||
formatDiff: formatIntegerDelta,
|
||||
});
|
||||
};
|
||||
|
||||
pushIntegerMetric('Files', headTotals.files, baseTotals?.files);
|
||||
pushIntegerMetric('Lines', headTotals.lines, baseTotals?.lines);
|
||||
pushIntegerMetric('Branches', headTotals.branches, baseTotals?.branches);
|
||||
pushIntegerMetric('Hits', headTotals.hits, baseTotals?.hits);
|
||||
pushIntegerMetric('Misses', headTotals.misses, baseTotals?.misses);
|
||||
|
||||
const hasMetricData = metrics.some((metric) => metric.base !== undefined || metric.head !== undefined);
|
||||
if (hasMetricData) {
|
||||
lines.push('');
|
||||
lines.push('<details><summary>Coverage summary</summary>');
|
||||
lines.push('');
|
||||
lines.push('| Metric | Base | Head | Δ |');
|
||||
lines.push('| --- | --- | --- | --- |');
|
||||
for (const metric of metrics) {
|
||||
const baseValue = metric.base !== undefined ? metric.format(metric.base) : '—';
|
||||
const headValue = metric.head !== undefined ? metric.format(metric.head) : '—';
|
||||
const diffValue = metric.diff !== undefined ? metric.formatDiff(metric.diff) : '—';
|
||||
lines.push(`| ${metric.label} | ${baseValue} | ${headValue} | ${diffValue} |`);
|
||||
}
|
||||
lines.push('');
|
||||
lines.push('</details>');
|
||||
}
|
||||
|
||||
const normalizeEntries = (raw) => {
|
||||
if (!raw) return [];
|
||||
if (Array.isArray(raw)) return raw;
|
||||
if (typeof raw === 'object') {
|
||||
return Object.entries(raw).map(([name, totals]) => ({ name, ...(typeof totals === 'object' ? totals : { coverage: totals }) }));
|
||||
}
|
||||
return [];
|
||||
};
|
||||
|
||||
const buildTableRows = (entries) => {
|
||||
const rows = [];
|
||||
for (const entry of entries) {
|
||||
const label = entry.flag ?? entry.name ?? entry.component ?? entry.id;
|
||||
const entryTotals = entry.totals ?? entry;
|
||||
const entryCoverage = toNumber(entryTotals?.coverage);
|
||||
if (!label || entryCoverage === undefined) {
|
||||
continue;
|
||||
}
|
||||
const entryDelta = toNumber(
|
||||
entryTotals?.coverage_change ??
|
||||
entryTotals?.coverage_diff ??
|
||||
entryTotals?.delta ??
|
||||
entryTotals?.diff ??
|
||||
entryTotals?.change,
|
||||
);
|
||||
const coverageText = entryCoverage !== undefined ? `\`${formatPercent(entryCoverage)}\`` : '—';
|
||||
const deltaText = entryDelta !== undefined ? `\`${formatDelta(entryDelta)}\`` : '—';
|
||||
rows.push(`| ${label} | ${coverageText} | ${deltaText} |`);
|
||||
}
|
||||
return rows;
|
||||
};
|
||||
|
||||
const componentEntries = normalizeEntries(reportData.components ?? data.components);
|
||||
const flagEntries = normalizeEntries(reportData.totals_by_flag ?? data.totals_by_flag);
|
||||
|
||||
if (componentEntries.length) {
|
||||
const componentsLink = prNumber
|
||||
? `${reportBaseUrl}/pull/${prNumber}/components?src=pr&el=components`
|
||||
: `${commitReportUrl}`;
|
||||
const componentRows = buildTableRows(componentEntries);
|
||||
if (componentRows.length) {
|
||||
lines.push('');
|
||||
lines.push(`[Components report](${componentsLink})`);
|
||||
lines.push('');
|
||||
lines.push('| Component | Coverage | Δ |');
|
||||
lines.push('| --- | --- | --- |');
|
||||
lines.push(...componentRows);
|
||||
}
|
||||
}
|
||||
|
||||
if (flagEntries.length) {
|
||||
const flagsLink = prNumber
|
||||
? `${reportBaseUrl}/pull/${prNumber}/flags?src=pr&el=flags`
|
||||
: `${commitReportUrl}`;
|
||||
const flagRows = buildTableRows(flagEntries);
|
||||
if (flagRows.length) {
|
||||
lines.push('');
|
||||
lines.push(`[Flags report](${flagsLink})`);
|
||||
lines.push('');
|
||||
lines.push('| Flag | Coverage | Δ |');
|
||||
lines.push('| --- | --- | --- |');
|
||||
lines.push(...flagRows);
|
||||
}
|
||||
}
|
||||
|
||||
const commentBody = lines.join('\n');
|
||||
const shouldComment = coverage !== undefined;
|
||||
core.setOutput('shouldComment', shouldComment ? 'true' : 'false');
|
||||
if (shouldComment) {
|
||||
core.setOutput('commentBody', commentBody);
|
||||
}
|
||||
- name: Upsert coverage comment
|
||||
if: steps.pr.outputs.shouldRun == 'true' && steps.coverage.outputs.shouldComment == 'true'
|
||||
uses: actions/github-script@v7
|
||||
env:
|
||||
PR_NUMBER: ${{ steps.pr.outputs.prNumber }}
|
||||
COMMENT_BODY: ${{ steps.coverage.outputs.commentBody }}
|
||||
with:
|
||||
script: |
|
||||
const prNumber = Number(process.env.PR_NUMBER);
|
||||
const body = process.env.COMMENT_BODY;
|
||||
const marker = '<!-- codecov-coverage-comment -->';
|
||||
|
||||
const { data: comments } = await github.rest.issues.listComments({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: prNumber,
|
||||
per_page: 100,
|
||||
});
|
||||
|
||||
const existing = comments.find((comment) => comment.body?.includes(marker));
|
||||
if (existing) {
|
||||
core.info(`Updating existing coverage comment (id: ${existing.id}).`);
|
||||
await github.rest.issues.updateComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
comment_id: existing.id,
|
||||
body,
|
||||
});
|
||||
} else {
|
||||
core.info('Creating new coverage comment.');
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: prNumber,
|
||||
body,
|
||||
});
|
||||
}
|
||||
frontend-bundle-analysis:
|
||||
name: "Frontend Bundle Analysis"
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -355,6 +800,8 @@ jobs:
|
||||
- name: Re-link Angular cli
|
||||
run: cd src-ui && pnpm link @angular/cli
|
||||
- name: Build frontend and upload analysis
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
run: cd src-ui && pnpm run build --configuration=production
|
||||
build-docker-image:
|
||||
name: Build Docker image for ${{ github.ref_name }}
|
||||
|
@@ -55,8 +55,11 @@
|
||||
},
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
"builder": "@angular-builders/custom-webpack:browser",
|
||||
"options": {
|
||||
"customWebpackConfig": {
|
||||
"path": "./extra-webpack.config.ts"
|
||||
},
|
||||
"outputPath": "dist/paperless-ui",
|
||||
"main": "src/main.ts",
|
||||
"outputHashing": "none",
|
||||
@@ -132,7 +135,7 @@
|
||||
"defaultConfiguration": ""
|
||||
},
|
||||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
"builder": "@angular-builders/custom-webpack:dev-server",
|
||||
"options": {
|
||||
"buildTarget": "paperless-ui:build:en-US"
|
||||
},
|
||||
@@ -143,7 +146,7 @@
|
||||
}
|
||||
},
|
||||
"extract-i18n": {
|
||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||
"builder": "@angular-builders/custom-webpack:extract-i18n",
|
||||
"options": {
|
||||
"buildTarget": "paperless-ui:build"
|
||||
}
|
||||
|
24
src-ui/extra-webpack.config.ts
Normal file
24
src-ui/extra-webpack.config.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import {
|
||||
CustomWebpackBrowserSchema,
|
||||
TargetOptions,
|
||||
} from '@angular-builders/custom-webpack'
|
||||
import * as webpack from 'webpack'
|
||||
const { codecovWebpackPlugin } = require('@codecov/webpack-plugin')
|
||||
|
||||
export default (
|
||||
config: webpack.Configuration,
|
||||
options: CustomWebpackBrowserSchema,
|
||||
targetOptions: TargetOptions
|
||||
) => {
|
||||
if (config.plugins) {
|
||||
config.plugins.push(
|
||||
codecovWebpackPlugin({
|
||||
enableBundleAnalysis: process.env.CODECOV_TOKEN !== undefined,
|
||||
bundleName: 'paperless-ngx',
|
||||
uploadToken: process.env.CODECOV_TOKEN,
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
@@ -40,6 +40,7 @@
|
||||
"zone.js": "^0.15.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-builders/custom-webpack": "^20.0.0",
|
||||
"@angular-builders/jest": "^20.0.0",
|
||||
"@angular-devkit/core": "^20.2.2",
|
||||
"@angular-devkit/schematics": "^20.2.2",
|
||||
@@ -51,6 +52,7 @@
|
||||
"@angular/build": "^20.2.2",
|
||||
"@angular/cli": "~20.2.2",
|
||||
"@angular/compiler-cli": "~20.2.4",
|
||||
"@codecov/webpack-plugin": "^1.9.1",
|
||||
"@playwright/test": "^1.55.0",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^24.3.0",
|
||||
|
421
src-ui/pnpm-lock.yaml
generated
421
src-ui/pnpm-lock.yaml
generated
@@ -90,6 +90,9 @@ importers:
|
||||
specifier: ^0.15.1
|
||||
version: 0.15.1
|
||||
devDependencies:
|
||||
'@angular-builders/custom-webpack':
|
||||
specifier: ^20.0.0
|
||||
version: 20.0.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/localize@20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(jest-environment-jsdom@30.1.2(canvas@3.0.0))(jest@30.1.3(@types/node@24.3.0)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.8.3)))(jiti@1.21.7)(less@4.3.0)(postcss@8.5.3)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.3.0)(sass@1.90.0)(terser@5.39.1)(yaml@2.7.0))(yaml@2.7.0)
|
||||
'@angular-builders/jest':
|
||||
specifier: ^20.0.0
|
||||
version: 20.0.0(56c75f145b0896aaaed75da1af9e9b5c)
|
||||
@@ -123,6 +126,9 @@ importers:
|
||||
'@angular/compiler-cli':
|
||||
specifier: ~20.2.4
|
||||
version: 20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3)
|
||||
'@codecov/webpack-plugin':
|
||||
specifier: ^1.9.1
|
||||
version: 1.9.1(webpack@5.101.3)
|
||||
'@playwright/test':
|
||||
specifier: ^1.55.0
|
||||
version: 1.55.0
|
||||
@@ -174,6 +180,21 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
'@actions/core@1.11.1':
|
||||
resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==}
|
||||
|
||||
'@actions/exec@1.1.1':
|
||||
resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==}
|
||||
|
||||
'@actions/github@6.0.1':
|
||||
resolution: {integrity: sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==}
|
||||
|
||||
'@actions/http-client@2.2.3':
|
||||
resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==}
|
||||
|
||||
'@actions/io@1.1.3':
|
||||
resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==}
|
||||
|
||||
'@algolia/abtesting@1.1.0':
|
||||
resolution: {integrity: sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
@@ -238,6 +259,12 @@ packages:
|
||||
resolution: {integrity: sha512-bepZI1KdXUVhDGqHOudZQJwucSbZWxfWzM+EHFXUoExUO0u7XEuHTF5bhtQZ+YU+ZK2Ayl26QbI/26Yj72vcFQ==}
|
||||
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
||||
|
||||
'@angular-builders/custom-webpack@20.0.0':
|
||||
resolution: {integrity: sha512-aw7zXG5vhsYCPLR/eOThcyWLJZ9MEh49wYaj0LouBctJsAdR6Pgg3ksubrejLI5oiUWxM9Ywu4BGwmf3QaUYqg==}
|
||||
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
||||
peerDependencies:
|
||||
'@angular/compiler-cli': ^20.0.0
|
||||
|
||||
'@angular-builders/jest@20.0.0':
|
||||
resolution: {integrity: sha512-3rnobnIdErtjyM3yAAAOdod79lgbkf1QWMFHiRDHW4tw4f+DLFiM2HMFircCoO5WIe/ILEJE9GNxs/vvYa3gvw==}
|
||||
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
|
||||
@@ -568,6 +595,10 @@ packages:
|
||||
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/compat-data@7.27.7':
|
||||
resolution: {integrity: sha512-xgu/ySj2mTiUFmdE9yCMfBxLp4DHd5DwmbbD05YAuICfodYT3VvRxbrh81LGQ/8UpSdtMdfKMn3KouYDX59DGQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/compat-data@7.28.0':
|
||||
resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -1163,6 +1194,16 @@ packages:
|
||||
'@bcoe/v8-coverage@0.2.3':
|
||||
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
|
||||
|
||||
'@codecov/bundler-plugin-core@1.9.1':
|
||||
resolution: {integrity: sha512-dt3ic7gMswz4p/qdkYPVJwXlLiLsz55rBBn2I7mr0HTG8pCoLRqnANJIwo5WrqGBZgPyVSMPBqBra6VxLWfDyA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@codecov/webpack-plugin@1.9.1':
|
||||
resolution: {integrity: sha512-isyETXPJfhuG+UOteElc1X/IHpBG0dZNAa7loquA9N6lcu4szwNkwHvLdnMJ49kjVwcIpZBjUD2eZPhneBcDYQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
webpack: 5.x
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -1712,6 +1753,10 @@ packages:
|
||||
resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@fastify/busboy@2.1.1':
|
||||
resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@humanfs/core@0.19.1':
|
||||
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
|
||||
engines: {node: '>=18.18.0'}
|
||||
@@ -2052,6 +2097,9 @@ packages:
|
||||
'@jridgewell/source-map@0.3.11':
|
||||
resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
|
||||
|
||||
'@jridgewell/source-map@0.3.6':
|
||||
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.5':
|
||||
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
||||
|
||||
@@ -2389,6 +2437,54 @@ packages:
|
||||
resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==}
|
||||
engines: {node: ^18.17.0 || >=20.5.0}
|
||||
|
||||
'@octokit/auth-token@4.0.0':
|
||||
resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/core@5.2.1':
|
||||
resolution: {integrity: sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/endpoint@9.0.6':
|
||||
resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/graphql@7.1.1':
|
||||
resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/openapi-types@20.0.0':
|
||||
resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==}
|
||||
|
||||
'@octokit/openapi-types@24.2.0':
|
||||
resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==}
|
||||
|
||||
'@octokit/plugin-paginate-rest@9.2.2':
|
||||
resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '5'
|
||||
|
||||
'@octokit/plugin-rest-endpoint-methods@10.4.1':
|
||||
resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '5'
|
||||
|
||||
'@octokit/request-error@5.1.1':
|
||||
resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/request@8.4.1':
|
||||
resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/types@12.6.0':
|
||||
resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==}
|
||||
|
||||
'@octokit/types@13.10.0':
|
||||
resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==}
|
||||
|
||||
'@oxc-project/runtime@0.81.0':
|
||||
resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -3411,6 +3507,9 @@ packages:
|
||||
resolution: {integrity: sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
||||
before-after-hook@2.2.3:
|
||||
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
|
||||
|
||||
big.js@5.2.2:
|
||||
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
|
||||
|
||||
@@ -3815,6 +3914,9 @@ packages:
|
||||
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
deprecation@2.3.1:
|
||||
resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
|
||||
|
||||
destroy@1.2.0:
|
||||
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
||||
@@ -6384,6 +6486,10 @@ packages:
|
||||
tunnel-agent@0.6.0:
|
||||
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
||||
|
||||
tunnel@0.0.6:
|
||||
resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
|
||||
engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
|
||||
|
||||
type-check@0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
@@ -6419,6 +6525,10 @@ packages:
|
||||
undici-types@7.10.0:
|
||||
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
|
||||
|
||||
undici@5.29.0:
|
||||
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
||||
engines: {node: '>=14.0'}
|
||||
|
||||
unicode-canonical-property-names-ecmascript@2.0.1:
|
||||
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -6443,6 +6553,9 @@ packages:
|
||||
resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==}
|
||||
engines: {node: ^18.17.0 || >=20.5.0}
|
||||
|
||||
universal-user-agent@6.0.1:
|
||||
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
|
||||
|
||||
universalify@0.2.0:
|
||||
resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
|
||||
engines: {node: '>= 4.0.0'}
|
||||
@@ -6451,6 +6564,10 @@ packages:
|
||||
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
unplugin@1.16.1:
|
||||
resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
||||
unrs-resolver@1.11.1:
|
||||
resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
|
||||
|
||||
@@ -6651,6 +6768,9 @@ packages:
|
||||
html-webpack-plugin:
|
||||
optional: true
|
||||
|
||||
webpack-virtual-modules@0.6.2:
|
||||
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
|
||||
|
||||
webpack@5.101.3:
|
||||
resolution: {integrity: sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
@@ -6829,6 +6949,32 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@actions/core@1.11.1':
|
||||
dependencies:
|
||||
'@actions/exec': 1.1.1
|
||||
'@actions/http-client': 2.2.3
|
||||
|
||||
'@actions/exec@1.1.1':
|
||||
dependencies:
|
||||
'@actions/io': 1.1.3
|
||||
|
||||
'@actions/github@6.0.1':
|
||||
dependencies:
|
||||
'@actions/http-client': 2.2.3
|
||||
'@octokit/core': 5.2.1
|
||||
'@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.1)
|
||||
'@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.1)
|
||||
'@octokit/request': 8.4.1
|
||||
'@octokit/request-error': 5.1.1
|
||||
undici: 5.29.0
|
||||
|
||||
'@actions/http-client@2.2.3':
|
||||
dependencies:
|
||||
tunnel: 0.0.6
|
||||
undici: 5.29.0
|
||||
|
||||
'@actions/io@1.1.3': {}
|
||||
|
||||
'@algolia/abtesting@1.1.0':
|
||||
dependencies:
|
||||
'@algolia/client-common': 5.35.0
|
||||
@@ -6930,6 +7076,60 @@ snapshots:
|
||||
- chokidar
|
||||
- typescript
|
||||
|
||||
'@angular-builders/custom-webpack@20.0.0(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/localize@20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(jest-environment-jsdom@30.1.2(canvas@3.0.0))(jest@30.1.3(@types/node@24.3.0)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.8.3)))(jiti@1.21.7)(less@4.3.0)(postcss@8.5.3)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.3.0)(sass@1.90.0)(terser@5.39.1)(yaml@2.7.0))(yaml@2.7.0)':
|
||||
dependencies:
|
||||
'@angular-builders/common': 4.0.0(@types/node@24.3.0)(chokidar@4.0.3)(typescript@5.8.3)
|
||||
'@angular-devkit/architect': 0.2000.4(chokidar@4.0.3)
|
||||
'@angular-devkit/build-angular': 20.0.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/localize@20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(jest-environment-jsdom@30.1.2(canvas@3.0.0))(jest@30.1.3(@types/node@24.3.0)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.8.3)))(jiti@1.21.7)(typescript@5.8.3)(vite@7.1.2(@types/node@24.3.0)(jiti@1.21.7)(less@4.3.0)(sass@1.90.0)(terser@5.39.1)(yaml@2.7.0))(yaml@2.7.0)
|
||||
'@angular-devkit/core': 20.2.2(chokidar@4.0.3)
|
||||
'@angular/build': 20.2.2(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/localize@20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(less@4.3.0)(postcss@8.5.3)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(yaml@2.7.0)
|
||||
'@angular/compiler-cli': 20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3)
|
||||
lodash: 4.17.21
|
||||
webpack-merge: 6.0.1
|
||||
transitivePeerDependencies:
|
||||
- '@angular/compiler'
|
||||
- '@angular/core'
|
||||
- '@angular/localize'
|
||||
- '@angular/platform-browser'
|
||||
- '@angular/platform-server'
|
||||
- '@angular/service-worker'
|
||||
- '@angular/ssr'
|
||||
- '@rspack/core'
|
||||
- '@swc/core'
|
||||
- '@swc/wasm'
|
||||
- '@types/node'
|
||||
- '@web/test-runner'
|
||||
- browser-sync
|
||||
- bufferutil
|
||||
- chokidar
|
||||
- debug
|
||||
- html-webpack-plugin
|
||||
- jest
|
||||
- jest-environment-jsdom
|
||||
- jiti
|
||||
- karma
|
||||
- less
|
||||
- lightningcss
|
||||
- ng-packagr
|
||||
- node-sass
|
||||
- postcss
|
||||
- protractor
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- tailwindcss
|
||||
- terser
|
||||
- tslib
|
||||
- tsx
|
||||
- typescript
|
||||
- uglify-js
|
||||
- utf-8-validate
|
||||
- vite
|
||||
- vitest
|
||||
- webpack-cli
|
||||
- yaml
|
||||
|
||||
'@angular-builders/jest@20.0.0(56c75f145b0896aaaed75da1af9e9b5c)':
|
||||
dependencies:
|
||||
'@angular-builders/common': 4.0.0(@types/node@24.3.0)(chokidar@4.0.3)(typescript@5.8.3)
|
||||
@@ -6976,7 +7176,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@angular-devkit/architect': 0.2000.4(chokidar@4.0.3)
|
||||
'@angular-devkit/build-webpack': 0.2000.4(chokidar@4.0.3)(webpack-dev-server@5.2.1(webpack@5.99.8(esbuild@0.25.5)))(webpack@5.99.8(esbuild@0.25.5))
|
||||
'@angular-devkit/build-webpack': 0.2000.4(chokidar@4.0.3)(webpack-dev-server@5.2.1(webpack@5.101.3))(webpack@5.99.8(esbuild@0.25.5))
|
||||
'@angular-devkit/core': 20.0.4(chokidar@4.0.3)
|
||||
'@angular/build': 20.0.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4)(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/localize@20.2.4(@angular/compiler-cli@20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3))(@angular/compiler@20.2.4))(@angular/platform-browser@20.2.4(@angular/common@20.2.4(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.2.4(@angular/compiler@20.2.4)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(less@4.3.0)(postcss@8.5.3)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(yaml@2.7.0)
|
||||
'@angular/compiler-cli': 20.2.4(@angular/compiler@20.2.4)(typescript@5.8.3)
|
||||
@@ -7028,7 +7228,7 @@ snapshots:
|
||||
typescript: 5.8.3
|
||||
webpack: 5.99.8(esbuild@0.25.5)
|
||||
webpack-dev-middleware: 7.4.2(webpack@5.99.8(esbuild@0.25.5))
|
||||
webpack-dev-server: 5.2.1(webpack@5.101.3)
|
||||
webpack-dev-server: 5.2.1(webpack@5.99.8(esbuild@0.25.5))
|
||||
webpack-merge: 6.0.1
|
||||
webpack-subresource-integrity: 5.1.0(webpack@5.99.8(esbuild@0.25.5))
|
||||
optionalDependencies:
|
||||
@@ -7062,7 +7262,7 @@ snapshots:
|
||||
- webpack-cli
|
||||
- yaml
|
||||
|
||||
'@angular-devkit/build-webpack@0.2000.4(chokidar@4.0.3)(webpack-dev-server@5.2.1(webpack@5.99.8(esbuild@0.25.5)))(webpack@5.99.8(esbuild@0.25.5))':
|
||||
'@angular-devkit/build-webpack@0.2000.4(chokidar@4.0.3)(webpack-dev-server@5.2.1(webpack@5.101.3))(webpack@5.99.8(esbuild@0.25.5))':
|
||||
dependencies:
|
||||
'@angular-devkit/architect': 0.2000.4(chokidar@4.0.3)
|
||||
rxjs: 7.8.2
|
||||
@@ -7392,13 +7592,15 @@ snapshots:
|
||||
js-tokens: 4.0.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
'@babel/compat-data@7.27.7': {}
|
||||
|
||||
'@babel/compat-data@7.28.0': {}
|
||||
|
||||
'@babel/core@7.27.1':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.28.3
|
||||
'@babel/generator': 7.27.1
|
||||
'@babel/helper-compilation-targets': 7.27.2
|
||||
'@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.1)
|
||||
'@babel/helpers': 7.28.3
|
||||
@@ -7469,7 +7671,7 @@ snapshots:
|
||||
'@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)':
|
||||
dependencies:
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-annotate-as-pure': 7.27.3
|
||||
'@babel/helper-annotate-as-pure': 7.27.1
|
||||
'@babel/helper-member-expression-to-functions': 7.27.1
|
||||
'@babel/helper-optimise-call-expression': 7.27.1
|
||||
'@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1)
|
||||
@@ -7482,7 +7684,7 @@ snapshots:
|
||||
'@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.1)':
|
||||
dependencies:
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-annotate-as-pure': 7.27.3
|
||||
'@babel/helper-annotate-as-pure': 7.27.1
|
||||
regexpu-core: 6.2.0
|
||||
semver: 6.3.1
|
||||
|
||||
@@ -7540,7 +7742,7 @@ snapshots:
|
||||
'@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.1)':
|
||||
dependencies:
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-annotate-as-pure': 7.27.3
|
||||
'@babel/helper-annotate-as-pure': 7.27.1
|
||||
'@babel/helper-wrap-function': 7.27.1
|
||||
'@babel/traverse': 7.28.3
|
||||
transitivePeerDependencies:
|
||||
@@ -7976,7 +8178,7 @@ snapshots:
|
||||
'@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)':
|
||||
dependencies:
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-annotate-as-pure': 7.27.3
|
||||
'@babel/helper-annotate-as-pure': 7.27.1
|
||||
'@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1)
|
||||
'@babel/helper-plugin-utils': 7.27.1
|
||||
transitivePeerDependencies:
|
||||
@@ -8068,7 +8270,7 @@ snapshots:
|
||||
|
||||
'@babel/preset-env@7.27.2(@babel/core@7.27.1)':
|
||||
dependencies:
|
||||
'@babel/compat-data': 7.28.0
|
||||
'@babel/compat-data': 7.27.7
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-compilation-targets': 7.27.2
|
||||
'@babel/helper-plugin-utils': 7.27.1
|
||||
@@ -8175,6 +8377,21 @@ snapshots:
|
||||
|
||||
'@bcoe/v8-coverage@0.2.3': {}
|
||||
|
||||
'@codecov/bundler-plugin-core@1.9.1':
|
||||
dependencies:
|
||||
'@actions/core': 1.11.1
|
||||
'@actions/github': 6.0.1
|
||||
chalk: 4.1.2
|
||||
semver: 7.7.2
|
||||
unplugin: 1.16.1
|
||||
zod: 3.25.76
|
||||
|
||||
'@codecov/webpack-plugin@1.9.1(webpack@5.101.3)':
|
||||
dependencies:
|
||||
'@codecov/bundler-plugin-core': 1.9.1
|
||||
unplugin: 1.16.1
|
||||
webpack: 5.101.3
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.9
|
||||
@@ -8494,6 +8711,8 @@ snapshots:
|
||||
'@eslint/core': 0.15.2
|
||||
levn: 0.4.1
|
||||
|
||||
'@fastify/busboy@2.1.1': {}
|
||||
|
||||
'@humanfs/core@0.19.1': {}
|
||||
|
||||
'@humanfs/node@0.16.6':
|
||||
@@ -8943,6 +9162,11 @@ snapshots:
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.30
|
||||
|
||||
'@jridgewell/source-map@0.3.6':
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.30
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.5': {}
|
||||
|
||||
'@jridgewell/trace-mapping@0.3.30':
|
||||
@@ -9247,6 +9471,64 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@octokit/auth-token@4.0.0': {}
|
||||
|
||||
'@octokit/core@5.2.1':
|
||||
dependencies:
|
||||
'@octokit/auth-token': 4.0.0
|
||||
'@octokit/graphql': 7.1.1
|
||||
'@octokit/request': 8.4.1
|
||||
'@octokit/request-error': 5.1.1
|
||||
'@octokit/types': 13.10.0
|
||||
before-after-hook: 2.2.3
|
||||
universal-user-agent: 6.0.1
|
||||
|
||||
'@octokit/endpoint@9.0.6':
|
||||
dependencies:
|
||||
'@octokit/types': 13.10.0
|
||||
universal-user-agent: 6.0.1
|
||||
|
||||
'@octokit/graphql@7.1.1':
|
||||
dependencies:
|
||||
'@octokit/request': 8.4.1
|
||||
'@octokit/types': 13.10.0
|
||||
universal-user-agent: 6.0.1
|
||||
|
||||
'@octokit/openapi-types@20.0.0': {}
|
||||
|
||||
'@octokit/openapi-types@24.2.0': {}
|
||||
|
||||
'@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.1)':
|
||||
dependencies:
|
||||
'@octokit/core': 5.2.1
|
||||
'@octokit/types': 12.6.0
|
||||
|
||||
'@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.1)':
|
||||
dependencies:
|
||||
'@octokit/core': 5.2.1
|
||||
'@octokit/types': 12.6.0
|
||||
|
||||
'@octokit/request-error@5.1.1':
|
||||
dependencies:
|
||||
'@octokit/types': 13.10.0
|
||||
deprecation: 2.3.1
|
||||
once: 1.4.0
|
||||
|
||||
'@octokit/request@8.4.1':
|
||||
dependencies:
|
||||
'@octokit/endpoint': 9.0.6
|
||||
'@octokit/request-error': 5.1.1
|
||||
'@octokit/types': 13.10.0
|
||||
universal-user-agent: 6.0.1
|
||||
|
||||
'@octokit/types@12.6.0':
|
||||
dependencies:
|
||||
'@octokit/openapi-types': 20.0.0
|
||||
|
||||
'@octokit/types@13.10.0':
|
||||
dependencies:
|
||||
'@octokit/openapi-types': 24.2.0
|
||||
|
||||
'@oxc-project/runtime@0.81.0': {}
|
||||
|
||||
'@oxc-project/types@0.81.0': {}
|
||||
@@ -10162,7 +10444,7 @@ snapshots:
|
||||
|
||||
babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.1):
|
||||
dependencies:
|
||||
'@babel/compat-data': 7.28.0
|
||||
'@babel/compat-data': 7.27.7
|
||||
'@babel/core': 7.27.1
|
||||
'@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1)
|
||||
semver: 6.3.1
|
||||
@@ -10224,7 +10506,7 @@ snapshots:
|
||||
domhandler: 5.0.3
|
||||
htmlparser2: 10.0.0
|
||||
picocolors: 1.1.1
|
||||
postcss: 8.5.6
|
||||
postcss: 8.5.3
|
||||
postcss-media-query-parser: 0.2.3
|
||||
|
||||
beasties@0.3.5:
|
||||
@@ -10238,6 +10520,8 @@ snapshots:
|
||||
postcss: 8.5.6
|
||||
postcss-media-query-parser: 0.2.3
|
||||
|
||||
before-after-hook@2.2.3: {}
|
||||
|
||||
big.js@5.2.2: {}
|
||||
|
||||
binary-extensions@2.3.0: {}
|
||||
@@ -10549,12 +10833,12 @@ snapshots:
|
||||
|
||||
css-loader@7.1.2(webpack@5.99.8(esbuild@0.25.5)):
|
||||
dependencies:
|
||||
icss-utils: 5.1.0(postcss@8.5.6)
|
||||
postcss: 8.5.6
|
||||
postcss-modules-extract-imports: 3.1.0(postcss@8.5.6)
|
||||
postcss-modules-local-by-default: 4.2.0(postcss@8.5.6)
|
||||
postcss-modules-scope: 3.2.1(postcss@8.5.6)
|
||||
postcss-modules-values: 4.0.0(postcss@8.5.6)
|
||||
icss-utils: 5.1.0(postcss@8.5.3)
|
||||
postcss: 8.5.3
|
||||
postcss-modules-extract-imports: 3.1.0(postcss@8.5.3)
|
||||
postcss-modules-local-by-default: 4.2.0(postcss@8.5.3)
|
||||
postcss-modules-scope: 3.2.1(postcss@8.5.3)
|
||||
postcss-modules-values: 4.0.0(postcss@8.5.3)
|
||||
postcss-value-parser: 4.2.0
|
||||
semver: 7.7.2
|
||||
optionalDependencies:
|
||||
@@ -10650,6 +10934,8 @@ snapshots:
|
||||
|
||||
depd@2.0.0: {}
|
||||
|
||||
deprecation@2.3.1: {}
|
||||
|
||||
destroy@1.2.0: {}
|
||||
|
||||
detect-libc@1.0.3:
|
||||
@@ -11102,6 +11388,10 @@ snapshots:
|
||||
dependencies:
|
||||
bser: 2.1.1
|
||||
|
||||
fdir@6.5.0(picomatch@4.0.2):
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.2
|
||||
|
||||
fdir@6.5.0(picomatch@4.0.3):
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.3
|
||||
@@ -11410,9 +11700,9 @@ snapshots:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
|
||||
icss-utils@5.1.0(postcss@8.5.6):
|
||||
icss-utils@5.1.0(postcss@8.5.3):
|
||||
dependencies:
|
||||
postcss: 8.5.6
|
||||
postcss: 8.5.3
|
||||
|
||||
ieee754@1.2.1:
|
||||
optional: true
|
||||
@@ -12896,26 +13186,26 @@ snapshots:
|
||||
|
||||
postcss-media-query-parser@0.2.3: {}
|
||||
|
||||
postcss-modules-extract-imports@3.1.0(postcss@8.5.6):
|
||||
postcss-modules-extract-imports@3.1.0(postcss@8.5.3):
|
||||
dependencies:
|
||||
postcss: 8.5.6
|
||||
postcss: 8.5.3
|
||||
|
||||
postcss-modules-local-by-default@4.2.0(postcss@8.5.6):
|
||||
postcss-modules-local-by-default@4.2.0(postcss@8.5.3):
|
||||
dependencies:
|
||||
icss-utils: 5.1.0(postcss@8.5.6)
|
||||
postcss: 8.5.6
|
||||
icss-utils: 5.1.0(postcss@8.5.3)
|
||||
postcss: 8.5.3
|
||||
postcss-selector-parser: 7.1.0
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-modules-scope@3.2.1(postcss@8.5.6):
|
||||
postcss-modules-scope@3.2.1(postcss@8.5.3):
|
||||
dependencies:
|
||||
postcss: 8.5.6
|
||||
postcss: 8.5.3
|
||||
postcss-selector-parser: 7.1.0
|
||||
|
||||
postcss-modules-values@4.0.0(postcss@8.5.6):
|
||||
postcss-modules-values@4.0.0(postcss@8.5.3):
|
||||
dependencies:
|
||||
icss-utils: 5.1.0(postcss@8.5.6)
|
||||
postcss: 8.5.6
|
||||
icss-utils: 5.1.0(postcss@8.5.3)
|
||||
postcss: 8.5.3
|
||||
|
||||
postcss-selector-parser@7.1.0:
|
||||
dependencies:
|
||||
@@ -13110,7 +13400,7 @@ snapshots:
|
||||
adjust-sourcemap-loader: 4.0.0
|
||||
convert-source-map: 1.9.0
|
||||
loader-utils: 2.0.4
|
||||
postcss: 8.5.6
|
||||
postcss: 8.5.3
|
||||
source-map: 0.6.1
|
||||
|
||||
resolve@1.22.10:
|
||||
@@ -13665,7 +13955,7 @@ snapshots:
|
||||
|
||||
terser@5.39.1:
|
||||
dependencies:
|
||||
'@jridgewell/source-map': 0.3.11
|
||||
'@jridgewell/source-map': 0.3.6
|
||||
acorn: 8.15.0
|
||||
commander: 2.20.3
|
||||
source-map-support: 0.5.21
|
||||
@@ -13691,8 +13981,8 @@ snapshots:
|
||||
|
||||
tinyglobby@0.2.13:
|
||||
dependencies:
|
||||
fdir: 6.5.0(picomatch@4.0.3)
|
||||
picomatch: 4.0.3
|
||||
fdir: 6.5.0(picomatch@4.0.2)
|
||||
picomatch: 4.0.2
|
||||
|
||||
tinyglobby@0.2.14:
|
||||
dependencies:
|
||||
@@ -13823,6 +14113,8 @@ snapshots:
|
||||
safe-buffer: 5.2.1
|
||||
optional: true
|
||||
|
||||
tunnel@0.0.6: {}
|
||||
|
||||
type-check@0.4.0:
|
||||
dependencies:
|
||||
prelude-ls: 1.2.1
|
||||
@@ -13850,6 +14142,10 @@ snapshots:
|
||||
|
||||
undici-types@7.10.0: {}
|
||||
|
||||
undici@5.29.0:
|
||||
dependencies:
|
||||
'@fastify/busboy': 2.1.1
|
||||
|
||||
unicode-canonical-property-names-ecmascript@2.0.1: {}
|
||||
|
||||
unicode-match-property-ecmascript@2.0.0:
|
||||
@@ -13869,10 +14165,17 @@ snapshots:
|
||||
dependencies:
|
||||
imurmurhash: 0.1.4
|
||||
|
||||
universal-user-agent@6.0.1: {}
|
||||
|
||||
universalify@0.2.0: {}
|
||||
|
||||
unpipe@1.0.0: {}
|
||||
|
||||
unplugin@1.16.1:
|
||||
dependencies:
|
||||
acorn: 8.15.0
|
||||
webpack-virtual-modules: 0.6.2
|
||||
|
||||
unrs-resolver@1.11.1:
|
||||
dependencies:
|
||||
napi-postinstall: 0.3.2
|
||||
@@ -13943,12 +14246,12 @@ snapshots:
|
||||
|
||||
vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.3.0)(sass@1.88.0)(terser@5.39.1)(yaml@2.7.0):
|
||||
dependencies:
|
||||
esbuild: 0.25.9
|
||||
fdir: 6.5.0(picomatch@4.0.3)
|
||||
picomatch: 4.0.3
|
||||
postcss: 8.5.6
|
||||
rollup: 4.50.0
|
||||
tinyglobby: 0.2.14
|
||||
esbuild: 0.25.5
|
||||
fdir: 6.5.0(picomatch@4.0.2)
|
||||
picomatch: 4.0.2
|
||||
postcss: 8.5.3
|
||||
rollup: 4.40.2
|
||||
tinyglobby: 0.2.13
|
||||
optionalDependencies:
|
||||
'@types/node': 24.3.0
|
||||
fsevents: 2.3.3
|
||||
@@ -14066,6 +14369,44 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
webpack-dev-server@5.2.1(webpack@5.99.8(esbuild@0.25.5)):
|
||||
dependencies:
|
||||
'@types/bonjour': 3.5.13
|
||||
'@types/connect-history-api-fallback': 1.5.4
|
||||
'@types/express': 4.17.23
|
||||
'@types/express-serve-static-core': 4.19.6
|
||||
'@types/serve-index': 1.9.4
|
||||
'@types/serve-static': 1.15.8
|
||||
'@types/sockjs': 0.3.36
|
||||
'@types/ws': 8.18.1
|
||||
ansi-html-community: 0.0.8
|
||||
bonjour-service: 1.3.0
|
||||
chokidar: 3.6.0
|
||||
colorette: 2.0.20
|
||||
compression: 1.8.0
|
||||
connect-history-api-fallback: 2.0.0
|
||||
express: 4.21.2
|
||||
graceful-fs: 4.2.11
|
||||
http-proxy-middleware: 2.0.9(@types/express@4.17.23)
|
||||
ipaddr.js: 2.2.0
|
||||
launch-editor: 2.10.0
|
||||
open: 10.1.2
|
||||
p-retry: 6.2.1
|
||||
schema-utils: 4.3.2
|
||||
selfsigned: 2.4.1
|
||||
serve-index: 1.9.1
|
||||
sockjs: 0.3.24
|
||||
spdy: 4.0.2
|
||||
webpack-dev-middleware: 7.4.2(webpack@5.99.8(esbuild@0.25.5))
|
||||
ws: 8.18.3
|
||||
optionalDependencies:
|
||||
webpack: 5.99.8(esbuild@0.25.5)
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- debug
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
webpack-merge@6.0.1:
|
||||
dependencies:
|
||||
clone-deep: 4.0.1
|
||||
@@ -14079,6 +14420,8 @@ snapshots:
|
||||
typed-assert: 1.0.9
|
||||
webpack: 5.99.8(esbuild@0.25.5)
|
||||
|
||||
webpack-virtual-modules@0.6.2: {}
|
||||
|
||||
webpack@5.101.3:
|
||||
dependencies:
|
||||
'@types/eslint-scope': 3.7.7
|
||||
|
Reference in New Issue
Block a user