diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 8613cdf583..74d3a23be4 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -1,64 +1,90 @@ -{ - "name": "@aws-lambda-powertools/idempotency", - "version": "0.0.11", - "description": "The idempotency package for the Powertools for AWS Lambda (TypeScript) library. It provides options to make your Lambda functions idempotent and safe to retry.", - "author": { - "name": "Amazon Web Services", - "url": "https://aws.amazon.com" - }, - "publishConfig": { - "access": "public" - }, - "scripts": { - "commit": "commit", - "test": "npm run test:unit", - "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", - "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", - "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", - "test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e", - "test:e2e": "jest --group=e2e --detectOpenHandles", - "watch": "jest --watch --group=unit", - "build": "tsc", - "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", - "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh idempotency-bundle ./dist", - "prepare": "npm run build" - }, - "lint-staged": { - "*.ts": "npm run lint-fix" - }, - "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/packages/idempotency#readme", - "license": "MIT", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "typedocMain": "src/file_that_does_not_exist_so_its_ignored_from_api_docs.ts", - "files": [ - "lib" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/awslabs/aws-lambda-powertools-typescript.git" - }, - "bugs": { - "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" - }, - "dependencies": { - "@aws-lambda-powertools/commons": "^1.5.0", - "@aws-sdk/lib-dynamodb": "^3.231.0", - "jmespath": "^0.16.0" - }, - "keywords": [ - "aws", - "lambda", - "powertools", - "serverless", - "nodejs" - ], - "devDependencies": { - "@types/jmespath": "^0.15.0", - "@aws-sdk/client-dynamodb": "^3.231.0", - "aws-sdk-client-mock": "^2.0.1", - "aws-sdk-client-mock-jest": "^2.0.1" - } +{ + "name": "@aws-lambda-powertools/idempotency", + "version": "1.8.0-alpha.0", + "description": "The idempotency package for the Powertools for AWS Lambda (TypeScript) library. It provides options to make your Lambda functions idempotent and safe to retry.", + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com" + }, + "publishConfig": { + "access": "public" + }, + "scripts": { + "commit": "commit", + "test": "npm run test:unit", + "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", + "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", + "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", + "test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e", + "test:e2e": "jest --group=e2e --detectOpenHandles", + "watch": "jest --watch --group=unit", + "build": "tsc", + "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", + "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", + "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", + "package-bundle": "../../package-bundler.sh idempotency-bundle ./dist", + "preprepare": "rm -rf ./lib", + "prepare": "npm run build" + }, + "lint-staged": { + "*.ts": "npm run lint-fix", + "*.js": "npm run lint-fix" + }, + "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/packages/idempotency#readme", + "license": "MIT-0", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./lib/index.js" + }, + "./persistence": { + "import": "./lib/persistence/index.js", + "require": "./lib/persistence/index.js" + }, + "./dynamodb": { + "import": "./lib/persistence/DynamoDbPersistenceLayer.js", + "require": "./lib/persistence/DynamoDbPersistenceLayer.js" + } + }, + "typesVersions": { + "*": { + "persistence": [ + "lib/persistence/index.d.ts" + ], + "dynamodb": [ + "lib/persistence/DynamoDbPersistenceLayer.d.ts" + ] + } + }, + "main": "./lib/index.js", + "types": "./lib/index.d.ts", + "typedocMain": "src/file_that_does_not_exist_so_its_ignored_from_api_docs.ts", + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/awslabs/aws-lambda-powertools-typescript.git" + }, + "bugs": { + "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" + }, + "dependencies": { + "@aws-lambda-powertools/commons": "^1.5.0", + "@aws-sdk/lib-dynamodb": "^3.231.0", + "jmespath": "^0.16.0" + }, + "keywords": [ + "aws", + "lambda", + "powertools", + "serverless", + "nodejs" + ], + "devDependencies": { + "@aws-sdk/client-dynamodb": "^3.231.0", + "@types/jmespath": "^0.15.0", + "aws-sdk-client-mock": "^2.0.1", + "aws-sdk-client-mock-jest": "^2.0.1" + } } \ No newline at end of file diff --git a/packages/idempotency/src/index.ts b/packages/idempotency/src/index.ts new file mode 100644 index 0000000000..02f3b0e01e --- /dev/null +++ b/packages/idempotency/src/index.ts @@ -0,0 +1,4 @@ +export * from './Exceptions'; +export * from './IdempotencyConfig'; +export * from './idempotentDecorator'; +export * from './makeFunctionIdempotent'; diff --git a/packages/idempotency/src/persistence/index.ts b/packages/idempotency/src/persistence/index.ts index 8dd10b0fe2..72ea36e01f 100644 --- a/packages/idempotency/src/persistence/index.ts +++ b/packages/idempotency/src/persistence/index.ts @@ -1,4 +1,3 @@ -export * from './DynamoDBPersistenceLayer'; export * from './BasePersistenceLayer'; export * from './BasePersistenceLayerInterface'; export * from './IdempotencyRecord'; diff --git a/packages/idempotency/tests/e2e/idempotencyDecorator.test.FunctionCode.ts b/packages/idempotency/tests/e2e/idempotencyDecorator.test.FunctionCode.ts index 9145cc9db8..a75a72b026 100644 --- a/packages/idempotency/tests/e2e/idempotencyDecorator.test.FunctionCode.ts +++ b/packages/idempotency/tests/e2e/idempotencyDecorator.test.FunctionCode.ts @@ -1,10 +1,7 @@ +import type { Context } from 'aws-lambda'; import { LambdaInterface } from '@aws-lambda-powertools/commons'; -import { DynamoDBPersistenceLayer } from '../../src/persistence'; -import { - idempotentFunction, - idempotentLambdaHandler, -} from '../../src/idempotentDecorator'; -import { Context } from 'aws-lambda'; +import { DynamoDBPersistenceLayer } from '../../src/dynamodb'; +import { idempotentFunction, idempotentLambdaHandler } from '../../src'; import { Logger } from '../../../logger'; const IDEMPOTENCY_TABLE_NAME = diff --git a/packages/idempotency/tests/e2e/makeFunctionIdempotent.test.FunctionCode.ts b/packages/idempotency/tests/e2e/makeFunctionIdempotent.test.FunctionCode.ts index 10768e1705..897499ccfc 100644 --- a/packages/idempotency/tests/e2e/makeFunctionIdempotent.test.FunctionCode.ts +++ b/packages/idempotency/tests/e2e/makeFunctionIdempotent.test.FunctionCode.ts @@ -1,7 +1,7 @@ -import { DynamoDBPersistenceLayer } from '../../src/persistence'; -import { makeFunctionIdempotent } from '../../src/makeFunctionIdempotent'; +import type { Context } from 'aws-lambda'; +import { DynamoDBPersistenceLayer } from '../../src/dynamodb'; +import { makeFunctionIdempotent } from '../../src'; import { Logger } from '@aws-lambda-powertools/logger'; -import { Context } from 'aws-lambda'; const IDEMPOTENCY_TABLE_NAME = process.env.IDEMPOTENCY_TABLE_NAME || 'table_name'; diff --git a/packages/idempotency/tests/unit/IdempotencyConfig.test.ts b/packages/idempotency/tests/unit/IdempotencyConfig.test.ts index 0da250a058..17b6252947 100644 --- a/packages/idempotency/tests/unit/IdempotencyConfig.test.ts +++ b/packages/idempotency/tests/unit/IdempotencyConfig.test.ts @@ -4,7 +4,7 @@ * @group unit/idempotency/config */ import { ContextExamples as dummyContext } from '@aws-lambda-powertools/commons'; -import { IdempotencyConfig } from '../../src/IdempotencyConfig'; +import { IdempotencyConfig } from '../../src'; import type { IdempotencyConfigOptions } from '../../src/types'; describe('Class: IdempotencyConfig', () => { diff --git a/packages/idempotency/tests/unit/IdempotencyHandler.test.ts b/packages/idempotency/tests/unit/IdempotencyHandler.test.ts index 6e43e01cc6..f47bc9c3ec 100644 --- a/packages/idempotency/tests/unit/IdempotencyHandler.test.ts +++ b/packages/idempotency/tests/unit/IdempotencyHandler.test.ts @@ -12,7 +12,7 @@ import { import { IdempotencyRecordStatus } from '../../src/types'; import { BasePersistenceLayer, IdempotencyRecord } from '../../src/persistence'; import { IdempotencyHandler } from '../../src/IdempotencyHandler'; -import { IdempotencyConfig } from '../../src/IdempotencyConfig'; +import { IdempotencyConfig } from '../../src'; class PersistenceLayerTestClass extends BasePersistenceLayer { protected _deleteRecord = jest.fn(); diff --git a/packages/idempotency/tests/unit/idempotentDecorator.test.ts b/packages/idempotency/tests/unit/idempotentDecorator.test.ts index 42f8d92cba..712f7c8552 100644 --- a/packages/idempotency/tests/unit/idempotentDecorator.test.ts +++ b/packages/idempotency/tests/unit/idempotentDecorator.test.ts @@ -17,7 +17,7 @@ import { IdempotencyItemAlreadyExistsError, IdempotencyPersistenceLayerError, } from '../../src/Exceptions'; -import { IdempotencyConfig } from '../../src/IdempotencyConfig'; +import { IdempotencyConfig } from '../../src'; const mockSaveInProgress = jest .spyOn(BasePersistenceLayer.prototype, 'saveInProgress') diff --git a/packages/idempotency/tests/unit/makeFunctionIdempotent.test.ts b/packages/idempotency/tests/unit/makeFunctionIdempotent.test.ts index b0c77acbf1..9c45384b4d 100644 --- a/packages/idempotency/tests/unit/makeFunctionIdempotent.test.ts +++ b/packages/idempotency/tests/unit/makeFunctionIdempotent.test.ts @@ -5,7 +5,7 @@ */ import { IdempotencyFunctionOptions } from '../../src/types/IdempotencyOptions'; import { BasePersistenceLayer, IdempotencyRecord } from '../../src/persistence'; -import { makeFunctionIdempotent } from '../../src/makeFunctionIdempotent'; +import { makeFunctionIdempotent } from '../../src'; import type { AnyIdempotentFunction, IdempotencyRecordOptions, diff --git a/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts b/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts index 347d8e22d3..ff3954ea77 100644 --- a/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts +++ b/packages/idempotency/tests/unit/persistence/BasePersistenceLayer.test.ts @@ -4,7 +4,7 @@ * @group unit/idempotency/persistence/base */ import { ContextExamples as dummyContext } from '@aws-lambda-powertools/commons'; -import { IdempotencyConfig } from '../../../src/IdempotencyConfig'; +import { IdempotencyConfig } from '../../../src'; import { IdempotencyRecord, BasePersistenceLayer, diff --git a/packages/idempotency/tests/unit/persistence/DynamoDbPersistenceLayer.test.ts b/packages/idempotency/tests/unit/persistence/DynamoDbPersistenceLayer.test.ts index 09bfb999bc..6d612de1c8 100644 --- a/packages/idempotency/tests/unit/persistence/DynamoDbPersistenceLayer.test.ts +++ b/packages/idempotency/tests/unit/persistence/DynamoDbPersistenceLayer.test.ts @@ -8,7 +8,7 @@ import { IdempotencyItemAlreadyExistsError, IdempotencyItemNotFoundError, } from '../../../src/Exceptions'; -import { IdempotencyRecord } from '../../../src/persistence/IdempotencyRecord'; +import { IdempotencyRecord } from '../../../src/persistence'; import type { DynamoPersistenceOptions } from '../../../src/types'; import { IdempotencyRecordStatus } from '../../../src/types'; import { diff --git a/packages/idempotency/tests/unit/persistence/IdempotencyRecord.test.ts b/packages/idempotency/tests/unit/persistence/IdempotencyRecord.test.ts index 4836ae3e9e..52063066d6 100644 --- a/packages/idempotency/tests/unit/persistence/IdempotencyRecord.test.ts +++ b/packages/idempotency/tests/unit/persistence/IdempotencyRecord.test.ts @@ -4,7 +4,7 @@ * @group unit/idempotency/persistence/idempotencyRecord */ import { IdempotencyInvalidStatusError } from '../../../src/Exceptions'; -import { IdempotencyRecord } from '../../../src/persistence/IdempotencyRecord'; +import { IdempotencyRecord } from '../../../src/persistence'; import { IdempotencyRecordStatus } from '../../../src/types'; const mockIdempotencyKey = '123';