@api-client/core 0.5.24 → 0.5.25
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/build/src/events/BaseEvents.d.ts +1 -1
- package/build/src/events/BaseEvents.js.map +1 -1
- package/build/src/lib/transformers/PayloadSerializer.d.ts +11 -5
- package/build/src/lib/transformers/PayloadSerializer.js +36 -10
- package/build/src/lib/transformers/PayloadSerializer.js.map +1 -1
- package/build/src/models/SerializablePayload.js +1 -6
- package/build/src/models/SerializablePayload.js.map +1 -1
- package/package.json +1 -1
- package/src/events/BaseEvents.ts +1 -1
- package/src/lib/transformers/PayloadSerializer.ts +38 -11
- package/src/models/SerializablePayload.ts +1 -5
|
@@ -13,7 +13,7 @@ export interface ContextEventDetailWithResult<T> {
|
|
|
13
13
|
/**
|
|
14
14
|
* A base class to use with context providers.
|
|
15
15
|
*/
|
|
16
|
-
export declare class ContextEvent<S extends object, R> extends CustomEvent<ContextEventDetailWithResult<R>> {
|
|
16
|
+
export declare class ContextEvent<S extends object, R> extends CustomEvent<S & ContextEventDetailWithResult<R>> {
|
|
17
17
|
/**
|
|
18
18
|
* @param type The event type
|
|
19
19
|
* @param detail The optional detail object. It adds object's properties to the `detail` with the `result` property.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEvents.js","sourceRoot":"","sources":["../../../src/events/BaseEvents.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAc3C;;GAEG;AACH,MAAM,OAAO,YAAkC,SAAQ,
|
|
1
|
+
{"version":3,"file":"BaseEvents.js","sourceRoot":"","sources":["../../../src/events/BaseEvents.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAc3C;;GAEG;AACH,MAAM,OAAO,YAAkC,SAAQ,WAAgD;IACrG;;;OAGG;IACH,YAAY,IAAY,EAAE,MAAS;QACjC,KAAK,CAAC,IAAI,EAAE;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;gBACjB,GAAG,MAAM;aACV;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAaD;;GAEG;AACH,MAAM,OAAO,gBAAoB,SAAQ,YAAuC;IAC9E;;;;OAIG;IACH,YAAY,IAAY,EAAE,EAAU,EAAE,MAAe;QACnD,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF;AASD;;GAEG;AACH,MAAM,OAAO,oBAAwB,SAAQ,YAA2C;IACtF;;;OAGG;IACH,YAAY,IAAY,EAAE,GAAa;QACrC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC;CACF;AAqCD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAA2D;IACjG;;;;OAIG;IACH,YAAY,IAAY,EAAE,EAAU,EAAE,MAAe;QACnD,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF;AAkBD;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAgC;IAC3E;;;OAGG;IACH,YAAY,IAAY,EAAE,MAA2B;QACnD,KAAK,CAAC,IAAI,EAAE;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAA2B,SAAQ,WAAmC;IACjF;;;OAGG;IACH,YAAY,IAAY,EAAE,MAA8B;QACtD,KAAK,CAAC,IAAI,EAAE;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAaD;;;;;GAKG;AACH,MAAM,OAAO,kBAA4C,SAAQ,YAAiE;IAChI,YAAY,IAAY,EAAE,UAAuC;QAC/D,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF;AAgCD,MAAM,OAAO,gBAAoB,SAAQ,YAAsD;IAC7F;;;OAGG;IACH,YAAY,IAAY,EAAE,OAA2B,EAAE;QACrD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
export declare type PayloadTypes = 'string' | 'file' | 'blob' | 'buffer' | 'arraybuffer' | 'formdata' | 'x-www-form-urlencoded';
|
|
3
3
|
export declare type DeserializedPayload = string | Blob | File | FormData | Buffer | ArrayBuffer | undefined;
|
|
4
|
+
export declare const SupportedPayloadTypes: PayloadTypes[];
|
|
4
5
|
export interface IMultipartBody {
|
|
5
6
|
/**
|
|
6
7
|
* When true a this entry represent a file part
|
|
@@ -58,6 +59,11 @@ export declare const hasFormData: boolean;
|
|
|
58
59
|
export declare const hasBlob: boolean;
|
|
59
60
|
export declare const hasBuffer: boolean;
|
|
60
61
|
export declare class PayloadSerializer {
|
|
62
|
+
/**
|
|
63
|
+
* Checked whether the passed payload can be safely stored in the data store.
|
|
64
|
+
* @param payload The value to test.
|
|
65
|
+
*/
|
|
66
|
+
static isSafePayload(payload: any): boolean;
|
|
61
67
|
/**
|
|
62
68
|
* Transforms the payload into a data store safe object.
|
|
63
69
|
*/
|
|
@@ -79,8 +85,8 @@ export declare class PayloadSerializer {
|
|
|
79
85
|
/**
|
|
80
86
|
* When the passed argument is an ArrayBuffer it creates an object describing the object in a safe to store object.
|
|
81
87
|
*
|
|
82
|
-
* @param
|
|
83
|
-
* @returns
|
|
88
|
+
* @param payload
|
|
89
|
+
* @returns The buffer metadata or undefined if the passed argument is not an ArrayBuffer.
|
|
84
90
|
*/
|
|
85
91
|
static stringifyArrayBuffer(payload: ArrayBuffer): ISafePayload | undefined;
|
|
86
92
|
/**
|
|
@@ -93,9 +99,9 @@ export declare class PayloadSerializer {
|
|
|
93
99
|
/**
|
|
94
100
|
* Transforms a FormData entry into a safe-to-store text entry
|
|
95
101
|
*
|
|
96
|
-
* @param
|
|
97
|
-
* @param
|
|
98
|
-
* @
|
|
102
|
+
* @param name The part name
|
|
103
|
+
* @param file The part value
|
|
104
|
+
* @returns Transformed FormData part to a datastore safe entry.
|
|
99
105
|
*/
|
|
100
106
|
static serializeFormDataEntry(name: string, file: string | File): Promise<IMultipartBody>;
|
|
101
107
|
/**
|
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
import { blobToDataUrl } from './Utils.js';
|
|
2
|
+
export const SupportedPayloadTypes = ['string', 'file', 'blob', 'buffer', 'arraybuffer', 'formdata', 'x-www-form-urlencoded'];
|
|
2
3
|
export const hasFormData = typeof FormData === 'function';
|
|
3
4
|
export const hasBlob = typeof Blob === 'function';
|
|
4
5
|
export const hasBuffer = typeof Buffer === 'function';
|
|
5
6
|
export class PayloadSerializer {
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
+
* Checked whether the passed payload can be safely stored in the data store.
|
|
9
|
+
* @param payload The value to test.
|
|
8
10
|
*/
|
|
9
|
-
static
|
|
10
|
-
if (
|
|
11
|
-
|
|
11
|
+
static isSafePayload(payload) {
|
|
12
|
+
if (payload === undefined || payload === null) {
|
|
13
|
+
// both values should be stored correctly
|
|
14
|
+
return true;
|
|
12
15
|
}
|
|
13
16
|
if (typeof payload === 'string') {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
// checks whether the payload is already serialized./
|
|
20
|
+
const typed = payload;
|
|
21
|
+
if (typed.type && SupportedPayloadTypes.includes(typed.type)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Transforms the payload into a data store safe object.
|
|
28
|
+
*/
|
|
29
|
+
static async serialize(payload) {
|
|
30
|
+
if (PayloadSerializer.isSafePayload(payload)) {
|
|
31
|
+
if (payload === null) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
14
34
|
return payload;
|
|
15
35
|
}
|
|
36
|
+
// if (payload === undefined || payload === null) {
|
|
37
|
+
// return undefined;
|
|
38
|
+
// }
|
|
39
|
+
// if (typeof payload === 'string') {
|
|
40
|
+
// return payload;
|
|
41
|
+
// }
|
|
16
42
|
if (hasBlob && payload instanceof Blob) {
|
|
17
43
|
return PayloadSerializer.stringifyBlob(payload);
|
|
18
44
|
}
|
|
@@ -67,8 +93,8 @@ export class PayloadSerializer {
|
|
|
67
93
|
/**
|
|
68
94
|
* When the passed argument is an ArrayBuffer it creates an object describing the object in a safe to store object.
|
|
69
95
|
*
|
|
70
|
-
* @param
|
|
71
|
-
* @returns
|
|
96
|
+
* @param payload
|
|
97
|
+
* @returns The buffer metadata or undefined if the passed argument is not an ArrayBuffer.
|
|
72
98
|
*/
|
|
73
99
|
static stringifyArrayBuffer(payload) {
|
|
74
100
|
if (payload.byteLength) {
|
|
@@ -100,9 +126,9 @@ export class PayloadSerializer {
|
|
|
100
126
|
/**
|
|
101
127
|
* Transforms a FormData entry into a safe-to-store text entry
|
|
102
128
|
*
|
|
103
|
-
* @param
|
|
104
|
-
* @param
|
|
105
|
-
* @
|
|
129
|
+
* @param name The part name
|
|
130
|
+
* @param file The part value
|
|
131
|
+
* @returns Transformed FormData part to a datastore safe entry.
|
|
106
132
|
*/
|
|
107
133
|
static async serializeFormDataEntry(name, file) {
|
|
108
134
|
if (typeof file === 'string') {
|
|
@@ -137,7 +163,7 @@ export class PayloadSerializer {
|
|
|
137
163
|
* Restores the payload into its original format.
|
|
138
164
|
*/
|
|
139
165
|
static async deserialize(payload) {
|
|
140
|
-
if (
|
|
166
|
+
if (payload === undefined || payload === null) {
|
|
141
167
|
return undefined;
|
|
142
168
|
}
|
|
143
169
|
if (typeof payload === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayloadSerializer.js","sourceRoot":"","sources":["../../../../src/lib/transformers/PayloadSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"PayloadSerializer.js","sourceRoot":"","sources":["../../../../src/lib/transformers/PayloadSerializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,7 @@ export class SerializablePayload {
|
|
|
15
15
|
*/
|
|
16
16
|
async writePayload(message) {
|
|
17
17
|
this._sourcePayload = message;
|
|
18
|
-
|
|
19
|
-
this.payload = message;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.payload = await PayloadSerializer.serialize(message);
|
|
23
|
-
}
|
|
18
|
+
this.payload = await PayloadSerializer.serialize(message);
|
|
24
19
|
}
|
|
25
20
|
/**
|
|
26
21
|
* Reads the payload as its original format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerializablePayload.js","sourceRoot":"","sources":["../../../src/models/SerializablePayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAEtH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACH,OAAO,CAAW;IAClB;;;OAGG;IACO,cAAc,CAAU;IAElC;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,
|
|
1
|
+
{"version":3,"file":"SerializablePayload.js","sourceRoot":"","sources":["../../../src/models/SerializablePayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgC,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAEtH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACH,OAAO,CAAW;IAClB;;;OAGG;IACO,cAAc,CAAU;IAElC;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,OAA8B,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzE;QACD,OAAO,IAAI,CAAC,cAAqC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,OAAO,CAAC;SAChB;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,OAAO,OAAO,CAAC,IAAc,CAAC;SAC/B;QACD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvD,6CAA6C;YAC7C,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,IAAI,IAAI,YAAY,MAAM,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACxB;QACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAmB,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF"}
|
package/package.json
CHANGED
package/src/events/BaseEvents.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface ContextEventDetailWithResult<T> {
|
|
|
15
15
|
/**
|
|
16
16
|
* A base class to use with context providers.
|
|
17
17
|
*/
|
|
18
|
-
export class ContextEvent<S extends object, R> extends CustomEvent<ContextEventDetailWithResult<R>> {
|
|
18
|
+
export class ContextEvent<S extends object, R> extends CustomEvent<S & ContextEventDetailWithResult<R>> {
|
|
19
19
|
/**
|
|
20
20
|
* @param type The event type
|
|
21
21
|
* @param detail The optional detail object. It adds object's properties to the `detail` with the `result` property.
|
|
@@ -2,6 +2,7 @@ import { blobToDataUrl } from './Utils.js';
|
|
|
2
2
|
|
|
3
3
|
export type PayloadTypes = 'string' | 'file' | 'blob' | 'buffer' | 'arraybuffer' | 'formdata' | 'x-www-form-urlencoded';
|
|
4
4
|
export type DeserializedPayload = string | Blob | File | FormData | Buffer | ArrayBuffer | undefined;
|
|
5
|
+
export const SupportedPayloadTypes: PayloadTypes[] = ['string', 'file', 'blob', 'buffer', 'arraybuffer', 'formdata', 'x-www-form-urlencoded'];
|
|
5
6
|
|
|
6
7
|
export interface IMultipartBody {
|
|
7
8
|
/**
|
|
@@ -64,15 +65,41 @@ export const hasBuffer: boolean = typeof Buffer === 'function';
|
|
|
64
65
|
|
|
65
66
|
export class PayloadSerializer {
|
|
66
67
|
/**
|
|
67
|
-
*
|
|
68
|
+
* Checked whether the passed payload can be safely stored in the data store.
|
|
69
|
+
* @param payload The value to test.
|
|
68
70
|
*/
|
|
69
|
-
static
|
|
70
|
-
if (
|
|
71
|
-
|
|
71
|
+
static isSafePayload(payload: any): boolean {
|
|
72
|
+
if (payload === undefined || payload === null) {
|
|
73
|
+
// both values should be stored correctly
|
|
74
|
+
return true;
|
|
72
75
|
}
|
|
73
76
|
if (typeof payload === 'string') {
|
|
74
|
-
return
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
// checks whether the payload is already serialized./
|
|
80
|
+
const typed = payload as ISafePayload;
|
|
81
|
+
if (typed.type && SupportedPayloadTypes.includes(typed.type)) {
|
|
82
|
+
return true
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Transforms the payload into a data store safe object.
|
|
89
|
+
*/
|
|
90
|
+
static async serialize(payload: DeserializedPayload): Promise<ISafePayload | string | undefined> {
|
|
91
|
+
if (PayloadSerializer.isSafePayload(payload)) {
|
|
92
|
+
if (payload === null) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
return (payload as unknown) as ISafePayload | string | undefined;
|
|
75
96
|
}
|
|
97
|
+
// if (payload === undefined || payload === null) {
|
|
98
|
+
// return undefined;
|
|
99
|
+
// }
|
|
100
|
+
// if (typeof payload === 'string') {
|
|
101
|
+
// return payload;
|
|
102
|
+
// }
|
|
76
103
|
if (hasBlob && payload instanceof Blob) {
|
|
77
104
|
return PayloadSerializer.stringifyBlob(payload);
|
|
78
105
|
}
|
|
@@ -129,8 +156,8 @@ export class PayloadSerializer {
|
|
|
129
156
|
/**
|
|
130
157
|
* When the passed argument is an ArrayBuffer it creates an object describing the object in a safe to store object.
|
|
131
158
|
*
|
|
132
|
-
* @param
|
|
133
|
-
* @returns
|
|
159
|
+
* @param payload
|
|
160
|
+
* @returns The buffer metadata or undefined if the passed argument is not an ArrayBuffer.
|
|
134
161
|
*/
|
|
135
162
|
static stringifyArrayBuffer(payload: ArrayBuffer): ISafePayload | undefined {
|
|
136
163
|
if (payload.byteLength) {
|
|
@@ -164,9 +191,9 @@ export class PayloadSerializer {
|
|
|
164
191
|
/**
|
|
165
192
|
* Transforms a FormData entry into a safe-to-store text entry
|
|
166
193
|
*
|
|
167
|
-
* @param
|
|
168
|
-
* @param
|
|
169
|
-
* @
|
|
194
|
+
* @param name The part name
|
|
195
|
+
* @param file The part value
|
|
196
|
+
* @returns Transformed FormData part to a datastore safe entry.
|
|
170
197
|
*/
|
|
171
198
|
static async serializeFormDataEntry(name: string, file: string | File): Promise<IMultipartBody> {
|
|
172
199
|
if (typeof file === 'string') {
|
|
@@ -202,7 +229,7 @@ export class PayloadSerializer {
|
|
|
202
229
|
* Restores the payload into its original format.
|
|
203
230
|
*/
|
|
204
231
|
static async deserialize(payload: ISafePayload | string | undefined): Promise<DeserializedPayload> {
|
|
205
|
-
if (
|
|
232
|
+
if (payload === undefined || payload === null) {
|
|
206
233
|
return undefined;
|
|
207
234
|
}
|
|
208
235
|
if (typeof payload === 'string') {
|
|
@@ -17,11 +17,7 @@ export class SerializablePayload {
|
|
|
17
17
|
*/
|
|
18
18
|
async writePayload(message: unknown): Promise<void> {
|
|
19
19
|
this._sourcePayload = message;
|
|
20
|
-
|
|
21
|
-
this.payload = message;
|
|
22
|
-
} else {
|
|
23
|
-
this.payload = await PayloadSerializer.serialize(message as DeserializedPayload);
|
|
24
|
-
}
|
|
20
|
+
this.payload = await PayloadSerializer.serialize(message as DeserializedPayload);
|
|
25
21
|
}
|
|
26
22
|
|
|
27
23
|
/**
|