From 75d9ca512f8cd245b9b60abc9a33aaa514096a48 Mon Sep 17 00:00:00 2001 From: Maxime David Date: Sun, 16 Nov 2025 16:58:55 +0000 Subject: [PATCH 1/5] feat: use invoke-store from global --- packages/core/lib/env/aws_lambda.js | 6 +- .../core/test/unit/env/aws_lambda.test.js | 138 +++++++++++------- 2 files changed, 88 insertions(+), 56 deletions(-) diff --git a/packages/core/lib/env/aws_lambda.js b/packages/core/lib/env/aws_lambda.js index fcdd10a5..65e6d466 100644 --- a/packages/core/lib/env/aws_lambda.js +++ b/packages/core/lib/env/aws_lambda.js @@ -4,12 +4,9 @@ var LambdaUtils = require('../utils').LambdaUtils; var Segment = require('../segments/segment'); var SegmentEmitter = require('../segment_emitter'); var SegmentUtils = require('../segments/segment_utils'); - var logger = require('../logger'); const TraceID = require('../segments/attributes/trace_id'); -const { InvokeStore } = require('@aws/lambda-invoke-store'); - /** * @namespace * @ignore @@ -82,7 +79,8 @@ var facadeSegment = function facadeSegment() { }; segment.resolveLambdaTraceData = function resolveLambdaTraceData() { - const traceIdFromInvokeStore = InvokeStore.getXRayTraceId(); + const invokeStore = globalThis.awslambda?.InvokeStore; + const traceIdFromInvokeStore = invokeStore?.getXRayTraceId(); const traceIdFromEnv = process.env._X_AMZN_TRACE_ID; var xAmznLambda = traceIdFromInvokeStore ?? traceIdFromEnv; diff --git a/packages/core/test/unit/env/aws_lambda.test.js b/packages/core/test/unit/env/aws_lambda.test.js index d2ba41d9..916f68c3 100644 --- a/packages/core/test/unit/env/aws_lambda.test.js +++ b/packages/core/test/unit/env/aws_lambda.test.js @@ -14,9 +14,8 @@ var Segment = require('../../../lib/segments/segment'); var SegmentUtils = require('../../../lib/segments/segment_utils'); var SegmentEmitter = require('../../../lib/segment_emitter'); const TraceID = require('../../../lib/segments/attributes/trace_id'); -const { InvokeStore } = require('@aws/lambda-invoke-store'); -describe('AWSLambda', function() { +describe('AWSLambda', function () { var sandbox; function resetState() { @@ -28,24 +27,24 @@ describe('AWSLambda', function() { Lambda = require(path); } - beforeEach(function() { + beforeEach(function () { resetState(); sandbox = sinon.createSandbox(); sandbox.stub(contextUtils, 'getNamespace').returns({ - enter: function() {}, - createContext: function() {} + enter: function () { }, + createContext: function () { } }); }); - afterEach(function() { + afterEach(function () { sandbox.restore(); }); - describe('#init', function() { + describe('#init', function () { var disableReusableSocketStub, disableCentralizedSamplingStub, populateStub, sandbox, setSegmentStub, validateStub; - beforeEach(function() { + beforeEach(function () { sandbox = sinon.createSandbox(); disableReusableSocketStub = sandbox.stub(SegmentEmitter, 'disableReusableSocket'); disableCentralizedSamplingStub = sandbox.stub(mwUtils, 'disableCentralizedSampling'); @@ -54,26 +53,26 @@ describe('AWSLambda', function() { setSegmentStub = sandbox.stub(contextUtils, 'setSegment'); }); - afterEach(function() { + afterEach(function () { sandbox.restore(); }); - it('should disable reusable socket', function() { + it('should disable reusable socket', function () { Lambda.init(); disableReusableSocketStub.should.have.been.calledOnce; }); - it('should disable centralized sampling', function() { + it('should disable centralized sampling', function () { Lambda.init(); disableCentralizedSamplingStub.should.have.been.calledOnce; }); - it('should override the default streaming threshold', function() { + it('should override the default streaming threshold', function () { Lambda.init(); assert.equal(SegmentUtils.streamingThreshold, 0); }); - it('should set a facade segment on the context', function() { + it('should set a facade segment on the context', function () { Lambda.init(); setSegmentStub.should.have.been.calledOnce; setSegmentStub.should.have.been.calledWith(sinon.match.instanceOf(Segment)); @@ -83,27 +82,27 @@ describe('AWSLambda', function() { assert.equal(facade.trace_id, TraceID.Invalid().toString()); }); - describe('the facade segment', function() { - afterEach(function() { + describe('the facade segment', function () { + afterEach(function () { populateStub.returns(true); delete process.env._X_AMZN_TRACE_ID; validateStub.reset(); }); - it('should call validTraceData with process.env._X_AMZN_TRACE_ID', function() { + it('should call validTraceData with process.env._X_AMZN_TRACE_ID', function () { process.env._X_AMZN_TRACE_ID; Lambda.init(); validateStub.should.have.been.calledWith(process.env._X_AMZN_TRACE_ID); }); - it('should call populateTraceData if validTraceData returns true', function() { + it('should call populateTraceData if validTraceData returns true', function () { Lambda.init(); populateStub.should.have.been.calledOnce; }); - it('should not call populateTraceData if validTraceData returns false', function() { + it('should not call populateTraceData if validTraceData returns false', function () { validateStub.returns(false); Lambda.init(); @@ -112,11 +111,10 @@ describe('AWSLambda', function() { }); }); - describe('FacadeSegment', function() { - var populateStub, sandbox, setSegmentStub; + describe('FacadeSegment', function () { + var populateStub, setSegmentStub; - beforeEach(function() { - sandbox = sinon.createSandbox(); + beforeEach(function () { sandbox.stub(SegmentEmitter, 'disableReusableSocket'); sandbox.stub(LambdaUtils, 'validTraceData').returns(true); @@ -124,19 +122,18 @@ describe('AWSLambda', function() { setSegmentStub = sandbox.stub(contextUtils, 'setSegment'); }); - afterEach(function() { + afterEach(function () { delete process.env._X_AMZN_TRACE_ID; - sandbox.restore(); }); - describe('#reset', function() { - it('should check reset the facade', function() { + describe('#reset', function () { + it('should check reset the facade', function () { Lambda.init(); var facade = setSegmentStub.args[0][0]; facade.trace_id = 'traceIdHere'; facade.id = 'parentIdHere'; - facade.subsegments = [ { subsegment: 'here' } ]; + facade.subsegments = [{ subsegment: 'here' }]; facade.reset(); @@ -147,21 +144,20 @@ describe('AWSLambda', function() { }); }); - describe('#resolveLambdaTraceData', function() { - var sandbox, traceId; + describe('#resolveLambdaTraceData', function () { + var traceId; var INVOKE_STORE_TRACE_ID = 'Root=1-12345678-12345678901234567890abcd;Parent=abcdef0123456789;Sampled=1'; var ENV_TRACE_ID = 'Root=1-87654321-09876543210987654321dcba;Parent=fedcba9876543210;Sampled=0'; - beforeEach(function() { - sandbox = sinon.createSandbox(); + beforeEach(function () { traceId = 'xAmznTraceId;xAmznTraceId;xAmznTraceId'; }); - afterEach(function() { - sandbox.restore(); + afterEach(function () { + delete globalThis.awslambda; }); - it('should throw an error if _X_AMZN_TRACE_ID is not set', function() { + it('should throw an error if _X_AMZN_TRACE_ID is not set', function () { Lambda.init(); populateStub.reset(); @@ -170,7 +166,7 @@ describe('AWSLambda', function() { populateStub.should.have.not.been.called; }); - it('should call populate if _X_AMZN_TRACE_ID has changed post init', function() { + it('should call populate if _X_AMZN_TRACE_ID has changed post init', function () { process.env._X_AMZN_TRACE_ID = traceId; Lambda.init(); process.env._X_AMZN_TRACE_ID = 'xAmznTraceId2'; @@ -181,7 +177,7 @@ describe('AWSLambda', function() { populateStub.should.have.been.calledOnce; }); - it('should call reset if _X_AMZN_TRACE_ID has changed post init', function() { + it('should call reset if _X_AMZN_TRACE_ID has changed post init', function () { process.env._X_AMZN_TRACE_ID = traceId; Lambda.init(); process.env._X_AMZN_TRACE_ID = 'xAmznTraceId2'; @@ -192,7 +188,7 @@ describe('AWSLambda', function() { resetStub.should.have.been.calledOnce; }); - it('should not call populate if _X_AMZN_TRACE_ID is the same post init', function() { + it('should not call populate if _X_AMZN_TRACE_ID is the same post init', function () { process.env._X_AMZN_TRACE_ID = traceId; Lambda.init(); populateStub.reset(); @@ -202,68 +198,106 @@ describe('AWSLambda', function() { populateStub.should.have.not.been.called; }); - it('should prioritize InvokeStore trace ID over environment variable if both are defined', function() { + async function setupInvokeStore() { + let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; + const testing = invokeStore._testing; + if (testing) { + testing.reset(); + } else { + throw "testing needs to be defined"; + } + return await invokeStore.getInstanceAsync(); + } + + it('should prioritize InvokeStore trace ID over environment variable if both are defined', async function () { process.env._X_AMZN_TRACE_ID = ENV_TRACE_ID; + process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); + const invokeStore = await setupInvokeStore(); + + const getXRayTraceIdStub = sandbox.stub(invokeStore, 'getXRayTraceId').returns(INVOKE_STORE_TRACE_ID); - sandbox.stub(InvokeStore, 'getXRayTraceId').returns(INVOKE_STORE_TRACE_ID); populateStub.reset(); var facade = setSegmentStub.args[0][0]; facade.resolveLambdaTraceData(); + getXRayTraceIdStub.should.have.been.calledOnce; populateStub.should.have.been.calledWith(facade, INVOKE_STORE_TRACE_ID); }); - it('should use InvokeStore trace ID when environment variable is undefined', function() { + it('should use InvokeStore trace ID when environment variable is undefined', async function () { delete process.env._X_AMZN_TRACE_ID; - + process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); + const invokeStore = await setupInvokeStore(); + const getXRayTraceIdStub = sandbox.stub(invokeStore, 'getXRayTraceId').returns(INVOKE_STORE_TRACE_ID); - sandbox.stub(InvokeStore, 'getXRayTraceId').returns(INVOKE_STORE_TRACE_ID); populateStub.reset(); var facade = setSegmentStub.args[0][0]; facade.resolveLambdaTraceData(); + getXRayTraceIdStub.should.have.been.calledOnce; populateStub.should.have.been.calledWith(facade, INVOKE_STORE_TRACE_ID); }); - it('should use environment variable when InvokeStore returns undefined', function() { - process.env._X_AMZN_TRACE_ID = INVOKE_STORE_TRACE_ID; + it('should use environment variable when InvokeStore returns undefined', async function () { + process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); + + const invokeStore = await setupInvokeStore(); + const getXRayTraceIdStub = sandbox.stub(invokeStore, 'getXRayTraceId').returns(undefined); + // Set the environment variable after init so it's treated as a new trace ID process.env._X_AMZN_TRACE_ID = ENV_TRACE_ID; - sandbox.stub(InvokeStore, 'getXRayTraceId').returns(undefined); + populateStub.reset(); var facade = setSegmentStub.args[0][0]; facade.resolveLambdaTraceData(); + getXRayTraceIdStub.should.have.been.calledOnce; + populateStub.should.have.been.calledOnce; populateStub.should.have.been.calledWith(facade, ENV_TRACE_ID); }); }); }); - describe('PopulateAdditionalTraceData', function() { - var sandbox, setSegmentStub; + describe('PopulateAdditionalTraceData', function () { + var setSegmentStub; - beforeEach(function() { - sandbox = sinon.createSandbox(); + beforeEach(function () { sandbox.stub(SegmentEmitter, 'disableReusableSocket'); sandbox.stub(LambdaUtils, 'validTraceData').returns(true); setSegmentStub = sandbox.stub(contextUtils, 'setSegment'); }); - afterEach(function() { + afterEach(function () { delete process.env._X_AMZN_TRACE_ID; - sandbox.restore(); + delete globalThis.awslambda; }); - it('should populate additional trace data', function() { + async function setupInvokeStore() { + let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; + const testing = invokeStore._testing; + if (testing) { + testing.reset(); + } else { + throw "testing needs to be defined"; + } + return await invokeStore.getInstanceAsync(); + } + + it('should populate additional trace data', async function () { process.env._X_AMZN_TRACE_ID = 'Root=traceId;Lineage=1234abcd:4|3456abcd:6'; + process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; Lambda.init(); + await setupInvokeStore(); var facade = setSegmentStub.args[0][0]; facade.resolveLambdaTraceData(); From 2f2f3200beb5cb44cfae9878045ba72a076e62fd Mon Sep 17 00:00:00 2001 From: Maxime David Date: Sun, 16 Nov 2025 18:15:55 +0000 Subject: [PATCH 2/5] fix: duplicate --- .../core/test/unit/env/aws_lambda.test.js | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/packages/core/test/unit/env/aws_lambda.test.js b/packages/core/test/unit/env/aws_lambda.test.js index 916f68c3..a6d15f2b 100644 --- a/packages/core/test/unit/env/aws_lambda.test.js +++ b/packages/core/test/unit/env/aws_lambda.test.js @@ -15,6 +15,17 @@ var SegmentUtils = require('../../../lib/segments/segment_utils'); var SegmentEmitter = require('../../../lib/segment_emitter'); const TraceID = require('../../../lib/segments/attributes/trace_id'); +async function setupInvokeStore() { + let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; + const testing = invokeStore._testing; + if (testing) { + testing.reset(); + } else { + throw "testing needs to be defined"; + } + return await invokeStore.getInstanceAsync(); +} + describe('AWSLambda', function () { var sandbox; @@ -198,24 +209,13 @@ describe('AWSLambda', function () { populateStub.should.have.not.been.called; }); - async function setupInvokeStore() { - let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; - const testing = invokeStore._testing; - if (testing) { - testing.reset(); - } else { - throw "testing needs to be defined"; - } - return await invokeStore.getInstanceAsync(); - } - it('should prioritize InvokeStore trace ID over environment variable if both are defined', async function () { process.env._X_AMZN_TRACE_ID = ENV_TRACE_ID; process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); const invokeStore = await setupInvokeStore(); - + const getXRayTraceIdStub = sandbox.stub(invokeStore, 'getXRayTraceId').returns(INVOKE_STORE_TRACE_ID); populateStub.reset(); @@ -248,13 +248,13 @@ describe('AWSLambda', function () { process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); - + const invokeStore = await setupInvokeStore(); const getXRayTraceIdStub = sandbox.stub(invokeStore, 'getXRayTraceId').returns(undefined); // Set the environment variable after init so it's treated as a new trace ID process.env._X_AMZN_TRACE_ID = ENV_TRACE_ID; - + populateStub.reset(); var facade = setSegmentStub.args[0][0]; @@ -282,17 +282,6 @@ describe('AWSLambda', function () { delete globalThis.awslambda; }); - async function setupInvokeStore() { - let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; - const testing = invokeStore._testing; - if (testing) { - testing.reset(); - } else { - throw "testing needs to be defined"; - } - return await invokeStore.getInstanceAsync(); - } - it('should populate additional trace data', async function () { process.env._X_AMZN_TRACE_ID = 'Root=traceId;Lineage=1234abcd:4|3456abcd:6'; process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; From 1e5b975eba46ff8e89c35315fd4174766d532663 Mon Sep 17 00:00:00 2001 From: Maxime David Date: Sun, 16 Nov 2025 18:18:57 +0000 Subject: [PATCH 3/5] fix: bump @aws/lambda-invoke-store but used in devDependencies only (for testing) --- packages/core/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 029b3259..2d58178b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,13 +24,15 @@ "//": "@types/cls-hooked is exposed in API so must be in dependencies, not devDependencies", "dependencies": { "@aws-sdk/types": "^3.4.1", - "@aws/lambda-invoke-store": "^0.0.1", "@smithy/service-error-classification": "^2.0.4", "@types/cls-hooked": "^4.3.3", "atomic-batcher": "^1.0.2", "cls-hooked": "^4.2.2", "semver": "^7.5.3" }, + "devDependencies": { + "@aws/lambda-invoke-store": "^0.2.0" + }, "scripts": { "prepare": "npm run compile", "compile": "tsc && npm run copy-lib && npm run copy-test", From 7040d7ec791358f76899b3a5408b863f3892cb24 Mon Sep 17 00:00:00 2001 From: Maxime David Date: Sun, 16 Nov 2025 18:25:48 +0000 Subject: [PATCH 4/5] fix: package-lock.json --- package-lock.json | 51 +++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index e49f94a3..d9acf075 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,14 +76,6 @@ "npm": ">= 2.x" } }, - "node_modules/@aws/lambda-invoke-store": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz", - "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -18400,6 +18392,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19169,13 +19162,15 @@ "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.4.1", - "@aws/lambda-invoke-store": "^0.0.1", "@smithy/service-error-classification": "^2.0.4", "@types/cls-hooked": "^4.3.3", "atomic-batcher": "^1.0.2", "cls-hooked": "^4.2.2", "semver": "^7.5.3" }, + "devDependencies": { + "@aws/lambda-invoke-store": "^0.2.0" + }, "engines": { "node": ">= 14.x" } @@ -19185,6 +19180,16 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz", "integrity": "sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g==" }, + "packages/core/node_modules/@aws/lambda-invoke-store": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.0.tgz", + "integrity": "sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, "packages/core/node_modules/semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", @@ -19576,11 +19581,6 @@ } }, "dependencies": { - "@aws/lambda-invoke-store": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz", - "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==" - }, "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -23662,7 +23662,7 @@ "version": "file:packages/core", "requires": { "@aws-sdk/types": "^3.4.1", - "@aws/lambda-invoke-store": "^0.0.1", + "@aws/lambda-invoke-store": "^0.2.0", "@smithy/service-error-classification": "^2.0.4", "@types/cls-hooked": "^4.3.3", "atomic-batcher": "^1.0.2", @@ -23675,6 +23675,12 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz", "integrity": "sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g==" }, + "@aws/lambda-invoke-store": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.0.tgz", + "integrity": "sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ==", + "dev": true + }, "semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", @@ -23941,7 +23947,7 @@ "grunt": "^1.0.4", "grunt-contrib-clean": "^1.0.0", "grunt-jsdoc": "^2.4.0", - "koa": "3.0.3", + "koa": "^3.0.1", "lerna": "^6.6.2", "mocha": "^10.2.0", "nock": "^13.2.9", @@ -23956,11 +23962,6 @@ "upath": "^1.2.0" }, "dependencies": { - "@aws/lambda-invoke-store": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz", - "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==" - }, "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -28042,7 +28043,7 @@ "version": "file:packages/core", "requires": { "@aws-sdk/types": "^3.4.1", - "@aws/lambda-invoke-store": "^0.0.1", + "@aws/lambda-invoke-store": "^0.2.0", "@smithy/service-error-classification": "^2.0.4", "@types/cls-hooked": "^4.3.3", "atomic-batcher": "^1.0.2", @@ -28055,6 +28056,12 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz", "integrity": "sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g==" }, + "@aws/lambda-invoke-store": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.0.tgz", + "integrity": "sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ==", + "dev": true + }, "semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", From b272b373c4ab32f470ea12959a216fc082062710 Mon Sep 17 00:00:00 2001 From: Maxime David Date: Sun, 16 Nov 2025 18:29:06 +0000 Subject: [PATCH 5/5] fix: lint --- packages/core/test/unit/env/aws_lambda.test.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/test/unit/env/aws_lambda.test.js b/packages/core/test/unit/env/aws_lambda.test.js index a6d15f2b..4cbf19ff 100644 --- a/packages/core/test/unit/env/aws_lambda.test.js +++ b/packages/core/test/unit/env/aws_lambda.test.js @@ -16,12 +16,12 @@ var SegmentEmitter = require('../../../lib/segment_emitter'); const TraceID = require('../../../lib/segments/attributes/trace_id'); async function setupInvokeStore() { - let invokeStore = (await import("@aws/lambda-invoke-store")).InvokeStore; + let invokeStore = (await import('@aws/lambda-invoke-store')).InvokeStore; const testing = invokeStore._testing; if (testing) { testing.reset(); } else { - throw "testing needs to be defined"; + throw 'testing needs to be defined'; } return await invokeStore.getInstanceAsync(); } @@ -211,7 +211,7 @@ describe('AWSLambda', function () { it('should prioritize InvokeStore trace ID over environment variable if both are defined', async function () { process.env._X_AMZN_TRACE_ID = ENV_TRACE_ID; - process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_BENCHMARK_MODE = '1'; process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); const invokeStore = await setupInvokeStore(); @@ -229,7 +229,7 @@ describe('AWSLambda', function () { it('should use InvokeStore trace ID when environment variable is undefined', async function () { delete process.env._X_AMZN_TRACE_ID; - process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_BENCHMARK_MODE = '1'; process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); const invokeStore = await setupInvokeStore(); @@ -245,7 +245,7 @@ describe('AWSLambda', function () { }); it('should use environment variable when InvokeStore returns undefined', async function () { - process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_BENCHMARK_MODE = '1'; process.env.AWS_LAMBDA_MAX_CONCURRENCY = 2; Lambda.init(); @@ -284,7 +284,7 @@ describe('AWSLambda', function () { it('should populate additional trace data', async function () { process.env._X_AMZN_TRACE_ID = 'Root=traceId;Lineage=1234abcd:4|3456abcd:6'; - process.env.AWS_LAMBDA_BENCHMARK_MODE = "1"; + process.env.AWS_LAMBDA_BENCHMARK_MODE = '1'; Lambda.init(); await setupInvokeStore();