@adaskothebeast/angular-typed-http-client 5.0.0 → 7.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,160 +1,193 @@
1
- import * as i1 from '@angular/common/http';
2
- import { HttpResponse, HttpRequest, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
1
+ import { HttpContextToken, HttpResponse, provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi, HttpClient, HttpContext } from '@angular/common/http';
3
2
  import * as i0 from '@angular/core';
4
- import { Injectable, NgModule } from '@angular/core';
5
- import { instanceToPlain, plainToInstance } from 'class-transformer';
3
+ import { Injectable, inject, NgModule } from '@angular/core';
4
+ import { plainToInstance, instanceToPlain } from 'class-transformer';
6
5
  import { map } from 'rxjs/operators';
7
- import { filter, map as map$1 } from 'rxjs';
6
+ import { map as map$1, filter } from 'rxjs';
8
7
  import { CommonModule } from '@angular/common';
9
8
 
9
+ /** Carries the target class type across request clones. */
10
+ const RESPONSE_TYPE_CLASS = new HttpContextToken(() => null);
11
+
10
12
  class ClassTransformerHttpInterceptor {
11
13
  intercept(req, next) {
12
- let handledRequest = req;
13
- // Transform the request body for POST and PUT methods
14
- if (['POST', 'PUT', 'PATCH'].includes(req.method) &&
15
- req.body) {
16
- const plainBody = instanceToPlain(req.body);
17
- handledRequest = req.clone({ body: plainBody });
18
- }
19
- return next.handle(handledRequest).pipe(map((event) => {
20
- // Ensure that the request is a TypedHttpRequest and responseTypeClass is defined
21
- if (event instanceof HttpResponse && isTypedHttpRequest(req)) {
22
- const responseTypeClass = req.responseTypeClass;
23
- // This check ensures responseTypeClass is not undefined
24
- if (responseTypeClass && event.body) {
25
- const transformedBody = plainToInstance(responseTypeClass, event.body);
26
- // Replace the response body with the transformed body
27
- return event.clone({ body: transformedBody });
28
- }
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;
29
21
  }
30
- return event;
22
+ const transformed = plainToInstance(ctor, event.body);
23
+ return event.clone({ body: transformed });
31
24
  }));
32
25
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
35
28
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
37
30
  type: Injectable
38
31
  }] });
39
- const isTypedHttpRequest = (req) => {
40
- return (req.responseTypeClass !== undefined);
41
- };
42
32
 
43
- class TypedHttpRequest extends HttpRequest {
44
- constructor(method, url, thirdParam, fourthParam) {
45
- // Determine if the third parameter is the body or init based on method
46
- let body = null;
47
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
- let init = {};
49
- if (['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {
50
- body = thirdParam;
51
- init = fourthParam;
52
- }
53
- else {
54
- init = thirdParam;
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);
55
59
  }
56
- super(method, url, body, init);
57
- this.responseTypeClass = init?.responseTypeClass;
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
+ }));
58
66
  }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerSerializeInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerSerializeInterceptor }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: ClassTransformerSerializeInterceptor, decorators: [{
71
+ type: Injectable
72
+ }] });
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
+ ];
59
88
  }
60
89
 
90
+ const isHttpResponse = (e) => e instanceof HttpResponse;
61
91
  class TypedHttpClient {
62
- constructor(httpClient) {
63
- this.httpClient = httpClient;
92
+ constructor() {
93
+ this.httpClient = inject(HttpClient);
64
94
  }
65
- getResponse(url, responseTypeClass) {
66
- const httpRequest = new TypedHttpRequest('GET', url, {
67
- responseTypeClass: responseTypeClass,
68
- });
69
- return this.httpClient
70
- .request(httpRequest)
71
- .pipe(filter((event) => event instanceof HttpResponse));
95
+ getResponse(url, ctor, options = {}) {
96
+ return this.requestResponse('GET', url, undefined, ctor, options);
72
97
  }
73
- get(url, responseTypeClass) {
74
- const httpRequest = new TypedHttpRequest('GET', url, {
75
- responseTypeClass: responseTypeClass,
76
- });
77
- 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);
78
100
  }
79
- postResponse(url, body, responseTypeClass) {
80
- const httpRequest = new TypedHttpRequest('POST', url, body, {
81
- responseTypeClass: responseTypeClass,
82
- });
83
- return this.httpClient
84
- .request(httpRequest)
85
- .pipe(filter((event) => event instanceof HttpResponse));
101
+ putResponse(url, body, ctor, options = {}) {
102
+ return this.requestResponse('PUT', url, body, ctor, options);
86
103
  }
87
- post(url, body, responseTypeClass) {
88
- const httpRequest = new TypedHttpRequest('POST', url, body, {
89
- responseTypeClass: responseTypeClass,
90
- });
91
- 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);
92
106
  }
93
- putResponse(url, body, responseTypeClass) {
94
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
95
- responseTypeClass: responseTypeClass,
96
- });
97
- return this.httpClient
98
- .request(httpRequest)
99
- .pipe(filter((event) => event instanceof HttpResponse));
107
+ deleteResponse(url, ctor, options = {}) {
108
+ return this.requestResponse('DELETE', url, undefined, ctor, options);
100
109
  }
101
- put(url, body, responseTypeClass) {
102
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
103
- responseTypeClass: responseTypeClass,
104
- });
105
- return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
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));
106
115
  }
