Socket
Socket
Sign inDemoInstall

@aws-sdk/eventstream-handler-node

Package Overview
Dependencies
Maintainers
5
Versions
145
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/eventstream-handler-node - npm Package Compare versions

Comparing version 3.489.0 to 3.495.0

56

dist-cjs/EventSigningStream.js

@@ -1,55 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventSigningStream = void 0;
const stream_1 = require("stream");
class EventSigningStream extends stream_1.Transform {
constructor(options) {
super({
autoDestroy: true,
readableObjectMode: true,
writableObjectMode: true,
...options,
});
this.priorSignature = options.priorSignature;
this.eventStreamCodec = options.eventStreamCodec;
this.messageSigner = options.messageSigner;
}
async _transform(chunk, encoding, callback) {
try {
const now = new Date();
const dateHeader = {
":date": { type: "timestamp", value: now },
};
const signedMessage = await this.messageSigner.sign({
message: {
body: chunk,
headers: dateHeader,
},
priorSignature: this.priorSignature,
}, {
signingDate: now,
});
this.priorSignature = signedMessage.signature;
const serializedSigned = this.eventStreamCodec.encode({
headers: {
...dateHeader,
":chunk-signature": {
type: "binary",
value: getSignatureBinary(signedMessage.signature),
},
},
body: chunk,
});
this.push(serializedSigned);
return callback();
}
catch (err) {
callback(err);
}
}
}
exports.EventSigningStream = EventSigningStream;
function getSignatureBinary(signature) {
const buf = Buffer.from(signature, "hex");
return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);
}
module.exports = require("./index.js");

@@ -1,45 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventStreamPayloadHandler = void 0;
const eventstream_codec_1 = require("@smithy/eventstream-codec");
const stream_1 = require("stream");
const EventSigningStream_1 = require("./EventSigningStream");
class EventStreamPayloadHandler {
constructor(options) {
this.messageSigner = options.messageSigner;
this.eventStreamCodec = new eventstream_codec_1.EventStreamCodec(options.utf8Encoder, options.utf8Decoder);
}
async handle(next, args, context = {}) {
const request = args.request;
const { body: payload, query } = request;
if (!(payload instanceof stream_1.Readable)) {
throw new Error("Eventstream payload must be a Readable stream.");
}
const payloadStream = payload;
request.body = new stream_1.PassThrough({
objectMode: true,
});
let result;
try {
result = await next(args);
}
catch (e) {
request.body.end();
throw e;
}
const match = (request.headers["authorization"] || "").match(/Signature=([\w]+)$/);
const priorSignature = (match || [])[1] || (query && query["X-Amz-Signature"]) || "";
const signingStream = new EventSigningStream_1.EventSigningStream({
priorSignature,
eventStreamCodec: this.eventStreamCodec,
messageSigner: await this.messageSigner(),
});
(0, stream_1.pipeline)(payloadStream, signingStream, request.body, (err) => {
if (err) {
throw err;
}
});
return result;
}
}
exports.EventStreamPayloadHandler = EventStreamPayloadHandler;
module.exports = require("./index.js");

140

dist-cjs/index.js

