Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-sdk/middleware-sdk-transcribe-streaming

Package Overview
Dependencies
Maintainers
5
Versions
178
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/middleware-sdk-transcribe-streaming - npm Package Compare versions

Comparing version 3.258.0 to 3.266.0

163

dist-cjs/websocket-handler.js

@@ -12,13 +12,28 @@ "use strict";

};
this.sockets = {};
this.connectionTimeout = connectionTimeout || 2000;
}
destroy() { }
destroy() {
for (const [key, sockets] of Object.entries(this.sockets)) {
for (const socket of sockets) {
socket.close(1000, `Socket closed through destroy() call`);
}
delete this.sockets[key];
}
}
removeNotUsableSockets(url) {
this.sockets[url] = this.sockets[url].filter((socket) => ![WebSocket.CLOSING, WebSocket.CLOSED].includes(socket.readyState));
}
async handle(request) {
const url = (0, util_format_url_1.formatUrl)(request);
const socket = new WebSocket(url);
if (!this.sockets[url]) {
this.sockets[url] = [];
}
this.sockets[url].push(socket);
socket.binaryType = "arraybuffer";
await waitForReady(socket, this.connectionTimeout);
await this.waitForReady(socket, this.connectionTimeout);
const { body } = request;
const bodyStream = getIterator(body);
const asyncIterable = connect(socket, bodyStream);
const asyncIterable = this.connect(socket, bodyStream);
const outputPayload = toReadableStream(asyncIterable);

@@ -32,80 +47,86 @@ return {

}
}
exports.WebSocketHandler = WebSocketHandler;
const waitForReady = (socket, connectionTimeout) => new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
reject({
$metadata: {
httpStatusCode: 500,
},
waitForReady(socket, connectionTimeout) {
return new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
this.removeNotUsableSockets(socket.url);
reject({
$metadata: {
httpStatusCode: 500,
},
});
}, connectionTimeout);
socket.onopen = () => {
clearTimeout(timeout);
resolve();
};
});
}, connectionTimeout);
socket.onopen = () => {
clearTimeout(timeout);
resolve();
};
});
const connect = (socket, data) => {
let streamError = undefined;
const outputStream = {
[Symbol.asyncIterator]: () => ({
next: () => {
return new Promise((resolve, reject) => {
socket.onerror = (error) => {
socket.onclose = null;
socket.close();
reject(error);
};
socket.onclose = () => {
if (streamError) {
reject(streamError);
}
else {
}
connect(socket, data) {
let streamError = undefined;
const outputStream = {
[Symbol.asyncIterator]: () => ({
next: () => {
return new Promise((resolve, reject) => {
let socketErrorOccurred = false;
socket.onerror = (error) => {
socketErrorOccurred = true;
socket.close();
reject(error);
};
socket.onclose = () => {
this.removeNotUsableSockets(socket.url);
if (socketErrorOccurred)
return;
if (streamError) {
reject(streamError);
}
else {
resolve({
done: true,
value: undefined,
});
}
};
socket.onmessage = (event) => {
resolve({
done: true,
value: undefined,
done: false,
value: new Uint8Array(event.data),
});
}
};
socket.onmessage = (event) => {
resolve({
done: false,
value: new Uint8Array(event.data),
});
};
});
},
}),
};
const send = async () => {
try {
for await (const inputChunk of data) {
socket.send(inputChunk);
};
});
},
}),
};
const send = async () => {
try {
for await (const inputChunk of data) {
socket.send(inputChunk);
}
}
}
catch (err) {
streamError = err;
}
finally {
socket.close(1000);
}
};
send();
return outputStream;
};
catch (err) {
streamError = err;
}
finally {
socket.close(1000);
}
};
send();
return outputStream;
}
}
exports.WebSocketHandler = WebSocketHandler;
const getIterator = (stream) => {
if (stream[Symbol.asyncIterator])
if (stream[Symbol.asyncIterator]) {
return stream;
else if (isReadableStream(stream)) {
}
if (isReadableStream(stream)) {
return (0, eventstream_serde_browser_1.readableStreamtoIterable)(stream);
}
else {
return {
[Symbol.asyncIterator]: async function* () {
yield stream;
},
};
}
return {
[Symbol.asyncIterator]: async function* () {
yield stream;
},
};
};
const toReadableStream = (asyncIterable) => typeof ReadableStream === "function" ? (0, eventstream_serde_browser_1.iterableToReadableStream)(asyncIterable) : asyncIterable;
const isReadableStream = (payload) => typeof ReadableStream === "function" && payload instanceof ReadableStream;

@@ -9,13 +9,28 @@ import { iterableToReadableStream, readableStreamtoIterable } from "@aws-sdk/eventstream-serde-browser";

};
this.sockets = {};
this.connectionTimeout = connectionTimeout || 2000;
}
destroy() { }
destroy() {
for (const [key, sockets] of Object.entries(this.sockets)) {
for (const socket of sockets) {
socket.close(1000, `Socket closed through destroy() call`);
}
delete this.sockets[key];
}
}
removeNotUsableSockets(url) {
this.sockets[url] = this.sockets[url].filter((socket) => ![WebSocket.CLOSING, WebSocket.CLOSED].includes(socket.readyState));
}
async handle(request) {
const url = formatUrl(request);
const socket = new WebSocket(url);
if (!this.sockets[url]) {
this.sockets[url] = [];
}
this.sockets[url].push(socket);
socket.binaryType = "arraybuffer";
await waitForReady(socket, this.connectionTimeout);
await this.waitForReady(socket, this.connectionTimeout);
const { body } = request;
const bodyStream = getIterator(body);
const asyncIterable = connect(socket, bodyStream);
const asyncIterable = this.connect(socket, bodyStream);
const outputPayload = toReadableStream(asyncIterable);

@@ -29,79 +44,85 @@ return {

}
}
const waitForReady = (socket, connectionTimeout) => new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
reject({
$metadata: {
httpStatusCode: 500,
},
waitForReady(socket, connectionTimeout) {
return new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
this.removeNotUsableSockets(socket.url);
reject({
$metadata: {
httpStatusCode: 500,
},
});
}, connectionTimeout);
socket.onopen = () => {
clearTimeout(timeout);
resolve();
};
});
}, connectionTimeout);
socket.onopen = () => {
clearTimeout(timeout);
resolve();
};
});
const connect = (socket, data) => {
let streamError = undefined;
const outputStream = {
[Symbol.asyncIterator]: () => ({
next: () => {
return new Promise((resolve, reject) => {
socket.onerror = (error) => {
socket.onclose = null;
socket.close();
reject(error);
};
socket.onclose = () => {
if (streamError) {
reject(streamError);
}
else {
}
connect(socket, data) {
let streamError = undefined;
const outputStream = {
[Symbol.asyncIterator]: () => ({
next: () => {
return new Promise((resolve, reject) => {
let socketErrorOccurred = false;
socket.onerror = (error) => {
socketErrorOccurred = true;
socket.close();
reject(error);
};
socket.onclose = () => {
this.removeNotUsableSockets(socket.url);
if (socketErrorOccurred)
return;
if (streamError) {
reject(streamError);
}
else {
resolve({
done: true,
value: undefined,
});
}
};
socket.onmessage = (event) => {
resolve({
done: true,
value: undefined,
done: false,
value: new Uint8Array(event.data),
});
}
};
socket.onmessage = (event) => {
resolve({
done: false,
value: new Uint8Array(event.data),
});
};
});
},
}),
};
const send = async () => {
try {
for await (const inputChunk of data) {
socket.send(inputChunk);
};
});
},
}),
};
const send = async () => {
try {
for await (const inputChunk of data) {
socket.send(inputChunk);
}
}
}
catch (err) {
streamError = err;
}
finally {
socket.close(1000);
}
};
send();
return outputStream;
};
catch (err) {
streamError = err;
}
finally {
socket.close(1000);
}
};
send();
return outputStream;
}
}
const getIterator = (stream) => {
if (stream[Symbol.asyncIterator])
if (stream[Symbol.asyncIterator]) {
return stream;
else if (isReadableStream(stream)) {
}
if (isReadableStream(stream)) {
return readableStreamtoIterable(stream);
}
else {
return {
[Symbol.asyncIterator]: async function* () {
yield stream;
},
};
}
return {
[Symbol.asyncIterator]: async function* () {
yield stream;
},
};
};
const toReadableStream = (asyncIterable) => typeof ReadableStream === "function" ? iterableToReadableStream(asyncIterable) : asyncIterable;
const isReadableStream = (payload) => typeof ReadableStream === "function" && payload instanceof ReadableStream;

@@ -9,7 +9,11 @@ import { HttpHandler, HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";

private readonly connectionTimeout;
private readonly sockets;
constructor({ connectionTimeout }?: WebSocketHandlerOptions);
destroy(): void;
private removeNotUsableSockets;
handle(request: HttpRequest): Promise<{
response: HttpResponse;
}>;
private waitForReady;
private connect;
}

@@ -19,7 +19,18 @@ import { HttpHandler, HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";

private readonly connectionTimeout;
private readonly sockets;
constructor({ connectionTimeout }?: WebSocketHandlerOptions);
/**
* Destroys the WebSocketHandler.
* Closes all sockets from the socket pool.
*/
destroy(): void;
/**
* Removes all closing/closed sockets from the socket pool for URL.
*/
private removeNotUsableSockets;
handle(request: HttpRequest): Promise<{
response: HttpResponse;
}>;
private waitForReady;
private connect;
}
{
"name": "@aws-sdk/middleware-sdk-transcribe-streaming",
"version": "3.258.0",
"version": "3.266.0",
"main": "./dist-cjs/index.js",

@@ -23,8 +23,8 @@ "module": "./dist-es/index.js",

"dependencies": {
"@aws-sdk/eventstream-serde-browser": "3.258.0",
"@aws-sdk/middleware-signing": "3.257.0",
"@aws-sdk/protocol-http": "3.257.0",
"@aws-sdk/signature-v4": "3.257.0",
"@aws-sdk/types": "3.257.0",
"@aws-sdk/util-format-url": "3.257.0",
"@aws-sdk/eventstream-serde-browser": "3.266.0",
"@aws-sdk/middleware-signing": "3.266.0",
"@aws-sdk/protocol-http": "3.266.0",
"@aws-sdk/signature-v4": "3.266.0",
"@aws-sdk/types": "3.266.0",
"@aws-sdk/util-format-url": "3.266.0",
"tslib": "^2.3.1",

@@ -31,0 +31,0 @@ "uuid": "^8.3.2"

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