@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
package/src/request-factory.ts
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import { ClassList } from '@outfoxx/jackson-js/dist/@types';
|
|
2
1
|
import { Observable } from 'rxjs';
|
|
3
2
|
import { AnyType } from './any-type';
|
|
4
|
-
import { ClassType } from './class-type';
|
|
3
|
+
import { ClassType, ConstructableClassType } from './class-type';
|
|
5
4
|
import { MediaType } from './media-type';
|
|
5
|
+
import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder';
|
|
6
|
+
import { Problem } from './problem';
|
|
6
7
|
import { URLTemplate } from './url-template';
|
|
8
|
+
import { Logger } from './logger';
|
|
7
9
|
|
|
8
10
|
export interface RequestFactory {
|
|
9
11
|
readonly baseUrl: URLTemplate;
|
|
10
12
|
|
|
13
|
+
registerProblem(
|
|
14
|
+
type: URL | string,
|
|
15
|
+
problemType: ConstructableClassType<Problem>
|
|
16
|
+
): void;
|
|
17
|
+
|
|
11
18
|
request(requestSpec: RequestSpec<unknown>): Observable<Request>;
|
|
12
19
|
|
|
13
20
|
response(request: Request, dataExpected?: boolean): Observable<Response>;
|
|
@@ -36,11 +43,17 @@ export interface RequestFactory {
|
|
|
36
43
|
|
|
37
44
|
result<B>(requestSpec: RequestSpec<B>): Observable<void>;
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
eventSource(requestSpec: RequestSpec<void>): ExtEventSource;
|
|
40
47
|
|
|
41
|
-
|
|
48
|
+
eventStream<E>(
|
|
42
49
|
requestSpec: RequestSpec<void>,
|
|
43
|
-
|
|
50
|
+
decoder: (
|
|
51
|
+
decoder: TextMediaTypeDecoder,
|
|
52
|
+
event: string | undefined,
|
|
53
|
+
id: string | undefined,
|
|
54
|
+
data: string,
|
|
55
|
+
logger?: Logger
|
|
56
|
+
) => E | undefined
|
|
44
57
|
): Observable<E>;
|
|
45
58
|
}
|
|
46
59
|
|
|
@@ -64,13 +77,9 @@ export interface RequestSpec<B> {
|
|
|
64
77
|
queryParameters?: Record<string, unknown>;
|
|
65
78
|
body?: B;
|
|
66
79
|
bodyType?: AnyType;
|
|
67
|
-
contentTypes?:
|
|
68
|
-
acceptTypes?:
|
|
69
|
-
headers?:
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export interface EventTypes<E> {
|
|
73
|
-
[key: string]: ClassList<ClassType<E>>;
|
|
80
|
+
contentTypes?: MediaType[];
|
|
81
|
+
acceptTypes?: MediaType[];
|
|
82
|
+
headers?: Record<string, unknown>;
|
|
74
83
|
}
|
|
75
84
|
|
|
76
85
|
export type RequestAdapter = (request: Request) => Observable<Request>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ResponseExample } from './fetch';
|
|
2
|
+
|
|
3
|
+
export class SundayError extends Error {
|
|
4
|
+
constructor(
|
|
5
|
+
message: string,
|
|
6
|
+
public url: string,
|
|
7
|
+
public httpVersion: string,
|
|
8
|
+
public status: number,
|
|
9
|
+
public statusText: string,
|
|
10
|
+
public headers: Headers,
|
|
11
|
+
public body: unknown | undefined,
|
|
12
|
+
public responseExample: string
|
|
13
|
+
) {
|
|
14
|
+
super(message);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static async fromResponse(
|
|
18
|
+
message: string,
|
|
19
|
+
response: Response
|
|
20
|
+
): Promise<SundayError> {
|
|
21
|
+
const [bodyExcerpt, body] = await ResponseExample.bodyExcerpt(
|
|
22
|
+
response,
|
|
23
|
+
256
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return new SundayError(
|
|
27
|
+
message,
|
|
28
|
+
response.url,
|
|
29
|
+
'?.?',
|
|
30
|
+
response.status,
|
|
31
|
+
response.statusText,
|
|
32
|
+
response.headers,
|
|
33
|
+
body,
|
|
34
|
+
ResponseExample.build(response, bodyExcerpt)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/util/any.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function unknownGet<T = unknown>(obj: unknown, key: string): T {
|
|
2
|
+
return (obj as Record<string, unknown>)?.[key] as T;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function unknownSet<T>(obj: unknown, key: string, value: T): void {
|
|
6
|
+
if (obj == null) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
(obj as Record<string, unknown>)[key] = value;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function isError(value: unknown): value is Error {
|
|
2
|
+
return value instanceof Error;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function errorToMessage(value: unknown, defMsg?: string): string {
|
|
6
|
+
return isError(value) ? value.message : defMsg ?? `${fmtMsg(value)}`;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function fmtMsg(value: unknown): string {
|
|
10
|
+
if (value instanceof Object) {
|
|
11
|
+
return JSON.stringify(value);
|
|
12
|
+
}
|
|
13
|
+
return `${value}`;
|
|
14
|
+
}
|
package/src/util/hex.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export namespace Hex {
|
|
2
2
|
export function decode(hex: string): ArrayBuffer {
|
|
3
|
+
hex = hex.replace(/^0x/, '').replace(/\s/g, '');
|
|
3
4
|
const values = hex.match(/[\da-f]{2}/gi);
|
|
4
|
-
if (!values) {
|
|
5
|
-
throw Error(
|
|
5
|
+
if (!values || values.length != hex.length / 2) {
|
|
6
|
+
throw Error(`Invalid hex string`);
|
|
6
7
|
}
|
|
7
8
|
return new Uint8Array(values.map((b) => parseInt(b, 16))).buffer;
|
|
8
9
|
}
|
package/src/util/rxjs.ts
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
|
-
import { from, Observable, throwError } from 'rxjs';
|
|
2
|
-
import {
|
|
1
|
+
import { catchError, from, Observable, throwError } from 'rxjs';
|
|
2
|
+
import { ClassType } from '../class-type';
|
|
3
3
|
import { Problem } from '../problem';
|
|
4
4
|
|
|
5
5
|
export function nullifyNotFound<T>(): (
|
|
6
6
|
source: Observable<T>
|
|
7
7
|
) => Observable<T | null> {
|
|
8
|
+
return nullifyResponse([404], []);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function nullifyResponse<T>(
|
|
12
|
+
statuses: number[],
|
|
13
|
+
problemTypes: ClassType<Problem>[]
|
|
14
|
+
): (source: Observable<T>) => Observable<T | null> {
|
|
8
15
|
return function <T>(source: Observable<T>): Observable<T | null> {
|
|
9
16
|
return source.pipe(
|
|
10
17
|
catchError((error) => {
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
const errorType = error.constructor as ClassType<Problem>;
|
|
19
|
+
if (
|
|
20
|
+
error instanceof Problem &&
|
|
21
|
+
(statuses.includes(error.status) || problemTypes.includes(errorType))
|
|
22
|
+
) {
|
|
23
|
+
return from([null]);
|
|
13
24
|
}
|
|
14
|
-
return
|
|
25
|
+
return throwError(error);
|
|
15
26
|
})
|
|
16
27
|
);
|
|
17
28
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function secondsToNumber(seconds: number, nanos: number): number {
|
|
2
|
+
if (nanos == 0) {
|
|
3
|
+
return seconds;
|
|
4
|
+
}
|
|
5
|
+
const nanoStr = nanos.toString();
|
|
6
|
+
return parseFloat(`${seconds}.${'0'.repeat(9 - nanoStr.length)}${nanos}`);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function encodeSeconds(seconds: number, fraction: number): unknown[] {
|
|
10
|
+
const result = [];
|
|
11
|
+
if (seconds != 0 || fraction != 0) {
|
|
12
|
+
result.push(seconds);
|
|
13
|
+
if (fraction != 0) {
|
|
14
|
+
result.push(fraction);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary-decoder.js","sourceRoot":"","sources":["../src/binary-decoder.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAGxB,KAAK,CAAC,MAAM,CAAI,QAAkB,EAAE,IAAa;QAC/C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;YAC3B,OAAQ,WAA4B,CAAC;SACtC;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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary-encoder.js","sourceRoot":"","sources":["../src/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"}
|
package/dist/cbor-decoder.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AnyType } from './any-type';
|
|
2
|
-
import { MediaTypeDecoder } from './media-type-decoder';
|
|
3
|
-
export declare class CBORDecoder implements MediaTypeDecoder {
|
|
4
|
-
static get default(): CBORDecoder;
|
|
5
|
-
private readonly customDeserializers;
|
|
6
|
-
private readonly parser;
|
|
7
|
-
constructor();
|
|
8
|
-
decode<T>(response: Response, type: AnyType): Promise<T>;
|
|
9
|
-
decodeData<T>(buffer: ArrayBuffer, type: AnyType): T;
|
|
10
|
-
private static untag;
|
|
11
|
-
private dateTimeDeserializer;
|
|
12
|
-
private dateDeserializer;
|
|
13
|
-
private urlDeserializer;
|
|
14
|
-
private arrayBufferDeserializer;
|
|
15
|
-
}
|
package/dist/cbor-decoder.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { CBOR } from '@outfoxx/cbor-redux';
|
|
2
|
-
import { JsonParser } from '@outfoxx/jackson-js';
|
|
3
|
-
import { epochDateTag, isoDateTag, uriTag } from './cbor-tags';
|
|
4
|
-
import { DateTime } from './date-time-types';
|
|
5
|
-
import { Base64 } from './util/base64';
|
|
6
|
-
export class CBORDecoder {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.parser = new JsonParser();
|
|
9
|
-
this.dateTimeDeserializer = (key, value) => {
|
|
10
|
-
if (value == null) {
|
|
11
|
-
return value;
|
|
12
|
-
}
|
|
13
|
-
if (DateTime.isDateTime(value)) {
|
|
14
|
-
return value;
|
|
15
|
-
}
|
|
16
|
-
if (value instanceof Date) {
|
|
17
|
-
return DateTime.fromJSDate(value, { zone: 'UTC' });
|
|
18
|
-
}
|
|
19
|
-
if (typeof value === 'number') {
|
|
20
|
-
return DateTime.fromSeconds(value, { zone: 'UTC' });
|
|
21
|
-
}
|
|
22
|
-
if (typeof value === 'string') {
|
|
23
|
-
return DateTime.fromISO(value, { setZone: true });
|
|
24
|
-
}
|
|
25
|
-
throw new Error(`Invalid date value for property ${key}`);
|
|
26
|
-
};
|
|
27
|
-
this.dateDeserializer = (key, value) => {
|
|
28
|
-
if (value == null) {
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
if (value instanceof Date) {
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
if (DateTime.isDateTime(value)) {
|
|
35
|
-
return value.toJSDate();
|
|
36
|
-
}
|
|
37
|
-
if (typeof value === 'number') {
|
|
38
|
-
return new Date(value * 1000);
|
|
39
|
-
}
|
|
40
|
-
if (typeof value === 'string') {
|
|
41
|
-
return new Date(value);
|
|
42
|
-
}
|
|
43
|
-
throw new Error(`Invalid date value for property ${key}`);
|
|
44
|
-
};
|
|
45
|
-
this.urlDeserializer = (key, value) => {
|
|
46
|
-
if (value == null) {
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
if (value instanceof URL) {
|
|
50
|
-
return value;
|
|
51
|
-
}
|
|
52
|
-
if (typeof value === 'string') {
|
|
53
|
-
return new URL(value);
|
|
54
|
-
}
|
|
55
|
-
throw Error(`Invalid URL value for property ${key}`);
|
|
56
|
-
};
|
|
57
|
-
this.arrayBufferDeserializer = (key, value) => {
|
|
58
|
-
if (value == null) {
|
|
59
|
-
return value;
|
|
60
|
-
}
|
|
61
|
-
if (value instanceof ArrayBuffer) {
|
|
62
|
-
return value;
|
|
63
|
-
}
|
|
64
|
-
if (ArrayBuffer.isView(value)) {
|
|
65
|
-
return value.buffer.slice(value.byteOffset, value.byteOffset + value.byteLength);
|
|
66
|
-
}
|
|
67
|
-
if (typeof value === 'string') {
|
|
68
|
-
return Base64.decode(value);
|
|
69
|
-
}
|
|
70
|
-
throw Error(`Invalid ArrayBuffer value for property ${key}`);
|
|
71
|
-
};
|
|
72
|
-
this.customDeserializers = [
|
|
73
|
-
{
|
|
74
|
-
type: () => Date,
|
|
75
|
-
mapper: this.dateDeserializer,
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
type: () => DateTime,
|
|
79
|
-
mapper: this.dateTimeDeserializer,
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
type: () => URL,
|
|
83
|
-
mapper: this.urlDeserializer,
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
type: () => ArrayBuffer,
|
|
87
|
-
mapper: this.arrayBufferDeserializer,
|
|
88
|
-
},
|
|
89
|
-
];
|
|
90
|
-
}
|
|
91
|
-
static get default() {
|
|
92
|
-
return new CBORDecoder();
|
|
93
|
-
}
|
|
94
|
-
async decode(response, type) {
|
|
95
|
-
return this.decodeData(await response.arrayBuffer(), type);
|
|
96
|
-
}
|
|
97
|
-
decodeData(buffer, type) {
|
|
98
|
-
return this.parser.transform(CBOR.decode(buffer, CBORDecoder.untag), {
|
|
99
|
-
deserializers: this.customDeserializers,
|
|
100
|
-
mainCreator: () => type,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
105
|
-
CBORDecoder.untag = (value, tag) => {
|
|
106
|
-
switch (tag) {
|
|
107
|
-
case isoDateTag:
|
|
108
|
-
if (typeof value !== 'string') {
|
|
109
|
-
throw Error('Invalid iso date value');
|
|
110
|
-
}
|
|
111
|
-
return DateTime.fromISO(value, { setZone: true });
|
|
112
|
-
case epochDateTag:
|
|
113
|
-
if (typeof value !== 'number') {
|
|
114
|
-
throw Error('Invalid epoch date value');
|
|
115
|
-
}
|
|
116
|
-
return DateTime.fromSeconds(value, { zone: 'UTC' });
|
|
117
|
-
case uriTag:
|
|
118
|
-
if (typeof value !== 'string') {
|
|
119
|
-
throw Error('Invalid URI value');
|
|
120
|
-
}
|
|
121
|
-
return new URL(value);
|
|
122
|
-
default:
|
|
123
|
-
return value;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=cbor-decoder.js.map
|
package/dist/cbor-decoder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cbor-decoder.js","sourceRoot":"","sources":["../src/cbor-decoder.ts"],"names":[],"mappings":"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"}
|
package/dist/cbor-encoder.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { AnyType } from './any-type';
|
|
2
|
-
import { MediaTypeEncoder } from './media-type-encoder';
|
|
3
|
-
export declare class CBOREncoder implements MediaTypeEncoder {
|
|
4
|
-
readonly dateEncoding: CBOREncoder.DateEncoding;
|
|
5
|
-
static get default(): CBOREncoder;
|
|
6
|
-
private readonly customSerializers;
|
|
7
|
-
private stringifier;
|
|
8
|
-
constructor(dateEncoding: CBOREncoder.DateEncoding);
|
|
9
|
-
encode<T>(value: T, type?: AnyType): ArrayBuffer;
|
|
10
|
-
private encodeJSON;
|
|
11
|
-
private dateTimeSerializer;
|
|
12
|
-
private dateSerializer;
|
|
13
|
-
private urlSerializer;
|
|
14
|
-
}
|
|
15
|
-
export declare namespace CBOREncoder {
|
|
16
|
-
/**
|
|
17
|
-
* Configures how `Date` & `DateTime` parameters are encoded.
|
|
18
|
-
*/
|
|
19
|
-
enum DateEncoding {
|
|
20
|
-
/**
|
|
21
|
-
* Encode `Date`/`DateTime` values as a UNIX timestamp (floating point seconds since epoch).
|
|
22
|
-
*/
|
|
23
|
-
SECONDS_SINCE_EPOCH = "float",
|
|
24
|
-
/**
|
|
25
|
-
* Encode `Date`/`DateTime` values as an ISO-8601-formatted string (in RFC 3339 format). This is the default behavior.
|
|
26
|
-
*/
|
|
27
|
-
ISO8601 = "string"
|
|
28
|
-
}
|
|
29
|
-
}
|
package/dist/cbor-encoder.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { CBOR, TaggedValue } from '@outfoxx/cbor-redux';
|
|
2
|
-
import { JsonStringifier } from '@outfoxx/jackson-js';
|
|
3
|
-
import { DateTime } from 'luxon';
|
|
4
|
-
import { epochDateTag, isoDateTag, uriTag } from './cbor-tags';
|
|
5
|
-
export class CBOREncoder {
|
|
6
|
-
constructor(dateEncoding) {
|
|
7
|
-
this.dateEncoding = dateEncoding;
|
|
8
|
-
this.stringifier = new JsonStringifier();
|
|
9
|
-
this.dateTimeSerializer = (key, value) => {
|
|
10
|
-
if (value == null) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
switch (this.dateEncoding) {
|
|
14
|
-
case CBOREncoder.DateEncoding.ISO8601:
|
|
15
|
-
return new TaggedValue(value.toISO(), isoDateTag);
|
|
16
|
-
case CBOREncoder.DateEncoding.SECONDS_SINCE_EPOCH:
|
|
17
|
-
return new TaggedValue(value.toSeconds(), epochDateTag);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
this.dateSerializer = (key, value) => {
|
|
21
|
-
if (value == null) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
switch (this.dateEncoding) {
|
|
25
|
-
case CBOREncoder.DateEncoding.ISO8601:
|
|
26
|
-
return new TaggedValue(value.toISOString(), isoDateTag);
|
|
27
|
-
case CBOREncoder.DateEncoding.SECONDS_SINCE_EPOCH:
|
|
28
|
-
return new TaggedValue(value.getTime() / 1000.0, epochDateTag);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
this.urlSerializer = (key, value) => {
|
|
32
|
-
if (value == null) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
return new TaggedValue(value.toString(), uriTag);
|
|
36
|
-
};
|
|
37
|
-
this.customSerializers = [
|
|
38
|
-
{
|
|
39
|
-
type: () => Date,
|
|
40
|
-
mapper: this.dateSerializer,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
type: () => DateTime,
|
|
44
|
-
mapper: this.dateTimeSerializer,
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
type: () => URL,
|
|
48
|
-
mapper: this.urlSerializer,
|
|
49
|
-
},
|
|
50
|
-
];
|
|
51
|
-
}
|
|
52
|
-
static get default() {
|
|
53
|
-
return new CBOREncoder(CBOREncoder.DateEncoding.SECONDS_SINCE_EPOCH);
|
|
54
|
-
}
|
|
55
|
-
encode(value, type) {
|
|
56
|
-
return CBOR.encode(this.encodeJSON(value, type));
|
|
57
|
-
}
|
|
58
|
-
encodeJSON(value, type) {
|
|
59
|
-
return this.stringifier.transform(value, {
|
|
60
|
-
serializers: this.customSerializers,
|
|
61
|
-
mainCreator: () => type !== null && type !== void 0 ? type : [Object],
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
(function (CBOREncoder) {
|
|
66
|
-
/**
|
|
67
|
-
* Configures how `Date` & `DateTime` parameters are encoded.
|
|
68
|
-
*/
|
|
69
|
-
let DateEncoding;
|
|
70
|
-
(function (DateEncoding) {
|
|
71
|
-
/**
|
|
72
|
-
* Encode `Date`/`DateTime` values as a UNIX timestamp (floating point seconds since epoch).
|
|
73
|
-
*/
|
|
74
|
-
DateEncoding["SECONDS_SINCE_EPOCH"] = "float";
|
|
75
|
-
/**
|
|
76
|
-
* Encode `Date`/`DateTime` values as an ISO-8601-formatted string (in RFC 3339 format). This is the default behavior.
|
|
77
|
-
*/
|
|
78
|
-
DateEncoding["ISO8601"] = "string";
|
|
79
|
-
})(DateEncoding = CBOREncoder.DateEncoding || (CBOREncoder.DateEncoding = {}));
|
|
80
|
-
})(CBOREncoder || (CBOREncoder = {}));
|
|
81
|
-
//# sourceMappingURL=cbor-encoder.js.map
|
package/dist/cbor-encoder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cbor-encoder.js","sourceRoot":"","sources":["../src/cbor-encoder.ts"],"names":[],"mappings":"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"}
|
package/dist/cbor-tags.d.ts
DELETED
package/dist/cbor-tags.js
DELETED
package/dist/cbor-tags.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cbor-tags.js","sourceRoot":"","sources":["../src/cbor-tags.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC"}
|
package/dist/http-error.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare class HttpError extends Error {
|
|
2
|
-
url: string;
|
|
3
|
-
httpVersion: string;
|
|
4
|
-
status: number;
|
|
5
|
-
statusText: string;
|
|
6
|
-
headers: Headers;
|
|
7
|
-
body?: string | undefined;
|
|
8
|
-
constructor(message: string, url: string, httpVersion: string, status: number, statusText: string, headers: Headers, body?: string | undefined);
|
|
9
|
-
static fromResponse(message: string, response: Response): Promise<HttpError>;
|
|
10
|
-
}
|
package/dist/http-error.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export class HttpError extends Error {
|
|
2
|
-
constructor(message, url, httpVersion, status, statusText, headers, body) {
|
|
3
|
-
super(message);
|
|
4
|
-
this.url = url;
|
|
5
|
-
this.httpVersion = httpVersion;
|
|
6
|
-
this.status = status;
|
|
7
|
-
this.statusText = statusText;
|
|
8
|
-
this.headers = headers;
|
|
9
|
-
this.body = body;
|
|
10
|
-
}
|
|
11
|
-
static async fromResponse(message, response) {
|
|
12
|
-
var _a;
|
|
13
|
-
let body;
|
|
14
|
-
try {
|
|
15
|
-
if ((_a = response.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.startsWith('text/')) {
|
|
16
|
-
body = await response.text();
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
const blob = await response.blob();
|
|
20
|
-
body = `<binary data: ${blob.size} bytes>`;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
// ignore errors
|
|
25
|
-
body = '<unable to show response data>';
|
|
26
|
-
}
|
|
27
|
-
if (body.length > 512) {
|
|
28
|
-
body = `${body.slice(0, 512)}<<... another ${body.length - 512} bytes>>`;
|
|
29
|
-
}
|
|
30
|
-
const fullMessage = `${message}
|
|
31
|
-
|
|
32
|
-
########## BEGIN REQUEST ##########
|
|
33
|
-
|
|
34
|
-
HTTP/?.? ${response.status} ${response.statusText}
|
|
35
|
-
${Array.from(response.headers.entries())
|
|
36
|
-
.map(([name, value]) => `${name}: ${value}`)
|
|
37
|
-
.join('\n ')}
|
|
38
|
-
${body !== null && body !== void 0 ? body : '<none>'}
|
|
39
|
-
|
|
40
|
-
########### END REQUEST ###########
|
|
41
|
-
`;
|
|
42
|
-
return new HttpError(fullMessage, response.url, '?.?', response.status, response.statusText, response.headers, body);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=http-error.js.map
|
package/dist/http-error.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-error.js","sourceRoot":"","sources":["../src/http-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YACE,OAAe,EACR,GAAW,EACX,WAAmB,EACnB,MAAc,EACd,UAAkB,EAClB,OAAgB,EAChB,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAPR,QAAG,GAAH,GAAG,CAAQ;QACX,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;QAChB,SAAI,GAAJ,IAAI,CAAS;IAGtB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAAe,EACf,QAAkB;;QAElB,IAAI,IAAwB,CAAC;QAC7B,IAAI;YACF,UAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,UAAU,CAAC,OAAO,GAAG;gBAC7D,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC9B;iBAAM;gBACL,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,GAAG,iBAAiB,IAAI,CAAC,IAAI,SAAS,CAAC;aAC5C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,gBAAgB;YAChB,IAAI,GAAG,gCAAgC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC;SAC1E;QACD,MAAM,WAAW,GAAG,GAAG,OAAO;;;;eAInB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU;MAC/C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;aAC3C,IAAI,CAAC,QAAQ,CAAC;MACf,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,QAAQ;;;KAGjB,CAAC;QACF,OAAO,IAAI,SAAS,CAClB,WAAW,EACX,QAAQ,CAAC,GAAG,EACZ,KAAK,EACL,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,EAChB,IAAI,CACL,CAAC;IACJ,CAAC;CACF"}
|
package/dist/json-decoder.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { AnyType } from './any-type';
|
|
2
|
-
import { MediaTypeDecoder } from './media-type-decoder';
|
|
3
|
-
export declare class JSONDecoder implements MediaTypeDecoder {
|
|
4
|
-
readonly numericDateDecoding: JSONDecoder.NumericDateDecoding;
|
|
5
|
-
static get default(): JSONDecoder;
|
|
6
|
-
private readonly customDeserializers;
|
|
7
|
-
private readonly parser;
|
|
8
|
-
constructor(numericDateDecoding: JSONDecoder.NumericDateDecoding);
|
|
9
|
-
decode<T>(response: Response, type: AnyType): Promise<T>;
|
|
10
|
-
decodeText<T>(text: string, type: AnyType): T;
|
|
11
|
-
decodeJSON<T, U>(value: T, type: AnyType): Promise<U>;
|
|
12
|
-
private dateTimeDeserializer;
|
|
13
|
-
private dateDeserializer;
|
|
14
|
-
private urlDeserializer;
|
|
15
|
-
private arrayBufferDeserializer;
|
|
16
|
-
}
|
|
17
|
-
export declare namespace JSONDecoder {
|
|
18
|
-
/**
|
|
19
|
-
* Configures how numeric `Date` & `DateTime` parameters are decoded.
|
|
20
|
-
*/
|
|
21
|
-
enum NumericDateDecoding {
|
|
22
|
-
/**
|
|
23
|
-
* Decode the `Date`/`DateTime` as a UNIX timestamp (floating point seconds since epoch).
|
|
24
|
-
*/
|
|
25
|
-
SECONDS_SINCE_EPOCH = 0,
|
|
26
|
-
/**
|
|
27
|
-
* Decode the `Date`/`DateTime` as UNIX millisecond timestamp (integer milliseconds since epoch).
|
|
28
|
-
*/
|
|
29
|
-
MILLISECONDS_SINCE_EPOCH = 1
|
|
30
|
-
}
|
|
31
|
-
}
|