@@ -1,5 +0,135 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventStreamPayloadHandlerProvider = void 0;
var provider_1 = require("./provider");
Object.defineProperty(exports, "eventStreamPayloadHandlerProvider", { enumerable: true, get: function () { return provider_1.eventStreamPayloadHandlerProvider; } });
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
eventStreamPayloadHandlerProvider: () => eventStreamPayloadHandlerProvider
});
module.exports = __toCommonJS(src_exports);
// src/EventStreamPayloadHandler.ts
var import_eventstream_codec = require("@smithy/eventstream-codec");
// src/EventSigningStream.ts
var import_stream = require("stream");
var _EventSigningStream = class _EventSigningStream extends import_stream.Transform {
constructor(options) {
super({
autoDestroy: true,
readableObjectMode: true,
writableObjectMode: true,
...options
});
this.priorSignature = options.priorSignature;
this.eventStreamCodec = options.eventStreamCodec;
this.messageSigner = options.messageSigner;
}
async _transform(chunk, encoding, callback) {
try {
const now = /* @__PURE__ */ new Date();
const dateHeader = {
":date": { type: "timestamp", value: now }
};
const signedMessage = await this.messageSigner.sign(
{
message: {
body: chunk,
headers: dateHeader
},
priorSignature: this.priorSignature
},
{
signingDate: now
}
);
this.priorSignature = signedMessage.signature;
const serializedSigned = this.eventStreamCodec.encode({
headers: {
...dateHeader,
":chunk-signature": {
type: "binary",
value: getSignatureBinary(signedMessage.signature)
}
},
body: chunk
});
this.push(serializedSigned);
return callback();
} catch (err) {
callback(err);
}
}
};
__name(_EventSigningStream, "EventSigningStream");
var EventSigningStream = _EventSigningStream;
function getSignatureBinary(signature) {
const buf = Buffer.from(signature, "hex");
return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);
}
__name(getSignatureBinary, "getSignatureBinary");
// src/EventStreamPayloadHandler.ts
var _EventStreamPayloadHandler = class _EventStreamPayloadHandler {
constructor(options) {
this.messageSigner = options.messageSigner;
this.eventStreamCodec = new import_eventstream_codec.EventStreamCodec(options.utf8Encoder, options.utf8Decoder);
}
async handle(next, args, context = {}) {
const request = args.request;
const { body: payload, query } = request;
if (!(payload instanceof import_stream.Readable)) {
throw new Error("Eventstream payload must be a Readable stream.");
}
const payloadStream = payload;
request.body = new import_stream.PassThrough({
objectMode: true
});
let result;
try {
result = await next(args);
} catch (e) {
request.body.end();
throw e;
}
const match = (request.headers["authorization"] || "").match(/Signature=([\w]+)$/);
const priorSignature = (match || [])[1] || query && query["X-Amz-Signature"] || "";
const signingStream = new EventSigningStream({
priorSignature,
eventStreamCodec: this.eventStreamCodec,
messageSigner: await this.messageSigner()
});
(0, import_stream.pipeline)(payloadStream, signingStream, request.body, (err) => {
if (err) {
throw err;
}
});
return result;
}
};
__name(_EventStreamPayloadHandler, "EventStreamPayloadHandler");
var EventStreamPayloadHandler = _EventStreamPayloadHandler;
// src/provider.ts
var eventStreamPayloadHandlerProvider = /* @__PURE__ */ __name((options) => new EventStreamPayloadHandler(options), "eventStreamPayloadHandlerProvider");
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
eventStreamPayloadHandlerProvider
});

@@ -1,6 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventStreamPayloadHandlerProvider = void 0;
const EventStreamPayloadHandler_1 = require("./EventStreamPayloadHandler");
const eventStreamPayloadHandlerProvider = (options) => new EventStreamPayloadHandler_1.EventStreamPayloadHandler(options);
exports.eventStreamPayloadHandlerProvider = eventStreamPayloadHandlerProvider;
module.exports = require("./index.js");
{
"name": "@aws-sdk/eventstream-handler-node",
"version": "3.489.0",
"version": "3.495.0",
"scripts": {
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
"build:cjs": "tsc -p tsconfig.cjs.json",
"build:cjs": "node ../../scripts/compilation/inline eventstream-handler-node",
"build:es": "tsc -p tsconfig.es.json",

@@ -23,9 +23,9 @@ "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build",

"dependencies": {
"@aws-sdk/types": "3.489.0",
"@smithy/eventstream-codec": "^2.0.0",
"@smithy/types": "^2.8.0",
"@aws-sdk/types": "3.495.0",
"@smithy/eventstream-codec": "^2.1.0",
"@smithy/types": "^2.9.0",
"tslib": "^2.5.0"
},
"devDependencies": {
"@smithy/util-utf8": "^2.0.2",
"@smithy/util-utf8": "^2.1.0",
"@tsconfig/recommended": "1.0.1",

@@ -32,0 +32,0 @@ "@types/node": "^14.14.31",

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