diff --git a/lambdas/account-data-deleter-batch-delete/jest.config.js b/lambdas/account-data-deleter-batch-delete/jest.config.js deleted file mode 100644 index 3d9ee9b60..000000000 --- a/lambdas/account-data-deleter-batch-delete/jest.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'lambda-batchdelete', - testTimeout: 1000000, -}; diff --git a/lambdas/account-data-deleter-batch-delete/jest.config.ts b/lambdas/account-data-deleter-batch-delete/jest.config.ts new file mode 100644 index 000000000..e433d0c6d --- /dev/null +++ b/lambdas/account-data-deleter-batch-delete/jest.config.ts @@ -0,0 +1,17 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'lambda-batchdelete', + testTimeout: 1000000, + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/account-data-deleter-batch-delete/jest.setup.js b/lambdas/account-data-deleter-batch-delete/jest.setup.ts similarity index 100% rename from lambdas/account-data-deleter-batch-delete/jest.setup.js rename to lambdas/account-data-deleter-batch-delete/jest.setup.ts diff --git a/lambdas/account-data-deleter-batch-delete/package.json b/lambdas/account-data-deleter-batch-delete/package.json index c9671ab32..a2f852228 100644 --- a/lambdas/account-data-deleter-batch-delete/package.json +++ b/lambdas/account-data-deleter-batch-delete/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/account-data-deleter-batch-delete/src/dyanmoUtils.integration.ts b/lambdas/account-data-deleter-batch-delete/src/dyanmoUtils.integration.ts index d8b0c8e03..6542bab60 100644 --- a/lambdas/account-data-deleter-batch-delete/src/dyanmoUtils.integration.ts +++ b/lambdas/account-data-deleter-batch-delete/src/dyanmoUtils.integration.ts @@ -1,9 +1,9 @@ import { DynamoDBClient } from '@aws-sdk/client-dynamodb'; import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb'; import { BatchGetCommand } from '@aws-sdk/lib-dynamodb'; -import { config } from './config'; -import { BatchDeleteDyanmoClient } from './dynamoUtils'; -import { seedData, truncateTable } from './test/utils'; +import { config } from './config.ts'; +import { BatchDeleteDyanmoClient } from './dynamoUtils.ts'; +import { seedData, truncateTable } from './test/utils.ts'; describe('Data fetcher', () => { const client = new DynamoDBClient({ diff --git a/lambdas/account-data-deleter-batch-delete/src/dynamoUtils.ts b/lambdas/account-data-deleter-batch-delete/src/dynamoUtils.ts index bc9060bdf..9219c5029 100644 --- a/lambdas/account-data-deleter-batch-delete/src/dynamoUtils.ts +++ b/lambdas/account-data-deleter-batch-delete/src/dynamoUtils.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import { BatchWriteCommand, BatchWriteCommandInput, diff --git a/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.spec.ts b/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.spec.ts index ff47648e7..4d1c98e9f 100644 --- a/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.spec.ts +++ b/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.spec.ts @@ -1,5 +1,5 @@ -import { config } from '../config'; -import { deleteUserMutationCaller, userApiCalls } from './deleteMutation'; +import { config } from '../config.ts'; +import { deleteUserMutationCaller, userApiCalls } from './deleteMutation.ts'; import nock from 'nock'; describe('deleteUser mutation test', () => { diff --git a/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.ts b/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.ts index b4f4751cb..d9af74720 100644 --- a/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.ts +++ b/lambdas/account-data-deleter-batch-delete/src/externalCaller/deleteMutation.ts @@ -1,5 +1,5 @@ import { backOff } from 'exponential-backoff'; -import { config } from '../config'; +import { config } from '../config.ts'; /** * Function that establishes the number of back off attempts diff --git a/lambdas/account-data-deleter-batch-delete/src/index.spec.ts b/lambdas/account-data-deleter-batch-delete/src/index.spec.ts index 1bc5cc578..a52bf2bb8 100644 --- a/lambdas/account-data-deleter-batch-delete/src/index.spec.ts +++ b/lambdas/account-data-deleter-batch-delete/src/index.spec.ts @@ -1,8 +1,8 @@ -import { BatchDeleteDyanmoClient } from './dynamoUtils'; +import { BatchDeleteDyanmoClient } from './dynamoUtils.ts'; import { DynamoDBClient } from '@aws-sdk/client-dynamodb'; -import { config } from './config'; -import * as DeleteMutation from './externalCaller/deleteMutation'; -import { deleteUsers } from './index'; +import { config } from './config.ts'; +import * as DeleteMutation from './externalCaller/deleteMutation.ts'; +import { deleteUsers } from './index.ts'; import * as Sentry from '@sentry/aws-serverless'; describe('deleteUsers spec test', () => { diff --git a/lambdas/account-data-deleter-batch-delete/src/index.ts b/lambdas/account-data-deleter-batch-delete/src/index.ts index 1ba48924e..db85e42c8 100644 --- a/lambdas/account-data-deleter-batch-delete/src/index.ts +++ b/lambdas/account-data-deleter-batch-delete/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; import { serverLogger } from '@pocket-tools/ts-logger'; @@ -11,9 +11,9 @@ Sentry.init({ }); import { EventBridgeEvent } from 'aws-lambda'; -import { BatchDeleteDyanmoClient } from './dynamoUtils'; +import { BatchDeleteDyanmoClient } from './dynamoUtils.ts'; import { DynamoDBClient } from '@aws-sdk/client-dynamodb'; -import { deleteUserMutationCaller } from './externalCaller/deleteMutation'; +import { deleteUserMutationCaller } from './externalCaller/deleteMutation.ts'; const dynamoDBClient = new DynamoDBClient({ region: config.aws.region, diff --git a/lambdas/account-data-deleter-batch-delete/src/test/utils.ts b/lambdas/account-data-deleter-batch-delete/src/test/utils.ts index 64a0fa5d5..8241e4cbe 100644 --- a/lambdas/account-data-deleter-batch-delete/src/test/utils.ts +++ b/lambdas/account-data-deleter-batch-delete/src/test/utils.ts @@ -8,7 +8,7 @@ import { } from '@aws-sdk/lib-dynamodb'; import { chunk } from 'lodash'; -import { config } from '../config'; +import { config } from '../config.ts'; /** * Seed data of consecutive stringified integers, hash key only diff --git a/lambdas/account-data-deleter-batch-delete/tsconfig.json b/lambdas/account-data-deleter-batch-delete/tsconfig.json index a5a29e107..d53d82381 100644 --- a/lambdas/account-data-deleter-batch-delete/tsconfig.json +++ b/lambdas/account-data-deleter-batch-delete/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": [ "src/**/*.ts", ] diff --git a/lambdas/account-data-deleter-events/jest.config.js b/lambdas/account-data-deleter-events/jest.config.js deleted file mode 100644 index b2dc1525d..000000000 --- a/lambdas/account-data-deleter-events/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'lambda-events', -}; diff --git a/lambdas/account-data-deleter-events/jest.config.ts b/lambdas/account-data-deleter-events/jest.config.ts new file mode 100644 index 000000000..ed3aaf353 --- /dev/null +++ b/lambdas/account-data-deleter-events/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'lambda-events', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/account-data-deleter-events/jest.setup.js b/lambdas/account-data-deleter-events/jest.setup.ts similarity index 100% rename from lambdas/account-data-deleter-events/jest.setup.js rename to lambdas/account-data-deleter-events/jest.setup.ts diff --git a/lambdas/account-data-deleter-events/package.json b/lambdas/account-data-deleter-events/package.json index 5522a2dd5..0f4b7f7bc 100644 --- a/lambdas/account-data-deleter-events/package.json +++ b/lambdas/account-data-deleter-events/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.spec.ts b/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.spec.ts index 0f33f4646..da317273b 100644 --- a/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.spec.ts +++ b/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.spec.ts @@ -1,7 +1,7 @@ -import { config } from '../../config'; +import { config } from '../../config.ts'; import nock from 'nock'; -import { accountDeleteHandler } from './'; -import { callQueueDeleteEndpoint } from './postRequest'; +import { accountDeleteHandler } from './index.ts'; +import { callQueueDeleteEndpoint } from './postRequest.ts'; import { SQSRecord } from 'aws-lambda'; describe('accountDelete handler', () => { diff --git a/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.ts b/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.ts index d6d67b75e..105ea9f34 100644 --- a/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.ts +++ b/lambdas/account-data-deleter-events/src/handlers/accountDelete/index.ts @@ -1,10 +1,10 @@ -import { AccountDeleteEvent } from '../../schemas/accountDeleteEvent'; +import { AccountDeleteEvent } from '../../schemas/accountDeleteEvent.ts'; import { callQueueDeleteEndpoint, callStripeDeleteEndpoint, -} from './postRequest'; +} from './postRequest.ts'; import { SQSRecord } from 'aws-lambda'; -import { AggregateError } from '../../errors/AggregateError'; +import { AggregateError } from '../../errors/AggregateError.ts'; type AccountDeleteBody = { userId: string; diff --git a/lambdas/account-data-deleter-events/src/handlers/accountDelete/postRequest.ts b/lambdas/account-data-deleter-events/src/handlers/accountDelete/postRequest.ts index 40a28c65e..904edede6 100644 --- a/lambdas/account-data-deleter-events/src/handlers/accountDelete/postRequest.ts +++ b/lambdas/account-data-deleter-events/src/handlers/accountDelete/postRequest.ts @@ -1,5 +1,5 @@ import fetchRetry from 'fetch-retry'; -import { config } from '../../config'; +import { config } from '../../config.ts'; const newFetch = fetchRetry(fetch); diff --git a/lambdas/account-data-deleter-events/src/handlers/index.ts b/lambdas/account-data-deleter-events/src/handlers/index.ts index cf026979a..a1767f902 100644 --- a/lambdas/account-data-deleter-events/src/handlers/index.ts +++ b/lambdas/account-data-deleter-events/src/handlers/index.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { accountDeleteHandler } from './accountDelete'; +import { accountDeleteHandler } from './accountDelete/index.ts'; export enum Event { ACCOUNT_DELETION = 'account-deletion', diff --git a/lambdas/account-data-deleter-events/src/index.spec.ts b/lambdas/account-data-deleter-events/src/index.spec.ts index 9b90a0d34..04f7796d2 100644 --- a/lambdas/account-data-deleter-events/src/index.spec.ts +++ b/lambdas/account-data-deleter-events/src/index.spec.ts @@ -1,5 +1,5 @@ -import { Event, handlers } from './handlers'; -import { handlerFn } from './index'; +import { Event, handlers } from './handlers/index.ts'; +import { handlerFn } from './index.ts'; import { SQSEvent } from 'aws-lambda'; import * as Sentry from '@sentry/aws-serverless'; diff --git a/lambdas/account-data-deleter-events/src/index.ts b/lambdas/account-data-deleter-events/src/index.ts index 12ae1dfaf..689864aca 100644 --- a/lambdas/account-data-deleter-events/src/index.ts +++ b/lambdas/account-data-deleter-events/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -7,7 +7,7 @@ Sentry.init({ serverName: config.app.name, }); import { SQSBatchItemFailure, SQSEvent } from 'aws-lambda'; -import { handlers } from './handlers'; +import { handlers } from './handlers/index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; export async function handlerFn(event: SQSEvent): Promise { diff --git a/lambdas/account-data-deleter-events/tsconfig.json b/lambdas/account-data-deleter-events/tsconfig.json index a5a29e107..d53d82381 100644 --- a/lambdas/account-data-deleter-events/tsconfig.json +++ b/lambdas/account-data-deleter-events/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": [ "src/**/*.ts", ] diff --git a/lambdas/account-delete-monitor/jest.config.js b/lambdas/account-delete-monitor/jest.config.js deleted file mode 100644 index e9466d4f1..000000000 --- a/lambdas/account-delete-monitor/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - displayName: 'account-delete-monitor', - setupFiles: ['./jest.setup.js'], -}; diff --git a/lambdas/account-delete-monitor/jest.config.ts b/lambdas/account-delete-monitor/jest.config.ts new file mode 100644 index 000000000..f5f5bf999 --- /dev/null +++ b/lambdas/account-delete-monitor/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + displayName: 'account-delete-monitor', + setupFiles: ['./jest.setup.ts'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/account-delete-monitor/jest.setup.js b/lambdas/account-delete-monitor/jest.setup.ts similarity index 100% rename from lambdas/account-delete-monitor/jest.setup.js rename to lambdas/account-delete-monitor/jest.setup.ts diff --git a/lambdas/account-delete-monitor/package.json b/lambdas/account-delete-monitor/package.json index 7b2d174c1..743d438a0 100644 --- a/lambdas/account-delete-monitor/package.json +++ b/lambdas/account-delete-monitor/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/account-delete-monitor/src/dynamodb.ts b/lambdas/account-delete-monitor/src/dynamodb.ts index 4c0fbe8b6..fb971536a 100644 --- a/lambdas/account-delete-monitor/src/dynamodb.ts +++ b/lambdas/account-delete-monitor/src/dynamodb.ts @@ -1,6 +1,6 @@ import { DynamoDBClient, DynamoDBClientConfig } from '@aws-sdk/client-dynamodb'; import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb'; -import { config } from './config'; +import { config } from './config.ts'; /** Initialize outside of handler to follow best practices * Note that TCP connection reuse is enabled by default in v3 diff --git a/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.spec.ts b/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.spec.ts index 0500060ff..abf2a01b9 100644 --- a/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.spec.ts +++ b/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.spec.ts @@ -1,5 +1,5 @@ -import { config } from '../config'; -import { deleteUserMutationCaller, userApiCalls } from './deleteMutation'; +import { config } from '../config.ts'; +import { deleteUserMutationCaller, userApiCalls } from './deleteMutation.ts'; import nock from 'nock'; describe('deleteUser mutation test', () => { diff --git a/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.ts b/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.ts index cc46546de..df54f84f4 100644 --- a/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.ts +++ b/lambdas/account-delete-monitor/src/externalCaller/deleteMutation.ts @@ -1,5 +1,5 @@ import { backOff } from 'exponential-backoff'; -import { config } from '../config'; +import { config } from '../config.ts'; /** * Function that establishes the number of back off attempts diff --git a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.integration.ts b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.integration.ts index a55481159..5ea282bc1 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.integration.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.integration.ts @@ -1,10 +1,10 @@ -import { accountDeleteHandler } from './accountDeleteHandler'; +import { accountDeleteHandler } from './accountDeleteHandler.ts'; import { SQSRecord } from 'aws-lambda'; -import { client, dynamo } from '../dynamodb'; +import { client, dynamo } from '../dynamodb.ts'; import { GetCommand, PutCommand } from '@aws-sdk/lib-dynamodb'; -import { config } from '../config'; -import * as deleteMutation from '../externalCaller/deleteMutation'; -import { truncateTable } from '../test/utils'; +import { config } from '../config.ts'; +import * as deleteMutation from '../externalCaller/deleteMutation.ts'; +import { truncateTable } from '../test/utils.ts'; describe('Account delete handler', () => { const record = { diff --git a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.spec.ts b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.spec.ts index 3e3f95051..33119bd1a 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.spec.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.spec.ts @@ -1,5 +1,5 @@ -import { client } from '../dynamodb'; -import { accountDeleteHandler } from './accountDeleteHandler'; +import { client } from '../dynamodb.ts'; +import { accountDeleteHandler } from './accountDeleteHandler.ts'; import { type SQSRecord } from 'aws-lambda'; describe('Account delete handler', () => { diff --git a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.ts b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.ts index 1804b8687..135d15c70 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountDeleteHandler.ts @@ -1,11 +1,11 @@ import { SQSRecord } from 'aws-lambda'; -import { client } from '../dynamodb'; +import { client } from '../dynamodb.ts'; import { GetCommand, PutCommand } from '@aws-sdk/lib-dynamodb'; -import { config } from '../config'; +import { config } from '../config.ts'; // import { expirationTimestamp } from '../utils'; -import { epochMsToIsoDate } from '../utils'; -import { DeleteRequestModel } from '../types'; -import { deleteUserMutationCaller } from '../externalCaller/deleteMutation'; +import { epochMsToIsoDate } from '../utils.ts'; +import { DeleteRequestModel } from '../types.ts'; +import { deleteUserMutationCaller } from '../externalCaller/deleteMutation.ts'; /** * Store the account deletion request in DynamoDB for tracking, and to diff --git a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.integration.ts b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.integration.ts index 079951f48..b459ca816 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.integration.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.integration.ts @@ -1,9 +1,9 @@ import { SQSRecord } from 'aws-lambda'; -import { client, dynamo } from '../dynamodb'; +import { client, dynamo } from '../dynamodb.ts'; import { GetCommand, PutCommand } from '@aws-sdk/lib-dynamodb'; -import { config } from '../config'; -import { accountMergeHandler } from './accountMergeHandler'; -import { truncateTable } from '../test/utils'; +import { config } from '../config.ts'; +import { accountMergeHandler } from './accountMergeHandler.ts'; +import { truncateTable } from '../test/utils.ts'; describe('Account merge handler', () => { beforeEach(async () => { diff --git a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.spec.ts b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.spec.ts index 2c8813f4d..a108dc6cc 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.spec.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.spec.ts @@ -1,5 +1,5 @@ -import { client } from '../dynamodb'; -import { accountMergeHandler } from './accountMergeHandler'; +import { client } from '../dynamodb.ts'; +import { accountMergeHandler } from './accountMergeHandler.ts'; import { type SQSRecord } from 'aws-lambda'; describe('Account merge handler', () => { diff --git a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.ts b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.ts index 066b37318..01240acdb 100644 --- a/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.ts +++ b/lambdas/account-delete-monitor/src/handlers/accountMergeHandler.ts @@ -1,9 +1,9 @@ import { SQSRecord } from 'aws-lambda'; -import { client } from '../dynamodb'; +import { client } from '../dynamodb.ts'; import { UpdateCommand } from '@aws-sdk/lib-dynamodb'; -import { config } from '../config'; +import { config } from '../config.ts'; // import { expirationTimestamp } from '../utils'; -import { UserMergeEvent } from '../types'; +import { UserMergeEvent } from '../types.ts'; /** * Store records to identify history of merged accounts. diff --git a/lambdas/account-delete-monitor/src/handlers/index.ts b/lambdas/account-delete-monitor/src/handlers/index.ts index 952ac987c..cc178d46b 100644 --- a/lambdas/account-delete-monitor/src/handlers/index.ts +++ b/lambdas/account-delete-monitor/src/handlers/index.ts @@ -1,6 +1,6 @@ import { SQSRecord } from 'aws-lambda'; -import { accountDeleteHandler } from './accountDeleteHandler'; -import { accountMergeHandler } from './accountMergeHandler'; +import { accountDeleteHandler } from './accountDeleteHandler.ts'; +import { accountMergeHandler } from './accountMergeHandler.ts'; export enum Event { ACCOUNT_DELETION = 'account-deletion', diff --git a/lambdas/account-delete-monitor/src/index.spec.ts b/lambdas/account-delete-monitor/src/index.spec.ts index adc3fca68..64a9145da 100644 --- a/lambdas/account-delete-monitor/src/index.spec.ts +++ b/lambdas/account-delete-monitor/src/index.spec.ts @@ -1,5 +1,5 @@ -import { Event, handlers } from './handlers'; -import { processor } from './index'; +import { Event, handlers } from './handlers/index.ts'; +import { processor } from './index.ts'; import { type SQSEvent } from 'aws-lambda'; import * as Sentry from '@sentry/aws-serverless'; diff --git a/lambdas/account-delete-monitor/src/index.ts b/lambdas/account-delete-monitor/src/index.ts index 4d38156da..4806d0afe 100644 --- a/lambdas/account-delete-monitor/src/index.ts +++ b/lambdas/account-delete-monitor/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -12,7 +12,7 @@ import type { SQSBatchResponse, SQSBatchItemFailure, } from 'aws-lambda'; -import { handlers } from './handlers'; +import { handlers } from './handlers/index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; /** diff --git a/lambdas/account-delete-monitor/src/utils.spec.ts b/lambdas/account-delete-monitor/src/utils.spec.ts index 5e4b488fb..b522a15ba 100644 --- a/lambdas/account-delete-monitor/src/utils.spec.ts +++ b/lambdas/account-delete-monitor/src/utils.spec.ts @@ -1,4 +1,4 @@ -import * as utils from './utils'; +import * as utils from './utils.ts'; describe('util functions', () => { describe('epochMsToIsoDate', () => { diff --git a/lambdas/account-delete-monitor/tsconfig.json b/lambdas/account-delete-monitor/tsconfig.json index a5a29e107..d53d82381 100644 --- a/lambdas/account-delete-monitor/tsconfig.json +++ b/lambdas/account-delete-monitor/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": [ "src/**/*.ts", ] diff --git a/lambdas/annotations-api-events/jest.config.js b/lambdas/annotations-api-events/jest.config.js deleted file mode 100644 index b2dc1525d..000000000 --- a/lambdas/annotations-api-events/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'lambda-events', -}; diff --git a/lambdas/annotations-api-events/jest.config.ts b/lambdas/annotations-api-events/jest.config.ts new file mode 100644 index 000000000..ed3aaf353 --- /dev/null +++ b/lambdas/annotations-api-events/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'lambda-events', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/annotations-api-events/jest.setup.js b/lambdas/annotations-api-events/jest.setup.ts similarity index 100% rename from lambdas/annotations-api-events/jest.setup.js rename to lambdas/annotations-api-events/jest.setup.ts diff --git a/lambdas/annotations-api-events/package.json b/lambdas/annotations-api-events/package.json index 1c026c96f..f94f72784 100644 --- a/lambdas/annotations-api-events/package.json +++ b/lambdas/annotations-api-events/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/annotations-api-events/src/handlers/accountDelete.spec.ts b/lambdas/annotations-api-events/src/handlers/accountDelete.spec.ts index 419e866c6..27c241084 100644 --- a/lambdas/annotations-api-events/src/handlers/accountDelete.spec.ts +++ b/lambdas/annotations-api-events/src/handlers/accountDelete.spec.ts @@ -1,6 +1,6 @@ -import { config } from '../config'; +import { config } from '../config.ts'; import nock from 'nock'; -import { accountDeleteHandler } from './accountDelete'; +import { accountDeleteHandler } from './accountDelete.ts'; import { SQSRecord } from 'aws-lambda'; describe('accountDelete handler', () => { diff --git a/lambdas/annotations-api-events/src/handlers/accountDelete.ts b/lambdas/annotations-api-events/src/handlers/accountDelete.ts index 653902864..ef5001dc8 100644 --- a/lambdas/annotations-api-events/src/handlers/accountDelete.ts +++ b/lambdas/annotations-api-events/src/handlers/accountDelete.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { config } from '../config'; +import { config } from '../config.ts'; /** * Given an account delete event, queue SQS messages to delete chunks of the diff --git a/lambdas/annotations-api-events/src/handlers/index.ts b/lambdas/annotations-api-events/src/handlers/index.ts index cf026979a..982736d98 100644 --- a/lambdas/annotations-api-events/src/handlers/index.ts +++ b/lambdas/annotations-api-events/src/handlers/index.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { accountDeleteHandler } from './accountDelete'; +import { accountDeleteHandler } from './accountDelete.ts'; export enum Event { ACCOUNT_DELETION = 'account-deletion', diff --git a/lambdas/annotations-api-events/src/index.spec.ts b/lambdas/annotations-api-events/src/index.spec.ts index 18ac61397..bf4b7fe6f 100644 --- a/lambdas/annotations-api-events/src/index.spec.ts +++ b/lambdas/annotations-api-events/src/index.spec.ts @@ -1,5 +1,5 @@ -import { Event, handlers } from './handlers'; -import { processor } from './index'; +import { Event, handlers } from './handlers/index.ts'; +import { processor } from './index.ts'; import { SQSEvent } from 'aws-lambda'; import * as Sentry from '@sentry/aws-serverless'; diff --git a/lambdas/annotations-api-events/src/index.ts b/lambdas/annotations-api-events/src/index.ts index b2e875f82..7c2ded9b3 100644 --- a/lambdas/annotations-api-events/src/index.ts +++ b/lambdas/annotations-api-events/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -12,7 +12,7 @@ import type { SQSBatchResponse, SQSBatchItemFailure, } from 'aws-lambda'; -import { handlers } from './handlers'; +import { handlers } from './handlers/index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; /** * The main handler function which will be wrapped by Sentry prior to export. diff --git a/lambdas/annotations-api-events/tsconfig.json b/lambdas/annotations-api-events/tsconfig.json index a5a29e107..d53d82381 100644 --- a/lambdas/annotations-api-events/tsconfig.json +++ b/lambdas/annotations-api-events/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": [ "src/**/*.ts", ] diff --git a/lambdas/fxa-webook-proxy-gateway/jest.config.js b/lambdas/fxa-webook-proxy-gateway/jest.config.js deleted file mode 100644 index 4abea8986..000000000 --- a/lambdas/fxa-webook-proxy-gateway/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|functional).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - }; \ No newline at end of file diff --git a/lambdas/fxa-webook-proxy-gateway/jest.config.ts b/lambdas/fxa-webook-proxy-gateway/jest.config.ts new file mode 100644 index 000000000..587780227 --- /dev/null +++ b/lambdas/fxa-webook-proxy-gateway/jest.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|functional).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/fxa-webook-proxy-gateway/jest.setup.js b/lambdas/fxa-webook-proxy-gateway/jest.setup.ts similarity index 100% rename from lambdas/fxa-webook-proxy-gateway/jest.setup.js rename to lambdas/fxa-webook-proxy-gateway/jest.setup.ts diff --git a/lambdas/fxa-webook-proxy-gateway/package.json b/lambdas/fxa-webook-proxy-gateway/package.json index a4e90d19f..ac1d768e9 100644 --- a/lambdas/fxa-webook-proxy-gateway/package.json +++ b/lambdas/fxa-webook-proxy-gateway/package.json @@ -5,6 +5,7 @@ "keywords": [], "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/fxa-webook-proxy-gateway/src/config.ts b/lambdas/fxa-webook-proxy-gateway/src/config.ts index 925a2727e..f0384317c 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/config.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/config.ts @@ -1,4 +1,4 @@ -import { EVENT } from './types'; +import { EVENT } from './types.ts'; const environment = process.env.ENVIRONMENT || 'development'; diff --git a/lambdas/fxa-webook-proxy-gateway/src/index.functional.ts b/lambdas/fxa-webook-proxy-gateway/src/index.functional.ts index c3eab345f..a881d30e9 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/index.functional.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/index.functional.ts @@ -1,15 +1,15 @@ -import { FxaJwt } from './jwt'; +import { FxaJwt } from './jwt.ts'; import * as Sentry from '@sentry/aws-serverless'; -import { eventHandler, formatResponse } from './index'; -import config from './config'; +import { eventHandler, formatResponse } from './index.ts'; +import config from './config.ts'; import { PurgeQueueCommand, ReceiveMessageCommand, ReceiveMessageCommandInput, } from '@aws-sdk/client-sqs'; -import { sqsClient } from './sqs'; +import { sqsClient } from './sqs.ts'; import { APIGatewayEvent } from 'aws-lambda'; -import { EVENT } from './types'; +import { EVENT } from './types.ts'; const sampleApiGatewayEvent: APIGatewayEvent = { body: null, diff --git a/lambdas/fxa-webook-proxy-gateway/src/index.spec.ts b/lambdas/fxa-webook-proxy-gateway/src/index.spec.ts index bee63875c..6f23f2095 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/index.spec.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/index.spec.ts @@ -2,8 +2,8 @@ import { createSuccessResponseMessage, formatResponse, generateEvents, -} from './index'; -import { EVENT, SqsEvent } from './types'; +} from './index.ts'; +import { EVENT, SqsEvent } from './types.ts'; describe('Handler functions', () => { describe('Format of API Gateway response', () => { diff --git a/lambdas/fxa-webook-proxy-gateway/src/index.ts b/lambdas/fxa-webook-proxy-gateway/src/index.ts index 633ea5a0e..99edc80a0 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/index.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/index.ts @@ -1,4 +1,4 @@ -import config from './config'; +import config from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -8,9 +8,9 @@ Sentry.init({ }); import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'; -import { FxaJwt } from './jwt'; -import { sendMessage } from './sqs'; -import { SqsEvent, FxaPayload } from './types'; +import { FxaJwt } from './jwt.ts'; +import { sendMessage } from './sqs.ts'; +import { SqsEvent, FxaPayload } from './types.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; /** * Format the response data diff --git a/lambdas/fxa-webook-proxy-gateway/src/jwt.spec.ts b/lambdas/fxa-webook-proxy-gateway/src/jwt.spec.ts index 9718b01d4..f6066979f 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/jwt.spec.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/jwt.spec.ts @@ -1,6 +1,6 @@ import jwt from 'jsonwebtoken'; import fs from 'fs'; -import { FxaJwt } from './jwt'; +import { FxaJwt } from './jwt.ts'; describe('jwt', () => { const publicKey = fs.readFileSync(__dirname + '/test/jwtRS256.key.pub', { diff --git a/lambdas/fxa-webook-proxy-gateway/src/jwt.ts b/lambdas/fxa-webook-proxy-gateway/src/jwt.ts index 7b87b36ba..53167b355 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/jwt.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/jwt.ts @@ -1,7 +1,7 @@ import jwt from 'jsonwebtoken'; import jwksClient from 'jwks-rsa'; -import config from './config'; -import { FxaPayload, FxaOpenIdConfigPayload } from './types'; +import config from './config.ts'; +import { FxaPayload, FxaOpenIdConfigPayload } from './types.ts'; export class FxaJwt { public readonly token: jwt.Jwt; diff --git a/lambdas/fxa-webook-proxy-gateway/src/sqs.ts b/lambdas/fxa-webook-proxy-gateway/src/sqs.ts index 5fe7ee4e4..635bf4d5b 100644 --- a/lambdas/fxa-webook-proxy-gateway/src/sqs.ts +++ b/lambdas/fxa-webook-proxy-gateway/src/sqs.ts @@ -3,7 +3,7 @@ import { SendMessageCommandOutput, SQSClient, } from '@aws-sdk/client-sqs'; -import config from './config'; +import config from './config.ts'; export const sqsClient = new SQSClient({ endpoint: config.aws.endpoint, diff --git a/lambdas/fxa-webook-proxy-sqs/jest.config.js b/lambdas/fxa-webook-proxy-sqs/jest.config.js deleted file mode 100644 index 4abea8986..000000000 --- a/lambdas/fxa-webook-proxy-sqs/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|functional).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - }; \ No newline at end of file diff --git a/lambdas/fxa-webook-proxy-sqs/jest.config.ts b/lambdas/fxa-webook-proxy-sqs/jest.config.ts new file mode 100644 index 000000000..587780227 --- /dev/null +++ b/lambdas/fxa-webook-proxy-sqs/jest.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|functional).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/fxa-webook-proxy-sqs/jest.setup.js b/lambdas/fxa-webook-proxy-sqs/jest.setup.ts similarity index 100% rename from lambdas/fxa-webook-proxy-sqs/jest.setup.js rename to lambdas/fxa-webook-proxy-sqs/jest.setup.ts diff --git a/lambdas/fxa-webook-proxy-sqs/package.json b/lambdas/fxa-webook-proxy-sqs/package.json index 8ce4a781d..ec8aeeb4b 100644 --- a/lambdas/fxa-webook-proxy-sqs/package.json +++ b/lambdas/fxa-webook-proxy-sqs/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/fxa-webook-proxy-sqs/src/index.spec.ts b/lambdas/fxa-webook-proxy-sqs/src/index.spec.ts index fcf14ead5..3e2f4a18e 100644 --- a/lambdas/fxa-webook-proxy-sqs/src/index.spec.ts +++ b/lambdas/fxa-webook-proxy-sqs/src/index.spec.ts @@ -1,8 +1,8 @@ -import * as fx from './index'; -import config from './config'; +import * as fx from './index.ts'; +import config from './config.ts'; import nock from 'nock'; -import * as secretManager from './secretManager'; -import * as mutations from './mutations'; +import * as secretManager from './secretManager.ts'; +import * as mutations from './mutations.ts'; describe('SQS Event Handler', () => { let handleMutationErrorsSpy; diff --git a/lambdas/fxa-webook-proxy-sqs/src/index.ts b/lambdas/fxa-webook-proxy-sqs/src/index.ts index b945c0ad7..cb9cdf782 100644 --- a/lambdas/fxa-webook-proxy-sqs/src/index.ts +++ b/lambdas/fxa-webook-proxy-sqs/src/index.ts @@ -1,4 +1,4 @@ -import config from './config'; +import config from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.app.sentry.dsn, @@ -14,7 +14,7 @@ import { passwordChangeMutation, submitDeleteMutation, submitEmailUpdatedMutation, -} from './mutations'; +} from './mutations.ts'; // these events are defined in ./gateway_lambda/config.ts export enum EVENT { diff --git a/lambdas/fxa-webook-proxy-sqs/src/mutations.ts b/lambdas/fxa-webook-proxy-sqs/src/mutations.ts index 8a1b16c18..43aae0119 100644 --- a/lambdas/fxa-webook-proxy-sqs/src/mutations.ts +++ b/lambdas/fxa-webook-proxy-sqs/src/mutations.ts @@ -1,10 +1,10 @@ import { SQSRecord } from 'aws-lambda'; -import config from './config'; -import { getFxaPrivateKey } from './secretManager'; +import config from './config.ts'; +import { getFxaPrivateKey } from './secretManager.ts'; import { generateJwt, PocketJWK } from '@pocket-tools/jwt-utils'; -import { FxaEvent } from '.'; +import { FxaEvent } from './index.ts'; // should match the reasons defined in user-api subgraph schema: // https://github.com/Pocket/user-api/blob/main/schema.graphql#L69 diff --git a/lambdas/fxa-webook-proxy-sqs/src/secretManager.ts b/lambdas/fxa-webook-proxy-sqs/src/secretManager.ts index 1e5364095..6c127919e 100644 --- a/lambdas/fxa-webook-proxy-sqs/src/secretManager.ts +++ b/lambdas/fxa-webook-proxy-sqs/src/secretManager.ts @@ -1,4 +1,4 @@ -import config from './config'; +import config from './config.ts'; import { fetchSecret } from '@pocket-tools/lambda-secrets'; //https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-secrets-manager/classes/getsecretvaluecommand.html diff --git a/lambdas/instant-sync-events/jest.config.js b/lambdas/instant-sync-events/jest.config.js deleted file mode 100644 index 47d5660b4..000000000 --- a/lambdas/instant-sync-events/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - displayName: 'instant-sync-events', - setupFiles: ['./jest.setup.js'], -}; diff --git a/lambdas/instant-sync-events/jest.config.ts b/lambdas/instant-sync-events/jest.config.ts new file mode 100644 index 000000000..e31a29cca --- /dev/null +++ b/lambdas/instant-sync-events/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + displayName: 'instant-sync-events', + setupFiles: ['./jest.setup.ts'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/instant-sync-events/jest.setup.js b/lambdas/instant-sync-events/jest.setup.ts similarity index 100% rename from lambdas/instant-sync-events/jest.setup.js rename to lambdas/instant-sync-events/jest.setup.ts diff --git a/lambdas/instant-sync-events/package.json b/lambdas/instant-sync-events/package.json index ce8b51e12..e6addbcf2 100644 --- a/lambdas/instant-sync-events/package.json +++ b/lambdas/instant-sync-events/package.json @@ -2,6 +2,7 @@ "name": "instant-sync-events", "version": "1.0.0", "description": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/instant-sync-events/src/clients.ts b/lambdas/instant-sync-events/src/clients.ts index 45fe01607..5c4fe333e 100644 --- a/lambdas/instant-sync-events/src/clients.ts +++ b/lambdas/instant-sync-events/src/clients.ts @@ -1,6 +1,6 @@ import knex, { Knex } from 'knex'; import { fetchSecret } from '@pocket-tools/lambda-secrets'; -import { config } from './config'; +import { config } from './config.ts'; import knexServerlessMysql from 'knex-serverless-mysql'; import serverlessMysql from 'serverless-mysql'; import * as mysql2 from 'mysql2'; diff --git a/lambdas/instant-sync-events/src/handlerFn.integration.ts b/lambdas/instant-sync-events/src/handlerFn.integration.ts index 0916a8c71..33c508f10 100644 --- a/lambdas/instant-sync-events/src/handlerFn.integration.ts +++ b/lambdas/instant-sync-events/src/handlerFn.integration.ts @@ -1,11 +1,11 @@ import { Knex } from 'knex'; -import { readClient, writeClient } from './clients'; +import { readClient, writeClient } from './clients.ts'; import * as LambdaSecrets from '@pocket-tools/lambda-secrets'; -import { Message, instantSyncHandler } from './handlerFn'; +import { Message, instantSyncHandler } from './handlerFn.ts'; import { SQSRecord } from 'aws-lambda'; -import { client as sqs } from './sqs'; +import { client as sqs } from './sqs.ts'; import { PurgeQueueCommand, ReceiveMessageCommand } from '@aws-sdk/client-sqs'; -import { config } from './config'; +import { config } from './config.ts'; jest.mock('@pocket-tools/lambda-secrets'); diff --git a/lambdas/instant-sync-events/src/handlerFn.spec.ts b/lambdas/instant-sync-events/src/handlerFn.spec.ts index 5450a437c..a88263a31 100644 --- a/lambdas/instant-sync-events/src/handlerFn.spec.ts +++ b/lambdas/instant-sync-events/src/handlerFn.spec.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { Message, filterUserIds } from './handlerFn'; +import { Message, filterUserIds } from './handlerFn.ts'; describe('filterUserIds', () => { it.each([ diff --git a/lambdas/instant-sync-events/src/handlerFn.ts b/lambdas/instant-sync-events/src/handlerFn.ts index a5dc585c4..f59e199d8 100644 --- a/lambdas/instant-sync-events/src/handlerFn.ts +++ b/lambdas/instant-sync-events/src/handlerFn.ts @@ -1,12 +1,12 @@ import { SQSRecord, SQSBatchResponse, SQSBatchItemFailure } from 'aws-lambda'; -import { readClient, writeClient } from './clients'; -import { client } from './sqs'; +import { readClient, writeClient } from './clients.ts'; +import { client } from './sqs.ts'; import { SendMessageBatchCommand, SendMessageBatchCommandOutput, SendMessageBatchRequestEntry, } from '@aws-sdk/client-sqs'; -import { config } from './config'; +import { config } from './config.ts'; import { nanoid } from 'nanoid'; import { serverLogger } from '@pocket-tools/ts-logger'; import { chunk } from 'lodash'; diff --git a/lambdas/instant-sync-events/src/index.ts b/lambdas/instant-sync-events/src/index.ts index 31916aa8d..08e4272cc 100644 --- a/lambdas/instant-sync-events/src/index.ts +++ b/lambdas/instant-sync-events/src/index.ts @@ -1,10 +1,10 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); import type { SQSEvent } from 'aws-lambda'; -import { instantSyncHandler } from './handlerFn'; +import { instantSyncHandler } from './handlerFn.ts'; /** * Processes messages originating from event bridge. The detail-type field in diff --git a/lambdas/instant-sync-events/src/sqs.ts b/lambdas/instant-sync-events/src/sqs.ts index ddef09208..c7cf7b3a6 100644 --- a/lambdas/instant-sync-events/src/sqs.ts +++ b/lambdas/instant-sync-events/src/sqs.ts @@ -1,5 +1,5 @@ import { SQSClient } from '@aws-sdk/client-sqs'; -import { config } from './config'; +import { config } from './config.ts'; export const client = new SQSClient({ endpoint: config.aws.sqs.endpoint, diff --git a/lambdas/instant-sync-events/tsconfig.json b/lambdas/instant-sync-events/tsconfig.json index e95084793..7d6da88c9 100644 --- a/lambdas/instant-sync-events/tsconfig.json +++ b/lambdas/instant-sync-events/tsconfig.json @@ -1,9 +1,9 @@ { "extends": "tsconfig/lambda.json", "compilerOptions": { - "module": "commonjs", + "rootDir": "src", "outDir": "dist", }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": ["./**/*.ts"] } \ No newline at end of file diff --git a/lambdas/sendgrid-data/jest.config.js b/lambdas/sendgrid-data/jest.config.js deleted file mode 100644 index 4abea8986..000000000 --- a/lambdas/sendgrid-data/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|functional).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - }; \ No newline at end of file diff --git a/lambdas/sendgrid-data/jest.config.ts b/lambdas/sendgrid-data/jest.config.ts new file mode 100644 index 000000000..587780227 --- /dev/null +++ b/lambdas/sendgrid-data/jest.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|functional).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/sendgrid-data/jest.setup.js b/lambdas/sendgrid-data/jest.setup.ts similarity index 100% rename from lambdas/sendgrid-data/jest.setup.js rename to lambdas/sendgrid-data/jest.setup.ts diff --git a/lambdas/sendgrid-data/package.json b/lambdas/sendgrid-data/package.json index 84e4d0dcb..f867e6ce8 100644 --- a/lambdas/sendgrid-data/package.json +++ b/lambdas/sendgrid-data/package.json @@ -2,6 +2,7 @@ "name": "sendgrid-data", "version": "1.0.0", "description": "", + "type": "module", "main": "index.js", "files": [ "dist", diff --git a/lambdas/sendgrid-data/src/index.ts b/lambdas/sendgrid-data/src/index.ts index 845d026cb..ac780c34f 100644 --- a/lambdas/sendgrid-data/src/index.ts +++ b/lambdas/sendgrid-data/src/index.ts @@ -1,12 +1,16 @@ -import config from './config'; +import config from './config/index.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, release: config.sentry.release, environment: config.environment, }); -import { deliverEvents, logEventsError, logEventsReceived } from './sendgrid'; -import { captureException } from './sentry'; +import { + deliverEvents, + logEventsError, + logEventsReceived, +} from './sendgrid/index.ts'; +import { captureException } from './sentry.ts'; import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'; /** diff --git a/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.spec.ts b/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.spec.ts index 01858c508..27209b89f 100644 --- a/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.spec.ts +++ b/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.spec.ts @@ -1,4 +1,4 @@ -import { Event, EventType } from './event'; +import { Event, EventType } from './event.ts'; import { decorateEvent, deliver, @@ -6,8 +6,8 @@ import { eventToMetrics, mapEventToMetricName, getMetricWithDimensions, -} from './cloudwatch-metrics'; -import config from '../config'; +} from './cloudwatch-metrics.ts'; +import config from '../config/index.ts'; import { CloudWatchClient, MetricDatum } from '@aws-sdk/client-cloudwatch'; /** diff --git a/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.ts b/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.ts index 80c3fa189..2280de84f 100644 --- a/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.ts +++ b/lambdas/sendgrid-data/src/sendgrid/cloudwatch-metrics.ts @@ -4,10 +4,10 @@ import { CloudWatchClient, PutMetricDataCommand, } from '@aws-sdk/client-cloudwatch'; -import config from '../config'; -import { Event } from './event'; -import { chunkArray } from './util'; -import { addBreadcrumbs, captureException } from '../sentry'; +import config from '../config/index.ts'; +import { Event } from './event.ts'; +import { chunkArray } from './util.ts'; +import { addBreadcrumbs, captureException } from '../sentry.ts'; export type DimensionMapping = { [key: string]: any; diff --git a/lambdas/sendgrid-data/src/sendgrid/firehose.spec.ts b/lambdas/sendgrid-data/src/sendgrid/firehose.spec.ts index 887c46ef8..fdc0d35a5 100644 --- a/lambdas/sendgrid-data/src/sendgrid/firehose.spec.ts +++ b/lambdas/sendgrid-data/src/sendgrid/firehose.spec.ts @@ -1,6 +1,6 @@ import { FirehoseClient } from '@aws-sdk/client-firehose'; -import config from '../config'; -import { deliver, createRecords, encodeRecord } from './firehose'; +import config from '../config/index.ts'; +import { deliver, createRecords, encodeRecord } from './firehose.ts'; describe('firehose', () => { describe('deliver', () => { diff --git a/lambdas/sendgrid-data/src/sendgrid/firehose.ts b/lambdas/sendgrid-data/src/sendgrid/firehose.ts index 44c2d798c..b7bd451ae 100644 --- a/lambdas/sendgrid-data/src/sendgrid/firehose.ts +++ b/lambdas/sendgrid-data/src/sendgrid/firehose.ts @@ -4,8 +4,8 @@ import { PutRecordBatchCommandOutput, _Record, } from '@aws-sdk/client-firehose'; -import config from '../config'; -import { chunkArray } from './util'; +import config from '../config/index.ts'; +import { chunkArray } from './util.ts'; export const encodeRecord = (event: { [key: string]: any }): _Record => { return { diff --git a/lambdas/sendgrid-data/src/sendgrid/index.ts b/lambdas/sendgrid-data/src/sendgrid/index.ts index 83080e303..4b0c0d9b8 100644 --- a/lambdas/sendgrid-data/src/sendgrid/index.ts +++ b/lambdas/sendgrid-data/src/sendgrid/index.ts @@ -1,5 +1,5 @@ -import { deliver as deliverFirehose } from './firehose'; -import { deliver as deliverMetrics } from './cloudwatch-metrics'; +import { deliver as deliverFirehose } from './firehose.ts'; +import { deliver as deliverMetrics } from './cloudwatch-metrics.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; export const logEventsReceived = (events: any) => { diff --git a/lambdas/sendgrid-data/src/sendgrid/util.spec.ts b/lambdas/sendgrid-data/src/sendgrid/util.spec.ts index 18fea4fb0..d2f5ad0b5 100644 --- a/lambdas/sendgrid-data/src/sendgrid/util.spec.ts +++ b/lambdas/sendgrid-data/src/sendgrid/util.spec.ts @@ -1,4 +1,4 @@ -import { chunkArray } from './util'; +import { chunkArray } from './util.ts'; describe('util', () => { describe('chunkArray', () => { diff --git a/lambdas/shareable-lists-api-events/jest.config.js b/lambdas/shareable-lists-api-events/jest.config.js deleted file mode 100644 index b2dc1525d..000000000 --- a/lambdas/shareable-lists-api-events/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'lambda-events', -}; diff --git a/lambdas/shareable-lists-api-events/jest.config.ts b/lambdas/shareable-lists-api-events/jest.config.ts new file mode 100644 index 000000000..ed3aaf353 --- /dev/null +++ b/lambdas/shareable-lists-api-events/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'lambda-events', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/shareable-lists-api-events/jest.setup.js b/lambdas/shareable-lists-api-events/jest.setup.ts similarity index 100% rename from lambdas/shareable-lists-api-events/jest.setup.js rename to lambdas/shareable-lists-api-events/jest.setup.ts diff --git a/lambdas/shareable-lists-api-events/package.json b/lambdas/shareable-lists-api-events/package.json index 23759affa..89216d2bf 100644 --- a/lambdas/shareable-lists-api-events/package.json +++ b/lambdas/shareable-lists-api-events/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/shareable-lists-api-events/src/handlers/accountDelete.spec.ts b/lambdas/shareable-lists-api-events/src/handlers/accountDelete.spec.ts index 8d4b4c1a2..2c08db467 100644 --- a/lambdas/shareable-lists-api-events/src/handlers/accountDelete.spec.ts +++ b/lambdas/shareable-lists-api-events/src/handlers/accountDelete.spec.ts @@ -1,6 +1,6 @@ -import { config } from '../config'; +import { config } from '../config.ts'; import nock from 'nock'; -import { accountDeleteHandler } from './accountDelete'; +import { accountDeleteHandler } from './accountDelete.ts'; import { SQSRecord } from 'aws-lambda'; describe('accountDelete handler', () => { diff --git a/lambdas/shareable-lists-api-events/src/handlers/accountDelete.ts b/lambdas/shareable-lists-api-events/src/handlers/accountDelete.ts index 9ae16f368..842fd5844 100644 --- a/lambdas/shareable-lists-api-events/src/handlers/accountDelete.ts +++ b/lambdas/shareable-lists-api-events/src/handlers/accountDelete.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { config } from '../config'; +import { config } from '../config.ts'; import fetchRetry from 'fetch-retry'; const newFetch = fetchRetry(fetch); diff --git a/lambdas/shareable-lists-api-events/src/handlers/index.ts b/lambdas/shareable-lists-api-events/src/handlers/index.ts index fa32c662d..9554ab25f 100644 --- a/lambdas/shareable-lists-api-events/src/handlers/index.ts +++ b/lambdas/shareable-lists-api-events/src/handlers/index.ts @@ -1,5 +1,5 @@ import { SQSRecord } from 'aws-lambda'; -import { accountDeleteHandler } from './accountDelete'; +import { accountDeleteHandler } from './accountDelete.ts'; // right hand value should map to the respective `detailType` in event bridge export enum Event { diff --git a/lambdas/shareable-lists-api-events/src/index.spec.ts b/lambdas/shareable-lists-api-events/src/index.spec.ts index e52add545..809c1cb97 100644 --- a/lambdas/shareable-lists-api-events/src/index.spec.ts +++ b/lambdas/shareable-lists-api-events/src/index.spec.ts @@ -1,5 +1,5 @@ -import { Event, handlers } from './handlers'; -import { processor } from './index'; +import { Event, handlers } from './handlers/index.ts'; +import { processor } from './index.ts'; import { SQSEvent, SQSRecord } from 'aws-lambda'; import * as Sentry from '@sentry/aws-serverless'; diff --git a/lambdas/shareable-lists-api-events/src/index.ts b/lambdas/shareable-lists-api-events/src/index.ts index befd67de8..66eaab1fc 100644 --- a/lambdas/shareable-lists-api-events/src/index.ts +++ b/lambdas/shareable-lists-api-events/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -11,7 +11,7 @@ import type { SQSBatchItemFailure, } from 'aws-lambda'; -import { handlers } from './handlers'; +import { handlers } from './handlers/index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; /** diff --git a/lambdas/shareable-lists-api-events/tsconfig.json b/lambdas/shareable-lists-api-events/tsconfig.json index 7b34686ba..a61c684ef 100644 --- a/lambdas/shareable-lists-api-events/tsconfig.json +++ b/lambdas/shareable-lists-api-events/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ys", "jest.setup.ts"], "include": ["src/**/*.ts"] } diff --git a/lambdas/transactional-emails/jest.config.js b/lambdas/transactional-emails/jest.config.js deleted file mode 100644 index 0db0fc753..000000000 --- a/lambdas/transactional-emails/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], -}; diff --git a/lambdas/transactional-emails/jest.config.ts b/lambdas/transactional-emails/jest.config.ts new file mode 100644 index 000000000..36021fa72 --- /dev/null +++ b/lambdas/transactional-emails/jest.config.ts @@ -0,0 +1,14 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/transactional-emails/package.json b/lambdas/transactional-emails/package.json index 47671fc85..941831d36 100644 --- a/lambdas/transactional-emails/package.json +++ b/lambdas/transactional-emails/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/main.js", "files": [ "dist", diff --git a/lambdas/transactional-emails/src/braze.spec.ts b/lambdas/transactional-emails/src/braze.spec.ts index 8db8b020f..8a5a01e1d 100644 --- a/lambdas/transactional-emails/src/braze.spec.ts +++ b/lambdas/transactional-emails/src/braze.spec.ts @@ -1,4 +1,4 @@ -import { generateSubscriptionPayloadForEmail } from './braze'; +import { generateSubscriptionPayloadForEmail } from './braze.ts'; describe('generateSubscriptionRequestBody', () => { it('should map subscription event', () => { diff --git a/lambdas/transactional-emails/src/braze.ts b/lambdas/transactional-emails/src/braze.ts index e2ac5914a..6fcccc907 100644 --- a/lambdas/transactional-emails/src/braze.ts +++ b/lambdas/transactional-emails/src/braze.ts @@ -1,7 +1,7 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; import fetchRetry from 'fetch-retry'; -import { getBrazeApiKey } from './ssm'; +import { getBrazeApiKey } from './ssm.ts'; import type { UsersTrackObject, UsersAliasObject, diff --git a/lambdas/transactional-emails/src/handlers/accountDelete.spec.ts b/lambdas/transactional-emails/src/handlers/accountDelete.spec.ts index e2c32432c..52677ac3d 100644 --- a/lambdas/transactional-emails/src/handlers/accountDelete.spec.ts +++ b/lambdas/transactional-emails/src/handlers/accountDelete.spec.ts @@ -1,10 +1,10 @@ import nock, { cleanAll } from 'nock'; import { SQSEvent, SQSRecord } from 'aws-lambda'; -import { config } from '../config'; -import * as ssm from '../ssm'; -import { sendAccountDeletionEmail } from '../braze'; +import { config } from '../config.ts'; +import * as ssm from '../ssm.ts'; +import { sendAccountDeletionEmail } from '../braze.ts'; import { PocketEventType } from '@pocket-tools/event-bridge'; -import { processor } from '..'; +import { processor } from '../index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; describe('accountDelete handler', () => { diff --git a/lambdas/transactional-emails/src/handlers/accountDelete.ts b/lambdas/transactional-emails/src/handlers/accountDelete.ts index f8c738f1c..eee8b2b18 100644 --- a/lambdas/transactional-emails/src/handlers/accountDelete.ts +++ b/lambdas/transactional-emails/src/handlers/accountDelete.ts @@ -1,4 +1,4 @@ -import { sendAccountDeletionEmail } from '../braze'; +import { sendAccountDeletionEmail } from '../braze.ts'; import { PocketEvent, PocketEventType } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/transactional-emails/src/handlers/forgotPassword.spec.ts b/lambdas/transactional-emails/src/handlers/forgotPassword.spec.ts index 9bbf8f4cb..b9c5edc6b 100644 --- a/lambdas/transactional-emails/src/handlers/forgotPassword.spec.ts +++ b/lambdas/transactional-emails/src/handlers/forgotPassword.spec.ts @@ -1,10 +1,10 @@ import nock, { cleanAll } from 'nock'; import { SQSEvent, SQSRecord } from 'aws-lambda'; -import { config } from '../config'; -import * as ssm from '../ssm'; -import { sendForgotPasswordEmail } from '../braze'; +import { config } from '../config.ts'; +import * as ssm from '../ssm.ts'; +import { sendForgotPasswordEmail } from '../braze.ts'; import { PocketEventType } from '@pocket-tools/event-bridge'; -import { processor } from '..'; +import { processor } from '../index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; describe('forgotPassword handler', () => { diff --git a/lambdas/transactional-emails/src/handlers/forgotPassword.ts b/lambdas/transactional-emails/src/handlers/forgotPassword.ts index 311990260..b6c37cde6 100644 --- a/lambdas/transactional-emails/src/handlers/forgotPassword.ts +++ b/lambdas/transactional-emails/src/handlers/forgotPassword.ts @@ -1,4 +1,4 @@ -import { sendForgotPasswordEmail } from '../braze'; +import { sendForgotPasswordEmail } from '../braze.ts'; import { PocketEventType, PocketEvent } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/transactional-emails/src/handlers/index.ts b/lambdas/transactional-emails/src/handlers/index.ts index 37448b82c..90e3ab63d 100644 --- a/lambdas/transactional-emails/src/handlers/index.ts +++ b/lambdas/transactional-emails/src/handlers/index.ts @@ -1,8 +1,8 @@ -import { accountDeleteHandler } from './accountDelete'; -import { premiumPurchaseHandler } from './premiumPurchaseHandler'; -import { userRegistrationEventHandler } from './userRegistrationEventHandler'; -import { forgotPasswordHandler } from './forgotPassword'; -import { exportReadyHandler } from './listExportReady'; +import { accountDeleteHandler } from './accountDelete.ts'; +import { premiumPurchaseHandler } from './premiumPurchaseHandler.ts'; +import { userRegistrationEventHandler } from './userRegistrationEventHandler.ts'; +import { forgotPasswordHandler } from './forgotPassword.ts'; +import { exportReadyHandler } from './listExportReady.ts'; import { PocketEvent, PocketEventType } from '@pocket-tools/event-bridge'; // Mapping of detail-type (via event bridge message) diff --git a/lambdas/transactional-emails/src/handlers/listExportReady.spec.ts b/lambdas/transactional-emails/src/handlers/listExportReady.spec.ts index 5abfaf8b9..67b98bbbc 100644 --- a/lambdas/transactional-emails/src/handlers/listExportReady.spec.ts +++ b/lambdas/transactional-emails/src/handlers/listExportReady.spec.ts @@ -1,11 +1,11 @@ import nock, { cleanAll } from 'nock'; import { SQSEvent, SQSRecord } from 'aws-lambda'; -import { config } from '../config'; -import * as ssm from '../ssm'; -import { sendListExportReadyEmail } from '../braze'; +import { config } from '../config.ts'; +import * as ssm from '../ssm.ts'; +import { sendListExportReadyEmail } from '../braze.ts'; import { PocketEventType } from '@pocket-tools/event-bridge'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { processor } from '..'; +import { processor } from '../index.ts'; describe('listExportReady handler', () => { let serverLoggerSpy: jest.SpyInstance; diff --git a/lambdas/transactional-emails/src/handlers/listExportReady.ts b/lambdas/transactional-emails/src/handlers/listExportReady.ts index 1728dc372..94029cd61 100644 --- a/lambdas/transactional-emails/src/handlers/listExportReady.ts +++ b/lambdas/transactional-emails/src/handlers/listExportReady.ts @@ -1,4 +1,4 @@ -import { sendListExportReadyEmail } from '../braze'; +import { sendListExportReadyEmail } from '../braze.ts'; import { PocketEvent, PocketEventType } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.spec.ts b/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.spec.ts index 628f1f7ba..a5b91f674 100644 --- a/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.spec.ts +++ b/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.spec.ts @@ -1,6 +1,6 @@ -import * as ssm from '../ssm'; +import * as ssm from '../ssm.ts'; import nock from 'nock'; -import { config } from '../config'; +import { config } from '../config.ts'; import { SQSEvent, SQSRecord } from 'aws-lambda'; import { IncomingBaseEvent, @@ -10,7 +10,7 @@ import { import { cloneDeep } from 'lodash'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { processor } from '..'; +import { processor } from '../index.ts'; function generateRecord(eventPayload: PremiumPurchaseEvent) { return { diff --git a/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.ts b/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.ts index f2ad2bd57..6dac01909 100644 --- a/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.ts +++ b/lambdas/transactional-emails/src/handlers/premiumPurchaseHandler.ts @@ -1,4 +1,4 @@ -import { sendUserTrack } from '../braze'; +import { sendUserTrack } from '../braze.ts'; import { PocketEvent, PocketEventType, diff --git a/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.spec.ts b/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.spec.ts index 171d7d521..28f8c236d 100644 --- a/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.spec.ts +++ b/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.spec.ts @@ -1,11 +1,11 @@ -import * as ssm from '../ssm'; +import * as ssm from '../ssm.ts'; import nock, { cleanAll, disableNetConnect, enableNetConnect } from 'nock'; -import { config } from '../config'; +import { config } from '../config.ts'; import { SQSEvent, SQSRecord } from 'aws-lambda'; import { generateUserAliasRequestBody, generateUserTrackBody, -} from './userRegistrationEventHandler'; +} from './userRegistrationEventHandler.ts'; import { AccountRegistration, IncomingBaseEvent, @@ -13,7 +13,7 @@ import { } from '@pocket-tools/event-bridge'; import { cloneDeep } from 'lodash'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { processor } from '..'; +import { processor } from '../index.ts'; function generateRecord(eventPayload: AccountRegistration) { return { diff --git a/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.ts b/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.ts index 5eece0d78..ad037aac0 100644 --- a/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.ts +++ b/lambdas/transactional-emails/src/handlers/userRegistrationEventHandler.ts @@ -1,11 +1,11 @@ -import { config } from '../config'; +import { config } from '../config.ts'; import * as Sentry from '@sentry/aws-serverless'; import { generateSubscriptionPayloadForEmail, sendCreateUserAlias, sendUserTrack, setSubscription, -} from '../braze'; +} from '../braze.ts'; import type { UsersAliasObject, UsersTrackObject, diff --git a/lambdas/transactional-emails/src/index.spec.ts b/lambdas/transactional-emails/src/index.spec.ts index 4990c6735..dd6bc8280 100644 --- a/lambdas/transactional-emails/src/index.spec.ts +++ b/lambdas/transactional-emails/src/index.spec.ts @@ -2,7 +2,7 @@ import { cleanAll } from 'nock'; import { SQSEvent, SQSRecord } from 'aws-lambda'; import { PocketEventType } from '@pocket-tools/event-bridge'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { processor } from '.'; +import { processor } from './index.ts'; describe('handler', () => { let serverLoggerSpy: jest.SpyInstance; diff --git a/lambdas/transactional-emails/src/index.ts b/lambdas/transactional-emails/src/index.ts index a3e7ff01b..7eb0fe575 100644 --- a/lambdas/transactional-emails/src/index.ts +++ b/lambdas/transactional-emails/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.app.sentry.dsn, @@ -12,7 +12,7 @@ import type { SQSBatchItemFailure, } from 'aws-lambda'; -import { handlers } from './handlers'; +import { handlers } from './handlers/index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; import { sqsLambdaEventBridgeEvent } from '@pocket-tools/event-bridge'; diff --git a/lambdas/transactional-emails/src/ssm.ts b/lambdas/transactional-emails/src/ssm.ts index 64b5f6bb8..9b6325912 100644 --- a/lambdas/transactional-emails/src/ssm.ts +++ b/lambdas/transactional-emails/src/ssm.ts @@ -1,5 +1,5 @@ import { GetParameterCommand, SSM } from '@aws-sdk/client-ssm'; -import { config } from './config'; +import { config } from './config.ts'; const client = new SSM({ region: config.aws.region }); diff --git a/lambdas/user-list-search-corpus-indexing/jest.config.js b/lambdas/user-list-search-corpus-indexing/jest.config.js deleted file mode 100644 index 1b6af6d6a..000000000 --- a/lambdas/user-list-search-corpus-indexing/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'corpus-index-lambda', -}; diff --git a/lambdas/user-list-search-corpus-indexing/jest.config.ts b/lambdas/user-list-search-corpus-indexing/jest.config.ts new file mode 100644 index 000000000..9455eec46 --- /dev/null +++ b/lambdas/user-list-search-corpus-indexing/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'corpus-index-lambda', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/user-list-search-corpus-indexing/jest.setup.js b/lambdas/user-list-search-corpus-indexing/jest.setup.ts similarity index 100% rename from lambdas/user-list-search-corpus-indexing/jest.setup.js rename to lambdas/user-list-search-corpus-indexing/jest.setup.ts diff --git a/lambdas/user-list-search-corpus-indexing/package.json b/lambdas/user-list-search-corpus-indexing/package.json index d3ab5383d..1714b21b8 100644 --- a/lambdas/user-list-search-corpus-indexing/package.json +++ b/lambdas/user-list-search-corpus-indexing/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItem.ts b/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItem.ts index 3f74d2fd1..f8b2f901f 100644 --- a/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItem.ts +++ b/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItem.ts @@ -1,5 +1,5 @@ -import { ValidLanguageApprovedItemPayload } from '../types'; -import { config } from '../config'; +import { ValidLanguageApprovedItemPayload } from '../types.ts'; +import { config } from '../config.ts'; /** * Index an "Approved Item" in the search cluster. diff --git a/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItemCollection.ts b/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItemCollection.ts index b6db21b16..38788df47 100644 --- a/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItemCollection.ts +++ b/lambdas/user-list-search-corpus-indexing/src/commands/ApprovedItemCollection.ts @@ -1,6 +1,6 @@ -import { CollectionApprovedItemPayload } from '../types'; -import { config } from '../config'; -import { collectionIdFromCorpus } from '../queries'; +import { CollectionApprovedItemPayload } from '../types.ts'; +import { config } from '../config.ts'; +import { collectionIdFromCorpus } from '../queries/index.ts'; /** * Update a Collection entry with additional metadata from diff --git a/lambdas/user-list-search-corpus-indexing/src/commands/Collection.ts b/lambdas/user-list-search-corpus-indexing/src/commands/Collection.ts index 58c4c1748..49c76db55 100644 --- a/lambdas/user-list-search-corpus-indexing/src/commands/Collection.ts +++ b/lambdas/user-list-search-corpus-indexing/src/commands/Collection.ts @@ -1,6 +1,6 @@ import { CollectionPayload } from '@pocket-tools/event-bridge'; -import { config } from '../config'; -import { buildCollectionUrl } from '../utils'; +import { config } from '../config.ts'; +import { buildCollectionUrl } from '../utils.ts'; /** * Index a Collection object in the search cluster. diff --git a/lambdas/user-list-search-corpus-indexing/src/commands/RemoveItem.ts b/lambdas/user-list-search-corpus-indexing/src/commands/RemoveItem.ts index d37c58fd0..fdfe183b0 100644 --- a/lambdas/user-list-search-corpus-indexing/src/commands/RemoveItem.ts +++ b/lambdas/user-list-search-corpus-indexing/src/commands/RemoveItem.ts @@ -1,5 +1,5 @@ -import { ValidLanguageApprovedItemPayload } from '../types'; -import { config } from '../config'; +import { ValidLanguageApprovedItemPayload } from '../types.ts'; +import { config } from '../config.ts'; /** * Remove an "ApprovedItem" from the search cluster. diff --git a/lambdas/user-list-search-corpus-indexing/src/commands/Syndicated.ts b/lambdas/user-list-search-corpus-indexing/src/commands/Syndicated.ts index 6b1006b40..d77c24768 100644 --- a/lambdas/user-list-search-corpus-indexing/src/commands/Syndicated.ts +++ b/lambdas/user-list-search-corpus-indexing/src/commands/Syndicated.ts @@ -1,7 +1,7 @@ -import { SyndicatedItemPayload } from '../types'; -import { config } from '../config'; -import { upsertApprovedItem } from './ApprovedItem'; -import { originalCorpusId } from '../queries'; +import { SyndicatedItemPayload } from '../types.ts'; +import { config } from '../config.ts'; +import { upsertApprovedItem } from './ApprovedItem.ts'; +import { originalCorpusId } from '../queries/index.ts'; /** * Index a Syndicated Item in the search corpus. diff --git a/lambdas/user-list-search-corpus-indexing/src/index.integration.ts b/lambdas/user-list-search-corpus-indexing/src/index.integration.ts index c3fd9e7ea..553229648 100644 --- a/lambdas/user-list-search-corpus-indexing/src/index.integration.ts +++ b/lambdas/user-list-search-corpus-indexing/src/index.integration.ts @@ -1,9 +1,9 @@ -import { bulkIndex, processor } from '.'; -import { EventPayload } from './types'; -import { config } from './config'; -import * as oci from './queries/originalCorpusId'; -import * as ci from './queries/collectionId'; -import * as api from './commands/ApprovedItem'; +import { bulkIndex, processor } from './index.ts'; +import { EventPayload } from './types.ts'; +import { config } from './config.ts'; +import * as oci from './queries/originalCorpusId.ts'; +import * as ci from './queries/collectionId.ts'; +import * as api from './commands/ApprovedItem.ts'; import { PocketEventType } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/user-list-search-corpus-indexing/src/index.ts b/lambdas/user-list-search-corpus-indexing/src/index.ts index b189a6da8..343596860 100644 --- a/lambdas/user-list-search-corpus-indexing/src/index.ts +++ b/lambdas/user-list-search-corpus-indexing/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -16,14 +16,14 @@ import { CollectionApprovedItemPayload, SyndicatedItemPayload, EventPayload, -} from './types'; -import { upsertCollection } from './commands/Collection'; -import { mergeCollection } from './commands/ApprovedItemCollection'; -import { upsertSyndicatedItem } from './commands/Syndicated'; -import { upsertApprovedItem } from './commands/ApprovedItem'; -import { postRetry } from './postRetry'; +} from './types.ts'; +import { upsertCollection } from './commands/Collection.ts'; +import { mergeCollection } from './commands/ApprovedItemCollection.ts'; +import { upsertSyndicatedItem } from './commands/Syndicated.ts'; +import { upsertApprovedItem } from './commands/ApprovedItem.ts'; +import { postRetry } from './postRetry.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { removeApprovedItem } from './commands/RemoveItem'; +import { removeApprovedItem } from './commands/RemoveItem.ts'; import { PocketEventType, sqsLambdaEventBridgeEvent, diff --git a/lambdas/user-list-search-corpus-indexing/src/queries/collectionId.ts b/lambdas/user-list-search-corpus-indexing/src/queries/collectionId.ts index 1fdbd97c2..33230ccf1 100644 --- a/lambdas/user-list-search-corpus-indexing/src/queries/collectionId.ts +++ b/lambdas/user-list-search-corpus-indexing/src/queries/collectionId.ts @@ -1,8 +1,8 @@ import { serverLogger } from '@pocket-tools/ts-logger'; -import { postRetry } from '../postRetry'; +import { postRetry } from '../postRetry.ts'; import * as Sentry from '@sentry/aws-serverless'; -import { config } from '../config'; -import { extractCollectionSlug } from '../utils'; +import { config } from '../config.ts'; +import { extractCollectionSlug } from '../utils.ts'; /** * Fetch the Collection "external ID" representing the diff --git a/lambdas/user-list-search-corpus-indexing/src/queries/index.ts b/lambdas/user-list-search-corpus-indexing/src/queries/index.ts index 573ff423d..21b908086 100644 --- a/lambdas/user-list-search-corpus-indexing/src/queries/index.ts +++ b/lambdas/user-list-search-corpus-indexing/src/queries/index.ts @@ -1,2 +1,2 @@ -export * from './originalCorpusId'; -export * from './collectionId'; +export * from './originalCorpusId.ts'; +export * from './collectionId.ts'; diff --git a/lambdas/user-list-search-corpus-indexing/src/queries/originalCorpusId.ts b/lambdas/user-list-search-corpus-indexing/src/queries/originalCorpusId.ts index cbc55e699..b599e950c 100644 --- a/lambdas/user-list-search-corpus-indexing/src/queries/originalCorpusId.ts +++ b/lambdas/user-list-search-corpus-indexing/src/queries/originalCorpusId.ts @@ -1,7 +1,7 @@ import { serverLogger } from '@pocket-tools/ts-logger'; -import { postRetry } from '../postRetry'; +import { postRetry } from '../postRetry.ts'; import * as Sentry from '@sentry/aws-serverless'; -import { config } from '../config'; +import { config } from '../config.ts'; /** * Fetch the original corpus id for a syndicated article, diff --git a/lambdas/user-list-search-corpus-indexing/src/utils.spec.ts b/lambdas/user-list-search-corpus-indexing/src/utils.spec.ts index f0f4a4980..70d165124 100644 --- a/lambdas/user-list-search-corpus-indexing/src/utils.spec.ts +++ b/lambdas/user-list-search-corpus-indexing/src/utils.spec.ts @@ -1,4 +1,4 @@ -import { buildCollectionUrl, extractCollectionSlug } from './utils'; +import { buildCollectionUrl, extractCollectionSlug } from './utils.ts'; describe('utils', () => { describe('buildCollectionUrl', () => { diff --git a/lambdas/user-list-search-corpus-indexing/tsconfig.json b/lambdas/user-list-search-corpus-indexing/tsconfig.json index 7b34686ba..28c15a0e1 100644 --- a/lambdas/user-list-search-corpus-indexing/tsconfig.json +++ b/lambdas/user-list-search-corpus-indexing/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": ["src/**/*.ts"] } diff --git a/lambdas/user-list-search-corpus-parser-hydration/jest.config.js b/lambdas/user-list-search-corpus-parser-hydration/jest.config.js deleted file mode 100644 index 261c6d146..000000000 --- a/lambdas/user-list-search-corpus-parser-hydration/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - setupFiles: ['./jest.setup.js'], - displayName: 'corpus-parser-hyration-lambda', -}; diff --git a/lambdas/user-list-search-corpus-parser-hydration/jest.config.ts b/lambdas/user-list-search-corpus-parser-hydration/jest.config.ts new file mode 100644 index 000000000..7be2eaefb --- /dev/null +++ b/lambdas/user-list-search-corpus-parser-hydration/jest.config.ts @@ -0,0 +1,16 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], + displayName: 'corpus-parser-hyration-lambda', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/user-list-search-corpus-parser-hydration/jest.setup.js b/lambdas/user-list-search-corpus-parser-hydration/jest.setup.ts similarity index 100% rename from lambdas/user-list-search-corpus-parser-hydration/jest.setup.js rename to lambdas/user-list-search-corpus-parser-hydration/jest.setup.ts diff --git a/lambdas/user-list-search-corpus-parser-hydration/package.json b/lambdas/user-list-search-corpus-parser-hydration/package.json index 4a796f9aa..c79040b03 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/package.json +++ b/lambdas/user-list-search-corpus-parser-hydration/package.json @@ -4,6 +4,7 @@ "description": "", "license": "ISC", "author": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/bulkIndex.ts b/lambdas/user-list-search-corpus-parser-hydration/src/bulkIndex.ts index 89b87b3fb..9b6dd2341 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/bulkIndex.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/bulkIndex.ts @@ -1,7 +1,7 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; import { serverLogger } from '@pocket-tools/ts-logger'; -import { BulkRequestPayload } from './types'; +import { BulkRequestPayload } from './types.ts'; import fetchRetry from 'fetch-retry'; const newFetch = fetchRetry(fetch); /** diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/embeddingsRequest.ts b/lambdas/user-list-search-corpus-parser-hydration/src/embeddingsRequest.ts index 765bf3d59..046dcdc6a 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/embeddingsRequest.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/embeddingsRequest.ts @@ -5,9 +5,9 @@ import { } from '@aws-sdk/client-sagemaker-runtime'; // ES Modules import import { Agent } from 'http'; import { NodeHttpHandler } from '@smithy/node-http-handler'; -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; -import { ParserResult } from './types'; +import { ParserResult } from './types.ts'; import { ConfiguredRetryStrategy } from '@smithy/util-retry'; let _sagemakerClient: SageMakerRuntimeClient; diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/index.integration.ts b/lambdas/user-list-search-corpus-parser-hydration/src/index.integration.ts index 33060e041..92d7a94bd 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/index.integration.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/index.integration.ts @@ -1,7 +1,7 @@ import nock from 'nock'; -import { processor } from '.'; -import { config } from './config'; +import { processor } from './index.ts'; +import { config } from './config.ts'; import { SQSEvent } from 'aws-lambda'; /** diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/index.ts b/lambdas/user-list-search-corpus-parser-hydration/src/index.ts index de0091f80..51af02e11 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/index.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/index.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ dsn: config.sentry.dsn, @@ -11,11 +11,11 @@ import { BulkRequestMeta, BulkRequestPayload, ValidLangEventPayload, -} from './types'; -import { parserRequest, parserResultToDoc } from './parserRequest'; -import { bulkIndex } from './bulkIndex'; -import { buildCollectionUrl, hasExcerptOrIsCollection } from './utils'; -import { getEmbeddings } from './embeddingsRequest'; +} from './types.ts'; +import { parserRequest, parserResultToDoc } from './parserRequest.ts'; +import { bulkIndex } from './bulkIndex.ts'; +import { buildCollectionUrl, hasExcerptOrIsCollection } from './utils.ts'; +import { getEmbeddings } from './embeddingsRequest.ts'; import { sqsLambdaEventBridgeEvent } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/parserRequest.ts b/lambdas/user-list-search-corpus-parser-hydration/src/parserRequest.ts index e05956e02..cb07690b0 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/parserRequest.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/parserRequest.ts @@ -1,5 +1,5 @@ -import { ParserDocumentFields, ParserResult } from './types'; -import { config } from './config'; +import { ParserDocumentFields, ParserResult } from './types.ts'; +import { config } from './config.ts'; import fetchRetry from 'fetch-retry'; import * as Sentry from '@sentry/aws-serverless'; import { stripHtml } from 'string-strip-html'; diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/utils.spec.ts b/lambdas/user-list-search-corpus-parser-hydration/src/utils.spec.ts index 1efb12e25..e9288407e 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/utils.spec.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/utils.spec.ts @@ -1,5 +1,5 @@ -import { BulkRequestMeta } from './types'; -import { buildCollectionUrl, hasExcerptOrIsCollection } from './utils'; +import { BulkRequestMeta } from './types.ts'; +import { buildCollectionUrl, hasExcerptOrIsCollection } from './utils.ts'; describe('utils', () => { describe('buildCollectionUrl', () => { diff --git a/lambdas/user-list-search-corpus-parser-hydration/src/utils.ts b/lambdas/user-list-search-corpus-parser-hydration/src/utils.ts index 7143e36d4..68c4b628a 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/src/utils.ts +++ b/lambdas/user-list-search-corpus-parser-hydration/src/utils.ts @@ -1,4 +1,4 @@ -import { BulkRequestMeta } from './types'; +import { BulkRequestMeta } from './types.ts'; /** * This method is copied in user-list-search-corpus-indexing diff --git a/lambdas/user-list-search-corpus-parser-hydration/tsconfig.json b/lambdas/user-list-search-corpus-parser-hydration/tsconfig.json index 7b34686ba..28c15a0e1 100644 --- a/lambdas/user-list-search-corpus-parser-hydration/tsconfig.json +++ b/lambdas/user-list-search-corpus-parser-hydration/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "dist", "rootDir": "src" }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.ts"], "include": ["src/**/*.ts"] } diff --git a/lambdas/user-list-search-events/handlerFns.spec.ts b/lambdas/user-list-search-events/handlerFns.spec.ts index 9c5665f27..da6f34d53 100644 --- a/lambdas/user-list-search-events/handlerFns.spec.ts +++ b/lambdas/user-list-search-events/handlerFns.spec.ts @@ -1,7 +1,7 @@ -import { config } from './config'; +import { config } from './config.ts'; import nock from 'nock'; import { SQSRecord } from 'aws-lambda'; -import { __handler } from '.'; +import { __handler } from './index.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; import { PocketEventType } from '@pocket-tools/event-bridge'; diff --git a/lambdas/user-list-search-events/handlerFns.ts b/lambdas/user-list-search-events/handlerFns.ts index 61ae6e195..afd48fa00 100644 --- a/lambdas/user-list-search-events/handlerFns.ts +++ b/lambdas/user-list-search-events/handlerFns.ts @@ -1,4 +1,4 @@ -import { config } from './config'; +import { config } from './config.ts'; import { AccountDelete } from '@pocket-tools/event-bridge'; /** diff --git a/lambdas/user-list-search-events/handlerMap.ts b/lambdas/user-list-search-events/handlerMap.ts index e0a0764c4..d4871dc2d 100644 --- a/lambdas/user-list-search-events/handlerMap.ts +++ b/lambdas/user-list-search-events/handlerMap.ts @@ -1,5 +1,5 @@ import { PocketEvent, PocketEventType } from '@pocket-tools/event-bridge'; -import { accountDeleteHandler } from './handlerFns'; +import { accountDeleteHandler } from './handlerFns.ts'; // Mapping of detail-type (via event bridge message) // to function that should be invoked to process the message diff --git a/lambdas/user-list-search-events/index.ts b/lambdas/user-list-search-events/index.ts index 2b162ffb7..024c852df 100644 --- a/lambdas/user-list-search-events/index.ts +++ b/lambdas/user-list-search-events/index.ts @@ -1,10 +1,10 @@ -import { config } from './config'; +import { config } from './config.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); import { SQSEvent } from 'aws-lambda'; -import { handlerMap } from './handlerMap'; +import { handlerMap } from './handlerMap.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; import { sqsLambdaEventBridgeEvent } from '@pocket-tools/event-bridge'; diff --git a/lambdas/user-list-search-events/jest.config.js b/lambdas/user-list-search-events/jest.config.js deleted file mode 100644 index a25fbdea9..000000000 --- a/lambdas/user-list-search-events/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|integration).ts'], - testPathIgnorePatterns: ['/dist/'], - displayName: 'events-lambda', -}; diff --git a/lambdas/user-list-search-events/jest.config.ts b/lambdas/user-list-search-events/jest.config.ts new file mode 100644 index 000000000..e4acc4cc4 --- /dev/null +++ b/lambdas/user-list-search-events/jest.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|integration).ts'], + testPathIgnorePatterns: ['/dist/'], + displayName: 'events-lambda', + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, +}; + +export default config; \ No newline at end of file diff --git a/lambdas/user-list-search-events/package.json b/lambdas/user-list-search-events/package.json index cafc8ad0f..c965bab33 100644 --- a/lambdas/user-list-search-events/package.json +++ b/lambdas/user-list-search-events/package.json @@ -2,6 +2,7 @@ "name": "user-list-search-events", "version": "1.0.0", "description": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/user-list-search-events/tsconfig.json b/lambdas/user-list-search-events/tsconfig.json index e95084793..36de10316 100644 --- a/lambdas/user-list-search-events/tsconfig.json +++ b/lambdas/user-list-search-events/tsconfig.json @@ -1,9 +1,8 @@ { "extends": "tsconfig/lambda.json", "compilerOptions": { - "module": "commonjs", "outDir": "dist", }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.cjs", "jest.setup.js"], "include": ["./**/*.ts"] } \ No newline at end of file diff --git a/lambdas/user-list-search-indexing/jest.config.js b/lambdas/user-list-search-indexing/jest.config.ts similarity index 57% rename from lambdas/user-list-search-indexing/jest.config.js rename to lambdas/user-list-search-indexing/jest.config.ts index e3bce1880..70c768064 100644 --- a/lambdas/user-list-search-indexing/jest.config.js +++ b/lambdas/user-list-search-indexing/jest.config.ts @@ -1,8 +1,16 @@ -module.exports = { +import type { Config } from 'jest'; + +const config: Config = { preset: 'ts-jest', testEnvironment: 'node', testMatch: ['**/?(*.)+(spec|integration).ts'], testPathIgnorePatterns: ['/dist/'], displayName: 'user-list-search-kinesis-to-sqs-lambda', setupFilesAfterEnv: ['jest-extended/all'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, }; + +export default config; \ No newline at end of file diff --git a/lambdas/user-list-search-indexing/package.json b/lambdas/user-list-search-indexing/package.json index 80d3a67d0..1bce8345b 100644 --- a/lambdas/user-list-search-indexing/package.json +++ b/lambdas/user-list-search-indexing/package.json @@ -2,6 +2,7 @@ "name": "user-list-search-indexing", "version": "1.0.0", "description": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/user-list-search-indexing/src/helper.spec.ts b/lambdas/user-list-search-indexing/src/helper.spec.ts index ee4cfe22e..b4c805251 100644 --- a/lambdas/user-list-search-indexing/src/helper.spec.ts +++ b/lambdas/user-list-search-indexing/src/helper.spec.ts @@ -1,8 +1,8 @@ -import { config } from './config'; +import { config } from './config/index.ts'; import nock from 'nock'; -import { processUserImport, processUserItem } from './helper'; +import { processUserImport, processUserItem } from './helper.ts'; -import { UserItemsSqsMessage, UserListImportSqsMessage } from './types'; +import { UserItemsSqsMessage, UserListImportSqsMessage } from './types.ts'; describe('Item functions', () => { describe('itemDelete', () => { diff --git a/lambdas/user-list-search-indexing/src/helper.ts b/lambdas/user-list-search-indexing/src/helper.ts index 1ca77439c..65f7ff9d1 100644 --- a/lambdas/user-list-search-indexing/src/helper.ts +++ b/lambdas/user-list-search-indexing/src/helper.ts @@ -1,6 +1,6 @@ -import { UserItemsSqsMessage, UserListImportSqsMessage } from './types'; +import { UserItemsSqsMessage, UserListImportSqsMessage } from './types.ts'; import { nanoid } from 'nanoid'; -import { config } from './config'; +import { config } from './config/index.ts'; /** * Processes messages from the itemDelete queue or the itemUpdate queues. diff --git a/lambdas/user-list-search-indexing/src/index.ts b/lambdas/user-list-search-indexing/src/index.ts index 287e6bb80..862a1f5f2 100644 --- a/lambdas/user-list-search-indexing/src/index.ts +++ b/lambdas/user-list-search-indexing/src/index.ts @@ -1,3 +1,3 @@ -export { handler as itemDeleteHandler } from './itemDelete'; -export { handler as itemUpdateHandler } from './itemUpdate'; -export { handler as userListImportHandler } from './userListImport'; +export { handler as itemDeleteHandler } from './itemDelete.ts'; +export { handler as itemUpdateHandler } from './itemUpdate.ts'; +export { handler as userListImportHandler } from './userListImport.ts'; diff --git a/lambdas/user-list-search-indexing/src/itemDelete.ts b/lambdas/user-list-search-indexing/src/itemDelete.ts index 4a4a76553..e7787bfa5 100644 --- a/lambdas/user-list-search-indexing/src/itemDelete.ts +++ b/lambdas/user-list-search-indexing/src/itemDelete.ts @@ -1,11 +1,11 @@ -import { config } from './config'; +import { config } from './config/index.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); import { SQSEvent, SQSRecord } from 'aws-lambda'; -import { processUserItem } from './helper'; -import { UserItemsSqsMessage } from './types'; +import { processUserItem } from './helper.ts'; +import { UserItemsSqsMessage } from './types.ts'; export const processor = async (event: SQSEvent): Promise => { return await Promise.all( diff --git a/lambdas/user-list-search-indexing/src/itemUpdate.ts b/lambdas/user-list-search-indexing/src/itemUpdate.ts index f0ab87947..b5b5c1302 100644 --- a/lambdas/user-list-search-indexing/src/itemUpdate.ts +++ b/lambdas/user-list-search-indexing/src/itemUpdate.ts @@ -1,13 +1,13 @@ -import { config } from './config'; +import { config } from './config/index.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); import type { SQSEvent, SQSRecord } from 'aws-lambda'; -import { processUserItem } from './helper'; +import { processUserItem } from './helper.ts'; -import { UserItemsSqsMessage } from './types'; +import { UserItemsSqsMessage } from './types.ts'; export const processor = async (event: SQSEvent): Promise => { return await Promise.all( diff --git a/lambdas/user-list-search-indexing/src/userListImport.ts b/lambdas/user-list-search-indexing/src/userListImport.ts index 0a4e8a21e..42a49c6de 100644 --- a/lambdas/user-list-search-indexing/src/userListImport.ts +++ b/lambdas/user-list-search-indexing/src/userListImport.ts @@ -1,11 +1,11 @@ -import { config } from './config'; +import { config } from './config/index.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); -import type { UserListImportSqsMessage } from './types'; +import type { UserListImportSqsMessage } from './types.ts'; import type { SQSEvent, SQSRecord } from 'aws-lambda'; -import { processUserImport } from './helper'; +import { processUserImport } from './helper.ts'; export const processor = async (event: SQSEvent): Promise => { return await Promise.all( diff --git a/lambdas/user-list-search-indexing/tsconfig.json b/lambdas/user-list-search-indexing/tsconfig.json index 1ac15d060..44893ad3b 100644 --- a/lambdas/user-list-search-indexing/tsconfig.json +++ b/lambdas/user-list-search-indexing/tsconfig.json @@ -1,10 +1,9 @@ { "extends": "tsconfig/lambda.json", "compilerOptions": { - "module": "commonjs", "outDir": "dist", }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], - "include": ["./**/*.ts"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.js"], + "include": ["./**/*.ts", "jest.config.ts"], "files": ["node_modules/jest-extended/types/index.d.ts"] } \ No newline at end of file diff --git a/lambdas/user-list-search-kinesis-to-sqs/jest.config.js b/lambdas/user-list-search-kinesis-to-sqs/jest.config.ts similarity index 57% rename from lambdas/user-list-search-kinesis-to-sqs/jest.config.js rename to lambdas/user-list-search-kinesis-to-sqs/jest.config.ts index e3bce1880..70c768064 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/jest.config.js +++ b/lambdas/user-list-search-kinesis-to-sqs/jest.config.ts @@ -1,8 +1,16 @@ -module.exports = { +import type { Config } from 'jest'; + +const config: Config = { preset: 'ts-jest', testEnvironment: 'node', testMatch: ['**/?(*.)+(spec|integration).ts'], testPathIgnorePatterns: ['/dist/'], displayName: 'user-list-search-kinesis-to-sqs-lambda', setupFilesAfterEnv: ['jest-extended/all'], + moduleNameMapper: { + "^(\\.\\/.+)\\.js$": "$1", + "^(\\..\\/.+)\\.js$": "$1" + }, }; + +export default config; \ No newline at end of file diff --git a/lambdas/user-list-search-kinesis-to-sqs/package.json b/lambdas/user-list-search-kinesis-to-sqs/package.json index 50e9eec3d..1d6d0c67a 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/package.json +++ b/lambdas/user-list-search-kinesis-to-sqs/package.json @@ -2,6 +2,7 @@ "name": "user-list-search-kinesis-to-sqs", "version": "1.0.0", "description": "", + "type": "module", "main": "dist/index.js", "files": [ "dist", diff --git a/lambdas/user-list-search-kinesis-to-sqs/src/handler.spec.ts b/lambdas/user-list-search-kinesis-to-sqs/src/handler.spec.ts index ce195bb21..c8359301f 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/src/handler.spec.ts +++ b/lambdas/user-list-search-kinesis-to-sqs/src/handler.spec.ts @@ -1,4 +1,4 @@ -import { getHandler, KinesisEvent } from './handler'; +import { getHandler, KinesisEvent } from './handler.ts'; import { SendMessageBatchCommandOutput, SQSClient } from '@aws-sdk/client-sqs'; const createEvent = (msg: Record): KinesisEvent => { diff --git a/lambdas/user-list-search-kinesis-to-sqs/src/handler.ts b/lambdas/user-list-search-kinesis-to-sqs/src/handler.ts index 8b621015d..2eb44fddf 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/src/handler.ts +++ b/lambdas/user-list-search-kinesis-to-sqs/src/handler.ts @@ -1,11 +1,11 @@ -import SqsWritable from './sqs/writeable'; +import SqsWritable from './sqs/writeable.ts'; import _ from 'highland'; import { SQS } from '@aws-sdk/client-sqs'; import { SqsMessage, UserItemsSqsMessage, UserListImportSqsMessage, -} from './sqs/types'; +} from './sqs/types.ts'; import { serverLogger } from '@pocket-tools/ts-logger'; const MAX_JOBS_PER_MESSAGE = 1000; diff --git a/lambdas/user-list-search-kinesis-to-sqs/src/index.ts b/lambdas/user-list-search-kinesis-to-sqs/src/index.ts index 93bc8d580..52dce89c7 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/src/index.ts +++ b/lambdas/user-list-search-kinesis-to-sqs/src/index.ts @@ -1,10 +1,10 @@ -import { config } from './config'; +import { config } from './config/index.ts'; import * as Sentry from '@sentry/aws-serverless'; Sentry.init({ ...config.sentry, }); -import { getHandler } from './handler'; +import { getHandler } from './handler.ts'; import { SQSClient } from '@aws-sdk/client-sqs'; export const client = new SQSClient({ diff --git a/lambdas/user-list-search-kinesis-to-sqs/src/sqs/writeable.ts b/lambdas/user-list-search-kinesis-to-sqs/src/sqs/writeable.ts index 8f2c812ce..49843d1b5 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/src/sqs/writeable.ts +++ b/lambdas/user-list-search-kinesis-to-sqs/src/sqs/writeable.ts @@ -1,5 +1,5 @@ import { Writable } from 'stream'; -import { generateId, SQSBatchSendError } from './utils'; +import { generateId, SQSBatchSendError } from './utils.ts'; import { SendMessageBatchCommand, SendMessageBatchRequestEntry, diff --git a/lambdas/user-list-search-kinesis-to-sqs/tsconfig.json b/lambdas/user-list-search-kinesis-to-sqs/tsconfig.json index 1ac15d060..8fae1b426 100644 --- a/lambdas/user-list-search-kinesis-to-sqs/tsconfig.json +++ b/lambdas/user-list-search-kinesis-to-sqs/tsconfig.json @@ -1,10 +1,9 @@ { "extends": "tsconfig/lambda.json", "compilerOptions": { - "module": "commonjs", "outDir": "dist", }, - "exclude": ["node_modules", "jest.config.js", "jest.setup.js"], + "exclude": ["node_modules", "jest.config.ts", "jest.setup.js"], "include": ["./**/*.ts"], "files": ["node_modules/jest-extended/types/index.d.ts"] } \ No newline at end of file diff --git a/packages/ts-logger/jest.config.ts b/packages/ts-logger/jest.config.ts index 0bc59635e..046ed7d15 100644 --- a/packages/ts-logger/jest.config.ts +++ b/packages/ts-logger/jest.config.ts @@ -5,6 +5,7 @@ const config: Config = { testEnvironment: 'node', testMatch: ['**/?(*.)+(jest|spec).[jt]s?(x)'], testPathIgnorePatterns: ['/dist/'], + setupFiles: ['./jest.setup.ts'], moduleNameMapper: { "^(\\.{1,2}/.*)\\.js$": "$1" }, diff --git a/packages/ts-logger/jest.setup.ts b/packages/ts-logger/jest.setup.ts new file mode 100644 index 000000000..ea691468e --- /dev/null +++ b/packages/ts-logger/jest.setup.ts @@ -0,0 +1 @@ +process.env.NODE_ENV = undefined; \ No newline at end of file diff --git a/packages/tsconfig/lambda.json b/packages/tsconfig/lambda.json index 4a6353ff2..2426b2d0a 100644 --- a/packages/tsconfig/lambda.json +++ b/packages/tsconfig/lambda.json @@ -1,8 +1,11 @@ { "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { - "target": "es2017", - "module": "commonjs", + "target": "ES2024", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": true, + "rewriteRelativeImportExtensions": true, "outDir": "dist", "sourceMap": true, "esModuleInterop": true, diff --git a/servers/notes-api/src/__generated__/db.ts b/servers/notes-api/src/__generated__/db.ts index 914077ebd..9e94750d7 100644 --- a/servers/notes-api/src/__generated__/db.ts +++ b/servers/notes-api/src/__generated__/db.ts @@ -3,11 +3,12 @@ * Please do not edit it manually. */ -import type { ColumnType } from "kysely"; +import type { ColumnType } from 'kysely'; -export type Generated = T extends ColumnType - ? ColumnType - : ColumnType; +export type Generated = + T extends ColumnType + ? ColumnType + : ColumnType; export type Json = JsonValue;