├── .docker └── development │ ├── .gitignore │ ├── HOW-TO-USE.md │ ├── docker-compose.yml │ └── example.config.env ├── .dockerignore ├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .github ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── SECURITY.md ├── pull_request_template.md └── workflows │ ├── linting_testing.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierrc.js ├── .vscode ├── extensions.json └── settings.json ├── Dockerfile ├── LICENSE ├── README.md ├── dev.Dockerfile ├── package.json ├── pnpm-lock.yaml ├── src ├── config │ ├── fragments │ │ ├── dev.ts │ │ ├── docker.ts │ │ └── types.ts │ ├── index.ts │ ├── orm.ts │ └── schema.ts ├── db │ ├── migrations │ │ ├── .snapshot-postgres.json │ │ ├── Migration20231104150702.ts │ │ ├── Migration20231105150807.ts │ │ ├── Migration20231111160045.ts │ │ ├── Migration20231122231620.ts │ │ ├── Migration20231221185725.ts │ │ └── Migration20231229214215.ts │ └── models │ │ ├── Bookmark.ts │ │ ├── ChallengeCode.ts │ │ ├── ProgressItem.ts │ │ ├── Session.ts │ │ ├── User.ts │ │ └── UserSettings.ts ├── main.ts ├── mikro-orm.config.ts ├── modules │ ├── fastify │ │ ├── index.ts │ │ └── routes.ts │ ├── jobs │ │ ├── index.ts │ │ ├── job.ts │ │ └── list │ │ │ ├── challengeCode.ts │ │ │ ├── sessionExpiry.ts │ │ │ └── userDeletion.ts │ ├── metrics │ │ ├── index.ts │ │ └── update.ts │ ├── mikro │ │ ├── index.ts │ │ └── orm.ts │ └── ratelimits │ │ ├── index.ts │ │ ├── limiter.ts │ │ └── redis.ts ├── routes │ ├── auth │ │ ├── login.ts │ │ ├── manage.ts │ │ └── session.ts │ ├── index.ts │ ├── meta.ts │ ├── metrics.ts │ ├── sessions │ │ └── sessions.ts │ ├── statuses.ts │ └── users │ │ ├── bookmark.ts │ │ ├── delete.ts │ │ ├── edit.ts │ │ ├── get.ts │ │ ├── progress.ts │ │ ├── sessions.ts │ │ └── settings.ts └── services │ ├── access.ts │ ├── auth.ts │ ├── captcha.ts │ ├── challenge.ts │ ├── error.ts │ ├── handler.ts │ ├── ip.ts │ ├── logger.ts │ ├── router.ts │ └── session.ts ├── tsconfig.json └── yarn.lock /.docker/development/.gitignore: -------------------------------------------------------------------------------- 1 | config.env 2 | -------------------------------------------------------------------------------- /.docker/development/HOW-TO-USE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.docker/development/HOW-TO-USE.md -------------------------------------------------------------------------------- /.docker/development/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.docker/development/docker-compose.yml -------------------------------------------------------------------------------- /.docker/development/example.config.env: -------------------------------------------------------------------------------- 1 | MWB_USE_PRESETS=dev,dockerdev 2 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @movie-web/project-leads 2 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/CONTRIBUTING.md -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/SECURITY.md -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/linting_testing.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/workflows/linting_testing.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | config.json 4 | dist 5 | .pnpm-store 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.prettierrc.js -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/README.md -------------------------------------------------------------------------------- /dev.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/dev.Dockerfile -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/config/fragments/dev.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/fragments/dev.ts -------------------------------------------------------------------------------- /src/config/fragments/docker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/fragments/docker.ts -------------------------------------------------------------------------------- /src/config/fragments/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/fragments/types.ts -------------------------------------------------------------------------------- /src/config/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/index.ts -------------------------------------------------------------------------------- /src/config/orm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/orm.ts -------------------------------------------------------------------------------- /src/config/schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/config/schema.ts -------------------------------------------------------------------------------- /src/db/migrations/.snapshot-postgres.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/.snapshot-postgres.json -------------------------------------------------------------------------------- /src/db/migrations/Migration20231104150702.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231104150702.ts -------------------------------------------------------------------------------- /src/db/migrations/Migration20231105150807.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231105150807.ts -------------------------------------------------------------------------------- /src/db/migrations/Migration20231111160045.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231111160045.ts -------------------------------------------------------------------------------- /src/db/migrations/Migration20231122231620.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231122231620.ts -------------------------------------------------------------------------------- /src/db/migrations/Migration20231221185725.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231221185725.ts -------------------------------------------------------------------------------- /src/db/migrations/Migration20231229214215.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/migrations/Migration20231229214215.ts -------------------------------------------------------------------------------- /src/db/models/Bookmark.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/Bookmark.ts -------------------------------------------------------------------------------- /src/db/models/ChallengeCode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/ChallengeCode.ts -------------------------------------------------------------------------------- /src/db/models/ProgressItem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/ProgressItem.ts -------------------------------------------------------------------------------- /src/db/models/Session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/Session.ts -------------------------------------------------------------------------------- /src/db/models/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/User.ts -------------------------------------------------------------------------------- /src/db/models/UserSettings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/db/models/UserSettings.ts -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/mikro-orm.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/mikro-orm.config.ts -------------------------------------------------------------------------------- /src/modules/fastify/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/fastify/index.ts -------------------------------------------------------------------------------- /src/modules/fastify/routes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/fastify/routes.ts -------------------------------------------------------------------------------- /src/modules/jobs/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/jobs/index.ts -------------------------------------------------------------------------------- /src/modules/jobs/job.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/jobs/job.ts -------------------------------------------------------------------------------- /src/modules/jobs/list/challengeCode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/jobs/list/challengeCode.ts -------------------------------------------------------------------------------- /src/modules/jobs/list/sessionExpiry.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/jobs/list/sessionExpiry.ts -------------------------------------------------------------------------------- /src/modules/jobs/list/userDeletion.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/jobs/list/userDeletion.ts -------------------------------------------------------------------------------- /src/modules/metrics/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/metrics/index.ts -------------------------------------------------------------------------------- /src/modules/metrics/update.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/metrics/update.ts -------------------------------------------------------------------------------- /src/modules/mikro/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/mikro/index.ts -------------------------------------------------------------------------------- /src/modules/mikro/orm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/mikro/orm.ts -------------------------------------------------------------------------------- /src/modules/ratelimits/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/ratelimits/index.ts -------------------------------------------------------------------------------- /src/modules/ratelimits/limiter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/ratelimits/limiter.ts -------------------------------------------------------------------------------- /src/modules/ratelimits/redis.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/modules/ratelimits/redis.ts -------------------------------------------------------------------------------- /src/routes/auth/login.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/auth/login.ts -------------------------------------------------------------------------------- /src/routes/auth/manage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/auth/manage.ts -------------------------------------------------------------------------------- /src/routes/auth/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/auth/session.ts -------------------------------------------------------------------------------- /src/routes/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/index.ts -------------------------------------------------------------------------------- /src/routes/meta.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/meta.ts -------------------------------------------------------------------------------- /src/routes/metrics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/metrics.ts -------------------------------------------------------------------------------- /src/routes/sessions/sessions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/sessions/sessions.ts -------------------------------------------------------------------------------- /src/routes/statuses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/statuses.ts -------------------------------------------------------------------------------- /src/routes/users/bookmark.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/bookmark.ts -------------------------------------------------------------------------------- /src/routes/users/delete.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/delete.ts -------------------------------------------------------------------------------- /src/routes/users/edit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/edit.ts -------------------------------------------------------------------------------- /src/routes/users/get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/get.ts -------------------------------------------------------------------------------- /src/routes/users/progress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/progress.ts -------------------------------------------------------------------------------- /src/routes/users/sessions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/sessions.ts -------------------------------------------------------------------------------- /src/routes/users/settings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/routes/users/settings.ts -------------------------------------------------------------------------------- /src/services/access.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/access.ts -------------------------------------------------------------------------------- /src/services/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/auth.ts -------------------------------------------------------------------------------- /src/services/captcha.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/captcha.ts -------------------------------------------------------------------------------- /src/services/challenge.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/challenge.ts -------------------------------------------------------------------------------- /src/services/error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/error.ts -------------------------------------------------------------------------------- /src/services/handler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/handler.ts -------------------------------------------------------------------------------- /src/services/ip.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/ip.ts -------------------------------------------------------------------------------- /src/services/logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/logger.ts -------------------------------------------------------------------------------- /src/services/router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/router.ts -------------------------------------------------------------------------------- /src/services/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/src/services/session.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sussy-code/backend/HEAD/yarn.lock --------------------------------------------------------------------------------