@outfoxx/sunday 1.0.8 → 1.0.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/LICENSE.txt +203 -0
- package/README.md +36 -2
- package/build/date-time-types.d.ts +35 -0
- package/build/date-time-types.js +699 -0
- package/build/date-time-types.js.map +1 -0
- package/build/event-parser.d.ts +17 -0
- package/build/event-parser.js +151 -0
- package/build/event-parser.js.map +1 -0
- package/build/fetch-event-source.d.ts +66 -0
- package/build/fetch-event-source.js +365 -0
- package/build/fetch-event-source.js.map +1 -0
- package/build/fetch-request-factory.d.ts +32 -0
- package/build/fetch-request-factory.js +316 -0
- package/build/fetch-request-factory.js.map +1 -0
- package/build/fetch.d.ts +9 -0
- package/build/fetch.js +140 -0
- package/build/fetch.js.map +1 -0
- package/build/header-parameters.d.ts +3 -0
- package/build/header-parameters.js +82 -0
- package/build/header-parameters.js.map +1 -0
- package/build/index.d.ts +26 -0
- package/build/index.js +41 -0
- package/build/index.js.map +1 -0
- package/{dist → build}/logger.d.ts +9 -0
- package/build/logger.js +36 -0
- package/build/logger.js.map +1 -0
- package/build/media-type-codecs/any-text-decoder.d.ts +7 -0
- package/build/media-type-codecs/any-text-decoder.js +29 -0
- package/build/media-type-codecs/any-text-decoder.js.map +1 -0
- package/build/media-type-codecs/any-text-encoder.d.ts +6 -0
- package/build/media-type-codecs/any-text-encoder.js +27 -0
- package/build/media-type-codecs/any-text-encoder.js.map +1 -0
- package/build/media-type-codecs/binary-decoder.d.ts +7 -0
- package/build/media-type-codecs/binary-decoder.js +33 -0
- package/build/media-type-codecs/binary-decoder.js.map +1 -0
- package/build/media-type-codecs/binary-encoder.d.ts +6 -0
- package/build/media-type-codecs/binary-encoder.js +30 -0
- package/build/media-type-codecs/binary-encoder.js.map +1 -0
- package/build/media-type-codecs/cbor-decoder.d.ts +13 -0
- package/build/media-type-codecs/cbor-decoder.js +38 -0
- package/build/media-type-codecs/cbor-decoder.js.map +1 -0
- package/build/media-type-codecs/cbor-encoder.d.ts +12 -0
- package/build/media-type-codecs/cbor-encoder.js +36 -0
- package/build/media-type-codecs/cbor-encoder.js.map +1 -0
- package/build/media-type-codecs/cbor-tags.d.ts +6 -0
- package/build/media-type-codecs/cbor-tags.js +20 -0
- package/build/media-type-codecs/cbor-tags.js.map +1 -0
- package/build/media-type-codecs/default-policies.d.ts +3 -0
- package/build/media-type-codecs/default-policies.js +33 -0
- package/build/media-type-codecs/default-policies.js.map +1 -0
- package/build/media-type-codecs/json-decoder.d.ts +14 -0
- package/build/media-type-codecs/json-decoder.js +40 -0
- package/build/media-type-codecs/json-decoder.js.map +1 -0
- package/build/media-type-codecs/json-encoder.d.ts +13 -0
- package/build/media-type-codecs/json-encoder.js +43 -0
- package/build/media-type-codecs/json-encoder.js.map +1 -0
- package/build/media-type-codecs/media-type-decoder.d.ts +14 -0
- package/build/media-type-codecs/media-type-decoder.js +18 -0
- package/build/media-type-codecs/media-type-decoder.js.map +1 -0
- package/build/media-type-codecs/media-type-decoders.d.ts +16 -0
- package/build/media-type-codecs/media-type-decoders.js +63 -0
- package/build/media-type-codecs/media-type-decoders.js.map +1 -0
- package/build/media-type-codecs/media-type-encoder.d.ts +12 -0
- package/build/media-type-codecs/media-type-encoder.js +22 -0
- package/build/media-type-codecs/media-type-encoder.js.map +1 -0
- package/build/media-type-codecs/media-type-encoders.d.ts +16 -0
- package/build/media-type-codecs/media-type-encoders.js +65 -0
- package/build/media-type-codecs/media-type-encoders.js.map +1 -0
- package/build/media-type-codecs/www-form-url-encoder.d.ts +31 -0
- package/build/media-type-codecs/www-form-url-encoder.js +281 -0
- package/build/media-type-codecs/www-form-url-encoder.js.map +1 -0
- package/build/media-type.d.ts +94 -0
- package/build/media-type.js +305 -0
- package/build/media-type.js.map +1 -0
- package/build/problem.d.ts +35 -0
- package/build/problem.js +122 -0
- package/build/problem.js.map +1 -0
- package/build/request-adapters.d.ts +23 -0
- package/build/request-adapters.js +53 -0
- package/build/request-adapters.js.map +1 -0
- package/build/request-factory.d.ts +39 -0
- package/build/request-factory.js +15 -0
- package/build/request-factory.js.map +1 -0
- package/build/result-response.d.ts +4 -0
- package/build/result-response.js +15 -0
- package/build/result-response.js.map +1 -0
- package/build/schema-builtins.d.ts +21 -0
- package/build/schema-builtins.js +201 -0
- package/build/schema-builtins.js.map +1 -0
- package/build/schema-policy.d.ts +31 -0
- package/build/schema-policy.js +41 -0
- package/build/schema-policy.js.map +1 -0
- package/build/schema-runtime.d.ts +25 -0
- package/build/schema-runtime.js +77 -0
- package/build/schema-runtime.js.map +1 -0
- package/build/sunday-error.d.ts +10 -0
- package/build/sunday-error.js +36 -0
- package/build/sunday-error.js.map +1 -0
- package/build/url-template.js +33 -0
- package/build/url-template.js.map +1 -0
- package/build/util/async-iterables.d.ts +15 -0
- package/build/util/async-iterables.js +179 -0
- package/build/util/async-iterables.js.map +1 -0
- package/build/util/errors.d.ts +2 -0
- package/build/util/errors.js +65 -0
- package/build/util/errors.js.map +1 -0
- package/build/util/nullify.d.ts +5 -0
- package/build/util/nullify.js +37 -0
- package/build/util/nullify.js.map +1 -0
- package/build/util/numbers.d.ts +11 -0
- package/build/util/numbers.js +41 -0
- package/build/util/numbers.js.map +1 -0
- package/build/util/subscriptions.d.ts +16 -0
- package/build/util/subscriptions.js +78 -0
- package/build/util/subscriptions.js.map +1 -0
- package/build/util/unknowns.d.ts +2 -0
- package/build/util/unknowns.js +23 -0
- package/build/util/unknowns.js.map +1 -0
- package/package.json +72 -49
- package/dist/any-type.d.ts +0 -2
- package/dist/any-type.js +0 -2
- package/dist/any-type.js.map +0 -1
- package/dist/binary-decoder.d.ts +0 -6
- package/dist/binary-decoder.js +0 -16
- package/dist/binary-decoder.js.map +0 -1
- package/dist/binary-encoder.d.ts +0 -5
- package/dist/binary-encoder.js +0 -13
- 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/class-type.d.ts +0 -2
- package/dist/class-type.js +0 -2
- package/dist/class-type.js.map +0 -1
- package/dist/date-time-types.d.ts +0 -7
- package/dist/date-time-types.js +0 -5
- package/dist/date-time-types.js.map +0 -1
- package/dist/fetch-event-source.d.ts +0 -52
- package/dist/fetch-event-source.js +0 -271
- package/dist/fetch-event-source.js.map +0 -1
- package/dist/fetch-request-factory.d.ts +0 -26
- package/dist/fetch-request-factory.js +0 -125
- package/dist/fetch-request-factory.js.map +0 -1
- package/dist/fetch.d.ts +0 -1
- package/dist/fetch.js +0 -19
- package/dist/fetch.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/index.d.ts +0 -25
- package/dist/index.js +0 -26
- package/dist/index.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/logger.js +0 -2
- package/dist/logger.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.d.ts +0 -17
- package/dist/media-type-decoders.js +0 -40
- package/dist/media-type-decoders.js.map +0 -1
- package/dist/media-type-encoder.d.ts +0 -8
- package/dist/media-type-encoder.js +0 -6
- package/dist/media-type-encoder.js.map +0 -1
- package/dist/media-type-encoders.d.ts +0 -17
- package/dist/media-type-encoders.js +0 -42
- package/dist/media-type-encoders.js.map +0 -1
- package/dist/media-type.d.ts +0 -14
- package/dist/media-type.js +0 -18
- package/dist/media-type.js.map +0 -1
- package/dist/problem.d.ts +0 -16
- package/dist/problem.js +0 -11
- package/dist/problem.js.map +0 -1
- package/dist/request-factory.d.ts +0 -38
- package/dist/request-factory.js +0 -2
- package/dist/request-factory.js.map +0 -1
- package/dist/url-encoder.d.ts +0 -59
- package/dist/url-encoder.js +0 -141
- package/dist/url-encoder.js.map +0 -1
- package/dist/url-template.js +0 -18
- package/dist/url-template.js.map +0 -1
- package/dist/util/base64.d.ts +0 -5
- package/dist/util/base64.js +0 -64
- package/dist/util/base64.js.map +0 -1
- package/dist/util/hex.d.ts +0 -4
- package/dist/util/hex.js +0 -18
- package/dist/util/hex.js.map +0 -1
- package/dist/util/rxjs.d.ts +0 -2
- package/dist/util/rxjs.js +0 -14
- package/dist/util/rxjs.js.map +0 -1
- package/dist/util/stream-rxjs.d.ts +0 -2
- package/dist/util/stream-rxjs.js +0 -26
- package/dist/util/stream-rxjs.js.map +0 -1
- package/src/any-type.ts +0 -4
- package/src/binary-decoder.ts +0 -24
- package/src/binary-encoder.ts +0 -19
- package/src/cbor-decoder.ts +0 -148
- package/src/cbor-encoder.ts +0 -95
- package/src/cbor-tags.ts +0 -3
- package/src/class-type.ts +0 -3
- package/src/date-time-types.ts +0 -10
- package/src/fetch-event-source.ts +0 -387
- package/src/fetch-request-factory.ts +0 -225
- package/src/fetch.ts +0 -30
- package/src/http-error.ts +0 -55
- package/src/index.ts +0 -26
- package/src/json-decoder.ts +0 -164
- package/src/json-encoder.ts +0 -144
- package/src/logger.ts +0 -8
- package/src/media-type-decoder.ts +0 -5
- package/src/media-type-decoders.ts +0 -59
- package/src/media-type-encoder.ts +0 -16
- package/src/media-type-encoders.ts +0 -61
- package/src/media-type.ts +0 -25
- package/src/problem.ts +0 -25
- package/src/request-factory.ts +0 -76
- package/src/url-encoder.ts +0 -173
- package/src/url-template.ts +0 -21
- package/src/util/base64.ts +0 -77
- package/src/util/hex.ts +0 -15
- package/src/util/rxjs.ts +0 -18
- package/src/util/stream-rxjs.ts +0 -28
- /package/{dist → build}/url-template.d.ts +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SchemaLike } from '../schema-runtime.js';
|
|
2
|
+
export interface MediaTypeDecoder {
|
|
3
|
+
decode<T>(response: Response, type: SchemaLike<T>): Promise<T>;
|
|
4
|
+
}
|
|
5
|
+
export interface BufferMediaTypeDecoder extends MediaTypeDecoder {
|
|
6
|
+
decodeBuffer<T>(data: ArrayBuffer, type: SchemaLike<T>): T;
|
|
7
|
+
}
|
|
8
|
+
export interface TextMediaTypeDecoder extends MediaTypeDecoder {
|
|
9
|
+
decodeText<T>(text: string, type: SchemaLike<T>): T;
|
|
10
|
+
}
|
|
11
|
+
export interface StructuredMediaTypeDecoder extends MediaTypeDecoder {
|
|
12
|
+
decodeObject<T>(data: unknown, type: SchemaLike<T>): T;
|
|
13
|
+
}
|
|
14
|
+
export declare function isStructuredMediaTypeDecoder(decoder: MediaTypeDecoder | StructuredMediaTypeDecoder | undefined): decoder is StructuredMediaTypeDecoder;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export function isStructuredMediaTypeDecoder(decoder) {
|
|
15
|
+
const rec = decoder;
|
|
16
|
+
return typeof rec.decodeObject === 'function';
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=media-type-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-decoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-decoder.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;AAoBjC,MAAM,UAAU,4BAA4B,CAC1C,OAAkE;IAElE,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MediaType } from '../media-type.js';
|
|
2
|
+
import { MediaTypeDecoder } from './media-type-decoder.js';
|
|
3
|
+
export interface MediaTypeDecodersBuilder {
|
|
4
|
+
addDefaults(): MediaTypeDecodersBuilder;
|
|
5
|
+
add(mediaType: MediaType, decoder: MediaTypeDecoder): MediaTypeDecodersBuilder;
|
|
6
|
+
build(): MediaTypeDecoders;
|
|
7
|
+
}
|
|
8
|
+
export type MediaTypeDecodersBuilderConstructor = new () => MediaTypeDecodersBuilder;
|
|
9
|
+
export declare class MediaTypeDecoders {
|
|
10
|
+
private readonly decoders;
|
|
11
|
+
static readonly Builder: MediaTypeDecodersBuilderConstructor;
|
|
12
|
+
static readonly DEFAULT: MediaTypeDecoders;
|
|
13
|
+
constructor(decoders: Map<MediaType, MediaTypeDecoder>);
|
|
14
|
+
supports(mediaType: MediaType): boolean;
|
|
15
|
+
find(mediaType: MediaType): MediaTypeDecoder;
|
|
16
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { AnyTextDecoder } from './any-text-decoder.js';
|
|
15
|
+
import { BinaryDecoder } from './binary-decoder.js';
|
|
16
|
+
import { CBORDecoder } from './cbor-decoder.js';
|
|
17
|
+
import { JSONDecoder } from './json-decoder.js';
|
|
18
|
+
import { MediaType } from '../media-type.js';
|
|
19
|
+
export class MediaTypeDecoders {
|
|
20
|
+
decoders;
|
|
21
|
+
static Builder = class Builder {
|
|
22
|
+
decoders = new Map();
|
|
23
|
+
add(mediaType, decoder) {
|
|
24
|
+
this.decoders.set(mediaType, decoder);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
addDefaults() {
|
|
28
|
+
return this.add(MediaType.OctetStream, BinaryDecoder.default)
|
|
29
|
+
.add(MediaType.JSON, JSONDecoder.default)
|
|
30
|
+
.add(MediaType.CBOR, CBORDecoder.default)
|
|
31
|
+
.add(MediaType.EventStream, BinaryDecoder.default)
|
|
32
|
+
.add(MediaType.AnyText, AnyTextDecoder.default)
|
|
33
|
+
.add(MediaType.X509CACert, BinaryDecoder.default)
|
|
34
|
+
.add(MediaType.X509UserCert, BinaryDecoder.default);
|
|
35
|
+
}
|
|
36
|
+
build() {
|
|
37
|
+
return new MediaTypeDecoders(this.decoders);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
static DEFAULT = new MediaTypeDecoders.Builder()
|
|
41
|
+
.addDefaults()
|
|
42
|
+
.build();
|
|
43
|
+
constructor(decoders) {
|
|
44
|
+
this.decoders = decoders;
|
|
45
|
+
}
|
|
46
|
+
supports(mediaType) {
|
|
47
|
+
for (const key of this.decoders.keys()) {
|
|
48
|
+
if (key.compatible(mediaType)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
find(mediaType) {
|
|
55
|
+
for (const [type, decoder] of this.decoders.entries()) {
|
|
56
|
+
if (type.compatible(mediaType)) {
|
|
57
|
+
return decoder;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
throw new Error(`Unsupported media type - ${mediaType}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=media-type-decoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-decoders.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-decoders.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,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe7C,MAAM,OAAO,iBAAiB;IAiCC;IAhC7B,MAAM,CAAU,OAAO,GAAwC,MAAM,OAAO;QAG1E,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;QAElD,GAAG,CACD,SAAoB,EACpB,OAAyB;YAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBAC1D,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBACjD,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;iBAC9C,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;iBAChD,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,OAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;SACzE,WAAW,EAAE;SACb,KAAK,EAAE,CAAC;IAEX,YAA6B,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAE3E,QAAQ,CAAC,SAAoB;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SchemaLike } from '../schema-runtime.js';
|
|
2
|
+
export interface MediaTypeEncoder {
|
|
3
|
+
encode<T>(value: T, type?: SchemaLike<T>): BodyInit;
|
|
4
|
+
}
|
|
5
|
+
export interface URLQueryParamsEncoder extends MediaTypeEncoder {
|
|
6
|
+
encodeQueryString(value: Record<string, unknown>): string;
|
|
7
|
+
}
|
|
8
|
+
export declare function isURLQueryParamsEncoder(encoder: MediaTypeEncoder | URLQueryParamsEncoder | undefined): encoder is URLQueryParamsEncoder;
|
|
9
|
+
export interface StructuredMediaTypeEncoder extends MediaTypeEncoder {
|
|
10
|
+
encodeObject<T>(value: T, type?: SchemaLike<T>): Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export declare function isStructuredMediaTypeEncoder(encoder: MediaTypeEncoder | StructuredMediaTypeEncoder | undefined): encoder is StructuredMediaTypeEncoder;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export function isURLQueryParamsEncoder(encoder) {
|
|
15
|
+
const rec = encoder;
|
|
16
|
+
return typeof rec.encodeQueryString === 'function';
|
|
17
|
+
}
|
|
18
|
+
export function isStructuredMediaTypeEncoder(encoder) {
|
|
19
|
+
const rec = encoder;
|
|
20
|
+
return typeof rec.encodeObject === 'function';
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=media-type-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-encoder.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;AAYjC,MAAM,UAAU,uBAAuB,CACrC,OAA6D;IAE7D,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,CAAC;AACrD,CAAC;AASD,MAAM,UAAU,4BAA4B,CAC1C,OAAkE;IAElE,MAAM,GAAG,GAAG,OAA6C,CAAC;IAC1D,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MediaType } from '../media-type.js';
|
|
2
|
+
import { MediaTypeEncoder } from './media-type-encoder.js';
|
|
3
|
+
export interface MediaTypeEncodersBuilder {
|
|
4
|
+
addDefaults(): MediaTypeEncodersBuilder;
|
|
5
|
+
add(mediaType: MediaType, encoder: MediaTypeEncoder): MediaTypeEncodersBuilder;
|
|
6
|
+
build(): MediaTypeEncoders;
|
|
7
|
+
}
|
|
8
|
+
export type MediaTypeEncodersBuilderConstructor = new () => MediaTypeEncodersBuilder;
|
|
9
|
+
export declare class MediaTypeEncoders {
|
|
10
|
+
private readonly encoders;
|
|
11
|
+
static readonly Builder: MediaTypeEncodersBuilderConstructor;
|
|
12
|
+
static readonly DEFAULT: MediaTypeEncoders;
|
|
13
|
+
constructor(encoders: Map<MediaType, MediaTypeEncoder>);
|
|
14
|
+
supports(mediaType: MediaType): boolean;
|
|
15
|
+
find(mediaType: MediaType): MediaTypeEncoder;
|
|
16
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { MediaType } from '../media-type.js';
|
|
15
|
+
import { AnyTextEncoder } from './any-text-encoder.js';
|
|
16
|
+
import { BinaryEncoder } from './binary-encoder.js';
|
|
17
|
+
import { CBOREncoder } from './cbor-encoder.js';
|
|
18
|
+
import { JSONEncoder } from './json-encoder.js';
|
|
19
|
+
import { WWWFormUrlEncoder } from './www-form-url-encoder.js';
|
|
20
|
+
export class MediaTypeEncoders {
|
|
21
|
+
encoders;
|
|
22
|
+
static Builder = class Builder {
|
|
23
|
+
encoders = new Map();
|
|
24
|
+
add(mediaType, encoder) {
|
|
25
|
+
this.encoders.set(mediaType, encoder);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
addDefaults() {
|
|
29
|
+
return this.add(MediaType.OctetStream, BinaryEncoder.default)
|
|
30
|
+
.add(MediaType.WWWFormUrlEncoded, WWWFormUrlEncoder.default)
|
|
31
|
+
.add(MediaType.JSON, JSONEncoder.default)
|
|
32
|
+
.add(MediaType.JSONStructured, JSONEncoder.default)
|
|
33
|
+
.add(MediaType.CBOR, CBOREncoder.default)
|
|
34
|
+
.add(MediaType.AnyText, AnyTextEncoder.default)
|
|
35
|
+
.add(MediaType.X509CACert, BinaryEncoder.default)
|
|
36
|
+
.add(MediaType.X509UserCert, BinaryEncoder.default);
|
|
37
|
+
}
|
|
38
|
+
build() {
|
|
39
|
+
return new MediaTypeEncoders(this.encoders);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
static DEFAULT = new MediaTypeEncoders.Builder()
|
|
43
|
+
.addDefaults()
|
|
44
|
+
.build();
|
|
45
|
+
constructor(encoders) {
|
|
46
|
+
this.encoders = encoders;
|
|
47
|
+
}
|
|
48
|
+
supports(mediaType) {
|
|
49
|
+
for (const key of this.encoders.keys()) {
|
|
50
|
+
if (key.compatible(mediaType)) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
find(mediaType) {
|
|
57
|
+
for (const [type, encoder] of this.encoders.entries()) {
|
|
58
|
+
if (type.compatible(mediaType)) {
|
|
59
|
+
return encoder;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Unsupported media type - ${mediaType}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=media-type-encoders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-type-encoders.js","sourceRoot":"","sources":["../../src/media-type-codecs/media-type-encoders.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,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAc9D,MAAM,OAAO,iBAAiB;IAkCC;IAjC7B,MAAM,CAAU,OAAO,GAAwC,MAAM,OAAO;QAG1E,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;QAElD,GAAG,CACD,SAAoB,EACpB,OAAyB;YAEzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC;iBAC1D,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC;iBAC3D,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC;iBAClD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;iBACxC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;iBAC9C,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;iBAChD,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,MAAM,CAAU,OAAO,GAAsB,IAAI,iBAAiB,CAAC,OAAO,EAAE;SACzE,WAAW,EAAE;SACb,KAAK,EAAE,CAAC;IAEX,YAA6B,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAG,CAAC;IAE3E,QAAQ,CAAC,SAAoB;QAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SchemaLike, SchemaRuntime } from '../schema-runtime.js';
|
|
2
|
+
import { URLQueryParamsEncoder } from './media-type-encoder.js';
|
|
3
|
+
export declare class WWWFormUrlEncoder implements URLQueryParamsEncoder {
|
|
4
|
+
private readonly arrayEncoding;
|
|
5
|
+
private readonly boolEncoding;
|
|
6
|
+
private readonly dateEncoding;
|
|
7
|
+
private readonly encoder;
|
|
8
|
+
static get default(): WWWFormUrlEncoder;
|
|
9
|
+
runtime: SchemaRuntime;
|
|
10
|
+
constructor(arrayEncoding: WWWFormUrlEncoder.ArrayEncoding, boolEncoding: WWWFormUrlEncoder.BoolEncoding, dateEncoding: WWWFormUrlEncoder.DateEncoding, encoder?: TextEncoder);
|
|
11
|
+
encode<T = unknown>(value: T, type?: SchemaLike<T>): BodyInit;
|
|
12
|
+
encodeQueryString(parameters: Record<string, unknown>): string;
|
|
13
|
+
encodeQueryComponent(key: string, value: unknown): string[];
|
|
14
|
+
private encodeMapQueryComponent;
|
|
15
|
+
private encodeIterableQueryComponent;
|
|
16
|
+
}
|
|
17
|
+
export declare namespace WWWFormUrlEncoder {
|
|
18
|
+
enum ArrayEncoding {
|
|
19
|
+
UNBRACKETED = 0,
|
|
20
|
+
BRACKETED = 1
|
|
21
|
+
}
|
|
22
|
+
enum BoolEncoding {
|
|
23
|
+
LITERAL = 0,
|
|
24
|
+
NUMERIC = 1
|
|
25
|
+
}
|
|
26
|
+
enum DateEncoding {
|
|
27
|
+
DECIMAL_SECONDS_SINCE_EPOCH = 0,
|
|
28
|
+
MILLISECONDS_SINCE_EPOCH = 1,
|
|
29
|
+
ISO8601 = 2
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// Copyright 2020 Outfox, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { DateTimeFormatter, Duration, Instant, LocalDate, LocalDateTime, LocalTime, OffsetDateTime, OffsetTime, Period, Temporal, TemporalAmount, ZoneId, ZoneOffset, ZonedDateTime, } from '@js-joda/core';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { ArrayBufferEncoding, createSchemaRuntime, NumericDateDecoding, } from '../schema-runtime.js';
|
|
17
|
+
import { appendNumericTimeFields, secondsToNumber } from '../util/numbers.js';
|
|
18
|
+
const FORM_OBJECT_SCHEMA = z.record(z.string(), z.unknown());
|
|
19
|
+
export class WWWFormUrlEncoder {
|
|
20
|
+
arrayEncoding;
|
|
21
|
+
boolEncoding;
|
|
22
|
+
dateEncoding;
|
|
23
|
+
encoder;
|
|
24
|
+
static get default() {
|
|
25
|
+
return new WWWFormUrlEncoder(WWWFormUrlEncoder.ArrayEncoding.UNBRACKETED, WWWFormUrlEncoder.BoolEncoding.LITERAL, WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH);
|
|
26
|
+
}
|
|
27
|
+
runtime;
|
|
28
|
+
constructor(arrayEncoding, boolEncoding, dateEncoding, encoder = new TextEncoder()) {
|
|
29
|
+
this.arrayEncoding = arrayEncoding;
|
|
30
|
+
this.boolEncoding = boolEncoding;
|
|
31
|
+
this.dateEncoding = dateEncoding;
|
|
32
|
+
this.encoder = encoder;
|
|
33
|
+
this.runtime = createSchemaRuntime({
|
|
34
|
+
format: 'json',
|
|
35
|
+
dateEncoding: this.dateEncoding,
|
|
36
|
+
numericDateDecoding: NumericDateDecoding.DECIMAL_SECONDS_SINCE_EPOCH,
|
|
37
|
+
arrayBufferEncoding: ArrayBufferEncoding.BASE64,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
encode(value, type) {
|
|
41
|
+
const parameters = type
|
|
42
|
+
? this.runtime.resolveSchema(type).encode(value)
|
|
43
|
+
: value;
|
|
44
|
+
return this.encoder.encode(this.encodeQueryString(FORM_OBJECT_SCHEMA.parse(parameters)));
|
|
45
|
+
}
|
|
46
|
+
encodeQueryString(parameters) {
|
|
47
|
+
const components = [];
|
|
48
|
+
for (const [key, value] of Object.entries(parameters).sort(compareEntryKeys)) {
|
|
49
|
+
components.push(...this.encodeQueryComponent(key, value));
|
|
50
|
+
}
|
|
51
|
+
return components.join('&');
|
|
52
|
+
}
|
|
53
|
+
encodeQueryComponent(key, value) {
|
|
54
|
+
const components = [];
|
|
55
|
+
if (value === undefined) {
|
|
56
|
+
return components;
|
|
57
|
+
}
|
|
58
|
+
if (value == null) {
|
|
59
|
+
//
|
|
60
|
+
components.push(encodeURIComponent(key));
|
|
61
|
+
}
|
|
62
|
+
else if (Array.isArray(value) || value instanceof Set) {
|
|
63
|
+
//
|
|
64
|
+
components.push(...this.encodeIterableQueryComponent(key, value));
|
|
65
|
+
}
|
|
66
|
+
else if (value instanceof Map) {
|
|
67
|
+
//
|
|
68
|
+
components.push(...this.encodeMapQueryComponent(key, value));
|
|
69
|
+
}
|
|
70
|
+
else if (value instanceof Date) {
|
|
71
|
+
//
|
|
72
|
+
components.push(encodeURIComponent(key) +
|
|
73
|
+
'=' +
|
|
74
|
+
encodeURIComponent(encodeInstant(Instant.ofEpochMilli(value.getTime()), this.dateEncoding)));
|
|
75
|
+
}
|
|
76
|
+
else if (value instanceof Temporal) {
|
|
77
|
+
//
|
|
78
|
+
components.push(encodeURIComponent(key) + '=' +
|
|
79
|
+
encodeURIComponent(encodeTemporal(value, this.dateEncoding)));
|
|
80
|
+
}
|
|
81
|
+
else if (value instanceof TemporalAmount) {
|
|
82
|
+
components.push(encodeURIComponent(key) + '=' +
|
|
83
|
+
encodeURIComponent(encodeTemporalAmount(value, this.dateEncoding)));
|
|
84
|
+
}
|
|
85
|
+
else if (typeof value === 'boolean') {
|
|
86
|
+
//
|
|
87
|
+
components.push(encodeURIComponent(key) +
|
|
88
|
+
'=' +
|
|
89
|
+
encodeURIComponent(encodeBool(value, this.boolEncoding)));
|
|
90
|
+
}
|
|
91
|
+
else if (value instanceof URL) {
|
|
92
|
+
//
|
|
93
|
+
components.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
|
|
94
|
+
}
|
|
95
|
+
else if (value instanceof ZoneId || value instanceof ZoneOffset) {
|
|
96
|
+
//
|
|
97
|
+
components.push(encodeURIComponent(key) + '=' + encodeURIComponent(value.toString()));
|
|
98
|
+
}
|
|
99
|
+
else if (value instanceof ArrayBuffer) {
|
|
100
|
+
//
|
|
101
|
+
throw new TypeError('Encoding ArrayBuffer to form data is not supported');
|
|
102
|
+
}
|
|
103
|
+
else if (typeof value === 'object') {
|
|
104
|
+
//
|
|
105
|
+
for (const [nestedKey, nestedValue] of Object.entries(value).sort(compareEntryKeys)) {
|
|
106
|
+
components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (isStringInterpolable(value)) {
|
|
110
|
+
//
|
|
111
|
+
components.push(encodeURIComponent(key) + '=' + encodeURIComponent(`${value}`));
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
throw new TypeError(`Unsupported value type: ${typeof value}`);
|
|
115
|
+
}
|
|
116
|
+
return components;
|
|
117
|
+
}
|
|
118
|
+
encodeMapQueryComponent(key, value) {
|
|
119
|
+
const components = [];
|
|
120
|
+
const entries = Array.from(value.entries()).sort(compareEntryKeys);
|
|
121
|
+
for (const [nestedKey, nestedValue] of entries) {
|
|
122
|
+
components.push(...this.encodeQueryComponent(`${key}[${nestedKey}]`, nestedValue));
|
|
123
|
+
}
|
|
124
|
+
return components;
|
|
125
|
+
}
|
|
126
|
+
encodeIterableQueryComponent(key, value) {
|
|
127
|
+
const components = [];
|
|
128
|
+
for (const item of value) {
|
|
129
|
+
components.push(...this.encodeQueryComponent(encodeArrayKey(key, this.arrayEncoding), item));
|
|
130
|
+
}
|
|
131
|
+
return components;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function encodeInstant(instant, dateEncoding) {
|
|
135
|
+
switch (dateEncoding) {
|
|
136
|
+
case WWWFormUrlEncoder.DateEncoding.ISO8601:
|
|
137
|
+
return DateTimeFormatter.ISO_INSTANT.format(instant);
|
|
138
|
+
case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
139
|
+
return `${instant.toEpochMilli()}`;
|
|
140
|
+
case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
141
|
+
return `${secondsToNumber(instant.epochSecond(), instant.nano())}`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function encodeLocalDateTime(temporal, dateEncoding) {
|
|
145
|
+
if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
146
|
+
return temporal.toString();
|
|
147
|
+
}
|
|
148
|
+
return JSON.stringify(appendNumericTimeFields([
|
|
149
|
+
temporal.year(),
|
|
150
|
+
temporal.monthValue(),
|
|
151
|
+
temporal.dayOfMonth(),
|
|
152
|
+
temporal.hour(),
|
|
153
|
+
temporal.minute(),
|
|
154
|
+
], temporal.second(), numericFraction(temporal.nano(), dateEncoding)));
|
|
155
|
+
}
|
|
156
|
+
function encodeOffsetTime(temporal, dateEncoding) {
|
|
157
|
+
if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
158
|
+
return temporal.toString();
|
|
159
|
+
}
|
|
160
|
+
return JSON.stringify([
|
|
161
|
+
...appendNumericTimeFields([temporal.hour(), temporal.minute()], temporal.second(), numericFraction(temporal.nano(), dateEncoding)),
|
|
162
|
+
temporal.offset().toString(),
|
|
163
|
+
]);
|
|
164
|
+
}
|
|
165
|
+
function encodeLocalTime(temporal, dateEncoding) {
|
|
166
|
+
if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
167
|
+
return temporal.toString();
|
|
168
|
+
}
|
|
169
|
+
return JSON.stringify(appendNumericTimeFields([temporal.hour(), temporal.minute()], temporal.second(), numericFraction(temporal.nano(), dateEncoding)));
|
|
170
|
+
}
|
|
171
|
+
function encodeLocalDate(temporal, dateEncoding) {
|
|
172
|
+
if (dateEncoding == WWWFormUrlEncoder.DateEncoding.ISO8601) {
|
|
173
|
+
return temporal.toString();
|
|
174
|
+
}
|
|
175
|
+
return JSON.stringify([
|
|
176
|
+
temporal.year(),
|
|
177
|
+
temporal.monthValue(),
|
|
178
|
+
temporal.dayOfMonth(),
|
|
179
|
+
]);
|
|
180
|
+
}
|
|
181
|
+
function encodeTemporal(temporal, dateEncoding) {
|
|
182
|
+
if (temporal instanceof Instant) {
|
|
183
|
+
return encodeInstant(temporal, dateEncoding);
|
|
184
|
+
}
|
|
185
|
+
else if (temporal instanceof ZonedDateTime) {
|
|
186
|
+
return encodeInstant(temporal.toInstant(), dateEncoding);
|
|
187
|
+
}
|
|
188
|
+
else if (temporal instanceof OffsetDateTime) {
|
|
189
|
+
return encodeInstant(temporal.toInstant(), dateEncoding);
|
|
190
|
+
}
|
|
191
|
+
else if (temporal instanceof LocalDateTime) {
|
|
192
|
+
return encodeLocalDateTime(temporal, dateEncoding);
|
|
193
|
+
}
|
|
194
|
+
else if (temporal instanceof OffsetTime) {
|
|
195
|
+
return encodeOffsetTime(temporal, dateEncoding);
|
|
196
|
+
}
|
|
197
|
+
else if (temporal instanceof LocalTime) {
|
|
198
|
+
return encodeLocalTime(temporal, dateEncoding);
|
|
199
|
+
}
|
|
200
|
+
else if (temporal instanceof LocalDate) {
|
|
201
|
+
return encodeLocalDate(temporal, dateEncoding);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
throw new TypeError(`Unsupported Temporal type: ${temporal.constructor.name}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function encodeDuration(duration, dateEncoding) {
|
|
208
|
+
switch (dateEncoding) {
|
|
209
|
+
case WWWFormUrlEncoder.DateEncoding.ISO8601:
|
|
210
|
+
return duration.toString();
|
|
211
|
+
case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
212
|
+
return `${duration.toMillis()}`;
|
|
213
|
+
case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
214
|
+
return `${secondsToNumber(duration.seconds(), duration.nano())}`;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function encodePeriod(period) {
|
|
218
|
+
return period.toString();
|
|
219
|
+
}
|
|
220
|
+
function encodeTemporalAmount(temporalAmount, dateEncoding) {
|
|
221
|
+
if (temporalAmount instanceof Duration) {
|
|
222
|
+
return encodeDuration(temporalAmount, dateEncoding);
|
|
223
|
+
}
|
|
224
|
+
else if (temporalAmount instanceof Period) {
|
|
225
|
+
return encodePeriod(temporalAmount);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
throw new TypeError(`Unsupported TemporalAmount type: ${temporalAmount.constructor.name}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function numericFraction(nanos, dateEncoding) {
|
|
232
|
+
switch (dateEncoding) {
|
|
233
|
+
case WWWFormUrlEncoder.DateEncoding.MILLISECONDS_SINCE_EPOCH:
|
|
234
|
+
return Math.trunc(nanos / 1_000_000);
|
|
235
|
+
case WWWFormUrlEncoder.DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH:
|
|
236
|
+
case WWWFormUrlEncoder.DateEncoding.ISO8601:
|
|
237
|
+
return nanos;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function encodeBool(value, boolEncoding) {
|
|
241
|
+
switch (boolEncoding) {
|
|
242
|
+
case WWWFormUrlEncoder.BoolEncoding.LITERAL:
|
|
243
|
+
return value ? 'true' : 'false';
|
|
244
|
+
case WWWFormUrlEncoder.BoolEncoding.NUMERIC:
|
|
245
|
+
return value ? '1' : '0';
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function encodeArrayKey(key, arrayEncoding) {
|
|
249
|
+
switch (arrayEncoding) {
|
|
250
|
+
case WWWFormUrlEncoder.ArrayEncoding.UNBRACKETED:
|
|
251
|
+
return key;
|
|
252
|
+
case WWWFormUrlEncoder.ArrayEncoding.BRACKETED:
|
|
253
|
+
return `${key}[]`;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
(function (WWWFormUrlEncoder) {
|
|
257
|
+
let ArrayEncoding;
|
|
258
|
+
(function (ArrayEncoding) {
|
|
259
|
+
ArrayEncoding[ArrayEncoding["UNBRACKETED"] = 0] = "UNBRACKETED";
|
|
260
|
+
ArrayEncoding[ArrayEncoding["BRACKETED"] = 1] = "BRACKETED";
|
|
261
|
+
})(ArrayEncoding = WWWFormUrlEncoder.ArrayEncoding || (WWWFormUrlEncoder.ArrayEncoding = {}));
|
|
262
|
+
let BoolEncoding;
|
|
263
|
+
(function (BoolEncoding) {
|
|
264
|
+
BoolEncoding[BoolEncoding["LITERAL"] = 0] = "LITERAL";
|
|
265
|
+
BoolEncoding[BoolEncoding["NUMERIC"] = 1] = "NUMERIC";
|
|
266
|
+
})(BoolEncoding = WWWFormUrlEncoder.BoolEncoding || (WWWFormUrlEncoder.BoolEncoding = {}));
|
|
267
|
+
let DateEncoding;
|
|
268
|
+
(function (DateEncoding) {
|
|
269
|
+
DateEncoding[DateEncoding["DECIMAL_SECONDS_SINCE_EPOCH"] = 0] = "DECIMAL_SECONDS_SINCE_EPOCH";
|
|
270
|
+
DateEncoding[DateEncoding["MILLISECONDS_SINCE_EPOCH"] = 1] = "MILLISECONDS_SINCE_EPOCH";
|
|
271
|
+
DateEncoding[DateEncoding["ISO8601"] = 2] = "ISO8601";
|
|
272
|
+
})(DateEncoding = WWWFormUrlEncoder.DateEncoding || (WWWFormUrlEncoder.DateEncoding = {}));
|
|
273
|
+
})(WWWFormUrlEncoder || (WWWFormUrlEncoder = {}));
|
|
274
|
+
function isStringInterpolable(value) {
|
|
275
|
+
const type = typeof value;
|
|
276
|
+
return type === 'string' || type === 'number' || type === 'bigint' || type === 'boolean';
|
|
277
|
+
}
|
|
278
|
+
function compareEntryKeys(e1, e2) {
|
|
279
|
+
return e1[0].localeCompare(e2[0], 'und');
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=www-form-url-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"www-form-url-encoder.js","sourceRoot":"","sources":["../../src/media-type-codecs/www-form-url-encoder.ts"],"names":[],"mappings":"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"}
|