diff --git a/examples/snippets/package.json b/examples/snippets/package.json index d97f3d2f3b..674b745a26 100644 --- a/examples/snippets/package.json +++ b/examples/snippets/package.json @@ -43,7 +43,7 @@ "@valkey/valkey-glide": "^2.0.1", "aws-sdk": "^2.1692.0", "aws-sdk-client-mock": "^4.1.0", - "zod": "^4.0.5" + "zod": "^4.0.14" }, "dependencies": { "arktype": "^2.1.20", diff --git a/package-lock.json b/package-lock.json index 40023c2a27..3123a50c45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -106,7 +106,7 @@ "@valkey/valkey-glide": "^2.0.1", "aws-sdk": "^2.1692.0", "aws-sdk-client-mock": "^4.1.0", - "zod": "^4.0.5" + "zod": "^4.0.14" } }, "examples/snippets/node_modules/@valkey/valkey-glide": { @@ -18929,9 +18929,9 @@ } }, "node_modules/zod": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.5.tgz", - "integrity": "sha512-/5UuuRPStvHXu7RS+gmvRf4NXrNxpSllGwDnCBcJZtQsKrviYXm54yDGV2KYNLT5kq0lHGcl7lqWJLgSaG+tgA==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.14.tgz", + "integrity": "sha512-nGFJTnJN6cM2v9kXL+SOBq3AtjQby3Mv5ySGFof5UGRHrRioSJ5iG680cYNjE/yWk671nROcpPj4hAS8nyLhSw==", "dev": true, "license": "MIT", "funding": { @@ -19020,7 +19020,7 @@ "devDependencies": { "avro-js": "^1.12.0", "protobufjs": "^7.5.3", - "zod": "^4.0.5" + "zod": "^4.0.14" }, "peerDependencies": { "arktype": ">=2.0.0", @@ -19141,7 +19141,7 @@ "@standard-schema/spec": "^1.0.0" }, "devDependencies": { - "zod": "^4.0.5" + "zod": "^4.0.14" }, "peerDependencies": { "@middy/core": "4.x || 5.x || 6.x", diff --git a/packages/kafka/package.json b/packages/kafka/package.json index d102a42864..79bed9b3af 100644 --- a/packages/kafka/package.json +++ b/packages/kafka/package.json @@ -117,6 +117,6 @@ "devDependencies": { "avro-js": "^1.12.0", "protobufjs": "^7.5.3", - "zod": "^4.0.5" + "zod": "^4.0.14" } } diff --git a/packages/parser/package.json b/packages/parser/package.json index 2496a0cdbe..0834713e90 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -216,6 +216,6 @@ } }, "devDependencies": { - "zod": "^4.0.5" + "zod": "^4.0.14" } } diff --git a/packages/parser/tests/unit/envelopes/cloudwatch.test.ts b/packages/parser/tests/unit/envelopes/cloudwatch.test.ts index 87e06836f5..42d107c440 100644 --- a/packages/parser/tests/unit/envelopes/cloudwatch.test.ts +++ b/packages/parser/tests/unit/envelopes/cloudwatch.test.ts @@ -144,7 +144,7 @@ describe('Envelope: CloudWatch', () => { }); }); - it('returns an error if the event is not a valid CloudWatch Logs event', () => { + it('returns an error if the event is not a valid CloudWatch Logs event (invalid base64 passed in the data property)', () => { // Prepare const event = { awslogs: { @@ -171,6 +171,34 @@ describe('Envelope: CloudWatch', () => { path: ['awslogs', 'data'], message: 'Invalid base64-encoded string', }, + ], + }), + }), + originalEvent: event, + }); + }); + + it('returns an error if the event is not a valid CloudWatch Logs event (valid base64 passed but invalid JSON in the payload)', () => { + // Prepare + const event = { + awslogs: { + data: 'eyJ0ZXN0IjoidGVzdCJ9', + }, + }; + + // Act + const result = CloudWatchEnvelope.safeParse(event, z.object({})); + + // Assess + expect(result).toEqual({ + success: false, + error: expect.objectContaining({ + name: 'ParseError', + message: expect.stringContaining( + 'Failed to parse CloudWatch Log envelope' + ), + cause: expect.objectContaining({ + issues: [ { code: 'custom', message: 'Failed to decompress CloudWatch log data',