From caf772e04deda732b81076e39f07665643886e04 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:08:54 -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 d69d234a9..a2cdf97c7 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": "https://github.com/aws/aws-encryption-sdk-javascript.git" From b6f3b2b8cd09966a893c00131db63d2d5d0f4789 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:21:05 -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 a2cdf97c7..6e858ac73 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 910a429c2870764e9fe385de28ba32d20917138c Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:27:59 -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 6e858ac73..1e1c697c4 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 5b4e1c942a0aef4e99f0bb0471d1872a0adac5e5 Mon Sep 17 00:00:00 2001 From: Lucas McDonald Date: Wed, 22 Jul 2026 15:34:30 -0700 Subject: [PATCH 4/4] fix: 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"