diff --git a/backend/.eslintrc.cjs b/backend/.eslintrc.cjs index d214ae761..5cdee6690 100644 --- a/backend/.eslintrc.cjs +++ b/backend/.eslintrc.cjs @@ -23,7 +23,7 @@ module.exports = { }, 'import/resolver': { typescript: { - project: ['./tsconfig.json'], + project: ['./tsconfig.json', './backend/tsconfig.json'], }, node: true, }, @@ -52,16 +52,16 @@ module.exports = { 'import/no-commonjs': 'error', 'import/no-import-module-exports': 'error', 'import/no-nodejs-modules': 'off', - 'import/unambiguous': 'off', // not compatible with scriptless vue files + 'import/unambiguous': 'off', // not compatible with .eslintrc.cjs 'import/default': 'error', - // 'import/named': 'error', + 'import/named': 'off', // has false positives 'import/namespace': 'error', 'import/no-absolute-path': 'error', 'import/no-cycle': 'error', 'import/no-dynamic-require': 'error', 'import/no-internal-modules': 'off', 'import/no-relative-packages': 'error', - // 'import/no-relative-parent-imports': ['error', { ignore: ['@/*'] }], + 'import/no-relative-parent-imports': ['error', { ignore: ['@/*'] }], 'import/no-self-import': 'error', 'import/no-unresolved': 'error', 'import/no-useless-path-segments': 'error', @@ -72,8 +72,8 @@ module.exports = { 'import/first': 'error', 'import/group-exports': 'off', 'import/newline-after-import': 'error', - // 'import/no-anonymous-default-export': 'error', - // 'import/no-default-export': 'error', + 'import/no-anonymous-default-export': 'off', // not compatible with neode + 'import/no-default-export': 'off', // not compatible with neode 'import/no-duplicates': 'error', 'import/no-named-default': 'error', 'import/no-namespace': 'error', @@ -128,7 +128,10 @@ module.exports = { 'n/no-restricted-require': 'error', // 'n/no-sync': 'error', // 'n/no-unpublished-bin': 'error', // part of n/recommended - 'n/no-unpublished-import': ['error', { 'allowModules': ['apollo-server-testing', 'rosie', '@faker-js/faker'] }], // part of n/recommended + 'n/no-unpublished-import': [ + 'error', + { allowModules: ['apollo-server-testing', 'rosie', '@faker-js/faker', 'ts-jest'] }, + ], // part of n/recommended // 'n/no-unpublished-require': 'error', // part of n/recommended // 'n/no-unsupported-features/es-builtins': 'error', // part of n/recommended // 'n/no-unsupported-features/es-syntax': 'error', // part of n/recommended @@ -148,7 +151,7 @@ module.exports = { // promise // 'promise/always-return': 'error', // part of promise/recommended - 'promise/avoid-new': 'error', + 'promise/avoid-new': 'error', // 'promise/catch-or-return': 'error', // part of promise/recommended // 'promise/no-callback-in-promise': 'warn', // part of promise/recommended 'promise/no-multiple-resolved': 'error', @@ -163,7 +166,7 @@ module.exports = { 'promise/prefer-catch': 'error', 'promise/spec-only': 'error', // 'promise/valid-params': 'error', // part of promise/recommended - + // eslint comments '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], '@eslint-community/eslint-comments/no-restricted-disable': 'error', diff --git a/backend/jest.config.cjs b/backend/jest.config.cjs new file mode 100644 index 000000000..8d322ff08 --- /dev/null +++ b/backend/jest.config.cjs @@ -0,0 +1,26 @@ +/* eslint-disable import/no-commonjs */ +const { pathsToModuleNameMapper } = require('ts-jest') +const requireJSON5 = require('require-json5') +const { compilerOptions } = requireJSON5('./tsconfig.json') + +module.exports = { + verbose: true, + preset: 'ts-jest', + collectCoverage: true, + collectCoverageFrom: [ + '**/*.ts', + '!**/node_modules/**', + '!**/test/**', + '!**/build/**', + '!**/src/**/?(*.)+(spec|test).ts?(x)', + '!**/src/db/**', + ], + coverageThreshold: { + global: { + lines: 90, + }, + }, + testMatch: ['**/src/**/?(*.)+(spec|test).ts?(x)'], + setupFilesAfterEnv: ['/test/setup.ts'], + moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '/' }), +} diff --git a/backend/jest.config.js b/backend/jest.config.js deleted file mode 100644 index 15eb22477..000000000 --- a/backend/jest.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - verbose: true, - preset: 'ts-jest', - collectCoverage: true, - collectCoverageFrom: [ - '**/*.ts', - '!**/node_modules/**', - '!**/test/**', - '!**/build/**', - '!**/src/**/?(*.)+(spec|test).ts?(x)', - '!**/src/db/**' - ], - coverageThreshold: { - global: { - lines: 90, - }, - }, - testMatch: ['**/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['/test/setup.ts'] -} diff --git a/backend/package.json b/backend/package.json index 76c85c683..f093fff62 100644 --- a/backend/package.json +++ b/backend/package.json @@ -11,14 +11,14 @@ "__migrate": "migrate --compiler 'ts:./src/db/compiler.ts' --migrations-dir ./src/db/migrations", "prod:migrate": "migrate --migrations-dir ./build/src/db/migrations --store ./build/src/db/migrate/store.js", "start": "node build/src/", - "build": "tsc && ./scripts/build.copy.files.sh", - "dev": "nodemon --exec ts-node src/ -e js,ts,gql", + "build": "tsc && tsc-alias && ./scripts/build.copy.files.sh", + "dev": "nodemon --exec ts-node --require tsconfig-paths/register src/ -e js,ts,gql", "dev:debug": "nodemon --exec babel-node --inspect=0.0.0.0:9229 src/ -e js,ts,gql", "lint": "eslint --max-warnings=0 --ext .js,.ts ./src", "test": "cross-env NODE_ENV=test NODE_OPTIONS=--max-old-space-size=8192 jest --runInBand --coverage --forceExit --detectOpenHandles", - "db:clean": "ts-node src/db/clean.ts", + "db:clean": "ts-node --require tsconfig-paths/register src/db/clean.ts", "db:reset": "yarn run db:clean", - "db:seed": "ts-node src/db/seed.ts", + "db:seed": "ts-node --require tsconfig-paths/register src/db/seed.ts", "db:migrate": "yarn run __migrate --store ./src/db/migrate/store.ts", "db:migrate:create": "yarn run __migrate --template-file ./src/db/migrate/template.ts --date-format 'yyyymmddHHmmss' create" }, @@ -119,9 +119,12 @@ "jest": "^29.7.0", "nodemon": "~3.1.9", "prettier": "^3.5.3", + "require-json5": "^1.3.0", "rosie": "^2.1.1", "ts-jest": "^29.3.1", "ts-node": "^10.9.2", + "tsc-alias": "^1.8.14", + "tsconfig-paths": "^4.2.0", "typescript": "^5.8.3" }, "resolutions": { diff --git a/backend/scripts/build.copy.files.sh b/backend/scripts/build.copy.files.sh index 9d17f46ae..da76a623c 100755 --- a/backend/scripts/build.copy.files.sh +++ b/backend/scripts/build.copy.files.sh @@ -1,5 +1,8 @@ #!/bin/sh +# public +cp -r public/ build/public/ + # html files mkdir -p build/src/middleware/helpers/email/templates/ cp -r src/middleware/helpers/email/templates/*.html build/src/middleware/helpers/email/templates/ diff --git a/backend/src/db/clean.ts b/backend/src/db/clean.ts index ae5ce7320..64ef91c31 100644 --- a/backend/src/db/clean.ts +++ b/backend/src/db/clean.ts @@ -1,5 +1,5 @@ /* eslint-disable n/no-process-exit */ -import CONFIG from '../config' +import CONFIG from '@config/index' import { cleanDatabase } from './factories' if (CONFIG.PRODUCTION && !CONFIG.PRODUCTION_DB_CLEAN_ALLOW) { diff --git a/backend/src/db/compiler.ts b/backend/src/db/compiler.ts index 4dd36f16b..2d897762f 100644 --- a/backend/src/db/compiler.ts +++ b/backend/src/db/compiler.ts @@ -1,5 +1,7 @@ /* eslint-disable import/no-commonjs */ // eslint-disable-next-line n/no-unpublished-require const tsNode = require('ts-node') +// eslint-disable-next-line import/no-unassigned-import, import/no-extraneous-dependencies, n/no-unpublished-require +require('tsconfig-paths/register') module.exports = tsNode.register diff --git a/backend/src/db/factories.ts b/backend/src/db/factories.ts index c75c92fdd..5cb573f12 100644 --- a/backend/src/db/factories.ts +++ b/backend/src/db/factories.ts @@ -4,8 +4,8 @@ import { hashSync } from 'bcryptjs' import { Factory } from 'rosie' import { faker } from '@faker-js/faker' import { getDriver, getNeode } from './neo4j' -import CONFIG from '../config/index' -import generateInviteCode from '../schema/resolvers/helpers/generateInviteCode' +import CONFIG from '@config/index' +import generateInviteCode from '@schema/resolvers/helpers/generateInviteCode' const neode = getNeode() diff --git a/backend/src/db/migrate/store.ts b/backend/src/db/migrate/store.ts index b5dd43e16..742c9f11e 100644 --- a/backend/src/db/migrate/store.ts +++ b/backend/src/db/migrate/store.ts @@ -1,8 +1,8 @@ -import { getDriver, getNeode } from '../neo4j' +import { getDriver, getNeode } from '@db/neo4j' import { hashSync } from 'bcryptjs' import { v4 as uuid } from 'uuid' -import { categories } from '../../constants/categories' -import CONFIG from '../../config' +import { categories } from '@constants/categories' +import CONFIG from '@config/index' const defaultAdmin = { email: 'admin@example.org', diff --git a/backend/src/db/migrate/template.ts b/backend/src/db/migrate/template.ts index 9661dcf9c..f9eb1a338 100644 --- a/backend/src/db/migrate/template.ts +++ b/backend/src/db/migrate/template.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = '' diff --git a/backend/src/db/migrations-examples/20200123150105-merge_duplicate_user_accounts.ts b/backend/src/db/migrations-examples/20200123150105-merge_duplicate_user_accounts.ts index 1480715ae..d1be6542b 100644 --- a/backend/src/db/migrations-examples/20200123150105-merge_duplicate_user_accounts.ts +++ b/backend/src/db/migrations-examples/20200123150105-merge_duplicate_user_accounts.ts @@ -2,8 +2,8 @@ /* eslint-disable promise/prefer-await-to-callbacks */ import { throwError, concat } from 'rxjs' import { flatMap, mergeMap, map, catchError, filter } from 'rxjs/operators' -import { getDriver } from '../neo4j' -import normalizeEmail from '../../schema/resolvers/helpers/normalizeEmail' +import { getDriver } from '@db/neo4j' +import normalizeEmail from '@schema/resolvers/helpers/normalizeEmail' export const description = ` This migration merges duplicate :User and :EmailAddress nodes. It became diff --git a/backend/src/db/migrations-examples/20200123150110-merge_duplicate_location_nodes.ts b/backend/src/db/migrations-examples/20200123150110-merge_duplicate_location_nodes.ts index f56389045..083bfa420 100644 --- a/backend/src/db/migrations-examples/20200123150110-merge_duplicate_location_nodes.ts +++ b/backend/src/db/migrations-examples/20200123150110-merge_duplicate_location_nodes.ts @@ -2,7 +2,7 @@ /* eslint-disable promise/prefer-await-to-callbacks */ import { throwError, concat } from 'rxjs' import { flatMap, mergeMap, map, catchError } from 'rxjs/operators' -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` This migration merges duplicate :Location nodes. It became diff --git a/backend/src/db/migrations-examples/20200127110135-create_muted_relationship_between_existing_blocked_relationships.ts b/backend/src/db/migrations-examples/20200127110135-create_muted_relationship_between_existing_blocked_relationships.ts index 49506aae3..4743ff175 100644 --- a/backend/src/db/migrations-examples/20200127110135-create_muted_relationship_between_existing_blocked_relationships.ts +++ b/backend/src/db/migrations-examples/20200127110135-create_muted_relationship_between_existing_blocked_relationships.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` This migration creates a MUTED relationship between two edges(:User) that have a pre-existing BLOCKED relationship. diff --git a/backend/src/db/migrations-examples/20200206190233-swap_latitude_with_longitude.ts b/backend/src/db/migrations-examples/20200206190233-swap_latitude_with_longitude.ts index 73c329bfc..84e15f9fb 100644 --- a/backend/src/db/migrations-examples/20200206190233-swap_latitude_with_longitude.ts +++ b/backend/src/db/migrations-examples/20200206190233-swap_latitude_with_longitude.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` This migration swaps the value stored in Location.lat with the value diff --git a/backend/src/db/migrations-examples/20200207080200-fulltext_index_for_tags.ts b/backend/src/db/migrations-examples/20200207080200-fulltext_index_for_tags.ts index 8ef6976a3..8eee22318 100644 --- a/backend/src/db/migrations-examples/20200207080200-fulltext_index_for_tags.ts +++ b/backend/src/db/migrations-examples/20200207080200-fulltext_index_for_tags.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = 'This migration adds a fulltext index for the tags in order to search for Hasthags.' diff --git a/backend/src/db/migrations-examples/20200213230248-add_unique_index_to_image_url.ts b/backend/src/db/migrations-examples/20200213230248-add_unique_index_to_image_url.ts index e949713b8..2a30d769e 100644 --- a/backend/src/db/migrations-examples/20200213230248-add_unique_index_to_image_url.ts +++ b/backend/src/db/migrations-examples/20200213230248-add_unique_index_to_image_url.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` We introduced a new node label 'Image' and we need a primary key for it. Best diff --git a/backend/src/db/migrations-examples/20200312140328-bulk_upload_to_s3.ts b/backend/src/db/migrations-examples/20200312140328-bulk_upload_to_s3.ts index 6643e3540..bf154e3d1 100644 --- a/backend/src/db/migrations-examples/20200312140328-bulk_upload_to_s3.ts +++ b/backend/src/db/migrations-examples/20200312140328-bulk_upload_to_s3.ts @@ -1,10 +1,10 @@ /* eslint-disable security/detect-non-literal-fs-filename */ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' import { existsSync, createReadStream } from 'node:fs' import path from 'node:path' import { S3 } from 'aws-sdk' import mime from 'mime-types' -import s3Configs from '../../config' +import s3Configs from '@config/index' import https from 'https' export const description = ` diff --git a/backend/src/db/migrations-examples/20200320200315-refactor_all_images_to_separate_type.ts b/backend/src/db/migrations-examples/20200320200315-refactor_all_images_to_separate_type.ts index 6f347b99b..355eb8476 100644 --- a/backend/src/db/migrations-examples/20200320200315-refactor_all_images_to_separate_type.ts +++ b/backend/src/db/migrations-examples/20200320200315-refactor_all_images_to_separate_type.ts @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` Refactor all our image properties on posts and users to a dedicated type diff --git a/backend/src/db/migrations-examples/20200323140300-remove_deleted_users_obsolete_attributes.ts b/backend/src/db/migrations-examples/20200323140300-remove_deleted_users_obsolete_attributes.ts index a8880d8e8..5ce75ab28 100644 --- a/backend/src/db/migrations-examples/20200323140300-remove_deleted_users_obsolete_attributes.ts +++ b/backend/src/db/migrations-examples/20200323140300-remove_deleted_users_obsolete_attributes.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = 'We should not maintain obsolete attributes for users who have been deleted.' diff --git a/backend/src/db/migrations-examples/20200323160336-remove_deleted_posts_obsolete_attributes.ts b/backend/src/db/migrations-examples/20200323160336-remove_deleted_posts_obsolete_attributes.ts index 70d81e5c0..a2b5ff159 100644 --- a/backend/src/db/migrations-examples/20200323160336-remove_deleted_posts_obsolete_attributes.ts +++ b/backend/src/db/migrations-examples/20200323160336-remove_deleted_posts_obsolete_attributes.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = 'We should not maintain obsolete attributes for posts which have been deleted.' diff --git a/backend/src/db/migrations-examples/20200326160326-remove_dangling_image_urls.ts b/backend/src/db/migrations-examples/20200326160326-remove_dangling_image_urls.ts index 765c7919b..b79d74b9a 100644 --- a/backend/src/db/migrations-examples/20200326160326-remove_dangling_image_urls.ts +++ b/backend/src/db/migrations-examples/20200326160326-remove_dangling_image_urls.ts @@ -1,5 +1,5 @@ /* eslint-disable security/detect-non-literal-fs-filename */ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' import { existsSync } from 'node:fs' export const description = ` diff --git a/backend/src/db/migrations/1614023644903-add-clickedCount-to-posts.ts b/backend/src/db/migrations/1614023644903-add-clickedCount-to-posts.ts index 0d8f28e1b..ce3515ac7 100644 --- a/backend/src/db/migrations/1614023644903-add-clickedCount-to-posts.ts +++ b/backend/src/db/migrations/1614023644903-add-clickedCount-to-posts.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` This migration adds the clickedCount property to all posts, setting it to 0. diff --git a/backend/src/db/migrations/1614177130817-add-viewedTeaserCount-to-posts.ts b/backend/src/db/migrations/1614177130817-add-viewedTeaserCount-to-posts.ts index 31b9d69ff..5615aa4e0 100644 --- a/backend/src/db/migrations/1614177130817-add-viewedTeaserCount-to-posts.ts +++ b/backend/src/db/migrations/1614177130817-add-viewedTeaserCount-to-posts.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` This migration adds the viewedTeaserCount property to all posts, setting it to 0. diff --git a/backend/src/db/migrations/20210506150512-add-donations-node.ts b/backend/src/db/migrations/20210506150512-add-donations-node.ts index b7e0e026a..95b7e9664 100644 --- a/backend/src/db/migrations/20210506150512-add-donations-node.ts +++ b/backend/src/db/migrations/20210506150512-add-donations-node.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' import { v4 as uuid } from 'uuid' export const description = diff --git a/backend/src/db/migrations/20210923140939-add-sendNotificationEmails-property-to-all-users.ts b/backend/src/db/migrations/20210923140939-add-sendNotificationEmails-property-to-all-users.ts index a555efa3a..bd886db02 100644 --- a/backend/src/db/migrations/20210923140939-add-sendNotificationEmails-property-to-all-users.ts +++ b/backend/src/db/migrations/20210923140939-add-sendNotificationEmails-property-to-all-users.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = '' diff --git a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.ts b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.ts index 586a090f4..08dc558fb 100644 --- a/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.ts +++ b/backend/src/db/migrations/20220803060819-create_fulltext_indices_and_unique_keys_for_groups.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` We introduced a new node label 'Group' and we need two primary keys 'id' and 'slug' for it. diff --git a/backend/src/db/migrations/20230320130345-fulltext-search-indexes.ts b/backend/src/db/migrations/20230320130345-fulltext-search-indexes.ts index 34cf7b7a2..2239d6d06 100644 --- a/backend/src/db/migrations/20230320130345-fulltext-search-indexes.ts +++ b/backend/src/db/migrations/20230320130345-fulltext-search-indexes.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = '' diff --git a/backend/src/db/migrations/20230329150329-article-label-for-posts.ts b/backend/src/db/migrations/20230329150329-article-label-for-posts.ts index 2ca705bf4..f33aa818a 100644 --- a/backend/src/db/migrations/20230329150329-article-label-for-posts.ts +++ b/backend/src/db/migrations/20230329150329-article-label-for-posts.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = 'Add to all existing posts the Article label' diff --git a/backend/src/db/migrations/20230608130637-add-postType-property.ts b/backend/src/db/migrations/20230608130637-add-postType-property.ts index 83c2f4ed3..26c99ce48 100644 --- a/backend/src/db/migrations/20230608130637-add-postType-property.ts +++ b/backend/src/db/migrations/20230608130637-add-postType-property.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = 'Add postType property Article to all posts' diff --git a/backend/src/db/migrations/20231017141022-fix-event-dates.ts b/backend/src/db/migrations/20231017141022-fix-event-dates.ts index e793e173c..b2edf17dc 100644 --- a/backend/src/db/migrations/20231017141022-fix-event-dates.ts +++ b/backend/src/db/migrations/20231017141022-fix-event-dates.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` Transform event start and end date of format 'YYYY-MM-DD HH:MM:SS' in CEST diff --git a/backend/src/db/migrations/20250331130323-author-observes-own-post.ts b/backend/src/db/migrations/20250331130323-author-observes-own-post.ts index 026f7f29c..619b5f1fa 100644 --- a/backend/src/db/migrations/20250331130323-author-observes-own-post.ts +++ b/backend/src/db/migrations/20250331130323-author-observes-own-post.ts @@ -1,4 +1,4 @@ -import { getDriver } from '../neo4j' +import { getDriver } from '@db/neo4j' export const description = ` All authors observe their posts. diff --git a/backend/src/db/neo4j.ts b/backend/src/db/neo4j.ts index dc5bf2764..a83c9972d 100644 --- a/backend/src/db/neo4j.ts +++ b/backend/src/db/neo4j.ts @@ -1,8 +1,8 @@ /* eslint-disable import/no-named-as-default-member */ import neo4j from 'neo4j-driver' -import CONFIG from '../config' +import CONFIG from '@config/index' import Neode from 'neode' -import models from '../models' +import models from '@models/index' let driver const defaultOptions = { diff --git a/backend/src/db/seed.ts b/backend/src/db/seed.ts index 4183b8ce5..ae4e0ff01 100644 --- a/backend/src/db/seed.ts +++ b/backend/src/db/seed.ts @@ -1,8 +1,8 @@ /* eslint-disable n/no-process-exit */ import sample from 'lodash/sample' import { createTestClient } from 'apollo-server-testing' -import CONFIG from '../config' -import createServer from '../server' +import CONFIG from '@config/index' +import createServer from '@src/server' import { faker } from '@faker-js/faker' import Factory from './factories' import { getNeode, getDriver } from './neo4j' @@ -10,12 +10,12 @@ import { createGroupMutation, joinGroupMutation, changeGroupMemberRoleMutation, -} from '../graphql/groups' -import { createPostMutation } from '../graphql/posts' -import { createRoomMutation } from '../graphql/rooms' -import { createMessageMutation } from '../graphql/messages' -import { createCommentMutation } from '../graphql/comments' -import { categories } from '../constants/categories' +} from '@graphql/groups' +import { createPostMutation } from '@graphql/posts' +import { createRoomMutation } from '@graphql/rooms' +import { createMessageMutation } from '@graphql/messages' +import { createCommentMutation } from '@graphql/comments' +import { categories } from '@constants/categories' if (CONFIG.PRODUCTION && !CONFIG.PRODUCTION_DB_CLEAN_ALLOW) { throw new Error(`You cannot seed the database in a non-staging and real production environment!`) diff --git a/backend/src/jwt/decode.spec.ts b/backend/src/jwt/decode.spec.ts index ca27ef624..5dd1f3a20 100644 --- a/backend/src/jwt/decode.spec.ts +++ b/backend/src/jwt/decode.spec.ts @@ -1,5 +1,5 @@ -import Factory, { cleanDatabase } from '../db/factories' -import { getDriver, getNeode } from '../db/neo4j' +import Factory, { cleanDatabase } from '@db/factories' +import { getDriver, getNeode } from '@db/neo4j' import decode from './decode' import encode from './encode' diff --git a/backend/src/jwt/decode.ts b/backend/src/jwt/decode.ts index 45888dead..7f614274e 100644 --- a/backend/src/jwt/decode.ts +++ b/backend/src/jwt/decode.ts @@ -1,5 +1,5 @@ import jwt from 'jsonwebtoken' -import CONFIG from '../config' +import CONFIG from '@config/index' export default async (driver, authorizationHeader) => { if (!authorizationHeader) return null diff --git a/backend/src/jwt/encode.spec.ts b/backend/src/jwt/encode.spec.ts index 37775eb55..b5a6884c9 100644 --- a/backend/src/jwt/encode.spec.ts +++ b/backend/src/jwt/encode.spec.ts @@ -1,6 +1,6 @@ import encode from './encode' import jwt from 'jsonwebtoken' -import CONFIG from '../config' +import CONFIG from '@config/index' describe('encode', () => { let payload diff --git a/backend/src/jwt/encode.ts b/backend/src/jwt/encode.ts index 0df81fa02..e4600e695 100644 --- a/backend/src/jwt/encode.ts +++ b/backend/src/jwt/encode.ts @@ -1,5 +1,5 @@ import jwt from 'jsonwebtoken' -import CONFIG from '../config' +import CONFIG from '@config/index' // Generate an Access Token for the given User ID export default function encode(user) { diff --git a/backend/src/middleware/excerptMiddleware.ts b/backend/src/middleware/excerptMiddleware.ts index 28b30fb4f..f1ea1425b 100644 --- a/backend/src/middleware/excerptMiddleware.ts +++ b/backend/src/middleware/excerptMiddleware.ts @@ -1,5 +1,5 @@ import trunc from 'trunc-html' -import { DESCRIPTION_EXCERPT_HTML_LENGTH } from '../constants/groups' +import { DESCRIPTION_EXCERPT_HTML_LENGTH } from '@constants/groups' export default { Mutation: { diff --git a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.ts b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.ts index 10d53ab7b..1ec96826b 100644 --- a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.ts +++ b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.ts @@ -1,8 +1,8 @@ import gql from 'graphql-tag' -import { cleanDatabase } from '../../db/factories' +import { cleanDatabase } from '@db/factories' import { createTestClient } from 'apollo-server-testing' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' let server let query diff --git a/backend/src/middleware/helpers/email/sendMail.ts b/backend/src/middleware/helpers/email/sendMail.ts index 6c1e0d8ba..82f042ece 100644 --- a/backend/src/middleware/helpers/email/sendMail.ts +++ b/backend/src/middleware/helpers/email/sendMail.ts @@ -1,5 +1,5 @@ -import CONFIG from '../../../config' -import { cleanHtml } from '../cleanHtml' +import CONFIG from '@config/index' +import { cleanHtml } from '@middleware/helpers/cleanHtml' import nodemailer from 'nodemailer' import { htmlToText } from 'nodemailer-html-to-text' diff --git a/backend/src/middleware/helpers/email/templateBuilder.spec.ts b/backend/src/middleware/helpers/email/templateBuilder.spec.ts index 437672a9a..7907fe56b 100644 --- a/backend/src/middleware/helpers/email/templateBuilder.spec.ts +++ b/backend/src/middleware/helpers/email/templateBuilder.spec.ts @@ -1,5 +1,5 @@ -import CONFIG from '../../../config' -import logosWebapp from '../../../config/logos' +import CONFIG from '@config/index' +import logosWebapp from '@config/logos' import { signupTemplate, emailVerificationTemplate, diff --git a/backend/src/middleware/helpers/email/templateBuilder.ts b/backend/src/middleware/helpers/email/templateBuilder.ts index 398cbabf9..4a3d26e89 100644 --- a/backend/src/middleware/helpers/email/templateBuilder.ts +++ b/backend/src/middleware/helpers/email/templateBuilder.ts @@ -1,8 +1,8 @@ /* eslint-disable import/no-namespace */ import mustache from 'mustache' -import CONFIG from '../../../config' -import metadata from '../../../config/metadata' -import logosWebapp from '../../../config/logos' +import CONFIG from '@config/index' +import metadata from '@config//metadata' +import logosWebapp from '@config//logos' import * as templates from './templates' import * as templatesEN from './templates/en' diff --git a/backend/src/middleware/index.ts b/backend/src/middleware/index.ts index 8eca3c8e8..3f593920f 100644 --- a/backend/src/middleware/index.ts +++ b/backend/src/middleware/index.ts @@ -1,6 +1,6 @@ /* eslint-disable security/detect-object-injection */ import { applyMiddleware } from 'graphql-middleware' -import CONFIG from '../config' +import CONFIG from '@config/index' import softDelete from './softDelete/softDeleteMiddleware' import sluggify from './sluggifyMiddleware' import excerpt from './excerptMiddleware' diff --git a/backend/src/middleware/languages/languages.spec.ts b/backend/src/middleware/languages/languages.spec.ts index 8daa311e1..ee41b6740 100644 --- a/backend/src/middleware/languages/languages.spec.ts +++ b/backend/src/middleware/languages/languages.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' let mutate diff --git a/backend/src/middleware/languages/languages.ts b/backend/src/middleware/languages/languages.ts index 3c043ceec..7a86fb2ef 100644 --- a/backend/src/middleware/languages/languages.ts +++ b/backend/src/middleware/languages/languages.ts @@ -1,5 +1,5 @@ import LanguageDetect from 'languagedetect' -import { removeHtmlTags } from '../helpers/cleanHtml' +import { removeHtmlTags } from '@middleware/helpers/cleanHtml' const setPostLanguage = (text, defaultLanguage) => { const lngDetector = new LanguageDetect() diff --git a/backend/src/middleware/login/loginMiddleware.ts b/backend/src/middleware/login/loginMiddleware.ts index abf0d0b18..04d189b4b 100644 --- a/backend/src/middleware/login/loginMiddleware.ts +++ b/backend/src/middleware/login/loginMiddleware.ts @@ -1,10 +1,10 @@ -import { sendMail } from '../helpers/email/sendMail' +import { sendMail } from '@middleware/helpers/email/sendMail' import { signupTemplate, resetPasswordTemplate, wrongAccountTemplate, emailVerificationTemplate, -} from '../helpers/email/templateBuilder' +} from '@middleware/helpers/email/templateBuilder' const sendSignupMail = async (resolve, root, args, context, resolveInfo) => { const { inviteCode } = args diff --git a/backend/src/middleware/notifications/notificationsMiddleware.spec.ts b/backend/src/middleware/notifications/notificationsMiddleware.spec.ts index 50d655484..ad4d80e04 100644 --- a/backend/src/middleware/notifications/notificationsMiddleware.spec.ts +++ b/backend/src/middleware/notifications/notificationsMiddleware.spec.ts @@ -1,17 +1,17 @@ import gql from 'graphql-tag' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import { createTestClient } from 'apollo-server-testing' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer, { pubsub } from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer, { pubsub } from '@src/server' import { createGroupMutation, joinGroupMutation, leaveGroupMutation, changeGroupMemberRoleMutation, removeUserFromGroupMutation, -} from '../../graphql/groups' -import { createMessageMutation } from '../../graphql/messages' -import { createRoomMutation } from '../../graphql/rooms' +} from '@graphql/groups' +import { createMessageMutation } from '@graphql/messages' +import { createRoomMutation } from '@graphql/rooms' const sendMailMock = jest.fn() jest.mock('../helpers/email/sendMail', () => ({ diff --git a/backend/src/middleware/notifications/notificationsMiddleware.ts b/backend/src/middleware/notifications/notificationsMiddleware.ts index 09212a29d..e08753ec2 100644 --- a/backend/src/middleware/notifications/notificationsMiddleware.ts +++ b/backend/src/middleware/notifications/notificationsMiddleware.ts @@ -1,11 +1,14 @@ /* eslint-disable security/detect-object-injection */ // eslint-disable-next-line import/no-cycle -import { pubsub, NOTIFICATION_ADDED } from '../../server' +import { pubsub, NOTIFICATION_ADDED } from '@src/server' import extractMentionedUsers from './mentions/extractMentionedUsers' -import { validateNotifyUsers } from '../validation/validationMiddleware' -import { sendMail } from '../helpers/email/sendMail' -import { chatMessageTemplate, notificationTemplate } from '../helpers/email/templateBuilder' -import { isUserOnline } from '../helpers/isUserOnline' +import { validateNotifyUsers } from '@middleware/validation/validationMiddleware' +import { sendMail } from '@middleware/helpers/email/sendMail' +import { + chatMessageTemplate, + notificationTemplate, +} from '@middleware/helpers/email/templateBuilder' +import { isUserOnline } from '@middleware/helpers/isUserOnline' const queryNotificationEmails = async (context, notificationUserIds) => { if (!(notificationUserIds && notificationUserIds.length)) return [] diff --git a/backend/src/middleware/notifications/observing-posts.spec.ts b/backend/src/middleware/notifications/observing-posts.spec.ts index 13b971ed8..9e85f3733 100644 --- a/backend/src/middleware/notifications/observing-posts.spec.ts +++ b/backend/src/middleware/notifications/observing-posts.spec.ts @@ -1,10 +1,10 @@ import gql from 'graphql-tag' -import { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' -import CONFIG from '../../config' +import CONFIG from '@config/index' CONFIG.CATEGORIES_ACTIVE = false diff --git a/backend/src/middleware/orderByMiddleware.spec.ts b/backend/src/middleware/orderByMiddleware.spec.ts index 7453cf301..639e87c00 100644 --- a/backend/src/middleware/orderByMiddleware.spec.ts +++ b/backend/src/middleware/orderByMiddleware.spec.ts @@ -1,8 +1,8 @@ import gql from 'graphql-tag' -import { cleanDatabase } from '../db/factories' -import { getNeode, getDriver } from '../db/neo4j' +import { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' import { createTestClient } from 'apollo-server-testing' -import createServer from '../server' +import createServer from '@src/server' const neode = getNeode() const driver = getDriver() diff --git a/backend/src/middleware/permissionsMiddleware.spec.ts b/backend/src/middleware/permissionsMiddleware.spec.ts index 667e74164..54681b519 100644 --- a/backend/src/middleware/permissionsMiddleware.spec.ts +++ b/backend/src/middleware/permissionsMiddleware.spec.ts @@ -1,9 +1,9 @@ import { createTestClient } from 'apollo-server-testing' -import createServer from '../server' -import Factory, { cleanDatabase } from '../db/factories' +import createServer from '@src/server' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver, getNeode } from '../db/neo4j' -import CONFIG from '../config' +import { getDriver, getNeode } from '@db/neo4j' +import CONFIG from '@config/index' const instance = getNeode() const driver = getDriver() diff --git a/backend/src/middleware/permissionsMiddleware.ts b/backend/src/middleware/permissionsMiddleware.ts index a38610efd..2be73edd4 100644 --- a/backend/src/middleware/permissionsMiddleware.ts +++ b/backend/src/middleware/permissionsMiddleware.ts @@ -1,7 +1,7 @@ import { rule, shield, deny, allow, or, and } from 'graphql-shield' -import { getNeode } from '../db/neo4j' -import CONFIG from '../config' -import { validateInviteCode } from '../schema/resolvers/transactions/inviteCodes' +import { getNeode } from '@db/neo4j' +import CONFIG from '@config/index' +import { validateInviteCode } from '@schema/resolvers/transactions/inviteCodes' const debug = !!CONFIG.DEBUG const allowExternalErrors = true diff --git a/backend/src/middleware/sentryMiddleware.ts b/backend/src/middleware/sentryMiddleware.ts index ace2c4eeb..ac2d575ef 100644 --- a/backend/src/middleware/sentryMiddleware.ts +++ b/backend/src/middleware/sentryMiddleware.ts @@ -1,5 +1,5 @@ import { sentry } from 'graphql-middleware-sentry' -import CONFIG from '../config' +import CONFIG from '@config/index' // eslint-disable-next-line import/no-mutable-exports let sentryMiddleware: any = (resolve, root, args, context, resolveInfo) => diff --git a/backend/src/middleware/slugifyMiddleware.spec.ts b/backend/src/middleware/slugifyMiddleware.spec.ts index 26bb2cb96..b09b33a13 100644 --- a/backend/src/middleware/slugifyMiddleware.spec.ts +++ b/backend/src/middleware/slugifyMiddleware.spec.ts @@ -1,10 +1,10 @@ -import { getNeode, getDriver } from '../db/neo4j' -import createServer from '../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../db/factories' -import { createGroupMutation, updateGroupMutation } from '../graphql/groups' -import { createPostMutation } from '../graphql/posts' -import { signupVerificationMutation } from '../graphql/authentications' +import Factory, { cleanDatabase } from '@db/factories' +import { createGroupMutation, updateGroupMutation } from '@graphql/groups' +import { createPostMutation } from '@graphql/posts' +import { signupVerificationMutation } from '@graphql/authentications' let authenticatedUser let variables diff --git a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.ts b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.ts index 88d46a1c7..c4e6b4d6e 100644 --- a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.ts +++ b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' const neode = getNeode() diff --git a/backend/src/middleware/userInteractions.spec.ts b/backend/src/middleware/userInteractions.spec.ts index 94d1ff274..b2ea1c389 100644 --- a/backend/src/middleware/userInteractions.spec.ts +++ b/backend/src/middleware/userInteractions.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../db/neo4j' -import createServer from '../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' let query, aUser, bUser, post, authenticatedUser, variables diff --git a/backend/src/middleware/validation/validationMiddleware.spec.ts b/backend/src/middleware/validation/validationMiddleware.spec.ts index 2e1cd6fa7..af8dfab97 100644 --- a/backend/src/middleware/validation/validationMiddleware.spec.ts +++ b/backend/src/middleware/validation/validationMiddleware.spec.ts @@ -1,8 +1,8 @@ import gql from 'graphql-tag' -import Factory, { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' +import createServer from '@src/server' const neode = getNeode() const driver = getDriver() diff --git a/backend/src/middleware/xssMiddleware.ts b/backend/src/middleware/xssMiddleware.ts index 7b1b66145..5b9114837 100644 --- a/backend/src/middleware/xssMiddleware.ts +++ b/backend/src/middleware/xssMiddleware.ts @@ -1,4 +1,4 @@ -import walkRecursive from '../helpers/walkRecursive' +import walkRecursive from '@helpers/walkRecursive' import { cleanHtml } from './helpers/cleanHtml' // exclamation mark separetes field names, that should not be sanitized diff --git a/backend/src/models/User.spec.ts b/backend/src/models/User.spec.ts index 17f2fe0a9..3fde03462 100644 --- a/backend/src/models/User.spec.ts +++ b/backend/src/models/User.spec.ts @@ -1,5 +1,5 @@ -import { cleanDatabase } from '../db/factories' -import { getNeode, getDriver } from '../db/neo4j' +import { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/comments.spec.ts b/backend/src/schema/resolvers/comments.spec.ts index b2730dad4..91bf7494d 100644 --- a/backend/src/schema/resolvers/comments.spec.ts +++ b/backend/src/schema/resolvers/comments.spec.ts @@ -1,8 +1,8 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' -import { getNeode, getDriver } from '../../db/neo4j' +import createServer from '@src/server' +import { getNeode, getDriver } from '@db/neo4j' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/donations.spec.ts b/backend/src/schema/resolvers/donations.spec.ts index 9fc010eca..fdc4aa976 100644 --- a/backend/src/schema/resolvers/donations.spec.ts +++ b/backend/src/schema/resolvers/donations.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' let mutate, query, authenticatedUser, variables const instance = getNeode() diff --git a/backend/src/schema/resolvers/emails.spec.ts b/backend/src/schema/resolvers/emails.spec.ts index 02a631495..db17ee93e 100644 --- a/backend/src/schema/resolvers/emails.spec.ts +++ b/backend/src/schema/resolvers/emails.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver, getNeode } from '../../db/neo4j' -import createServer from '../../server' +import { getDriver, getNeode } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' const neode = getNeode() diff --git a/backend/src/schema/resolvers/embeds.spec.ts b/backend/src/schema/resolvers/embeds.spec.ts index 51dc18bd8..095497142 100644 --- a/backend/src/schema/resolvers/embeds.spec.ts +++ b/backend/src/schema/resolvers/embeds.spec.ts @@ -2,7 +2,7 @@ import fetch from 'node-fetch' import fs from 'node:fs' import path from 'node:path' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' +import createServer from '@src/server' import gql from 'graphql-tag' jest.mock('node-fetch') diff --git a/backend/src/schema/resolvers/filter-posts.spec.ts b/backend/src/schema/resolvers/filter-posts.spec.ts index 95a072d8a..20b664dc8 100644 --- a/backend/src/schema/resolvers/filter-posts.spec.ts +++ b/backend/src/schema/resolvers/filter-posts.spec.ts @@ -1,9 +1,9 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' -import CONFIG from '../../config' -import { filterPosts, createPostMutation } from '../../graphql/posts' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' +import CONFIG from '@config/index' +import { filterPosts, createPostMutation } from '@graphql/posts' CONFIG.CATEGORIES_ACTIVE = false diff --git a/backend/src/schema/resolvers/follow.spec.ts b/backend/src/schema/resolvers/follow.spec.ts index c9d8dc1bf..25dd8ac1a 100644 --- a/backend/src/schema/resolvers/follow.spec.ts +++ b/backend/src/schema/resolvers/follow.spec.ts @@ -1,7 +1,7 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' -import { getDriver, getNeode } from '../../db/neo4j' -import createServer from '../../server' +import Factory, { cleanDatabase } from '@db/factories' +import { getDriver, getNeode } from '@db/neo4j' +import createServer from '@src/server' import gql from 'graphql-tag' const driver = getDriver() diff --git a/backend/src/schema/resolvers/follow.ts b/backend/src/schema/resolvers/follow.ts index 6cf4938c7..11447974d 100644 --- a/backend/src/schema/resolvers/follow.ts +++ b/backend/src/schema/resolvers/follow.ts @@ -1,4 +1,4 @@ -import { getNeode } from '../../db/neo4j' +import { getNeode } from '@db/neo4j' const neode = getNeode() diff --git a/backend/src/schema/resolvers/groups.spec.ts b/backend/src/schema/resolvers/groups.spec.ts index 1d66b376c..9cea62491 100644 --- a/backend/src/schema/resolvers/groups.spec.ts +++ b/backend/src/schema/resolvers/groups.spec.ts @@ -1,5 +1,5 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import { createGroupMutation, updateGroupMutation, @@ -9,10 +9,10 @@ import { removeUserFromGroupMutation, groupMembersQuery, groupQuery, -} from '../../graphql/groups' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' -import CONFIG from '../../config' +} from '@graphql/groups' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' +import CONFIG from '@config/index' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/groups.ts b/backend/src/schema/resolvers/groups.ts index f5282a3bb..90fbe1ba0 100644 --- a/backend/src/schema/resolvers/groups.ts +++ b/backend/src/schema/resolvers/groups.ts @@ -1,9 +1,9 @@ import { v4 as uuid } from 'uuid' import { UserInputError } from 'apollo-server' -import CONFIG from '../../config' -import { CATEGORIES_MIN, CATEGORIES_MAX } from '../../constants/categories' -import { DESCRIPTION_WITHOUT_HTML_LENGTH_MIN } from '../../constants/groups' -import { removeHtmlTags } from '../../middleware/helpers/cleanHtml' +import CONFIG from '@config/index' +import { CATEGORIES_MIN, CATEGORIES_MAX } from '@constants/categories' +import { DESCRIPTION_WITHOUT_HTML_LENGTH_MIN } from '@constants/groups' +import { removeHtmlTags } from '@middleware/helpers/cleanHtml' import Resolver, { removeUndefinedNullValuesFromObject, convertObjectToCypherMapLiteral, diff --git a/backend/src/schema/resolvers/helpers/filterForMutedUsers.ts b/backend/src/schema/resolvers/helpers/filterForMutedUsers.ts index 1d1369e0d..0495a5dfd 100644 --- a/backend/src/schema/resolvers/helpers/filterForMutedUsers.ts +++ b/backend/src/schema/resolvers/helpers/filterForMutedUsers.ts @@ -1,4 +1,4 @@ -import { getMutedUsers } from '../users' +import { getMutedUsers } from '@schema/resolvers/users' import { mergeWith, isArray } from 'lodash' export const filterForMutedUsers = async (params, context) => { diff --git a/backend/src/schema/resolvers/helpers/generateInviteCode.ts b/backend/src/schema/resolvers/helpers/generateInviteCode.ts index e3f555931..6e580fab9 100644 --- a/backend/src/schema/resolvers/helpers/generateInviteCode.ts +++ b/backend/src/schema/resolvers/helpers/generateInviteCode.ts @@ -1,4 +1,4 @@ -import CONSTANTS_REGISTRATION from '../../../constants/registration' +import CONSTANTS_REGISTRATION from '@constants/registration' export default function generateInviteCode() { // 6 random numbers in [ 0, 35 ] are 36 possible numbers (10 [0-9] + 26 [A-Z]) diff --git a/backend/src/schema/resolvers/helpers/generateNonce.ts b/backend/src/schema/resolvers/helpers/generateNonce.ts index de1294567..7e0f7542c 100644 --- a/backend/src/schema/resolvers/helpers/generateNonce.ts +++ b/backend/src/schema/resolvers/helpers/generateNonce.ts @@ -1,4 +1,4 @@ -import CONSTANTS_REGISTRATION from '../../../constants/registration' +import CONSTANTS_REGISTRATION from '@constants/registration' // TODO: why this is not used in resolver 'requestPasswordReset'? export default function generateNonce() { diff --git a/backend/src/schema/resolvers/images/images.spec.ts b/backend/src/schema/resolvers/images/images.spec.ts index 94602ccd8..02d46c61d 100644 --- a/backend/src/schema/resolvers/images/images.spec.ts +++ b/backend/src/schema/resolvers/images/images.spec.ts @@ -1,7 +1,7 @@ /* eslint-disable promise/prefer-await-to-callbacks */ import { deleteImage, mergeImage } from './images' -import { getNeode, getDriver } from '../../../db/neo4j' -import Factory, { cleanDatabase } from '../../../db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import Factory, { cleanDatabase } from '@db/factories' import { UserInputError } from 'apollo-server' const driver = getDriver() diff --git a/backend/src/schema/resolvers/images/images.ts b/backend/src/schema/resolvers/images/images.ts index 5d19d96f7..f34c6c226 100644 --- a/backend/src/schema/resolvers/images/images.ts +++ b/backend/src/schema/resolvers/images/images.ts @@ -6,8 +6,8 @@ import { S3 } from 'aws-sdk' import slug from 'slug' import { existsSync, unlinkSync, createWriteStream } from 'node:fs' import { UserInputError } from 'apollo-server' -import { getDriver } from '../../../db/neo4j' -import CONFIG from '../../../config' +import { getDriver } from '@db/neo4j' +import CONFIG from '@config/index' // const widths = [34, 160, 320, 640, 1024] const { AWS_ENDPOINT: endpoint, AWS_REGION: region, AWS_BUCKET: Bucket, S3_CONFIGURED } = CONFIG diff --git a/backend/src/schema/resolvers/inviteCodes.spec.ts b/backend/src/schema/resolvers/inviteCodes.spec.ts index bd6a55bc8..93124dbe2 100644 --- a/backend/src/schema/resolvers/inviteCodes.spec.ts +++ b/backend/src/schema/resolvers/inviteCodes.spec.ts @@ -1,10 +1,10 @@ /* eslint-disable security/detect-non-literal-regexp */ -import Factory, { cleanDatabase } from '../../db/factories' -import { getDriver } from '../../db/neo4j' +import Factory, { cleanDatabase } from '@db/factories' +import { getDriver } from '@db/neo4j' import gql from 'graphql-tag' -import createServer from '../../server' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' -import CONSTANTS_REGISTRATION from '../../constants/registration' +import CONSTANTS_REGISTRATION from '@constants/registration' let user let query diff --git a/backend/src/schema/resolvers/locations.spec.ts b/backend/src/schema/resolvers/locations.spec.ts index 82aebd441..8880ed830 100644 --- a/backend/src/schema/resolvers/locations.spec.ts +++ b/backend/src/schema/resolvers/locations.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' let mutate, authenticatedUser diff --git a/backend/src/schema/resolvers/messages.spec.ts b/backend/src/schema/resolvers/messages.spec.ts index 83d9fdc6b..d6bd752c0 100644 --- a/backend/src/schema/resolvers/messages.spec.ts +++ b/backend/src/schema/resolvers/messages.spec.ts @@ -1,9 +1,9 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' -import { createRoomMutation, roomQuery } from '../../graphql/rooms' -import { createMessageMutation, messageQuery, markMessagesAsSeen } from '../../graphql/messages' -import createServer, { pubsub } from '../../server' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import { createRoomMutation, roomQuery } from '@graphql/rooms' +import { createMessageMutation, messageQuery, markMessagesAsSeen } from '@graphql/messages' +import createServer, { pubsub } from '@src/server' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/messages.ts b/backend/src/schema/resolvers/messages.ts index c1381045f..729059307 100644 --- a/backend/src/schema/resolvers/messages.ts +++ b/backend/src/schema/resolvers/messages.ts @@ -2,7 +2,7 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import Resolver from './helpers/Resolver' import { getUnreadRoomsCount } from './rooms' -import { pubsub, ROOM_COUNT_UPDATED, CHAT_MESSAGE_ADDED } from '../../server' +import { pubsub, ROOM_COUNT_UPDATED, CHAT_MESSAGE_ADDED } from '@src/server' import { withFilter } from 'graphql-subscriptions' const setMessagesAsDistributed = async (undistributedMessagesIds, session) => { diff --git a/backend/src/schema/resolvers/moderation.spec.ts b/backend/src/schema/resolvers/moderation.spec.ts index 1665e9446..a8155d1a8 100644 --- a/backend/src/schema/resolvers/moderation.spec.ts +++ b/backend/src/schema/resolvers/moderation.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' const neode = getNeode() const driver = getDriver() diff --git a/backend/src/schema/resolvers/notifications.spec.ts b/backend/src/schema/resolvers/notifications.spec.ts index e3bcb9489..6b3d08b8b 100644 --- a/backend/src/schema/resolvers/notifications.spec.ts +++ b/backend/src/schema/resolvers/notifications.spec.ts @@ -1,13 +1,13 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver } from '../../db/neo4j' +import { getDriver } from '@db/neo4j' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' +import createServer from '@src/server' import { markAsReadMutation, markAllAsReadMutation, notificationQuery, -} from '../../graphql/notifications' +} from '@graphql/notifications' const driver = getDriver() let authenticatedUser diff --git a/backend/src/schema/resolvers/notifications.ts b/backend/src/schema/resolvers/notifications.ts index 6a3e232cc..63307d54c 100644 --- a/backend/src/schema/resolvers/notifications.ts +++ b/backend/src/schema/resolvers/notifications.ts @@ -1,6 +1,6 @@ import log from './helpers/databaseLogger' import { withFilter } from 'graphql-subscriptions' -import { pubsub, NOTIFICATION_ADDED } from '../../server' +import { pubsub, NOTIFICATION_ADDED } from '@src/server' export default { Subscription: { diff --git a/backend/src/schema/resolvers/observePosts.spec.ts b/backend/src/schema/resolvers/observePosts.spec.ts index 2d98c33a7..ab94a1934 100644 --- a/backend/src/schema/resolvers/observePosts.spec.ts +++ b/backend/src/schema/resolvers/observePosts.spec.ts @@ -1,11 +1,11 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' -import { createPostMutation } from '../../graphql/posts' -import CONFIG from '../../config' +import { createPostMutation } from '@graphql/posts' +import CONFIG from '@config/index' CONFIG.CATEGORIES_ACTIVE = false diff --git a/backend/src/schema/resolvers/passwordReset.spec.ts b/backend/src/schema/resolvers/passwordReset.spec.ts index d0ca3e4a8..f939b3b1c 100644 --- a/backend/src/schema/resolvers/passwordReset.spec.ts +++ b/backend/src/schema/resolvers/passwordReset.spec.ts @@ -1,9 +1,9 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import CONSTANTS_REGISTRATION from '../../constants/registration' +import { getNeode, getDriver } from '@db/neo4j' +import CONSTANTS_REGISTRATION from '@constants/registration' import createPasswordReset from './helpers/createPasswordReset' -import createServer from '../../server' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' const neode = getNeode() diff --git a/backend/src/schema/resolvers/passwordReset.ts b/backend/src/schema/resolvers/passwordReset.ts index 4adca11d3..8ec26538c 100644 --- a/backend/src/schema/resolvers/passwordReset.ts +++ b/backend/src/schema/resolvers/passwordReset.ts @@ -1,6 +1,6 @@ import { v4 as uuid } from 'uuid' import bcrypt from 'bcryptjs' -import CONSTANTS_REGISTRATION from '../../constants/registration' +import CONSTANTS_REGISTRATION from '@constants/registration' import createPasswordReset from './helpers/createPasswordReset' export default { diff --git a/backend/src/schema/resolvers/posts.spec.ts b/backend/src/schema/resolvers/posts.spec.ts index d7eb063d2..3c52e78f8 100644 --- a/backend/src/schema/resolvers/posts.spec.ts +++ b/backend/src/schema/resolvers/posts.spec.ts @@ -1,10 +1,10 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' -import { createPostMutation } from '../../graphql/posts' -import CONFIG from '../../config' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' +import { createPostMutation } from '@graphql/posts' +import CONFIG from '@config/index' CONFIG.CATEGORIES_ACTIVE = true diff --git a/backend/src/schema/resolvers/posts.ts b/backend/src/schema/resolvers/posts.ts index ce342cea7..534782369 100644 --- a/backend/src/schema/resolvers/posts.ts +++ b/backend/src/schema/resolvers/posts.ts @@ -9,7 +9,7 @@ import { filterInvisiblePosts } from './helpers/filterInvisiblePosts' import { filterPostsOfMyGroups } from './helpers/filterPostsOfMyGroups' import { validateEventParams } from './helpers/events' import { createOrUpdateLocations } from './users/location' -import CONFIG from '../../config' +import CONFIG from '@config/index' const maintainPinnedPosts = (params) => { const pinnedPostFilter = { pinned: true } diff --git a/backend/src/schema/resolvers/postsInGroups.spec.ts b/backend/src/schema/resolvers/postsInGroups.spec.ts index c7fc34ec7..d6b19e6d2 100644 --- a/backend/src/schema/resolvers/postsInGroups.spec.ts +++ b/backend/src/schema/resolvers/postsInGroups.spec.ts @@ -1,28 +1,28 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createGroupMutation, changeGroupMemberRoleMutation, leaveGroupMutation, -} from '../../graphql/groups' +} from '@graphql/groups' import { createPostMutation, postQuery, filterPosts, profilePagePosts, searchPosts, -} from '../../graphql/posts' -import { createCommentMutation } from '../../graphql/comments' +} from '@graphql/posts' +import { createCommentMutation } from '@graphql/comments' // eslint-disable-next-line no-unused-vars -import { DESCRIPTION_WITHOUT_HTML_LENGTH_MIN } from '../../constants/groups' -import CONFIG from '../../config' -import { signupVerificationMutation } from '../../graphql/authentications' +import { DESCRIPTION_WITHOUT_HTML_LENGTH_MIN } from '@constants/groups' +import CONFIG from '@config/index' +import { signupVerificationMutation } from '@graphql/authentications' CONFIG.CATEGORIES_ACTIVE = false -jest.mock('../../constants/groups', () => { +jest.mock('@constants/groups', () => { return { __esModule: true, DESCRIPTION_WITHOUT_HTML_LENGTH_MIN: 5, diff --git a/backend/src/schema/resolvers/registration.spec.ts b/backend/src/schema/resolvers/registration.spec.ts index 54e7f1ba7..cb63fbe5c 100644 --- a/backend/src/schema/resolvers/registration.spec.ts +++ b/backend/src/schema/resolvers/registration.spec.ts @@ -1,9 +1,9 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver, getNeode } from '../../db/neo4j' -import createServer from '../../server' +import { getDriver, getNeode } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' -import CONFIG from '../../config' +import CONFIG from '@config/index' const neode = getNeode() diff --git a/backend/src/schema/resolvers/registration.ts b/backend/src/schema/resolvers/registration.ts index 8d5aac346..12f13fff3 100644 --- a/backend/src/schema/resolvers/registration.ts +++ b/backend/src/schema/resolvers/registration.ts @@ -1,6 +1,6 @@ import { UserInputError } from 'apollo-server' -import { getNeode } from '../../db/neo4j' -import encryptPassword from '../../helpers/encryptPassword' +import { getNeode } from '@db/neo4j' +import encryptPassword from '@helpers/encryptPassword' import generateNonce from './helpers/generateNonce' import existingEmailAddress from './helpers/existingEmailAddress' import normalizeEmail from './helpers/normalizeEmail' diff --git a/backend/src/schema/resolvers/reports.spec.ts b/backend/src/schema/resolvers/reports.spec.ts index 2e6b4d302..f1e405c37 100644 --- a/backend/src/schema/resolvers/reports.spec.ts +++ b/backend/src/schema/resolvers/reports.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' -import Factory, { cleanDatabase } from '../../db/factories' +import createServer from '@src/server' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver, getNeode } from '../../db/neo4j' +import { getDriver, getNeode } from '@db/neo4j' const instance = getNeode() const driver = getDriver() diff --git a/backend/src/schema/resolvers/rewards.spec.ts b/backend/src/schema/resolvers/rewards.spec.ts index 06fe87ec0..cbd8c58c7 100644 --- a/backend/src/schema/resolvers/rewards.spec.ts +++ b/backend/src/schema/resolvers/rewards.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' const driver = getDriver() const instance = getNeode() diff --git a/backend/src/schema/resolvers/rewards.ts b/backend/src/schema/resolvers/rewards.ts index c271ca8f8..4022f9180 100644 --- a/backend/src/schema/resolvers/rewards.ts +++ b/backend/src/schema/resolvers/rewards.ts @@ -1,4 +1,4 @@ -import { getNeode } from '../../db/neo4j' +import { getNeode } from '@db/neo4j' import { UserInputError } from 'apollo-server' const neode = getNeode() diff --git a/backend/src/schema/resolvers/rooms.spec.ts b/backend/src/schema/resolvers/rooms.spec.ts index 2e26dc1e3..154f9eb43 100644 --- a/backend/src/schema/resolvers/rooms.spec.ts +++ b/backend/src/schema/resolvers/rooms.spec.ts @@ -1,9 +1,9 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' -import { getNeode, getDriver } from '../../db/neo4j' -import { createRoomMutation, roomQuery, unreadRoomsQuery } from '../../graphql/rooms' -import { createMessageMutation } from '../../graphql/messages' -import createServer from '../../server' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' +import { createRoomMutation, roomQuery, unreadRoomsQuery } from '@graphql/rooms' +import { createMessageMutation } from '@graphql/messages' +import createServer from '@src/server' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/rooms.ts b/backend/src/schema/resolvers/rooms.ts index 5382c5ee7..479e361ea 100644 --- a/backend/src/schema/resolvers/rooms.ts +++ b/backend/src/schema/resolvers/rooms.ts @@ -1,6 +1,6 @@ import { neo4jgraphql } from 'neo4j-graphql-js' import Resolver from './helpers/Resolver' -import { pubsub, ROOM_COUNT_UPDATED } from '../../server' +import { pubsub, ROOM_COUNT_UPDATED } from '@src/server' import { withFilter } from 'graphql-subscriptions' export const getUnreadRoomsCount = async (userId, session) => { diff --git a/backend/src/schema/resolvers/searches.spec.ts b/backend/src/schema/resolvers/searches.spec.ts index f889c2ac8..385dc5a36 100644 --- a/backend/src/schema/resolvers/searches.spec.ts +++ b/backend/src/schema/resolvers/searches.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' let query, authenticatedUser, user diff --git a/backend/src/schema/resolvers/shout.spec.ts b/backend/src/schema/resolvers/shout.spec.ts index 294a28a76..02d52f46f 100644 --- a/backend/src/schema/resolvers/shout.spec.ts +++ b/backend/src/schema/resolvers/shout.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' let mutate, query, authenticatedUser, variables const instance = getNeode() diff --git a/backend/src/schema/resolvers/socialMedia.spec.ts b/backend/src/schema/resolvers/socialMedia.spec.ts index 8265e8376..51e888118 100644 --- a/backend/src/schema/resolvers/socialMedia.spec.ts +++ b/backend/src/schema/resolvers/socialMedia.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import createServer from '../../server' -import Factory, { cleanDatabase } from '../../db/factories' +import createServer from '@src/server' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getDriver } from '../../db/neo4j' +import { getDriver } from '@db/neo4j' const driver = getDriver() diff --git a/backend/src/schema/resolvers/socialMedia.ts b/backend/src/schema/resolvers/socialMedia.ts index c5b9dcd91..6503a5110 100644 --- a/backend/src/schema/resolvers/socialMedia.ts +++ b/backend/src/schema/resolvers/socialMedia.ts @@ -1,4 +1,4 @@ -import { getNeode } from '../../db/neo4j' +import { getNeode } from '@db/neo4j' import Resolver from './helpers/Resolver' const neode = getNeode() diff --git a/backend/src/schema/resolvers/statistics.spec.ts b/backend/src/schema/resolvers/statistics.spec.ts index 15aa2d449..f81c1ba0b 100644 --- a/backend/src/schema/resolvers/statistics.spec.ts +++ b/backend/src/schema/resolvers/statistics.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' let query, authenticatedUser const instance = getNeode() diff --git a/backend/src/schema/resolvers/userData.spec.ts b/backend/src/schema/resolvers/userData.spec.ts index 3c521a4f1..6e9c27c86 100644 --- a/backend/src/schema/resolvers/userData.spec.ts +++ b/backend/src/schema/resolvers/userData.spec.ts @@ -1,7 +1,7 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' let query, authenticatedUser diff --git a/backend/src/schema/resolvers/user_management.spec.ts b/backend/src/schema/resolvers/user_management.spec.ts index 797f08126..8b8dcc717 100644 --- a/backend/src/schema/resolvers/user_management.spec.ts +++ b/backend/src/schema/resolvers/user_management.spec.ts @@ -1,14 +1,14 @@ /* eslint-disable promise/prefer-await-to-callbacks */ import jwt from 'jsonwebtoken' -import CONFIG from '../../config' -import Factory, { cleanDatabase } from '../../db/factories' +import CONFIG from '@config/index' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { loginMutation } from '../../graphql/userManagement' +import { loginMutation } from '@graphql/userManagement' import { createTestClient } from 'apollo-server-testing' -import createServer, { context } from '../../server' -import encode from '../../jwt/encode' -import { getNeode, getDriver } from '../../db/neo4j' -import { categories } from '../../constants/categories' +import createServer, { context } from '@src/server' +import encode from '@jwt/encode' +import { getNeode, getDriver } from '@db/neo4j' +import { categories } from '@constants/categories' const neode = getNeode() const driver = getDriver() diff --git a/backend/src/schema/resolvers/user_management.ts b/backend/src/schema/resolvers/user_management.ts index d88eafdae..dceceab24 100644 --- a/backend/src/schema/resolvers/user_management.ts +++ b/backend/src/schema/resolvers/user_management.ts @@ -1,7 +1,7 @@ -import encode from '../../jwt/encode' +import encode from '@jwt/encode' import bcrypt from 'bcryptjs' import { AuthenticationError } from 'apollo-server' -import { getNeode } from '../../db/neo4j' +import { getNeode } from '@db/neo4j' import normalizeEmail from './helpers/normalizeEmail' import log from './helpers/databaseLogger' diff --git a/backend/src/schema/resolvers/users.spec.ts b/backend/src/schema/resolvers/users.spec.ts index 09f98ad53..d2a86623a 100644 --- a/backend/src/schema/resolvers/users.spec.ts +++ b/backend/src/schema/resolvers/users.spec.ts @@ -1,9 +1,9 @@ -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' import { createTestClient } from 'apollo-server-testing' -import { categories } from '../../constants/categories' +import { categories } from '@constants/categories' const categoryIds = ['cat9'] let user diff --git a/backend/src/schema/resolvers/users.ts b/backend/src/schema/resolvers/users.ts index cab0bc8a3..81306e13d 100644 --- a/backend/src/schema/resolvers/users.ts +++ b/backend/src/schema/resolvers/users.ts @@ -1,5 +1,5 @@ import { neo4jgraphql } from 'neo4j-graphql-js' -import { getNeode } from '../../db/neo4j' +import { getNeode } from '@db/neo4j' import { UserInputError, ForbiddenError } from 'apollo-server' import { mergeImage, deleteImage } from './images/images' import Resolver from './helpers/Resolver' diff --git a/backend/src/schema/resolvers/users/location.spec.ts b/backend/src/schema/resolvers/users/location.spec.ts index f77f8d7f0..0b4db63f3 100644 --- a/backend/src/schema/resolvers/users/location.spec.ts +++ b/backend/src/schema/resolvers/users/location.spec.ts @@ -1,8 +1,8 @@ import gql from 'graphql-tag' -import Factory, { cleanDatabase } from '../../../db/factories' -import { getNeode, getDriver } from '../../../db/neo4j' +import Factory, { cleanDatabase } from '@db/factories' +import { getNeode, getDriver } from '@db/neo4j' import { createTestClient } from 'apollo-server-testing' -import createServer from '../../../server' +import createServer from '@src/server' const neode = getNeode() const driver = getDriver() diff --git a/backend/src/schema/resolvers/users/location.ts b/backend/src/schema/resolvers/users/location.ts index 49b7c6b1c..a05a4402b 100644 --- a/backend/src/schema/resolvers/users/location.ts +++ b/backend/src/schema/resolvers/users/location.ts @@ -5,8 +5,8 @@ import request from 'request' import { UserInputError } from 'apollo-server' // eslint-disable-next-line import/no-extraneous-dependencies import Debug from 'debug' -import asyncForEach from '../../../helpers/asyncForEach' -import CONFIG from '../../../config' +import asyncForEach from '@helpers/asyncForEach' +import CONFIG from '@config/index' const debug = Debug('human-connection:location') diff --git a/backend/src/schema/resolvers/users/mutedUsers.spec.ts b/backend/src/schema/resolvers/users/mutedUsers.spec.ts index 762893af0..4bfce2421 100644 --- a/backend/src/schema/resolvers/users/mutedUsers.spec.ts +++ b/backend/src/schema/resolvers/users/mutedUsers.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import createServer from '../../../server' -import { cleanDatabase } from '../../../db/factories' +import createServer from '@src/server' +import { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../../db/neo4j' +import { getNeode, getDriver } from '@db/neo4j' const driver = getDriver() const neode = getNeode() diff --git a/backend/src/schema/resolvers/viewedTeaserCount.spec.ts b/backend/src/schema/resolvers/viewedTeaserCount.spec.ts index ee90d1a08..e73502324 100644 --- a/backend/src/schema/resolvers/viewedTeaserCount.spec.ts +++ b/backend/src/schema/resolvers/viewedTeaserCount.spec.ts @@ -1,8 +1,8 @@ import { createTestClient } from 'apollo-server-testing' -import Factory, { cleanDatabase } from '../../db/factories' +import Factory, { cleanDatabase } from '@db/factories' import gql from 'graphql-tag' -import { getNeode, getDriver } from '../../db/neo4j' -import createServer from '../../server' +import { getNeode, getDriver } from '@db/neo4j' +import createServer from '@src/server' const driver = getDriver() const neode = getNeode() diff --git a/backend/tsconfig.json b/backend/tsconfig.json index b6f3526a3..7de3aad0c 100644 --- a/backend/tsconfig.json +++ b/backend/tsconfig.json @@ -29,7 +29,19 @@ // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + "paths": { /* Specify a set of entries that re-map imports to additional lookup locations. */ + "@config/*": ["./src/config/*"], + "@constants/*": ["./src/constants/*"], + "@db/*": ["./src/db/*"], + "@graphql/*": ["./src/graphql/*"], + "@helpers/*": ["./src/helpers/*"], + "@jwt/*": ["./src/jwt/*"], + "@middleware/*": ["./src/middleware/*"], + "@models/*": ["./src/models/*"], + "@schema/*": ["./src/schema/*"], + "@src/*": ["./src/*"], + "@root/*": ["./*"] + }, // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ diff --git a/backend/yarn.lock b/backend/yarn.lock index 204fe73bd..3588f5f26 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3471,7 +3471,7 @@ cheerio@~1.0.0: undici "^6.19.5" whatwg-mimetype "^4.0.0" -chokidar@^3.5.2, chokidar@^3.6.0: +chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -3614,6 +3614,11 @@ commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^9.0.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -5475,7 +5480,7 @@ globby@11.0.0: merge2 "^1.3.0" slash "^3.0.0" -globby@^11.1.0: +globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6989,7 +6994,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.3: +json5@^2.2.2, json5@^2.2.3, json5@^2.x: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -7686,6 +7691,11 @@ mustache@^4.2.0: resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== +mylas@^2.1.9: + version "2.1.13" + resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4" + integrity sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg== + n-gram@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/n-gram/-/n-gram-1.1.1.tgz#a374dc176a9063a2388d1be18ed7c35828be2a97" @@ -8370,6 +8380,13 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +plimit-lit@^1.2.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.6.1.tgz#a34594671b31ee8e93c72d505dfb6852eb72374a" + integrity sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA== + dependencies: + queue-lit "^1.5.1" + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -8523,6 +8540,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +queue-lit@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.5.2.tgz#83c24d4f4764802377b05a6e5c73017caf3f8747" + integrity sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw== + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -8743,6 +8765,13 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== +require-json5@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/require-json5/-/require-json5-1.3.0.tgz#b47d236194e458f144c615dd061bdca085628474" + integrity sha512-FkOrdR0kqHFwIqrlifaXNg6fdg2YcUL5lX9bYlaENKLlWp+g0GO/tRMAvoWIM2pYzAGp57oF/jgkVLwxGk7KyQ== + dependencies: + json5 "^2.x" + resolve-alpn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.0.tgz#058bb0888d1cd4d12474e9a4b6eb17bdd5addc44" @@ -9779,6 +9808,19 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" +tsc-alias@^1.8.14: + version "1.8.14" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.8.14.tgz#cbe9566bcb4b014c32d0704ac495ab3361436edc" + integrity sha512-abPL5KpLkZCR06QkgyOBaswNPgNL/Ub/am16tvQ0kTsmPx3FEhBOAsvIPUU8OkYrLv0JlzJEaJ1r6XkJBIQvYg== + dependencies: + chokidar "^3.5.3" + commander "^9.0.0" + get-tsconfig "^4.10.0" + globby "^11.0.4" + mylas "^2.1.9" + normalize-path "^3.0.0" + plimit-lit "^1.2.6" + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -9789,6 +9831,15 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" +tsconfig-paths@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + tslib@1.11.1: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"