├── .auto-changelog ├── .commitlintrc.json ├── .env.example ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .lintstagedrc.json ├── .npmrc ├── CHANGELOG.md ├── README.md ├── cspell.json ├── docker-compose.yml ├── eslint.config.js ├── jest.config.json ├── libs ├── api-gateway │ ├── api-gateway.module.ts │ ├── constants │ │ └── api-gateway.constant.ts │ ├── index.ts │ ├── redis │ │ ├── constants │ │ │ └── redis.constant.ts │ │ └── types │ │ │ └── redis-option.type.ts │ ├── restful │ │ ├── constants │ │ │ ├── default-server-name.constant.ts │ │ │ ├── special-headers.constant.ts │ │ │ └── whitelist.constant.ts │ │ ├── controllers │ │ │ ├── document.controller.ts │ │ │ └── proxy.controller.ts │ │ ├── decorators │ │ │ ├── proxy-middleware.decorator.ts │ │ │ ├── proxy-validation.decorator.ts │ │ │ └── ws-proxy-middleware.decorator.ts │ │ ├── helpers │ │ │ ├── object.helper.ts │ │ │ ├── provider.helper.ts │ │ │ ├── raw-body-buffer.helper.ts │ │ │ ├── string.helper.ts │ │ │ └── whitelist.helper.ts │ │ ├── interfaces │ │ │ ├── proxy-middleware.interface.ts │ │ │ ├── proxy-validation.interface.ts │ │ │ └── ws-proxy-middleware.interface.ts │ │ ├── models │ │ │ └── proxy-request.model.ts │ │ ├── restful.module.ts │ │ ├── services │ │ │ ├── open-api.service.ts │ │ │ ├── proxy.service.ts │ │ │ ├── request.service.ts │ │ │ └── ws-request.service.ts │ │ ├── tasks │ │ │ └── update-api-document.task.ts │ │ └── types │ │ │ ├── api-service.type.ts │ │ │ ├── document.type.ts │ │ │ ├── endpoint-detail.type.ts │ │ │ ├── restful-option.type.ts │ │ │ └── router-path.type.ts │ ├── throttlers │ │ ├── constants │ │ │ ├── lua-script.constant.ts │ │ │ └── rate-limit.constant.ts │ │ ├── exceptions │ │ │ └── too-many-request.exception.ts │ │ ├── services │ │ │ └── throttler.service.ts │ │ ├── throttler.module.ts │ │ └── types │ │ │ └── throttler-option.type.ts │ ├── types │ │ └── api-gateway-option.type.ts │ └── views │ │ └── document.hbs ├── client │ ├── decorators │ │ └── api-rate-limit.decorator.ts │ ├── helpers │ │ └── api-extension.ts │ ├── index.ts │ └── package.json └── opentelemetry │ ├── index.ts │ ├── package-lock.json │ ├── package.json │ ├── tracing.ts │ └── type.ts ├── nest-cli.json ├── package.json ├── prettier.config.js ├── scripts └── postbuild.sh ├── src ├── app.controller.ts ├── app.module.ts ├── config │ ├── env.config.ts │ └── redis.config.ts ├── main.ts └── middleware │ ├── authentication.middleware.ts │ ├── static-request.middleware.ts │ └── ws-authentication.middleware.ts ├── tsconfig.build.json └── tsconfig.json /.auto-changelog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.auto-changelog -------------------------------------------------------------------------------- /.commitlintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.commitlintrc.json -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.env.example -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.husky/commit-msg -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npm run lint-staged 5 | -------------------------------------------------------------------------------- /.lintstagedrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "src/**/*.{js,ts}": ["cspell .", "eslint --fix"] 3 | } 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/.npmrc -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/README.md -------------------------------------------------------------------------------- /cspell.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/cspell.json -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@hodfords/nestjs-eslint-config'); 2 | 3 | 4 | -------------------------------------------------------------------------------- /jest.config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/jest.config.json -------------------------------------------------------------------------------- /libs/api-gateway/api-gateway.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/api-gateway.module.ts -------------------------------------------------------------------------------- /libs/api-gateway/constants/api-gateway.constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/constants/api-gateway.constant.ts -------------------------------------------------------------------------------- /libs/api-gateway/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/index.ts -------------------------------------------------------------------------------- /libs/api-gateway/redis/constants/redis.constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/redis/constants/redis.constant.ts -------------------------------------------------------------------------------- /libs/api-gateway/redis/types/redis-option.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/redis/types/redis-option.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/constants/default-server-name.constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/constants/default-server-name.constant.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/constants/special-headers.constant.ts: -------------------------------------------------------------------------------- 1 | export const STRIPE_SIGNATURE = 'stripe-signature'; 2 | -------------------------------------------------------------------------------- /libs/api-gateway/restful/constants/whitelist.constant.ts: -------------------------------------------------------------------------------- 1 | export const WHITELIST_PATHS = ['/oidc/']; 2 | -------------------------------------------------------------------------------- /libs/api-gateway/restful/controllers/document.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/controllers/document.controller.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/controllers/proxy.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/controllers/proxy.controller.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/decorators/proxy-middleware.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/decorators/proxy-middleware.decorator.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/decorators/proxy-validation.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/decorators/proxy-validation.decorator.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/decorators/ws-proxy-middleware.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/decorators/ws-proxy-middleware.decorator.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/helpers/object.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/helpers/object.helper.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/helpers/provider.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/helpers/provider.helper.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/helpers/raw-body-buffer.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/helpers/raw-body-buffer.helper.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/helpers/string.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/helpers/string.helper.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/helpers/whitelist.helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/helpers/whitelist.helper.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/interfaces/proxy-middleware.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/interfaces/proxy-middleware.interface.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/interfaces/proxy-validation.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/interfaces/proxy-validation.interface.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/interfaces/ws-proxy-middleware.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/interfaces/ws-proxy-middleware.interface.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/models/proxy-request.model.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/models/proxy-request.model.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/restful.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/restful.module.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/services/open-api.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/services/open-api.service.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/services/proxy.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/services/proxy.service.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/services/request.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/services/request.service.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/services/ws-request.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/services/ws-request.service.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/tasks/update-api-document.task.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/tasks/update-api-document.task.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/types/api-service.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/types/api-service.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/types/document.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/types/document.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/types/endpoint-detail.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/types/endpoint-detail.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/restful/types/restful-option.type.ts: -------------------------------------------------------------------------------- 1 | export type RestfulOption = { 2 | isEnableDocument: boolean; 3 | }; 4 | -------------------------------------------------------------------------------- /libs/api-gateway/restful/types/router-path.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/restful/types/router-path.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/constants/lua-script.constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/constants/lua-script.constant.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/constants/rate-limit.constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/constants/rate-limit.constant.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/exceptions/too-many-request.exception.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/exceptions/too-many-request.exception.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/services/throttler.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/services/throttler.service.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/throttler.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/throttler.module.ts -------------------------------------------------------------------------------- /libs/api-gateway/throttlers/types/throttler-option.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/throttlers/types/throttler-option.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/types/api-gateway-option.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/types/api-gateway-option.type.ts -------------------------------------------------------------------------------- /libs/api-gateway/views/document.hbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/api-gateway/views/document.hbs -------------------------------------------------------------------------------- /libs/client/decorators/api-rate-limit.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/client/decorators/api-rate-limit.decorator.ts -------------------------------------------------------------------------------- /libs/client/helpers/api-extension.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/client/helpers/api-extension.ts -------------------------------------------------------------------------------- /libs/client/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/client/index.ts -------------------------------------------------------------------------------- /libs/client/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/client/package.json -------------------------------------------------------------------------------- /libs/opentelemetry/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/opentelemetry/index.ts -------------------------------------------------------------------------------- /libs/opentelemetry/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/opentelemetry/package-lock.json -------------------------------------------------------------------------------- /libs/opentelemetry/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/opentelemetry/package.json -------------------------------------------------------------------------------- /libs/opentelemetry/tracing.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/opentelemetry/tracing.ts -------------------------------------------------------------------------------- /libs/opentelemetry/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/libs/opentelemetry/type.ts -------------------------------------------------------------------------------- /nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/nest-cli.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/package.json -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@hodfords/nestjs-prettier-config'); 2 | -------------------------------------------------------------------------------- /scripts/postbuild.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/scripts/postbuild.sh -------------------------------------------------------------------------------- /src/app.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/app.controller.ts -------------------------------------------------------------------------------- /src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/app.module.ts -------------------------------------------------------------------------------- /src/config/env.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/config/env.config.ts -------------------------------------------------------------------------------- /src/config/redis.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/config/redis.config.ts -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/middleware/authentication.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/middleware/authentication.middleware.ts -------------------------------------------------------------------------------- /src/middleware/static-request.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/middleware/static-request.middleware.ts -------------------------------------------------------------------------------- /src/middleware/ws-authentication.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/src/middleware/ws-authentication.middleware.ts -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/tsconfig.build.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hodfords-solutions/nestjs-api-gateway/HEAD/tsconfig.json --------------------------------------------------------------------------------