@aws-sdk/eventstream-handler-node
Advanced tools
Comparing version 3.489.0 to 3.495.0
@@ -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"); |
@@ -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", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25552
330
+ Added@aws-sdk/types@3.495.0(transitive)
- Removed@aws-sdk/types@3.489.0(transitive)
Updated@aws-sdk/types@3.495.0
Updated@smithy/types@^2.9.0