@aws-sdk/middleware-websocket 3.598.0 → 3.605.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.js +5 -3
- package/dist-es/EventStreamPayloadHandler.js +2 -1
- package/dist-es/get-event-signing-stream.js +2 -2
- package/dist-types/EventStreamPayloadHandler.d.ts +2 -0
- package/dist-types/get-event-signing-stream.d.ts +4 -2
- package/dist-types/ts3.4/EventStreamPayloadHandler.d.ts +2 -0
- package/dist-types/ts3.4/get-event-signing-stream.d.ts +3 -2
- package/package.json +1 -1
package/dist-cjs/index.js
CHANGED
|
@@ -33,14 +33,14 @@ var import_eventstream_codec = require("@smithy/eventstream-codec");
|
|
|
33
33
|
|
|
34
34
|
// src/get-event-signing-stream.ts
|
|
35
35
|
var import_util_hex_encoding = require("@smithy/util-hex-encoding");
|
|
36
|
-
var getEventSigningTransformStream = /* @__PURE__ */ __name((initialSignature, messageSigner, eventStreamCodec) => {
|
|
36
|
+
var getEventSigningTransformStream = /* @__PURE__ */ __name((initialSignature, messageSigner, eventStreamCodec, systemClockOffsetProvider) => {
|
|
37
37
|
let priorSignature = initialSignature;
|
|
38
38
|
const transformer = {
|
|
39
39
|
start() {
|
|
40
40
|
},
|
|
41
41
|
async transform(chunk, controller) {
|
|
42
42
|
try {
|
|
43
|
-
const now =
|
|
43
|
+
const now = new Date(Date.now() + await systemClockOffsetProvider());
|
|
44
44
|
const dateHeader = {
|
|
45
45
|
":date": { type: "timestamp", value: now }
|
|
46
46
|
};
|
|
@@ -81,6 +81,7 @@ var _EventStreamPayloadHandler = class _EventStreamPayloadHandler {
|
|
|
81
81
|
constructor(options) {
|
|
82
82
|
this.messageSigner = options.messageSigner;
|
|
83
83
|
this.eventStreamCodec = new import_eventstream_codec.EventStreamCodec(options.utf8Encoder, options.utf8Decoder);
|
|
84
|
+
this.systemClockOffsetProvider = async () => options.systemClockOffset ?? 0;
|
|
84
85
|
}
|
|
85
86
|
async handle(next, args, context = {}) {
|
|
86
87
|
const request = args.request;
|
|
@@ -102,7 +103,8 @@ var _EventStreamPayloadHandler = class _EventStreamPayloadHandler {
|
|
|
102
103
|
const signingStream = getEventSigningTransformStream(
|
|
103
104
|
priorSignature,
|
|
104
105
|
await this.messageSigner(),
|
|
105
|
-
this.eventStreamCodec
|
|
106
|
+
this.eventStreamCodec,
|
|
107
|
+
this.systemClockOffsetProvider
|
|
106
108
|
);
|
|
107
109
|
const signedPayload = payload.pipeThrough(signingStream);
|
|
108
110
|
signedPayload.pipeThrough(placeHolderStream);
|
|
@@ -4,6 +4,7 @@ export class EventStreamPayloadHandler {
|
|
|
4
4
|
constructor(options) {
|
|
5
5
|
this.messageSigner = options.messageSigner;
|
|
6
6
|
this.eventStreamCodec = new EventStreamCodec(options.utf8Encoder, options.utf8Decoder);
|
|
7
|
+
this.systemClockOffsetProvider = async () => options.systemClockOffset ?? 0;
|
|
7
8
|
}
|
|
8
9
|
async handle(next, args, context = {}) {
|
|
9
10
|
const request = args.request;
|
|
@@ -23,7 +24,7 @@ export class EventStreamPayloadHandler {
|
|
|
23
24
|
}
|
|
24
25
|
const match = (headers["authorization"] || "").match(/Signature=([\w]+)$/);
|
|
25
26
|
const priorSignature = (match || [])[1] || (query && query["X-Amz-Signature"]) || "";
|
|
26
|
-
const signingStream = getEventSigningTransformStream(priorSignature, await this.messageSigner(), this.eventStreamCodec);
|
|
27
|
+
const signingStream = getEventSigningTransformStream(priorSignature, await this.messageSigner(), this.eventStreamCodec, this.systemClockOffsetProvider);
|
|
27
28
|
const signedPayload = payload.pipeThrough(signingStream);
|
|
28
29
|
signedPayload.pipeThrough(placeHolderStream);
|
|
29
30
|
return result;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { fromHex } from "@smithy/util-hex-encoding";
|
|
2
|
-
export const getEventSigningTransformStream = (initialSignature, messageSigner, eventStreamCodec) => {
|
|
2
|
+
export const getEventSigningTransformStream = (initialSignature, messageSigner, eventStreamCodec, systemClockOffsetProvider) => {
|
|
3
3
|
let priorSignature = initialSignature;
|
|
4
4
|
const transformer = {
|
|
5
5
|
start() { },
|
|
6
6
|
async transform(chunk, controller) {
|
|
7
7
|
try {
|
|
8
|
-
const now = new Date();
|
|
8
|
+
const now = new Date(Date.now() + (await systemClockOffsetProvider()));
|
|
9
9
|
const dateHeader = {
|
|
10
10
|
":date": { type: "timestamp", value: now },
|
|
11
11
|
};
|
|
@@ -3,6 +3,7 @@ export interface EventStreamPayloadHandlerOptions {
|
|
|
3
3
|
messageSigner: Provider<MessageSigner>;
|
|
4
4
|
utf8Encoder: Encoder;
|
|
5
5
|
utf8Decoder: Decoder;
|
|
6
|
+
systemClockOffset?: number;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
9
|
* A handler that control the eventstream payload flow:
|
|
@@ -14,6 +15,7 @@ export interface EventStreamPayloadHandlerOptions {
|
|
|
14
15
|
export declare class EventStreamPayloadHandler implements IEventStreamPayloadHandler {
|
|
15
16
|
private readonly messageSigner;
|
|
16
17
|
private readonly eventStreamCodec;
|
|
18
|
+
private readonly systemClockOffsetProvider;
|
|
17
19
|
constructor(options: EventStreamPayloadHandlerOptions);
|
|
18
20
|
handle<T extends MetadataBearer>(next: FinalizeHandler<any, T>, args: FinalizeHandlerArguments<any>, context?: HandlerExecutionContext): Promise<FinalizeHandlerOutput<T>>;
|
|
19
21
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EventStreamCodec } from "@smithy/eventstream-codec";
|
|
2
|
-
import { MessageSigner } from "@smithy/types";
|
|
2
|
+
import { MessageSigner, Provider } from "@smithy/types";
|
|
3
3
|
/**
|
|
4
4
|
* Get a transform stream that signs the eventstream
|
|
5
5
|
* Implementation replicated from @aws-sdk/eventstream-handler-node::EventSigningStream
|
|
6
6
|
* but modified to be compatible with WHATWG stream interface
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
7
9
|
*/
|
|
8
|
-
export declare const getEventSigningTransformStream: (initialSignature: string, messageSigner: MessageSigner, eventStreamCodec: EventStreamCodec) => TransformStream<Uint8Array, Uint8Array>;
|
|
10
|
+
export declare const getEventSigningTransformStream: (initialSignature: string, messageSigner: MessageSigner, eventStreamCodec: EventStreamCodec, systemClockOffsetProvider: Provider<number>) => TransformStream<Uint8Array, Uint8Array>;
|
|
@@ -14,12 +14,14 @@ export interface EventStreamPayloadHandlerOptions {
|
|
|
14
14
|
messageSigner: Provider<MessageSigner>;
|
|
15
15
|
utf8Encoder: Encoder;
|
|
16
16
|
utf8Decoder: Decoder;
|
|
17
|
+
systemClockOffset?: number;
|
|
17
18
|
}
|
|
18
19
|
export declare class EventStreamPayloadHandler
|
|
19
20
|
implements IEventStreamPayloadHandler
|
|
20
21
|
{
|
|
21
22
|
private readonly messageSigner;
|
|
22
23
|
private readonly eventStreamCodec;
|
|
24
|
+
private readonly systemClockOffsetProvider;
|
|
23
25
|
constructor(options: EventStreamPayloadHandlerOptions);
|
|
24
26
|
handle<T extends MetadataBearer>(
|
|
25
27
|
next: FinalizeHandler<any, T>,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { EventStreamCodec } from "@smithy/eventstream-codec";
|
|
2
|
-
import { MessageSigner } from "@smithy/types";
|
|
2
|
+
import { MessageSigner, Provider } from "@smithy/types";
|
|
3
3
|
export declare const getEventSigningTransformStream: (
|
|
4
4
|
initialSignature: string,
|
|
5
5
|
messageSigner: MessageSigner,
|
|
6
|
-
eventStreamCodec: EventStreamCodec
|
|
6
|
+
eventStreamCodec: EventStreamCodec,
|
|
7
|
+
systemClockOffsetProvider: Provider<number>
|
|
7
8
|
) => TransformStream<Uint8Array, Uint8Array>;
|