107
- patchResponse(url, body, responseTypeClass) {
108
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
109
- responseTypeClass: responseTypeClass,
110
- });
111
- return this.httpClient
112
- .request(httpRequest)
113
- .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));
114
118
  }
115
- patch(url, body, responseTypeClass) {
116
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
117
- responseTypeClass: responseTypeClass,
118
- });
119
- 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));
120
121
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
122
+ patch(url, body, ctor, options = {}) {
123
+ return this.patchResponse(url, body, ctor, options).pipe(map$1((r) => r.body));
124
+ }
125
+ delete(url, ctor, options = {}) {
126
+ return this.deleteResponse(url, ctor, options).pipe(map$1((r) => r.body));
127
+ }
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.4", ngImport: i0, type: TypedHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
142
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
123
143
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClient, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClient, decorators: [{
125
145
  type: Injectable,
126
146
  args: [{
127
147
  providedIn: 'root',
128
148
  }]
129
- }], ctorParameters: () => [{ type: i1.HttpClient }] });
149
+ }] });
130
150
 
131
151
  class TypedHttpClientModule {
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
133
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
134
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClientModule, providers: [
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
154
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClientModule, providers: [
155
+ provideHttpClient(withInterceptorsFromDi()),
156
+ {
157
+ provide: HTTP_INTERCEPTORS,
158
+ useClass: ClassTransformerSerializeInterceptor,
159
+ multi: true,
160
+ },
135
161
  {
136
162
  provide: HTTP_INTERCEPTORS,
137
163
  useClass: ClassTransformerHttpInterceptor,
138
164
  multi: true,
139
165
  },
140
- provideHttpClient(withInterceptorsFromDi()),
141
166
  ], imports: [CommonModule] }); }
142
167
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClientModule, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TypedHttpClientModule, decorators: [{
144
169
  type: NgModule,
145
- args: [{ imports: [CommonModule], providers: [
170
+ args: [{
171
+ imports: [CommonModule],
172
+ providers: [
173
+ provideHttpClient(withInterceptorsFromDi()),
174
+ {
175
+ provide: HTTP_INTERCEPTORS,
176
+ useClass: ClassTransformerSerializeInterceptor,
177
+ multi: true,
178
+ },
146
179
  {
147
180
  provide: HTTP_INTERCEPTORS,
148
181
  useClass: ClassTransformerHttpInterceptor,
149
182
  multi: true,
150
183
  },
151
- provideHttpClient(withInterceptorsFromDi()),
152
- ] }]
184
+ ],
185
+ }]
153
186
  }] });
154
187
 
155
188
  /**
156
189
  * Generated bundle index. Do not edit.
157
190
  */
158
191
 
