gitextract_c_yhapfd/ ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── build-and-publish.yml │ └── ci.yml ├── .gitignore ├── .husky/ │ ├── .gitignore │ └── pre-commit ├── .prettierrc ├── .vscode/ │ └── settings.json ├── .yarn/ │ └── releases/ │ └── yarn-4.1.1.cjs ├── .yarnrc.yml ├── CONTRIBUTING.md ├── LICENSE ├── MIGRATION.md ├── README.md ├── api/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── .lintstagedrc.json │ ├── .yarn/ │ │ └── releases/ │ │ └── yarn-4.1.1.cjs │ ├── .yarnrc.yml │ ├── Dockerfile │ ├── migrations/ │ │ ├── 1-init-roles.sql │ │ ├── 10-function-auth.sql │ │ ├── 11-table-ctf-secrets.sql │ │ ├── 12-table-ctf.sql │ │ ├── 13-table-invitation.sql │ │ ├── 14-functions-ctf-authorizations.sql │ │ ├── 15-table-task.sql │ │ ├── 16-functions-task.sql │ │ ├── 17-table-work-on-task.sql │ │ ├── 18-functions-work-on-task.sql │ │ ├── 19-views-ctf.sql │ │ ├── 2-init-schemas.sql │ │ ├── 20-row-level-security.sql │ │ ├── 21-subscriptions.sql │ │ ├── 22-table-reset-password-link.sql │ │ ├── 23-view-users.sql │ │ ├── 24-table-invitation-link.sql │ │ ├── 25-function-change-password.sql │ │ ├── 26-v1-shim.sql │ │ ├── 27-v1-users.sql │ │ ├── 28-v1-ctf.sql │ │ ├── 29-v1-task.sql │ │ ├── 3-enum-role.sql │ │ ├── 30-v1-relations.sql │ │ ├── 31-v1-settings-registration.sql │ │ ├── 32-v1-clean.sql │ │ ├── 33-role-change-notification.sql │ │ ├── 34-fix-validate-subscription.sql │ │ ├── 35-fix-flag-subscription.sql │ │ ├── 36-split-me-and-new-jwt.sql │ │ ├── 37-add-friend-role.sql │ │ ├── 38-add-friend-user.sql │ │ ├── 39-sort-users.sql │ │ ├── 4-table-settings.sql │ │ ├── 40-search-tasks-n-ctfs.sql │ │ ├── 41-illegal-dates.sql │ │ ├── 42-add-last-active.sql │ │ ├── 43-ical-link.sql │ │ ├── 44-tags.sql │ │ ├── 45-discord-linking.sql │ │ ├── 46-discord-group-sync.sql │ │ ├── 47-discord-working-on.sql │ │ ├── 48-work-on-task-security.sql │ │ ├── 49-role-change-discord-sync.sql │ │ ├── 5-table-user.sql │ │ ├── 50-on-it-history.sql │ │ ├── 51-cancel-on-it.sql │ │ ├── 52-discord-event-link.sql │ │ ├── 53-discord-on-it-fix.sql │ │ ├── 54-add-discord-integration-enabled.sql │ │ ├── 55-discord-account-invitation-link.sql │ │ ├── 56-assign-users-to-task.sql │ │ ├── 6-table-profile.sql │ │ ├── 7-function-updaterole.sql │ │ ├── 8-virtual-table-guests.sql │ │ └── 9-type-jwt.sql │ ├── package.json │ ├── src/ │ │ ├── config.ts │ │ ├── discord/ │ │ │ ├── agile/ │ │ │ │ ├── channels.ts │ │ │ │ ├── commands/ │ │ │ │ │ ├── archiveCtf.ts │ │ │ │ │ ├── createCtf.ts │ │ │ │ │ ├── deleteCtf.ts │ │ │ │ │ ├── linkUser.ts │ │ │ │ │ ├── register.ts │ │ │ │ │ ├── solveTask.ts │ │ │ │ │ └── workingOn.ts │ │ │ │ ├── commands.ts │ │ │ │ ├── hooks.ts │ │ │ │ └── interactions.ts │ │ │ ├── database/ │ │ │ │ ├── ctfs.ts │ │ │ │ ├── tasks.ts │ │ │ │ └── users.ts │ │ │ ├── hooks.ts │ │ │ ├── index.ts │ │ │ ├── interfaces/ │ │ │ │ ├── command.ts │ │ │ │ ├── hooks.ts │ │ │ │ └── interaction.ts │ │ │ ├── listeners/ │ │ │ │ ├── interactionCreate.ts │ │ │ │ └── ready.ts │ │ │ └── utils/ │ │ │ ├── channelStyle.ts │ │ │ ├── comparison.ts │ │ │ ├── messages.ts │ │ │ ├── permissionSync.ts │ │ │ └── user.ts │ │ ├── index.ts │ │ ├── plugins/ │ │ │ ├── ProfileSubscriptionPlugin.ts │ │ │ ├── createTask.ts │ │ │ ├── importCtf.ts │ │ │ ├── savepointWrapper.ts │ │ │ ├── uploadLogo.ts │ │ │ └── uploadScalar.ts │ │ ├── routes/ │ │ │ └── ical.ts │ │ ├── types/ │ │ │ └── types.d.ts │ │ └── utils/ │ │ ├── database.ts │ │ └── utils.ts │ ├── start.sh │ ├── tsconfig.json │ └── tslint.json ├── db/ │ ├── Dockerfile │ └── create-multiple-postgresql-databases.sh ├── docker-compose.dev.yml ├── docker-compose.yml ├── front/ │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .lintstagedrc.json │ ├── .postcssrc.js │ ├── .prettierrc │ ├── .yarn/ │ │ └── releases/ │ │ └── yarn-4.1.1.cjs │ ├── .yarnrc.yml │ ├── Dockerfile │ ├── README.md │ ├── apollo.config.js │ ├── babel.config.js │ ├── codegen.yml │ ├── graphql.schema.json │ ├── nginx.conf │ ├── package.json │ ├── public/ │ │ └── hotkeys-iframe.js │ ├── quasar.conf.js │ ├── quasar.extensions.json │ ├── src/ │ │ ├── App.vue │ │ ├── apollo/ │ │ │ └── index.ts │ │ ├── boot/ │ │ │ ├── .gitkeep │ │ │ ├── apollo.ts │ │ │ └── ctfnote.ts │ │ ├── components/ │ │ │ ├── Admin/ │ │ │ │ ├── Authentication.vue │ │ │ │ ├── Theme.vue │ │ │ │ └── Users.vue │ │ │ ├── Auth/ │ │ │ │ ├── Login.vue │ │ │ │ ├── Register.vue │ │ │ │ └── ResetPassword.vue │ │ │ ├── CTF/ │ │ │ │ ├── BtnDelete.vue │ │ │ │ ├── BtnEdit.vue │ │ │ │ ├── Calendar.vue │ │ │ │ ├── Card.vue │ │ │ │ ├── CardAdminMenu.vue │ │ │ │ ├── CardList.vue │ │ │ │ ├── CtfTimeLink.vue │ │ │ │ ├── DiscordEventLinkSync.vue │ │ │ │ ├── Guests.vue │ │ │ │ ├── Incoming.vue │ │ │ │ ├── Info.vue │ │ │ │ ├── InfoCredentials.vue │ │ │ │ ├── LogoLink.vue │ │ │ │ ├── Past.vue │ │ │ │ └── WeightBadge.vue │ │ │ ├── Dialogs/ │ │ │ │ ├── EditCtfDialog.vue │ │ │ │ ├── ImportCtfDialog.vue │ │ │ │ ├── InviteUserDialog.vue │ │ │ │ ├── ResetPasswordDialog.vue │ │ │ │ ├── SearchDialog.vue │ │ │ │ ├── TaskEditDialog.vue │ │ │ │ ├── TaskExportDialog.vue │ │ │ │ ├── TaskImportDialog.vue │ │ │ │ └── TaskSolveDialog.vue │ │ │ ├── Loader/ │ │ │ │ └── CTF.vue │ │ │ ├── Menu/ │ │ │ │ ├── BaseMenuBar.vue │ │ │ │ ├── CtfMenu.vue │ │ │ │ └── MainMenu.vue │ │ │ ├── Profile/ │ │ │ │ └── UserBadge.vue │ │ │ ├── Task/ │ │ │ │ ├── TaskAssignDialog.vue │ │ │ │ ├── TaskBadge.vue │ │ │ │ ├── TaskBtnGroup.vue │ │ │ │ ├── TaskCard.vue │ │ │ │ ├── TaskCards.vue │ │ │ │ ├── TaskList.vue │ │ │ │ ├── TaskMenu.vue │ │ │ │ ├── TaskPlayerList.vue │ │ │ │ ├── TaskTable.vue │ │ │ │ ├── TaskTableDense.vue │ │ │ │ ├── TaskTagChip.vue │ │ │ │ └── TaskTagsList.vue │ │ │ └── Utils/ │ │ │ ├── ColorPicker.vue │ │ │ ├── CopyLink.vue │ │ │ ├── CtfNoteLink.vue │ │ │ ├── DatetimeInput.vue │ │ │ ├── LogoField.vue │ │ │ ├── NotificationListener.vue │ │ │ ├── PasswordInput.vue │ │ │ ├── SelectRole.vue │ │ │ ├── ShortcutHint.vue │ │ │ └── TaskListMenu.vue │ │ ├── composables/ │ │ │ └── search.ts │ │ ├── css/ │ │ │ ├── app.scss │ │ │ └── quasar.variables.scss │ │ ├── ctfnote/ │ │ │ ├── admin.ts │ │ │ ├── auth.ts │ │ │ ├── ctfs.ts │ │ │ ├── index.ts │ │ │ ├── me.ts │ │ │ ├── models.ts │ │ │ ├── parsers/ │ │ │ │ ├── angstrom.ts │ │ │ │ ├── cini.ts │ │ │ │ ├── ctfd.ts │ │ │ │ ├── hitcon.ts │ │ │ │ ├── htb.ts │ │ │ │ ├── index.ts │ │ │ │ ├── justctf.ts │ │ │ │ ├── kitctf.ts │ │ │ │ ├── pico.ts │ │ │ │ └── raw.ts │ │ │ ├── profiles.ts │ │ │ ├── search.ts │ │ │ ├── settings.ts │ │ │ ├── tags.ts │ │ │ ├── tasks.ts │ │ │ ├── ui.ts │ │ │ ├── uploads.ts │ │ │ └── utils.ts │ │ ├── env.d.ts │ │ ├── extensions/ │ │ │ └── storedSettings.ts │ │ ├── generated/ │ │ │ └── graphql.ts │ │ ├── graphql/ │ │ │ ├── Admin.graphql │ │ │ ├── Assign.graphql │ │ │ ├── Auth.graphql │ │ │ ├── Ctf.graphql │ │ │ ├── Invitation.graphql │ │ │ ├── Profile.graphql │ │ │ ├── Search.graphql │ │ │ ├── Secret.graphql │ │ │ ├── Settings.graphql │ │ │ ├── Tag.graphql │ │ │ ├── Task.graphql │ │ │ └── Uploads.graphql │ │ ├── index.template.html │ │ ├── injectionKeys.ts │ │ ├── layouts/ │ │ │ ├── MainLayout.vue │ │ │ └── PublicLayout.vue │ │ ├── pages/ │ │ │ ├── Admin.vue │ │ │ ├── CTF.vue │ │ │ ├── Error404.vue │ │ │ ├── Index.vue │ │ │ ├── Settings.vue │ │ │ ├── Task.vue │ │ │ └── Team.vue │ │ ├── quasar.d.ts │ │ ├── router/ │ │ │ ├── index.ts │ │ │ └── routes.ts │ │ ├── shims-runtime-core.d.ts │ │ └── shims-vue.d.ts │ └── tsconfig.json ├── package.json └── screenshots/ └── Makefile