Files
task-stream/package.json
Josep Piguillem 341241a52f feat(api): REST API with OpenAPI for other apps, behind Pireon OAuth
A REST adapter next to GraphQL (presenters/http) that calls the same
application services, so validation, permissions and domain errors are the
same: projects (members, board, stats, activity), issues (search, workflow,
assignee, release, links, comments, history), comments, releases and users.
Projects and issues can be addressed by id or key (WEB, WEB-12).

- Swagger UI at /api/docs, document at /api/docs-json and apps/api/openapi.json
  (rewritten by `nx serve api`, like schema.gql) for client generation.
- Every route but health/auth/webhook needs a Pireon token: the document
  declares Pireon OAuth2 (authorization code + PKCE, password) through the
  /api/auth/token proxy, and a bearer scheme for apps with their own client.
- configureApp() shares main.ts setup with the e2e, which now also covers REST.
- SWAGGER_ENABLED / OPENAPI_FILE config; docs 03/05 and library READMEs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:26:47 +02:00

113 lines
3.3 KiB
JSON

{
"name": "@task-stream/source",
"version": "0.0.0",
"license": "MIT",
"scripts": {},
"private": true,
"dependencies": {
"@angular/animations": "~22.1.0",
"@angular/cdk": "~22.1.0",
"@angular/common": "~22.1.0",
"@angular/compiler": "~22.1.0",
"@angular/core": "~22.1.0",
"@angular/forms": "~22.1.0",
"@angular/material": "~22.1.0",
"@angular/platform-browser": "~22.1.0",
"@angular/router": "~22.1.0",
"@apollo/client": "^4.3.1",
"@apollo/server": "^5.5.1",
"@as-integrations/express5": "^1.1.2",
"@graphql-typed-document-node/core": "^3.2.0",
"@nestjs/apollo": "^13.4.5",
"@nestjs/common": "^11.0.0",
"@nestjs/config": "^4.0.4",
"@nestjs/core": "^11.0.0",
"@nestjs/cqrs": "^11.0.3",
"@nestjs/graphql": "^13.4.5",
"@nestjs/mongoose": "^11.0.4",
"@nestjs/platform-express": "^11.0.0",
"@nestjs/swagger": "^11.4.7",
"@nestjs/typeorm": "^11.0.3",
"@ngrx/operators": "^22.0.1",
"@ngrx/signals": "^22.0.1",
"@ngx-translate/core": "^18.0.0",
"@ngx-translate/http-loader": "^18.0.0",
"@pi/ui": "^0.0.2",
"apollo-angular": "^14.2.0",
"chart.js": "^4.5.1",
"class-transformer": "^0.5.1",
"class-validator": "^0.15.1",
"graphql": "^16.14.2",
"graphql-redis-subscriptions": "^2.7.0",
"graphql-ws": "^6.3.0",
"ioredis": "^5.11.1",
"joi": "^18.2.9",
"mongoose": "^8.24.4",
"pg": "^8.23.1",
"reflect-metadata": "^0.2.0",
"rxjs": "^7.8.0",
"tslib": "^2.8.1",
"typeorm": "^0.3.31",
"ws": "^8.22.0"
},
"devDependencies": {
"@analogjs/vite-plugin-angular": "~2.6.0",
"@analogjs/vitest-angular": "~2.6.0",
"@angular-devkit/core": "~22.1.0",
"@angular-devkit/schematics": "~22.1.0",
"@angular/build": "~22.1.0",
"@angular/cli": "~22.1.0",
"@angular/compiler-cli": "~22.1.0",
"@angular/language-service": "~22.1.0",
"@eslint/js": "^9.8.0",
"@graphql-codegen/cli": "^7.4.3",
"@graphql-codegen/typed-document-node": "^7.1.1",
"@graphql-codegen/typescript": "^6.1.0",
"@graphql-codegen/typescript-operations": "^6.1.9",
"@nestjs/schematics": "^11.0.0",
"@nestjs/testing": "^11.0.0",
"@nx/angular": "^23.2.1",
"@nx/eslint": "23.2.1",
"@nx/eslint-plugin": "23.2.1",
"@nx/jest": "23.2.1",
"@nx/js": "23.2.1",
"@nx/nest": "23.2.1",
"@nx/node": "23.2.1",
"@nx/vite": "23.2.1",
"@nx/vitest": "23.2.1",
"@nx/web": "23.2.1",
"@nx/webpack": "23.2.1",
"@nx/workspace": "23.2.1",
"@oxc-project/runtime": "^0.115.0",
"@schematics/angular": "~22.1.0",
"@swc/helpers": "~0.5.18",
"@types/jest": "~30.0.0",
"@types/node": "^22.0.0",
"@types/ws": "^8.18.2",
"@typescript-eslint/utils": "^8.58.0",
"@vitest/coverage-v8": "~4.1.0",
"@vitest/ui": "~4.1.0",
"angular-eslint": "^22.1.0",
"eslint": "^9.8.0",
"eslint-config-prettier": "^10.0.0",
"jest": "~30.3.0",
"jest-environment-node": "~30.3.0",
"jest-util": "~30.3.0",
"jsdom": "^27.1.0",
"nx": "23.2.1",
"prettier": "~3.6.2",
"ts-jest": "^29.4.7",
"ts-node": "10.9.1",
"typescript": "~6.0.3",
"typescript-eslint": "^8.58.0",
"vite": "^8.0.0",
"vitest": "4.1.11",
"webpack": "^5.101.3",
"webpack-cli": "^7.0.0",
"webpack-dev-server": "^5.2.1"
},
"overrides": {
"vitest": "4.1.11"
}
}