diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 88cde9a8..f3e416ce 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -4,25 +4,29 @@ on: push: branches: - develop + - test pull_request: jobs: build: runs-on: 'ubuntu-latest' + steps: + - name: 'Checkout Project' + uses: 'actions/checkout@v4' + - name: Setup Node.js environment uses: actions/setup-node@v3 with: node-version: '16.15' + cache: 'yarn' - - name: 'Checkout Project' - uses: 'actions/checkout@v3' - with: - fetch-depth: 1 + - name: Install dependencies + run: yarn install --immutable - - name: Install Dependencies and lint code - run: yarn install && yarn lint + - name: Lint code + run: yarn lint - name: Start MongoDB uses: supercharge/mongodb-github-action@1.8.0 @@ -44,8 +48,8 @@ jobs: run: | docker container restart mongodb - - name: Build and run tests - run: yarn test - env: - NODE_OPTIONS: --experimental-vm-modules + - name: Run tests + run: yarn test --ci + - name: Build files/check types + run: yarn build-release --noEmit diff --git a/jest.config.cjs b/jest.config.cjs index ea6b6706..0b7ac430 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -1,7 +1,11 @@ module.exports = { - preset: 'ts-jest', + transform: { + '^.+\\.tsx?$': 'ts-jest' + }, + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], testEnvironment: 'node', + testPathIgnorePatterns: ['/node_modules/', './build/'], testMatch: [ - '/build/**/__tests__/*.js' + '/**/__tests__/*.ts' ] } diff --git a/package.json b/package.json index fbbfcbde..5a2483ef 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "scripts": { "lint": "yarn ts-standard", "fix": "yarn ts-standard --fix", - "test": "yarn build && cross-env NODE_OPTIONS=\"--experimental-vm-modules\" jest --runInBand", + "test": "jest --runInBand", "build": "tsc -p tsconfig.json", "build-release": "tsc -p tsconfig.release.json", "clean": "tsc -b --clean && rm -rf build/*", diff --git a/src/GradeUtils.ts b/src/GradeUtils.ts index 42dab36c..ade53cb9 100644 --- a/src/GradeUtils.ts +++ b/src/GradeUtils.ts @@ -1,6 +1,6 @@ import { getScale, GradeScales, GradeScalesTypes } from '@openbeta/sandbag' import isoCountries from 'i18n-iso-countries' -import { DisciplineType, ClimbGradeContextType } from './db/ClimbTypes.js' +import { DisciplineType, ClimbGradeContextType } from './db/ClimbTypes' /** * Grade systems have minor variations between countries. gradeContext is a diff --git a/src/__tests__/areas.ts b/src/__tests__/areas.ts index 6a9c64e9..a2dc15bc 100644 --- a/src/__tests__/areas.ts +++ b/src/__tests__/areas.ts @@ -1,12 +1,12 @@ import { ApolloServer } from 'apollo-server' import muuid from 'uuid-mongodb' import { jest } from '@jest/globals' -import MutableAreaDataSource from '../model/MutableAreaDataSource.js' -import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource.js' -import { AreaType } from '../db/AreaTypes.js' -import { OrgType, OrganizationType, OrganizationEditableFieldsType } from '../db/OrganizationTypes.js' -import { queryAPI, setUpServer } from '../utils/testUtils.js' -import { muuidToString } from '../utils/helpers.js' +import MutableAreaDataSource from '../model/MutableAreaDataSource' +import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource' +import { AreaType } from '../db/AreaTypes' +import { OrgType, OrganizationType, OrganizationEditableFieldsType } from '../db/OrganizationTypes' +import { queryAPI, setUpServer } from '../utils/testUtils' +import { muuidToString } from '../utils/helpers' jest.setTimeout(60000) diff --git a/src/__tests__/gradeUtils.ts b/src/__tests__/gradeUtils.ts index 94c8fffe..88de1014 100644 --- a/src/__tests__/gradeUtils.ts +++ b/src/__tests__/gradeUtils.ts @@ -1,5 +1,13 @@ -import { DisciplineType } from '../db/ClimbTypes.js' -import { sanitizeDisciplines, createGradeObject, gradeContextToGradeScales } from '../GradeUtils.js' +import { DisciplineType } from '../db/ClimbTypes' +import { sanitizeDisciplines, createGradeObject, gradeContextToGradeScales } from '../GradeUtils' + +beforeAll(() => { + console.warn = jest.fn() +}) + +afterAll(() => { + jest.mocked(console.warn).mockReset() +}) describe('Test grade utilities', () => { it('sanitizes bad discipline object', () => { diff --git a/src/__tests__/history.ts b/src/__tests__/history.ts index 202747b2..1688f32c 100644 --- a/src/__tests__/history.ts +++ b/src/__tests__/history.ts @@ -1,13 +1,13 @@ import { ApolloServer } from 'apollo-server' import muuid from 'uuid-mongodb' import { jest } from '@jest/globals' -import MutableAreaDataSource from '../model/MutableAreaDataSource.js' -import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource.js' -import MutableClimbDataSource from '../model/MutableClimbDataSource.js' -import { AreaType } from '../db/AreaTypes.js' -import { OrgType, OrganizationType } from '../db/OrganizationTypes.js' -import { muuidToString } from '../utils/helpers.js' -import { queryAPI, setUpServer } from '../utils/testUtils.js' +import MutableAreaDataSource from '../model/MutableAreaDataSource' +import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource' +import MutableClimbDataSource from '../model/MutableClimbDataSource' +import { AreaType } from '../db/AreaTypes' +import { OrgType, OrganizationType } from '../db/OrganizationTypes' +import { muuidToString } from '../utils/helpers' +import { queryAPI, setUpServer } from '../utils/testUtils' jest.setTimeout(60000) diff --git a/src/__tests__/organizations.ts b/src/__tests__/organizations.ts index 448df19b..8494980c 100644 --- a/src/__tests__/organizations.ts +++ b/src/__tests__/organizations.ts @@ -1,13 +1,13 @@ import { ApolloServer } from 'apollo-server' import muuid from 'uuid-mongodb' import { jest } from '@jest/globals' -import MutableAreaDataSource from '../model/MutableAreaDataSource.js' -import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource.js' -import { AreaType } from '../db/AreaTypes.js' -import { OrgType, OrganizationType, OperationType, OrganizationEditableFieldsType } from '../db/OrganizationTypes.js' -import { changelogDataSource } from '../model/ChangeLogDataSource.js' -import { queryAPI, setUpServer } from '../utils/testUtils.js' -import { muuidToString } from '../utils/helpers.js' +import MutableAreaDataSource from '../model/MutableAreaDataSource' +import MutableOrganizationDataSource from '../model/MutableOrganizationDataSource' +import { AreaType } from '../db/AreaTypes' +import { OrgType, OrganizationType, OperationType, OrganizationEditableFieldsType } from '../db/OrganizationTypes' +import { changelogDataSource } from '../model/ChangeLogDataSource' +import { queryAPI, setUpServer } from '../utils/testUtils' +import { muuidToString } from '../utils/helpers' import { validate as validateMuuid } from 'uuid' jest.setTimeout(60000) diff --git a/src/__tests__/ticks.ts b/src/__tests__/ticks.ts index 1db3e2b2..f0e63167 100644 --- a/src/__tests__/ticks.ts +++ b/src/__tests__/ticks.ts @@ -1,12 +1,12 @@ import { ApolloServer } from 'apollo-server' import muuid from 'uuid-mongodb' import { jest } from '@jest/globals' -import { queryAPI, setUpServer } from '../utils/testUtils.js' -import { muuidToString } from '../utils/helpers.js' -import { TickInput } from '../db/TickTypes.js' -import TickDataSource from '../model/TickDataSource.js' -import UserDataSource from '../model/UserDataSource.js' -import { UpdateProfileGQLInput } from '../db/UserTypes.js' +import { queryAPI, setUpServer } from '../utils/testUtils' +import { muuidToString } from '../utils/helpers' +import { TickInput } from '../db/TickTypes' +import TickDataSource from '../model/TickDataSource' +import UserDataSource from '../model/UserDataSource' +import { UpdateProfileGQLInput } from '../db/UserTypes' jest.setTimeout(60000) diff --git a/src/auth/index.ts b/src/auth/index.ts index 1601888e..ffcc6d1a 100644 --- a/src/auth/index.ts +++ b/src/auth/index.ts @@ -1,3 +1,3 @@ -import permissions from './permissions.js' -import { createContext } from './middleware.js' +import permissions from './permissions' +import { createContext } from './middleware' export { permissions, createContext } diff --git a/src/auth/middleware.ts b/src/auth/middleware.ts index af81045c..835b2a93 100644 --- a/src/auth/middleware.ts +++ b/src/auth/middleware.ts @@ -1,7 +1,7 @@ import muid from 'uuid-mongodb' -import { AuthUserType } from '../types.js' -import { verifyJWT } from './util.js' -import { logger } from '../logger.js' +import { AuthUserType } from '../types' +import { verifyJWT } from './util' +import { logger } from '../logger' /** * Create a middleware context for Apollo server diff --git a/src/auth/permissions.ts b/src/auth/permissions.ts index 59e2925e..fd2d7c0f 100644 --- a/src/auth/permissions.ts +++ b/src/auth/permissions.ts @@ -1,5 +1,5 @@ import { shield, allow, and, or } from 'graphql-shield' -import { isEditor, isUserAdmin, isOwner, isValidEmail, isMediaOwner } from './rules.js' +import { isEditor, isUserAdmin, isOwner, isValidEmail, isMediaOwner } from './rules' const permissions = shield({ Query: { diff --git a/src/auth/rules.ts b/src/auth/rules.ts index f5ecdafe..89217db4 100644 --- a/src/auth/rules.ts +++ b/src/auth/rules.ts @@ -1,7 +1,7 @@ import { rule, inputRule } from 'graphql-shield' -import MediaDataSource from '../model/MutableMediaDataSource.js' -import { MediaObjectGQLInput } from '../db/MediaObjectTypes.js' +import MediaDataSource from '../model/MutableMediaDataSource' +import { MediaObjectGQLInput } from '../db/MediaObjectTypes' export const isEditor = rule()(async (parent, args, ctx, info) => { return _hasUserUuid(ctx) && ctx.user.roles.includes('editor') diff --git a/src/auth/util.ts b/src/auth/util.ts index 2329c00c..d8f3d1e1 100644 --- a/src/auth/util.ts +++ b/src/auth/util.ts @@ -1,7 +1,7 @@ import jwksClient from 'jwks-rsa' import jwt from 'jsonwebtoken' -import { checkVar } from '../db/index.js' +import { checkVar } from '../db/index' const auth0Domain = checkVar('AUTH0_DOMAIN') const auth0Kid = checkVar('AUTH0_KID') diff --git a/src/db/AreaSchema.ts b/src/db/AreaSchema.ts index e27ded05..c0ed707a 100644 --- a/src/db/AreaSchema.ts +++ b/src/db/AreaSchema.ts @@ -1,10 +1,10 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import { AreaType, IAreaContent, IAreaMetadata, AggregateType, CountByGroupType, CountByDisciplineType, CountByGradeBandType, DisciplineStatsType, OperationType } from './AreaTypes.js' -import { PointSchema } from './ClimbSchema.js' -import { ChangeRecordMetadataType } from './ChangeLogType.js' -import { GradeContexts } from '../GradeUtils.js' +import { AreaType, IAreaContent, IAreaMetadata, AggregateType, CountByGroupType, CountByDisciplineType, CountByGradeBandType, DisciplineStatsType, OperationType } from './AreaTypes' +import { PointSchema } from './ClimbSchema' +import { ChangeRecordMetadataType } from './ChangeLogType' +import { GradeContexts } from '../GradeUtils' const { Schema, connection } = mongoose diff --git a/src/db/AreaTypes.ts b/src/db/AreaTypes.ts index 36fc5c15..1ad914fa 100644 --- a/src/db/AreaTypes.ts +++ b/src/db/AreaTypes.ts @@ -2,11 +2,11 @@ import mongoose from 'mongoose' import { MUUID } from 'uuid-mongodb' import { BBox, Point } from '@turf/helpers' -import { ClimbType } from './ClimbTypes.js' -import { ChangeRecordMetadataType } from './ChangeLogType.js' -import { GradeContexts } from '../GradeUtils.js' -import { ExperimentalAuthorType } from './UserTypes.js' -import { AuthorMetadata } from '../types.js' +import { ClimbType } from './ClimbTypes' +import { ChangeRecordMetadataType } from './ChangeLogType' +import { GradeContexts } from '../GradeUtils' +import { ExperimentalAuthorType } from './UserTypes' +import { AuthorMetadata } from '../types' /** * Areas are a grouping mechanism in the OpenBeta data model that allow diff --git a/src/db/ChangeLogSchema.ts b/src/db/ChangeLogSchema.ts index 052a3859..be244128 100644 --- a/src/db/ChangeLogSchema.ts +++ b/src/db/ChangeLogSchema.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' -import { ChangeLogType, SupportedCollectionTypes } from './ChangeLogType.js' -import { OperationType } from './AreaTypes.js' +import { ChangeLogType, SupportedCollectionTypes } from './ChangeLogType' +import { OperationType } from './AreaTypes' const { Schema, connection } = mongoose diff --git a/src/db/ChangeLogType.ts b/src/db/ChangeLogType.ts index 8a57b894..1d305743 100644 --- a/src/db/ChangeLogType.ts +++ b/src/db/ChangeLogType.ts @@ -1,9 +1,9 @@ import mongose from 'mongoose' import { MUUID } from 'uuid-mongodb' -import { OperationType as AreaOpType, AreaType } from './AreaTypes.js' -import { ClimbEditOperationType, ClimbType } from './ClimbTypes.js' -import { OperationType as OrganizationOpType, OrganizationType } from './OrganizationTypes.js' +import { OperationType as AreaOpType, AreaType } from './AreaTypes' +import { ClimbEditOperationType, ClimbType } from './ClimbTypes' +import { OperationType as OrganizationOpType, OrganizationType } from './OrganizationTypes' export type DBOperation = 'insert' | 'update' | 'delete' export enum DocumentKind { diff --git a/src/db/ClimbHistorySchema.ts b/src/db/ClimbHistorySchema.ts index 46895fb4..64a4c009 100644 --- a/src/db/ClimbHistorySchema.ts +++ b/src/db/ClimbHistorySchema.ts @@ -1,9 +1,9 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import { ClimbSchema } from './ClimbSchema.js' -import { AreaSchema } from './AreaSchema.js' -import ClimbHistoryType, { AreaHistoryType } from './ClimbHistoryType.js' -import ChangeEventType from './ChangeEventType.js' +import { ClimbSchema } from './ClimbSchema' +import { AreaSchema } from './AreaSchema' +import ClimbHistoryType, { AreaHistoryType } from './ClimbHistoryType' +import ChangeEventType from './ChangeEventType' import { ClimbType } from './ClimbTypes' import { AreaType } from './AreaTypes' diff --git a/src/db/ClimbSchema.ts b/src/db/ClimbSchema.ts index 29cab777..161fd696 100644 --- a/src/db/ClimbSchema.ts +++ b/src/db/ClimbSchema.ts @@ -3,9 +3,9 @@ import muuid from 'uuid-mongodb' import { Point } from '@turf/helpers' import { GradeScalesTypes } from '@openbeta/sandbag' -import { ClimbType, IClimbMetadata, IClimbContent, SafetyType, ClimbEditOperationType } from './ClimbTypes.js' -import { GradeContexts } from '../GradeUtils.js' -import { ChangeRecordMetadataType } from './ChangeLogType.js' +import { ClimbType, IClimbMetadata, IClimbContent, SafetyType, ClimbEditOperationType } from './ClimbTypes' +import { GradeContexts } from '../GradeUtils' +import { ChangeRecordMetadataType } from './ChangeLogType' const { Schema } = mongoose diff --git a/src/db/ClimbTypes.ts b/src/db/ClimbTypes.ts index e27c6923..49ec4456 100644 --- a/src/db/ClimbTypes.ts +++ b/src/db/ClimbTypes.ts @@ -3,8 +3,8 @@ import { Point } from '@turf/helpers' import { GradeScalesTypes } from '@openbeta/sandbag' import { ChangeRecordMetadataType } from './ChangeLogType' -import { GradeContexts } from '../GradeUtils.js' -import { AreaType } from './AreaTypes.js' +import { GradeContexts } from '../GradeUtils' +import { AreaType } from './AreaTypes' // For search climb by id queries // Additional fields allow client to build breadcrumbs diff --git a/src/db/MediaObjectSchema.ts b/src/db/MediaObjectSchema.ts index 84a2fa0b..21402837 100644 --- a/src/db/MediaObjectSchema.ts +++ b/src/db/MediaObjectSchema.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' -import { MediaObject, EntityTag } from './MediaObjectTypes.js' -import { PointSchema } from './ClimbSchema.js' +import { MediaObject, EntityTag } from './MediaObjectTypes' +import { PointSchema } from './ClimbSchema' const { Schema } = mongoose diff --git a/src/db/OrganizationSchema.ts b/src/db/OrganizationSchema.ts index be95caa2..12a851c8 100644 --- a/src/db/OrganizationSchema.ts +++ b/src/db/OrganizationSchema.ts @@ -1,8 +1,8 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import { OrganizationType, OrgType, IOrganizationContent, OperationType } from './OrganizationTypes.js' -import { ChangeRecordMetadataType } from './ChangeLogType.js' +import { OrganizationType, OrgType, IOrganizationContent, OperationType } from './OrganizationTypes' +import { ChangeRecordMetadataType } from './ChangeLogType' const { Schema, connection } = mongoose diff --git a/src/db/OrganizationTypes.ts b/src/db/OrganizationTypes.ts index 84a7b899..97703231 100644 --- a/src/db/OrganizationTypes.ts +++ b/src/db/OrganizationTypes.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' import { MUUID } from 'uuid-mongodb' -import { ChangeRecordMetadataType } from './ChangeLogType.js' +import { ChangeRecordMetadataType } from './ChangeLogType' /** * Organizations are OpenBeta accounts that are owned by organizations diff --git a/src/db/PostSchema.ts b/src/db/PostSchema.ts index 0340b219..647caf47 100644 --- a/src/db/PostSchema.ts +++ b/src/db/PostSchema.ts @@ -1,8 +1,8 @@ import mongoose from 'mongoose' import mongooseLeanVirtuals from 'mongoose-lean-virtuals' import muuid from 'uuid-mongodb' -import { PostType } from './PostTypes.js' -import { XMediaSchema } from './XMediaSchema.js' +import { PostType } from './PostTypes' +import { XMediaSchema } from './XMediaSchema' const { Schema } = mongoose diff --git a/src/db/TagSchema.ts b/src/db/TagSchema.ts index fe89a167..9531e352 100644 --- a/src/db/TagSchema.ts +++ b/src/db/TagSchema.ts @@ -2,7 +2,7 @@ import mongoose from 'mongoose' import mongooseLeanVirtuals from 'mongoose-lean-virtuals' import muuid from 'uuid-mongodb' -import { TagType, RefModelType } from './TagTypes.js' +import { TagType, RefModelType } from './TagTypes' const { Schema } = mongoose diff --git a/src/db/UserSchema.ts b/src/db/UserSchema.ts index a305d3a7..6b45e463 100644 --- a/src/db/UserSchema.ts +++ b/src/db/UserSchema.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import { ExperimentalUserType, User, UsernameInfo } from './UserTypes.js' +import { ExperimentalUserType, User, UsernameInfo } from './UserTypes' const { Schema } = mongoose diff --git a/src/db/UserTypes.ts b/src/db/UserTypes.ts index a60c06ae..3a1ac23f 100644 --- a/src/db/UserTypes.ts +++ b/src/db/UserTypes.ts @@ -1,5 +1,5 @@ import { MUUID } from 'uuid-mongodb' -import { UserMedia } from './MediaObjectTypes.js' +import { UserMedia } from './MediaObjectTypes' export interface ExperimentalUserType { _id: MUUID displayName: string diff --git a/src/db/XMediaSchema.ts b/src/db/XMediaSchema.ts index 92617ad9..37e0fab3 100644 --- a/src/db/XMediaSchema.ts +++ b/src/db/XMediaSchema.ts @@ -2,7 +2,7 @@ import mongoose from 'mongoose' import mongooseLeanVirtuals from 'mongoose-lean-virtuals' import muuid from 'uuid-mongodb' -import { XMediaType } from './XMediaTypes.js' +import { XMediaType } from './XMediaTypes' const { Schema } = mongoose diff --git a/src/db/edit/streamListener.ts b/src/db/edit/streamListener.ts index aff9b11f..e4a964b6 100644 --- a/src/db/edit/streamListener.ts +++ b/src/db/edit/streamListener.ts @@ -2,14 +2,14 @@ import mongoose from 'mongoose' import { ChangeStream, ChangeStreamDocument, ChangeStreamUpdateDocument } from 'mongodb' import dot from 'dot-object' -import { changelogDataSource } from '../../model/ChangeLogDataSource.js' -import { logger } from '../../logger.js' -import { BaseChangeRecordType, ResumeToken, UpdateDescription, DBOperation, SupportedCollectionTypes, DocumentKind } from '../ChangeLogType.js' -import { checkVar } from '../index.js' -import { updateAreaIndex, updateClimbIndex } from '../export/Typesense/Client.js' -import { AreaType } from '../AreaTypes.js' -import { exhaustiveCheck } from '../../utils/helpers.js' -import { ClimbType } from '../ClimbTypes.js' +import { changelogDataSource } from '../../model/ChangeLogDataSource' +import { logger } from '../../logger' +import { BaseChangeRecordType, ResumeToken, UpdateDescription, DBOperation, SupportedCollectionTypes, DocumentKind } from '../ChangeLogType' +import { checkVar } from '../index' +import { updateAreaIndex, updateClimbIndex } from '../export/Typesense/Client' +import { AreaType } from '../AreaTypes' +import { exhaustiveCheck } from '../../utils/helpers' +import { ClimbType } from '../ClimbTypes' /** * Start a new stream listener to track changes diff --git a/src/db/export/Typesense/Client.ts b/src/db/export/Typesense/Client.ts index b2c357a4..7198d151 100644 --- a/src/db/export/Typesense/Client.ts +++ b/src/db/export/Typesense/Client.ts @@ -1,13 +1,13 @@ import Typesense, { Client } from 'typesense' -import { areaSchema, climbSchema } from './TypesenseSchemas.js' -import { mongoAreaToTypeSense, mongoClimbToTypeSense } from './transformers.js' -import { logger } from '../../../logger.js' -import { AreaType } from '../../AreaTypes.js' -import { DBOperation } from '../../ChangeLogType.js' -import Config from '../../../Config.js' -import { ClimbExtType, ClimbType } from '../../ClimbTypes.js' -import MutableAreaDataSource from '../../../model/MutableAreaDataSource.js' +import { areaSchema, climbSchema } from './TypesenseSchemas' +import { mongoAreaToTypeSense, mongoClimbToTypeSense } from './transformers' +import { logger } from '../../../logger' +import { AreaType } from '../../AreaTypes' +import { DBOperation } from '../../ChangeLogType' +import Config from '../../../Config' +import { ClimbExtType, ClimbType } from '../../ClimbTypes' +import MutableAreaDataSource from '../../../model/MutableAreaDataSource' /** * Return a Typesense client. diff --git a/src/db/export/Typesense/Typesense.ts b/src/db/export/Typesense/Typesense.ts index 7c5746d3..41ca5505 100644 --- a/src/db/export/Typesense/Typesense.ts +++ b/src/db/export/Typesense/Typesense.ts @@ -1,15 +1,15 @@ import { Client } from 'typesense' -import typesenseClient from './Client.js' -import { connectDB, gracefulExit } from '../../index.js' -import { ClimbExtType } from '../../ClimbTypes.js' -import { logger } from '../../../logger.js' -import { areaSchema, AreaTypeSenseItem, climbSchema, ClimbTypeSenseItem } from './TypesenseSchemas.js' +import typesenseClient from './Client' +import { connectDB, gracefulExit } from '../../index' +import { ClimbExtType } from '../../ClimbTypes' +import { logger } from '../../../logger' +import { areaSchema, AreaTypeSenseItem, climbSchema, ClimbTypeSenseItem } from './TypesenseSchemas' import { CollectionCreateSchema } from 'typesense/lib/Typesense/Collections.js' -import { AreaType } from '../../AreaTypes.js' -import { mongoAreaToTypeSense, mongoClimbToTypeSense } from './transformers.js' -import { processMongoCollection } from '../common/index.js' -import { getAllAreas, getAllClimbs } from '../queries/index.js' +import { AreaType } from '../../AreaTypes' +import { mongoAreaToTypeSense, mongoClimbToTypeSense } from './transformers' +import { processMongoCollection } from '../common/index' +import { getAllAreas, getAllClimbs } from '../queries/index' /** * For a given collection that might exist in typesense, drop it (if it exists) diff --git a/src/db/export/Typesense/transformers.ts b/src/db/export/Typesense/transformers.ts index 7bc17511..8006087c 100644 --- a/src/db/export/Typesense/transformers.ts +++ b/src/db/export/Typesense/transformers.ts @@ -1,7 +1,7 @@ -import { AreaTypeSenseItem, ClimbTypeSenseItem } from './TypesenseSchemas.js' -import { AreaType } from '../../AreaTypes.js' -import { disciplinesToArray, geoToLatLng } from './Utils.js' -import { ClimbExtType, SafetyType } from '../../ClimbTypes.js' +import { AreaTypeSenseItem, ClimbTypeSenseItem } from './TypesenseSchemas' +import { AreaType } from '../../AreaTypes' +import { disciplinesToArray, geoToLatLng } from './Utils' +import { ClimbExtType, SafetyType } from '../../ClimbTypes' /** * Convert an Area object to a Typesense object diff --git a/src/db/export/common/index.ts b/src/db/export/common/index.ts index 1b0e5a7b..135dc449 100644 --- a/src/db/export/common/index.ts +++ b/src/db/export/common/index.ts @@ -1,4 +1,4 @@ export { MongoCollectionProcessorOptions, processMongoCollection -} from './processor.js' +} from './processor' diff --git a/src/db/export/json/area.resolver.ts b/src/db/export/json/area.resolver.ts index 3bcfb7be..f4d53f24 100644 --- a/src/db/export/json/area.resolver.ts +++ b/src/db/export/json/area.resolver.ts @@ -1,4 +1,4 @@ -import { AreaType } from '../../AreaTypes.js' +import { AreaType } from '../../AreaTypes' import path from 'path' export function resolveAreaFileName (area: Partial): string { diff --git a/src/db/export/json/async-file.processor.ts b/src/db/export/json/async-file.processor.ts index 4418e7c5..136f6cf6 100644 --- a/src/db/export/json/async-file.processor.ts +++ b/src/db/export/json/async-file.processor.ts @@ -1,7 +1,7 @@ import { promises } from 'fs' -import { Processor } from '../common/processor.js' +import { Processor } from '../common/processor' import path, { dirname } from 'path' -import { logger } from '../../../logger.js' +import { logger } from '../../../logger' export type Writer = (data: string, path: string) => Promise export type PathResolver = (data: T) => string diff --git a/src/db/export/json/index.ts b/src/db/export/json/index.ts index e938b4d0..48235e24 100644 --- a/src/db/export/json/index.ts +++ b/src/db/export/json/index.ts @@ -1,8 +1,8 @@ -import { connectDB, gracefulExit } from '../../index.js' -import { logger } from '../../../logger.js' -import { processMongoCollection, Processor } from '../common/processor.js' +import { connectDB, gracefulExit } from '../../index' +import { logger } from '../../../logger' +import { processMongoCollection, Processor } from '../common/processor' import { getAllAreas } from '../queries/get-all-areas.js' -import { AreaType } from '../../AreaTypes.js' +import { AreaType } from '../../AreaTypes' import { asyncFileProcessor } from './async-file.processor.js' import { fileURLToPath } from 'url' diff --git a/src/db/export/queries/get-all-areas.ts b/src/db/export/queries/get-all-areas.ts index 252405f6..be7f2da7 100644 --- a/src/db/export/queries/get-all-areas.ts +++ b/src/db/export/queries/get-all-areas.ts @@ -1,7 +1,7 @@ -import { AreaType } from '../../AreaTypes.js' -import { getAreaModel } from '../../AreaSchema.js' -import { DEFAULT_CHUNK_SIZE } from './defaults.js' -import { getClimbModel } from '../../ClimbSchema.js' +import { AreaType } from '../../AreaTypes' +import { getAreaModel } from '../../AreaSchema' +import { DEFAULT_CHUNK_SIZE } from './defaults' +import { getClimbModel } from '../../ClimbSchema' export async function * getAllAreas (chunkSize: number = DEFAULT_CHUNK_SIZE): AsyncGenerator { let pageNum = 0 diff --git a/src/db/export/queries/get-all-climbs.ts b/src/db/export/queries/get-all-climbs.ts index 8798e88c..fa6658d5 100644 --- a/src/db/export/queries/get-all-climbs.ts +++ b/src/db/export/queries/get-all-climbs.ts @@ -1,6 +1,6 @@ -import { ClimbExtType } from '../../ClimbTypes.js' -import { getClimbModel } from '../../ClimbSchema.js' -import { DEFAULT_CHUNK_SIZE } from './defaults.js' +import { ClimbExtType } from '../../ClimbTypes' +import { getClimbModel } from '../../ClimbSchema' +import { DEFAULT_CHUNK_SIZE } from './defaults' /** * SQL equivalent: diff --git a/src/db/import/ClimbTransformer.ts b/src/db/import/ClimbTransformer.ts index b90092e1..2764e9b2 100644 --- a/src/db/import/ClimbTransformer.ts +++ b/src/db/import/ClimbTransformer.ts @@ -2,8 +2,8 @@ import { geometry, Point } from '@turf/helpers' import muuid from 'uuid-mongodb' import { v5 as uuidv5, NIL } from 'uuid' -import { ClimbType } from '../ClimbTypes.js' -import { defaultDisciplines, sanitizeDisciplines } from '../../GradeUtils.js' +import { ClimbType } from '../ClimbTypes' +import { defaultDisciplines, sanitizeDisciplines } from '../../GradeUtils' const transformClimbRecord = (row: any): ClimbType => { /* eslint-disable-next-line */ diff --git a/src/db/import/usa/AreaTransformer.ts b/src/db/import/usa/AreaTransformer.ts index aa5e38c7..ff5dbdf3 100644 --- a/src/db/import/usa/AreaTransformer.ts +++ b/src/db/import/usa/AreaTransformer.ts @@ -1,11 +1,11 @@ import mongoose from 'mongoose' import { geometry, Point } from '@turf/helpers' import isoCountries from 'i18n-iso-countries' -import enJson from 'i18n-iso-countries/langs/en.json' assert { type: 'json' } +import enJson from 'i18n-iso-countries/langs/en.json' -import { getAreaModel } from '../../AreaSchema.js' +import { getAreaModel } from '../../AreaSchema' import { AreaType } from '../../AreaTypes' -import { Tree, AreaNode, createRootNode } from './AreaTree.js' +import { Tree, AreaNode, createRootNode } from './AreaTree' import { MUUID } from 'uuid-mongodb' isoCountries.registerLocale(enJson) diff --git a/src/db/import/usa/AreaTree.ts b/src/db/import/usa/AreaTree.ts index 1855e85f..0e340a4d 100644 --- a/src/db/import/usa/AreaTree.ts +++ b/src/db/import/usa/AreaTree.ts @@ -2,7 +2,7 @@ import assert from 'node:assert' import mongoose from 'mongoose' import muuid, { MUUID } from 'uuid-mongodb' import { v5 as uuidv5, NIL } from 'uuid' -import { getCountriesDefaultGradeContext, GradeContexts } from '../../../GradeUtils.js' +import { getCountriesDefaultGradeContext, GradeContexts } from '../../../GradeUtils' /** * A tree-like data structure for storing area hierarchy during raw json files progressing. diff --git a/src/db/import/usa/LinkClimbsWithCrags.ts b/src/db/import/usa/LinkClimbsWithCrags.ts index fa3e9ba5..97b290e1 100644 --- a/src/db/import/usa/LinkClimbsWithCrags.ts +++ b/src/db/import/usa/LinkClimbsWithCrags.ts @@ -1,6 +1,6 @@ import mongoose from 'mongoose' -import { AreaType } from '../../AreaTypes.js' -import { ClimbType } from '../../ClimbTypes.js' +import { AreaType } from '../../AreaTypes' +import { ClimbType } from '../../ClimbTypes' /** * Add climb IDs to Area.climbs[] aka link climbs to their corresponding crags. diff --git a/src/db/import/usa/SeedState.ts b/src/db/import/usa/SeedState.ts index 3c09f94b..4dd9050c 100644 --- a/src/db/import/usa/SeedState.ts +++ b/src/db/import/usa/SeedState.ts @@ -2,15 +2,15 @@ import mongoose from 'mongoose' import readline from 'node:readline' import fs from 'node:fs' -import { getAreaModel } from '../../index.js' -import { AreaType } from '../../AreaTypes.js' -import { linkClimbsWithAreas } from './LinkClimbsWithCrags.js' -import { getClimbModel } from '../../ClimbSchema.js' -import { ClimbType } from '../../ClimbTypes.js' -import transformClimbRecord from '../ClimbTransformer.js' -import { createAreas } from './AreaTransformer.js' -import { AreaNode } from './AreaTree.js' -import { logger } from '../../../logger.js' +import { getAreaModel } from '../../index' +import { AreaType } from '../../AreaTypes' +import { linkClimbsWithAreas } from './LinkClimbsWithCrags' +import { getClimbModel } from '../../ClimbSchema' +import { ClimbType } from '../../ClimbTypes' +import transformClimbRecord from '../ClimbTransformer' +import { createAreas } from './AreaTransformer' +import { AreaNode } from './AreaTree' +import { logger } from '../../../logger' export interface JobStats { state: string diff --git a/src/db/import/usa/USADay0Seed.ts b/src/db/import/usa/USADay0Seed.ts index 6db80222..76ecc476 100644 --- a/src/db/import/usa/USADay0Seed.ts +++ b/src/db/import/usa/USADay0Seed.ts @@ -1,11 +1,11 @@ import fs from 'node:fs' import pLimit from 'p-limit' -import { connectDB, gracefulExit, createIndexes } from '../../index.js' -import { createRoot } from './AreaTransformer.js' +import { connectDB, gracefulExit, createIndexes } from '../../index' +import { createRoot } from './AreaTransformer' import US_STATES from './us-states.js' -import { seedState, dropCollection, JobStats } from './SeedState.js' -import { logger } from '../../../logger.js' +import { seedState, dropCollection, JobStats } from './SeedState' +import { logger } from '../../../logger' const contentDir: string = process.env.CONTENT_BASEDIR ?? '' diff --git a/src/db/import/usa/__tests__/Utils.test.ts b/src/db/import/usa/__tests__/Utils.test.ts index 371fe006..fe428f83 100644 --- a/src/db/import/usa/__tests__/Utils.test.ts +++ b/src/db/import/usa/__tests__/Utils.test.ts @@ -1,4 +1,4 @@ -import { extractMpId } from '../AreaTransformer.js' +import { extractMpId } from '../AreaTransformer' test('Verify area url parser', () => { expect(extractMpId('/area/117795688/foo-bar')).toEqual('117795688') diff --git a/src/db/index.ts b/src/db/index.ts index 58bbe87b..db5a62a5 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -3,17 +3,17 @@ import { ChangeStream } from 'mongodb' import { config } from 'dotenv' import { enableAllPlugins } from 'immer' -import { getAreaModel } from './AreaSchema.js' -import { getClimbModel } from './ClimbSchema.js' -import { getMediaObjectModel } from './MediaObjectSchema.js' -import { getOrganizationModel } from './OrganizationSchema.js' -import { getTickModel } from './TickSchema.js' -import { getXMediaModel } from './XMediaSchema.js' -import { getPostModel } from './PostSchema.js' -import { getChangeLogModel } from './ChangeLogSchema.js' -import { getExperimentalUserModel, getUserModel } from './UserSchema.js' -import { logger } from '../logger.js' -import streamListener from './edit/streamListener.js' +import { getAreaModel } from './AreaSchema' +import { getClimbModel } from './ClimbSchema' +import { getMediaObjectModel } from './MediaObjectSchema' +import { getOrganizationModel } from './OrganizationSchema' +import { getTickModel } from './TickSchema' +import { getXMediaModel } from './XMediaSchema' +import { getPostModel } from './PostSchema' +import { getChangeLogModel } from './ChangeLogSchema' +import { getExperimentalUserModel, getUserModel } from './UserSchema' +import { logger } from '../logger' +import streamListener from './edit/streamListener' config() enableAllPlugins() diff --git a/src/db/utils/Aggregate.ts b/src/db/utils/Aggregate.ts index 9f490fe8..d961d383 100644 --- a/src/db/utils/Aggregate.ts +++ b/src/db/utils/Aggregate.ts @@ -1,9 +1,9 @@ import _ from 'underscore' -import { CountByGroupType, CountByDisciplineType, AggregateType, DisciplineStatsType, CountByGradeBandType, AreaType } from '../AreaTypes.js' -import { gradeContextToGradeScales } from '../../GradeUtils.js' -import { ClimbType, ClimbGradeContextType } from '../ClimbTypes.js' +import { CountByGroupType, CountByDisciplineType, AggregateType, DisciplineStatsType, CountByGradeBandType, AreaType } from '../AreaTypes' +import { gradeContextToGradeScales } from '../../GradeUtils' +import { ClimbType, ClimbGradeContextType } from '../ClimbTypes' import { getScale, GradeBands, GradeBandTypes, GradeScalesTypes, isVScale } from '@openbeta/sandbag' -import { logger } from '../../logger.js' +import { logger } from '../../logger' export const mergeAggregates = (lhs: AggregateType, rhs: AggregateType): AggregateType => { return { diff --git a/src/db/utils/jobs/AddCountriesJob.ts b/src/db/utils/jobs/AddCountriesJob.ts index 272f8528..32c08b60 100644 --- a/src/db/utils/jobs/AddCountriesJob.ts +++ b/src/db/utils/jobs/AddCountriesJob.ts @@ -1,9 +1,9 @@ import mongoose from 'mongoose' -import enJson from 'i18n-iso-countries/langs/en.json' assert { type: 'json' } +import enJson from 'i18n-iso-countries/langs/en.json' -import { connectDB, gracefulExit } from '../../index.js' -import MutableAreaDataSource from '../../../model/MutableAreaDataSource.js' -import { logger } from '../../../logger.js' +import { connectDB, gracefulExit } from '../../index' +import MutableAreaDataSource from '../../../model/MutableAreaDataSource' +import { logger } from '../../../logger' const onConnected = async (): Promise => { logger.info('Adding all countries (except USA)') diff --git a/src/db/utils/jobs/CragUpdater.ts b/src/db/utils/jobs/CragUpdater.ts index 41590e14..61615fd6 100644 --- a/src/db/utils/jobs/CragUpdater.ts +++ b/src/db/utils/jobs/CragUpdater.ts @@ -1,9 +1,9 @@ import mongoose from 'mongoose' -import { getAreaModel } from '../../AreaSchema.js' -import { getClimbModel } from '../../ClimbSchema.js' -import { AreaType } from '../../AreaTypes.js' -import { ClimbType } from '../../ClimbTypes.js' -import { aggregateCragStats } from '../Aggregate.js' +import { getAreaModel } from '../../AreaSchema' +import { getClimbModel } from '../../ClimbSchema' +import { AreaType } from '../../AreaTypes' +import { ClimbType } from '../../ClimbTypes' +import { aggregateCragStats } from '../Aggregate' import { bboxFrom } from '../../../geo-utils.js' type AreaMongoType = mongoose.Document & AreaType diff --git a/src/db/utils/jobs/TreeUpdater.ts b/src/db/utils/jobs/TreeUpdater.ts index f393b349..52b287f2 100644 --- a/src/db/utils/jobs/TreeUpdater.ts +++ b/src/db/utils/jobs/TreeUpdater.ts @@ -3,10 +3,10 @@ import { feature, geometry, featureCollection, Feature, BBox, Point } from '@tur import centroid from '@turf/centroid' import pLimit from 'p-limit' -import { getAreaModel } from '../../AreaSchema.js' -import { AreaType, AggregateType } from '../../AreaTypes.js' +import { getAreaModel } from '../../AreaSchema' +import { AreaType, AggregateType } from '../../AreaTypes' import { bboxFromList, areaDensity } from '../../../geo-utils.js' -import { mergeAggregates } from '../Aggregate.js' +import { mergeAggregates } from '../Aggregate' const limiter = pLimit(1000) diff --git a/src/db/utils/jobs/UpdateStatsJob.ts b/src/db/utils/jobs/UpdateStatsJob.ts index e4fb853f..7d57a98f 100644 --- a/src/db/utils/jobs/UpdateStatsJob.ts +++ b/src/db/utils/jobs/UpdateStatsJob.ts @@ -1,7 +1,7 @@ -import { connectDB, gracefulExit } from '../../index.js' -import { visitAllAreas } from './TreeUpdater.js' -import { visitAllCrags } from './CragUpdater.js' -import { logger } from '../../../logger.js' +import { connectDB, gracefulExit } from '../../index' +import { visitAllAreas } from './TreeUpdater' +import { visitAllCrags } from './CragUpdater' +import { logger } from '../../../logger' const onConnected = async (): Promise => { logger.info('Initializing database') diff --git a/src/db/utils/jobs/migration/CreateMediaMetaCollection.ts b/src/db/utils/jobs/migration/CreateMediaMetaCollection.ts index abc19342..d67ca74f 100644 --- a/src/db/utils/jobs/migration/CreateMediaMetaCollection.ts +++ b/src/db/utils/jobs/migration/CreateMediaMetaCollection.ts @@ -3,11 +3,11 @@ import { glob } from 'glob' import { validate as uuidValidate } from 'uuid' import muuid from 'uuid-mongodb' -import { connectDB, gracefulExit } from '../../../index.js' -import { logger } from '../../../../logger.js' -import { MediaObject } from '../../../MediaObjectTypes.js' -import { getMediaObjectModel } from '../../../MediaObjectSchema.js' -import { getFileInfo } from './SirvClient.js' +import { connectDB, gracefulExit } from '../../../index' +import { logger } from '../../../../logger' +import { MediaObject } from '../../../MediaObjectTypes' +import { getMediaObjectModel } from '../../../MediaObjectSchema' +import { getFileInfo } from './SirvClient' const LOCAL_MEDIA_DIR = process.env.LOCAL_MEDIA_DIR diff --git a/src/db/utils/jobs/migration/CreateUsersCollection.ts b/src/db/utils/jobs/migration/CreateUsersCollection.ts index 3f19854e..9c7026b4 100644 --- a/src/db/utils/jobs/migration/CreateUsersCollection.ts +++ b/src/db/utils/jobs/migration/CreateUsersCollection.ts @@ -5,10 +5,10 @@ import fs from 'fs' import { ManagementClient as Auth0MgmtClient } from 'auth0' import type { User as Auth0User } from 'auth0' -import { connectDB, gracefulExit, getUserModel } from '../../../index.js' -import { logger } from '../../../../logger.js' -import { User, UpdateProfileGQLInput } from '../../../UserTypes.js' -import { canonicalizeUsername } from '../../../../utils/helpers.js' +import { connectDB, gracefulExit, getUserModel } from '../../../index' +import { logger } from '../../../../logger' +import { User, UpdateProfileGQLInput } from '../../../UserTypes' +import { canonicalizeUsername } from '../../../../utils/helpers' const LOCAL_MEDIA_DIR_UID = process.env.LOCAL_MEDIA_DIR_UID diff --git a/src/graphql/area/AreaMutations.ts b/src/graphql/area/AreaMutations.ts index 6c62de5a..024009ac 100644 --- a/src/graphql/area/AreaMutations.ts +++ b/src/graphql/area/AreaMutations.ts @@ -1,8 +1,8 @@ import muuid from 'uuid-mongodb' -import { AreaType } from '../../db/AreaTypes.js' -import { ContextWithAuth } from '../../types.js' -import type MutableAreaDataSource from '../../model/MutableAreaDataSource.js' +import { AreaType } from '../../db/AreaTypes' +import { ContextWithAuth } from '../../types' +import type MutableAreaDataSource from '../../model/MutableAreaDataSource' const AreaMutations = { diff --git a/src/graphql/area/index.ts b/src/graphql/area/index.ts index a16dc280..af58b9a7 100644 --- a/src/graphql/area/index.ts +++ b/src/graphql/area/index.ts @@ -1,4 +1,4 @@ -import AreaQueries from './AreaQueries.js' -import AreaMutations from './AreaMutations.js' +import AreaQueries from './AreaQueries' +import AreaMutations from './AreaMutations' export { AreaQueries, AreaMutations } diff --git a/src/graphql/climb/ClimbMutations.ts b/src/graphql/climb/ClimbMutations.ts index f3168da4..e975a059 100644 --- a/src/graphql/climb/ClimbMutations.ts +++ b/src/graphql/climb/ClimbMutations.ts @@ -1,5 +1,5 @@ import muid, { MUUID } from 'uuid-mongodb' -import { ContextWithAuth } from '../../types.js' +import { ContextWithAuth } from '../../types' const ClimbMutations = { updateClimbs: async (_, { input }, { dataSources, user }: ContextWithAuth): Promise => { diff --git a/src/graphql/climb/index.ts b/src/graphql/climb/index.ts index 09420eeb..7acd5e91 100644 --- a/src/graphql/climb/index.ts +++ b/src/graphql/climb/index.ts @@ -1,3 +1,3 @@ -import ClimbMutations from './ClimbMutations.js' +import ClimbMutations from './ClimbMutations' export { ClimbMutations } diff --git a/src/graphql/common/MuuidScalar.ts b/src/graphql/common/MuuidScalar.ts index ff2086b2..bce783cf 100644 --- a/src/graphql/common/MuuidScalar.ts +++ b/src/graphql/common/MuuidScalar.ts @@ -1,6 +1,6 @@ import { GraphQLScalarType, Kind } from 'graphql' import muid, { MUUID } from 'uuid-mongodb' -import { muuidToString } from '../../utils/helpers.js' +import { muuidToString } from '../../utils/helpers' // Not yet possible to use scalars on the client. See https://github.com/apollographql/apollo-client/issues/8857 const fromString = (s: string): MUUID => muid.from(s) diff --git a/src/graphql/common/index.ts b/src/graphql/common/index.ts index 9e6fb764..8879af7e 100644 --- a/src/graphql/common/index.ts +++ b/src/graphql/common/index.ts @@ -1,4 +1,4 @@ -import resolvers from './resolvers.js' -import typeDef from './typeDef.js' +import resolvers from './resolvers' +import typeDef from './typeDef' export { resolvers as CommonResolvers, typeDef as CommonTypeDef } diff --git a/src/graphql/common/resolvers.ts b/src/graphql/common/resolvers.ts index 04275c9b..23965f04 100644 --- a/src/graphql/common/resolvers.ts +++ b/src/graphql/common/resolvers.ts @@ -1,5 +1,5 @@ -import dateScalar from './DateScalar.js' -import MuuidScalar from './MuuidScalar.js' +import dateScalar from './DateScalar' +import MuuidScalar from './MuuidScalar' const resolvers = { Date: dateScalar, diff --git a/src/graphql/history/HistoryFieldResolvers.ts b/src/graphql/history/HistoryFieldResolvers.ts index ee6d2014..23a2fffb 100644 --- a/src/graphql/history/HistoryFieldResolvers.ts +++ b/src/graphql/history/HistoryFieldResolvers.ts @@ -1,6 +1,6 @@ -import { ChangeLogType, BaseChangeRecordType, SupportedCollectionTypes, DocumentKind } from '../../db/ChangeLogType.js' -import { AuthorMetadata, DataSourcesType } from '../../types.js' -import { exhaustiveCheck } from '../../utils/helpers.js' +import { ChangeLogType, BaseChangeRecordType, SupportedCollectionTypes, DocumentKind } from '../../db/ChangeLogType' +import { AuthorMetadata, DataSourcesType } from '../../types' +import { exhaustiveCheck } from '../../utils/helpers' /** * History schama field resolvers diff --git a/src/graphql/history/HistoryQueries.ts b/src/graphql/history/HistoryQueries.ts index ff7a9525..52d217a2 100644 --- a/src/graphql/history/HistoryQueries.ts +++ b/src/graphql/history/HistoryQueries.ts @@ -4,8 +4,8 @@ import { GetHistoryInputFilterType, GetAreaHistoryInputFilterType, GetOrganizationHistoryInputFilterType -} from '../../db/ChangeLogType.js' -import { Context } from '../../types.js' +} from '../../db/ChangeLogType' +import { Context } from '../../types' const HistoryQueries = { getChangeHistory: async (_, { filter }, { dataSources }: Context): Promise => { diff --git a/src/graphql/history/index.ts b/src/graphql/history/index.ts index 16e60c16..be4cd0f1 100644 --- a/src/graphql/history/index.ts +++ b/src/graphql/history/index.ts @@ -1,3 +1,3 @@ -import HistoryQueries from './HistoryQueries.js' -import HistoryFieldResolvers from './HistoryFieldResolvers.js' +import HistoryQueries from './HistoryQueries' +import HistoryFieldResolvers from './HistoryFieldResolvers' export { HistoryQueries, HistoryFieldResolvers } diff --git a/src/graphql/media/MediaResolvers.ts b/src/graphql/media/MediaResolvers.ts index c2f16837..ed4bda12 100644 --- a/src/graphql/media/MediaResolvers.ts +++ b/src/graphql/media/MediaResolvers.ts @@ -1,6 +1,6 @@ -import { EntityTag, MediaByUsers, MediaObject, TagByUser } from '../../db/MediaObjectTypes.js' -import { geojsonPointToLatitude, geojsonPointToLongitude } from '../../utils/helpers.js' -import { DataSourcesType } from '../../types.js' +import { EntityTag, MediaByUsers, MediaObject, TagByUser } from '../../db/MediaObjectTypes' +import { geojsonPointToLatitude, geojsonPointToLongitude } from '../../utils/helpers' +import { DataSourcesType } from '../../types' const MediaResolvers = { diff --git a/src/graphql/media/index.ts b/src/graphql/media/index.ts index 5a56d3f1..7511173e 100644 --- a/src/graphql/media/index.ts +++ b/src/graphql/media/index.ts @@ -1,5 +1,5 @@ -import MediaQueries from './queries.js' -import MediaMutations from './mutations.js' -import MediaResolvers from './MediaResolvers.js' +import MediaQueries from './queries' +import MediaMutations from './mutations' +import MediaResolvers from './MediaResolvers' export { MediaQueries, MediaMutations, MediaResolvers } diff --git a/src/graphql/media/mutations.ts b/src/graphql/media/mutations.ts index b180e371..3ca4f8fe 100644 --- a/src/graphql/media/mutations.ts +++ b/src/graphql/media/mutations.ts @@ -1,7 +1,7 @@ import muid from 'uuid-mongodb' import mongoose from 'mongoose' -import { Context } from '../../types.js' -import { EntityTag, EntityTagDeleteGQLInput, AddEntityTagGQLInput, MediaObject, MediaObjectGQLInput, DeleteMediaGQLInput } from '../../db/MediaObjectTypes.js' +import { Context } from '../../types' +import { EntityTag, EntityTagDeleteGQLInput, AddEntityTagGQLInput, MediaObject, MediaObjectGQLInput, DeleteMediaGQLInput } from '../../db/MediaObjectTypes' const MediaMutations = { addMediaObjects: async (_: any, args, { dataSources }: Context): Promise => { diff --git a/src/graphql/media/queries.ts b/src/graphql/media/queries.ts index d86037f5..4a661ef7 100644 --- a/src/graphql/media/queries.ts +++ b/src/graphql/media/queries.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import { TagsLeaderboardType, MediaObject, MediaByUsers, UserMediaGQLQueryInput, MediaForFeedInput } from '../../db/MediaObjectTypes.js' -import { Context } from '../../types.js' +import { TagsLeaderboardType, MediaObject, MediaByUsers, UserMediaGQLQueryInput, MediaForFeedInput } from '../../db/MediaObjectTypes' +import { Context } from '../../types' const MediaQueries = { diff --git a/src/graphql/organization/OrganizationMutations.ts b/src/graphql/organization/OrganizationMutations.ts index 4a488fb7..348877fb 100644 --- a/src/graphql/organization/OrganizationMutations.ts +++ b/src/graphql/organization/OrganizationMutations.ts @@ -1,5 +1,5 @@ -import { OrganizationType } from '../../db/OrganizationTypes.js' -import { ContextWithAuth } from '../../types.js' +import { OrganizationType } from '../../db/OrganizationTypes' +import { ContextWithAuth } from '../../types' const OrganizationMutations = { diff --git a/src/graphql/organization/index.ts b/src/graphql/organization/index.ts index 7cf7b3e6..0b23d0ad 100644 --- a/src/graphql/organization/index.ts +++ b/src/graphql/organization/index.ts @@ -1,4 +1,4 @@ -import OrganizationMutations from './OrganizationMutations.js' -import OrganizationQueries from './OrganizationQueries.js' +import OrganizationMutations from './OrganizationMutations' +import OrganizationQueries from './OrganizationQueries' export { OrganizationMutations, OrganizationQueries } diff --git a/src/graphql/posts/index.ts b/src/graphql/posts/index.ts index 9b4aee96..ffc60d08 100644 --- a/src/graphql/posts/index.ts +++ b/src/graphql/posts/index.ts @@ -1,5 +1,5 @@ -import PostQueries from './queries.js' -import PostMutations from './mutations.js' -import PostResolvers from './PostResolvers.js' +import PostQueries from './queries' +import PostMutations from './mutations' +import PostResolvers from './PostResolvers' export { PostQueries, PostMutations, PostResolvers } diff --git a/src/graphql/posts/mutations.ts b/src/graphql/posts/mutations.ts index d49c6e29..fc66d58e 100644 --- a/src/graphql/posts/mutations.ts +++ b/src/graphql/posts/mutations.ts @@ -1,5 +1,5 @@ import { AddPostInputType, RemovePostInputType } from '../../db/PostTypes' -import { getPostModel } from '../../db/PostSchema.js' +import { getPostModel } from '../../db/PostSchema' import { Context } from '../../types' import muid from 'uuid-mongodb' import { XMediaType } from '../../db/XMediaTypes' diff --git a/src/graphql/posts/queries.ts b/src/graphql/posts/queries.ts index 9f70e174..39f1269c 100644 --- a/src/graphql/posts/queries.ts +++ b/src/graphql/posts/queries.ts @@ -1,4 +1,4 @@ -import { getPostModel } from '../../db/PostSchema.js' +import { getPostModel } from '../../db/PostSchema' import { GetPostsInputType } from '../../db/PostTypes' const PostQueries = { diff --git a/src/graphql/resolvers.ts b/src/graphql/resolvers.ts index c3c81347..1c85de7f 100644 --- a/src/graphql/resolvers.ts +++ b/src/graphql/resolvers.ts @@ -4,22 +4,22 @@ import fs from 'fs' import { gql } from 'apollo-server' import { DocumentNode } from 'graphql' -import { CommonResolvers, CommonTypeDef } from './common/index.js' -import { HistoryQueries, HistoryFieldResolvers } from '../graphql/history/index.js' +import { CommonResolvers, CommonTypeDef } from './common/index' +import { HistoryQueries, HistoryFieldResolvers } from '../graphql/history/index' import { QueryByIdType, GQLFilter, Sort, Context } from '../types' -import { AreaType, CountByDisciplineType } from '../db/AreaTypes.js' -import { ClimbGQLQueryType, ClimbType } from '../db/ClimbTypes.js' -import AreaDataSource from '../model/AreaDataSource.js' -import { MediaMutations, MediaQueries, MediaResolvers } from './media/index.js' -import { PostMutations, PostQueries, PostResolvers } from './posts/index.js' -import { XMediaMutations, XMediaQueries, XMediaResolvers } from './xmedia/index.js' -import { AreaQueries, AreaMutations } from './area/index.js' -import { ClimbMutations } from './climb/index.js' -import { OrganizationMutations, OrganizationQueries } from './organization/index.js' -import { TickMutations, TickQueries } from './tick/index.js' -import { UserQueries, UserMutations, UserResolvers } from './user/index.js' -import { getAuthorMetadataFromBaseNode } from '../db/utils/index.js' -import { geojsonPointToLatitude, geojsonPointToLongitude } from '../utils/helpers.js' +import { AreaType, CountByDisciplineType } from '../db/AreaTypes' +import { ClimbGQLQueryType, ClimbType } from '../db/ClimbTypes' +import AreaDataSource from '../model/AreaDataSource' +import { MediaMutations, MediaQueries, MediaResolvers } from './media/index' +import { PostMutations, PostQueries, PostResolvers } from './posts/index' +import { XMediaMutations, XMediaQueries, XMediaResolvers } from './xmedia/index' +import { AreaQueries, AreaMutations } from './area/index' +import { ClimbMutations } from './climb/index' +import { OrganizationMutations, OrganizationQueries } from './organization/index' +import { TickMutations, TickQueries } from './tick/index' +import { UserQueries, UserMutations, UserResolvers } from './user/index' +import { getAuthorMetadataFromBaseNode } from '../db/utils/index' +import { geojsonPointToLatitude, geojsonPointToLongitude } from '../utils/helpers' /** * It takes a file name as an argument, reads the file, and returns a GraphQL DocumentNode. diff --git a/src/graphql/tag/index.ts b/src/graphql/tag/index.ts index 8714e1d2..17d23a1e 100644 --- a/src/graphql/tag/index.ts +++ b/src/graphql/tag/index.ts @@ -1,4 +1,4 @@ -import TagQueries from './queries.js' -import TagResolvers from './TagResolvers.js' +import TagQueries from './queries' +import TagResolvers from './TagResolvers' export { TagQueries, TagResolvers } diff --git a/src/graphql/tag/queries.ts b/src/graphql/tag/queries.ts index 97f8ef7b..26709c62 100644 --- a/src/graphql/tag/queries.ts +++ b/src/graphql/tag/queries.ts @@ -1,5 +1,5 @@ -import { getTagModel } from '../../db/TagSchema.js' -import { GetTagsInputType } from '../../db/TagTypes.js' +import { getTagModel } from '../../db/TagSchema' +import { GetTagsInputType } from '../../db/TagTypes' const TagQueries = { // Given a list of TagIds, return a list of Tag documents. diff --git a/src/graphql/tick/index.ts b/src/graphql/tick/index.ts index 234ac9d8..f412f42f 100644 --- a/src/graphql/tick/index.ts +++ b/src/graphql/tick/index.ts @@ -1,4 +1,4 @@ -import TickMutations from './TickMutations.js' -import TickQueries from './TickQueries.js' +import TickMutations from './TickMutations' +import TickQueries from './TickQueries' export { TickMutations, TickQueries } diff --git a/src/graphql/user/UserMutations.ts b/src/graphql/user/UserMutations.ts index 9697d043..2e9fc389 100644 --- a/src/graphql/user/UserMutations.ts +++ b/src/graphql/user/UserMutations.ts @@ -1,5 +1,5 @@ -import { DataSourcesType, ContextWithAuth } from '../../types.js' -import { UpdateProfileGQLInput } from '../../db/UserTypes.js' +import { DataSourcesType, ContextWithAuth } from '../../types' +import { UpdateProfileGQLInput } from '../../db/UserTypes' const UserMutations = { updateUserProfile: async (_: any, { input }, { dataSources, user: authenticatedUser }: ContextWithAuth) => { diff --git a/src/graphql/user/UserQueries.ts b/src/graphql/user/UserQueries.ts index ef5d57d3..eafcbaac 100644 --- a/src/graphql/user/UserQueries.ts +++ b/src/graphql/user/UserQueries.ts @@ -1,8 +1,8 @@ import muuid from 'uuid-mongodb' import { GraphQLError } from 'graphql' -import { DataSourcesType, ContextWithAuth, Context } from '../../types.js' -import { GetUsernameReturn, UserPublicProfile, UserPublicPage } from '../../db/UserTypes.js' +import { DataSourcesType, ContextWithAuth, Context } from '../../types' +import { GetUsernameReturn, UserPublicProfile, UserPublicPage } from '../../db/UserTypes' const UserQueries = { diff --git a/src/graphql/user/UserResolvers.ts b/src/graphql/user/UserResolvers.ts index 8bbe8549..ffde27cd 100644 --- a/src/graphql/user/UserResolvers.ts +++ b/src/graphql/user/UserResolvers.ts @@ -1,4 +1,4 @@ -import { GetUsernameReturn, UserPublicProfile } from '../../db/UserTypes.js' +import { GetUsernameReturn, UserPublicProfile } from '../../db/UserTypes' const UserResolvers: object = { diff --git a/src/graphql/user/index.ts b/src/graphql/user/index.ts index 6de941cb..b2584508 100644 --- a/src/graphql/user/index.ts +++ b/src/graphql/user/index.ts @@ -1,5 +1,5 @@ -import UserQueries from './UserQueries.js' -import UserMutations from './UserMutations.js' -import UserResolvers from './UserResolvers.js' +import UserQueries from './UserQueries' +import UserMutations from './UserMutations' +import UserResolvers from './UserResolvers' export { UserQueries, UserMutations, UserResolvers } diff --git a/src/graphql/xmedia/index.ts b/src/graphql/xmedia/index.ts index 5fbf9429..165c14c7 100644 --- a/src/graphql/xmedia/index.ts +++ b/src/graphql/xmedia/index.ts @@ -1,5 +1,5 @@ -import XMediaQueries from './queries.js' -import XMediaMutations from './mutations.js' -import XMediaResolvers from './XMediaResolvers.js' +import XMediaQueries from './queries' +import XMediaMutations from './mutations' +import XMediaResolvers from './XMediaResolvers' export { XMediaQueries, XMediaMutations, XMediaResolvers } diff --git a/src/graphql/xmedia/mutations.ts b/src/graphql/xmedia/mutations.ts index fc79f2ad..cfd53312 100644 --- a/src/graphql/xmedia/mutations.ts +++ b/src/graphql/xmedia/mutations.ts @@ -1,5 +1,5 @@ import { XMediaType, RemoveXMediaInputType } from '../../db/XMediaTypes' -import { getXMediaModel } from '../../db/XMediaSchema.js' +import { getXMediaModel } from '../../db/XMediaSchema' import { Context } from '../../types' const XMediaMutations = { diff --git a/src/graphql/xmedia/queries.ts b/src/graphql/xmedia/queries.ts index ac9bcdf6..d4b1f5a9 100644 --- a/src/graphql/xmedia/queries.ts +++ b/src/graphql/xmedia/queries.ts @@ -1,5 +1,5 @@ -import { getXMediaModel } from '../../db/XMediaSchema.js' -import { GetXMediaInputType } from '../../db/XMediaTypes.js' +import { getXMediaModel } from '../../db/XMediaSchema' +import { GetXMediaInputType } from '../../db/XMediaTypes' const XMediaQueries = { // Given a list of xMediaIds, return a list of xMedia documents. diff --git a/src/main.ts b/src/main.ts index 2af67fe9..84c7b12c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,6 @@ -import { logger } from './logger.js' -import { connectDB, defaultPostConnect } from './db/index.js' -import { createServer } from './server.js' +import { logger } from './logger' +import { connectDB, defaultPostConnect } from './db/index' +import { createServer } from './server' const port = 4000 const server = await createServer() diff --git a/src/model/AreaDataSource.ts b/src/model/AreaDataSource.ts index 2f4f3839..def5585a 100644 --- a/src/model/AreaDataSource.ts +++ b/src/model/AreaDataSource.ts @@ -3,12 +3,12 @@ import { Filter } from 'mongodb' import muuid from 'uuid-mongodb' import bboxPolygon from '@turf/bbox-polygon' -import { getAreaModel, getMediaObjectModel } from '../db/index.js' +import { getAreaModel, getMediaObjectModel } from '../db/index' import { AreaType } from '../db/AreaTypes' import { GQLFilter, AreaFilterParams, PathTokenParams, LeafStatusParams, ComparisonFilterParams, StatisticsType, CragsNear, BBoxType } from '../types' -import { getClimbModel } from '../db/ClimbSchema.js' -import { ClimbGQLQueryType } from '../db/ClimbTypes.js' -import { logger } from '../logger.js' +import { getClimbModel } from '../db/ClimbSchema' +import { ClimbGQLQueryType } from '../db/ClimbTypes' +import { logger } from '../logger' export default class AreaDataSource extends MongoDataSource { areaModel = getAreaModel() diff --git a/src/model/AreaHistoryDatasource.ts b/src/model/AreaHistoryDatasource.ts index be02ddeb..c620597c 100644 --- a/src/model/AreaHistoryDatasource.ts +++ b/src/model/AreaHistoryDatasource.ts @@ -1,7 +1,7 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import { MUUID } from 'uuid-mongodb' -import { AreaChangeLogType } from '../db/ChangeLogType.js' -import { getChangeLogModel } from '../db/index.js' +import { AreaChangeLogType } from '../db/ChangeLogType' +import { getChangeLogModel } from '../db/index' export class AreaHistoryDataSource extends MongoDataSource { changelogModel = getChangeLogModel() diff --git a/src/model/ChangeLogDataSource.ts b/src/model/ChangeLogDataSource.ts index 267a6215..9d45de38 100644 --- a/src/model/ChangeLogDataSource.ts +++ b/src/model/ChangeLogDataSource.ts @@ -2,11 +2,11 @@ import mongoose, { ClientSession } from 'mongoose' import { MongoDataSource } from 'apollo-datasource-mongodb' import { MUUID } from 'uuid-mongodb' -import { getChangeLogModel } from '../db/index.js' +import { getChangeLogModel } from '../db/index' import { ChangeLogType, OpType, BaseChangeRecordType, AreaChangeLogType, ClimbChangeLogType, OrganizationChangeLogType } from '../db/ChangeLogType' -import { logger } from '../logger.js' -import { areaHistoryDataSource } from './AreaHistoryDatasource.js' -import { organizationHistoryDataSource } from './OrganizationHistoryDatasource.js' +import { logger } from '../logger' +import { areaHistoryDataSource } from './AreaHistoryDatasource' +import { organizationHistoryDataSource } from './OrganizationHistoryDatasource' export default class ChangeLogDataSource extends MongoDataSource { changeLogModel = getChangeLogModel() diff --git a/src/model/ClimbDataSource.ts b/src/model/ClimbDataSource.ts index 61ce714d..8eb585f6 100644 --- a/src/model/ClimbDataSource.ts +++ b/src/model/ClimbDataSource.ts @@ -1,8 +1,8 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import { MUUID } from 'uuid-mongodb' -import { getAreaModel } from '../db/AreaSchema.js' -import { getClimbModel } from '../db/ClimbSchema.js' -import { ClimbType } from '../db/ClimbTypes.js' +import { getAreaModel } from '../db/AreaSchema' +import { getClimbModel } from '../db/ClimbSchema' +import { ClimbType } from '../db/ClimbTypes' // TODO move climb helper functions from AreaDataSource here export default class ClimbDataSource extends MongoDataSource { diff --git a/src/model/ExperimentalUserDataSource.ts b/src/model/ExperimentalUserDataSource.ts index 2aabb818..ba55be3c 100644 --- a/src/model/ExperimentalUserDataSource.ts +++ b/src/model/ExperimentalUserDataSource.ts @@ -3,8 +3,8 @@ import mongoose, { ClientSession } from 'mongoose' import muuid, { MUUID } from 'uuid-mongodb' import { v5 as uuidv5, NIL } from 'uuid' -import { getExperimentalUserModel } from '../db/index.js' -import { ExperimentalUserType } from '../db/UserTypes.js' +import { getExperimentalUserModel } from '../db/index' +import { ExperimentalUserType } from '../db/UserTypes' export default class MediaDataSource extends MongoDataSource { experimentUserModel = getExperimentalUserModel() diff --git a/src/model/MediaDataSource.ts b/src/model/MediaDataSource.ts index 8e34c726..09a0940d 100644 --- a/src/model/MediaDataSource.ts +++ b/src/model/MediaDataSource.ts @@ -1,9 +1,9 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import muid, { MUUID } from 'uuid-mongodb' import mongoose from 'mongoose' -import { logger } from '../logger.js' -import { getMediaObjectModel } from '../db/index.js' -import { TagsLeaderboardType, UserMediaQueryInput, AllTimeTagStats, MediaByUsers, MediaForFeedInput, MediaObject, UserMedia } from '../db/MediaObjectTypes.js' +import { logger } from '../logger' +import { getMediaObjectModel } from '../db/index' +import { TagsLeaderboardType, UserMediaQueryInput, AllTimeTagStats, MediaByUsers, MediaForFeedInput, MediaObject, UserMedia } from '../db/MediaObjectTypes' const HARD_MAX_FILES = 1000 const HARD_MAX_USERS = 100 diff --git a/src/model/MutableAreaDataSource.ts b/src/model/MutableAreaDataSource.ts index bdd67b08..c5f30cd7 100644 --- a/src/model/MutableAreaDataSource.ts +++ b/src/model/MutableAreaDataSource.ts @@ -5,20 +5,20 @@ import mongoose, { ClientSession } from 'mongoose' import { produce } from 'immer' import { UserInputError } from 'apollo-server' import isoCountries from 'i18n-iso-countries' -import enJson from 'i18n-iso-countries/langs/en.json' assert { type: 'json' } - -import { AreaType, AreaEditableFieldsType, OperationType, UpdateSortingOrderType } from '../db/AreaTypes.js' -import AreaDataSource from './AreaDataSource.js' -import { createRootNode } from '../db/import/usa/AreaTree.js' -import { makeDBArea } from '../db/import/usa/AreaTransformer.js' -import { changelogDataSource } from './ChangeLogDataSource.js' -import { ChangeRecordMetadataType } from '../db/ChangeLogType.js' -import CountriesLngLat from '../data/countries-with-lnglat.json' assert { type: 'json' } -import { logger } from '../logger.js' -import { GradeContexts } from '../GradeUtils.js' -import { sanitizeStrict } from '../utils/sanitize.js' -import { ExperimentalAuthorType } from '../db/UserTypes.js' -import { createInstance as createExperimentalUserDataSource } from '../model/ExperimentalUserDataSource.js' +import enJson from 'i18n-iso-countries/langs/en.json' + +import { AreaType, AreaEditableFieldsType, OperationType, UpdateSortingOrderType } from '../db/AreaTypes' +import AreaDataSource from './AreaDataSource' +import { createRootNode } from '../db/import/usa/AreaTree' +import { makeDBArea } from '../db/import/usa/AreaTransformer' +import { changelogDataSource } from './ChangeLogDataSource' +import { ChangeRecordMetadataType } from '../db/ChangeLogType' +import CountriesLngLat from '../data/countries-with-lnglat.json' +import { logger } from '../logger' +import { GradeContexts } from '../GradeUtils' +import { sanitizeStrict } from '../utils/sanitize' +import { ExperimentalAuthorType } from '../db/UserTypes' +import { createInstance as createExperimentalUserDataSource } from '../model/ExperimentalUserDataSource' isoCountries.registerLocale(enJson) diff --git a/src/model/MutableClimbDataSource.ts b/src/model/MutableClimbDataSource.ts index 10375dd8..2fbba27d 100644 --- a/src/model/MutableClimbDataSource.ts +++ b/src/model/MutableClimbDataSource.ts @@ -2,14 +2,14 @@ import muid, { MUUID } from 'uuid-mongodb' import { UserInputError } from 'apollo-server' import { ClientSession } from 'mongoose' -import { ClimbChangeDocType, ClimbChangeInputType, ClimbEditOperationType, IPitch } from '../db/ClimbTypes.js' -import ClimbDataSource from './ClimbDataSource.js' -import { createInstance as createExperimentalUserDataSource } from './ExperimentalUserDataSource.js' -import { sanitizeDisciplines, gradeContextToGradeScales, createGradeObject } from '../GradeUtils.js' -import { getClimbModel } from '../db/ClimbSchema.js' -import { ChangeRecordMetadataType } from '../db/ChangeLogType.js' -import { changelogDataSource } from './ChangeLogDataSource.js' -import { sanitize, sanitizeStrict } from '../utils/sanitize.js' +import { ClimbChangeDocType, ClimbChangeInputType, ClimbEditOperationType, IPitch } from '../db/ClimbTypes' +import ClimbDataSource from './ClimbDataSource' +import { createInstance as createExperimentalUserDataSource } from './ExperimentalUserDataSource' +import { sanitizeDisciplines, gradeContextToGradeScales, createGradeObject } from '../GradeUtils' +import { getClimbModel } from '../db/ClimbSchema' +import { ChangeRecordMetadataType } from '../db/ChangeLogType' +import { changelogDataSource } from './ChangeLogDataSource' +import { sanitize, sanitizeStrict } from '../utils/sanitize' export default class MutableClimbDataSource extends ClimbDataSource { experimentalUserDataSource = createExperimentalUserDataSource() diff --git a/src/model/MutableMediaDataSource.ts b/src/model/MutableMediaDataSource.ts index 75cdef29..700d2664 100644 --- a/src/model/MutableMediaDataSource.ts +++ b/src/model/MutableMediaDataSource.ts @@ -2,9 +2,9 @@ import { UserInputError } from 'apollo-server' import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import MediaDataSource from './MediaDataSource.js' -import { EntityTag, EntityTagDeleteInput, MediaObject, MediaObjectGQLInput, AddTagEntityInput, NewMediaObjectDoc } from '../db/MediaObjectTypes.js' -import MutableAreaDataSource from './MutableAreaDataSource.js' +import MediaDataSource from './MediaDataSource' +import { EntityTag, EntityTagDeleteInput, MediaObject, MediaObjectGQLInput, AddTagEntityInput, NewMediaObjectDoc } from '../db/MediaObjectTypes' +import MutableAreaDataSource from './MutableAreaDataSource' export default class MutableMediaDataSource extends MediaDataSource { areaDS = MutableAreaDataSource.getInstance() diff --git a/src/model/MutableOrganizationDataSource.ts b/src/model/MutableOrganizationDataSource.ts index 06a79688..ecb349a3 100644 --- a/src/model/MutableOrganizationDataSource.ts +++ b/src/model/MutableOrganizationDataSource.ts @@ -2,13 +2,13 @@ import mongoose, { ClientSession } from 'mongoose' import muuid, { MUUID } from 'uuid-mongodb' import { produce } from 'immer' -import { OrganizationType, OperationType, OrgType, OrganizationEditableFieldsType } from '../db/OrganizationTypes.js' -import OrganizationDataSource from './OrganizationDataSource.js' -import { changelogDataSource } from './ChangeLogDataSource.js' -import { ChangeRecordMetadataType } from '../db/ChangeLogType.js' -import { sanitize, sanitizeStrict } from '../utils/sanitize.js' -import { muuidToString } from '../utils/helpers.js' -import { getAreaModel } from '../db/AreaSchema.js' +import { OrganizationType, OperationType, OrgType, OrganizationEditableFieldsType } from '../db/OrganizationTypes' +import OrganizationDataSource from './OrganizationDataSource' +import { changelogDataSource } from './ChangeLogDataSource' +import { ChangeRecordMetadataType } from '../db/ChangeLogType' +import { sanitize, sanitizeStrict } from '../utils/sanitize' +import { muuidToString } from '../utils/helpers' +import { getAreaModel } from '../db/AreaSchema' export default class MutableOrganizationDataSource extends OrganizationDataSource { /** diff --git a/src/model/OrganizationDataSource.ts b/src/model/OrganizationDataSource.ts index f89a6add..7a4596cd 100644 --- a/src/model/OrganizationDataSource.ts +++ b/src/model/OrganizationDataSource.ts @@ -3,10 +3,10 @@ import { Filter } from 'mongodb' import type { FindCursor, WithId } from 'mongodb' import muuid from 'uuid-mongodb' -import { getOrganizationModel } from '../db/index.js' +import { getOrganizationModel } from '../db/index' import { AssociatedAreaIdsFilterParams, DisplayNameFilterParams, ExcludedAreaIdsFilterParams, OrganizationGQLFilter } from '../types' -import { OrganizationType } from '../db/OrganizationTypes.js' -import { muuidToString } from '../utils/helpers.js' +import { OrganizationType } from '../db/OrganizationTypes' +import { muuidToString } from '../utils/helpers' export default class OrganizationDataSource extends MongoDataSource { organizationModel = getOrganizationModel() diff --git a/src/model/OrganizationHistoryDatasource.ts b/src/model/OrganizationHistoryDatasource.ts index 25252231..28645b4a 100644 --- a/src/model/OrganizationHistoryDatasource.ts +++ b/src/model/OrganizationHistoryDatasource.ts @@ -1,7 +1,7 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import { MUUID } from 'uuid-mongodb' -import { OrganizationChangeLogType } from '../db/ChangeLogType.js' -import { getChangeLogModel } from '../db/index.js' +import { OrganizationChangeLogType } from '../db/ChangeLogType' +import { getChangeLogModel } from '../db/index' export class OrganizationHistoryDataSource extends MongoDataSource { changelogModel = getChangeLogModel() diff --git a/src/model/PostDataSource.ts b/src/model/PostDataSource.ts index 07c8310b..4deb9723 100644 --- a/src/model/PostDataSource.ts +++ b/src/model/PostDataSource.ts @@ -1,6 +1,6 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import { PostType } from '../db/PostTypes' -import { getPostModel } from '../db/index.js' +import { getPostModel } from '../db/index' /** * Not being used at the moment diff --git a/src/model/TickDataSource.ts b/src/model/TickDataSource.ts index b546ebd4..f55213cf 100644 --- a/src/model/TickDataSource.ts +++ b/src/model/TickDataSource.ts @@ -3,7 +3,7 @@ import type { DeleteResult } from 'mongodb' import mongoose from 'mongoose' import { TickEditFilterType, TickInput, TickType, TickUserSelectors } from '../db/TickTypes' -import { getTickModel, getUserModel } from '../db/index.js' +import { getTickModel, getUserModel } from '../db/index' import type { User } from '../db/UserTypes' export default class TickDataSource extends MongoDataSource { diff --git a/src/model/UserDataSource.ts b/src/model/UserDataSource.ts index aa5f4bc8..29757a17 100644 --- a/src/model/UserDataSource.ts +++ b/src/model/UserDataSource.ts @@ -3,16 +3,16 @@ import muid, { MUUID } from 'uuid-mongodb' import mongoose from 'mongoose' import differenceInDays from 'date-fns/differenceInDays/index.js' -import { getUserModel } from '../db/index.js' +import { getUserModel } from '../db/index' import { User, UpdateProfileGQLInput, UsernameInfo, GetUsernameReturn, UserPublicProfile -} from '../db/UserTypes.js' -import { trimToNull } from '../utils/sanitize.js' -import { canonicalizeUsername } from '../utils/helpers.js' +} from '../db/UserTypes' +import { trimToNull } from '../utils/sanitize' +import { canonicalizeUsername } from '../utils/helpers' const USERNAME_UPDATE_WAITING_IN_DAYS = 14 diff --git a/src/model/XMediaDataSource.ts b/src/model/XMediaDataSource.ts index d14bbdce..4c8bd1de 100644 --- a/src/model/XMediaDataSource.ts +++ b/src/model/XMediaDataSource.ts @@ -1,6 +1,6 @@ import { MongoDataSource } from 'apollo-datasource-mongodb' import { XMediaType } from '../db/XMediaTypes' -import { getXMediaModel } from '../db/index.js' +import { getXMediaModel } from '../db/index' /** * Not being used at the moment diff --git a/src/model/__tests__/AreaHistoryDataSource.ts b/src/model/__tests__/AreaHistoryDataSource.ts index 171433b3..e30588fa 100644 --- a/src/model/__tests__/AreaHistoryDataSource.ts +++ b/src/model/__tests__/AreaHistoryDataSource.ts @@ -3,12 +3,12 @@ import { ChangeStream } from 'mongodb' import { jest } from '@jest/globals' import muuid from 'uuid-mongodb' -import MutableAreaDataSource from '../MutableAreaDataSource.js' -import { connectDB, createIndexes, getAreaModel } from '../../db/index.js' -import streamListener from '../../db/edit/streamListener.js' -import { logger } from '../../logger.js' -import { changelogDataSource } from '../ChangeLogDataSource.js' -import { OperationType } from '../../db/AreaTypes.js' +import MutableAreaDataSource from '../MutableAreaDataSource' +import { connectDB, createIndexes, getAreaModel } from '../../db/index' +import streamListener from '../../db/edit/streamListener' +import { logger } from '../../logger' +import { changelogDataSource } from '../ChangeLogDataSource' +import { OperationType } from '../../db/AreaTypes' jest.setTimeout(120000) diff --git a/src/model/__tests__/ChangeLogDS.ts b/src/model/__tests__/ChangeLogDS.ts index 4edfa5fb..c1b7a734 100644 --- a/src/model/__tests__/ChangeLogDS.ts +++ b/src/model/__tests__/ChangeLogDS.ts @@ -1,12 +1,12 @@ import mongoose from 'mongoose' import { jest } from '@jest/globals' import muuid from 'uuid-mongodb' -import { connectDB, getChangeLogModel, getAreaModel } from '../../db/index.js' -import ChangeLogDataSource from '../ChangeLogDataSource.js' -import { OpType } from '../../db/ChangeLogType.js' -import { OperationType } from '../../db/AreaTypes.js' +import { connectDB, getChangeLogModel, getAreaModel } from '../../db/index' +import ChangeLogDataSource from '../ChangeLogDataSource' +import { OpType } from '../../db/ChangeLogType' +import { OperationType } from '../../db/AreaTypes' -import { logger } from '../../logger.js' +import { logger } from '../../logger' jest.setTimeout(10000) diff --git a/src/model/__tests__/MediaDataSource.ts b/src/model/__tests__/MediaDataSource.ts index 83a65c7c..ef2a20fe 100644 --- a/src/model/__tests__/MediaDataSource.ts +++ b/src/model/__tests__/MediaDataSource.ts @@ -4,10 +4,10 @@ import MutableMediaDataSource from '../MutableMediaDataSource' import AreaDataSource from '../MutableAreaDataSource' import ClimbDataSource from '../MutableClimbDataSource' -import { connectDB, createIndexes } from '../../db/index.js' -import { AreaType } from '../../db/AreaTypes.js' -import { EntityTag, MediaObject, MediaObjectGQLInput, AddTagEntityInput, UserMediaQueryInput, UserMedia } from '../../db/MediaObjectTypes.js' -import { newSportClimb1 } from './MutableClimbDataSource.js' +import { connectDB, createIndexes } from '../../db/index' +import { AreaType } from '../../db/AreaTypes' +import { EntityTag, MediaObject, MediaObjectGQLInput, AddTagEntityInput, UserMediaQueryInput, UserMedia } from '../../db/MediaObjectTypes' +import { newSportClimb1 } from './MutableClimbDataSource' const TEST_MEDIA: MediaObjectGQLInput = { userUuid: 'a2eb6353-65d1-445f-912c-53c6301404bd', diff --git a/src/model/__tests__/MutableClimbDataSource.ts b/src/model/__tests__/MutableClimbDataSource.ts index 911ab721..ab5058dc 100644 --- a/src/model/__tests__/MutableClimbDataSource.ts +++ b/src/model/__tests__/MutableClimbDataSource.ts @@ -2,15 +2,15 @@ import mongoose from 'mongoose' import muid from 'uuid-mongodb' import { ChangeStream } from 'mongodb' -import MutableClimbDataSource from '../MutableClimbDataSource.js' -import MutableAreaDataSource from '../MutableAreaDataSource.js' - -import { connectDB, createIndexes, getAreaModel, getClimbModel } from '../../db/index.js' -import { logger } from '../../logger.js' -import { ClimbType, ClimbChangeInputType } from '../../db/ClimbTypes.js' -import { sanitizeDisciplines } from '../../GradeUtils.js' -import streamListener from '../../db/edit/streamListener.js' -import { changelogDataSource } from '../ChangeLogDataSource.js' +import MutableClimbDataSource from '../MutableClimbDataSource' +import MutableAreaDataSource from '../MutableAreaDataSource' + +import { connectDB, createIndexes, getAreaModel, getClimbModel } from '../../db/index' +import { logger } from '../../logger' +import { ClimbType, ClimbChangeInputType } from '../../db/ClimbTypes' +import { sanitizeDisciplines } from '../../GradeUtils' +import streamListener from '../../db/edit/streamListener' +import { changelogDataSource } from '../ChangeLogDataSource' export const newSportClimb1: ClimbChangeInputType = { name: 'Cool route 1', diff --git a/src/model/__tests__/MutableOrganizationDataSource.ts b/src/model/__tests__/MutableOrganizationDataSource.ts index e2f06cca..8bb38025 100644 --- a/src/model/__tests__/MutableOrganizationDataSource.ts +++ b/src/model/__tests__/MutableOrganizationDataSource.ts @@ -1,12 +1,12 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' -import MutableOrganizationDataSource from '../MutableOrganizationDataSource.js' -import MutableAreaDataSource from '../MutableAreaDataSource.js' -import { connectDB, createIndexes, getAreaModel, getOrganizationModel } from '../../db/index.js' -import { OrganizationEditableFieldsType, OrgType } from '../../db/OrganizationTypes.js' -import { AreaType } from '../../db/AreaTypes.js' -import { muuidToString } from '../../utils/helpers.js' +import MutableOrganizationDataSource from '../MutableOrganizationDataSource' +import MutableAreaDataSource from '../MutableAreaDataSource' +import { connectDB, createIndexes, getAreaModel, getOrganizationModel } from '../../db/index' +import { OrganizationEditableFieldsType, OrgType } from '../../db/OrganizationTypes' +import { AreaType } from '../../db/AreaTypes' +import { muuidToString } from '../../utils/helpers' describe('Organization', () => { let organizations: MutableOrganizationDataSource diff --git a/src/model/__tests__/UserDataSource.ts b/src/model/__tests__/UserDataSource.ts index 2921b247..1b2c3aa7 100644 --- a/src/model/__tests__/UserDataSource.ts +++ b/src/model/__tests__/UserDataSource.ts @@ -2,9 +2,9 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' import { jest } from '@jest/globals' -import { connectDB, getUserModel } from '../../db/index.js' -import UserDataSource from '../UserDataSource.js' -import { UpdateProfileGQLInput } from '../../db/UserTypes.js' +import { connectDB, getUserModel } from '../../db/index' +import UserDataSource from '../UserDataSource' +import { UpdateProfileGQLInput } from '../../db/UserTypes' describe('UserDataSource', () => { let users: UserDataSource diff --git a/src/model/__tests__/ticks.ts b/src/model/__tests__/ticks.ts index 5325f34c..b6487ca1 100644 --- a/src/model/__tests__/ticks.ts +++ b/src/model/__tests__/ticks.ts @@ -1,11 +1,11 @@ import mongoose from 'mongoose' import { produce } from 'immer' -import TickDataSource from '../TickDataSource.js' -import { connectDB, getTickModel, getUserModel } from '../../db/index.js' -import { TickInput } from '../../db/TickTypes.js' +import TickDataSource from '../TickDataSource' +import { connectDB, getTickModel, getUserModel } from '../../db/index' +import { TickInput } from '../../db/TickTypes' import muuid from 'uuid-mongodb' -import UserDataSource from '../UserDataSource.js' -import { UpdateProfileGQLInput } from '../../db/UserTypes.js' +import UserDataSource from '../UserDataSource' +import { UpdateProfileGQLInput } from '../../db/UserTypes' const userId = muuid.v4() diff --git a/src/model/__tests__/updateAreas.ts b/src/model/__tests__/updateAreas.ts index 693edc68..c320c012 100644 --- a/src/model/__tests__/updateAreas.ts +++ b/src/model/__tests__/updateAreas.ts @@ -2,10 +2,10 @@ import mongoose from 'mongoose' import muuid from 'uuid-mongodb' import { geometry } from '@turf/helpers' -import MutableAreaDataSource from '../MutableAreaDataSource.js' -import MutableClimbDataSource from '../MutableClimbDataSource.js' -import { connectDB, createIndexes, getAreaModel, getClimbModel } from '../../db/index.js' -import { AreaEditableFieldsType, UpdateSortingOrderType } from '../../db/AreaTypes.js' +import MutableAreaDataSource from '../MutableAreaDataSource' +import MutableClimbDataSource from '../MutableClimbDataSource' +import { connectDB, createIndexes, getAreaModel, getClimbModel } from '../../db/index' +import { AreaEditableFieldsType, UpdateSortingOrderType } from '../../db/AreaTypes' describe('Areas', () => { let areas: MutableAreaDataSource diff --git a/src/server.ts b/src/server.ts index b7c98621..714a7337 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,20 +1,20 @@ import { ApolloServer } from 'apollo-server' import mongoose from 'mongoose' import { applyMiddleware } from 'graphql-middleware' -import { graphqlSchema } from './graphql/resolvers.js' +import { graphqlSchema } from './graphql/resolvers' -import MutableAreaDataSource from './model/MutableAreaDataSource.js' -import ChangeLogDataSource from './model/ChangeLogDataSource.js' -import MutableMediaDataSource from './model/MutableMediaDataSource.js' -import MutableClimbDataSource from './model/MutableClimbDataSource.js' -import TickDataSource from './model/TickDataSource.js' -import { createContext, permissions } from './auth/index.js' -import XMediaDataSource from './model/XMediaDataSource.js' -import PostDataSource from './model/PostDataSource.js' -import MutableOrgDS from './model/MutableOrganizationDataSource.js' -import type { Context } from './types.js' +import MutableAreaDataSource from './model/MutableAreaDataSource' +import ChangeLogDataSource from './model/ChangeLogDataSource' +import MutableMediaDataSource from './model/MutableMediaDataSource' +import MutableClimbDataSource from './model/MutableClimbDataSource' +import TickDataSource from './model/TickDataSource' +import { createContext, permissions } from './auth/index' +import XMediaDataSource from './model/XMediaDataSource' +import PostDataSource from './model/PostDataSource' +import MutableOrgDS from './model/MutableOrganizationDataSource' +import type { Context } from './types' import type { DataSources } from 'apollo-server-core/dist/graphqlOptions' -import UserDataSource from './model/UserDataSource.js' +import UserDataSource from './model/UserDataSource' export async function createServer (): Promise { const schema = applyMiddleware( diff --git a/src/types.ts b/src/types.ts index 79bc66b8..6cd70ceb 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,16 +1,16 @@ import { BBox } from '@turf/helpers' import { MUUID } from 'uuid-mongodb' -import { AreaType } from './db/AreaTypes.js' -import type MutableAreaDataSource from './model/MutableAreaDataSource.js' -import type TickDataSource from './model/TickDataSource.js' -import type HistoryDataSouce from './model/ChangeLogDataSource.js' -import type MutableMediaDataSource from './model/MutableMediaDataSource.js' -import MutableClimbDataSource from './model/MutableClimbDataSource.js' -import XMediaDataSource from './model/XMediaDataSource.js' -import PostDataSource from './model/PostDataSource.js' -import MutableOrganizationDataSource from './model/MutableOrganizationDataSource.js' -import type UserDataSource from './model/UserDataSource.js' +import { AreaType } from './db/AreaTypes' +import type MutableAreaDataSource from './model/MutableAreaDataSource' +import type TickDataSource from './model/TickDataSource' +import type HistoryDataSouce from './model/ChangeLogDataSource' +import type MutableMediaDataSource from './model/MutableMediaDataSource' +import MutableClimbDataSource from './model/MutableClimbDataSource' +import XMediaDataSource from './model/XMediaDataSource' +import PostDataSource from './model/PostDataSource' +import MutableOrganizationDataSource from './model/MutableOrganizationDataSource' +import type UserDataSource from './model/UserDataSource' export enum SortDirection { ASC = 1, diff --git a/src/utils/inMemoryDB.ts b/src/utils/inMemoryDB.ts index 567bdd46..f2c58e3b 100644 --- a/src/utils/inMemoryDB.ts +++ b/src/utils/inMemoryDB.ts @@ -1,8 +1,8 @@ import mongoose, { ConnectOptions } from 'mongoose' import { ChangeStream, MongoClient } from 'mongodb' import { MongoMemoryReplSet } from 'mongodb-memory-server' -import { defaultPostConnect, checkVar } from '../db/index.js' -import { logger } from '../logger.js' +import { defaultPostConnect, checkVar } from '../db/index' +import { logger } from '../logger' /** * In-memory Mongo replset used for testing. diff --git a/src/utils/testUtils.ts b/src/utils/testUtils.ts index 7013f5a0..b53d03a7 100644 --- a/src/utils/testUtils.ts +++ b/src/utils/testUtils.ts @@ -1,9 +1,9 @@ import jwt from 'jsonwebtoken' import { jest } from '@jest/globals' import request from 'supertest' -import inMemoryDB from './inMemoryDB.js' -import type { InMemoryDB } from './inMemoryDB.js' -import { createServer } from '../server.js' +import inMemoryDB from './inMemoryDB' +import type { InMemoryDB } from './inMemoryDB' +import { createServer } from '../server' import { ApolloServer } from 'apollo-server' const PORT = 4000 diff --git a/tsconfig.json b/tsconfig.json index 871ed609..1d67eeea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,4 +21,4 @@ "include": [ "src/**/*.ts", ] -} \ No newline at end of file +} diff --git a/tsconfig.release.json b/tsconfig.release.json index 96e646f3..2d41042a 100644 --- a/tsconfig.release.json +++ b/tsconfig.release.json @@ -5,4 +5,4 @@ "**/__mocks__/*", "**/__tests__/*" ] -} \ No newline at end of file +}