cloudstructs 0.1.41 → 0.2.2
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/.gitattributes +19 -19
- package/.jsii +2754 -1559
- package/API.md +77 -77
- package/README.md +2 -3
- package/lib/codecommit-mirror/index.d.ts +6 -6
- package/lib/codecommit-mirror/index.js +13 -12
- package/lib/ecs-service-roller/index.d.ts +5 -5
- package/lib/ecs-service-roller/index.js +10 -9
- package/lib/email-receiver/receiver.d.ts +5 -5
- package/lib/email-receiver/receiver.js +15 -14
- package/lib/saml-identity-provider/index.d.ts +18 -18
- package/lib/saml-identity-provider/index.js +16 -15
- package/lib/slack-events/index.d.ts +5 -4
- package/lib/slack-events/index.js +13 -14
- package/lib/slack-textract/index.d.ts +6 -5
- package/lib/slack-textract/index.js +12 -11
- package/lib/state-machine-cr-provider/index.d.ts +2 -1
- package/lib/state-machine-cr-provider/index.js +14 -13
- package/lib/static-website/index.d.ts +6 -6
- package/lib/static-website/index.js +16 -15
- package/lib/url-shortener/index.d.ts +8 -7
- package/lib/url-shortener/index.js +19 -18
- package/node_modules/@slack/logger/node_modules/@types/node/README.md +2 -2
- package/node_modules/@slack/logger/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@slack/logger/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@slack/logger/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@slack/logger/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@slack/logger/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@slack/logger/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@slack/logger/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@slack/logger/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@slack/logger/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@slack/logger/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@slack/logger/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@slack/logger/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@slack/logger/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@slack/logger/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@slack/logger/node_modules/@types/node/package.json +8 -13
- package/node_modules/@slack/logger/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@slack/logger/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@slack/logger/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@slack/logger/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@slack/logger/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@slack/logger/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@slack/logger/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/README.md +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@slack/web-api/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@slack/web-api/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@slack/web-api/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@slack/web-api/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@slack/web-api/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@slack/web-api/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@slack/web-api/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@slack/web-api/node_modules/@types/node/package.json +8 -13
- package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@slack/web-api/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@slack/web-api/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@slack/web-api/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@slack/web-api/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/cacheable-request/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@types/cacheable-request/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@types/cacheable-request/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@types/cacheable-request/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@types/cacheable-request/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +8 -13
- package/node_modules/@types/cacheable-request/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@types/cacheable-request/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@types/cacheable-request/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@types/cacheable-request/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@types/cacheable-request/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/is-stream/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@types/is-stream/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@types/is-stream/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@types/is-stream/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@types/is-stream/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@types/is-stream/node_modules/@types/node/package.json +8 -13
- package/node_modules/@types/is-stream/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@types/is-stream/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@types/is-stream/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@types/is-stream/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@types/is-stream/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/@types/keyv/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/keyv/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@types/keyv/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@types/keyv/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@types/keyv/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@types/keyv/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@types/keyv/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@types/keyv/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@types/keyv/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@types/keyv/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@types/keyv/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@types/keyv/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@types/keyv/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@types/keyv/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@types/keyv/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@types/keyv/node_modules/@types/node/package.json +8 -13
- package/node_modules/@types/keyv/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@types/keyv/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@types/keyv/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@types/keyv/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@types/keyv/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@types/keyv/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@types/keyv/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/@types/responselike/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/responselike/node_modules/@types/node/buffer.d.ts +1 -1
- package/node_modules/@types/responselike/node_modules/@types/node/child_process.d.ts +19 -16
- package/node_modules/@types/responselike/node_modules/@types/node/console.d.ts +5 -0
- package/node_modules/@types/responselike/node_modules/@types/node/crypto.d.ts +51 -3
- package/node_modules/@types/responselike/node_modules/@types/node/dgram.d.ts +8 -8
- package/node_modules/@types/responselike/node_modules/@types/node/diagnostics_channel.d.ts +6 -0
- package/node_modules/@types/responselike/node_modules/@types/node/dns/promises.d.ts +11 -0
- package/node_modules/@types/responselike/node_modules/@types/node/dns.d.ts +11 -0
- package/node_modules/@types/responselike/node_modules/@types/node/fs/promises.d.ts +90 -3
- package/node_modules/@types/responselike/node_modules/@types/node/fs.d.ts +92 -39
- package/node_modules/@types/responselike/node_modules/@types/node/http.d.ts +17 -6
- package/node_modules/@types/responselike/node_modules/@types/node/index.d.ts +2 -3
- package/node_modules/@types/responselike/node_modules/@types/node/inspector.d.ts +7 -0
- package/node_modules/@types/responselike/node_modules/@types/node/net.d.ts +2 -2
- package/node_modules/@types/responselike/node_modules/@types/node/package.json +8 -13
- package/node_modules/@types/responselike/node_modules/@types/node/process.d.ts +5 -1
- package/node_modules/@types/responselike/node_modules/@types/node/readline.d.ts +1 -0
- package/node_modules/@types/responselike/node_modules/@types/node/stream/web.d.ts +385 -0
- package/node_modules/@types/responselike/node_modules/@types/node/stream.d.ts +26 -6
- package/node_modules/@types/responselike/node_modules/@types/node/tty.d.ts +1 -3
- package/node_modules/@types/responselike/node_modules/@types/node/url.d.ts +24 -1
- package/node_modules/@types/responselike/node_modules/@types/node/util.d.ts +31 -0
- package/node_modules/follow-redirects/index.js +45 -14
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/got/dist/source/as-promise/parse-body.d.ts +1 -1
- package/node_modules/got/dist/source/as-promise/types.js +2 -0
- package/node_modules/got/dist/source/core/index.d.ts +1 -1
- package/node_modules/got/dist/source/core/index.js +9 -3
- package/node_modules/got/dist/source/types.d.ts +14 -12
- package/node_modules/got/package.json +2 -2
- package/node_modules/got/readme.md +11 -10
- package/node_modules/keyv/LICENSE +1 -1
- package/node_modules/keyv/README.md +12 -10
- package/node_modules/keyv/package.json +17 -12
- package/node_modules/keyv/src/index.js +14 -16
- package/node_modules/mime-db/HISTORY.md +13 -0
- package/node_modules/mime-db/db.json +54 -0
- package/node_modules/mime-db/package.json +7 -7
- package/node_modules/mime-types/HISTORY.md +13 -3
- package/node_modules/mime-types/package.json +7 -7
- package/package.json +29 -80
|
@@ -1,5 +1,390 @@
|
|
|
1
1
|
declare module 'stream/web' {
|
|
2
2
|
// stub module, pending copy&paste from .d.ts or manual impl
|
|
3
|
+
// copy from lib.dom.d.ts
|
|
4
|
+
|
|
5
|
+
interface ReadableWritablePair<R = any, W = any> {
|
|
6
|
+
readable: ReadableStream<R>;
|
|
7
|
+
/**
|
|
8
|
+
* Provides a convenient, chainable way of piping this readable stream
|
|
9
|
+
* through a transform stream (or any other { writable, readable }
|
|
10
|
+
* pair). It simply pipes the stream into the writable side of the
|
|
11
|
+
* supplied pair, and returns the readable side for further use.
|
|
12
|
+
*
|
|
13
|
+
* Piping a stream will lock it for the duration of the pipe, preventing
|
|
14
|
+
* any other consumer from acquiring a reader.
|
|
15
|
+
*/
|
|
16
|
+
writable: WritableStream<W>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface StreamPipeOptions {
|
|
20
|
+
preventAbort?: boolean;
|
|
21
|
+
preventCancel?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Pipes this readable stream to a given writable stream destination.
|
|
24
|
+
* The way in which the piping process behaves under various error
|
|
25
|
+
* conditions can be customized with a number of passed options. It
|
|
26
|
+
* returns a promise that fulfills when the piping process completes
|
|
27
|
+
* successfully, or rejects if any errors were encountered.
|
|
28
|
+
*
|
|
29
|
+
* Piping a stream will lock it for the duration of the pipe, preventing
|
|
30
|
+
* any other consumer from acquiring a reader.
|
|
31
|
+
*
|
|
32
|
+
* Errors and closures of the source and destination streams propagate
|
|
33
|
+
* as follows:
|
|
34
|
+
*
|
|
35
|
+
* An error in this source readable stream will abort destination,
|
|
36
|
+
* unless preventAbort is truthy. The returned promise will be rejected
|
|
37
|
+
* with the source's error, or with any error that occurs during
|
|
38
|
+
* aborting the destination.
|
|
39
|
+
*
|
|
40
|
+
* An error in destination will cancel this source readable stream,
|
|
41
|
+
* unless preventCancel is truthy. The returned promise will be rejected
|
|
42
|
+
* with the destination's error, or with any error that occurs during
|
|
43
|
+
* canceling the source.
|
|
44
|
+
*
|
|
45
|
+
* When this source readable stream closes, destination will be closed,
|
|
46
|
+
* unless preventClose is truthy. The returned promise will be fulfilled
|
|
47
|
+
* once this process completes, unless an error is encountered while
|
|
48
|
+
* closing the destination, in which case it will be rejected with that
|
|
49
|
+
* error.
|
|
50
|
+
*
|
|
51
|
+
* If destination starts out closed or closing, this source readable
|
|
52
|
+
* stream will be canceled, unless preventCancel is true. The returned
|
|
53
|
+
* promise will be rejected with an error indicating piping to a closed
|
|
54
|
+
* stream failed, or with any error that occurs during canceling the
|
|
55
|
+
* source.
|
|
56
|
+
*
|
|
57
|
+
* The signal option can be set to an AbortSignal to allow aborting an
|
|
58
|
+
* ongoing pipe operation via the corresponding AbortController. In this
|
|
59
|
+
* case, this source readable stream will be canceled, and destination
|
|
60
|
+
* aborted, unless the respective options preventCancel or preventAbort
|
|
61
|
+
* are set.
|
|
62
|
+
*/
|
|
63
|
+
preventClose?: boolean;
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface ReadableStreamGenericReader {
|
|
68
|
+
readonly closed: Promise<undefined>;
|
|
69
|
+
cancel(reason?: any): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface ReadableStreamDefaultReadValueResult<T> {
|
|
73
|
+
done: false;
|
|
74
|
+
value: T;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
interface ReadableStreamDefaultReadDoneResult {
|
|
78
|
+
done: true;
|
|
79
|
+
value?: undefined;
|
|
80
|
+
}
|
|
81
|
+
type ReadableStreamController<T> = ReadableStreamDefaultController<T>;
|
|
82
|
+
type ReadableStreamDefaultReadResult<T> =
|
|
83
|
+
| ReadableStreamDefaultReadValueResult<T>
|
|
84
|
+
| ReadableStreamDefaultReadDoneResult;
|
|
85
|
+
|
|
86
|
+
interface ReadableByteStreamControllerCallback {
|
|
87
|
+
(controller: ReadableByteStreamController): void | PromiseLike<void>;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
interface UnderlyingSinkAbortCallback {
|
|
91
|
+
(reason?: any): void | PromiseLike<void>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface UnderlyingSinkCloseCallback {
|
|
95
|
+
(): void | PromiseLike<void>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
interface UnderlyingSinkStartCallback {
|
|
99
|
+
(controller: WritableStreamDefaultController): any;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface UnderlyingSinkWriteCallback<W> {
|
|
103
|
+
(chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
interface UnderlyingSourceCancelCallback {
|
|
107
|
+
(reason?: any): void | PromiseLike<void>;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
interface UnderlyingSourcePullCallback<R> {
|
|
111
|
+
(controller: ReadableStreamController<R>): void | PromiseLike<void>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
interface UnderlyingSourceStartCallback<R> {
|
|
115
|
+
(controller: ReadableStreamController<R>): any;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
interface TransformerFlushCallback<O> {
|
|
119
|
+
(controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
interface TransformerStartCallback<O> {
|
|
123
|
+
(controller: TransformStreamDefaultController<O>): any;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
interface TransformerTransformCallback<I, O> {
|
|
127
|
+
(chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
interface UnderlyingByteSource {
|
|
131
|
+
autoAllocateChunkSize?: number;
|
|
132
|
+
cancel?: ReadableStreamErrorCallback;
|
|
133
|
+
pull?: ReadableByteStreamControllerCallback;
|
|
134
|
+
start?: ReadableByteStreamControllerCallback;
|
|
135
|
+
type: 'bytes';
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
interface UnderlyingSource<R = any> {
|
|
139
|
+
cancel?: UnderlyingSourceCancelCallback;
|
|
140
|
+
pull?: UnderlyingSourcePullCallback<R>;
|
|
141
|
+
start?: UnderlyingSourceStartCallback<R>;
|
|
142
|
+
type?: undefined;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
interface UnderlyingSink<W = any> {
|
|
146
|
+
abort?: UnderlyingSinkAbortCallback;
|
|
147
|
+
close?: UnderlyingSinkCloseCallback;
|
|
148
|
+
start?: UnderlyingSinkStartCallback;
|
|
149
|
+
type?: undefined;
|
|
150
|
+
write?: UnderlyingSinkWriteCallback<W>;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface ReadableStreamErrorCallback {
|
|
154
|
+
(reason: any): void | PromiseLike<void>;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** This Streams API interface represents a readable stream of byte data. */
|
|
158
|
+
interface ReadableStream<R = any> {
|
|
159
|
+
readonly locked: boolean;
|
|
160
|
+
cancel(reason?: any): Promise<void>;
|
|
161
|
+
getReader(): ReadableStreamDefaultReader<R>;
|
|
162
|
+
pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
|
|
163
|
+
pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;
|
|
164
|
+
tee(): [ReadableStream<R>, ReadableStream<R>];
|
|
165
|
+
[Symbol.asyncIterator](options?: { preventCancel?: boolean }): AsyncIterableIterator<R>;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const ReadableStream: {
|
|
169
|
+
prototype: ReadableStream;
|
|
170
|
+
new (
|
|
171
|
+
underlyingSource: UnderlyingByteSource,
|
|
172
|
+
strategy?: QueuingStrategy<Uint8Array>,
|
|
173
|
+
): ReadableStream<Uint8Array>;
|
|
174
|
+
new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {
|
|
178
|
+
read(): Promise<ReadableStreamDefaultReadResult<R>>;
|
|
179
|
+
releaseLock(): void;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const ReadableStreamDefaultReader: {
|
|
183
|
+
prototype: ReadableStreamDefaultReader;
|
|
184
|
+
new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
const ReadableStreamBYOBReader: any;
|
|
188
|
+
const ReadableStreamBYOBRequest: any;
|
|
189
|
+
|
|
190
|
+
interface ReadableByteStreamController {
|
|
191
|
+
readonly byobRequest: undefined;
|
|
192
|
+
readonly desiredSize: number | null;
|
|
193
|
+
close(): void;
|
|
194
|
+
enqueue(chunk: ArrayBufferView): void;
|
|
195
|
+
error(error?: any): void;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const ReadableByteStreamController: {
|
|
199
|
+
prototype: ReadableByteStreamController;
|
|
200
|
+
new (): ReadableByteStreamController;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
interface ReadableStreamDefaultController<R = any> {
|
|
204
|
+
readonly desiredSize: number | null;
|
|
205
|
+
close(): void;
|
|
206
|
+
enqueue(chunk?: R): void;
|
|
207
|
+
error(e?: any): void;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const ReadableStreamDefaultController: {
|
|
211
|
+
prototype: ReadableStreamDefaultController;
|
|
212
|
+
new (): ReadableStreamDefaultController;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
interface Transformer<I = any, O = any> {
|
|
216
|
+
flush?: TransformerFlushCallback<O>;
|
|
217
|
+
readableType?: undefined;
|
|
218
|
+
start?: TransformerStartCallback<O>;
|
|
219
|
+
transform?: TransformerTransformCallback<I, O>;
|
|
220
|
+
writableType?: undefined;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
interface TransformStream<I = any, O = any> {
|
|
224
|
+
readonly readable: ReadableStream<O>;
|
|
225
|
+
readonly writable: WritableStream<I>;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const TransformStream: {
|
|
229
|
+
prototype: TransformStream;
|
|
230
|
+
new <I = any, O = any>(
|
|
231
|
+
transformer?: Transformer<I, O>,
|
|
232
|
+
writableStrategy?: QueuingStrategy<I>,
|
|
233
|
+
readableStrategy?: QueuingStrategy<O>,
|
|
234
|
+
): TransformStream<I, O>;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
interface TransformStreamDefaultController<O = any> {
|
|
238
|
+
readonly desiredSize: number | null;
|
|
239
|
+
enqueue(chunk?: O): void;
|
|
240
|
+
error(reason?: any): void;
|
|
241
|
+
terminate(): void;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const TransformStreamDefaultController: {
|
|
245
|
+
prototype: TransformStreamDefaultController;
|
|
246
|
+
new (): TransformStreamDefaultController;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* This Streams API interface provides a standard abstraction for writing
|
|
251
|
+
* streaming data to a destination, known as a sink. This object comes with
|
|
252
|
+
* built-in back pressure and queuing.
|
|
253
|
+
*/
|
|
254
|
+
interface WritableStream<W = any> {
|
|
255
|
+
readonly locked: boolean;
|
|
256
|
+
abort(reason?: any): Promise<void>;
|
|
257
|
+
close(): Promise<void>;
|
|
258
|
+
getWriter(): WritableStreamDefaultWriter<W>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const WritableStream: {
|
|
262
|
+
prototype: WritableStream;
|
|
263
|
+
new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* This Streams API interface is the object returned by
|
|
268
|
+
* WritableStream.getWriter() and once created locks the < writer to the
|
|
269
|
+
* WritableStream ensuring that no other streams can write to the underlying
|
|
270
|
+
* sink.
|
|
271
|
+
*/
|
|
272
|
+
interface WritableStreamDefaultWriter<W = any> {
|
|
273
|
+
readonly closed: Promise<undefined>;
|
|
274
|
+
readonly desiredSize: number | null;
|
|
275
|
+
readonly ready: Promise<undefined>;
|
|
276
|
+
abort(reason?: any): Promise<void>;
|
|
277
|
+
close(): Promise<void>;
|
|
278
|
+
releaseLock(): void;
|
|
279
|
+
write(chunk?: W): Promise<void>;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
const WritableStreamDefaultWriter: {
|
|
283
|
+
prototype: WritableStreamDefaultWriter;
|
|
284
|
+
new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* This Streams API interface represents a controller allowing control of a
|
|
289
|
+
* WritableStream's state. When constructing a WritableStream, the
|
|
290
|
+
* underlying sink is given a corresponding WritableStreamDefaultController
|
|
291
|
+
* instance to manipulate.
|
|
292
|
+
*/
|
|
293
|
+
interface WritableStreamDefaultController {
|
|
294
|
+
error(e?: any): void;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const WritableStreamDefaultController: {
|
|
298
|
+
prototype: WritableStreamDefaultController;
|
|
299
|
+
new (): WritableStreamDefaultController;
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
interface QueuingStrategy<T = any> {
|
|
303
|
+
highWaterMark?: number;
|
|
304
|
+
size?: QueuingStrategySize<T>;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
interface QueuingStrategySize<T = any> {
|
|
308
|
+
(chunk?: T): number;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
interface QueuingStrategyInit {
|
|
312
|
+
/**
|
|
313
|
+
* Creates a new ByteLengthQueuingStrategy with the provided high water
|
|
314
|
+
* mark.
|
|
315
|
+
*
|
|
316
|
+
* Note that the provided high water mark will not be validated ahead of
|
|
317
|
+
* time. Instead, if it is negative, NaN, or not a number, the resulting
|
|
318
|
+
* ByteLengthQueuingStrategy will cause the corresponding stream
|
|
319
|
+
* constructor to throw.
|
|
320
|
+
*/
|
|
321
|
+
highWaterMark: number;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* This Streams API interface provides a built-in byte length queuing
|
|
326
|
+
* strategy that can be used when constructing streams.
|
|
327
|
+
*/
|
|
328
|
+
interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
|
|
329
|
+
readonly highWaterMark: number;
|
|
330
|
+
readonly size: QueuingStrategySize<ArrayBufferView>;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
const ByteLengthQueuingStrategy: {
|
|
334
|
+
prototype: ByteLengthQueuingStrategy;
|
|
335
|
+
new (init: QueuingStrategyInit): ByteLengthQueuingStrategy;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* This Streams API interface provides a built-in byte length queuing
|
|
340
|
+
* strategy that can be used when constructing streams.
|
|
341
|
+
*/
|
|
342
|
+
interface CountQueuingStrategy extends QueuingStrategy {
|
|
343
|
+
readonly highWaterMark: number;
|
|
344
|
+
readonly size: QueuingStrategySize;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
const CountQueuingStrategy: {
|
|
348
|
+
prototype: CountQueuingStrategy;
|
|
349
|
+
new (init: QueuingStrategyInit): CountQueuingStrategy;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
interface TextEncoderStream {
|
|
353
|
+
/** Returns "utf-8". */
|
|
354
|
+
readonly encoding: 'utf-8';
|
|
355
|
+
readonly readable: ReadableStream<Uint8Array>;
|
|
356
|
+
readonly writable: WritableStream<string>;
|
|
357
|
+
readonly [Symbol.toStringTag]: string;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const TextEncoderStream: {
|
|
361
|
+
prototype: TextEncoderStream;
|
|
362
|
+
new (): TextEncoderStream;
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
interface TextDecoderOptions {
|
|
366
|
+
fatal?: boolean;
|
|
367
|
+
ignoreBOM?: boolean;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
type BufferSource = ArrayBufferView | ArrayBuffer;
|
|
371
|
+
|
|
372
|
+
interface TextDecoderStream {
|
|
373
|
+
/** Returns encoding's name, lower cased. */
|
|
374
|
+
readonly encoding: string;
|
|
375
|
+
/** Returns `true` if error mode is "fatal", and `false` otherwise. */
|
|
376
|
+
readonly fatal: boolean;
|
|
377
|
+
/** Returns `true` if ignore BOM flag is set, and `false` otherwise. */
|
|
378
|
+
readonly ignoreBOM: boolean;
|
|
379
|
+
readonly readable: ReadableStream<string>;
|
|
380
|
+
readonly writable: WritableStream<BufferSource>;
|
|
381
|
+
readonly [Symbol.toStringTag]: string;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
const TextDecoderStream: {
|
|
385
|
+
prototype: TextDecoderStream;
|
|
386
|
+
new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
|
|
387
|
+
};
|
|
3
388
|
}
|
|
4
389
|
declare module 'node:stream/web' {
|
|
5
390
|
export * from 'stream/web';
|
|
@@ -1083,16 +1083,14 @@ declare module 'stream' {
|
|
|
1083
1083
|
*
|
|
1084
1084
|
* async function run() {
|
|
1085
1085
|
* const ac = new AbortController();
|
|
1086
|
-
* const
|
|
1087
|
-
* signal: ac.signal,
|
|
1088
|
-
* };
|
|
1086
|
+
* const signal = ac.signal;
|
|
1089
1087
|
*
|
|
1090
1088
|
* setTimeout(() => ac.abort(), 1);
|
|
1091
1089
|
* await pipeline(
|
|
1092
1090
|
* fs.createReadStream('archive.tar'),
|
|
1093
1091
|
* zlib.createGzip(),
|
|
1094
1092
|
* fs.createWriteStream('archive.tar.gz'),
|
|
1095
|
-
*
|
|
1093
|
+
* { signal },
|
|
1096
1094
|
* );
|
|
1097
1095
|
* }
|
|
1098
1096
|
*
|
|
@@ -1108,10 +1106,10 @@ declare module 'stream' {
|
|
|
1108
1106
|
* async function run() {
|
|
1109
1107
|
* await pipeline(
|
|
1110
1108
|
* fs.createReadStream('lowercase.txt'),
|
|
1111
|
-
* async function* (source) {
|
|
1109
|
+
* async function* (source, signal) {
|
|
1112
1110
|
* source.setEncoding('utf8'); // Work with strings rather than `Buffer`s.
|
|
1113
1111
|
* for await (const chunk of source) {
|
|
1114
|
-
* yield chunk
|
|
1112
|
+
* yield await processChunk(chunk, { signal });
|
|
1115
1113
|
* }
|
|
1116
1114
|
* },
|
|
1117
1115
|
* fs.createWriteStream('uppercase.txt')
|
|
@@ -1122,6 +1120,28 @@ declare module 'stream' {
|
|
|
1122
1120
|
* run().catch(console.error);
|
|
1123
1121
|
* ```
|
|
1124
1122
|
*
|
|
1123
|
+
* Remember to handle the `signal` argument passed into the async generator.
|
|
1124
|
+
* Especially in the case where the async generator is the source for the
|
|
1125
|
+
* pipeline (i.e. first argument) or the pipeline will never complete.
|
|
1126
|
+
*
|
|
1127
|
+
* ```js
|
|
1128
|
+
* const { pipeline } = require('stream/promises');
|
|
1129
|
+
* const fs = require('fs');
|
|
1130
|
+
*
|
|
1131
|
+
* async function run() {
|
|
1132
|
+
* await pipeline(
|
|
1133
|
+
* async function * (signal) {
|
|
1134
|
+
* await someLongRunningfn({ signal });
|
|
1135
|
+
* yield 'asd';
|
|
1136
|
+
* },
|
|
1137
|
+
* fs.createWriteStream('uppercase.txt')
|
|
1138
|
+
* );
|
|
1139
|
+
* console.log('Pipeline succeeded.');
|
|
1140
|
+
* }
|
|
1141
|
+
*
|
|
1142
|
+
* run().catch(console.error);
|
|
1143
|
+
* ```
|
|
1144
|
+
*
|
|
1125
1145
|
* `stream.pipeline()` will call `stream.destroy(err)` on all streams except:
|
|
1126
1146
|
*
|
|
1127
1147
|
* * `Readable` streams which have emitted `'end'` or `'close'`.
|
|
@@ -129,9 +129,7 @@ declare module 'tty' {
|
|
|
129
129
|
* * `1` for 2,
|
|
130
130
|
* * `4` for 16,
|
|
131
131
|
* * `8` for 256,
|
|
132
|
-
* * `24` for 16,777,216
|
|
133
|
-
*
|
|
134
|
-
* colors supported.
|
|
132
|
+
* * `24` for 16,777,216 colors supported.
|
|
135
133
|
*
|
|
136
134
|
* Use this to determine what colors the terminal supports. Due to the nature of
|
|
137
135
|
* colors in terminals it is possible to either have false positives or false
|
|
@@ -71,6 +71,30 @@ declare module 'url' {
|
|
|
71
71
|
function parse(urlString: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery;
|
|
72
72
|
function parse(urlString: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery;
|
|
73
73
|
function parse(urlString: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url;
|
|
74
|
+
/**
|
|
75
|
+
* The URL object has both a `toString()` method and `href` property that return string serializations of the URL.
|
|
76
|
+
* These are not, however, customizable in any way. The `url.format(URL[, options])` method allows for basic
|
|
77
|
+
* customization of the output.
|
|
78
|
+
* Returns a customizable serialization of a URL `String` representation of a `WHATWG URL` object.
|
|
79
|
+
*
|
|
80
|
+
* ```js
|
|
81
|
+
* import url from 'url';
|
|
82
|
+
* const myURL = new URL('https://a:b@測試?abc#foo');
|
|
83
|
+
*
|
|
84
|
+
* console.log(myURL.href);
|
|
85
|
+
* // Prints https://a:b@xn--g6w251d/?abc#foo
|
|
86
|
+
*
|
|
87
|
+
* console.log(myURL.toString());
|
|
88
|
+
* // Prints https://a:b@xn--g6w251d/?abc#foo
|
|
89
|
+
*
|
|
90
|
+
* console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));
|
|
91
|
+
* // Prints 'https://測試/?abc'
|
|
92
|
+
* ```
|
|
93
|
+
* @since v7.6.0
|
|
94
|
+
* @param urlObject A `WHATWG URL` object
|
|
95
|
+
* @param options
|
|
96
|
+
*/
|
|
97
|
+
function format(urlObject: URL, options?: URLFormatOptions): string;
|
|
74
98
|
/**
|
|
75
99
|
* The `url.format()` method returns a formatted URL string derived from`urlObject`.
|
|
76
100
|
*
|
|
@@ -134,7 +158,6 @@ declare module 'url' {
|
|
|
134
158
|
* @deprecated Legacy: Use the WHATWG URL API instead.
|
|
135
159
|
* @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`.
|
|
136
160
|
*/
|
|
137
|
-
function format(urlObject: URL, options?: URLFormatOptions): string;
|
|
138
161
|
function format(urlObject: UrlObject | string): string;
|
|
139
162
|
/**
|
|
140
163
|
* The `url.resolve()` method resolves a target URL relative to a base URL in a
|
|
@@ -113,6 +113,20 @@ declare module 'util' {
|
|
|
113
113
|
* @since v10.0.0
|
|
114
114
|
*/
|
|
115
115
|
export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the string name for a numeric error code that comes from a Node.js API.
|
|
118
|
+
* The mapping between error codes and error names is platform-dependent.
|
|
119
|
+
* See `Common System Errors` for the names of common errors.
|
|
120
|
+
*
|
|
121
|
+
* ```js
|
|
122
|
+
* fs.access('file/that/does/not/exist', (err) => {
|
|
123
|
+
* const name = util.getSystemErrorName(err.errno);
|
|
124
|
+
* console.error(name); // ENOENT
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
* @since v9.7.0
|
|
128
|
+
*/
|
|
129
|
+
export function getSystemErrorName(err: number): string;
|
|
116
130
|
/**
|
|
117
131
|
* Returns a Map of all system error codes available from the Node.js API.
|
|
118
132
|
* The mapping between error codes and error names is platform-dependent.
|
|
@@ -314,6 +328,9 @@ declare module 'util' {
|
|
|
314
328
|
* Allows changing inspect settings from the repl.
|
|
315
329
|
*/
|
|
316
330
|
let replDefaults: InspectOptions;
|
|
331
|
+
/**
|
|
332
|
+
* That can be used to declare custom inspect functions.
|
|
333
|
+
*/
|
|
317
334
|
const custom: unique symbol;
|
|
318
335
|
}
|
|
319
336
|
/**
|
|
@@ -520,6 +537,7 @@ declare module 'util' {
|
|
|
520
537
|
* @return The logging function
|
|
521
538
|
*/
|
|
522
539
|
export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger;
|
|
540
|
+
export const debug: typeof debuglog;
|
|
523
541
|
/**
|
|
524
542
|
* Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`.
|
|
525
543
|
*
|
|
@@ -789,6 +807,16 @@ declare module 'util' {
|
|
|
789
807
|
* @since v9.0.0
|
|
790
808
|
*/
|
|
791
809
|
export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean;
|
|
810
|
+
/**
|
|
811
|
+
* Returns `str` with any ANSI escape codes removed.
|
|
812
|
+
*
|
|
813
|
+
* ```js
|
|
814
|
+
* console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
|
|
815
|
+
* // Prints "value"
|
|
816
|
+
* ```
|
|
817
|
+
* @since v16.11.0
|
|
818
|
+
*/
|
|
819
|
+
export function stripVTControlCharacters(str: string): string;
|
|
792
820
|
/**
|
|
793
821
|
* Takes an `async` function (or a function that returns a `Promise`) and returns a
|
|
794
822
|
* function following the error-first callback style, i.e. taking
|
|
@@ -961,6 +989,9 @@ declare module 'util' {
|
|
|
961
989
|
): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>;
|
|
962
990
|
export function promisify(fn: Function): Function;
|
|
963
991
|
export namespace promisify {
|
|
992
|
+
/**
|
|
993
|
+
* That can be used to declare custom promisified variants of functions.
|
|
994
|
+
*/
|
|
964
995
|
const custom: unique symbol;
|
|
965
996
|
}
|
|
966
997
|
/**
|
|
@@ -18,7 +18,7 @@ events.forEach(function (event) {
|
|
|
18
18
|
// Error types with codes
|
|
19
19
|
var RedirectionError = createErrorType(
|
|
20
20
|
"ERR_FR_REDIRECTION_FAILURE",
|
|
21
|
-
""
|
|
21
|
+
"Redirected request failed"
|
|
22
22
|
);
|
|
23
23
|
var TooManyRedirectsError = createErrorType(
|
|
24
24
|
"ERR_FR_TOO_MANY_REDIRECTS",
|
|
@@ -169,10 +169,16 @@ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
|
|
|
169
169
|
|
|
170
170
|
// Stops a timeout from triggering
|
|
171
171
|
function clearTimer() {
|
|
172
|
+
// Clear the timeout
|
|
172
173
|
if (self._timeout) {
|
|
173
174
|
clearTimeout(self._timeout);
|
|
174
175
|
self._timeout = null;
|
|
175
176
|
}
|
|
177
|
+
|
|
178
|
+
// Clean up all attached listeners
|
|
179
|
+
self.removeListener("abort", clearTimer);
|
|
180
|
+
self.removeListener("error", clearTimer);
|
|
181
|
+
self.removeListener("response", clearTimer);
|
|
176
182
|
if (callback) {
|
|
177
183
|
self.removeListener("timeout", callback);
|
|
178
184
|
}
|
|
@@ -196,8 +202,9 @@ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
|
|
|
196
202
|
|
|
197
203
|
// Clean up on events
|
|
198
204
|
this.on("socket", destroyOnTimeout);
|
|
199
|
-
this.
|
|
200
|
-
this.
|
|
205
|
+
this.on("abort", clearTimer);
|
|
206
|
+
this.on("error", clearTimer);
|
|
207
|
+
this.on("response", clearTimer);
|
|
201
208
|
|
|
202
209
|
return this;
|
|
203
210
|
};
|
|
@@ -361,18 +368,32 @@ RedirectableRequest.prototype._processResponse = function (response) {
|
|
|
361
368
|
}
|
|
362
369
|
|
|
363
370
|
// Drop the Host header, as the redirect might lead to a different host
|
|
364
|
-
var
|
|
365
|
-
|
|
371
|
+
var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
|
|
372
|
+
|
|
373
|
+
// If the redirect is relative, carry over the host of the last request
|
|
374
|
+
var currentUrlParts = url.parse(this._currentUrl);
|
|
375
|
+
var currentHost = currentHostHeader || currentUrlParts.host;
|
|
376
|
+
var currentUrl = /^\w+:/.test(location) ? this._currentUrl :
|
|
377
|
+
url.format(Object.assign(currentUrlParts, { host: currentHost }));
|
|
378
|
+
|
|
379
|
+
// Determine the URL of the redirection
|
|
380
|
+
var redirectUrl;
|
|
381
|
+
try {
|
|
382
|
+
redirectUrl = url.resolve(currentUrl, location);
|
|
383
|
+
}
|
|
384
|
+
catch (cause) {
|
|
385
|
+
this.emit("error", new RedirectionError(cause));
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
366
388
|
|
|
367
389
|
// Create the redirected request
|
|
368
|
-
var redirectUrl = url.resolve(this._currentUrl, location);
|
|
369
390
|
debug("redirecting to", redirectUrl);
|
|
370
391
|
this._isRedirect = true;
|
|
371
392
|
var redirectUrlParts = url.parse(redirectUrl);
|
|
372
393
|
Object.assign(this._options, redirectUrlParts);
|
|
373
394
|
|
|
374
|
-
// Drop the Authorization header if redirecting to another
|
|
375
|
-
if (redirectUrlParts.
|
|
395
|
+
// Drop the Authorization header if redirecting to another domain
|
|
396
|
+
if (!(redirectUrlParts.host === currentHost || isSubdomainOf(redirectUrlParts.host, currentHost))) {
|
|
376
397
|
removeMatchingHeaders(/^authorization$/i, this._options.headers);
|
|
377
398
|
}
|
|
378
399
|
|
|
@@ -394,9 +415,7 @@ RedirectableRequest.prototype._processResponse = function (response) {
|
|
|
394
415
|
this._performRequest();
|
|
395
416
|
}
|
|
396
417
|
catch (cause) {
|
|
397
|
-
|
|
398
|
-
error.cause = cause;
|
|
399
|
-
this.emit("error", error);
|
|
418
|
+
this.emit("error", new RedirectionError(cause));
|
|
400
419
|
}
|
|
401
420
|
}
|
|
402
421
|
else {
|
|
@@ -510,13 +529,20 @@ function removeMatchingHeaders(regex, headers) {
|
|
|
510
529
|
delete headers[header];
|
|
511
530
|
}
|
|
512
531
|
}
|
|
513
|
-
return lastValue
|
|
532
|
+
return (lastValue === null || typeof lastValue === "undefined") ?
|
|
533
|
+
undefined : String(lastValue).trim();
|
|
514
534
|
}
|
|
515
535
|
|
|
516
536
|
function createErrorType(code, defaultMessage) {
|
|
517
|
-
function CustomError(
|
|
537
|
+
function CustomError(cause) {
|
|
518
538
|
Error.captureStackTrace(this, this.constructor);
|
|
519
|
-
|
|
539
|
+
if (!cause) {
|
|
540
|
+
this.message = defaultMessage;
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
this.message = defaultMessage + ": " + cause.message;
|
|
544
|
+
this.cause = cause;
|
|
545
|
+
}
|
|
520
546
|
}
|
|
521
547
|
CustomError.prototype = new Error();
|
|
522
548
|
CustomError.prototype.constructor = CustomError;
|
|
@@ -533,6 +559,11 @@ function abortRequest(request) {
|
|
|
533
559
|
request.abort();
|
|
534
560
|
}
|
|
535
561
|
|
|
562
|
+
function isSubdomainOf(subdomain, domain) {
|
|
563
|
+
const dot = subdomain.length - domain.length - 1;
|
|
564
|
+
return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
|
|
565
|
+
}
|
|
566
|
+
|
|
536
567
|
// Exports
|
|
537
568
|
module.exports = wrap({ http: http, https: https });
|
|
538
569
|
module.exports.wrap = wrap;
|