## Changes ### 8.1.3 - Updated dependencies ### 8.1.2 - Updated dependencies ### 8.1.1 - Changes to `api-lambdas` and `other-lambdas` modules: - Changed `succeedLambdaCallback` and `failLambdaCallback` functions to return promises of the callback results - Added more error handling to `succeedLambdaCallback` and `failLambdaCallback` functions in an attempt to catch and resolve issues encountered where callback is not being invoked ### 8.1.0 - Changes to `api-lambdas` module: - Added support for an optional `postConfigure` function, which can be configured onto `context.handler`, that can be used by an AWS Lambda `handler` to add any additional configuration needed to the context AFTER the primary configuration of the context has completed and BEFORE the main function is executed - Added more checks to better handle missing `context` failure cases - Added `stringify` function to better survive responses with circular dependencies - Changes to `other-lambdas` module: - Added support for an optional `postConfigure` function, which can be configured onto `context.handler`, that can be used by an AWS Lambda `handler` to add any additional configuration needed to the context AFTER the primary configuration of the context has completed and BEFORE the main function is executed - Added more checks to better handle missing `context` failure cases - Added `stringify` function to better survive responses with circular dependencies - Fixed intermittent unit test issues - Changes to `stages` module: - Enabled configuration of logging options via a new `logging` property or the legacy `loggingOptions` property - Enabled configuration of logging settings via a new `logging` property or the legacy `loggingSettings` property - Changes to `contexts` module: - Enabled configuration of staging options via a new `staging` property or the legacy `stagingOptions` property - Enabled configuration of staging settings via a new `staging` property or the legacy `stagingSettings` property - Enabled configuration of custom options via a new `custom` property or the legacy `customOptions` property - Enabled configuration of custom settings via a new `custom` property or the legacy `customSettings` property - Fixed unit test defect ### 8.0.2 - Updated `aws-sdk` dev dependency to match latest used in AWS Lambda ### 8.0.1 - Updated `aws-core-test-utils` dependency ### 8.0.0 - Breaking changes to `api-lambdas` module: - Removed deprecated `succeedCallback` function - replaced by `succeedLambdaCallback` function - Removed deprecated `failCallback` function - replaced by `failLambdaCallback` function - Removed deprecated `failCallbackForApiGateway` function - replaced by `failLambdaCallback` function - Removed `useLambdaProxy`, `defaultHeaders` & `allowedHttpStatusCodes` properties and `toErrorResponse` function from the `opts` argument of the `generateHandlerFunction` function in favour of rather configuring these properties via the `generateHandlerFunction` function's existing `createSettings` & `createOptions` arguments - Removed `opts` from the `configureHandlerContext` function in favour of rather configuring its properties via the function's existing `createSettings` & `createOptions` arguments - Dropped support for the legacy 6th `allowedHttpStatusCodes` argument of the `generateHandlerFunction` function - i.e. any code still using legacy 5th to 9th parameters: `logRequestResponseAtLogLevel`, `allowedHttpStatusCodes`, `invalidRequestMsg`, `failureMsg` & `successMsg` (instead of `opts`) will now ignore any `allowedHttpStatusCodes` argument - Breaking changes to `other-lambdas` module: - Removed `toErrorResponse` function from the `opts` argument of the `generateHandlerFunction` function in favour of rather configuring the `generateHandlerFunction` function with the `toErrorResponse` function (and others) via its existing `createSettings` argument - Removed `opts` from the `configureHandlerContext` function in favour of rather configuring its `toErrorResponse` function via the `configureHandlerContext` function's existing `createSettings` argument - Breaking changes to `lambdas` module: - Removed out-of-date `failCallback` function - replaced by `failLambdaCallback` & other functions of the `other-lambdas` module - Added `.npmignore` - Renamed `release_notes.md` to `CHANGES.md` - Updated dependencies ### 7.2.0 - Changes to `api-lambdas` module: - Added support for configuring a custom `preSuccessCallback` function to be run before succeeding the Lambda callback - Added support for configuring a custom `preFailureCallback` function to be run before failing the Lambda callback - Minor breaking changes to API of "new" `failLambdaCallback` and `succeedLambdaCallback` functions added in 7.1.0 - Changes to `other-lambdas` module: - Added support for configuring a custom `preSuccessCallback` function to be run before succeeding the Lambda callback - Added support for configuring a custom `preFailureCallback` function to be run before failing the Lambda callback - Minor breaking changes to API of "new" `failLambdaCallback` and `succeedLambdaCallback` functions added in 7.1.0 ### 7.1.1 - Committed updated `package-lock.json` ### 7.1.0 - Changes to `api-lambdas` module: - Added error response configuration options & settings to the context - Added new `succeedLambdaCallback` and `failLambdaCallback` functions with cleaner parameters needed by custom `toErrorResponse` functions - Deprecated & removed internal usage of old `succeedCallback` and `failCallback` functions - Changed `generateHandlerFunction` to use new `succeedLambdaCallback` and `failLambdaCallback` functions instead - Added a new `other-lambdas` module, which is a simplified version of `api-lambdas`, for generating handler functions for "other" AWS Lambdas that are NOT exposed via API Gateway ### 7.0.12 - Added an optional `toErrorResponse` function to the `opts` arguments of `failLambdaCallback` and `generateHandlerFunction` functions of the `api-lambdas` module to enable callers to customise the error response object or Lambda Proxy error response body returned - Updated `core-functions` dependency to version 3.0.22 - Updated `logging-utils` dependency to version 4.0.22 - Updated `aws-sdk` dev dependency to version 2.190.0 ### 7.0.11 - Updated `core-functions` dependency to version 3.0.20 - Updated `logging-utils` dependency to version 4.0.20 - Updated `aws-sdk` dev dependency to version 2.161.0 - Updated `aws-core-test-utils` dev dependency to version 3.0.7 ### 7.0.10 - Renamed dummy first exports (`exports._ = '_'; //IDE workaround`) of most modules to (`exports._$_ = '_$_';`) to avoid potential future collisions with `lodash` & `underscore` - Updated `core-functions` dependency to version 3.0.19 - Updated `logging-utils` dependency to version 4.0.19 - Updated `aws-core-test-utils` dev dependency to version 3.0.6 ### 7.0.9 - Changed `dynamodb-doc-client-cache`, `kinesis-cache`, `kms-cache` & `lambda-cache` modules to use an optional, alternative AWS constructor passed via a new optional `context.AWS` property to enable use of an AWS XRay-captured AWS constructor - Updated `aws-sdk` dependency to version 2.143.0 ### 7.0.8 - Updated `core-functions` dependency to version 3.0.18 - Updated `logging-utils` dependency to version 4.0.18 ### 7.0.7 - Changes to `api-lambdas` module to support API Gateway Lambda Proxy integration: - Replaced legacy 5th to 9th parameters of `generateHandlerFunction` function with a preferred single optional `opts` 5th parameter, which includes the 5 legacy parameters (`logRequestResponseAtLogLevel`, `allowedHttpStatusCodes`, `invalidRequestMsg`, `failureMsg` & `successMsg`) and also includes 2 new parameters (`useLambdaProxy` & `defaultHeaders`) - Note that the `generateHandlerFunction` function still supports invoking it with its legacy 5th to 9th parameters - Replaced legacy 6th parameter of `failCallback` function with a preferred optional `opts` 6th parameter, which includes the legacy parameter (`allowedHttpStatusCodes`) and also includes 2 new parameters (`useLambdaProxy` & `defaultHeaders`) - Note that the `failCallback` function still supports invoking it with its legacy 6th parameter - Changed `failCallback` function to also support Lambda Proxy integration - Added a new `succeedCallback` function to support both default integration & Lambda Proxy integration - Changed inner `handler` function to use new `succeedCallback` function & to pass the `generateHandlerFunction` function's new `opts` parameter on all `failCallback` & `succeedCallback` calls - Setting the new `useLambdaProxy` parameter to `true`: - Enables your Lambda to be called from API Gateway using its Lambda Proxy integration mode - Changes the `failCallback` & new `succeedCallback` functions to invoke your Lambda's callback function with ONLY a null "error" parameter and a non-null "data" parameter, which is compatible with Lambda Proxy integration - Fixed unbound logger issues in logging in `dynamodb-doc-client-cache`, `kinesis-cache`, `kms-cache`, `lambda-cache` & `regions` modules - Updated `core-functions` dependency to version 3.0.17 - Updated `logging-utils` dependency to version 4.0.17 - Updated `aws-core-test-utils` dev dependency to version 3.0.5 - Updated `aws-sdk` dev dependency to version 2.128.0 ### 7.0.6 - Changes to `regions` module: - Changed behaviour of `getRegionKey` function to EITHER get the existing region key (if any) OR return undefined and NOT set a new region key (if none) - Added new `getOrSetRegionKey` function that gets the existing region key (if any) or sets a new region key (if none) - Added new `listRegionKeys` function to list the currently cached region keys - Changes to `dynamodb-doc-client-cache`, `kinesis-cache`, `kms-cache` & `lambda-cache`: - Synchronised code to handle changes in `regions.getRegionKey` behaviour and to use new `regions.getOrSetRegionKey` - Added new `clearCache` function to clear the instance & options caches according to the currently cached region keys ### 7.0.5 - Changes to `lambdas` module: - Added new `getInvokedFunctionNameWithAliasOrVersion` function - Changed the `getFunctionNameVersionAndAlias` function to also return an `invoked` property containing the same concatenation of invoked function name & alias or version generated by `getInvokedFunctionNameWithAliasOrVersion` - Changes to `type-defs` module: - Added new `invoked` property to `LambdaFunctionNameVersionAndAlias` type definition - Changes to `lambda-utils` module: - Replaced uses of deprecated `Promises.wrapMethod` with `Promises.wrap` - Replaced all logging of `error.stack` with logging of just the error - Updated `core-functions` dependency to version 3.0.15 - Updated `logging-utils` dependency to version 4.0.14 ### 7.0.4 - Changed almost all modules' exports to modifications of the default `exports` object instead of replacing the default `module.exports` object - Added dummy first exports (`exports._ = '_'; //IDE workaround`) to most modules as a temporary workaround for IDE issue - Updated `core-functions` dependency to version 3.0.14 - Updated `logging-utils` dependency to version 4.0.13 ### 7.0.3 - Updated `core-functions` dependency to version 3.0.11 - Updated `logging-utils` dependency to version 4.0.11 ### 7.0.2 - Synchronized `test/samples.js` with versions from other modules: - Added `sampleKinesisMessageAndRecord` & `sampleDynamoDBMessageAndRecord` functions - Added `sampleMsg`, `sampleKinesisRecord2` & `sampleDynamoDBRecord` functions - Removed `sampleKinesisMessage` & `sampleDynamoDBMessage` functions, which are no longer usable after removal of setting of `consumerState` properties on messages - Replaced usage of deleted `sampleDynamoDBMessage` function with `sampleDynamoDBMessageAndRecord` ### 7.0.1 - Minor patches to type definitions in `type-defs` module & to JsDoc comments in `contexts` module ### 7.0.0 - Changes to `type-defs` module: - Defined more properties of `AWSContext` type definition - Added `LambdaFunctionNameVersionAndAlias` type definition - Added optional `invokedLambda` property to `EventAWSContextAndStageAware` type definition - Changes to `regions` module: - Removed `ONLY_FOR_TESTING.setRegionIfNotSet` function - Removed fail fast logic from `getRegion`, `getRegionKey` & `configureRegion` functions, since its only applicable for unit testing - Replaced `ONLY_FOR_TESTING.getRegionRaw` export with direct export of `getRegionRaw` function - Replaced `ONLY_FOR_TESTING.getDefaultRegionRaw` export with direct export of `getDefaultRegionRaw` function - Removed `deprecation` from `configureRegion` function - Changes to `stages` module: - Removed deprecated `configureStageAndAwsContext` function - Removed deprecated `configureRegionStageAndAwsContext` function - Changes to `lambdas` module: - Changed `getFunctionName` function to also use `process.env.AWS_LAMBDA_FUNCTION_NAME` - Changed `getFunctionVersion` function to also use `process.env.AWS_LAMBDA_FUNCTION_VERSION` - Changed `getFunctionNameVersionAndAlias` function to also use `process.env.AWS_LAMBDA_FUNCTION_NAME` & `AWS_LAMBDA_FUNCTION_VERSION` - Changes to `contexts` module: - Changed `configureEventAwsContextAndStage` function to also set `context.invokedLambda` when `awsContext` provided & to NOT fail if region is not defined - Upgraded `aws-sdk` dependency to 2.92.0 ### 6.1.0 - Changes to `type-defs` module: - Added `event` property to `StandardContext` type definition - Renamed `StageAndAWSContextAware` type definition to `EventAWSContextAndStageAware` - Added `event` property to `EventAWSContextAndStageAware` type definition - Added `AWS.Lambda` related type definitions - Added `AWS.KMS` related type definitions - Changes to `stages` module: - Deprecated `configureStageAndAwsContext` function - Changed `configureStageAndAwsContext` & `configureRegionStageAndAwsContext` functions to also set `context.event` - Changes to `contexts` module: - Added `configureEventAwsContextAndStage` function - Changed `configureStandardContext` function to use `configureEventAwsContextAndStage` instead of deprecated `stages.configureStageAndAwsContext` function - Changes to `regions` module: - Added `regionKeysByRegion` cache - Added `getRegionKey` function - Changes to `dynamodb-doc-client-cache` module: - Removed `regionKeysByRegion` cache & `getRegionKey` function & replaced usage with `regions/getRegionKey` - Changes to `kinesis-cache` module: - Removed `regionKeysByRegion` cache & `getRegionKey` function & replaced usage with `regions/getRegionKey` - Added new `lambda-cache` module - Added new `lambda-utils` module - Added new `kms-cache` module - Added new `kms-utils` module ### 6.0.14 - Updated `core-functions` dependency to version 3.0.9 - Updated `logging-utils` dependency to version 4.0.9 ### 6.0.13 - Changes to `dynamodb-doc-client-utils` module: - Added new `updateProjectionExpression`, `updateExpressionAttributeNames` & `updateExpressionAttributeValues` functions - Changed `getItem` function to throw a TypeError if no result or non-object result is returned - Moved test devDependencies to package.json & removed test/package.json - Upgraded `aws-core-test-utils` test dependency to 2.0.9 - Updated `core-functions` dependency to version 3.0.7 - Updated `logging-utils` dependency to version 4.0.7 ### 6.0.12 - Changes to `api-lambdas` module: - Renamed `initContext`, `initSettings` & `initOptions` parameters of `generateHandler` function to `generateContext`, `generateSettings` & `generateOptions` respectively - Changed `generateHandler` function to accept `generateContext`, `generateSettings` & `generateOptions` arguments as functions that can be used to generate non-shared objects, in addition to still providing legacy support for them being passed as shared, module-scoped objects that must be copied to be safely used - Upgraded `logging-utils` dependency to 4.0.6 - Upgraded `aws-sdk` dev dependency to 2.54.0 to match current AWS Lambda runtime version - Upgraded `aws-core-test-utils` test dependency to 2.0.8 ### 6.0.11 - Upgraded `aws-core-test-utils` test dependency to 2.0.7 - Upgraded `uuid` test dependency to 3.1.0 ### 6.0.10 - Changes to `type-defs` module - added more detail to type definitions: - Renamed `DynamoDBGetOpts` type definition to `DynamoGetOpts` - Renamed `DynamoDBQueryOpts` type definition to `DynamoQueryOpts` & added key `K` template - Renamed `DynamoDBGetResult` type definition to `DynamoGetResult` - Renamed `DynamoDBQueryResult` type definition to `DynamoQueryResult` & added extra key `K` template - Added new `DynamoBatchGetResult` type definition with item `I` & key `K` templates - Added new `DynamoScanResult` type definition with item `I` & key `K` templates - Added new `UnprocessedKeysMap` & `CapacityUnitsMap` type definitions - Added details & properties to `ConsumedCapacity` type definition - Upgraded `aws-core-test-utils` test dependency to 2.0.6 - Updated `core-functions` dependency to version 3.0.6 - Updated `logging-utils` dependency to version 4.0.5 ### 6.0.9 - Upgraded `aws-core-test-utils` test dependency to 2.0.5 - Updated `core-functions` dependency to version 3.0.5 - Updated `logging-utils` dependency to version 4.0.4 ### 6.0.8 - Upgraded `aws-core-test-utils` test dependency to 2.0.4 ### 6.0.7 - Upgraded `aws-core-test-utils` test dependency to 2.0.3 ### 6.0.6 - Upgraded `aws-core-test-utils` test dependency to 2.0.2 ### 6.0.5 - Upgraded `aws-core-test-utils` test dependency to 2.0.1 ### 6.0.4 - Added new `dynamodb-doc-client-utils` module - Changes to `type-defs` module (to sync with `get` method of DynamoDB.DocumentClient rather than `getItem` method): - Renamed `DynamoDBGetItemOpts` to `DynamoDBGetOpts` type definition - Renamed `DynamoDBGetItemResult` to `DynamoDBGetResult` type definition ### 6.0.3 - Changes to `regions` module: - Changed `getRegion` function to treat "undefined" or "null" regions as undefined - Added `setRegion` function - Changed `setRegionIfNotSet` function to use `setRegion` - Deprecated `setRegionIfNotSet` function - Changed `configureRegion` function to fallback to using `console.log` if `context.info` is not configured yet - Changes to `stages` module: - Added `configureStageAndAwsContext` convenience function to configure resolved stage and AWS context on the given context - Deprecated old `configureRegionStageAndAwsContext` convenience function - Changes to `contexts` module: - Changed `configureStandardContext` function to invoke `regions.configureRegion` as early in the function as possible & to invoke `stages.configureStageAndAwsContext` instead of `stages.configureRegionStageAndAwsContext` - Changes to `type-defs` module: - Added `StageAndAWSContextAware` type definition - Added `DynamoDBGetItemOpts`, `DynamoDBGetItemResult`, `DynamoDBQueryOpts`, `DynamoDBQueryResult` & `ConsumedCapacity` type definitions ### 6.0.2 - Upgraded to Node 6.10.3 - Updated `core-functions` dependency to version 3.0.4 - Updated `logging-utils` dependency to version 4.0.3 - Upgraded `aws-sdk` dev dependency to version 2.45.0 - Changes to `dynamodb-doc-client-cache` module: - Changed `setDynamoDBDocClient` to create & cache each new DynamoDB.DocumentClient instance with a COPY of the options while still caching the ORIGINAL options to avoid subsequent cache comparison failures related to AWS SDK 2.45.0 mutating the options passed to the constructor, e.g. by adding "attrValue" with value "S8" ### 6.0.1 - Updated `core-functions` dependency to version 3.0.2 - Updated `logging-utils` dependency to version 4.0.1 - Patches to `test/samples.js`: - Fixed potential shared global regular expression issues in `sampleAwsContext` function - Changes to `aws-errors` module: - Added `isResourceNotFoundException` function - Changes to `dynamodb-utils` module: - Added `simplifyKeysNewImageAndOldImage` function ### 6.0.0 - Updated `core-functions` dependency to version 3.0.0 - Updated `logging-utils` dependency to version 4.0.0 - Changes to `api-lambdas.js` module: - Removed `log` function (replaced use with new `log` function & `log` method in `logging-utils`) - Changes to `arns.js` module: - Moved `ArnResources` typedef to `type-defs.js` - Changes to `aws-errors.js` module: - Added `isItemCollectionSizeLimitExceededException` function - Added `isLimitExceeded` function - Removed limit exceeded cases from `isThrottled` function (not backward-compatible) - Added S3 `SlowDown` case to `isThrottled` function - Added `isLimitExceeded` & `err.retryable` checks to `isRetryable` function - Changes to `dynamodb-utils.js` module: - Removed `toNumber` function (replaced use with new `toNumberOrIntegerLike` function in `core-functions/numbers.js`) - Added new `toStorableObject` function - Added new `defaults` static property with `emptyStringReplacement` property - Changes to `stages.js` module: - Replaced all setting names constants (e.g. CUSTOM_TO_STAGE_SETTING) with use of a new module-scope `settingNames` object property that holds all the standard stage handling settings names (e.g. settingNames.customToStage) - Added new `extractNameAndStageFromStreamName` & `extractNameAndStageFromResourceName` settings - Added `extractNameAndStageFromQualifiedStreamName` & `extractNameAndStageFromQualifiedResourceName` functions - Added `extractNameAndStageFromSuffixedStreamName` & `extractNameAndStageFromSuffixedResourceName` functions - Added `_extractNameAndStageFromQualifiedName` & `_extractNameAndStageFromSuffixedName` functions - Changed `extractStageFromQualifiedStreamName` to attempt fallback with `_extractNameAndStageFromQualifiedName` - Changed `extractStageFromQualifiedResourceName` to attempt fallback with `_extractNameAndStageFromQualifiedName` - Changes to `stream-events.js` module: - Added `MAX_PARTITION_KEY_SIZE` constant - Added `DynamoDBEventName` enum - Added `getEventID`, `getEventName`, `getEventSource` & `getEventSourceARN` functions - Added `getKinesisShardId`, `getKinesisShardIdFromEventID`, `getKinesisShardIdAndEventNoFromEventID` & `getKinesisSequenceNumber` functions - Added `getDynamoDBSequenceNumber` function - Added additional validation checks to `validateStreamEventRecord`, `validateKinesisStreamEventRecord` & `validateDynamoDBStreamEventRecord` functions - Added many new typedefs to `type-defs.js` ### 5.0.17 - Fixed critical module-scope defects in `generateHandlerFunction` function in `api-lambdas` module - Changes to `dynamodb-utils` module: - Changed `toNumber` function to return the given string if a large integer number's precision cannot be preserved - Added `toKeyValuePairs` function - Updated `core-functions` dependency to version 2.0.14 - Updated `logging-utils` dependency to version 3.0.12 ### 5.0.16 - Added missing `context` as first argument to `generateHandlerFunction` function of `api-lambdas.js` module ### 5.0.15 - Fixed missing require `core-functions/promises` issue in `api-lambdas.js` module ### 5.0.14 - Fixed defect in `generateHandlerFunction` function of `api-lambdas.js` module ### 5.0.13 - Added new `generateHandlerFunction` function to `api-lambdas.js` module - More improvements to typedefs in `type-defs.js` module - Updated `core-functions` dependency to version 2.0.12 - Updated `logging-utils` dependency to version 3.0.10 ### 5.0.12 - Updated `logging-utils` dependency to version 3.0.9 ### 5.0.11 - Changes to `type-defs.js` module: - Added `StandardContext`, `StandardSettings`, `StandardOptions`, `CustomAware`, `CustomSettings`, `CustomOptions` and `RegionStageAWSContextAware` - Added new `contexts.js` module with `configureStandardContext` and `configureCustomSettings` functions - Added new `api-lambdas.js` module with `failCallback` (and synonym `failCallbackForApiGateway`) functions and re-exported `configureStandardContext` function from `contexts.js` to simplify imports for API Gateway exposed Lambdas - Changes to `lambdas.js` module: - Moved `failCallbackForApiGateway` function to new `api-lambdas.js` module - Changes to `stages.js` module: - Added new `configureRegionStageAndAwsContext` convenience function to configure current region, resolved stage and AWS context on the given context - Improved JsDoc type definitions on all of the configuration functions - Added and improved existing examples in README.md ### 5.0.10 - Fixed broken unit tests by changing incorrect imports of `node-uuid` to `uuid` - Added new `RegionAware`, `KinesisAware` and `DynamoDBDocClientAware` typedefs to `type-defs.js` module - Changes to `regions.js` module: - Changed the `context` argument and return type of `configureRegion` function to use new `RegionAware` typedef - Changes to `kinesis-cache.js` module: - Changed the `context` argument and return types of `configureKinesis` function to use new `KinesisAware` typedef - Changes to `dynamodb-doc-client-cache.js` module: - Changed the `context` argument and return type of `configureDynamoDBDocClient` function to use new `DynamoDBDocClientAware` typedef ### 5.0.9 - Updated `logging-utils` dependency to version 3.0.8 - Renamed `stages-defs.js` module to `type-defs.js` to synchronize with other modules ### 5.0.8 - Renamed `stage-handling-type-defs.js` module to `stages-type-defs.js` ### 5.0.7 - Added `stage-handling-type-defs.js` module to hold all of the stage handling related typedefs - Added `StageHandlingOptions` and `StageHandlingSettings` typedefs from `stages.js` - Added new `StageHandling` and `StageAware` typedefs - Changes to `stages.js` module: - Removed `StageHandlingOptions` and `StageHandlingSettings` typedefs - Changed the argument and return types on many of the functions to use the existing and new typedefs - Updated `logging-utils` dependency to version 3.0.7 ### 5.0.6 - Updated `core-functions` dependency to version 2.0.11 - Updated `logging-utils` dependency to version 3.0.6 - Replaced `node-uuid` dependency with `uuid` dependency in `test\package.json` ### 5.0.5 - Changes to `stream-events` module: - Added new `getEventSources` function - Added new `getDynamoDBEventSourceTableNames` function - Changes to `stages` module: - Changed `resolveStage` function to resolve the event's eventSource and when its DynamoDB to use the table names of the DynamoDB stream event as a stage source, instead of always assuming the event is a Kinesis stream event and only using the stream names of the Kinesis stream event as a stage source - Updated `core-functions` dependency to version 2.0.10 - Updated `logging-utils` dependency to version 3.0.5 ### 5.0.4 - Updated `core-functions` dependency to version 2.0.9 - Updated `logging-utils` dependency to version 3.0.3 ### 5.0.3 - Updated `core-functions` dependency to version 2.0.8 - Updated `logging-utils` dependency to version 3.0.2 ### 5.0.2 - Changes to `stages.js` module: - Moved export of `configureStageHandlingWithSettings` to `FOR_TESTING_ONLY` - Added missing notes on changes for Release 5.0.1 to `README.md` ### 5.0.1 - Changes to `stages.js` module: - Changed `configureStageHandling` function to use `core-functions/objects` module's `copy` and `merge` functions to ensure that any and all given custom settings and options are not lost - Changed `getDefaultStageHandlingSettings` & `loadDefaultStageHandlingOptions` functions to use `core-functions/objects` module's `copy` and `merge` functions to ensure that any and all given custom options are not lost - Changes to `kinesis-cache.js` module: - Changed `setKinesis` to only modify a copy of the given kinesisOptions to avoid side-effects - Changes to `dynamodb-doc-client-cache.js` module: - Changed `setDynamoDBDocClient` to only modify a copy of the given dynamoDBDocClientOptions to avoid side-effects - Updated `core-functions` dependency to version 2.0.7 - Updated `tape` dependency to 4.6.3 ### 5.0.0 - Changes to `arns.js` module: - Changed `getArnResources` function to support DynamoDB eventSourceARNs - Changes to `stream-events.js` module: - Renamed `getEventSourceStreamNames` function to `getKinesisEventSourceStreamNames` - Renamed `getEventSourceStreamName` function to `getKinesisEventSourceStreamName` - Added new `getDynamoDBEventSourceTableName` function - Added new `getDynamoDBEventSourceTableNameAndStreamTimestamp` function - Changes to `stages.js` module: - Renamed `configureStageHandling` function to `configureStageHandlingWithSettings` - Renamed `configureStageHandlingAndDependencies` function to `configureStageHandling` - Removed `configureDependenciesIfNotConfigured` function - Removed `configureDefaultStageHandlingIfNotConfigured` function - Removed `configureStageHandlingIfNotConfigured` function - Renamed `config.json` to `stages-options.json` - Updated `core-functions` dependency to version 2.0.5 - Updated `logging-utils` dependency to version 3.0.0 ### 4.0.0 - Renamed `kinesis-utils` module to `kinesis-cache` to better reflect its actual purpose - Renamed `dynamodb-doc-clients` module to `dynamodb-doc-client-cache` to better reflect its actual purpose - Added new `dynamodb-utils` module - Changes to `stages.js` module: - Added new `configureStageHandlingAndDependencies` function to enable configuration of stage handling settings and all stage handling dependencies (currently just logging) at the same time - Added new `configureDependencies` function, which is used by the new `configureStageHandlingAndDependencies` function - Added new `envStageName` setting to enable configuration of the name of the `process.env` environment variable to be checked for a stage value during execution of the `resolveStage` or `configureStage` functions - Changed `resolveStage` function to first attempt to resolve a stage from a named `process.env` environment variable (if available), which must be configured using AWS Lambda's new environment support ### 3.0.2 - Changes to `stages.js` module: - Added `configureDependenciesIfNotConfigured` function to configure stage handling dependencies (i.e. only logging for now) - Changed `configureStageHandlingIfNotConfigured` function to first invoke new `configureDependenciesIfNotConfigured` function - Changed `configureStageHandling` function to accept `otherSettings` and `otherOptions` as 3rd & 4th arguments to enable configuration of dependencies and to first invoke invoke new `configureDependenciesIfNotConfigured` function - Changed `configureDefaultStageHandling` function to accept `otherSettings` and `otherOptions` as 3rd & 4th arguments to enable configuration of dependencies and to always invoke `configureStageHandling` ### 3.0.1 - Changes to `stages.js` module: - Added a convenience `configureStageHandlingIfNotConfigured` function - Changed `configureDefaultStageHandlingIfNotConfigured` function to use new `configureStageHandlingIfNotConfigured` function - Updated `logging-utils` dependency to version 2.0.3 ### 3.0.0 - Changes to `stages.js` module: - Added typedef for `StageHandlingOptions` to better define parameters and return types - Changed `getDefaultStageHandlingSettings` function to accept an `options` argument of type `StageHandlingOptions` instead of an arbitrary `config` object and to also load default options from `config.json` - Changed `configureDefaultStageHandling` function to accept a new `options` argument of type `StageHandlingOptions` to enable optional, partial overriding of default stage handling settings - Changed `stageHandlingSettings` to `stageHandlingOptions` in `config.json` - Fixed require `logging-utils` link - Updated `logging-utils` dependency to version 2.0.1 ### 2.1.4 - Updated JsDoc comments in `dynamodb-doc-clients` and `kinesis-utils` modules. ### 2.1.3 - Added a new `dynamodb-doc-clients` module to enable creation and configuration of AWS DynamoDB.DocumentClient instances and caching of a DynamoDB.DocumentClient instance per region. Note that this new module is an almost exact replica of the `kinesis-utils` module, but for getting, setting and caching DynamoDB.DocumentClient instances instead of Kinesis instances. - Added `setDynamoDBDocClient`, `getDynamoDBDocClient`, `getDynamoDBDocClientOptionsUsed`, `deleteDynamoDBDocClient` and `configureDynamoDBDocClient` functions and unit tests for same. ### 2.1.2 - Updated `core-functions` dependency to version 2.0.3 - Updated `logging-utils` dependency to version 1.0.6 ### 2.1.1 - Added `getDefaultStageHandlingSettings` function to get the default stage handling settings ### 2.1.0 - Changes to `stages` module: - Changed API of `configureStageHandling` function to accept a setting object instead of the multiple fixed parameters, to simplify configuration of new, custom settings. - Minor changes and fixes to code & unit tests to accommodate this change. - Major overhaul of `kinesis-utils` module to enable full configuration of an AWS Kinesis instance and caching of a Kinesis instance per region. - Added `setKinesis`, `getKinesis`, `getKinesisOptionsUsed` & `deleteKinesis` functions and unit tests for same. - Rewrote and changed API of `configureKinesis` function to use the new `setKinesis` function and patched its unit tests. - Technically should have been a 3.0.0 release semantically speaking, since I changed the APIs of two existing functions, but it did not seem warranted. ### 2.0.1 - Added new `kinesis-utils` module to provide basic configuration and caching of an AWS.Kinesis instance for Lambda - Changes to `stream-events` module: - Added `validateStreamEventRecord` function to check if a record is either a valid Kinesis or DynamoDB stream event record - Added `validateKinesisStreamEventRecord` function to check if a record is a valid Kinesis stream event record - Added `validateDynamoDBStreamEventRecord` function to check if a record is a valid DynamoDB stream event record - Added unit tests for new functions - Minor change to `setRegionIfNotSet` to eliminate unnecessary logging when regions are the same - Updated `core-functions` dependency to version 2.0.2 - Updated `logging-utils` dependency to version 1.0.5 ### 2.0.0 - Major changes to `stages`: - Changed existing configuration API from `resolveStage`-specific configuration to general stage handling configuration. - Added support for a custom to stage function. - Added support for configuration of stream and resource name qualification. - Added `configureStage` function. - Added configurable `toStageQualifiedStreamName` and default `toStageSuffixedStreamName` functions. - Added configurable `extractStageFromQualifiedStreamName` and default `extractStageFromSuffixedStreamName` functions. - Added configurable `toStageQualifiedResourceName` and default `toStageSuffixedResourceName` functions. - Added configurable `extractStageFromQualifiedResourceName` and default `extractStageFromSuffixedResourceName` functions. - Changed and added unit tests for revamped `stages` module. - Changes to `regions`: - Added `configureRegion` function. - Added optional, hidden failFast argument to `getRegion` function needed for `configureRegion` function. - Changes to `aws-errors`: - Fixed incorrect usage in comments. - Moved exported object's methods bodies to module-level functions. - Changes to `lambdas`: - Added `failCallback` function to fail non-API Gateway Lambda callbacks with standard app errors to facilitate mapping of errors to HTTP status codes - Added `failCallbackForApiGateway` function to fail API Gateway Lambda callbacks with standard app errors to facilitate mapping of errors to HTTP status codes - Added `stream-events` module and unit tests for it. - Updated `core-functions` dependency to version 1.2.0. - Added `logging-utils` 1.0.2 dependency. ### 1.0.0 - Completed changes needed to release 1.0.0 - Added unit tests for stages.js - Simplified regions.js API down to relevant methods - Fixed defects attempting to source awsRegion and eventSourceARN from event instead of Kinesis records within event. - Patched repository in package.json ### 0.9.0 - Initial commit