Socket
Socket
Sign inDemoInstall

@aws-sdk/eventstream-serde-universal

Package Overview
Dependencies
Maintainers
5
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/eventstream-serde-universal - npm Package Compare versions

Comparing version 3.178.0 to 3.183.0

8

CHANGELOG.md

@@ -6,2 +6,10 @@ # Change Log

# [3.183.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.182.0...v3.183.0) (2022-10-03)
**Note:** Version bump only for package @aws-sdk/eventstream-serde-universal
# [3.178.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.177.0...v3.178.0) (2022-09-23)

@@ -8,0 +16,0 @@

85

dist-es/EventStreamMarshaller.js

@@ -1,76 +0,31 @@

import { __asyncGenerator, __asyncValues, __await, __generator } from "tslib";
import { EventStreamCodec } from "@aws-sdk/eventstream-codec";
import { getChunkedStream } from "./getChunkedStream";
import { getUnmarshalledStream } from "./getUnmarshalledStream";
var EventStreamMarshaller = (function () {
function EventStreamMarshaller(_a) {
var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;
export class EventStreamMarshaller {
constructor({ utf8Encoder, utf8Decoder }) {
this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);
this.utfEncoder = utf8Encoder;
}
EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {
var chunkedStream = getChunkedStream(body);
var unmarshalledStream = getUnmarshalledStream(chunkedStream, {
deserialize(body, deserializer) {
const chunkedStream = getChunkedStream(body);
const unmarshalledStream = getUnmarshalledStream(chunkedStream, {
eventStreamCodec: this.eventStreamCodec,
deserializer: deserializer,
deserializer,
toUtf8: this.utfEncoder,
});
return unmarshalledStream;
};
EventStreamMarshaller.prototype.serialize = function (input, serializer) {
var _a;
var self = this;
var serializedIterator = function () {
return __asyncGenerator(this, arguments, function () {
var input_1, input_1_1, chunk, payloadBuf, e_1_1;
var e_1, _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
_b.trys.push([0, 7, 8, 13]);
input_1 = __asyncValues(input);
_b.label = 1;
case 1: return [4, __await(input_1.next())];
case 2:
if (!(input_1_1 = _b.sent(), !input_1_1.done)) return [3, 6];
chunk = input_1_1.value;
payloadBuf = self.eventStreamCodec.encode(serializer(chunk));
return [4, __await(payloadBuf)];
case 3: return [4, _b.sent()];
case 4:
_b.sent();
_b.label = 5;
case 5: return [3, 1];
case 6: return [3, 13];
case 7:
e_1_1 = _b.sent();
e_1 = { error: e_1_1 };
return [3, 13];
case 8:
_b.trys.push([8, , 11, 12]);
if (!(input_1_1 && !input_1_1.done && (_a = input_1.return))) return [3, 10];
return [4, __await(_a.call(input_1))];
case 9:
_b.sent();
_b.label = 10;
case 10: return [3, 12];
case 11:
if (e_1) throw e_1.error;
return [7];
case 12: return [7];
case 13: return [4, __await(new Uint8Array(0))];
case 14: return [4, _b.sent()];
case 15:
_b.sent();
return [2];
}
});
});
}
serialize(input, serializer) {
const self = this;
const serializedIterator = async function* () {
for await (const chunk of input) {
const payloadBuf = self.eventStreamCodec.encode(serializer(chunk));
yield payloadBuf;
}
yield new Uint8Array(0);
};
return _a = {},
_a[Symbol.asyncIterator] = serializedIterator,
_a;
};
return EventStreamMarshaller;
}());
export { EventStreamMarshaller };
return {
[Symbol.asyncIterator]: serializedIterator,
};
}
}

@@ -1,4 +0,4 @@

