@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 { HttpResponse, HttpRequest, HttpClient, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
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 { instanceToPlain, plainToInstance } from 'class-transformer';
4
+ import { plainToInstance, instanceToPlain } from 'class-transformer';
5
5
  import { map } from 'rxjs/operators';
6
- import { filter, map as map$1 } from 'rxjs';
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
- let handledRequest = req;
12
- // Transform the request body for POST and PUT methods
13
- if (['POST', 'PUT', 'PATCH'].includes(req.method) &&
14
- req.body) {
15
- const plainBody = instanceToPlain(req.body);
16
- handledRequest = req.clone({ body: plainBody });
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
- return event;
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.0.4", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
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.0.4", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
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
- class TypedHttpRequest extends HttpRequest {
43
- constructor(method, url, thirdParam, fourthParam) {
44
- // Determine if the third parameter is the body or init based on method
45
- let body = null;
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- let init = {};
48
- if (['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {
49
- body = thirdParam;
50
- init = fourthParam;
51
- }
52
- else {
53
- 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);
54
59
  }
55
- super(method, url, body, init);
56
- 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
+ }));
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, responseTypeClass) {
65
- const httpRequest = new TypedHttpRequest('GET', url, {
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
- get(url, responseTypeClass) {
73
- const httpRequest = new TypedHttpRequest('GET', url, {
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
- postResponse(url, body, responseTypeClass) {
79
- const httpRequest = new TypedHttpRequest('POST', url, body, {
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
- post(url, body, responseTypeClass) {
87
- const httpRequest = new TypedHttpRequest('POST', url, body, {
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
- putResponse(url, body, responseTypeClass) {
93
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
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
- put(url, body, responseTypeClass) {
101
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
102
- responseTypeClass: responseTypeClass,
103
- });
104
- 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));
105
115
  }
106
- deleteResponse(url, responseTypeClass) {
107
- const httpRequest = new TypedHttpRequest('DELETE', url, {
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
- delete(url, responseTypeClass) {
115
- const httpRequest = new TypedHttpRequest('DELETE', url, {
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
- patchResponse(url, body, responseTypeClass) {
121
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
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
- patch(url, body, responseTypeClass) {
129
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TypedHttpClient, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
135
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
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.0.4", ngImport: i0, type: TypedHttpClient, decorators: [{
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.0.4", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
146
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
147
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TypedHttpClientModule, providers: [
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.0.4", ngImport: i0, type: TypedHttpClientModule, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TypedHttpClientModule, decorators: [{
157
169
  type: NgModule,
158
- 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
+ },
159
179
  {
160
180
  provide: HTTP_INTERCEPTORS,
161
181
  useClass: ClassTransformerHttpInterceptor,
162
182
  multi: true,
163
183
  },
164
- provideHttpClient(withInterceptorsFromDi()),
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, TypedHttpRequest };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdHlwZWQtaHR0cC1jbGllbnQvc3JjL2xpYi90eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUt4RCxNQUFNLE9BQU8sZUFBZTtJQUg1QjtRQUltQixlQUFVLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBc0k5RDtJQXBJQyxXQUFXLENBQ1QsR0FBVyxFQUNYLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekQsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsT0FBTyxDQUFJLFdBQVcsQ0FBQzthQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUNELEdBQVcsRUFDWCxpQkFBZ0Q7UUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pELGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FB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SixDQUFDOzhHQXRJVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVHlwZWRIdHRwUmVxdWVzdCB9IGZyb20gJy4vdHlwZWQtaHR0cC1yZXF1ZXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cENsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBnZXRSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+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": "6.0.0",
3
+ "version": "8.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^20.0.3",
6
- "@angular/core": "^20.0.3",
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": "index.d.ts",
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": "./index.d.ts",
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 };