gitextract_9ikg04a7/ ├── module-02-Creating-REST-APIS/ │ ├── 01-Lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ └── songs.module.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── 02-Lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ └── songs.module.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── 03-Lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ └── songs/ │ │ ├── songs.controller.spec.ts │ │ ├── songs.controller.ts │ │ ├── songs.module.ts │ │ ├── songs.service.spec.ts │ │ └── songs.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-03-middlewares-exception-filters-pipes/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ └── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ └── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ └── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-04/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── common/ │ │ │ └── middleware/ │ │ │ └── logger.middleware.ts │ │ ├── main.ts │ │ └── songs/ │ │ ├── dto/ │ │ │ └── create-song-dto.ts │ │ ├── songs.controller.spec.ts │ │ ├── songs.controller.ts │ │ ├── songs.module.ts │ │ ├── songs.service.spec.ts │ │ └── songs.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-04-dependency-injection/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-02/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── main.ts │ │ └── songs/ │ │ ├── dto/ │ │ │ └── create-song-dto.ts │ │ ├── songs.controller.spec.ts │ │ ├── songs.controller.ts │ │ ├── songs.module.ts │ │ ├── songs.service.spec.ts │ │ └── songs.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-05-connect-nestjs-to-postgress/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-04/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── main.ts │ │ └── songs/ │ │ ├── dto/ │ │ │ ├── create-song-dto.ts │ │ │ └── update-song-dto.ts │ │ ├── song.entity.ts │ │ ├── songs.controller.spec.ts │ │ ├── songs.controller.ts │ │ ├── songs.module.ts │ │ ├── songs.service.spec.ts │ │ └── songs.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-06-relations/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ └── user.entity.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-02-and-lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ └── artist.entity.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-07-authetication-and-authorization/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ └── auth.service.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ └── dto/ │ │ │ │ └── login.dto.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ └── login.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ └── jwt-strategy.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-04/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ └── login.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-05/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-06/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ ├── artist.entity.ts │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ └── artists.service.ts │ │ ├── auth/ │ │ │ ├── api-key-strategy.ts │ │ │ ├── artists-jwt-guard.ts │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ ├── login.dto.ts │ │ │ │ └── validate-token.dto.ts │ │ │ ├── jwt-guard.ts │ │ │ ├── jwt-strategy.ts │ │ │ └── types.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-08-migrations-seeds-debugging/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ └── migrations/ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ └── 1685010456982-removed-phone.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── launch.json │ ├── README.md │ ├── db/ │ │ ├── data-source.ts │ │ ├── migrations/ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ └── 1685010456982-removed-phone.ts │ │ └── seeds/ │ │ └── seed-data.ts │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ ├── artist.entity.ts │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ └── artists.service.ts │ │ ├── auth/ │ │ │ ├── api-key-strategy.ts │ │ │ ├── artists-jwt-guard.ts │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ ├── login.dto.ts │ │ │ │ └── validate-token.dto.ts │ │ │ ├── jwt-guard.ts │ │ │ ├── jwt-strategy.ts │ │ │ └── types.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── seed/ │ │ │ ├── seed.module.ts │ │ │ └── seed.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-09-application-configurations/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ │ └── 1685010456982-removed-phone.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ │ └── 1685010456982-removed-phone.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── env.validation.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── launch.json │ ├── README.md │ ├── db/ │ │ ├── data-source.ts │ │ ├── migrations/ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ └── 1685010456982-removed-phone.ts │ │ └── seeds/ │ │ └── seed-data.ts │ ├── env.validation.ts │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ ├── artist.entity.ts │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ └── artists.service.ts │ │ ├── auth/ │ │ │ ├── api-key-strategy.ts │ │ │ ├── artists-jwt-guard.ts │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ ├── login.dto.ts │ │ │ │ └── validate-token.dto.ts │ │ │ ├── jwt-guard.ts │ │ │ ├── jwt-strategy.ts │ │ │ └── types.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── config/ │ │ │ └── configuration.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── seed/ │ │ │ ├── seed.module.ts │ │ │ └── seed.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ ├── tsconfig.json │ └── webpack-hmr.config.js ├── module-10-api-documentation-with-swagger/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ │ └── 1685010456982-removed-phone.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── env.validation.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── webpack-hmr.config.js │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ │ └── 1685010456982-removed-phone.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── env.validation.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── webpack-hmr.config.js │ ├── lesson-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ │ └── 1685010456982-removed-phone.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── env.validation.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── webpack-hmr.config.js │ └── lesson-04/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── launch.json │ ├── README.md │ ├── db/ │ │ ├── data-source.ts │ │ ├── migrations/ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ └── 1685010456982-removed-phone.ts │ │ └── seeds/ │ │ └── seed-data.ts │ ├── env.validation.ts │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ ├── artist.entity.ts │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ └── artists.service.ts │ │ ├── auth/ │ │ │ ├── api-key-strategy.ts │ │ │ ├── artists-jwt-guard.ts │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ ├── login.dto.ts │ │ │ │ └── validate-token.dto.ts │ │ │ ├── jwt-guard.ts │ │ │ ├── jwt-strategy.ts │ │ │ └── types.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── config/ │ │ │ └── configuration.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── seed/ │ │ │ ├── seed.module.ts │ │ │ └── seed.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ ├── tsconfig.json │ └── webpack-hmr.config.js ├── module-11-mongodb/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ └── main.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02-and-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ └── schemas/ │ │ │ └── song.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-04/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── api.http │ │ ├── docker-compose.yml │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── schemas/ │ │ │ │ └── song.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-05/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── api.http │ │ ├── docker-compose.yml │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── schemas/ │ │ │ │ └── song.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-06/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── api.http │ ├── docker-compose.yml │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── albums/ │ │ │ ├── albums.controller.ts │ │ │ ├── albums.module.ts │ │ │ ├── albums.service.ts │ │ │ ├── dto/ │ │ │ │ └── create-album-dto.ts │ │ │ └── schemas/ │ │ │ └── album.schema.ts │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ └── songs/ │ │ ├── dto/ │ │ │ └── create-song-dto.ts │ │ ├── schemas/ │ │ │ └── song.ts │ │ ├── songs.controller.spec.ts │ │ ├── songs.controller.ts │ │ ├── songs.module.ts │ │ ├── songs.service.spec.ts │ │ └── songs.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-12-deploy-nestjs/ │ ├── deployment-finish/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── db/ │ │ │ ├── data-source.ts │ │ │ ├── migrations/ │ │ │ │ └── 1686309549613-init.ts │ │ │ └── seeds/ │ │ │ └── seed-data.ts │ │ ├── env.validation.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artist.entity.ts │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ └── artists.service.ts │ │ │ ├── auth/ │ │ │ │ ├── api-key-strategy.ts │ │ │ │ ├── artists-jwt-guard.ts │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ ├── login.dto.ts │ │ │ │ │ └── validate-token.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ ├── jwt-strategy.ts │ │ │ │ └── types.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── config/ │ │ │ │ └── configuration.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── seed/ │ │ │ │ ├── seed.module.ts │ │ │ │ └── seed.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── webpack-hmr.config.js │ └── deployment-starter/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── launch.json │ ├── README.md │ ├── db/ │ │ ├── data-source.ts │ │ ├── migrations/ │ │ │ ├── 1685010320827-my-migrations.ts │ │ │ └── 1685010456982-removed-phone.ts │ │ └── seeds/ │ │ └── seed-data.ts │ ├── env.validation.ts │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ ├── artist.entity.ts │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ └── artists.service.ts │ │ ├── auth/ │ │ │ ├── api-key-strategy.ts │ │ │ ├── artists-jwt-guard.ts │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ ├── login.dto.ts │ │ │ │ └── validate-token.dto.ts │ │ │ ├── jwt-guard.ts │ │ │ ├── jwt-strategy.ts │ │ │ └── types.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── config/ │ │ │ └── configuration.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── seed/ │ │ │ ├── seed.module.ts │ │ │ └── seed.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ ├── tsconfig.json │ └── webpack-hmr.config.js ├── module-13-testing/ │ ├── end-to-end-testing/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.module.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── songs/ │ │ │ └── songs.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── jest-basics/ │ │ ├── .prettierrc │ │ ├── mock-function.spec.js │ │ ├── package.json │ │ ├── spyon-demon.spec.js │ │ ├── sum.js │ │ └── sum.test.js │ ├── unit-test-controller-and-service/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.module.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── unit-test-setup/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ └── song/ │ │ ├── dto/ │ │ │ ├── create-song-dto.ts │ │ │ └── update-song-dto.ts │ │ ├── song.controller.spec.ts │ │ ├── song.controller.ts │ │ ├── song.entity.ts │ │ ├── song.module.ts │ │ ├── song.service.spec.ts │ │ └── song.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-14-websocket/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ └── main.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── lesson-01/ │ │ │ ├── .eslintrc.js │ │ │ ├── .gitignore │ │ │ ├── .prettierrc │ │ │ ├── README.md │ │ │ ├── nest-cli.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── app.controller.spec.ts │ │ │ │ ├── app.controller.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── app.service.ts │ │ │ │ └── main.ts │ │ │ ├── test/ │ │ │ │ ├── app.e2e-spec.ts │ │ │ │ └── jest-e2e.json │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.json │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── events/ │ │ │ │ ├── events.gateway.spec.ts │ │ │ │ ├── events.gateway.ts │ │ │ │ └── events.module.ts │ │ │ └── main.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── settings.json │ ├── README.md │ ├── client/ │ │ └── index.html │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── events/ │ │ │ ├── events.gateway.spec.ts │ │ │ ├── events.gateway.ts │ │ │ └── events.module.ts │ │ └── main.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-15-build-graphql-apis/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-03-and-04/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.resolver.spec.ts │ │ │ ├── song.resolver.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-05/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── generate-typings.ts │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── graphql.ts │ │ ├── main.ts │ │ └── song/ │ │ ├── dto/ │ │ │ ├── create-song-dto.ts │ │ │ └── update-song-dto.ts │ │ ├── song.controller.spec.ts │ │ ├── song.controller.ts │ │ ├── song.entity.ts │ │ ├── song.graphql │ │ ├── song.module.ts │ │ ├── song.resolver.spec.ts │ │ ├── song.resolver.ts │ │ ├── song.service.spec.ts │ │ └── song.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-16-authenticate-graphql-apis/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.graphql │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ └── login.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ └── jwt-strategy.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── lesson-01/ │ │ │ ├── .eslintrc.js │ │ │ ├── .gitignore │ │ │ ├── .prettierrc │ │ │ ├── .vscode/ │ │ │ │ └── launch.json │ │ │ ├── README.md │ │ │ ├── generate-typings.ts │ │ │ ├── nest-cli.json │ │ │ ├── package.json │ │ │ ├── rest-client.http │ │ │ ├── src/ │ │ │ │ ├── app.controller.spec.ts │ │ │ │ ├── app.controller.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── app.service.ts │ │ │ │ ├── artists/ │ │ │ │ │ └── artist.entity.ts │ │ │ │ ├── auth/ │ │ │ │ │ ├── auth.constants.ts │ │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ │ ├── auth.controller.ts │ │ │ │ │ ├── auth.graphql │ │ │ │ │ ├── auth.module.ts │ │ │ │ │ ├── auth.service.spec.ts │ │ │ │ │ ├── auth.service.ts │ │ │ │ │ ├── dto/ │ │ │ │ │ │ └── login.dto.ts │ │ │ │ │ ├── jwt-guard.ts │ │ │ │ │ └── jwt-strategy.ts │ │ │ │ ├── common/ │ │ │ │ │ ├── constatnts/ │ │ │ │ │ │ └── connection.ts │ │ │ │ │ ├── middleware/ │ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ │ └── providers/ │ │ │ │ │ └── DevConfigService.ts │ │ │ │ ├── graphql.ts │ │ │ │ ├── main.ts │ │ │ │ ├── playlists/ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ │ ├── playlist.entity.ts │ │ │ │ │ ├── playlists.controller.ts │ │ │ │ │ ├── playlists.module.ts │ │ │ │ │ └── playlists.service.ts │ │ │ │ ├── songs/ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ │ └── update-song-dto.ts │ │ │ │ │ ├── song.entity.ts │ │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ │ ├── songs.controller.ts │ │ │ │ │ ├── songs.module.ts │ │ │ │ │ ├── songs.service.spec.ts │ │ │ │ │ └── songs.service.ts │ │ │ │ └── users/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-user.dto.ts │ │ │ │ ├── user.entity.ts │ │ │ │ ├── users.module.ts │ │ │ │ ├── users.service.spec.ts │ │ │ │ └── users.service.ts │ │ │ ├── test/ │ │ │ │ ├── app.e2e-spec.ts │ │ │ │ └── jest-e2e.json │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.json │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.graphql │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.resolver.spec.ts │ │ │ │ ├── auth.resolver.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ └── login.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ └── jwt-strategy.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-03/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── .vscode/ │ │ └── launch.json │ ├── README.md │ ├── generate-typings.ts │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .vscode/ │ │ │ └── launch.json │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── lesson-01/ │ │ │ ├── .eslintrc.js │ │ │ ├── .gitignore │ │ │ ├── .prettierrc │ │ │ ├── .vscode/ │ │ │ │ └── launch.json │ │ │ ├── README.md │ │ │ ├── generate-typings.ts │ │ │ ├── nest-cli.json │ │ │ ├── package.json │ │ │ ├── rest-client.http │ │ │ ├── src/ │ │ │ │ ├── app.controller.spec.ts │ │ │ │ ├── app.controller.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── app.service.ts │ │ │ │ ├── artists/ │ │ │ │ │ └── artist.entity.ts │ │ │ │ ├── auth/ │ │ │ │ │ ├── auth.constants.ts │ │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ │ ├── auth.controller.ts │ │ │ │ │ ├── auth.graphql │ │ │ │ │ ├── auth.module.ts │ │ │ │ │ ├── auth.service.spec.ts │ │ │ │ │ ├── auth.service.ts │ │ │ │ │ ├── dto/ │ │ │ │ │ │ └── login.dto.ts │ │ │ │ │ ├── jwt-guard.ts │ │ │ │ │ └── jwt-strategy.ts │ │ │ │ ├── common/ │ │ │ │ │ ├── constatnts/ │ │ │ │ │ │ └── connection.ts │ │ │ │ │ ├── middleware/ │ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ │ └── providers/ │ │ │ │ │ └── DevConfigService.ts │ │ │ │ ├── graphql.ts │ │ │ │ ├── main.ts │ │ │ │ ├── playlists/ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ │ ├── playlist.entity.ts │ │ │ │ │ ├── playlists.controller.ts │ │ │ │ │ ├── playlists.module.ts │ │ │ │ │ └── playlists.service.ts │ │ │ │ ├── songs/ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ │ └── update-song-dto.ts │ │ │ │ │ ├── song.entity.ts │ │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ │ ├── songs.controller.ts │ │ │ │ │ ├── songs.module.ts │ │ │ │ │ ├── songs.service.spec.ts │ │ │ │ │ └── songs.service.ts │ │ │ │ └── users/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-user.dto.ts │ │ │ │ ├── user.entity.ts │ │ │ │ ├── users.module.ts │ │ │ │ ├── users.service.spec.ts │ │ │ │ └── users.service.ts │ │ │ ├── test/ │ │ │ │ ├── app.e2e-spec.ts │ │ │ │ └── jest-e2e.json │ │ │ ├── tsconfig.build.json │ │ │ └── tsconfig.json │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── rest-client.http │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ └── artist.entity.ts │ │ │ ├── auth/ │ │ │ │ ├── auth.constants.ts │ │ │ │ ├── auth.controller.spec.ts │ │ │ │ ├── auth.controller.ts │ │ │ │ ├── auth.graphql │ │ │ │ ├── auth.module.ts │ │ │ │ ├── auth.resolver.spec.ts │ │ │ │ ├── auth.resolver.ts │ │ │ │ ├── auth.service.spec.ts │ │ │ │ ├── auth.service.ts │ │ │ │ ├── dto/ │ │ │ │ │ └── login.dto.ts │ │ │ │ ├── jwt-guard.ts │ │ │ │ └── jwt-strategy.ts │ │ │ ├── common/ │ │ │ │ ├── constatnts/ │ │ │ │ │ └── connection.ts │ │ │ │ ├── middleware/ │ │ │ │ │ └── logger.middleware.ts │ │ │ │ └── providers/ │ │ │ │ └── DevConfigService.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ ├── playlists/ │ │ │ │ ├── dto/ │ │ │ │ │ └── create-playlist.dto.ts │ │ │ │ ├── playlist.entity.ts │ │ │ │ ├── playlists.controller.ts │ │ │ │ ├── playlists.module.ts │ │ │ │ └── playlists.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song-dto.ts │ │ │ │ │ └── update-song-dto.ts │ │ │ │ ├── song.entity.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ └── create-user.dto.ts │ │ │ ├── user.entity.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── nest-cli.json │ ├── package.json │ ├── rest-client.http │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── artists/ │ │ │ └── artist.entity.ts │ │ ├── auth/ │ │ │ ├── auth.constants.ts │ │ │ ├── auth.controller.spec.ts │ │ │ ├── auth.controller.ts │ │ │ ├── auth.graphql │ │ │ ├── auth.module.ts │ │ │ ├── auth.resolver.spec.ts │ │ │ ├── auth.resolver.ts │ │ │ ├── auth.service.spec.ts │ │ │ ├── auth.service.ts │ │ │ ├── dto/ │ │ │ │ └── login.dto.ts │ │ │ ├── gql-auth-guard.ts │ │ │ ├── jwt-guard.ts │ │ │ └── jwt-strategy.ts │ │ ├── common/ │ │ │ ├── constatnts/ │ │ │ │ └── connection.ts │ │ │ ├── middleware/ │ │ │ │ └── logger.middleware.ts │ │ │ └── providers/ │ │ │ └── DevConfigService.ts │ │ ├── graphql.ts │ │ ├── main.ts │ │ ├── playlists/ │ │ │ ├── dto/ │ │ │ │ └── create-playlist.dto.ts │ │ │ ├── playlist.entity.ts │ │ │ ├── playlists.controller.ts │ │ │ ├── playlists.module.ts │ │ │ └── playlists.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ └── create-user.dto.ts │ │ ├── user.entity.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-17-subscription/ │ ├── subscription-finish/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.resolver.spec.ts │ │ │ ├── song.resolver.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── subscription-starter/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── generate-typings.ts │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── graphql.ts │ │ ├── main.ts │ │ └── song/ │ │ ├── dto/ │ │ │ ├── create-song-dto.ts │ │ │ └── update-song-dto.ts │ │ ├── song.controller.spec.ts │ │ ├── song.controller.ts │ │ ├── song.entity.ts │ │ ├── song.graphql │ │ ├── song.module.ts │ │ ├── song.resolver.spec.ts │ │ ├── song.resolver.ts │ │ ├── song.service.spec.ts │ │ └── song.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-18-testing-graphql-apis/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.resolver.spec.ts │ │ │ ├── song.resolver.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-02/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── generate-typings.ts │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── graphql.ts │ │ ├── main.ts │ │ └── song/ │ │ ├── dto/ │ │ │ ├── create-song-dto.ts │ │ │ └── update-song-dto.ts │ │ ├── song.controller.spec.ts │ │ ├── song.controller.ts │ │ ├── song.entity.ts │ │ ├── song.graphql │ │ ├── song.module.ts │ │ ├── song.resolver.spec.ts │ │ ├── song.resolver.ts │ │ ├── song.service.spec.ts │ │ └── song.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ ├── jest-e2e.json │ │ └── song/ │ │ └── song.e2e-spec.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-19-graphql-advanced-concepts/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── generate-typings.ts │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── graphql.ts │ │ │ ├── main.ts │ │ │ └── song/ │ │ │ ├── dto/ │ │ │ │ ├── create-song-dto.ts │ │ │ │ └── update-song-dto.ts │ │ │ ├── song.controller.spec.ts │ │ │ ├── song.controller.ts │ │ │ ├── song.entity.ts │ │ │ ├── song.graphql │ │ │ ├── song.module.ts │ │ │ ├── song.resolver.spec.ts │ │ │ ├── song.resolver.ts │ │ │ ├── song.service.spec.ts │ │ │ └── song.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02-dataloaders/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.module.ts │ │ │ ├── main.ts │ │ │ ├── posts/ │ │ │ │ ├── post.entity.ts │ │ │ │ ├── posts.module.ts │ │ │ │ ├── posts.resolver.ts │ │ │ │ └── posts.service.ts │ │ │ ├── schema.gql │ │ │ ├── users/ │ │ │ │ ├── user.entity.ts │ │ │ │ ├── users.loader.ts │ │ │ │ ├── users.module.ts │ │ │ │ ├── users.resolver.ts │ │ │ │ └── users.service.ts │ │ │ └── util.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-03-fetching-external-api/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── api.http │ ├── docker-compose.yml │ ├── generate-typings.ts │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── album/ │ │ │ ├── album.controller.ts │ │ │ ├── album.module.ts │ │ │ ├── album.service.ts │ │ │ ├── dto/ │ │ │ │ └── create-album-dto.ts │ │ │ └── schemas/ │ │ │ └── album.schema.ts │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── graphql.ts │ │ ├── main.ts │ │ ├── product/ │ │ │ ├── product-owner.resolver.ts │ │ │ ├── product.graphql │ │ │ ├── product.module.ts │ │ │ ├── product.resolver.spec.ts │ │ │ ├── product.resolver.ts │ │ │ ├── product.service.spec.ts │ │ │ ├── product.service.ts │ │ │ └── schemas/ │ │ │ └── product.schema.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ └── create-song-dto.ts │ │ │ ├── schemas/ │ │ │ │ └── song.schema.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── todo/ │ │ │ ├── todo.graphql │ │ │ ├── todo.module.ts │ │ │ ├── todo.resolver.spec.ts │ │ │ ├── todo.resolver.ts │ │ │ ├── todo.service.spec.ts │ │ │ └── todo.service.ts │ │ └── user/ │ │ ├── schemas/ │ │ │ └── user.schema.ts │ │ ├── user.module.ts │ │ └── user.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── module-20-prisma-integration/ │ ├── lesson-01/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ └── main.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-02/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ └── main.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-03/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ └── prisma.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-04-and-05/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── http-client.http │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── main.ts │ │ │ ├── prisma.service.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song.dto.ts │ │ │ │ └── update-song.dto.ts │ │ │ ├── entities/ │ │ │ │ └── song.entity.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-06/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── http-client.http │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801082432_add_artists/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ ├── artists.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-artist.dto.ts │ │ │ │ └── update-artist.dto.ts │ │ │ ├── main.ts │ │ │ ├── prisma.service.ts │ │ │ └── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song.dto.ts │ │ │ │ └── update-song.dto.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-07/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── http-client.http │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801082432_add_artists/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801091013_one_to_one/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── artists/ │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ ├── artists.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-artist.dto.ts │ │ │ │ └── update-artist.dto.ts │ │ │ ├── main.ts │ │ │ ├── prisma.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song.dto.ts │ │ │ │ │ └── update-song.dto.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ ├── create-user.dto.ts │ │ │ │ └── update-user.dto.ts │ │ │ ├── users.controller.spec.ts │ │ │ ├── users.controller.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-08/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── http-client.http │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801082432_add_artists/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801091013_one_to_one/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802074328_many_to_many/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802081727_nested_queries/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802083400_default_value_for_type/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── applications/ │ │ │ │ ├── applications.controller.spec.ts │ │ │ │ ├── applications.controller.ts │ │ │ │ ├── applications.module.ts │ │ │ │ ├── applications.service.spec.ts │ │ │ │ ├── applications.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-application.dto.ts │ │ │ │ └── update-application.dto.ts │ │ │ ├── artists/ │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ ├── artists.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-artist.dto.ts │ │ │ │ └── update-artist.dto.ts │ │ │ ├── main.ts │ │ │ ├── posts/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-post.dto.ts │ │ │ │ │ └── update-post.dto.ts │ │ │ │ ├── posts.controller.spec.ts │ │ │ │ ├── posts.controller.ts │ │ │ │ ├── posts.module.ts │ │ │ │ ├── posts.service.spec.ts │ │ │ │ └── posts.service.ts │ │ │ ├── prisma.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song.dto.ts │ │ │ │ │ └── update-song.dto.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ ├── create-user.dto.ts │ │ │ │ └── update-user.dto.ts │ │ │ ├── users.controller.spec.ts │ │ │ ├── users.controller.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── lesson-09/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── http-client.http │ │ ├── nest-cli.json │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ ├── 20230730081110_init/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801082432_add_artists/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230801091013_one_to_one/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802074328_many_to_many/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802081727_nested_queries/ │ │ │ │ │ └── migration.sql │ │ │ │ ├── 20230802083400_default_value_for_type/ │ │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ └── schema.prisma │ │ ├── src/ │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ ├── applications/ │ │ │ │ ├── applications.controller.spec.ts │ │ │ │ ├── applications.controller.ts │ │ │ │ ├── applications.module.ts │ │ │ │ ├── applications.service.spec.ts │ │ │ │ ├── applications.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-application.dto.ts │ │ │ │ └── update-application.dto.ts │ │ │ ├── artists/ │ │ │ │ ├── artists.controller.spec.ts │ │ │ │ ├── artists.controller.ts │ │ │ │ ├── artists.module.ts │ │ │ │ ├── artists.service.spec.ts │ │ │ │ ├── artists.service.ts │ │ │ │ └── dto/ │ │ │ │ ├── create-artist.dto.ts │ │ │ │ └── update-artist.dto.ts │ │ │ ├── main.ts │ │ │ ├── posts/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-post.dto.ts │ │ │ │ │ └── update-post.dto.ts │ │ │ │ ├── posts.controller.spec.ts │ │ │ │ ├── posts.controller.ts │ │ │ │ ├── posts.module.ts │ │ │ │ ├── posts.service.spec.ts │ │ │ │ └── posts.service.ts │ │ │ ├── prisma.service.ts │ │ │ ├── songs/ │ │ │ │ ├── dto/ │ │ │ │ │ ├── create-song.dto.ts │ │ │ │ │ └── update-song.dto.ts │ │ │ │ ├── songs.controller.spec.ts │ │ │ │ ├── songs.controller.ts │ │ │ │ ├── songs.module.ts │ │ │ │ ├── songs.service.spec.ts │ │ │ │ └── songs.service.ts │ │ │ └── users/ │ │ │ ├── dto/ │ │ │ │ ├── create-user.dto.ts │ │ │ │ └── update-user.dto.ts │ │ │ ├── users.controller.spec.ts │ │ │ ├── users.controller.ts │ │ │ ├── users.module.ts │ │ │ ├── users.service.spec.ts │ │ │ └── users.service.ts │ │ ├── test/ │ │ │ ├── app.e2e-spec.ts │ │ │ ├── jest-e2e.json │ │ │ └── song/ │ │ │ └── song.e2e-spec.ts │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ └── lesson-11-interactive-transactions/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── prisma/ │ │ ├── migrations/ │ │ │ ├── 20230730081110_init/ │ │ │ │ └── migration.sql │ │ │ ├── 20230801082432_add_artists/ │ │ │ │ └── migration.sql │ │ │ ├── 20230801091013_one_to_one/ │ │ │ │ └── migration.sql │ │ │ ├── 20230802074328_many_to_many/ │ │ │ │ └── migration.sql │ │ │ ├── 20230802081727_nested_queries/ │ │ │ │ └── migration.sql │ │ │ ├── 20230802083400_default_value_for_type/ │ │ │ │ └── migration.sql │ │ │ ├── 20230804090722_add_account/ │ │ │ │ └── migration.sql │ │ │ └── migration_lock.toml │ │ └── schema.prisma │ ├── src/ │ │ ├── accounts/ │ │ │ ├── accounts.controller.spec.ts │ │ │ ├── accounts.controller.ts │ │ │ ├── accounts.module.ts │ │ │ ├── accounts.service.spec.ts │ │ │ ├── accounts.service.ts │ │ │ └── dto/ │ │ │ ├── create-account.dto.ts │ │ │ ├── transfer-account.dto.ts │ │ │ └── update-account.dto.ts │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── applications/ │ │ │ ├── applications.controller.spec.ts │ │ │ ├── applications.controller.ts │ │ │ ├── applications.module.ts │ │ │ ├── applications.service.spec.ts │ │ │ ├── applications.service.ts │ │ │ └── dto/ │ │ │ ├── create-application.dto.ts │ │ │ └── update-application.dto.ts │ │ ├── artists/ │ │ │ ├── artists.controller.spec.ts │ │ │ ├── artists.controller.ts │ │ │ ├── artists.module.ts │ │ │ ├── artists.service.spec.ts │ │ │ ├── artists.service.ts │ │ │ └── dto/ │ │ │ ├── create-artist.dto.ts │ │ │ └── update-artist.dto.ts │ │ ├── main.ts │ │ ├── posts/ │ │ │ ├── dto/ │ │ │ │ ├── create-post.dto.ts │ │ │ │ └── update-post.dto.ts │ │ │ ├── posts.controller.spec.ts │ │ │ ├── posts.controller.ts │ │ │ ├── posts.module.ts │ │ │ ├── posts.service.spec.ts │ │ │ └── posts.service.ts │ │ ├── prisma.service.ts │ │ ├── songs/ │ │ │ ├── dto/ │ │ │ │ ├── create-song.dto.ts │ │ │ │ └── update-song.dto.ts │ │ │ ├── songs.controller.spec.ts │ │ │ ├── songs.controller.ts │ │ │ ├── songs.module.ts │ │ │ ├── songs.service.spec.ts │ │ │ └── songs.service.ts │ │ └── users/ │ │ ├── dto/ │ │ │ ├── create-user.dto.ts │ │ │ └── update-user.dto.ts │ │ ├── users.controller.spec.ts │ │ ├── users.controller.ts │ │ ├── users.module.ts │ │ ├── users.service.spec.ts │ │ └── users.service.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ ├── jest-e2e.json │ │ └── song/ │ │ └── song.e2e-spec.ts │ ├── tsconfig.build.json │ └── tsconfig.json └── module-21-nestjs-advanced-concepts/ ├── 0-starter/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ └── main.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-01-file-upload/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ └── main.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-02-custom-decorator/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-03-Task-scheduling/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ ├── task/ │ │ │ ├── task.service.spec.ts │ │ │ └── task.service.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-04-cookies/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ ├── task/ │ │ │ ├── task.service.spec.ts │ │ │ └── task.service.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-05-queues/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── main.ts │ │ ├── task/ │ │ │ ├── task.service.spec.ts │ │ │ └── task.service.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-06-event-emitter/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── docker-compose.yml │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── audio/ │ │ │ ├── audio-converted-listener.ts │ │ │ ├── audio.controller.spec.ts │ │ │ ├── audio.controller.ts │ │ │ ├── audio.module.ts │ │ │ ├── audio.processor.ts │ │ │ └── events/ │ │ │ └── audio-converted-event.ts │ │ ├── main.ts │ │ ├── task/ │ │ │ ├── task.service.spec.ts │ │ │ └── task.service.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json ├── lesson-07-streaming/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── docker-compose.yml │ ├── http-client.http │ ├── nest-cli.json │ ├── package.json │ ├── src/ │ │ ├── app.controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── app.service.ts │ │ ├── audio/ │ │ │ ├── audio-converted-listener.ts │ │ │ ├── audio.controller.spec.ts │ │ │ ├── audio.controller.ts │ │ │ ├── audio.module.ts │ │ │ ├── audio.processor.ts │ │ │ └── events/ │ │ │ └── audio-converted-event.ts │ │ ├── file/ │ │ │ ├── file.controller.spec.ts │ │ │ └── file.controller.ts │ │ ├── main.ts │ │ ├── task/ │ │ │ ├── task.service.spec.ts │ │ │ └── task.service.ts │ │ ├── user.decorator.ts │ │ └── user.entity.ts │ ├── test/ │ │ ├── app.e2e-spec.ts │ │ └── jest-e2e.json │ ├── tsconfig.build.json │ └── tsconfig.json └── lesson-08-session/ ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── README.md ├── docker-compose.yml ├── http-client.http ├── nest-cli.json ├── package.json ├── src/ │ ├── app.controller.spec.ts │ ├── app.controller.ts │ ├── app.module.ts │ ├── app.service.ts │ ├── audio/ │ │ ├── audio-converted-listener.ts │ │ ├── audio.controller.spec.ts │ │ ├── audio.controller.ts │ │ ├── audio.module.ts │ │ ├── audio.processor.ts │ │ └── events/ │ │ └── audio-converted-event.ts │ ├── file/ │ │ ├── file.controller.spec.ts │ │ └── file.controller.ts │ ├── main.ts │ ├── task/ │ │ ├── task.service.spec.ts │ │ └── task.service.ts │ ├── user.decorator.ts │ └── user.entity.ts ├── test/ │ ├── app.e2e-spec.ts │ └── jest-e2e.json ├── tsconfig.build.json └── tsconfig.json