@adaskothebeast/angular-typed-http-client 6.0.0 → 8.0.0
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.
|
@@ -1,140 +1,147 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpContextToken, HttpResponse, provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi, HttpClient, HttpContext } from '@angular/common/http';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Injectable, inject, NgModule } from '@angular/core';
|
|
4
|
-
import {
|
|
4
|
+
import { plainToInstance, instanceToPlain } from 'class-transformer';
|
|
5
5
|
import { map } from 'rxjs/operators';
|
|
6
|
-
import {
|
|
6
|
+
import { map as map$1, filter } from 'rxjs';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
|
|
9
|
+
/** Carries the target class type across request clones. */
|
|
10
|
+
const RESPONSE_TYPE_CLASS = new HttpContextToken(() => null);
|
|
11
|
+
|
|
9
12
|
class ClassTransformerHttpInterceptor {
|
|
10
13
|
intercept(req, next) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return next.handle(handledRequest).pipe(map((event) => {
|
|
19
|
-
// Ensure that the request is a TypedHttpRequest and responseTypeClass is defined
|
|
20
|
-
if (event instanceof HttpResponse && isTypedHttpRequest(req)) {
|
|
21
|
-
const responseTypeClass = req.responseTypeClass;
|
|
22
|
-
// This check ensures responseTypeClass is not undefined
|
|
23
|
-
if (responseTypeClass && event.body) {
|
|
24
|
-
const transformedBody = plainToInstance(responseTypeClass, event.body);
|
|
25
|
-
// Replace the response body with the transformed body
|
|
26
|
-
return event.clone({ body: transformedBody });
|
|
27
|
-
}
|
|
14
|
+
const ctor = req.context.get(RESPONSE_TYPE_CLASS);
|
|
15
|
+
return next.handle(req).pipe(map((event) => {
|
|
16
|
+
if (!(event instanceof HttpResponse)) {
|
|
17
|
+
return event;
|
|
18
|
+
}
|
|
19
|
+
if (!ctor || event.body == null) {
|
|
20
|
+
return event;
|
|
28
21
|
}
|
|
29
|
-
|
|
22
|
+
const transformed = plainToInstance(ctor, event.body);
|
|
23
|
+
return event.clone({ body: transformed });
|
|
30
24
|
}));
|
|
31
25
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
33
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
|
|
34
28
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
|
|
36
30
|
type: Injectable
|
|
37
31
|
}] });
|
|
38
|
-
const isTypedHttpRequest = (req) => {
|
|
39
|
-
return (req.responseTypeClass !== undefined);
|
|
40
|
-
};
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
/**
|
|
34
|
+
* When set to truthy, request bodies will be serialized with instanceToPlain.
|
|
35
|
+
* - true -> use default class-transformer options
|
|
36
|
+
* - object -> use provided ClassTransformOptions
|
|
37
|
+
* - false (default) -> no serialization
|
|
38
|
+
*/
|
|
39
|
+
const SERIALIZE_REQUEST = new HttpContextToken(() => false);
|
|
40
|
+
|
|
41
|
+
function isNativeBody(b) {
|
|
42
|
+
return (b == null ||
|
|
43
|
+
b instanceof FormData ||
|
|
44
|
+
b instanceof Blob ||
|
|
45
|
+
b instanceof ArrayBuffer ||
|
|
46
|
+
b instanceof URLSearchParams ||
|
|
47
|
+
(typeof ReadableStream !== 'undefined' && b instanceof ReadableStream));
|
|
48
|
+
}
|
|
49
|
+
function ensureJson(headers) {
|
|
50
|
+
if (headers.has('Content-Type'))
|
|
51
|
+
return headers;
|
|
52
|
+
return headers.set('Content-Type', 'application/json; charset=utf-8');
|
|
53
|
+
}
|
|
54
|
+
class ClassTransformerSerializeInterceptor {
|
|
55
|
+
intercept(req, next) {
|
|
56
|
+
const opt = req.context.get(SERIALIZE_REQUEST);
|
|
57
|
+
if (!opt || req.method === 'GET' || isNativeBody(req.body)) {
|
|
58
|
+
return next.handle(req);
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
const options = opt === true ? undefined : opt;
|
|
61
|
+
const plain = instanceToPlain(req.body, options);
|
|
62
|
+
return next.handle(req.clone({
|
|
63
|
+
body: plain,
|
|
64
|
+
headers: ensureJson(req.headers),
|
|
65
|
+
}));
|
|
57
66
|
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerSerializeInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
68
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerSerializeInterceptor }); }
|
|
58
69
|
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClassTransformerSerializeInterceptor, decorators: [{
|
|
71
|
+
type: Injectable
|
|
72
|
+
}] });
|
|
59
73
|
|
|
74
|
+
function provideTypedHttpClient() {
|
|
75
|
+
return [
|
|
76
|
+
provideHttpClient(withInterceptorsFromDi()),
|
|
77
|
+
{
|
|
78
|
+
provide: HTTP_INTERCEPTORS,
|
|
79
|
+
useClass: ClassTransformerSerializeInterceptor,
|
|
80
|
+
multi: true,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
provide: HTTP_INTERCEPTORS,
|
|
84
|
+
useClass: ClassTransformerHttpInterceptor,
|
|
85
|
+
multi: true,
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const isHttpResponse = (e) => e instanceof HttpResponse;
|
|
60
91
|
class TypedHttpClient {
|
|
61
92
|
constructor() {
|
|
62
93
|
this.httpClient = inject(HttpClient);
|
|
63
94
|
}
|
|
64
|
-
getResponse(url,
|
|
65
|
-
|
|
66
|
-
responseTypeClass: responseTypeClass,
|
|
67
|
-
});
|
|
68
|
-
return this.httpClient
|
|
69
|
-
.request(httpRequest)
|
|
70
|
-
.pipe(filter((event) => event instanceof HttpResponse));
|
|
95
|
+
getResponse(url, ctor, options = {}) {
|
|
96
|
+
return this.requestResponse('GET', url, undefined, ctor, options);
|
|
71
97
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
responseTypeClass: responseTypeClass,
|
|
75
|
-
});
|
|
76
|
-
return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
|
|
98
|
+
postResponse(url, body, ctor, options = {}) {
|
|
99
|
+
return this.requestResponse('POST', url, body, ctor, options);
|
|
77
100
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
responseTypeClass: responseTypeClass,
|
|
81
|
-
});
|
|
82
|
-
return this.httpClient
|
|
83
|
-
.request(httpRequest)
|
|
84
|
-
.pipe(filter((event) => event instanceof HttpResponse));
|
|
101
|
+
putResponse(url, body, ctor, options = {}) {
|
|
102
|
+
return this.requestResponse('PUT', url, body, ctor, options);
|
|
85
103
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
responseTypeClass: responseTypeClass,
|
|
89
|
-
});
|
|
90
|
-
return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
|
|
104
|
+
patchResponse(url, body, ctor, options = {}) {
|
|
105
|
+
return this.requestResponse('PATCH', url, body, ctor, options);
|
|
91
106
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
responseTypeClass: responseTypeClass,
|
|
95
|
-
});
|
|
96
|
-
return this.httpClient
|
|
97
|
-
.request(httpRequest)
|
|
98
|
-
.pipe(filter((event) => event instanceof HttpResponse));
|
|
107
|
+
deleteResponse(url, ctor, options = {}) {
|
|
108
|
+
return this.requestResponse('DELETE', url, undefined, ctor, options);
|
|
99
109
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return this.
|
|
110
|
+
// -------------------
|
|
111
|
+
// Existing body-only methods (now built on top of *Response)
|
|
112
|
+
// -------------------
|
|
113
|
+
get(url, ctor, options = {}) {
|
|
114
|
+
return this.getResponse(url, ctor, options).pipe(map$1((r) => r.body));
|
|
105
115
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
responseTypeClass: responseTypeClass,
|
|
109
|
-
});
|
|
110
|
-
return this.httpClient
|
|
111
|
-
.request(httpRequest)
|
|
112
|
-
.pipe(filter((event) => event instanceof HttpResponse));
|
|
116
|
+
post(url, body, ctor, options = {}) {
|
|
117
|
+
return this.postResponse(url, body, ctor, options).pipe(map$1((r) => r.body));
|
|
113
118
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
responseTypeClass: responseTypeClass,
|
|
117
|
-
});
|
|
118
|
-
return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
|
|
119
|
+
put(url, body, ctor, options = {}) {
|
|
120
|
+
return this.putResponse(url, body, ctor, options).pipe(map$1((r) => r.body));
|
|
119
121
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
responseTypeClass: responseTypeClass,
|
|
123
|
-
});
|
|
124
|
-
return this.httpClient
|
|
125
|
-
.request(httpRequest)
|
|
126
|
-
.pipe(filter((event) => event instanceof HttpResponse));
|
|
122
|
+
patch(url, body, ctor, options = {}) {
|
|
123
|
+
return this.patchResponse(url, body, ctor, options).pipe(map$1((r) => r.body));
|
|
127
124
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
responseTypeClass: responseTypeClass,
|
|
131
|
-
});
|
|
132
|
-
return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
|
|
125
|
+
delete(url, ctor, options = {}) {
|
|
126
|
+
return this.deleteResponse(url, ctor, options).pipe(map$1((r) => r.body));
|
|
133
127
|
}
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
requestResponse(method, url, body, ctor, options) {
|
|
129
|
+
const context = (options.context ?? new HttpContext())
|
|
130
|
+
.set(RESPONSE_TYPE_CLASS, ctor)
|
|
131
|
+
.set(SERIALIZE_REQUEST, options.serialize ?? true);
|
|
132
|
+
return this.httpClient
|
|
133
|
+
.request(method, url, {
|
|
134
|
+
...options,
|
|
135
|
+
body,
|
|
136
|
+
context,
|
|
137
|
+
observe: 'response',
|
|
138
|
+
})
|
|
139
|
+
.pipe(filter((isHttpResponse)));
|
|
140
|
+
}
|
|
141
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
142
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
|
|
136
143
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClient, decorators: [{
|
|
138
145
|
type: Injectable,
|
|
139
146
|
args: [{
|
|
140
147
|
providedIn: 'root',
|
|
@@ -142,32 +149,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
142
149
|
}] });
|
|
143
150
|
|
|
144
151
|
class TypedHttpClientModule {
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
146
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
147
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
153
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
|
|
154
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClientModule, providers: [
|
|
155
|
+
provideHttpClient(withInterceptorsFromDi()),
|
|
156
|
+
{
|
|
157
|
+
provide: HTTP_INTERCEPTORS,
|
|
158
|
+
useClass: ClassTransformerSerializeInterceptor,
|
|
159
|
+
multi: true,
|
|
160
|
+
},
|
|
148
161
|
{
|
|
149
162
|
provide: HTTP_INTERCEPTORS,
|
|
150
163
|
useClass: ClassTransformerHttpInterceptor,
|
|
151
164
|
multi: true,
|
|
152
165
|
},
|
|
153
|
-
provideHttpClient(withInterceptorsFromDi()),
|
|
154
166
|
], imports: [CommonModule] }); }
|
|
155
167
|
}
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClientModule, decorators: [{
|
|
157
169
|
type: NgModule,
|
|
158
|
-
args: [{
|
|
170
|
+
args: [{
|
|
171
|
+
imports: [CommonModule],
|
|
172
|
+
providers: [
|
|
173
|
+
provideHttpClient(withInterceptorsFromDi()),
|
|
174
|
+
{
|
|
175
|
+
provide: HTTP_INTERCEPTORS,
|
|
176
|
+
useClass: ClassTransformerSerializeInterceptor,
|
|
177
|
+
multi: true,
|
|
178
|
+
},
|
|
159
179
|
{
|
|
160
180
|
provide: HTTP_INTERCEPTORS,
|
|
161
181
|
useClass: ClassTransformerHttpInterceptor,
|
|
162
182
|
multi: true,
|
|
163
183
|
},
|
|
164
|
-
|
|
165
|
-
|
|
184
|
+
],
|
|
185
|
+
}]
|
|
166
186
|
}] });
|
|
167
187
|
|
|
168
188
|
/**
|
|
169
189
|
* Generated bundle index. Do not edit.
|
|
170
190
|
*/
|
|
171
191
|
|
|
172
|
-
export { ClassTransformerHttpInterceptor, TypedHttpClient, TypedHttpClientModule,
|
|
192
|
+
export { ClassTransformerHttpInterceptor, ClassTransformerSerializeInterceptor, RESPONSE_TYPE_CLASS, SERIALIZE_REQUEST, TypedHttpClient, TypedHttpClientModule, provideTypedHttpClient };
|
|
173
193
|
//# sourceMappingURL=adaskothebeast-angular-typed-http-client.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaskothebeast-angular-typed-http-client.mjs","sources":["../tmp-esm2022/lib/class-transformer-http-interceptor.js","../tmp-esm2022/lib/typed-http-request.js","../tmp-esm2022/lib/typed-http-client.js","../tmp-esm2022/lib/typed-http-client.module.js","../tmp-esm2022/adaskothebeast-angular-typed-http-client.js"],"sourcesContent":["import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { instanceToPlain, plainToInstance } from 'class-transformer';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class ClassTransformerHttpInterceptor {\n intercept(req, next) {\n let handledRequest = req;\n // Transform the request body for POST and PUT methods\n if (['POST', 'PUT', 'PATCH'].includes(req.method) &&\n req.body) {\n const plainBody = instanceToPlain(req.body);\n handledRequest = req.clone({ body: plainBody });\n }\n return next.handle(handledRequest).pipe(map((event) => {\n // Ensure that the request is a TypedHttpRequest and responseTypeClass is defined\n if (event instanceof HttpResponse && isTypedHttpRequest(req)) {\n const responseTypeClass = req.responseTypeClass;\n // This check ensures responseTypeClass is not undefined\n if (responseTypeClass && event.body) {\n const transformedBody = plainToInstance(responseTypeClass, event.body);\n // Replace the response body with the transformed body\n return event.clone({ body: transformedBody });\n }\n }\n return event;\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ClassTransformerHttpInterceptor }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{\n type: Injectable\n }] });\nconst isTypedHttpRequest = (req) => {\n return (req.responseTypeClass !== undefined);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdHJhbnNmb3JtZXItaHR0cC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvbGliL2NsYXNzLXRyYW5zZm9ybWVyLWh0dHAtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3RCxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtyQyxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLFNBQVMsQ0FDUCxHQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLGNBQWMsR0FBRyxHQUFHLENBQUM7UUFFekIsc0RBQXNEO1FBQ3RELElBQ0UsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNYLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsS0FBeUIsRUFBRSxFQUFFO1lBQ2hDLGlGQUFpRjtZQUNqRixJQUFJLEtBQUssWUFBWSxZQUFZLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELHdEQUF3RDtnQkFDeEQsSUFBSSxpQkFBaUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FDckMsaUJBQWlCLEVBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztvQkFDRixzREFBc0Q7b0JBQ3RELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBakNVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVOztBQXFDWCxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLEdBQXlCLEVBQ2tCLEVBQUU7SUFDN0MsT0FBTyxDQUNKLEdBQTBDLENBQUMsaUJBQWlCLEtBQUssU0FBUyxDQUM1RSxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5zdGFuY2VUb1BsYWluLCBwbGFpblRvSW5zdGFuY2UgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFR5cGVkSHR0cFJlcXVlc3QgfSBmcm9tICcuL3R5cGVkLWh0dHAtcmVxdWVzdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGFzc1RyYW5zZm9ybWVySHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgaW50ZXJjZXB0KFxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXIsXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgbGV0IGhhbmRsZWRSZXF1ZXN0ID0gcmVxO1xuXG4gICAgLy8gVHJhbnNmb3JtIHRoZSByZXF1ZXN0IGJvZHkgZm9yIFBPU1QgYW5kIFBVVCBtZXRob2RzXG4gICAgaWYgKFxuICAgICAgWydQT1NUJywgJ1BVVCcsICdQQVRDSCddLmluY2x1ZGVzKHJlcS5tZXRob2QpICYmXG4gICAgICByZXEuYm9keSkge1xuICAgICAgY29uc3QgcGxhaW5Cb2R5ID0gaW5zdGFuY2VUb1BsYWluKHJlcS5ib2R5KTtcbiAgICAgIGhhbmRsZWRSZXF1ZXN0ID0gcmVxLmNsb25lKHsgYm9keTogcGxhaW5Cb2R5IH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0LmhhbmRsZShoYW5kbGVkUmVxdWVzdCkucGlwZShcbiAgICAgIG1hcCgoZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPikgPT4ge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgcmVxdWVzdCBpcyBhIFR5cGVkSHR0cFJlcXVlc3QgYW5kIHJlc3BvbnNlVHlwZUNsYXNzIGlzIGRlZmluZWRcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlICYmIGlzVHlwZWRIdHRwUmVxdWVzdChyZXEpKSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VUeXBlQ2xhc3MgPSByZXEucmVzcG9uc2VUeXBlQ2xhc3M7XG4gICAgICAgICAgLy8gVGhpcyBjaGVjayBlbnN1cmVzIHJlc3BvbnNlVHlwZUNsYXNzIGlzIG5vdCB1bmRlZmluZWRcbiAgICAgICAgICBpZiAocmVzcG9uc2VUeXBlQ2xhc3MgJiYgZXZlbnQuYm9keSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRCb2R5ID0gcGxhaW5Ub0luc3RhbmNlKFxuICAgICAgICAgICAgICByZXNwb25zZVR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXNwb25zZSBib2R5IHdpdGggdGhlIHRyYW5zZm9ybWVkIGJvZHlcbiAgICAgICAgICAgIHJldHVybiBldmVudC5jbG9uZSh7IGJvZHk6IHRyYW5zZm9ybWVkQm9keSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBpc1R5cGVkSHR0cFJlcXVlc3QgPSAoXG4gIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4pOiByZXEgaXMgVHlwZWRIdHRwUmVxdWVzdDx1bmtub3duLCB1bmtub3duPiA9PiB7XG4gIHJldHVybiAoXG4gICAgKHJlcSBhcyBUeXBlZEh0dHBSZXF1ZXN0PHVua25vd24sIHVua25vd24+KS5yZXNwb25zZVR5cGVDbGFzcyAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuIl19","import { HttpRequest } from '@angular/common/http';\nexport class TypedHttpRequest extends HttpRequest {\n constructor(method, url, thirdParam, fourthParam) {\n // Determine if the third parameter is the body or init based on method\n let body = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let init = {};\n if (['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n body = thirdParam;\n init = fourthParam;\n }\n else {\n init = thirdParam;\n }\n super(method, url, body, init);\n this.responseTypeClass = init?.responseTypeClass;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdHlwZWQtaHR0cC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsTUFBTSxPQUFPLGdCQUF1QixTQUFRLFdBQW9CO0lBRzlELFlBQ0UsTUFBYyxFQUNkLEdBQVcsRUFDWCxVQWdCSyxFQUNMLFdBYUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFBSSxJQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3pCLDhEQUE4RDtRQUM5RCxJQUFJLElBQUksR0FBUSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUNsQixJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENvbnRleHQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4gZXh0ZW5kcyBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gIHJlc3BvbnNlVHlwZUNsYXNzPzogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEs7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdGhpcmRQYXJhbT86XG4gICAgICB8IFRcbiAgICAgIHwgbnVsbFxuICAgICAgfCB7XG4gICAgICAgICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICAgICAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgICAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gICAgICAgICAgcGFyYW1zPzogSHR0cFBhcmFtcztcbiAgICAgICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgICAgICAgdHJhbnNmZXJDYWNoZT86XG4gICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlSGVhZGVycz86IHN0cmluZ1tdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB8IGJvb2xlYW47XG4gICAgICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M/OiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSztcbiAgICAgICAgfSxcbiAgICBmb3VydGhQYXJhbT86IHtcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgICAgIHBhcmFtcz86IEh0dHBQYXJhbXM7XG4gICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xuICAgICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OlxuICAgICAgICB8IHtcbiAgICAgICAgICAgIGluY2x1ZGVIZWFkZXJzPzogc3RyaW5nW107XG4gICAgICAgICAgfVxuICAgICAgICB8IGJvb2xlYW47XG4gICAgICByZXNwb25zZVR5cGVDbGFzcz86IG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBLO1xuICAgIH0sXG4gICkge1xuICAgIC8vIERldGVybWluZSBpZiB0aGUgdGhpcmQgcGFyYW1ldGVyIGlzIHRoZSBib2R5IG9yIGluaXQgYmFzZWQgb24gbWV0aG9kXG4gICAgbGV0IGJvZHk6IHVua25vd24gPSBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgbGV0IGluaXQ6IGFueSA9IHt9O1xuXG4gICAgaWYgKFsnUE9TVCcsICdQVVQnLCAnUEFUQ0gnXS5pbmNsdWRlcyhtZXRob2QudG9VcHBlckNhc2UoKSkpIHtcbiAgICAgIGJvZHkgPSB0aGlyZFBhcmFtO1xuICAgICAgaW5pdCA9IGZvdXJ0aFBhcmFtO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbml0ID0gdGhpcmRQYXJhbTtcbiAgICB9XG5cbiAgICBzdXBlcihtZXRob2QsIHVybCwgYm9keSwgaW5pdCk7XG5cbiAgICB0aGlzLnJlc3BvbnNlVHlwZUNsYXNzID0gaW5pdD8ucmVzcG9uc2VUeXBlQ2xhc3M7XG4gIH1cbn1cbiJdfQ==","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { filter, map } from 'rxjs';\nimport { TypedHttpRequest } from './typed-http-request';\nimport * as i0 from \"@angular/core\";\nexport class TypedHttpClient {\n constructor() {\n this.httpClient = inject(HttpClient);\n }\n getResponse(url, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('GET', url, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse));\n }\n get(url, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('GET', url, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));\n }\n postResponse(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('POST', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse));\n }\n post(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('POST', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));\n }\n putResponse(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('PUT', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse));\n }\n put(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('PUT', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));\n }\n deleteResponse(url, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('DELETE', url, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse));\n }\n delete(url, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('DELETE', url, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));\n }\n patchResponse(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('PATCH', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse));\n }\n patch(url, body, responseTypeClass) {\n const httpRequest = new TypedHttpRequest('PATCH', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClient, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdHlwZWQtaHR0cC1jbGllbnQvc3JjL2xpYi90eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUt4RCxNQUFNLE9BQU8sZUFBZTtJQUg1QjtRQUltQixlQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBc0k5RDtJQXBJQyxXQUFXLENBQ1QsR0FBVyxFQUNYLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekQsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsT0FBTyxDQUFJLFdBQVcsQ0FBQzthQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUNELEdBQVcsRUFDWCxpQkFBZ0Q7UUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pELGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDakQsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FDVixHQUFXLEVBQ1gsSUFBTyxFQUNQLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2hFLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLE9BQU8sQ0FBSSxXQUFXLENBQUM7YUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksQ0FDRixHQUFXLEVBQ1gsSUFBTyxFQUNQLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2hFLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDakQsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FDVCxHQUFXLEVBQ1gsSUFBTyxFQUNQLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQy9ELGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLE9BQU8sQ0FBSSxXQUFXLENBQUM7YUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEdBQUcsQ0FDRCxHQUFXLEVBQ1gsSUFBTyxFQUNQLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQy9ELGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDakQsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FDWixHQUFXLEVBQ1gsaUJBQWdEO1FBRWhELE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQU8sUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUM1RCxpQkFBaUIsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixPQUFPLENBQUksV0FBVyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQ0osR0FBVyxFQUNYLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDNUQsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUksV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNqRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsRUFDaEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBUyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUNYLEdBQVcsRUFDWCxJQUFPLEVBQ1AsaUJBQWdEO1FBRWhELE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQU8sT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDakUsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsT0FBTyxDQUFJLFdBQVcsQ0FBQzthQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUNILEdBQVcsRUFDWCxJQUFPLEVBQ1AsaUJBQWdEO1FBRWhELE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQU8sT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDakUsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUksV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNqRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsRUFDaEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBUyxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDOzhHQXRJVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVHlwZWRIdHRwUmVxdWVzdCB9IGZyb20gJy4vdHlwZWQtaHR0cC1yZXF1ZXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cENsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBnZXRSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignR0VUJywgdXJsLCB7XG4gICAgICByZXNwb25zZVR5cGVDbGFzczogcmVzcG9uc2VUeXBlQ2xhc3MsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkpO1xuICB9XG5cbiAgZ2V0PFQsIEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxLPiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignR0VUJywgdXJsLCB7XG4gICAgICByZXNwb25zZVR5cGVDbGFzczogcmVzcG9uc2VUeXBlQ2xhc3MsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBwb3N0UmVzcG9uc2U8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUE9TVCcsIHVybCwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M6IHJlc3BvbnNlVHlwZUNsYXNzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5yZXF1ZXN0PEs+KGh0dHBSZXF1ZXN0KVxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpKTtcbiAgfVxuXG4gIHBvc3Q8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8Sz4ge1xuICAgIGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4oJ1BPU1QnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBwdXRSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICBjb25zdCBodHRwUmVxdWVzdCA9IG5ldyBUeXBlZEh0dHBSZXF1ZXN0PFQsIEs+KCdQVVQnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucmVxdWVzdDxLPihodHRwUmVxdWVzdClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSk7XG4gIH1cblxuICBwdXQ8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8Sz4ge1xuICAgIGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4oJ1BVVCcsIHVybCwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M6IHJlc3BvbnNlVHlwZUNsYXNzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxLPihodHRwUmVxdWVzdCkucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSxcbiAgICAgIG1hcCgoZXZlbnQpID0+IGV2ZW50LmJvZHkgYXMgSyksXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVJlc3BvbnNlPFQsIEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICBjb25zdCBodHRwUmVxdWVzdCA9IG5ldyBUeXBlZEh0dHBSZXF1ZXN0PFQsIEs+KCdERUxFVEUnLCB1cmwsIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucmVxdWVzdDxLPihodHRwUmVxdWVzdClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSk7XG4gIH1cblxuICBkZWxldGU8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcmVzcG9uc2VUeXBlQ2xhc3M6IG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBLLFxuICApOiBPYnNlcnZhYmxlPEs+IHtcbiAgICBjb25zdCBodHRwUmVxdWVzdCA9IG5ldyBUeXBlZEh0dHBSZXF1ZXN0PFQsIEs+KCdERUxFVEUnLCB1cmwsIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxLPihodHRwUmVxdWVzdCkucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSxcbiAgICAgIG1hcCgoZXZlbnQpID0+IGV2ZW50LmJvZHkgYXMgSyksXG4gICAgKTtcbiAgfVxuXG4gIHBhdGNoUmVzcG9uc2U8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUEFUQ0gnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucmVxdWVzdDxLPihodHRwUmVxdWVzdClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSk7XG4gIH1cblxuICBwYXRjaDxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxLPiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUEFUQ0gnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { ClassTransformerHttpInterceptor } from './class-transformer-http-interceptor';\nimport * as i0 from \"@angular/core\";\nexport class TypedHttpClientModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClientModule, providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerHttpInterceptor,\n multi: true,\n },\n provideHttpClient(withInterceptorsFromDi()),\n ], imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TypedHttpClientModule, decorators: [{\n type: NgModule,\n args: [{ imports: [CommonModule], providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerHttpInterceptor,\n multi: true,\n },\n provideHttpClient(withInterceptorsFromDi()),\n ] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVV2RixNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQVJaLFlBQVk7K0dBUXJCLHFCQUFxQixhQVJjO1lBQ3hDO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7WUFDRCxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzlDLFlBUGlCLFlBQVk7OzJGQVFyQixxQkFBcUI7a0JBUmpDLFFBQVE7bUJBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUU7d0JBQ3hDOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSwrQkFBK0I7NEJBQ3pDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7cUJBQzlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMsIHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzRnJvbURpIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vY2xhc3MtdHJhbnNmb3JtZXItaHR0cC1pbnRlcmNlcHRvcic7XG5cbkBOZ01vZHVsZSh7IGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLCBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICB1c2VDbGFzczogQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvcixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgIF0gfSlcbmV4cG9ydCBjbGFzcyBUeXBlZEh0dHBDbGllbnRNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhc2tvdGhlYmVhc3QtYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvYWRhc2tvdGhlYmVhc3QtYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adaskothebeast-angular-typed-http-client.mjs","sources":["../../../../libs/angular-typed-http-client/src/lib/tokens.ts","../../../../libs/angular-typed-http-client/src/lib/class-transformer-http.interceptor.ts","../../../../libs/angular-typed-http-client/src/lib/serialize-token.ts","../../../../libs/angular-typed-http-client/src/lib/class-transformer-serialize.interceptor.ts","../../../../libs/angular-typed-http-client/src/lib/provide-typed-http-client.ts","../../../../libs/angular-typed-http-client/src/lib/typed-http-client.ts","../../../../libs/angular-typed-http-client/src/lib/typed-http-client.module.ts","../../../../libs/angular-typed-http-client/src/adaskothebeast-angular-typed-http-client.ts"],"sourcesContent":["import { HttpContextToken } from '@angular/common/http';\n\nexport type Ctor<T> = new (...args: unknown[]) => T;\n\n/** Carries the target class type across request clones. */\nexport const RESPONSE_TYPE_CLASS = new HttpContextToken<Ctor<unknown> | null>(\n () => null,\n);\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { plainToInstance } from 'class-transformer';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { RESPONSE_TYPE_CLASS } from './tokens';\n\n@Injectable()\nexport class ClassTransformerHttpInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<unknown>,\n next: HttpHandler,\n ): Observable<HttpEvent<unknown>> {\n const ctor = req.context.get(RESPONSE_TYPE_CLASS);\n\n return next.handle(req).pipe(\n map((event) => {\n if (!(event instanceof HttpResponse)) {\n return event;\n }\n\n if (!ctor || event.body == null) {\n return event;\n }\n\n const transformed = plainToInstance(ctor, event.body);\n return event.clone({ body: transformed });\n }),\n );\n }\n}\n","import { HttpContextToken } from '@angular/common/http';\nimport type { ClassTransformOptions } from 'class-transformer';\n\n/**\n * When set to truthy, request bodies will be serialized with instanceToPlain.\n * - true -> use default class-transformer options\n * - object -> use provided ClassTransformOptions\n * - false (default) -> no serialization\n */\nexport const SERIALIZE_REQUEST = new HttpContextToken<\n false | true | ClassTransformOptions\n>(() => false);\n","import {\n HttpEvent,\n HttpHandler,\n HttpHeaders,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ClassTransformOptions, instanceToPlain } from 'class-transformer';\nimport { Observable } from 'rxjs';\n\nimport { SERIALIZE_REQUEST } from './serialize-token';\n\nfunction isNativeBody(b: unknown): boolean {\n return (\n b == null ||\n b instanceof FormData ||\n b instanceof Blob ||\n b instanceof ArrayBuffer ||\n b instanceof URLSearchParams ||\n (typeof ReadableStream !== 'undefined' && b instanceof ReadableStream)\n );\n}\n\nfunction ensureJson(headers: HttpHeaders): HttpHeaders {\n if (headers.has('Content-Type')) return headers;\n return headers.set('Content-Type', 'application/json; charset=utf-8');\n}\n\n@Injectable()\nexport class ClassTransformerSerializeInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<unknown>,\n next: HttpHandler,\n ): Observable<HttpEvent<unknown>> {\n const opt = req.context.get(SERIALIZE_REQUEST);\n if (!opt || req.method === 'GET' || isNativeBody(req.body)) {\n return next.handle(req);\n }\n\n const options: ClassTransformOptions | undefined =\n opt === true ? undefined : opt;\n const plain = instanceToPlain(req.body, options);\n\n return next.handle(\n req.clone({\n body: plain,\n headers: ensureJson(req.headers),\n }),\n );\n }\n}\n","import {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { EnvironmentProviders, Provider } from '@angular/core';\n\nimport { ClassTransformerHttpInterceptor } from './class-transformer-http.interceptor';\nimport { ClassTransformerSerializeInterceptor } from './class-transformer-serialize.interceptor';\n\nexport function provideTypedHttpClient(): (Provider | EnvironmentProviders)[] {\n return [\n provideHttpClient(withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerSerializeInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerHttpInterceptor,\n multi: true,\n },\n ];\n}\n","import {\n HttpClient,\n HttpContext,\n HttpHeaders,\n HttpParams,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { ClassTransformOptions } from 'class-transformer/types/interfaces/class-transformer-options.interface';\nimport { Observable, filter, map } from 'rxjs';\n\nimport { SERIALIZE_REQUEST } from './serialize-token';\nimport { Ctor, RESPONSE_TYPE_CLASS } from './tokens';\n\ntype HeaderInit = HttpHeaders | { [header: string]: string | string[] };\ntype ParamInit =\n | HttpParams\n | {\n [param: string]:\n | string\n | number\n | boolean\n | ReadonlyArray<string | number | boolean>;\n };\n\nexport type RequestOptions = {\n headers?: HeaderInit;\n params?: ParamInit;\n context?: HttpContext;\n withCredentials?: boolean;\n reportProgress?: boolean;\n responseType?: 'json';\n serialize?: boolean | ClassTransformOptions;\n};\n\nconst isHttpResponse = <K>(e: unknown): e is HttpResponse<K> =>\n e instanceof HttpResponse;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TypedHttpClient {\n private readonly httpClient: HttpClient = inject(HttpClient);\n\n getResponse<K>(\n url: string,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<HttpResponse<K>> {\n return this.requestResponse<K>('GET', url, undefined, ctor, options);\n }\n\n postResponse<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<HttpResponse<K>> {\n return this.requestResponse<K>('POST', url, body, ctor, options);\n }\n\n putResponse<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<HttpResponse<K>> {\n return this.requestResponse<K>('PUT', url, body, ctor, options);\n }\n\n patchResponse<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<HttpResponse<K>> {\n return this.requestResponse<K>('PATCH', url, body, ctor, options);\n }\n\n deleteResponse<K>(\n url: string,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<HttpResponse<K>> {\n return this.requestResponse<K>('DELETE', url, undefined, ctor, options);\n }\n\n // -------------------\n // Existing body-only methods (now built on top of *Response)\n // -------------------\n get<K>(\n url: string,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<K> {\n return this.getResponse<K>(url, ctor, options).pipe(\n map((r) => r.body as K),\n );\n }\n\n post<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<K> {\n return this.postResponse<T, K>(url, body, ctor, options).pipe(\n map((r) => r.body as K),\n );\n }\n\n put<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<K> {\n return this.putResponse<T, K>(url, body, ctor, options).pipe(\n map((r) => r.body as K),\n );\n }\n\n patch<T, K>(\n url: string,\n body: T,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<K> {\n return this.patchResponse<T, K>(url, body, ctor, options).pipe(\n map((r) => r.body as K),\n );\n }\n\n delete<K>(\n url: string,\n ctor: Ctor<K>,\n options: RequestOptions = {},\n ): Observable<K> {\n return this.deleteResponse<K>(url, ctor, options).pipe(\n map((r) => r.body as K),\n );\n }\n\n private requestResponse<K>(\n method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',\n url: string,\n body: unknown | undefined,\n ctor: Ctor<K>,\n options: RequestOptions,\n ): Observable<HttpResponse<K>> {\n const context = (options.context ?? new HttpContext())\n .set(RESPONSE_TYPE_CLASS, ctor)\n .set(SERIALIZE_REQUEST, options.serialize ?? true);\n\n return this.httpClient\n .request<K>(method, url, {\n ...options,\n body,\n context,\n observe: 'response',\n })\n .pipe(filter(isHttpResponse<K>));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n HTTP_INTERCEPTORS,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n\nimport { ClassTransformerHttpInterceptor } from './class-transformer-http.interceptor';\nimport { ClassTransformerSerializeInterceptor } from './class-transformer-serialize.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n provideHttpClient(withInterceptorsFromDi()),\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerSerializeInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerHttpInterceptor,\n multi: true,\n },\n ],\n})\nexport class TypedHttpClientModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaskothebeast/angular-typed-http-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "
|
|
6
|
-
"@angular/core": "
|
|
5
|
+
"@angular/common": "20.3.13",
|
|
6
|
+
"@angular/core": "20.3.13",
|
|
7
7
|
"class-transformer": "^0.5.1",
|
|
8
8
|
"rxjs": "~7.8.2"
|
|
9
9
|
},
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"module": "fesm2022/adaskothebeast-angular-typed-http-client.mjs",
|
|
15
|
-
"typings": "
|
|
15
|
+
"typings": "types/adaskothebeast-angular-typed-http-client.d.ts",
|
|
16
16
|
"exports": {
|
|
17
17
|
"./package.json": {
|
|
18
18
|
"default": "./package.json"
|
|
19
19
|
},
|
|
20
20
|
".": {
|
|
21
|
-
"types": "./
|
|
21
|
+
"types": "./types/adaskothebeast-angular-typed-http-client.d.ts",
|
|
22
22
|
"default": "./fesm2022/adaskothebeast-angular-typed-http-client.mjs"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpContextToken, HttpHeaders, HttpParams, HttpContext, HttpResponse } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Provider, EnvironmentProviders } from '@angular/core';
|
|
5
|
+
import { ClassTransformOptions } from 'class-transformer';
|
|
6
|
+
import { ClassTransformOptions as ClassTransformOptions$1 } from 'class-transformer/types/interfaces/class-transformer-options.interface';
|
|
7
|
+
import * as i1 from '@angular/common';
|
|
8
|
+
|
|
9
|
+
declare class ClassTransformerHttpInterceptor implements HttpInterceptor {
|
|
10
|
+
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClassTransformerHttpInterceptor, never>;
|
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ClassTransformerHttpInterceptor>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class ClassTransformerSerializeInterceptor implements HttpInterceptor {
|
|
16
|
+
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClassTransformerSerializeInterceptor, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ClassTransformerSerializeInterceptor>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare function provideTypedHttpClient(): (Provider | EnvironmentProviders)[];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* When set to truthy, request bodies will be serialized with instanceToPlain.
|
|
25
|
+
* - true -> use default class-transformer options
|
|
26
|
+
* - object -> use provided ClassTransformOptions
|
|
27
|
+
* - false (default) -> no serialization
|
|
28
|
+
*/
|
|
29
|
+
declare const SERIALIZE_REQUEST: HttpContextToken<boolean | ClassTransformOptions>;
|
|
30
|
+
|
|
31
|
+
type Ctor<T> = new (...args: unknown[]) => T;
|
|
32
|
+
/** Carries the target class type across request clones. */
|
|
33
|
+
declare const RESPONSE_TYPE_CLASS: HttpContextToken<Ctor<unknown> | null>;
|
|
34
|
+
|
|
35
|
+
type HeaderInit = HttpHeaders | {
|
|
36
|
+
[header: string]: string | string[];
|
|
37
|
+
};
|
|
38
|
+
type ParamInit = HttpParams | {
|
|
39
|
+
[param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;
|
|
40
|
+
};
|
|
41
|
+
type RequestOptions = {
|
|
42
|
+
headers?: HeaderInit;
|
|
43
|
+
params?: ParamInit;
|
|
44
|
+
context?: HttpContext;
|
|
45
|
+
withCredentials?: boolean;
|
|
46
|
+
reportProgress?: boolean;
|
|
47
|
+
responseType?: 'json';
|
|
48
|
+
serialize?: boolean | ClassTransformOptions$1;
|
|
49
|
+
};
|
|
50
|
+
declare class TypedHttpClient {
|
|
51
|
+
private readonly httpClient;
|
|
52
|
+
getResponse<K>(url: string, ctor: Ctor<K>, options?: RequestOptions): Observable<HttpResponse<K>>;
|
|
53
|
+
postResponse<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<HttpResponse<K>>;
|
|
54
|
+
putResponse<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<HttpResponse<K>>;
|
|
55
|
+
patchResponse<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<HttpResponse<K>>;
|
|
56
|
+
deleteResponse<K>(url: string, ctor: Ctor<K>, options?: RequestOptions): Observable<HttpResponse<K>>;
|
|
57
|
+
get<K>(url: string, ctor: Ctor<K>, options?: RequestOptions): Observable<K>;
|
|
58
|
+
post<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<K>;
|
|
59
|
+
put<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<K>;
|
|
60
|
+
patch<T, K>(url: string, body: T, ctor: Ctor<K>, options?: RequestOptions): Observable<K>;
|
|
61
|
+
delete<K>(url: string, ctor: Ctor<K>, options?: RequestOptions): Observable<K>;
|
|
62
|
+
private requestResponse;
|
|
63
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClient, never>;
|
|
64
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TypedHttpClient>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
declare class TypedHttpClientModule {
|
|
68
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClientModule, never>;
|
|
69
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<TypedHttpClientModule, never, [typeof i1.CommonModule], never>;
|
|
70
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<TypedHttpClientModule>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { ClassTransformerHttpInterceptor, ClassTransformerSerializeInterceptor, RESPONSE_TYPE_CLASS, SERIALIZE_REQUEST, TypedHttpClient, TypedHttpClientModule, provideTypedHttpClient };
|
|
74
|
+
export type { Ctor, RequestOptions };
|
package/index.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse, HttpHeaders, HttpContext, HttpParams } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import * as i0 from '@angular/core';
|
|
4
|
-
import * as i1 from '@angular/common';
|
|
5
|
-
|
|
6
|
-
declare class ClassTransformerHttpInterceptor implements HttpInterceptor {
|
|
7
|
-
intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClassTransformerHttpInterceptor, never>;
|
|
9
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ClassTransformerHttpInterceptor>;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
declare class TypedHttpClient {
|
|
13
|
-
private readonly httpClient;
|
|
14
|
-
getResponse<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
|
|
15
|
-
get<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
|
|
16
|
-
postResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
|
|
17
|
-
post<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
|
|
18
|
-
putResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
|
|
19
|
-
put<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
|
|
20
|
-
deleteResponse<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
|
|
21
|
-
delete<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
|
|
22
|
-
patchResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
|
|
23
|
-
patch<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
|
|
24
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClient, never>;
|
|
25
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<TypedHttpClient>;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
declare class TypedHttpClientModule {
|
|
29
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClientModule, never>;
|
|
30
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TypedHttpClientModule, never, [typeof i1.CommonModule], never>;
|
|
31
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<TypedHttpClientModule>;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
declare class TypedHttpRequest<T, K> extends HttpRequest<unknown> {
|
|
35
|
-
responseTypeClass?: new (...args: unknown[]) => K;
|
|
36
|
-
constructor(method: string, url: string, thirdParam?: T | null | {
|
|
37
|
-
headers?: HttpHeaders;
|
|
38
|
-
context?: HttpContext;
|
|
39
|
-
reportProgress?: boolean;
|
|
40
|
-
params?: HttpParams;
|
|
41
|
-
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
|
|
42
|
-
withCredentials?: boolean;
|
|
43
|
-
transferCache?: {
|
|
44
|
-
includeHeaders?: string[];
|
|
45
|
-
} | boolean;
|
|
46
|
-
responseTypeClass?: new (...args: unknown[]) => K;
|
|
47
|
-
}, fourthParam?: {
|
|
48
|
-
headers?: HttpHeaders;
|
|
49
|
-
context?: HttpContext;
|
|
50
|
-
reportProgress?: boolean;
|
|
51
|
-
params?: HttpParams;
|
|
52
|
-
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
|
|
53
|
-
withCredentials?: boolean;
|
|
54
|
-
transferCache?: {
|
|
55
|
-
includeHeaders?: string[];
|
|
56
|
-
} | boolean;
|
|
57
|
-
responseTypeClass?: new (...args: unknown[]) => K;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export { ClassTransformerHttpInterceptor, TypedHttpClient, TypedHttpClientModule, TypedHttpRequest };
|