├── .dockerignore ├── .env.ci ├── .eslintrc.json ├── .example.env ├── .example.env.test ├── .example.sonar-project.properties ├── .github ├── CODEOWNERS ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── auto-merge.yml │ └── main.yml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .nvmrc ├── .prettierrc ├── .vscode └── launch.json ├── Dockerfile.dev ├── Dockerfile.prod ├── README.md ├── __tests__ ├── clients │ └── email │ │ └── email.spec.ts ├── controllers │ ├── auth │ │ ├── create-account.spec.ts │ │ ├── create-session.spec.ts │ │ ├── delete-session.spec.ts │ │ └── rate-limit-endpoint.spec.ts │ └── users │ │ ├── create-user.spec.ts │ │ ├── delete-user.spec.ts │ │ ├── get-users.spec.ts │ │ └── update-user.spec.ts ├── services │ └── users.service.spec.ts └── utils │ ├── callbacks.ts │ ├── index.ts │ └── setup.ts ├── docker-compose.yml ├── docker_postgres_init.sql ├── jest.config.js ├── ormconfig.ts ├── package.json ├── prod-paths.js ├── sonar-project.properties ├── src ├── app.ts ├── clients │ ├── email │ │ └── email.client.ts │ ├── mapper │ │ └── entityMapper.service.ts │ └── redis │ │ └── redis.client.ts ├── config │ └── index.ts ├── constants │ ├── email │ │ ├── emailPlatforms.constants.ts │ │ ├── handlebars.constants.ts │ │ └── index.ts │ ├── errorMessages.ts │ ├── httpStatusCode.ts │ └── regex.ts ├── controllers │ ├── auth.controller.ts │ ├── index.ts │ └── users.controller.ts ├── database │ ├── connection.ts │ ├── factories │ │ └── user.factory.ts │ ├── migrations │ │ ├── 1606158886329-CreateUserEntity.ts │ │ └── 1623086883223-UniqueUserEmail.ts │ └── seeds │ │ └── users.seed.ts ├── dto │ ├── baseUserDTO.ts │ ├── logoutDTO.ts │ └── signUpDTO.ts ├── entities │ ├── base.entity.ts │ └── user.entity.ts ├── exception │ ├── base.error.ts │ ├── database.error.ts │ └── redis.error.ts ├── interfaces │ ├── auth │ │ └── auth.interface.ts │ ├── email │ │ └── email.interface.ts │ ├── index.ts │ └── user │ │ └── user.interface.ts ├── middlewares │ ├── error.middleware.ts │ ├── helmet.middleware.ts │ ├── index.ts │ ├── logging.middleware.ts │ └── rate.middleware.ts ├── server.ts ├── services │ ├── auth.service.ts │ ├── email.service.ts │ ├── jwt.service.ts │ ├── redis.service.ts │ ├── s3.service.ts │ ├── ses.service.ts │ ├── session.service.ts │ └── users.service.ts ├── swagger.ts └── views │ └── email │ └── email.hbs ├── tsconfig.json └── yarn.lock /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.dockerignore -------------------------------------------------------------------------------- /.env.ci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.env.ci -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.example.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.example.env -------------------------------------------------------------------------------- /.example.env.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.example.env.test -------------------------------------------------------------------------------- /.example.sonar-project.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.example.sonar-project.properties -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/auto-merge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.github/workflows/auto-merge.yml -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | yarn lint 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v14.16.0 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.prettierrc -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /Dockerfile.dev: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/Dockerfile.dev -------------------------------------------------------------------------------- /Dockerfile.prod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/Dockerfile.prod -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/README.md -------------------------------------------------------------------------------- /__tests__/clients/email/email.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/clients/email/email.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/auth/create-account.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/auth/create-account.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/auth/create-session.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/auth/create-session.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/auth/delete-session.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/auth/delete-session.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/auth/rate-limit-endpoint.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/auth/rate-limit-endpoint.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/users/create-user.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/users/create-user.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/users/delete-user.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/users/delete-user.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/users/get-users.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/users/get-users.spec.ts -------------------------------------------------------------------------------- /__tests__/controllers/users/update-user.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/controllers/users/update-user.spec.ts -------------------------------------------------------------------------------- /__tests__/services/users.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/services/users.service.spec.ts -------------------------------------------------------------------------------- /__tests__/utils/callbacks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/utils/callbacks.ts -------------------------------------------------------------------------------- /__tests__/utils/index.ts: -------------------------------------------------------------------------------- 1 | export const API = '/api/v1'; 2 | -------------------------------------------------------------------------------- /__tests__/utils/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/__tests__/utils/setup.ts -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docker_postgres_init.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/docker_postgres_init.sql -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/jest.config.js -------------------------------------------------------------------------------- /ormconfig.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/ormconfig.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/package.json -------------------------------------------------------------------------------- /prod-paths.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/prod-paths.js -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/sonar-project.properties -------------------------------------------------------------------------------- /src/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/app.ts -------------------------------------------------------------------------------- /src/clients/email/email.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/clients/email/email.client.ts -------------------------------------------------------------------------------- /src/clients/mapper/entityMapper.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/clients/mapper/entityMapper.service.ts -------------------------------------------------------------------------------- /src/clients/redis/redis.client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/clients/redis/redis.client.ts -------------------------------------------------------------------------------- /src/config/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/config/index.ts -------------------------------------------------------------------------------- /src/constants/email/emailPlatforms.constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/email/emailPlatforms.constants.ts -------------------------------------------------------------------------------- /src/constants/email/handlebars.constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/email/handlebars.constants.ts -------------------------------------------------------------------------------- /src/constants/email/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/email/index.ts -------------------------------------------------------------------------------- /src/constants/errorMessages.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/errorMessages.ts -------------------------------------------------------------------------------- /src/constants/httpStatusCode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/httpStatusCode.ts -------------------------------------------------------------------------------- /src/constants/regex.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/constants/regex.ts -------------------------------------------------------------------------------- /src/controllers/auth.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/controllers/auth.controller.ts -------------------------------------------------------------------------------- /src/controllers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/controllers/index.ts -------------------------------------------------------------------------------- /src/controllers/users.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/controllers/users.controller.ts -------------------------------------------------------------------------------- /src/database/connection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/database/connection.ts -------------------------------------------------------------------------------- /src/database/factories/user.factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/database/factories/user.factory.ts -------------------------------------------------------------------------------- /src/database/migrations/1606158886329-CreateUserEntity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/database/migrations/1606158886329-CreateUserEntity.ts -------------------------------------------------------------------------------- /src/database/migrations/1623086883223-UniqueUserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/database/migrations/1623086883223-UniqueUserEmail.ts -------------------------------------------------------------------------------- /src/database/seeds/users.seed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/database/seeds/users.seed.ts -------------------------------------------------------------------------------- /src/dto/baseUserDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/dto/baseUserDTO.ts -------------------------------------------------------------------------------- /src/dto/logoutDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/dto/logoutDTO.ts -------------------------------------------------------------------------------- /src/dto/signUpDTO.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/dto/signUpDTO.ts -------------------------------------------------------------------------------- /src/entities/base.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/entities/base.entity.ts -------------------------------------------------------------------------------- /src/entities/user.entity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/entities/user.entity.ts -------------------------------------------------------------------------------- /src/exception/base.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/exception/base.error.ts -------------------------------------------------------------------------------- /src/exception/database.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/exception/database.error.ts -------------------------------------------------------------------------------- /src/exception/redis.error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/exception/redis.error.ts -------------------------------------------------------------------------------- /src/interfaces/auth/auth.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/interfaces/auth/auth.interface.ts -------------------------------------------------------------------------------- /src/interfaces/email/email.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/interfaces/email/email.interface.ts -------------------------------------------------------------------------------- /src/interfaces/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/interfaces/index.ts -------------------------------------------------------------------------------- /src/interfaces/user/user.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/interfaces/user/user.interface.ts -------------------------------------------------------------------------------- /src/middlewares/error.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/middlewares/error.middleware.ts -------------------------------------------------------------------------------- /src/middlewares/helmet.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/middlewares/helmet.middleware.ts -------------------------------------------------------------------------------- /src/middlewares/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/middlewares/index.ts -------------------------------------------------------------------------------- /src/middlewares/logging.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/middlewares/logging.middleware.ts -------------------------------------------------------------------------------- /src/middlewares/rate.middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/middlewares/rate.middleware.ts -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/server.ts -------------------------------------------------------------------------------- /src/services/auth.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/auth.service.ts -------------------------------------------------------------------------------- /src/services/email.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/email.service.ts -------------------------------------------------------------------------------- /src/services/jwt.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/jwt.service.ts -------------------------------------------------------------------------------- /src/services/redis.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/redis.service.ts -------------------------------------------------------------------------------- /src/services/s3.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/s3.service.ts -------------------------------------------------------------------------------- /src/services/ses.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/ses.service.ts -------------------------------------------------------------------------------- /src/services/session.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/session.service.ts -------------------------------------------------------------------------------- /src/services/users.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/services/users.service.ts -------------------------------------------------------------------------------- /src/swagger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/src/swagger.ts -------------------------------------------------------------------------------- /src/views/email/email.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rootstrap/node-ts-api-base/HEAD/yarn.lock --------------------------------------------------------------------------------