159
- export { ClassTransformerHttpInterceptor, TypedHttpClient, TypedHttpClientModule, TypedHttpRequest };
192
+ export { ClassTransformerHttpInterceptor, ClassTransformerSerializeInterceptor, RESPONSE_TYPE_CLASS, SERIALIZE_REQUEST, TypedHttpClient, TypedHttpClientModule, provideTypedHttpClient };
160
193
  //# sourceMappingURL=adaskothebeast-angular-typed-http-client.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"adaskothebeast-angular-typed-http-client.mjs","sources":["../../../../libs/angular-typed-http-client/src/lib/class-transformer-http-interceptor.ts","../../../../libs/angular-typed-http-client/src/lib/typed-http-request.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 { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { instanceToPlain, plainToInstance } from 'class-transformer';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { TypedHttpRequest } from './typed-http-request';\n\n@Injectable()\nexport class ClassTransformerHttpInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<unknown>,\n next: HttpHandler,\n ): Observable<HttpEvent<unknown>> {\n let handledRequest = req;\n\n // Transform the request body for POST and PUT methods\n if (\n ['POST', 'PUT', 'PATCH'].includes(req.method) &&\n req.body) {\n const plainBody = instanceToPlain(req.body);\n handledRequest = req.clone({ body: plainBody });\n }\n\n return next.handle(handledRequest).pipe(\n map((event: HttpEvent<unknown>) => {\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(\n responseTypeClass,\n event.body,\n );\n // Replace the response body with the transformed body\n return event.clone({ body: transformedBody });\n }\n }\n return event;\n }),\n );\n }\n}\n\nconst isTypedHttpRequest = (\n req: HttpRequest<unknown>,\n): req is TypedHttpRequest<unknown, unknown> => {\n return (\n (req as TypedHttpRequest<unknown, unknown>).responseTypeClass !== undefined\n );\n};\n","import { HttpContext, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http';\n\nexport class TypedHttpRequest<T, K> extends HttpRequest<unknown> {\n responseTypeClass?: new (...args: unknown[]) => K;\n\n constructor(\n method: string,\n url: string,\n thirdParam?:\n | T\n | null\n | {\n headers?: HttpHeaders;\n context?: HttpContext;\n reportProgress?: boolean;\n params?: HttpParams;\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n withCredentials?: boolean;\n transferCache?:\n | {\n includeHeaders?: string[];\n }\n | boolean;\n responseTypeClass?: new (...args: unknown[]) => K;\n },\n fourthParam?: {\n headers?: HttpHeaders;\n context?: HttpContext;\n reportProgress?: boolean;\n params?: HttpParams;\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\n withCredentials?: boolean;\n transferCache?:\n | {\n includeHeaders?: string[];\n }\n | boolean;\n responseTypeClass?: new (...args: unknown[]) => K;\n },\n ) {\n // Determine if the third parameter is the body or init based on method\n let body: unknown = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let init: any = {};\n\n if (['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n body = thirdParam;\n init = fourthParam;\n } else {\n init = thirdParam;\n }\n\n super(method, url, body, init);\n\n this.responseTypeClass = init?.responseTypeClass;\n }\n}\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, filter, map } from 'rxjs';\n\nimport { TypedHttpRequest } from './typed-http-request';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TypedHttpClient {\n constructor(private httpClient: HttpClient) {}\n\n getResponse<T, K>(\n url: string,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<HttpResponse<K>> {\n const httpRequest = new TypedHttpRequest<T, K>('GET', url, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request<K>(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse)) as Observable<\n HttpResponse<K>\n >;\n }\n\n get<T, K>(\n url: string,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<K> {\n const httpRequest = new TypedHttpRequest<T, K>('GET', url, {\n responseTypeClass: responseTypeClass,\n });\n\n return this.httpClient.request<K>(httpRequest).pipe(\n filter((event) => event instanceof HttpResponse),\n map((event) => (event as HttpResponse<K>).body as K),\n );\n }\n\n postResponse<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<HttpResponse<K>> {\n const httpRequest = new TypedHttpRequest<T, K>('POST', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request<K>(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse)) as Observable<\n HttpResponse<K>\n >;\n }\n\n post<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<K> {\n const httpRequest = new TypedHttpRequest<T, K>('POST', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request<K>(httpRequest).pipe(\n filter((event) => event instanceof HttpResponse),\n map((event) => (event as HttpResponse<K>).body as K),\n );\n }\n\n putResponse<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<HttpResponse<K>> {\n const httpRequest = new TypedHttpRequest<T, K>('PUT', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request<K>(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse)) as Observable<\n HttpResponse<K>\n >;\n }\n\n put<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<K> {\n const httpRequest = new TypedHttpRequest<T, K>('PUT', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request<K>(httpRequest).pipe(\n filter((event) => event instanceof HttpResponse),\n map((event) => (event as HttpResponse<K>).body as K),\n );\n }\n\n patchResponse<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<HttpResponse<K>> {\n const httpRequest = new TypedHttpRequest<T, K>('PATCH', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient\n .request<K>(httpRequest)\n .pipe(filter((event) => event instanceof HttpResponse)) as Observable<\n HttpResponse<K>\n >;\n }\n\n patch<T, K>(\n url: string,\n body: T,\n responseTypeClass: new (...args: unknown[]) => K,\n ): Observable<K> {\n const httpRequest = new TypedHttpRequest<T, K>('PATCH', url, body, {\n responseTypeClass: responseTypeClass,\n });\n return this.httpClient.request<K>(httpRequest).pipe(\n filter((event) => event instanceof HttpResponse),\n map((event) => (event as HttpResponse<K>).body as K),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n\nimport { ClassTransformerHttpInterceptor } from './class-transformer-http-interceptor';\n\n@NgModule({ imports: [CommonModule], providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ClassTransformerHttpInterceptor,\n multi: true,\n },\n provideHttpClient(withInterceptorsFromDi()),\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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"}
