From f95318822f325c911cf0f215febf14c08bf5f2e3 Mon Sep 17 00:00:00 2001 From: yamatatsu Date: Mon, 18 Mar 2024 22:11:27 +0900 Subject: [PATCH 1/3] chore(deps): replace deprecated lib to alternative --- package-lock.json | 51 +++---------------- packages/idempotency/package.json | 1 - packages/parameters/package.json | 2 +- .../parameters/src/base/transformValue.ts | 4 +- .../tests/e2e/appConfigProvider.class.test.ts | 2 +- .../tests/unit/BaseProvider.test.ts | 2 +- .../parameters/tests/unit/SSMProvider.test.ts | 2 +- .../tests/unit/getAppConfig.test.ts | 2 +- 8 files changed, 14 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1060f7fef4..d381b5a71d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1030,17 +1030,6 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.201.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz", - "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@aws-sdk/lib-dynamodb": { "version": "3.533.0", "resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.533.0.tgz", @@ -1176,31 +1165,6 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.209.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.209.0.tgz", - "integrity": "sha512-U6pjb6uF/BameQLmzoSrqeiTxu5otwwGV7fO+TyE/3SJm/lyIsBaO+wr0qsoK0ae1VqggR+KCsUG13pWhdltpw==", - "deprecated": "The package @aws-sdk/util-base64-node has been renamed to @aws-sdk/util-base64. Please install the renamed package.", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz", - "integrity": "sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.201.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@aws-sdk/util-dynamodb": { "version": "3.533.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.533.0.tgz", @@ -4662,13 +4626,13 @@ } }, "node_modules/@smithy/util-base64": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.2.1.tgz", - "integrity": "sha512-troGfokrpoqv8TGgsb8p4vvM71vqor314514jyQ0i9Zae3qs0jUVbSMCIBB1tseVynXFRcZJAZ9hPQYlifLD5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz", + "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==", "dependencies": { - "@smithy/util-buffer-from": "^2.1.1", - "@smithy/util-utf8": "^2.2.0", - "tslib": "^2.5.0" + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" }, "engines": { "node": ">=14.0.0" @@ -17180,7 +17144,6 @@ "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^2.0.3", - "@aws-sdk/util-base64-node": "^3.209.0", "jmespath": "^0.16.0" }, "devDependencies": { @@ -17265,7 +17228,7 @@ "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^2.0.3", - "@aws-sdk/util-base64-node": "^3.209.0" + "@smithy/util-base64": "^2.3.0" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index ca6c4c5f6b..9e33160bed 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -101,7 +101,6 @@ }, "dependencies": { "@aws-lambda-powertools/commons": "^2.0.3", - "@aws-sdk/util-base64-node": "^3.209.0", "jmespath": "^0.16.0" }, "peerDependencies": { diff --git a/packages/parameters/package.json b/packages/parameters/package.json index 1423acf240..8551caeb2f 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -168,7 +168,7 @@ }, "dependencies": { "@aws-lambda-powertools/commons": "^2.0.3", - "@aws-sdk/util-base64-node": "^3.209.0" + "@smithy/util-base64": "^2.3.0" }, "peerDependencies": { "@aws-sdk/client-appconfigdata": ">=3.x", diff --git a/packages/parameters/src/base/transformValue.ts b/packages/parameters/src/base/transformValue.ts index 3dc1c3fcea..fc7d7981fc 100644 --- a/packages/parameters/src/base/transformValue.ts +++ b/packages/parameters/src/base/transformValue.ts @@ -1,6 +1,6 @@ import type { JSONValue } from '@aws-lambda-powertools/commons/types'; import { isString } from '@aws-lambda-powertools/commons'; -import { fromBase64 } from '@aws-sdk/util-base64-node'; +import { fromBase64 } from '@smithy/util-base64'; import { TRANSFORM_METHOD_BINARY, TRANSFORM_METHOD_JSON, @@ -19,7 +19,7 @@ import type { TransformOptions } from '../types/BaseProvider.js'; * the value will be parsed as JSON using the `JSON.parse` function. * * When the transform is `binary` or `auto` and the key ends with `.binary`, the value will be decoded from base64 using the `fromBase64` function - * from the `@aws-sdk/util-base64-node` package. + * from the `@smithy/util-base64` package. * * If the transformation fails, the function will return the value as-is unless `throwOnTransformError` is set to `true`. * diff --git a/packages/parameters/tests/e2e/appConfigProvider.class.test.ts b/packages/parameters/tests/e2e/appConfigProvider.class.test.ts index 69bb52ae17..cfbf7cd58d 100644 --- a/packages/parameters/tests/e2e/appConfigProvider.class.test.ts +++ b/packages/parameters/tests/e2e/appConfigProvider.class.test.ts @@ -9,7 +9,7 @@ import { TestStack, } from '@aws-lambda-powertools/testing-utils'; import { TestNodejsFunction } from '@aws-lambda-powertools/testing-utils/resources/lambda'; -import { toBase64 } from '@aws-sdk/util-base64-node'; +import { toBase64 } from '@smithy/util-base64'; import { join } from 'node:path'; import { TestAppConfigWithProfiles } from '../helpers/resources.js'; import { diff --git a/packages/parameters/tests/unit/BaseProvider.test.ts b/packages/parameters/tests/unit/BaseProvider.test.ts index 18e87bb0dc..d3aa29c709 100644 --- a/packages/parameters/tests/unit/BaseProvider.test.ts +++ b/packages/parameters/tests/unit/BaseProvider.test.ts @@ -17,7 +17,7 @@ import { TransformParameterError, clearCaches, } from '../../src/index.js'; -import { toBase64 } from '@aws-sdk/util-base64-node'; +import { toBase64 } from '@smithy/util-base64'; const encoder = new TextEncoder(); jest.mock('@aws-lambda-powertools/commons', () => ({ diff --git a/packages/parameters/tests/unit/SSMProvider.test.ts b/packages/parameters/tests/unit/SSMProvider.test.ts index 04da68117c..005cb7d761 100644 --- a/packages/parameters/tests/unit/SSMProvider.test.ts +++ b/packages/parameters/tests/unit/SSMProvider.test.ts @@ -21,7 +21,7 @@ import type { SSMGetParametersByNameOutputInterface, } from '../../src/types/SSMProvider.js'; import { ExpirableValue } from '../../src/base/ExpirableValue.js'; -import { toBase64 } from '@aws-sdk/util-base64-node'; +import { toBase64 } from '@smithy/util-base64'; import { addUserAgentMiddleware } from '@aws-lambda-powertools/commons'; const encoder = new TextEncoder(); diff --git a/packages/parameters/tests/unit/getAppConfig.test.ts b/packages/parameters/tests/unit/getAppConfig.test.ts index adbc2f6a6c..b012cd0c10 100644 --- a/packages/parameters/tests/unit/getAppConfig.test.ts +++ b/packages/parameters/tests/unit/getAppConfig.test.ts @@ -13,7 +13,7 @@ import { } from '@aws-sdk/client-appconfigdata'; import { mockClient } from 'aws-sdk-client-mock'; import 'aws-sdk-client-mock-jest'; -import { toBase64 } from '@aws-sdk/util-base64-node'; +import { toBase64 } from '@smithy/util-base64'; import { Uint8ArrayBlobAdapter } from '@smithy/util-stream'; import type { JSONValue } from '@aws-lambda-powertools/commons/types'; From f7e93243329a9ec4c890355c002e41316adfa96d Mon Sep 17 00:00:00 2001 From: yamatatsu Date: Mon, 25 Mar 2024 16:32:43 +0900 Subject: [PATCH 2/3] chore: use `@aws-lambda-powertools/commons/utils/base64` --- package-lock.json | 4 ++-- packages/parameters/package.json | 4 ++-- packages/parameters/src/base/transformValue.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index d381b5a71d..bc84a8e2ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17227,8 +17227,7 @@ "version": "2.0.3", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.0.3", - "@smithy/util-base64": "^2.3.0" + "@aws-lambda-powertools/commons": "^2.0.3" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -17237,6 +17236,7 @@ "@aws-sdk/client-secrets-manager": "^3.534.0", "@aws-sdk/client-ssm": "^3.533.0", "@aws-sdk/util-dynamodb": "^3.533.0", + "@smithy/util-base64": "^2.3.0", "aws-sdk-client-mock": "^3.0.1", "aws-sdk-client-mock-jest": "^3.0.1" }, diff --git a/packages/parameters/package.json b/packages/parameters/package.json index 8551caeb2f..7a168b9236 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -163,12 +163,12 @@ "@aws-sdk/client-secrets-manager": "^3.534.0", "@aws-sdk/client-ssm": "^3.533.0", "@aws-sdk/util-dynamodb": "^3.533.0", + "@smithy/util-base64": "^2.3.0", "aws-sdk-client-mock": "^3.0.1", "aws-sdk-client-mock-jest": "^3.0.1" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.0.3", - "@smithy/util-base64": "^2.3.0" + "@aws-lambda-powertools/commons": "^2.0.3" }, "peerDependencies": { "@aws-sdk/client-appconfigdata": ">=3.x", diff --git a/packages/parameters/src/base/transformValue.ts b/packages/parameters/src/base/transformValue.ts index fc7d7981fc..abf4688b52 100644 --- a/packages/parameters/src/base/transformValue.ts +++ b/packages/parameters/src/base/transformValue.ts @@ -1,6 +1,6 @@ import type { JSONValue } from '@aws-lambda-powertools/commons/types'; import { isString } from '@aws-lambda-powertools/commons'; -import { fromBase64 } from '@smithy/util-base64'; +import { fromBase64 } from '@aws-lambda-powertools/commons/utils/base64'; import { TRANSFORM_METHOD_BINARY, TRANSFORM_METHOD_JSON, @@ -19,7 +19,7 @@ import type { TransformOptions } from '../types/BaseProvider.js'; * the value will be parsed as JSON using the `JSON.parse` function. * * When the transform is `binary` or `auto` and the key ends with `.binary`, the value will be decoded from base64 using the `fromBase64` function - * from the `@smithy/util-base64` package. + * from the `@aws-lambda-powertools/commons/utils/base64` package. * * If the transformation fails, the function will return the value as-is unless `throwOnTransformError` is set to `true`. * From f2298678a247f01192f57bb6dc60b934907d54af Mon Sep 17 00:00:00 2001 From: yamatatsu Date: Tue, 26 Mar 2024 09:41:48 +0900 Subject: [PATCH 3/3] fix: using second parameter of fromBase64() --- packages/parameters/src/base/transformValue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/parameters/src/base/transformValue.ts b/packages/parameters/src/base/transformValue.ts index abf4688b52..2c560689db 100644 --- a/packages/parameters/src/base/transformValue.ts +++ b/packages/parameters/src/base/transformValue.ts @@ -67,7 +67,7 @@ const transformValue = ( return JSON.parse(value) as JSONValue; // If the transform is `binary` or `auto` and the key ends with `.binary`, decode the value from base64 } else if (isBinaryTransform || isAutoBinaryTransform) { - return new TextDecoder('utf-8').decode(fromBase64(value)); + return new TextDecoder('utf-8').decode(fromBase64(value, 'base64')); } } catch (error) { if (throwOnTransformError)