{ "name": "apf-portal", "version": "0.0.0", "license": "MIT", "packageManager": "pnpm@10.33.4", "scripts": { "prepare": "husky", "ci:check": "pnpm exec nx affected -t format:check lint test build", "ci:audit": "pnpm audit --audit-level=moderate", "ci:commits": "pnpm exec commitlint --from ${COMMIT_LINT_FROM:-origin/main} --to HEAD --verbose", "ci:gzip-budgets": "node scripts/check-gzip-budgets.mjs", "ci:perf": "pnpm exec nx build portal-shell --configuration=production && pnpm ci:gzip-budgets && pnpm exec lhci autorun --config=./lighthouserc.js", "grpc:codegen": "grpc_tools_node_protoc --plugin=protoc-gen-ts_proto=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=apps/portal-bff/src/grpc/gen/apf-ai --ts_proto_opt=outputServices=grpc-js,esModuleInterop=true,forceLong=long,useOptionals=messages,exportCommonSymbols=false --proto_path=apps/portal-bff/src/grpc/proto/apf-ai apps/portal-bff/src/grpc/proto/apf-ai/*.proto", "grpc:sync": "node scripts/sync-ai-protos.mjs", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:preview": "vitepress preview docs" }, "private": true, "lint-staged": { "!(pnpm-lock).{ts,tsx,js,jsx,html,scss,css,md,json,yml,yaml}": [ "prettier --write" ] }, "pnpm": { "onlyBuiltDependencies": [ "@nestjs/core", "@parcel/watcher", "@prisma/client", "@prisma/engines", "@swc/core", "esbuild", "grpc-tools", "less", "lmdb", "msgpackr-extract", "nx", "prisma", "unrs-resolver" ], "overrides": { "axios@<1.15.2": ">=1.15.2", "@angular-devkit/core>ajv@<8.18.0": ">=8.18.0", "brace-expansion@<5.0.6": ">=5.0.6", "esbuild@<0.25.0": ">=0.25.0", "follow-redirects@<1.16.0": ">=1.16.0", "ip-address@<10.1.1": ">=10.1.1", "protobufjs@<8.0.2": ">=8.0.2", "tmp@<0.2.4": ">=0.2.4", "uuid@<11.1.1": ">=11.1.1", "vitepress>vite": ">=6.4.2 <7", "ws@>=8.0.0 <8.20.1": ">=8.20.1", "yaml@<2.8.3": ">=2.8.3", "@types/express": "^5.0.6" } }, "prisma": { "schema": "apps/portal-bff/prisma/schema.prisma" }, "devDependencies": { "@analogjs/vite-plugin-angular": "~2.5.0", "@analogjs/vitest-angular": "~2.5.0", "@angular-devkit/core": "~21.2.0", "@angular-devkit/schematics": "~21.2.0", "@angular/build": "~21.2.0", "@angular/cli": "~21.2.0", "@angular/compiler-cli": "~21.2.0", "@angular/language-service": "~21.2.0", "@braintree/sanitize-url": "^7.1.2", "@commitlint/cli": "^20.5.3", "@commitlint/config-conventional": "^20.5.3", "@eslint/js": "^9.8.0", "@lhci/cli": "^0.15.1", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.0.0", "@nx/angular": "^22.7.1", "@nx/devkit": "22.7.2", "@nx/eslint": "^22.7.1", "@nx/eslint-plugin": "22.7.2", "@nx/jest": "22.7.2", "@nx/js": "22.7.2", "@nx/nest": "^22.7.1", "@nx/node": "22.7.2", "@nx/playwright": "22.7.2", "@nx/vite": "^22.7.1", "@nx/vitest": "22.7.2", "@nx/web": "22.7.2", "@nx/webpack": "22.7.2", "@oxc-project/runtime": "^0.131.0", "@playwright/test": "^1.36.0", "@schematics/angular": "~21.2.0", "@swc-node/register": "1.11.1", "@swc/core": "1.15.40", "@swc/helpers": "0.5.21", "@tailwindcss/postcss": "^4.2.4", "@types/cookie-parser": "^1.4.10", "@types/d3": "^7.4.3", "@types/d3-scale-chromatic": "^3.1.0", "@types/d3-shape": "^3.1.8", "@types/express": "^5.0.6", "@types/express-session": "^1.19.0", "@types/jest": "^30.0.0", "@types/node": "24.12.4", "@typescript-eslint/utils": "^8.40.0", "@vitest/coverage-v8": "~4.1.0", "@vitest/ui": "~4.1.0", "angular-eslint": "^21.2.0", "cytoscape": "^3.33.3", "cytoscape-cose-bilkent": "^4.1.0", "dayjs": "^1.11.20", "debug": "^4.4.3", "eslint": "^9.8.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-playwright": "^1.6.2", "husky": "^9.1.7", "jest": "^30.0.2", "jest-environment-node": "^30.0.2", "jest-util": "^30.0.2", "jsdom": "^29.0.0", "jsonc-eslint-parser": "^2.1.0", "lint-staged": "^17.0.0", "mermaid": "^11.15.0", "nx": "22.7.2", "pino-pretty": "^13.1.3", "postcss": "^8.5.12", "prettier": "^3.8.1", "prisma": "^6.19.3", "tailwindcss": "^4.2.4", "ts-jest": "^29.4.0", "ts-node": "10.9.2", "ts-proto": "^2.7.0", "tslib": "^2.3.0", "typescript": "~5.9.2", "typescript-eslint": "^8.40.0", "vite": "^8.0.0", "vitepress": "^1.6.4", "vitepress-plugin-mermaid": "^2.0.17", "vitest": "^4.0.8", "webpack-cli": "^5.1.4" }, "dependencies": { "@angular/cdk": "~21.2.10", "@angular/common": "~21.2.0", "@angular/compiler": "~21.2.0", "@angular/core": "~21.2.0", "@angular/forms": "~21.2.0", "@angular/localize": "~21.2.12", "@angular/platform-browser": "~21.2.0", "@angular/router": "~21.2.0", "@azure/msal-node": "^5.2.1", "@bufbuild/protobuf": "^2.10.2", "@grpc/grpc-js": "^1.13.0", "@nestjs/common": "^11.0.0", "@nestjs/core": "^11.0.0", "@nestjs/platform-express": "^11.0.0", "@nestjs/swagger": "^11.4.3", "@observablehq/plot": "^0.6.17", "@opentelemetry/api": "^1.9.1", "@opentelemetry/exporter-trace-otlp-http": "^0.218.0", "@opentelemetry/exporter-trace-otlp-proto": "^0.218.0", "@opentelemetry/instrumentation": "^0.218.0", "@opentelemetry/instrumentation-document-load": "^0.63.0", "@opentelemetry/instrumentation-express": "^0.66.0", "@opentelemetry/instrumentation-fetch": "^0.218.0", "@opentelemetry/instrumentation-http": "^0.218.0", "@opentelemetry/instrumentation-ioredis": "^0.66.0", "@opentelemetry/instrumentation-nestjs-core": "^0.64.0", "@opentelemetry/instrumentation-pg": "^0.70.0", "@opentelemetry/instrumentation-pino": "^0.64.0", "@opentelemetry/instrumentation-user-interaction": "^0.62.0", "@opentelemetry/resources": "^2.7.1", "@opentelemetry/sdk-node": "^0.218.0", "@opentelemetry/sdk-trace-web": "^2.7.1", "@opentelemetry/semantic-conventions": "^1.40.0", "@prisma/client": "^6.19.3", "@scalar/nestjs-api-reference": "^1.1.14", "axios": "^1.6.0", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "connect-redis": "^9.0.0", "cookie-parser": "^1.4.7", "d3": "^7.9.0", "d3-scale-chromatic": "^3.1.0", "d3-shape": "^3.2.0", "express-rate-limit": "^8.5.1", "express-session": "^1.19.0", "helmet": "^8.1.0", "ioredis": "^5.10.1", "jose": "^6.2.3", "long": "^5.2.3", "lucide-angular": "^1.0.0", "nestjs-cls": "^6.2.0", "nestjs-pino": "^4.6.1", "nestjs-prisma": "^0.27.0", "pino": "^10.3.1", "pino-http": "^11.0.0", "reflect-metadata": "^0.2.0", "rxjs": "~7.8.0" }, "optionalDependencies": { "grpc-tools": "^1.13.0" } }