export var recordEventMessage = Buffer.from("AAAA0AAAAFX31gVLDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcAB1JlY29yZHMNOmNvbnRlbnQtdHlwZQcAGGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTEsRm9vLFdoZW4gbGlmZSBnaXZlcyB5b3UgZm9vLi4uCjIsQmFyLG1ha2UgQmFyIQozLEZpenosU29tZXRpbWVzIHBhaXJlZCB3aXRoLi4uCjQsQnV6eix0aGUgaW5mYW1vdXMgQnV6eiEKzxKeSw==", "base64");
export var statsEventMessage = Buffer.from("AAAA0QAAAEM+YpmqDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcABVN0YXRzDTpjb250ZW50LXR5cGUHAAh0ZXh0L3htbDxTdGF0cyB4bWxucz0iIj48Qnl0ZXNTY2FubmVkPjEyNjwvQnl0ZXNTY2FubmVkPjxCeXRlc1Byb2Nlc3NlZD4xMjY8L0J5dGVzUHJvY2Vzc2VkPjxCeXRlc1JldHVybmVkPjEwNzwvQnl0ZXNSZXR1cm5lZD48L1N0YXRzPiJ0pLk=", "base64");
export var endEventMessage = Buffer.from("AAAAOAAAACjBxoTUDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcAA0VuZM+X05I=", "base64");
export var exception = Buffer.from("AAAAtgAAAF8BcW64DTpjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0NOm1lc3NhZ2UtdHlwZQcACWV4Y2VwdGlvbg86ZXhjZXB0aW9uLXR5cGUHAAlFeGNlcHRpb25UaGlzIGlzIGEgbW9kZWxlZCBleGNlcHRpb24gZXZlbnQgdGhhdCB3b3VsZCBiZSB0aHJvd24gaW4gZGVzZXJpYWxpemVyLj6Gc60=", "base64");
export const recordEventMessage = Buffer.from("AAAA0AAAAFX31gVLDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcAB1JlY29yZHMNOmNvbnRlbnQtdHlwZQcAGGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTEsRm9vLFdoZW4gbGlmZSBnaXZlcyB5b3UgZm9vLi4uCjIsQmFyLG1ha2UgQmFyIQozLEZpenosU29tZXRpbWVzIHBhaXJlZCB3aXRoLi4uCjQsQnV6eix0aGUgaW5mYW1vdXMgQnV6eiEKzxKeSw==", "base64");
export const statsEventMessage = Buffer.from("AAAA0QAAAEM+YpmqDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcABVN0YXRzDTpjb250ZW50LXR5cGUHAAh0ZXh0L3htbDxTdGF0cyB4bWxucz0iIj48Qnl0ZXNTY2FubmVkPjEyNjwvQnl0ZXNTY2FubmVkPjxCeXRlc1Byb2Nlc3NlZD4xMjY8L0J5dGVzUHJvY2Vzc2VkPjxCeXRlc1JldHVybmVkPjEwNzwvQnl0ZXNSZXR1cm5lZD48L1N0YXRzPiJ0pLk=", "base64");
export const endEventMessage = Buffer.from("AAAAOAAAACjBxoTUDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcAA0VuZM+X05I=", "base64");
export const exception = Buffer.from("AAAAtgAAAF8BcW64DTpjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0NOm1lc3NhZ2UtdHlwZQcACWV4Y2VwdGlvbg86ZXhjZXB0aW9uLXR5cGUHAAlFeGNlcHRpb25UaGlzIGlzIGEgbW9kZWxlZCBleGNlcHRpb24gZXZlbnQgdGhhdCB3b3VsZCBiZSB0aHJvd24gaW4gZGVzZXJpYWxpemVyLj6Gc60=", "base64");

@@ -1,15 +0,12 @@

