162 lines
14 KiB
JSON
162 lines
14 KiB
JSON
{
|
|
"name": "clean-architecture-frontend-template",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"packageManager": "pnpm@11.17.0",
|
|
"engines": {
|
|
"node": ">=24.11.0 <25.0.0",
|
|
"pnpm": ">=11.0.0 <12.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "node scripts/build-frontend.ts",
|
|
"build:release-candidate": "corepack pnpm build && corepack pnpm generate:supply-chain && corepack pnpm scan:security && corepack pnpm verify:release && node scripts/verify-supply-chain-artifacts.ts && node scripts/create-release-candidate.ts",
|
|
"preview": "vite preview",
|
|
"lint": "eslint src scripts tests recipes .storybook vite.config.ts vitest.config.ts playwright*.config.ts --max-warnings=0",
|
|
"check:architecture": "node scripts/check-architecture.ts",
|
|
"check:design-system": "node scripts/check-design-system.ts",
|
|
"check:design-system:fixture": "node scripts/check-design-system.ts --fixture",
|
|
"check:i18n": "node scripts/check-i18n.ts",
|
|
"check:i18n:fixture": "node scripts/check-i18n.ts --fixture",
|
|
"check:diagnostics": "node scripts/check-diagnostics.ts",
|
|
"check:diagnostics:fixture": "node scripts/check-diagnostics.ts --fixture",
|
|
"check:types": "corepack pnpm check:types:app && corepack pnpm check:types:node && corepack pnpm check:types:test && corepack pnpm check:types:recipes && corepack pnpm check:types:web-worker && corepack pnpm check:types:service-worker",
|
|
"check:types:app": "tsc --project tsconfig.app.json",
|
|
"check:types:node": "tsc --project tsconfig.node.json",
|
|
"check:types:test": "tsc --project tsconfig.test.json",
|
|
"check:types:recipes": "node scripts/check-optional-recipe-types.ts",
|
|
"check:types:fixture": "tsc --ignoreConfig --strict --noEmit --target ES2022 --module NodeNext --moduleResolution NodeNext tests/fixtures/typecheck/invalid-port-call.ts",
|
|
"check:types:fixture:ts-port": "tsc --ignoreConfig --strict --noEmit --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-port-implementation.ts",
|
|
"check:types:fixture:ts-result": "tsc --ignoreConfig --strict --noEmit --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-result-narrowing.ts",
|
|
"check:types:fixture:application-output": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-application-output.ts",
|
|
"check:types:fixture:application-input": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-application-input.ts",
|
|
"check:types:fixture:feature-input": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-feature-input.ts",
|
|
"check:types:fixture:failure-kind": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-failure-kind.ts",
|
|
"check:types:fixture:reference-operation": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-reference-operation.ts",
|
|
"check:types:fixture:async-overlay": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-async-overlay.ts",
|
|
"check:types:fixture:route-runtime": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-route-runtime.ts",
|
|
"check:types:fixture:page-action": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler --jsx react-jsx tests/fixtures/typecheck/invalid-page-action.tsx",
|
|
"check:types:fixture:icon-button": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler --jsx react-jsx tests/fixtures/typecheck/invalid-icon-button.tsx",
|
|
"check:types:fixture:i18n-key": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-message-key.ts",
|
|
"check:types:fixture:i18n-params": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-message-params.ts",
|
|
"check:types:fixture:diagnostics": "tsc --ignoreConfig --strict --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler tests/fixtures/typecheck/invalid-diagnostics-port.ts",
|
|
"test:runtime-schema": "vitest run tests/runtime-schema --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/runtime-schema.xml --passWithNoTests",
|
|
"test:unit": "vitest run tests/unit --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/unit.xml",
|
|
"test:component": "vitest run tests/component --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/component.xml",
|
|
"test:integration": "vitest run tests/integration --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/integration.xml",
|
|
"test:http-scenario-catalog": "vitest run tests/integration/http-scenario-catalog.test.ts --reporter=default --maxWorkers=1",
|
|
"test:http-scenario-evidence": "node scripts/run-http-scenario-evidence.ts",
|
|
"test:recipes": "vitest run tests/recipes --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/optional-recipes.xml --passWithNoTests",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:dev": "playwright test --config playwright.dev.config.ts",
|
|
"test:browser-capabilities": "playwright test --config playwright.capabilities.config.ts",
|
|
"verify:browser-capability-evidence": "node scripts/verify-browser-capability-evidence.ts",
|
|
"storybook": "storybook dev -p 6006",
|
|
"build:storybook": "storybook build -o artifacts/storybook/static",
|
|
"test:storybook": "playwright test --config playwright.storybook.config.ts",
|
|
"test:visual": "playwright test --config playwright.visual.config.ts",
|
|
"test:visual:update": "playwright test --config playwright.visual.config.ts --update-snapshots",
|
|
"check:test-evidence": "node scripts/check-test-evidence.ts",
|
|
"check:test-evidence:browser": "node scripts/check-test-evidence.ts --skip-scenario-executions",
|
|
"check:http-scenario-evidence": "node scripts/check-test-evidence.ts --scenario-only --artifact artifacts/quality/http-scenario-evidence.json",
|
|
"check:http-scenario-evidence:fixture": "node scripts/check-test-evidence.ts --scenario-only --source-root tests/fixtures/test-evidence/scenarios/source --policy tests/fixtures/test-evidence/scenarios/policy.json --catalog tests/fixtures/test-evidence/scenarios/catalog.json --receipt tests/fixtures/test-evidence/scenarios/receipt.json --artifact artifacts/quality/http-scenario-evidence-fixture.json",
|
|
"check:test-evidence:source": "node scripts/check-test-evidence.ts --source-only --artifact artifacts/quality/test-evidence-source.json",
|
|
"check:test-evidence:fixture": "node scripts/check-test-evidence.ts --source-root tests/fixtures/test-evidence/forbidden --artifact artifacts/quality/test-evidence-fixture.json",
|
|
"test:a11y": "playwright test --grep @a11y && node scripts/write-a11y-report.ts",
|
|
"review:a11y-manual": "node scripts/verify-a11y-manual.ts",
|
|
"test:sample-removal": "node scripts/test-sample-removal.ts",
|
|
"test:optional-recipe-removal": "node scripts/test-optional-recipe-removal.ts",
|
|
"test:browser-file-storage-removal": "node scripts/test-browser-file-storage-runtime-removal.ts",
|
|
"test:realtime-removal": "node scripts/test-realtime-runtime-removal.ts",
|
|
"test:reference-feature": "vitest run tests/features/reference-feature --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/reference-feature.xml --passWithNoTests",
|
|
"check:v8-coverage-counter-semantics": "node scripts/check-v8-coverage-counter-semantics.ts",
|
|
"test:coverage": "corepack pnpm check:v8-coverage-counter-semantics && vitest run tests/runtime-schema tests/unit tests/component tests/integration tests/features/reference-feature --coverage --maxWorkers=4 --reporter=default --reporter=junit --outputFile.junit=artifacts/tests/coverage.xml && node scripts/check-risk-coverage.ts",
|
|
"check:coverage:fixture": "node scripts/check-risk-coverage.ts --summary tests/fixtures/coverage/below-threshold.json --artifact artifacts/quality/risk-coverage-fixture.json",
|
|
"test:all": "corepack pnpm test:runtime-schema && corepack pnpm test:unit && corepack pnpm test:component && corepack pnpm test:integration && corepack pnpm test:reference-feature && corepack pnpm test:recipes",
|
|
"verify:lockfile": "corepack pnpm install --frozen-lockfile --ignore-scripts",
|
|
"check:frozen-lockfile:fixture": "node scripts/check-frozen-lockfile-fixture.ts",
|
|
"generate:artifact-schemas": "node scripts/generate-artifact-schemas.ts",
|
|
"check:artifact-schemas": "node scripts/generate-artifact-schemas.ts --check",
|
|
"generate:supply-chain": "node scripts/generate-supply-chain.ts",
|
|
"verify:local-evidence": "node scripts/verify-release-candidate.ts && node scripts/verify-release.ts && node scripts/verify-supply-chain-artifacts.ts && node scripts/verify-archived-local-evidence.ts && node scripts/verify-release-candidate.ts",
|
|
"verify:promotion": "node scripts/verify-exact-promotion-bundle.ts",
|
|
"update:dependency-baseline": "node scripts/update-dependency-baseline.ts",
|
|
"check:supply-chain:fixtures": "node scripts/check-supply-chain-fixtures.ts",
|
|
"check:supply-chain:provider-fixtures": "node scripts/check-supply-chain-provider-fixtures.ts",
|
|
"verify:reproducible-build": "node scripts/verify-reproducible-build.ts",
|
|
"scan:security": "node scripts/security-scan.ts",
|
|
"scan:security:fixture": "node scripts/security-scan.ts --policy tests/fixtures/security/secret-detection/forbidden-policy.json --artifact artifacts/security/scan-fixture.sarif",
|
|
"check:security:fixtures": "node scripts/check-security-fixtures.ts",
|
|
"check:browser-security": "node scripts/check-browser-security.ts",
|
|
"check:browser-file-storage-boundaries": "node scripts/check-browser-file-storage-boundaries.ts",
|
|
"check:realtime-boundaries": "node scripts/check-realtime-boundaries.ts",
|
|
"check:realtime-boundaries:fixture": "node scripts/check-realtime-boundary-fixtures.ts",
|
|
"check:optional-recipes": "node scripts/check-optional-recipes.ts --require-dist",
|
|
"check:optional-recipes:source": "node scripts/check-optional-recipes.ts",
|
|
"check:optional-recipe-fixtures": "node scripts/check-optional-recipe-fixtures.ts",
|
|
"check:registries": "node scripts/check-registries.ts",
|
|
"check:registries:structure": "node scripts/check-registries.ts --no-baseline",
|
|
"check:registries:compatibility-fixtures": "node scripts/check-registry-compatibility-fixtures.ts",
|
|
"check:registries:baseline-fixture": "node scripts/check-registries.ts --approval tests/fixtures/registry/compatibility/tampered-approval.json --artifact artifacts/quality/registry-baseline-fixture.json",
|
|
"check:registries:fixture": "node scripts/check-registries.ts --governance tests/fixtures/registry/forbidden/governance.json --artifact artifacts/quality/registry-fixture.json",
|
|
"check:routes:fixture": "node scripts/check-registries.ts --governance tests/fixtures/registry/routes/governance.json --artifact artifacts/quality/route-registry-fixture.json",
|
|
"verify:compatibility": "node scripts/check-compatibility.ts",
|
|
"verify:release": "node scripts/verify-release.ts",
|
|
"verify:hosting-headers": "node scripts/verify-hosting-headers.ts",
|
|
"check:bundle": "node scripts/generate-supply-chain.ts && node scripts/check-bundle.ts",
|
|
"test:performance": "node scripts/test-performance.ts",
|
|
"collect:web-vitals-evidence": "node scripts/collect-web-vitals-evidence.ts",
|
|
"drill:runbook": "node scripts/drill-runbook.ts",
|
|
"drill:runbooks": "corepack pnpm drill:runbook -- FE-RB-001 && corepack pnpm drill:runbook -- FE-RB-002 && corepack pnpm drill:runbook -- FE-RB-003 && corepack pnpm drill:runbook -- FE-RB-004 && corepack pnpm drill:runbook -- FE-RB-005",
|
|
"ci:gate": "node scripts/run-ci-gate.ts",
|
|
"generate:ci-workflow": "node scripts/generate-ci-workflow.ts",
|
|
"check:ci-workflow": "node scripts/generate-ci-workflow.ts --check",
|
|
"check:ci": "corepack pnpm check:artifact-schemas && node scripts/check-ci-contract.ts && corepack pnpm check:ci-workflow",
|
|
"verify:documentation": "node scripts/verify-documentation-readiness.ts",
|
|
"build:app-only": "vite build && node scripts/generate-build-manifest.ts",
|
|
"generate:contract-set": "node scripts/generate-contract-set.ts",
|
|
"check:types:web-worker": "tsc --project tsconfig.web-worker.json",
|
|
"check:types:service-worker": "tsc --project tsconfig.service-worker.json"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "5.101.4",
|
|
"lucide-react": "1.25.0",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"react-router-dom": "7.18.1",
|
|
"zod": "4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@axe-core/playwright": "4.12.1",
|
|
"@babel/core": "8.0.1",
|
|
"@babel/eslint-parser": "8.0.1",
|
|
"@babel/plugin-syntax-jsx": "8.0.1",
|
|
"@babel/plugin-syntax-typescript": "8.0.3",
|
|
"@eslint/js": "10.0.1",
|
|
"@playwright/test": "1.62.0",
|
|
"@storybook/addon-a11y": "10.5.4",
|
|
"@storybook/react-vite": "10.5.4",
|
|
"@tailwindcss/vite": "4.3.3",
|
|
"@testing-library/jest-dom": "7.0.0",
|
|
"@testing-library/react": "16.3.2",
|
|
"@testing-library/user-event": "14.6.1",
|
|
"@types/node": "24.13.3",
|
|
"@types/react": "19.2.8",
|
|
"@types/react-dom": "19.2.3",
|
|
"@vitejs/plugin-react": "6.0.4",
|
|
"@vitest/coverage-v8": "4.1.10",
|
|
"dependency-cruiser": "18.1.0",
|
|
"eslint": "10.8.0",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"globals": "17.7.0",
|
|
"jsdom": "29.1.1",
|
|
"msw": "2.15.0",
|
|
"storybook": "10.5.4",
|
|
"tailwindcss": "4.3.3",
|
|
"typescript": "7.0.2",
|
|
"vite": "8.1.5",
|
|
"vitest": "4.1.10"
|
|
}
|
|
}
|