1
+ {"version":3,"file":"adaskothebeast-angular-typed-http-client.mjs","sources":["../tmp-esm2022/lib/tokens.js","../tmp-esm2022/lib/class-transformer-http.interceptor.js","../tmp-esm2022/lib/serialize-token.js","../tmp-esm2022/lib/class-transformer-serialize.interceptor.js","../tmp-esm2022/lib/provide-typed-http-client.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 { HttpContextToken } from '@angular/common/http';\n/** Carries the target class type across request clones. */\nexport const RESPONSE_TYPE_CLASS = new HttpContextToken(() => null);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhELDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGdCQUFnQixDQUNyRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDb250ZXh0VG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCB0eXBlIEN0b3I8VD4gPSBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gVDtcblxuLyoqIENhcnJpZXMgdGhlIHRhcmdldCBjbGFzcyB0eXBlIGFjcm9zcyByZXF1ZXN0IGNsb25lcy4gKi9cbmV4cG9ydCBjb25zdCBSRVNQT05TRV9UWVBFX0NMQVNTID0gbmV3IEh0dHBDb250ZXh0VG9rZW48Q3Rvcjx1bmtub3duPiB8IG51bGw+KFxuICAoKSA9PiBudWxsLFxuKTtcbiJdfQ==","import { HttpResponse, } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { plainToInstance } from 'class-transformer';\nimport { map } from 'rxjs/operators';\nimport { RESPONSE_TYPE_CLASS } from './tokens';\nimport * as i0 from \"@angular/core\";\nexport class ClassTransformerHttpInterceptor {\n intercept(req, next) {\n const ctor = req.context.get(RESPONSE_TYPE_CLASS);\n return next.handle(req).pipe(map((event) => {\n if (!(event instanceof HttpResponse)) {\n return event;\n }\n if (!ctor || event.body == null) {\n return event;\n }\n const transformed = plainToInstance(ctor, event.body);\n return event.clone({ body: transformed });\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerHttpInterceptor }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdHJhbnNmb3JtZXItaHR0cC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvbGliL2NsYXNzLXRyYW5zZm9ybWVyLWh0dHAuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRy9DLE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsU0FBUyxDQUNQLEdBQXlCLEVBQ3pCLElBQWlCO1FBRWpCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNoQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0FyQlUsK0JBQStCO2tIQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwUmVzcG9uc2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9JbnN0YW5jZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUkVTUE9OU0VfVFlQRV9DTEFTUyB9IGZyb20gJy4vdG9rZW5zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsYXNzVHJhbnNmb3JtZXJIdHRwSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBpbnRlcmNlcHQoXG4gICAgcmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgICBuZXh0OiBIdHRwSGFuZGxlcixcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICBjb25zdCBjdG9yID0gcmVxLmNvbnRleHQuZ2V0KFJFU1BPTlNFX1RZUEVfQ0xBU1MpO1xuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpKSB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjdG9yIHx8IGV2ZW50LmJvZHkgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkID0gcGxhaW5Ub0luc3RhbmNlKGN0b3IsIGV2ZW50LmJvZHkpO1xuICAgICAgICByZXR1cm4gZXZlbnQuY2xvbmUoeyBib2R5OiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { HttpContextToken } from '@angular/common/http';\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(() => false);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvc2VyaWFsaXplLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3hEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FFbkQsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ29udGV4dFRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc1RyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbi8qKlxuICogV2hlbiBzZXQgdG8gdHJ1dGh5LCByZXF1ZXN0IGJvZGllcyB3aWxsIGJlIHNlcmlhbGl6ZWQgd2l0aCBpbnN0YW5jZVRvUGxhaW4uXG4gKiAtIHRydWUgIC0+IHVzZSBkZWZhdWx0IGNsYXNzLXRyYW5zZm9ybWVyIG9wdGlvbnNcbiAqIC0gb2JqZWN0IC0+IHVzZSBwcm92aWRlZCBDbGFzc1RyYW5zZm9ybU9wdGlvbnNcbiAqIC0gZmFsc2UgKGRlZmF1bHQpIC0+IG5vIHNlcmlhbGl6YXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNFUklBTElaRV9SRVFVRVNUID0gbmV3IEh0dHBDb250ZXh0VG9rZW48XG4gIGZhbHNlIHwgdHJ1ZSB8IENsYXNzVHJhbnNmb3JtT3B0aW9uc1xuPigoKSA9PiBmYWxzZSk7XG4iXX0=","import { Injectable } from '@angular/core';\nimport { instanceToPlain } from 'class-transformer';\nimport { SERIALIZE_REQUEST } from './serialize-token';\nimport * as i0 from \"@angular/core\";\nfunction isNativeBody(b) {\n return (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}\nfunction ensureJson(headers) {\n if (headers.has('Content-Type'))\n return headers;\n return headers.set('Content-Type', 'application/json; charset=utf-8');\n}\nexport class ClassTransformerSerializeInterceptor {\n intercept(req, next) {\n const opt = req.context.get(SERIALIZE_REQUEST);\n if (!opt || req.method === 'GET' || isNativeBody(req.body)) {\n return next.handle(req);\n }\n const options = opt === true ? undefined : opt;\n const plain = instanceToPlain(req.body, options);\n return next.handle(req.clone({\n body: plain,\n headers: ensureJson(req.headers),\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerSerializeInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerSerializeInterceptor }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: ClassTransformerSerializeInterceptor, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdHJhbnNmb3JtZXItc2VyaWFsaXplLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvY2xhc3MtdHJhbnNmb3JtZXItc2VyaWFsaXplLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF5QixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdEQsU0FBUyxZQUFZLENBQUMsQ0FBVTtJQUM5QixPQUFPLENBQ0wsQ0FBQyxJQUFJLElBQUk7UUFDVCxDQUFDLFlBQVksUUFBUTtRQUNyQixDQUFDLFlBQVksSUFBSTtRQUNqQixDQUFDLFlBQVksV0FBVztRQUN4QixDQUFDLFlBQVksZUFBZTtRQUM1QixDQUFDLE9BQU8sY0FBYyxLQUFLLFdBQVcsSUFBSSxDQUFDLFlBQVksY0FBYyxDQUFDLENBQ3ZFLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsT0FBb0I7SUFDdEMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBQ2hELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBR0QsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxTQUFTLENBQ1AsR0FBeUIsRUFDekIsSUFBaUI7UUFFakIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUNYLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNSLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0FwQlUsb0NBQW9DO2tIQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBRGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSGVhZGVycyxcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NUcmFuc2Zvcm1PcHRpb25zLCBpbnN0YW5jZVRvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNFUklBTElaRV9SRVFVRVNUIH0gZnJvbSAnLi9zZXJpYWxpemUtdG9rZW4nO1xuXG5mdW5jdGlvbiBpc05hdGl2ZUJvZHkoYjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGIgPT0gbnVsbCB8fFxuICAgIGIgaW5zdGFuY2VvZiBGb3JtRGF0YSB8fFxuICAgIGIgaW5zdGFuY2VvZiBCbG9iIHx8XG4gICAgYiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8XG4gICAgYiBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcyB8fFxuICAgICh0eXBlb2YgUmVhZGFibGVTdHJlYW0gIT09ICd1bmRlZmluZWQnICYmIGIgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlSnNvbihoZWFkZXJzOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcbiAgaWYgKGhlYWRlcnMuaGFzKCdDb250ZW50LVR5cGUnKSkgcmV0dXJuIGhlYWRlcnM7XG4gIHJldHVybiBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsYXNzVHJhbnNmb3JtZXJTZXJpYWxpemVJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGludGVyY2VwdChcbiAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxuICAgIG5leHQ6IEh0dHBIYW5kbGVyLFxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgIGNvbnN0IG9wdCA9IHJlcS5jb250ZXh0LmdldChTRVJJQUxJWkVfUkVRVUVTVCk7XG4gICAgaWYgKCFvcHQgfHwgcmVxLm1ldGhvZCA9PT0gJ0dFVCcgfHwgaXNOYXRpdmVCb2R5KHJlcS5ib2R5KSkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9uczogQ2xhc3NUcmFuc2Zvcm1PcHRpb25zIHwgdW5kZWZpbmVkID1cbiAgICAgIG9wdCA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IG9wdDtcbiAgICBjb25zdCBwbGFpbiA9IGluc3RhbmNlVG9QbGFpbihyZXEuYm9keSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoXG4gICAgICByZXEuY2xvbmUoe1xuICAgICAgICBib2R5OiBwbGFpbixcbiAgICAgICAgaGVhZGVyczogZW5zdXJlSnNvbihyZXEuaGVhZGVycyksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';\nimport { ClassTransformerHttpInterceptor } from './class-transformer-http.interceptor';\nimport { ClassTransformerSerializeInterceptor } from './class-transformer-serialize.interceptor';\nexport function provideTypedHttpClient() {\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//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS10eXBlZC1odHRwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvbGliL3Byb3ZpZGUtdHlwZWQtaHR0cC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFakcsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPO1FBQ0wsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMzQztZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLG9DQUFvQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFFBQVEsRUFBRSwrQkFBK0I7WUFDekMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSFRUUF9JTlRFUkNFUFRPUlMsXG4gIHByb3ZpZGVIdHRwQ2xpZW50LFxuICB3aXRoSW50ZXJjZXB0b3JzRnJvbURpLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vY2xhc3MtdHJhbnNmb3JtZXItaHR0cC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDbGFzc1RyYW5zZm9ybWVyU2VyaWFsaXplSW50ZXJjZXB0b3IgfSBmcm9tICcuL2NsYXNzLXRyYW5zZm9ybWVyLXNlcmlhbGl6ZS5pbnRlcmNlcHRvcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHlwZWRIdHRwQ2xpZW50KCk6IChQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzKVtdIHtcbiAgcmV0dXJuIFtcbiAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IENsYXNzVHJhbnNmb3JtZXJTZXJpYWxpemVJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF07XG59XG4iXX0=","import { HttpClient, HttpContext, HttpResponse, } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { filter, map } from 'rxjs';\nimport { SERIALIZE_REQUEST } from './serialize-token';\nimport { RESPONSE_TYPE_CLASS } from './tokens';\nimport * as i0 from \"@angular/core\";\nconst isHttpResponse = (e) => e instanceof HttpResponse;\nexport class TypedHttpClient {\n constructor() {\n this.httpClient = inject(HttpClient);\n }\n getResponse(url, ctor, options = {}) {\n return this.requestResponse('GET', url, undefined, ctor, options);\n }\n postResponse(url, body, ctor, options = {}) {\n return this.requestResponse('POST', url, body, ctor, options);\n }\n putResponse(url, body, ctor, options = {}) {\n return this.requestResponse('PUT', url, body, ctor, options);\n }\n patchResponse(url, body, ctor, options = {}) {\n return this.requestResponse('PATCH', url, body, ctor, options);\n }\n deleteResponse(url, ctor, options = {}) {\n return this.requestResponse('DELETE', url, undefined, ctor, options);\n }\n // -------------------\n // Existing body-only methods (now built on top of *Response)\n // -------------------\n get(url, ctor, options = {}) {\n return this.getResponse(url, ctor, options).pipe(map((r) => r.body));\n }\n post(url, body, ctor, options = {}) {\n return this.postResponse(url, body, ctor, options).pipe(map((r) => r.body));\n }\n put(url, body, ctor, options = {}) {\n return this.putResponse(url, body, ctor, options).pipe(map((r) => r.body));\n }\n patch(url, body, ctor, options = {}) {\n return this.patchResponse(url, body, ctor, options).pipe(map((r) => r.body));\n }\n delete(url, ctor, options = {}) {\n return this.deleteResponse(url, ctor, options).pipe(map((r) => r.body));\n }\n requestResponse(method, url, body, ctor, options) {\n const context = (options.context ?? new HttpContext())\n .set(RESPONSE_TYPE_CLASS, ctor)\n .set(SERIALIZE_REQUEST, options.serialize ?? true);\n return this.httpClient\n .request(method, url, {\n ...options,\n body,\n context,\n observe: 'response',\n })\n .pipe(filter((isHttpResponse)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClient, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdHlwZWQtaHR0cC1jbGllbnQvc3JjL2xpYi90eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFHWCxZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQVEsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBdUJyRCxNQUFNLGNBQWMsR0FBRyxDQUFJLENBQVUsRUFBd0IsRUFBRSxDQUM3RCxDQUFDLFlBQVksWUFBWSxDQUFDO0FBSzVCLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSW1CLGVBQVUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0F5SDlEO0lBdkhDLFdBQVcsQ0FDVCxHQUFXLEVBQ1gsSUFBYSxFQUNiLFVBQTBCLEVBQUU7UUFFNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFJLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWSxDQUNWLEdBQVcsRUFDWCxJQUFPLEVBQ1AsSUFBYSxFQUNiLFVBQTBCLEVBQUU7UUFFNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVyxDQUNULEdBQVcsRUFDWCxJQUFPLEVBQ1As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QUU7WUFDdkIsR0FBRyxPQUFPO1lBQ1YsSUFBSTtZQUNKLE9BQU87WUFDUCxPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDO2FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBLGNBQWlCLENBQUEsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0F6SFUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwQ29udGV4dCxcbiAgSHR0cEhlYWRlcnMsXG4gIEh0dHBQYXJhbXMsXG4gIEh0dHBSZXNwb25zZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc1RyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lci90eXBlcy9pbnRlcmZhY2VzL2NsYXNzLXRyYW5zZm9ybWVyLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNFUklBTElaRV9SRVFVRVNUIH0gZnJvbSAnLi9zZXJpYWxpemUtdG9rZW4nO1xuaW1wb3J0IHsgQ3RvciwgUkVTUE9OU0VfVFlQRV9DTEFTUyB9IGZyb20gJy4vdG9rZW5zJztcblxudHlwZSBIZWFkZXJJbml0ID0gSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG50eXBlIFBhcmFtSW5pdCA9XG4gIHwgSHR0cFBhcmFtc1xuICB8IHtcbiAgICAgIFtwYXJhbTogc3RyaW5nXTpcbiAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgfCBudW1iZXJcbiAgICAgICAgfCBib29sZWFuXG4gICAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgaGVhZGVycz86IEhlYWRlckluaXQ7XG4gIHBhcmFtcz86IFBhcmFtSW5pdDtcbiAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJztcbiAgc2VyaWFsaXplPzogYm9vbGVhbiB8IENsYXNzVHJhbnNmb3JtT3B0aW9ucztcbn07XG5cbmNvbnN0IGlzSHR0cFJlc3BvbnNlID0gPEs+KGU6IHVua25vd24pOiBlIGlzIEh0dHBSZXNwb25zZTxLPiA9PlxuICBlIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZWRIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGdldFJlc3BvbnNlPEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGN0b3I6IEN0b3I8Sz4sXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzcG9uc2U8Sz4oJ0dFVCcsIHVybCwgdW5kZWZpbmVkLCBjdG9yLCBvcHRpb25zKTtcbiAgfVxuXG4gIHBvc3RSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIGN0b3I6IEN0b3I8Sz4sXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzcG9uc2U8Sz4oJ1BPU1QnLCB1cmwsIGJvZHksIGN0b3IsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHV0UmVzcG9uc2U8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICBjdG9yOiBDdG9yPEs+LFxuICAgIG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdFJlc3BvbnNlPEs+KCdQVVQnLCB1cmwsIGJvZHksIGN0b3IsIG9wdGlvbnMpO1xuICB9XG5cbiAgcGF0Y2hSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIGN0b3I6IEN0b3I8Sz4sXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzcG9uc2U8Sz4oJ1BBVENIJywgdXJsLCBib2R5LCBjdG9yLCBvcHRpb25zKTtcbiAgfVxuXG4gIGRlbGV0ZVJlc3BvbnNlPEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGN0b3I6IEN0b3I8Sz4sXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0UmVzcG9uc2U8Sz4oJ0RFTEVURScsIHVybCwgdW5kZWZpbmVkLCBjdG9yLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gRXhpc3RpbmcgYm9keS1vbmx5IG1ldGhvZHMgKG5vdyBidWlsdCBvbiB0b3Agb2YgKlJlc3BvbnNlKVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGdldDxLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjdG9yOiBDdG9yPEs+LFxuICAgIG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8Sz4ge1xuICAgIHJldHVybiB0aGlzLmdldFJlc3BvbnNlPEs+KHVybCwgY3Rvciwgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgocikgPT4gci5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBwb3N0PFQsIEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGJvZHk6IFQsXG4gICAgY3RvcjogQ3RvcjxLPixcbiAgICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEs+IHtcbiAgICByZXR1cm4gdGhpcy5wb3N0UmVzcG9uc2U8VCwgSz4odXJsLCBib2R5LCBjdG9yLCBvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKChyKSA9PiByLmJvZHkgYXMgSyksXG4gICAgKTtcbiAgfVxuXG4gIHB1dDxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIGN0b3I6IEN0b3I8Sz4sXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxLPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0UmVzcG9uc2U8VCwgSz4odXJsLCBib2R5LCBjdG9yLCBvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKChyKSA9PiByLmJvZHkgYXMgSyksXG4gICAgKTtcbiAgfVxuXG4gIHBhdGNoPFQsIEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGJvZHk6IFQsXG4gICAgY3RvcjogQ3RvcjxLPixcbiAgICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEs+IHtcbiAgICByZXR1cm4gdGhpcy5wYXRjaFJlc3BvbnNlPFQsIEs+KHVybCwgYm9keSwgY3Rvciwgb3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgocikgPT4gci5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBkZWxldGU8Sz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY3RvcjogQ3RvcjxLPixcbiAgICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEs+IHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVSZXNwb25zZTxLPih1cmwsIGN0b3IsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHIpID0+IHIuYm9keSBhcyBLKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXF1ZXN0UmVzcG9uc2U8Sz4oXG4gICAgbWV0aG9kOiAnR0VUJyB8ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGJvZHk6IHVua25vd24gfCB1bmRlZmluZWQsXG4gICAgY3RvcjogQ3RvcjxLPixcbiAgICBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gKG9wdGlvbnMuY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKSlcbiAgICAgIC5zZXQoUkVTUE9OU0VfVFlQRV9DTEFTUywgY3RvcilcbiAgICAgIC5zZXQoU0VSSUFMSVpFX1JFUVVFU1QsIG9wdGlvbnMuc2VyaWFsaXplID8/IHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnJlcXVlc3Q8Sz4obWV0aG9kLCB1cmwsIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgYm9keSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIH0pXG4gICAgICAucGlwZShmaWx0ZXIoaXNIdHRwUmVzcG9uc2U8Sz4pKTtcbiAgfVxufVxuIl19","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 { ClassTransformerSerializeInterceptor } from './class-transformer-serialize.interceptor';\nimport * as i0 from \"@angular/core\";\nexport class TypedHttpClientModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClientModule, 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 ], imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: TypedHttpClientModule, decorators: [{\n type: NgModule,\n args: [{\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 }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixzQkFBc0IsR0FDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQWtCakcsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsWUFmdEIsWUFBWTsrR0FlWCxxQkFBcUIsYUFkckI7WUFDVCxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNDO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsK0JBQStCO2dCQUN6QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFiUyxZQUFZOzsyRkFlWCxxQkFBcUI7a0JBaEJqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsU0FBUyxFQUFFO3dCQUNULGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7d0JBQzNDOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSxvQ0FBb0M7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSwrQkFBK0I7NEJBQ3pDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEhUVFBfSU5URVJDRVBUT1JTLFxuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vY2xhc3MtdHJhbnNmb3JtZXItaHR0cC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDbGFzc1RyYW5zZm9ybWVyU2VyaWFsaXplSW50ZXJjZXB0b3IgfSBmcm9tICcuL2NsYXNzLXRyYW5zZm9ybWVyLXNlcmlhbGl6ZS5pbnRlcmNlcHRvcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IENsYXNzVHJhbnNmb3JtZXJTZXJpYWxpemVJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICB1c2VDbGFzczogQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cENsaWVudE1vZHVsZSB7fVxuIl19","/**\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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"}
package/index.d.ts CHANGED
@@ -1,4 +1,74 @@
1
- export * from './lib/class-transformer-http-interceptor';
2
- export * from './lib/typed-http-client';
3
- export * from './lib/typed-http-client.module';
4
- export * from './lib/typed-http-request';
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/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@adaskothebeast/angular-typed-http-client",
3
- "version": "5.0.0",
3
+ "version": "7.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^19.0.5",
6
- "@angular/core": "^19.0.5",
5
+ "@angular/common": "^20.3.4",
6
+ "@angular/core": "^20.3.4",
7
7
  "class-transformer": "^0.5.1",
8
- "rxjs": "~7.8.1"
8
+ "rxjs": "~7.8.2"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"
@@ -1,8 +0,0 @@
1
- import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class ClassTransformerHttpInterceptor implements HttpInterceptor {
5
- intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<ClassTransformerHttpInterceptor, never>;
7
- static ɵprov: i0.ɵɵInjectableDeclaration<ClassTransformerHttpInterceptor>;
8
- }
@@ -1,17 +0,0 @@
1
- import { HttpClient, HttpResponse } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class TypedHttpClient {
5
- private httpClient;
6
- constructor(httpClient: HttpClient);
7
- getResponse<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
8
- get<T, K>(url: string, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
9
- postResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
10
- post<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
11
- putResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
12
- put<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
13
- patchResponse<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<HttpResponse<K>>;
14
- patch<T, K>(url: string, body: T, responseTypeClass: new (...args: unknown[]) => K): Observable<K>;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClient, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<TypedHttpClient>;
17
- }
@@ -1,7 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "@angular/common";
3
- export declare class TypedHttpClientModule {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<TypedHttpClientModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<TypedHttpClientModule, never, [typeof i1.CommonModule], never>;
6
- static ɵinj: i0.ɵɵInjectorDeclaration<TypedHttpClientModule>;
7
- }
@@ -1,27 +0,0 @@
1
- import { HttpContext, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http';
2
- export declare class TypedHttpRequest<T, K> extends HttpRequest<unknown> {
3
- responseTypeClass?: new (...args: unknown[]) => K;
4
- constructor(method: string, url: string, thirdParam?: T | null | {
5
- headers?: HttpHeaders;
6
- context?: HttpContext;
7
- reportProgress?: boolean;
8
- params?: HttpParams;
9
- responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
10
- withCredentials?: boolean;
11
- transferCache?: {
12
- includeHeaders?: string[];
13
- } | boolean;
14
- responseTypeClass?: new (...args: unknown[]) => K;
15
- }, fourthParam?: {
16
- headers?: HttpHeaders;
17
- context?: HttpContext;
18
- reportProgress?: boolean;
19
- params?: HttpParams;
20
- responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
21
- withCredentials?: boolean;
22
- transferCache?: {
23
- includeHeaders?: string[];
24
- } | boolean;
25
- responseTypeClass?: new (...args: unknown[]) => K;
26
- });
27
- }