import { __extends } from "tslib";
import { Readable } from "stream";
var MockEventMessageSource = (function (_super) {
__extends(MockEventMessageSource, _super);
function MockEventMessageSource(options) {
var _this = _super.call(this, options) || this;
_this.readCount = 0;
_this.data = Buffer.concat(options.messages);
_this.emitSize = options.emitSize;
_this.throwError = options.throwError;
return _this;
export class MockEventMessageSource extends Readable {
constructor(options) {
super(options);
this.readCount = 0;
this.data = Buffer.concat(options.messages);
this.emitSize = options.emitSize;
this.throwError = options.throwError;
}
MockEventMessageSource.prototype._read = function () {
var self = this;
_read() {
const self = this;
if (this.readCount === this.data.length) {

@@ -27,10 +24,8 @@ if (this.throwError) {

}
var bytesLeft = this.data.length - this.readCount;
var numBytesToSend = Math.min(bytesLeft, this.emitSize);
var chunk = this.data.slice(this.readCount, this.readCount + numBytesToSend);
const bytesLeft = this.data.length - this.readCount;
const numBytesToSend = Math.min(bytesLeft, this.emitSize);
const chunk = this.data.slice(this.readCount, this.readCount + numBytesToSend);
this.readCount += numBytesToSend;
this.push(chunk);
};
return MockEventMessageSource;
}(Readable));
export { MockEventMessageSource };
}
}

@@ -1,9 +0,7 @@

import { __asyncGenerator, __await, __generator } from "tslib";
export function getChunkedStream(source) {
var _a;
var currentMessageTotalLength = 0;
var currentMessagePendingLength = 0;
var currentMessage = null;
var messageLengthBuffer = null;
var allocateMessage = function (size) {
let currentMessageTotalLength = 0;
let currentMessagePendingLength = 0;
let currentMessage = null;
let messageLengthBuffer = null;
const allocateMessage = (size) => {
if (typeof size !== "number") {

@@ -15,76 +13,55 @@ throw new Error("Attempted to allocate an event message where size was not a number: " + size);

currentMessage = new Uint8Array(size);
var currentMessageView = new DataView(currentMessage.buffer);
const currentMessageView = new DataView(currentMessage.buffer);
currentMessageView.setUint32(0, size, false);
};
var iterator = function () {
return __asyncGenerator(this, arguments, function () {
var sourceIterator, _a, value, done, chunkLength, currentOffset, bytesRemaining, numBytesForTotal, numBytesToWrite;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
sourceIterator = source[Symbol.asyncIterator]();
_b.label = 1;
case 1:
if (!true) return [3, 16];
return [4, __await(sourceIterator.next())];
case 2:
_a = _b.sent(), value = _a.value, done = _a.done;
if (!done) return [3, 10];
if (!!currentMessageTotalLength) return [3, 4];
return [4, __await(void 0)];
case 3: return [2, _b.sent()];
case 4:
if (!(currentMessageTotalLength === currentMessagePendingLength)) return [3, 7];
return [4, __await(currentMessage)];
case 5: return [4, _b.sent()];
case 6:
_b.sent();
return [3, 8];
case 7: throw new Error("Truncated event message received.");
case 8: return [4, __await(void 0)];
case 9: return [2, _b.sent()];
case 10:
chunkLength = value.length;
currentOffset = 0;
_b.label = 11;
case 11:
if (!(currentOffset < chunkLength)) return [3, 15];
if (!currentMessage) {
bytesRemaining = chunkLength - currentOffset;
if (!messageLengthBuffer) {
messageLengthBuffer = new Uint8Array(4);
}
numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);
messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);
currentMessagePendingLength += numBytesForTotal;
currentOffset += numBytesForTotal;
if (currentMessagePendingLength < 4) {
return [3, 15];
}
allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));
messageLengthBuffer = null;
}
numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);
currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);
currentMessagePendingLength += numBytesToWrite;
currentOffset += numBytesToWrite;
if (!(currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength)) return [3, 14];
return [4, __await(currentMessage)];
case 12: return [4, _b.sent()];
case 13:
_b.sent();
currentMessage = null;
currentMessageTotalLength = 0;
currentMessagePendingLength = 0;
_b.label = 14;
case 14: return [3, 11];
case 15: return [3, 1];
case 16: return [2];
const iterator = async function* () {
const sourceIterator = source[Symbol.asyncIterator]();
while (true) {
const { value, done } = await sourceIterator.next();
if (done) {
if (!currentMessageTotalLength) {
return;
}
});
});
else if (currentMessageTotalLength === currentMessagePendingLength) {
yield currentMessage;
}
else {
throw new Error("Truncated event message received.");
}
return;
}
const chunkLength = value.length;
let currentOffset = 0;
while (currentOffset < chunkLength) {
if (!currentMessage) {
const bytesRemaining = chunkLength - currentOffset;
if (!messageLengthBuffer) {
messageLengthBuffer = new Uint8Array(4);
}
const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);
messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);
currentMessagePendingLength += numBytesForTotal;
currentOffset += numBytesForTotal;
if (currentMessagePendingLength < 4) {
break;
}
allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));
messageLengthBuffer = null;
}
const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);
currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);
currentMessagePendingLength += numBytesToWrite;
currentOffset += numBytesToWrite;
if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {
yield currentMessage;
currentMessage = null;
currentMessageTotalLength = 0;
currentMessagePendingLength = 0;
}
}
}
};
return _a = {},
_a[Symbol.asyncIterator] = iterator,
_a;
return {
[Symbol.asyncIterator]: iterator,
};
}

@@ -1,79 +0,38 @@

