@outfoxx/sunday 2.0.0-beta.18 → 2.0.0-beta.19
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/README.md +191 -30
- package/build/client-settings.d.ts +6 -7
- package/build/client-settings.js +58 -28
- package/build/client-settings.js.map +1 -1
- package/build/event-parser.d.ts +21 -8
- package/build/event-parser.js +93 -121
- package/build/event-parser.js.map +1 -1
- package/build/fetch-copy.d.ts +15 -0
- package/build/fetch-copy.js +70 -0
- package/build/fetch-copy.js.map +1 -0
- package/build/fetch-event-source.d.ts +6 -5
- package/build/fetch-event-source.js +168 -137
- package/build/fetch-event-source.js.map +1 -1
- package/build/fetch-oauth-token-provider.js +61 -19
- package/build/fetch-oauth-token-provider.js.map +1 -1
- package/build/fetch-transport.d.ts +14 -6
- package/build/fetch-transport.js +126 -168
- package/build/fetch-transport.js.map +1 -1
- package/build/fetch.js +5 -0
- package/build/fetch.js.map +1 -1
- package/build/index.d.ts +7 -2
- package/build/index.js +6 -2
- package/build/index.js.map +1 -1
- package/build/request-adapter.d.ts +8 -0
- package/build/{token-manager-factory.js → request-adapter.js} +1 -1
- package/build/request-adapter.js.map +1 -0
- package/build/request-adapters.d.ts +25 -8
- package/build/request-adapters.js +126 -14
- package/build/request-adapters.js.map +1 -1
- package/build/request-body.d.ts +24 -0
- package/build/request-body.js +104 -0
- package/build/request-body.js.map +1 -0
- package/build/request-cancellation-error.d.ts +13 -0
- package/build/request-cancellation-error.js +43 -0
- package/build/request-cancellation-error.js.map +1 -0
- package/build/request-execution.d.ts +18 -0
- package/build/request-execution.js +108 -0
- package/build/request-execution.js.map +1 -0
- package/build/request-security.d.ts +9 -3
- package/build/request-security.js +101 -36
- package/build/request-security.js.map +1 -1
- package/build/response-adapter.d.ts +10 -0
- package/build/response-adapter.js +15 -0
- package/build/response-adapter.js.map +1 -0
- package/build/response-adapters.d.ts +13 -0
- package/build/response-adapters.js +75 -0
- package/build/response-adapters.js.map +1 -0
- package/build/token-manager.d.ts +13 -4
- package/build/token-manager.js +110 -33
- package/build/token-manager.js.map +1 -1
- package/build/token-provider.d.ts +8 -1
- package/build/token-provider.js +71 -0
- package/build/token-provider.js.map +1 -1
- package/build/transport.d.ts +3 -3
- package/build/util/abort.d.ts +3 -0
- package/build/util/abort.js +42 -0
- package/build/util/abort.js.map +1 -0
- package/build/util/native-fetch.d.ts +2 -0
- package/build/util/native-fetch.js +39 -0
- package/build/util/native-fetch.js.map +1 -0
- package/build/util/owned-body.d.ts +12 -0
- package/build/util/owned-body.js +243 -0
- package/build/util/owned-body.js.map +1 -0
- package/package.json +9 -6
- package/build/token-manager-factory.d.ts +0 -9
- package/build/token-manager-factory.js.map +0 -1
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
import * as oauth from 'oauth4webapi';
|
|
15
|
+
import { discardBody } from './util/abort.js';
|
|
16
|
+
import { isRequestStopped } from './request-cancellation-error.js';
|
|
15
17
|
import { AuthorizationRequiredError, TokenProviderError, } from './token-provider.js';
|
|
16
|
-
import { DiscoveryMetadata, TokenSuccessResponse, TokenErrorResponse, endpoint } from './oauth-wire.js';
|
|
18
|
+
import { DiscoveryMetadata, TokenSuccessResponse, TokenErrorResponse, endpoint, } from './oauth-wire.js';
|
|
17
19
|
/** Client-credentials, application-authorized PKCE, and refresh exchange without cookies or automatic redirects. */
|
|
18
20
|
export class FetchOAuthTokenProvider {
|
|
19
21
|
identity;
|
|
@@ -28,17 +30,26 @@ export class FetchOAuthTokenProvider {
|
|
|
28
30
|
throw new TypeError('Unsupported OAuth client authentication; use an application TokenProvider');
|
|
29
31
|
if (!options.identity.trim() || !options.clientId.trim())
|
|
30
32
|
throw new TypeError('OAuth provider and client identities must not be blank');
|
|
31
|
-
if ((this.authentication === 'none') !==
|
|
33
|
+
if ((this.authentication === 'none') !==
|
|
34
|
+
(options.clientSecret === undefined) ||
|
|
35
|
+
options.clientSecret === '') {
|
|
32
36
|
throw new TypeError('Client secrets require an explicit OAuth client authentication method');
|
|
33
37
|
}
|
|
34
38
|
this.identity = options.identity;
|
|
35
|
-
this.options = Object.freeze({
|
|
39
|
+
this.options = Object.freeze({
|
|
40
|
+
...options,
|
|
41
|
+
endpoints: options.endpoints && Object.freeze({ ...options.endpoints }),
|
|
42
|
+
});
|
|
36
43
|
this.fetch = options.fetch ?? globalThis.fetch;
|
|
37
44
|
this.now = options.now ?? Date.now;
|
|
38
45
|
}
|
|
39
46
|
/** Selects the application client and fresh session without changing the generated profile. */
|
|
40
47
|
configure(_binding) {
|
|
41
|
-
return {
|
|
48
|
+
return {
|
|
49
|
+
clientIdentity: this.options.clientId,
|
|
50
|
+
grantIdentity: this.options.grantIdentity,
|
|
51
|
+
endpoints: this.options.endpoints,
|
|
52
|
+
};
|
|
42
53
|
}
|
|
43
54
|
/** Acquires a client token or exchanges one application-authorized PKCE grant. */
|
|
44
55
|
async acquire(request, signal) {
|
|
@@ -54,14 +65,21 @@ export class FetchOAuthTokenProvider {
|
|
|
54
65
|
if (!this.options.authorization || this.consumedCodes.size >= 1024)
|
|
55
66
|
throw new AuthorizationRequiredError();
|
|
56
67
|
const grant = await this.options.authorization(request, signal);
|
|
57
|
-
if (!grant.code ||
|
|
68
|
+
if (!grant.code ||
|
|
69
|
+
!grant.redirectUri ||
|
|
70
|
+
!/^[A-Za-z0-9._~-]{43,128}$/.test(grant.codeVerifier))
|
|
58
71
|
throw new AuthorizationRequiredError();
|
|
59
72
|
const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', new TextEncoder().encode(grant.code)));
|
|
60
|
-
const codeKey = Array.from(digest, byte => byte.toString(16).padStart(2, '0')).join('');
|
|
73
|
+
const codeKey = Array.from(digest, (byte) => byte.toString(16).padStart(2, '0')).join('');
|
|
61
74
|
if (this.consumedCodes.size >= 1024 || this.consumedCodes.has(codeKey))
|
|
62
75
|
throw new AuthorizationRequiredError();
|
|
63
76
|
this.consumedCodes.add(codeKey);
|
|
64
|
-
form = new URLSearchParams({
|
|
77
|
+
form = new URLSearchParams({
|
|
78
|
+
grant_type: 'authorization_code',
|
|
79
|
+
code: grant.code,
|
|
80
|
+
redirect_uri: grant.redirectUri,
|
|
81
|
+
code_verifier: grant.codeVerifier,
|
|
82
|
+
});
|
|
65
83
|
}
|
|
66
84
|
else
|
|
67
85
|
throw new TokenProviderError();
|
|
@@ -69,7 +87,10 @@ export class FetchOAuthTokenProvider {
|
|
|
69
87
|
}
|
|
70
88
|
catch (error) {
|
|
71
89
|
signal.throwIfAborted();
|
|
72
|
-
if (error
|
|
90
|
+
if (isRequestStopped(error))
|
|
91
|
+
throw error;
|
|
92
|
+
if (error instanceof AuthorizationRequiredError ||
|
|
93
|
+
error instanceof TokenProviderError)
|
|
73
94
|
throw error;
|
|
74
95
|
throw new TokenProviderError();
|
|
75
96
|
}
|
|
@@ -78,11 +99,17 @@ export class FetchOAuthTokenProvider {
|
|
|
78
99
|
async refresh(request, refreshToken, signal) {
|
|
79
100
|
try {
|
|
80
101
|
request = await this.resolveEndpoints(request, signal);
|
|
81
|
-
return await this.exchange(request, request.refreshUrl ?? request.tokenUrl, new URLSearchParams({
|
|
102
|
+
return await this.exchange(request, request.refreshUrl ?? request.tokenUrl, new URLSearchParams({
|
|
103
|
+
grant_type: 'refresh_token',
|
|
104
|
+
refresh_token: refreshToken,
|
|
105
|
+
}), signal);
|
|
82
106
|
}
|
|
83
107
|
catch (error) {
|
|
84
108
|
signal.throwIfAborted();
|
|
85
|
-
if (error
|
|
109
|
+
if (isRequestStopped(error))
|
|
110
|
+
throw error;
|
|
111
|
+
if (error instanceof AuthorizationRequiredError ||
|
|
112
|
+
error instanceof TokenProviderError)
|
|
86
113
|
throw error;
|
|
87
114
|
throw new TokenProviderError();
|
|
88
115
|
}
|
|
@@ -93,15 +120,22 @@ export class FetchOAuthTokenProvider {
|
|
|
93
120
|
if (!this.options.issuer)
|
|
94
121
|
throw new TokenProviderError();
|
|
95
122
|
const response = await this.fetchResponse(endpoint(request.discoveryUrl), {
|
|
96
|
-
headers: { Accept: 'application/json' },
|
|
123
|
+
headers: { Accept: 'application/json' },
|
|
124
|
+
credentials: 'omit',
|
|
125
|
+
redirect: 'manual',
|
|
126
|
+
signal,
|
|
97
127
|
});
|
|
98
|
-
if (response.status !== 200)
|
|
99
|
-
|
|
128
|
+
if (response.status !== 200) {
|
|
129
|
+
const error = new TokenProviderError();
|
|
130
|
+
discardBody(response, error);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
100
133
|
const metadata = DiscoveryMetadata.parse(await response.text());
|
|
101
134
|
if (metadata.issuer !== this.options.issuer)
|
|
102
135
|
throw new TokenProviderError();
|
|
103
136
|
const publicCode = this.authentication === 'none' && request.flow === 'authorizationCode';
|
|
104
|
-
if (!publicCode &&
|
|
137
|
+
if (!publicCode &&
|
|
138
|
+
!(metadata.methods ?? ['client_secret_basic']).includes(this.authentication))
|
|
105
139
|
throw new TokenProviderError();
|
|
106
140
|
const tokenUrl = request.tokenUrl ?? metadata.tokenUrl;
|
|
107
141
|
const authorizationUrl = request.authorizationUrl ?? metadata.authorizationUrl;
|
|
@@ -119,13 +153,18 @@ export class FetchOAuthTokenProvider {
|
|
|
119
153
|
try {
|
|
120
154
|
response = await this.fetch(url, init);
|
|
121
155
|
}
|
|
122
|
-
catch {
|
|
156
|
+
catch (error) {
|
|
123
157
|
init.signal?.throwIfAborted();
|
|
158
|
+
if (isRequestStopped(error))
|
|
159
|
+
throw error;
|
|
124
160
|
throw new TokenProviderError('temporary');
|
|
125
161
|
}
|
|
126
|
-
if (response.status === 408 ||
|
|
127
|
-
|
|
128
|
-
|
|
162
|
+
if (response.status === 408 ||
|
|
163
|
+
response.status === 429 ||
|
|
164
|
+
(response.status >= 500 && response.status <= 599)) {
|
|
165
|
+
const error = new TokenProviderError('temporary');
|
|
166
|
+
discardBody(response, error);
|
|
167
|
+
throw error;
|
|
129
168
|
}
|
|
130
169
|
return response;
|
|
131
170
|
}
|
|
@@ -150,7 +189,10 @@ export class FetchOAuthTokenProvider {
|
|
|
150
189
|
// restricted HTTP to loopback. This is required for the supported local-provider policy.
|
|
151
190
|
[oauth.allowInsecureRequests]: new URL(url).protocol === 'http:',
|
|
152
191
|
[oauth.customFetch]: (input, init) => this.fetchResponse(String(input), {
|
|
153
|
-
...init,
|
|
192
|
+
...init,
|
|
193
|
+
credentials: 'omit',
|
|
194
|
+
redirect: 'manual',
|
|
195
|
+
signal,
|
|
154
196
|
}),
|
|
155
197
|
});
|
|
156
198
|
const body = await response.text();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-oauth-token-provider.js","sourceRoot":"","sources":["../src/fetch-oauth-token-provider.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-oauth-token-provider.js","sourceRoot":"","sources":["../src/fetch-oauth-token-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TokenProvider } from './token-provider.js';
|
|
2
|
+
import { ResponseAdapter } from './response-adapter.js';
|
|
2
3
|
import { SchemaLike } from './schema-runtime.js';
|
|
3
4
|
import { Logger } from './logger.js';
|
|
4
5
|
import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder.js';
|
|
@@ -11,26 +12,33 @@ import { URLTemplate } from './url-template.js';
|
|
|
11
12
|
import { ClientSettings } from './client-settings.js';
|
|
12
13
|
export declare class FetchTransport implements Transport {
|
|
13
14
|
baseUrl: URLTemplate;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
private readonly execution;
|
|
16
|
+
private readonly maxBufferedRequestBytes?;
|
|
17
|
+
readonly tokenProviders: Readonly<Record<string, TokenProvider>>;
|
|
17
18
|
mediaTypeEncoders: MediaTypeEncoders;
|
|
18
19
|
mediaTypeDecoders: MediaTypeDecoders;
|
|
19
20
|
problemTypes: Map<string, SchemaLike<Problem>>;
|
|
20
21
|
logger?: Logger;
|
|
21
22
|
constructor(baseUrl: string | URLTemplate, options?: {
|
|
23
|
+
/** @deprecated Use requestAdapter. The adapt method now receives only the native request. */
|
|
22
24
|
adapter?: RequestAdapter;
|
|
23
|
-
|
|
25
|
+
requestAdapter?: RequestAdapter;
|
|
26
|
+
responseAdapter?: ResponseAdapter;
|
|
27
|
+
tokenProviders?: Readonly<Record<string, TokenProvider>>;
|
|
24
28
|
mediaTypeEncoders?: MediaTypeEncoders;
|
|
25
29
|
mediaTypeDecoders?: MediaTypeDecoders;
|
|
26
30
|
logger?: Logger;
|
|
31
|
+
/** Upload fallback buffer limit in bytes; defaults to 16 MiB. */
|
|
32
|
+
maxBufferedRequestBytes?: number;
|
|
27
33
|
});
|
|
28
34
|
/** Builds a transport from generated settings while retaining application transport options. */
|
|
29
35
|
static fromSettings(settings: ClientSettings, options?: ConstructorParameters<typeof FetchTransport>[1]): FetchTransport;
|
|
30
36
|
registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
|
|
37
|
+
/** Materializes an optionally authorized native request; execution belongs to its consumer. */
|
|
31
38
|
transportRequest(requestSpec: RequestSpec<unknown>): Promise<Request>;
|
|
39
|
+
private prepareRequest;
|
|
32
40
|
transportResponse(request: Request | RequestSpec<unknown>, dataExpected?: boolean): Promise<Response>;
|
|
33
|
-
private
|
|
41
|
+
private execute;
|
|
34
42
|
response<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<OperationResponse<R>>;
|
|
35
43
|
response<B>(requestSpec: RequestSpec<B>): Promise<OperationResponse<void>>;
|
|
36
44
|
result<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<R>;
|