From ee14512ce79d80e761a95739a5570a22288dac04 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:09:27 -0700 Subject: [PATCH 1/4] fix(release): inline integration config so npm 12 can run scripts npm 12 rejects the package.json 'config' keys as unknown config, breaking every 'npm run'. Inline the four values into the scripts and drop the block. --- package.json | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index f65d4de7a..02a2af149 100644 --- a/package.json +++ b/package.json @@ -34,29 +34,23 @@ "coverage": "run-s coverage-*", "report-coverage": "nyc report --extension .ts --check-coverage -r html", "test": "npm run build && npm run coverage", - "integration-browser-decrypt": "npm run build; integration-browser decrypt -v $npm_package_config_localTestVectors --karma -c cpu", - "integration-browser-encrypt": "npm run build; integration-browser encrypt -m $npm_package_config_encryptManifestList -k $npm_package_config_encryptKeyManifest -o $npm_package_config_decryptOracle --karma -c cpu", + "integration-browser-decrypt": "npm run build; integration-browser decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip --karma -c cpu", + "integration-browser-encrypt": "npm run build; integration-browser encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt --karma -c cpu", "browser-integration": "run-s integration-browser-*", - "integration-node-decrypt": "npm run build; integration-node decrypt -v $npm_package_config_localTestVectors -c cpu", - "integration-node-decrypt-legacy": "node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v $npm_package_config_localTestVectors -c cpu --CVE-2023-46809", - "integration-node-encrypt": "npm run build; integration-node encrypt -m $npm_package_config_encryptManifestList -k $npm_package_config_encryptKeyManifest -o $npm_package_config_decryptOracle -c cpu", + "integration-node-decrypt": "npm run build; integration-node decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu", + "integration-node-decrypt-legacy": "node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu --CVE-2023-46809", + "integration-node-encrypt": "npm run build; integration-node encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt -c cpu", "node-integration": "run-s integration-node-*", "integration": "run-s integration-*", "verdaccio": "run-s verdaccio-*", "verdaccio-publish": "./util/local_verdaccio_publish", - "verdaccio-browser-decrypt": "./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v $PWD/$npm_package_config_localTestVectors --karma -c cpu", - "verdaccio-browser-encrypt": "./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m $npm_package_config_encryptManifestList -k $npm_package_config_encryptKeyManifest -o $npm_package_config_decryptOracle --karma -c cpu", - "verdaccio-node-decrypt": "./util/npx_verdaccio @aws-crypto/integration-node decrypt -v $PWD/$npm_package_config_localTestVectors -c cpu", - "verdaccio-node-encrypt": "./util/npx_verdaccio @aws-crypto/integration-node encrypt -m $npm_package_config_encryptManifestList -k $npm_package_config_encryptKeyManifest -o $npm_package_config_decryptOracle -c cpu", + "verdaccio-browser-decrypt": "./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v $PWD/aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip --karma -c cpu", + "verdaccio-browser-encrypt": "./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt --karma -c cpu", + "verdaccio-node-decrypt": "./util/npx_verdaccio @aws-crypto/integration-node decrypt -v $PWD/aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu", + "verdaccio-node-encrypt": "./util/npx_verdaccio @aws-crypto/integration-node encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt -c cpu", "test_conditions": "./aws-encryption-sdk-specification/util/test_conditions -s 'modules/**/src/*.ts' -t 'modules/**/test/*.ts' -s 'compliance_exceptions/*.ts'", "duvet-report": "aws-encryption-sdk-specification/util/report.js modules/**/src/**/*.ts modules/**/test/**/*.ts compliance_exceptions/*.ts" }, - "config": { - "localTestVectors": "aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip", - "encryptManifestList": "https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json", - "encryptKeyManifest": "https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json", - "decryptOracle": "https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt" - }, "repository": { "type": "git", "url": "git@github.com:awslabs/aws-encryption-sdk-javascript.git" From 1d91e3e57e61ea42756d40e83a01c7ee067b6e1e Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:21:25 -0700 Subject: [PATCH 2/4] refactor(release): source test vector values from one file Replace the inlined values with a single util/integration-test-vectors.sh that the integration-* and verdaccio-* scripts source. --- package.json | 18 +++++++++--------- util/integration-test-vectors.sh | 6 ++++++ 2 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 util/integration-test-vectors.sh diff --git a/package.json b/package.json index 02a2af149..65b101463 100644 --- a/package.json +++ b/package.json @@ -34,20 +34,20 @@ "coverage": "run-s coverage-*", "report-coverage": "nyc report --extension .ts --check-coverage -r html", "test": "npm run build && npm run coverage", - "integration-browser-decrypt": "npm run build; integration-browser decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip --karma -c cpu", - "integration-browser-encrypt": "npm run build; integration-browser encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt --karma -c cpu", + "integration-browser-decrypt": "npm run build; . util/integration-test-vectors.sh && integration-browser decrypt -v $LOCAL_TEST_VECTORS --karma -c cpu", + "integration-browser-encrypt": "npm run build; . util/integration-test-vectors.sh && integration-browser encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE --karma -c cpu", "browser-integration": "run-s integration-browser-*", - "integration-node-decrypt": "npm run build; integration-node decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu", - "integration-node-decrypt-legacy": "node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu --CVE-2023-46809", - "integration-node-encrypt": "npm run build; integration-node encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt -c cpu", + "integration-node-decrypt": "npm run build; . util/integration-test-vectors.sh && integration-node decrypt -v $LOCAL_TEST_VECTORS -c cpu", + "integration-node-decrypt-legacy": ". util/integration-test-vectors.sh && node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v $LOCAL_TEST_VECTORS -c cpu --CVE-2023-46809", + "integration-node-encrypt": "npm run build; . util/integration-test-vectors.sh && integration-node encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE -c cpu", "node-integration": "run-s integration-node-*", "integration": "run-s integration-*", "verdaccio": "run-s verdaccio-*", "verdaccio-publish": "./util/local_verdaccio_publish", - "verdaccio-browser-decrypt": "./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v $PWD/aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip --karma -c cpu", - "verdaccio-browser-encrypt": "./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt --karma -c cpu", - "verdaccio-node-decrypt": "./util/npx_verdaccio @aws-crypto/integration-node decrypt -v $PWD/aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip -c cpu", - "verdaccio-node-encrypt": "./util/npx_verdaccio @aws-crypto/integration-node encrypt -m https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json -k https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json -o https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt -c cpu", + "verdaccio-browser-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v $PWD/$LOCAL_TEST_VECTORS --karma -c cpu", + "verdaccio-browser-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE --karma -c cpu", + "verdaccio-node-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node decrypt -v $PWD/$LOCAL_TEST_VECTORS -c cpu", + "verdaccio-node-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE -c cpu", "test_conditions": "./aws-encryption-sdk-specification/util/test_conditions -s 'modules/**/src/*.ts' -t 'modules/**/test/*.ts' -s 'compliance_exceptions/*.ts'", "duvet-report": "aws-encryption-sdk-specification/util/report.js modules/**/src/**/*.ts modules/**/test/**/*.ts compliance_exceptions/*.ts" }, diff --git a/util/integration-test-vectors.sh b/util/integration-test-vectors.sh new file mode 100644 index 000000000..0c5094f1d --- /dev/null +++ b/util/integration-test-vectors.sh @@ -0,0 +1,6 @@ +# Single source of truth for integration test vector locations. +# Sourced by the integration-* and verdaccio-* npm scripts. +export LOCAL_TEST_VECTORS="aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip" +export ENCRYPT_MANIFEST_LIST="https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0003-awses-message-encryption.v1.json" +export ENCRYPT_KEY_MANIFEST="https://raw.githubusercontent.com/awslabs/aws-crypto-tools-test-vector-framework/master/features/CANONICAL-GENERATED-MANIFESTS/0002-keys.v1.json" +export DECRYPT_ORACLE="https://xi1mwx3ttb.execute-api.us-west-2.amazonaws.com/api/v0/decrypt" From 6c6dcf13432d584ef42cb6365b9af253470f7123 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:28:09 -0700 Subject: [PATCH 3/4] fix(release): use && and quote args in integration scripts Chain with && so a failed build stops the script, and quote the variable expansions so paths with spaces work. --- package.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 65b101463..84a7bea80 100644 --- a/package.json +++ b/package.json @@ -34,20 +34,20 @@ "coverage": "run-s coverage-*", "report-coverage": "nyc report --extension .ts --check-coverage -r html", "test": "npm run build && npm run coverage", - "integration-browser-decrypt": "npm run build; . util/integration-test-vectors.sh && integration-browser decrypt -v $LOCAL_TEST_VECTORS --karma -c cpu", - "integration-browser-encrypt": "npm run build; . util/integration-test-vectors.sh && integration-browser encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE --karma -c cpu", + "integration-browser-decrypt": "npm run build && . util/integration-test-vectors.sh && integration-browser decrypt -v \"$LOCAL_TEST_VECTORS\" --karma -c cpu", + "integration-browser-encrypt": "npm run build && . util/integration-test-vectors.sh && integration-browser encrypt -m \"$ENCRYPT_MANIFEST_LIST\" -k \"$ENCRYPT_KEY_MANIFEST\" -o \"$DECRYPT_ORACLE\" --karma -c cpu", "browser-integration": "run-s integration-browser-*", - "integration-node-decrypt": "npm run build; . util/integration-test-vectors.sh && integration-node decrypt -v $LOCAL_TEST_VECTORS -c cpu", - "integration-node-decrypt-legacy": ". util/integration-test-vectors.sh && node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v $LOCAL_TEST_VECTORS -c cpu --CVE-2023-46809", - "integration-node-encrypt": "npm run build; . util/integration-test-vectors.sh && integration-node encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE -c cpu", + "integration-node-decrypt": "npm run build && . util/integration-test-vectors.sh && integration-node decrypt -v \"$LOCAL_TEST_VECTORS\" -c cpu", + "integration-node-decrypt-legacy": ". util/integration-test-vectors.sh && node --security-revert=CVE-2023-46809 ./modules/integration-node/build/main/src/cli.js decrypt -v \"$LOCAL_TEST_VECTORS\" -c cpu --CVE-2023-46809", + "integration-node-encrypt": "npm run build && . util/integration-test-vectors.sh && integration-node encrypt -m \"$ENCRYPT_MANIFEST_LIST\" -k \"$ENCRYPT_KEY_MANIFEST\" -o \"$DECRYPT_ORACLE\" -c cpu", "node-integration": "run-s integration-node-*", "integration": "run-s integration-*", "verdaccio": "run-s verdaccio-*", "verdaccio-publish": "./util/local_verdaccio_publish", - "verdaccio-browser-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v $PWD/$LOCAL_TEST_VECTORS --karma -c cpu", - "verdaccio-browser-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE --karma -c cpu", - "verdaccio-node-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node decrypt -v $PWD/$LOCAL_TEST_VECTORS -c cpu", - "verdaccio-node-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node encrypt -m $ENCRYPT_MANIFEST_LIST -k $ENCRYPT_KEY_MANIFEST -o $DECRYPT_ORACLE -c cpu", + "verdaccio-browser-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser decrypt -v \"$PWD/$LOCAL_TEST_VECTORS\" --karma -c cpu", + "verdaccio-browser-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-browser encrypt -m \"$ENCRYPT_MANIFEST_LIST\" -k \"$ENCRYPT_KEY_MANIFEST\" -o \"$DECRYPT_ORACLE\" --karma -c cpu", + "verdaccio-node-decrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node decrypt -v \"$PWD/$LOCAL_TEST_VECTORS\" -c cpu", + "verdaccio-node-encrypt": ". util/integration-test-vectors.sh && ./util/npx_verdaccio @aws-crypto/integration-node encrypt -m \"$ENCRYPT_MANIFEST_LIST\" -k \"$ENCRYPT_KEY_MANIFEST\" -o \"$DECRYPT_ORACLE\" -c cpu", "test_conditions": "./aws-encryption-sdk-specification/util/test_conditions -s 'modules/**/src/*.ts' -t 'modules/**/test/*.ts' -s 'compliance_exceptions/*.ts'", "duvet-report": "aws-encryption-sdk-specification/util/report.js modules/**/src/**/*.ts modules/**/test/**/*.ts compliance_exceptions/*.ts" }, From 1e446b120e00831bdbedeb7a5cc7035921075162 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 22:34:20 +0000 Subject: [PATCH 4/4] fix(release): add license header to integration-test-vectors.sh --- util/integration-test-vectors.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/util/integration-test-vectors.sh b/util/integration-test-vectors.sh index 0c5094f1d..4f0c1d543 100644 --- a/util/integration-test-vectors.sh +++ b/util/integration-test-vectors.sh @@ -1,3 +1,6 @@ +# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + # Single source of truth for integration test vector locations. # Sourced by the integration-* and verdaccio-* npm scripts. export LOCAL_TEST_VECTORS="aws-encryption-sdk-test-vectors/vectors/awses-decrypt/python-2.3.0.zip"