import { __asyncGenerator, __asyncValues, __await, __generator } from "tslib";
export function getUnmarshalledStream(source, options) {
var _a;
return _a = {},
_a[Symbol.asyncIterator] = function () {
return __asyncGenerator(this, arguments, function () {
var source_1, source_1_1, chunk, message, messageType, unmodeledError, code, exception, deserializedException, error, event_1, deserialized, e_1_1;
var _a, _b;
var e_1, _c;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
_d.trys.push([0, 12, 13, 18]);
source_1 = __asyncValues(source);
_d.label = 1;
case 1: return [4, __await(source_1.next())];
case 2:
if (!(source_1_1 = _d.sent(), !source_1_1.done)) return [3, 11];
chunk = source_1_1.value;
message = options.eventStreamCodec.decode(chunk);
messageType = message.headers[":message-type"].value;
if (!(messageType === "error")) return [3, 3];
unmodeledError = new Error(message.headers[":error-message"].value || "UnknownError");
unmodeledError.name = message.headers[":error-code"].value;
throw unmodeledError;
case 3:
if (!(messageType === "exception")) return [3, 5];
code = message.headers[":exception-type"].value;
exception = (_a = {}, _a[code] = message, _a);
return [4, __await(options.deserializer(exception))];
case 4:
deserializedException = _d.sent();
if (deserializedException.$unknown) {
error = new Error(options.toUtf8(message.body));
error.name = code;
throw error;
}
throw deserializedException[code];
case 5:
if (!(messageType === "event")) return [3, 9];
event_1 = (_b = {},
_b[message.headers[":event-type"].value] = message,
_b);
return [4, __await(options.deserializer(event_1))];
case 6:
deserialized = _d.sent();
if (deserialized.$unknown)
return [3, 10];
return [4, __await(deserialized)];
case 7: return [4, _d.sent()];
case 8:
_d.sent();
return [3, 10];
case 9: throw Error("Unrecognizable event type: ".concat(message.headers[":event-type"].value));
case 10: return [3, 1];
case 11: return [3, 18];
case 12:
e_1_1 = _d.sent();
e_1 = { error: e_1_1 };
return [3, 18];
case 13:
_d.trys.push([13, , 16, 17]);
if (!(source_1_1 && !source_1_1.done && (_c = source_1.return))) return [3, 15];
return [4, __await(_c.call(source_1))];
case 14:
_d.sent();
_d.label = 15;
case 15: return [3, 17];
case 16:
if (e_1) throw e_1.error;
return [7];
case 17: return [7];
case 18: return [2];
return {
[Symbol.asyncIterator]: async function* () {
for await (const chunk of source) {
const message = options.eventStreamCodec.decode(chunk);
const { value: messageType } = message.headers[":message-type"];
if (messageType === "error") {
const unmodeledError = new Error(message.headers[":error-message"].value || "UnknownError");
unmodeledError.name = message.headers[":error-code"].value;
throw unmodeledError;
}
else if (messageType === "exception") {
const code = message.headers[":exception-type"].value;
const exception = { [code]: message };
const deserializedException = await options.deserializer(exception);
if (deserializedException.$unknown) {
const error = new Error(options.toUtf8(message.body));
error.name = code;
throw error;
}
});
});
throw deserializedException[code];
}
else if (messageType === "event") {
const event = {
[message.headers[":event-type"].value]: message,
};
const deserialized = await options.deserializer(event);
if (deserialized.$unknown)
continue;
yield deserialized;
}
else {
throw Error(`Unrecognizable event type: ${message.headers[":event-type"].value}`);
}
}
},
_a;
};
}
import { EventStreamMarshaller } from "./EventStreamMarshaller";
export var eventStreamSerdeProvider = function (options) { return new EventStreamMarshaller(options); };
export const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);
{
"name": "@aws-sdk/eventstream-serde-universal",
"version": "3.178.0",
"version": "3.183.0",
"scripts": {

@@ -23,8 +23,8 @@ "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",

"dependencies": {
"@aws-sdk/eventstream-codec": "3.178.0",
"@aws-sdk/types": "3.178.0",
"@aws-sdk/eventstream-codec": "3.183.0",
"@aws-sdk/types": "3.183.0",
"tslib": "^2.3.1"
},
"devDependencies": {
"@aws-sdk/util-utf8-node": "3.170.0",
"@aws-sdk/util-utf8-node": "3.183.0",
"@tsconfig/recommended": "1.0.1",

@@ -31,0 +31,0 @@ "@types/node": "^10.0.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc