@outfoxx/sunday 1.0.8 → 1.1.0-alpha.10
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 +35 -2
- package/dist/any-type.d.ts +2 -0
- package/dist/class-type.d.ts +2 -2
- package/dist/date-time-types.d.ts +2 -7
- package/dist/date-time-types.js +2 -4
- package/dist/date-time-types.js.map +1 -1
- package/dist/event-parser.d.ts +17 -0
- package/dist/event-parser.js +140 -0
- package/dist/event-parser.js.map +1 -0
- package/dist/fetch-event-source.d.ts +12 -10
- package/dist/fetch-event-source.js +141 -138
- package/dist/fetch-event-source.js.map +1 -1
- package/dist/fetch-request-factory.d.ts +10 -5
- package/dist/fetch-request-factory.js +87 -71
- package/dist/fetch-request-factory.js.map +1 -1
- package/dist/fetch.d.ts +7 -1
- package/dist/fetch.js +61 -8
- package/dist/fetch.js.map +1 -1
- package/dist/header-parameters.d.ts +3 -0
- package/dist/header-parameters.js +40 -0
- package/dist/header-parameters.js.map +1 -0
- package/dist/index.d.ts +12 -12
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/{binary-decoder.d.ts → media-type-codecs/binary-decoder.d.ts} +2 -2
- package/dist/{binary-decoder.js → media-type-codecs/binary-decoder.js} +0 -0
- package/dist/media-type-codecs/binary-decoder.js.map +1 -0
- package/dist/{binary-encoder.d.ts → media-type-codecs/binary-encoder.d.ts} +0 -0
- package/dist/{binary-encoder.js → media-type-codecs/binary-encoder.js} +0 -0
- package/dist/media-type-codecs/binary-encoder.js.map +1 -0
- package/dist/media-type-codecs/cbor-decoder.d.ts +39 -0
- package/dist/media-type-codecs/cbor-decoder.js +413 -0
- package/dist/media-type-codecs/cbor-decoder.js.map +1 -0
- package/dist/media-type-codecs/cbor-encoder.d.ts +43 -0
- package/dist/media-type-codecs/cbor-encoder.js +226 -0
- package/dist/media-type-codecs/cbor-encoder.js.map +1 -0
- package/dist/media-type-codecs/cbor-tags.d.ts +4 -0
- package/dist/media-type-codecs/cbor-tags.js +5 -0
- package/dist/media-type-codecs/cbor-tags.js.map +1 -0
- package/dist/media-type-codecs/json-decoder.d.ts +39 -0
- package/dist/media-type-codecs/json-decoder.js +367 -0
- package/dist/media-type-codecs/json-decoder.js.map +1 -0
- package/dist/media-type-codecs/json-encoder.d.ts +44 -0
- package/dist/media-type-codecs/json-encoder.js +263 -0
- package/dist/media-type-codecs/json-encoder.js.map +1 -0
- package/dist/media-type-codecs/media-type-decoder.d.ts +11 -0
- package/dist/media-type-codecs/media-type-decoder.js +6 -0
- package/dist/media-type-codecs/media-type-decoder.js.map +1 -0
- package/dist/{media-type-decoders.d.ts → media-type-codecs/media-type-decoders.d.ts} +5 -4
- package/dist/{media-type-decoders.js → media-type-codecs/media-type-decoders.js} +6 -6
- package/dist/media-type-codecs/media-type-decoders.js.map +1 -0
- package/dist/{media-type-encoder.d.ts → media-type-codecs/media-type-encoder.d.ts} +5 -1
- package/dist/media-type-codecs/media-type-encoder.js +11 -0
- package/dist/media-type-codecs/media-type-encoder.js.map +1 -0
- package/dist/{media-type-encoders.d.ts → media-type-codecs/media-type-encoders.d.ts} +5 -4
- package/dist/{media-type-encoders.js → media-type-codecs/media-type-encoders.js} +8 -8
- package/dist/media-type-codecs/media-type-encoders.js.map +1 -0
- package/dist/{url-encoder.d.ts → media-type-codecs/www-form-url-encoder.d.ts} +8 -8
- package/dist/{url-encoder.js → media-type-codecs/www-form-url-encoder.js} +38 -37
- package/dist/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/dist/media-type.d.ts +91 -13
- package/dist/media-type.js +273 -15
- package/dist/media-type.js.map +1 -1
- package/dist/problem.d.ts +24 -9
- package/dist/problem.js +140 -6
- package/dist/problem.js.map +1 -1
- package/dist/request-factory.d.ts +10 -10
- package/dist/sunday-error.d.ts +11 -0
- package/dist/sunday-error.js +18 -0
- package/dist/sunday-error.js.map +1 -0
- package/dist/util/any.d.ts +2 -0
- package/dist/util/any.js +11 -0
- package/dist/util/any.js.map +1 -0
- package/dist/util/error.d.ts +2 -0
- package/dist/util/error.js +13 -0
- package/dist/util/error.js.map +1 -0
- package/dist/util/hex.js +3 -2
- package/dist/util/hex.js.map +1 -1
- package/dist/util/rxjs.d.ts +3 -0
- package/dist/util/rxjs.js +9 -5
- package/dist/util/rxjs.js.map +1 -1
- package/dist/util/temporal.d.ts +2 -0
- package/dist/util/temporal.js +18 -0
- package/dist/util/temporal.js.map +1 -0
- package/package.json +27 -21
- package/src/any-type.ts +4 -0
- package/src/class-type.ts +6 -2
- package/src/date-time-types.ts +22 -9
- package/src/event-parser.ts +190 -0
- package/src/fetch-event-source.ts +149 -159
- package/src/fetch-request-factory.ts +129 -101
- package/src/fetch.ts +65 -14
- package/src/header-parameters.ts +52 -0
- package/src/index.ts +12 -12
- package/src/{binary-decoder.ts → media-type-codecs/binary-decoder.ts} +3 -3
- package/src/{binary-encoder.ts → media-type-codecs/binary-encoder.ts} +0 -0
- package/src/media-type-codecs/cbor-decoder.ts +515 -0
- package/src/media-type-codecs/cbor-encoder.ts +307 -0
- package/src/media-type-codecs/cbor-tags.ts +4 -0
- package/src/media-type-codecs/json-decoder.ts +470 -0
- package/src/media-type-codecs/json-encoder.ts +328 -0
- package/src/media-type-codecs/media-type-decoder.ts +20 -0
- package/src/{media-type-decoders.ts → media-type-codecs/media-type-decoders.ts} +21 -13
- package/src/media-type-codecs/media-type-encoder.ts +31 -0
- package/src/{media-type-encoders.ts → media-type-codecs/media-type-encoders.ts} +23 -15
- package/src/{url-encoder.ts → media-type-codecs/www-form-url-encoder.ts} +53 -47
- package/src/media-type.ts +326 -22
- package/src/problem.ts +144 -12
- package/src/request-factory.ts +21 -12
- package/src/sunday-error.ts +37 -0
- package/src/util/any.ts +10 -0
- package/src/util/error.ts +14 -0
- package/src/util/hex.ts +3 -2
- package/src/util/rxjs.ts +16 -5
- package/src/util/temporal.ts +18 -0
- package/dist/binary-decoder.js.map +0 -1
- package/dist/binary-encoder.js.map +0 -1
- package/dist/cbor-decoder.d.ts +0 -15
- package/dist/cbor-decoder.js +0 -126
- package/dist/cbor-decoder.js.map +0 -1
- package/dist/cbor-encoder.d.ts +0 -29
- package/dist/cbor-encoder.js +0 -81
- package/dist/cbor-encoder.js.map +0 -1
- package/dist/cbor-tags.d.ts +0 -3
- package/dist/cbor-tags.js +0 -4
- package/dist/cbor-tags.js.map +0 -1
- package/dist/http-error.d.ts +0 -10
- package/dist/http-error.js +0 -45
- package/dist/http-error.js.map +0 -1
- package/dist/json-decoder.d.ts +0 -31
- package/dist/json-decoder.js +0 -139
- package/dist/json-decoder.js.map +0 -1
- package/dist/json-encoder.d.ts +0 -35
- package/dist/json-encoder.js +0 -116
- package/dist/json-encoder.js.map +0 -1
- package/dist/media-type-decoder.d.ts +0 -4
- package/dist/media-type-decoder.js +0 -2
- package/dist/media-type-decoder.js.map +0 -1
- package/dist/media-type-decoders.js.map +0 -1
- package/dist/media-type-encoder.js +0 -6
- package/dist/media-type-encoder.js.map +0 -1
- package/dist/media-type-encoders.js.map +0 -1
- package/dist/url-encoder.js.map +0 -1
- package/src/cbor-decoder.ts +0 -148
- package/src/cbor-encoder.ts +0 -95
- package/src/cbor-tags.ts +0 -3
- package/src/http-error.ts +0 -55
- package/src/json-decoder.ts +0 -164
- package/src/json-encoder.ts +0 -144
- package/src/media-type-decoder.ts +0 -5
- package/src/media-type-encoder.ts +0 -16
|
@@ -1,89 +1,101 @@
|
|
|
1
|
-
import { Observable, of } from 'rxjs';
|
|
2
|
-
import { mapTo, switchMap } from 'rxjs/operators';
|
|
1
|
+
import { defer, map, Observable, of, switchMap } from 'rxjs';
|
|
3
2
|
import { validate } from './fetch';
|
|
4
3
|
import { FetchEventSource } from './fetch-event-source';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { MediaTypeDecoders } from './media-type-decoders';
|
|
8
|
-
import { isURLQueryParamsEncoder } from './media-type-encoder';
|
|
9
|
-
import { MediaTypeEncoders } from './media-type-encoders';
|
|
4
|
+
import { HeaderParameters } from './header-parameters';
|
|
5
|
+
import { MediaType } from './media-type';
|
|
6
|
+
import { MediaTypeDecoders } from './media-type-codecs/media-type-decoders';
|
|
7
|
+
import { isURLQueryParamsEncoder } from './media-type-codecs/media-type-encoder';
|
|
8
|
+
import { MediaTypeEncoders } from './media-type-codecs/media-type-encoders';
|
|
9
|
+
import { SundayError } from './sunday-error';
|
|
10
10
|
import { URLTemplate } from './url-template';
|
|
11
|
+
import { errorToMessage } from './util/error';
|
|
11
12
|
export class FetchRequestFactory {
|
|
12
13
|
constructor(baseUrl, options) {
|
|
13
14
|
var _a, _b, _c;
|
|
15
|
+
this.problemTypes = new Map();
|
|
14
16
|
this.baseUrl =
|
|
15
17
|
typeof baseUrl === 'string' ? new URLTemplate(baseUrl) : baseUrl;
|
|
16
18
|
this.adapter = options === null || options === void 0 ? void 0 : options.adapter;
|
|
17
|
-
this.mediaTypeEncoders =
|
|
18
|
-
|
|
19
|
+
this.mediaTypeEncoders =
|
|
20
|
+
(_a = options === null || options === void 0 ? void 0 : options.mediaTypeEncoders) !== null && _a !== void 0 ? _a : MediaTypeEncoders.DEFAULT;
|
|
21
|
+
this.mediaTypeDecoders =
|
|
22
|
+
(_b = options === null || options === void 0 ? void 0 : options.mediaTypeDecoders) !== null && _b !== void 0 ? _b : MediaTypeDecoders.DEFAULT;
|
|
19
23
|
this.logger = (_c = options === null || options === void 0 ? void 0 : options.logger) !== null && _c !== void 0 ? _c : console;
|
|
20
24
|
}
|
|
25
|
+
registerProblem(type, problemType) {
|
|
26
|
+
const typeStr = type instanceof URL ? type.toString() : type;
|
|
27
|
+
this.problemTypes.set(typeStr, problemType);
|
|
28
|
+
}
|
|
21
29
|
request(requestSpec, requestInit) {
|
|
22
|
-
var _a, _b, _c, _d, _e;
|
|
23
30
|
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
|
|
31
|
+
return defer(() => {
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
const url = this.baseUrl.complete(requestSpec.pathTemplate, (_a = requestSpec.pathParameters) !== null && _a !== void 0 ? _a : {});
|
|
34
|
+
if (requestSpec.queryParameters) {
|
|
35
|
+
const encoder = this.mediaTypeEncoders.find(MediaType.WWWFormUrlEncoded);
|
|
36
|
+
if (!isURLQueryParamsEncoder(encoder)) {
|
|
37
|
+
throw Error(`MediaTypeEncoder for ${MediaType.WWWFormUrlEncoded} must be an instance of URLQueryParamsEncoder`);
|
|
38
|
+
}
|
|
39
|
+
url.search = `?${encoder.encodeQueryString(requestSpec.queryParameters)}`;
|
|
29
40
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Determine content type
|
|
40
|
-
const contentType = (_c = requestSpec.contentTypes) === null || _c === void 0 ? void 0 : _c.find((type) => this.mediaTypeEncoders.supports(type));
|
|
41
|
-
// If matched, add content type (even if body is nil, to match any expected server requirements)
|
|
42
|
-
if (contentType) {
|
|
43
|
-
headers.set('content-type', contentType);
|
|
44
|
-
}
|
|
45
|
-
// Encode & add body data
|
|
46
|
-
let body;
|
|
47
|
-
if (requestSpec.body) {
|
|
48
|
-
if (!contentType) {
|
|
49
|
-
throw Error('Unsupported content-type for request body');
|
|
41
|
+
const headers = new Headers(HeaderParameters.encode(requestSpec.headers));
|
|
42
|
+
// Determine & add accept header
|
|
43
|
+
if (requestSpec.acceptTypes) {
|
|
44
|
+
const supportedAcceptTypes = requestSpec.acceptTypes.filter((type) => this.mediaTypeDecoders.supports(type));
|
|
45
|
+
if (!supportedAcceptTypes.length) {
|
|
46
|
+
throw Error('None of the provided accept types has a reqistered decoder');
|
|
47
|
+
}
|
|
48
|
+
const accept = supportedAcceptTypes.join(' , ');
|
|
49
|
+
headers.set('accept', accept);
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
body
|
|
58
|
-
|
|
51
|
+
// Determine content type
|
|
52
|
+
const contentType = (_b = requestSpec.contentTypes) === null || _b === void 0 ? void 0 : _b.find((type) => this.mediaTypeEncoders.supports(type));
|
|
53
|
+
// If matched, add content type (even if body is nil, to match any expected server requirements)
|
|
54
|
+
if (contentType) {
|
|
55
|
+
headers.set('content-type', contentType.toString());
|
|
56
|
+
}
|
|
57
|
+
// Encode & add body data
|
|
58
|
+
let body;
|
|
59
|
+
if (requestSpec.body) {
|
|
60
|
+
if (!contentType) {
|
|
61
|
+
throw Error('None of the provided content types has a registered encoder');
|
|
62
|
+
}
|
|
63
|
+
body = this.mediaTypeEncoders
|
|
64
|
+
.find(contentType)
|
|
65
|
+
.encode(requestSpec.body, requestSpec.bodyType);
|
|
66
|
+
}
|
|
67
|
+
const init = Object.assign({}, requestInit, {
|
|
68
|
+
headers,
|
|
69
|
+
body,
|
|
70
|
+
method: requestSpec.method,
|
|
71
|
+
});
|
|
72
|
+
const request = new Request(url.toString(), init);
|
|
73
|
+
return (_d = (_c = this.adapter) === null || _c === void 0 ? void 0 : _c.call(this, request)) !== null && _d !== void 0 ? _d : of(request);
|
|
59
74
|
});
|
|
60
|
-
const request = new Request(url.toString(), init);
|
|
61
|
-
return (_e = (_d = this.adapter) === null || _d === void 0 ? void 0 : _d.call(this, request)) !== null && _e !== void 0 ? _e : of(request);
|
|
62
75
|
}
|
|
63
76
|
response(request, dataExpected) {
|
|
64
77
|
const request$ = request instanceof Request ? of(request) : this.request(request);
|
|
65
|
-
return request$.pipe(switchMap((req) => fetch(req)), switchMap((response) => validate(response, dataExpected !== null && dataExpected !== void 0 ? dataExpected : false)));
|
|
78
|
+
return request$.pipe(switchMap((req) => fetch(req)), switchMap((response) => validate(response, dataExpected !== null && dataExpected !== void 0 ? dataExpected : false, this.problemTypes)));
|
|
66
79
|
}
|
|
67
80
|
result(request, responseType) {
|
|
68
81
|
const response$ = this.response(request, !!responseType);
|
|
69
82
|
if (!responseType) {
|
|
70
|
-
return response$.pipe(
|
|
83
|
+
return response$.pipe(map(() => undefined));
|
|
71
84
|
}
|
|
72
85
|
else {
|
|
73
86
|
return response$.pipe(switchMap(async (response) => {
|
|
74
|
-
var _a;
|
|
75
87
|
try {
|
|
76
|
-
const contentType =
|
|
88
|
+
const contentType = MediaType.from(response.headers.get('content-type'), MediaType.OctetStream);
|
|
77
89
|
const decoder = this.mediaTypeDecoders.find(contentType);
|
|
78
90
|
return await decoder.decode(response, responseType);
|
|
79
91
|
}
|
|
80
92
|
catch (error) {
|
|
81
|
-
throw await
|
|
93
|
+
throw await SundayError.fromResponse(errorToMessage(error, 'Response Decoding Failed'), response);
|
|
82
94
|
}
|
|
83
95
|
}));
|
|
84
96
|
}
|
|
85
97
|
}
|
|
86
|
-
|
|
98
|
+
eventSource(requestSpec) {
|
|
87
99
|
//
|
|
88
100
|
const adapter = (url, requestInit) => {
|
|
89
101
|
const eventSourceSpec = Object.assign({}, requestSpec, {
|
|
@@ -91,30 +103,34 @@ export class FetchRequestFactory {
|
|
|
91
103
|
});
|
|
92
104
|
return this.request(eventSourceSpec, requestInit);
|
|
93
105
|
};
|
|
94
|
-
|
|
106
|
+
return new FetchEventSource(requestSpec.pathTemplate, {
|
|
95
107
|
logger: this.logger,
|
|
96
108
|
adapter,
|
|
97
109
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
return async (event) => {
|
|
103
|
-
const decoder = this.mediaTypeDecoders.find('application/json');
|
|
104
|
-
const msgEvent = event;
|
|
105
|
-
const deserializedEvent = await decoder.decodeText(msgEvent.data, eventType);
|
|
106
|
-
subscriber.next(deserializedEvent);
|
|
107
|
-
};
|
|
108
|
-
};
|
|
110
|
+
}
|
|
111
|
+
eventStream(requestSpec, decoder) {
|
|
112
|
+
const eventSource = this.eventSource(requestSpec);
|
|
113
|
+
const jsonDecoder = this.mediaTypeDecoders.find(MediaType.JSON);
|
|
109
114
|
return new Observable((subscriber) => {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
eventSource.onmessage = (event) => {
|
|
116
|
+
if (!event.data) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const decodedEvent = decoder(jsonDecoder, event.type, event.lastEventId, event.data, this.logger);
|
|
121
|
+
if (!decodedEvent) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
subscriber.next(decodedEvent);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
subscriber.error(error);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
eventSource.onerror = (event) => {
|
|
131
|
+
var _a, _b;
|
|
132
|
+
(_b = (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, { event }, 'event source error');
|
|
133
|
+
};
|
|
118
134
|
eventSource.connect();
|
|
119
135
|
return () => {
|
|
120
136
|
eventSource.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-request-factory.js","sourceRoot":"","sources":["../src/fetch-request-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-request-factory.js","sourceRoot":"","sources":["../src/fetch-request-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/fetch.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { ConstructableClassType } from './class-type';
|
|
2
|
+
import { Problem } from './problem';
|
|
3
|
+
export declare function validate(response: Response, dataExpected: boolean, problemTypes?: Map<string, ConstructableClassType<Problem>>): Promise<Response>;
|
|
4
|
+
export declare namespace ResponseExample {
|
|
5
|
+
function build(response: Response, bodyExample?: string): string;
|
|
6
|
+
function bodyExcerpt(response: Response, maxLength: number): Promise<[string, unknown]>;
|
|
7
|
+
}
|
package/dist/fetch.js
CHANGED
|
@@ -1,19 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HttpError } from './http-error';
|
|
1
|
+
import { MediaType } from './media-type';
|
|
3
2
|
import { Problem } from './problem';
|
|
4
|
-
|
|
3
|
+
import { SundayError } from './sunday-error';
|
|
4
|
+
import { Base64 } from './util/base64';
|
|
5
|
+
import { errorToMessage } from './util/error';
|
|
6
|
+
export async function validate(response, dataExpected, problemTypes) {
|
|
5
7
|
var _a, _b;
|
|
6
8
|
if (response.status < 200 || response.status >= 300) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
const mediaType = MediaType.from(response.headers.get('content-type'), MediaType.OctetStream);
|
|
10
|
+
const isProblemJSON = (_a = mediaType === null || mediaType === void 0 ? void 0 : mediaType.compatible(MediaType.ProblemJSON)) !== null && _a !== void 0 ? _a : false;
|
|
11
|
+
if (!isProblemJSON) {
|
|
12
|
+
throw await Problem.fromResponse(response);
|
|
10
13
|
}
|
|
11
14
|
const problemData = await response.json();
|
|
12
|
-
|
|
15
|
+
const problemType = (_b = problemTypes === null || problemTypes === void 0 ? void 0 : problemTypes.get(problemData.type)) !== null && _b !== void 0 ? _b : Problem;
|
|
16
|
+
throw new problemType(problemData);
|
|
13
17
|
}
|
|
14
18
|
if (dataExpected && (response.status === 204 || response.status === 205)) {
|
|
15
|
-
throw await
|
|
19
|
+
throw await SundayError.fromResponse('Unexpected Empty Response', response);
|
|
16
20
|
}
|
|
17
21
|
return response;
|
|
18
22
|
}
|
|
23
|
+
export var ResponseExample;
|
|
24
|
+
(function (ResponseExample) {
|
|
25
|
+
function build(response, bodyExample) {
|
|
26
|
+
return (`HTTP/?.? ${response.status} ${response.statusText}\n` +
|
|
27
|
+
Array.from(response.headers.entries())
|
|
28
|
+
.map(([name, value]) => `${name}: ${value}\n`)
|
|
29
|
+
.join('') +
|
|
30
|
+
'\n' +
|
|
31
|
+
(bodyExample !== null && bodyExample !== void 0 ? bodyExample : '<none>'));
|
|
32
|
+
}
|
|
33
|
+
ResponseExample.build = build;
|
|
34
|
+
async function bodyExcerpt(response, maxLength) {
|
|
35
|
+
var _a;
|
|
36
|
+
let body;
|
|
37
|
+
let bodyExcerpt;
|
|
38
|
+
try {
|
|
39
|
+
if ((_a = response.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.startsWith('text/')) {
|
|
40
|
+
const text = await response.text();
|
|
41
|
+
body = text;
|
|
42
|
+
if (text.length > maxLength) {
|
|
43
|
+
const exampleText = text.slice(0, maxLength);
|
|
44
|
+
const remainingTextLength = text.length - maxLength;
|
|
45
|
+
bodyExcerpt = `${exampleText}<<... ${remainingTextLength} characters>>`;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
bodyExcerpt = text;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const blob = await response.blob();
|
|
53
|
+
body = blob;
|
|
54
|
+
if (blob.size > maxLength) {
|
|
55
|
+
bodyExcerpt = `<<binary data: ${blob.size} bytes>>`;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const dataSlice = await blob.slice(0, maxLength).arrayBuffer();
|
|
59
|
+
bodyExcerpt = Base64.encode(dataSlice);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// ignore errors
|
|
65
|
+
const message = errorToMessage(error);
|
|
66
|
+
body = bodyExcerpt = `<<error displaying response data: ${message}>>`;
|
|
67
|
+
}
|
|
68
|
+
return [bodyExcerpt, body];
|
|
69
|
+
}
|
|
70
|
+
ResponseExample.bodyExcerpt = bodyExcerpt;
|
|
71
|
+
})(ResponseExample || (ResponseExample = {}));
|
|
19
72
|
//# sourceMappingURL=fetch.js.map
|
package/dist/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export var HeaderParameters;
|
|
2
|
+
(function (HeaderParameters) {
|
|
3
|
+
function encode(parameters) {
|
|
4
|
+
if (parameters == null) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
const headers = [];
|
|
8
|
+
Object.entries(parameters).forEach(([name, parameter]) => {
|
|
9
|
+
for (const value of encodeParam(name, parameter)) {
|
|
10
|
+
headers.push([name, value]);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
return headers;
|
|
14
|
+
}
|
|
15
|
+
HeaderParameters.encode = encode;
|
|
16
|
+
function encodeParam(name, value) {
|
|
17
|
+
if (value == null) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
if (value instanceof Array) {
|
|
21
|
+
const result = [];
|
|
22
|
+
for (const item of value) {
|
|
23
|
+
if (item == null) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
result.push(validate(name, `${item}`));
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
return [validate(name, `${value}`)];
|
|
31
|
+
}
|
|
32
|
+
const asciiRegex = /^[\x20-\x7F]*$/;
|
|
33
|
+
function validate(name, value) {
|
|
34
|
+
if (!asciiRegex.test(value)) {
|
|
35
|
+
throw new Error(`The encoded header value contains one or more invalid characters: header=${name}, value=${value}`);
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
})(HeaderParameters || (HeaderParameters = {}));
|
|
40
|
+
//# sourceMappingURL=header-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-parameters.js","sourceRoot":"","sources":["../src/header-parameters.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,gBAAgB,CAmDhC;AAnDD,WAAiB,gBAAgB;IAC/B,SAAgB,MAAM,CACpB,UAAoC;QAEpC,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QAED,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;YACvD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAhBe,uBAAM,SAgBrB,CAAA;IAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAc;QAC/C,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QAED,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,SAAS;iBACV;gBAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;aACxC;YAED,OAAO,MAAM,CAAC;SACf;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC;IAEpC,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CACb,4EAA4E,IAAI,WAAW,KAAK,EAAE,CACnG,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAnDgB,gBAAgB,KAAhB,gBAAgB,QAmDhC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,19 +5,19 @@ export * from './fetch-request-factory';
|
|
|
5
5
|
export * from './fetch-event-source';
|
|
6
6
|
export * from './url-template';
|
|
7
7
|
export * from './media-type';
|
|
8
|
-
export * from './media-type-decoder';
|
|
9
|
-
export * from './media-type-decoders';
|
|
10
|
-
export * from './media-type-encoder';
|
|
11
|
-
export * from './media-type-encoders';
|
|
12
|
-
export * from './json-decoder';
|
|
13
|
-
export * from './json-encoder';
|
|
14
|
-
export * from './cbor-decoder';
|
|
15
|
-
export * from './cbor-encoder';
|
|
16
|
-
export * from './binary-decoder';
|
|
17
|
-
export * from './binary-encoder';
|
|
18
|
-
export * from './url-encoder';
|
|
8
|
+
export * from './media-type-codecs/media-type-decoder';
|
|
9
|
+
export * from './media-type-codecs/media-type-decoders';
|
|
10
|
+
export * from './media-type-codecs/media-type-encoder';
|
|
11
|
+
export * from './media-type-codecs/media-type-encoders';
|
|
12
|
+
export * from './media-type-codecs/json-decoder';
|
|
13
|
+
export * from './media-type-codecs/json-encoder';
|
|
14
|
+
export * from './media-type-codecs/cbor-decoder';
|
|
15
|
+
export * from './media-type-codecs/cbor-encoder';
|
|
16
|
+
export * from './media-type-codecs/binary-decoder';
|
|
17
|
+
export * from './media-type-codecs/binary-encoder';
|
|
18
|
+
export * from './media-type-codecs/www-form-url-encoder';
|
|
19
19
|
export * from './logger';
|
|
20
|
-
export * from './
|
|
20
|
+
export * from './sunday-error';
|
|
21
21
|
export * from './problem';
|
|
22
22
|
export * from './date-time-types';
|
|
23
23
|
export * from './util/base64';
|
package/dist/index.js
CHANGED
|
@@ -5,19 +5,19 @@ export * from './fetch-request-factory';
|
|
|
5
5
|
export * from './fetch-event-source';
|
|
6
6
|
export * from './url-template';
|
|
7
7
|
export * from './media-type';
|
|
8
|
-
export * from './media-type-decoder';
|
|
9
|
-
export * from './media-type-decoders';
|
|
10
|
-
export * from './media-type-encoder';
|
|
11
|
-
export * from './media-type-encoders';
|
|
12
|
-
export * from './json-decoder';
|
|
13
|
-
export * from './json-encoder';
|
|
14
|
-
export * from './cbor-decoder';
|
|
15
|
-
export * from './cbor-encoder';
|
|
16
|
-
export * from './binary-decoder';
|
|
17
|
-
export * from './binary-encoder';
|
|
18
|
-
export * from './url-encoder';
|
|
8
|
+
export * from './media-type-codecs/media-type-decoder';
|
|
9
|
+
export * from './media-type-codecs/media-type-decoders';
|
|
10
|
+
export * from './media-type-codecs/media-type-encoder';
|
|
11
|
+
export * from './media-type-codecs/media-type-encoders';
|
|
12
|
+
export * from './media-type-codecs/json-decoder';
|
|
13
|
+
export * from './media-type-codecs/json-encoder';
|
|
14
|
+
export * from './media-type-codecs/cbor-decoder';
|
|
15
|
+
export * from './media-type-codecs/cbor-encoder';
|
|
16
|
+
export * from './media-type-codecs/binary-decoder';
|
|
17
|
+
export * from './media-type-codecs/binary-encoder';
|
|
18
|
+
export * from './media-type-codecs/www-form-url-encoder';
|
|
19
19
|
export * from './logger';
|
|
20
|
-
export * from './
|
|
20
|
+
export * from './sunday-error';
|
|
21
21
|
export * from './problem';
|
|
22
22
|
export * from './date-time-types';
|
|
23
23
|
export * from './util/base64';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MediaTypeDecoder } from './media-type-decoder';
|
|
2
|
-
import {
|
|
2
|
+
import { AnyConstructableType } from '../any-type';
|
|
3
3
|
export declare class BinaryDecoder implements MediaTypeDecoder {
|
|
4
4
|
static default: BinaryDecoder;
|
|
5
|
-
decode<T>(response: Response, type:
|
|
5
|
+
decode<T>(response: Response, type: AnyConstructableType): Promise<T>;
|
|
6
6
|
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-decoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/binary-decoder.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAGxB,KAAK,CAAC,MAAM,CAAI,QAAkB,EAAE,IAA0B;QAC5D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;YAC3B,OAAO,WAA2B,CAAC;SACpC;aAAM,IACL,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;YACtB,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YACrB,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EACpB;YACA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAM,CAAC;SACtC;QAED,MAAM,KAAK,CACT,kEAAkE,CACnE,CAAC;IACJ,CAAC;;AAlBM,qBAAO,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/binary-encoder.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAGxB,MAAM,CAAC,KAAc;QACnB,IACE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAC/B,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;YACxB,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC,EAClC;YACA,MAAM,KAAK,CACT,8DAA8D,CAC/D,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAdM,qBAAO,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AnyType } from '../any-type';
|
|
2
|
+
import { MediaTypeDecoder } from './media-type-decoder';
|
|
3
|
+
export declare class CBORDecoder implements MediaTypeDecoder {
|
|
4
|
+
readonly numericDateDecoding: CBORDecoder.NumericDateDecoding;
|
|
5
|
+
static get default(): CBORDecoder;
|
|
6
|
+
private readonly customDeserializers;
|
|
7
|
+
private readonly parser;
|
|
8
|
+
constructor(numericDateDecoding: CBORDecoder.NumericDateDecoding);
|
|
9
|
+
decode<T>(response: Response, type: AnyType): Promise<T>;
|
|
10
|
+
decodeData<T>(buffer: ArrayBuffer, type: AnyType): T;
|
|
11
|
+
private untag;
|
|
12
|
+
private instantDeserializer;
|
|
13
|
+
private zonedDateTimeDeserializer;
|
|
14
|
+
private offsetDateTimeDeserializer;
|
|
15
|
+
private offsetTimeFormatter;
|
|
16
|
+
private offsetTimeDeserializer;
|
|
17
|
+
private localDateTimeDeserializer;
|
|
18
|
+
private localDateDeserializer;
|
|
19
|
+
private localTimeDeserializer;
|
|
20
|
+
private dateDeserializer;
|
|
21
|
+
private urlDeserializer;
|
|
22
|
+
private arrayBufferDeserializer;
|
|
23
|
+
}
|
|
24
|
+
export declare namespace CBORDecoder {
|
|
25
|
+
/**
|
|
26
|
+
* Configures how numeric temporal values are decoded.
|
|
27
|
+
*/
|
|
28
|
+
enum NumericDateDecoding {
|
|
29
|
+
/**
|
|
30
|
+
* Decode numeric temporal values assuming they are seconds with decimal
|
|
31
|
+
* sub-second precision.
|
|
32
|
+
*/
|
|
33
|
+
DECIMAL_SECONDS_SINCE_EPOCH = 0,
|
|
34
|
+
/**
|
|
35
|
+
* Decode numeric temporal values assuming they are integer milliseconds.
|
|
36
|
+
*/
|
|
37
|
+
MILLISECONDS_SINCE_EPOCH = 1
|
|
38
|
+
}
|
|
39
|
+
}
|