@adaskothebeast/angular-typed-http-client 4.0.1 → 5.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.
@@ -30,10 +30,10 @@ class ClassTransformerHttpInterceptor {
30
30
  return event;
31
31
  }));
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
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 }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
37
37
  type: Injectable
38
38
  }] });
39
39
  const isTypedHttpRequest = (req) => {
@@ -118,10 +118,10 @@ class TypedHttpClient {
118
118
  });
119
119
  return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map$1((event) => event.body));
120
120
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
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' }); }
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClient, decorators: [{
125
125
  type: Injectable,
126
126
  args: [{
127
127
  providedIn: 'root',
@@ -129,9 +129,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
129
129
  }], ctorParameters: () => [{ type: i1.HttpClient }] });
130
130
 
131
131
  class TypedHttpClientModule {
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
133
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
134
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, providers: [
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: [
135
135
  {
136
136
  provide: HTTP_INTERCEPTORS,
137
137
  useClass: ClassTransformerHttpInterceptor,
@@ -140,7 +140,7 @@ class TypedHttpClientModule {
140
140
  provideHttpClient(withInterceptorsFromDi()),
141
141
  ], imports: [CommonModule] }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TypedHttpClientModule, decorators: [{
144
144
  type: NgModule,
145
145
  args: [{ imports: [CommonModule], providers: [
146
146
  {
@@ -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":["../../../../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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"}
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@adaskothebeast/angular-typed-http-client",
3
- "version": "4.0.1",
3
+ "version": "5.0.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.0.0",
6
- "@angular/core": "^18.0.0"
5
+ "@angular/common": "^19.0.5",
6
+ "@angular/core": "^19.0.5",
7
+ "class-transformer": "^0.5.1",
8
+ "rxjs": "~7.8.1"
7
9
  },
8
10
  "dependencies": {
9
- "tslib": "^2.6.2"
11
+ "tslib": "^2.3.0"
10
12
  },
11
13
  "sideEffects": false,
12
14
  "module": "fesm2022/adaskothebeast-angular-typed-http-client.mjs",
@@ -17,8 +19,6 @@
17
19
  },
18
20
  ".": {
19
21
  "types": "./index.d.ts",
20
- "esm2022": "./esm2022/adaskothebeast-angular-typed-http-client.mjs",
21
- "esm": "./esm2022/adaskothebeast-angular-typed-http-client.mjs",
22
22
  "default": "./fesm2022/adaskothebeast-angular-typed-http-client.mjs"
23
23
  }
24
24
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhc2tvdGhlYmVhc3QtYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvYWRhc2tvdGhlYmVhc3QtYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
package/esm2022/index.mjs DELETED
@@ -1,5 +0,0 @@
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';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdHlwZWQtaHR0cC1jbGllbnQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzcy10cmFuc2Zvcm1lci1odHRwLWludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVkLWh0dHAtY2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVkLWh0dHAtY2xpZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlZC1odHRwLXJlcXVlc3QnO1xuIl19
@@ -1,38 +0,0 @@
1
- import { HttpResponse } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { instanceToPlain, plainToInstance } from 'class-transformer';
4
- import { map } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class ClassTransformerHttpInterceptor {
7
- intercept(req, next) {
8
- let handledRequest = req;
9
- // Transform the request body for POST and PUT methods
10
- if (['POST', 'PUT', 'PATCH'].includes(req.method) &&
11
- req.body) {
12
- const plainBody = instanceToPlain(req.body);
13
- handledRequest = req.clone({ body: plainBody });
14
- }
15
- return next.handle(handledRequest).pipe(map((event) => {
16
- // Ensure that the request is a TypedHttpRequest and responseTypeClass is defined
17
- if (event instanceof HttpResponse && isTypedHttpRequest(req)) {
18
- const responseTypeClass = req.responseTypeClass;
19
- // This check ensures responseTypeClass is not undefined
20
- if (responseTypeClass && event.body) {
21
- const transformedBody = plainToInstance(responseTypeClass, event.body);
22
- // Replace the response body with the transformed body
23
- return event.clone({ body: transformedBody });
24
- }
25
- }
26
- return event;
27
- }));
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ClassTransformerHttpInterceptor, decorators: [{
33
- type: Injectable
34
- }] });
35
- const isTypedHttpRequest = (req) => {
36
- return (req.responseTypeClass !== undefined);
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdHJhbnNmb3JtZXItaHR0cC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10eXBlZC1odHRwLWNsaWVudC9zcmMvbGliL2NsYXNzLXRyYW5zZm9ybWVyLWh0dHAtaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3RCxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtyQyxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLFNBQVMsQ0FDUCxHQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLGNBQWMsR0FBRyxHQUFHLENBQUM7UUFFekIsc0RBQXNEO1FBQ3RELElBQ0UsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNYLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsS0FBeUIsRUFBRSxFQUFFO1lBQ2hDLGlGQUFpRjtZQUNqRixJQUFJLEtBQUssWUFBWSxZQUFZLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELHdEQUF3RDtnQkFDeEQsSUFBSSxpQkFBaUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FDckMsaUJBQWlCLEVBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztvQkFDRixzREFBc0Q7b0JBQ3RELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBakNVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVOztBQXFDWCxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLEdBQXlCLEVBQ2tCLEVBQUU7SUFDN0MsT0FBTyxDQUNKLEdBQTBDLENBQUMsaUJBQWlCLEtBQUssU0FBUyxDQUM1RSxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5zdGFuY2VUb1BsYWluLCBwbGFpblRvSW5zdGFuY2UgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFR5cGVkSHR0cFJlcXVlc3QgfSBmcm9tICcuL3R5cGVkLWh0dHAtcmVxdWVzdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGFzc1RyYW5zZm9ybWVySHR0cEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgaW50ZXJjZXB0KFxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXIsXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgbGV0IGhhbmRsZWRSZXF1ZXN0ID0gcmVxO1xuXG4gICAgLy8gVHJhbnNmb3JtIHRoZSByZXF1ZXN0IGJvZHkgZm9yIFBPU1QgYW5kIFBVVCBtZXRob2RzXG4gICAgaWYgKFxuICAgICAgWydQT1NUJywgJ1BVVCcsICdQQVRDSCddLmluY2x1ZGVzKHJlcS5tZXRob2QpICYmXG4gICAgICByZXEuYm9keSkge1xuICAgICAgY29uc3QgcGxhaW5Cb2R5ID0gaW5zdGFuY2VUb1BsYWluKHJlcS5ib2R5KTtcbiAgICAgIGhhbmRsZWRSZXF1ZXN0ID0gcmVxLmNsb25lKHsgYm9keTogcGxhaW5Cb2R5IH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0LmhhbmRsZShoYW5kbGVkUmVxdWVzdCkucGlwZShcbiAgICAgIG1hcCgoZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPikgPT4ge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgcmVxdWVzdCBpcyBhIFR5cGVkSHR0cFJlcXVlc3QgYW5kIHJlc3BvbnNlVHlwZUNsYXNzIGlzIGRlZmluZWRcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlICYmIGlzVHlwZWRIdHRwUmVxdWVzdChyZXEpKSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VUeXBlQ2xhc3MgPSByZXEucmVzcG9uc2VUeXBlQ2xhc3M7XG4gICAgICAgICAgLy8gVGhpcyBjaGVjayBlbnN1cmVzIHJlc3BvbnNlVHlwZUNsYXNzIGlzIG5vdCB1bmRlZmluZWRcbiAgICAgICAgICBpZiAocmVzcG9uc2VUeXBlQ2xhc3MgJiYgZXZlbnQuYm9keSkge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRCb2R5ID0gcGxhaW5Ub0luc3RhbmNlKFxuICAgICAgICAgICAgICByZXNwb25zZVR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgZXZlbnQuYm9keSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXNwb25zZSBib2R5IHdpdGggdGhlIHRyYW5zZm9ybWVkIGJvZHlcbiAgICAgICAgICAgIHJldHVybiBldmVudC5jbG9uZSh7IGJvZHk6IHRyYW5zZm9ybWVkQm9keSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBpc1R5cGVkSHR0cFJlcXVlc3QgPSAoXG4gIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4pOiByZXEgaXMgVHlwZWRIdHRwUmVxdWVzdDx1bmtub3duLCB1bmtub3duPiA9PiB7XG4gIHJldHVybiAoXG4gICAgKHJlcSBhcyBUeXBlZEh0dHBSZXF1ZXN0PHVua25vd24sIHVua25vd24+KS5yZXNwb25zZVR5cGVDbGFzcyAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuIl19
@@ -1,76 +0,0 @@
1
- import { HttpClient, HttpResponse } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { filter, map } from 'rxjs';
4
- import { TypedHttpRequest } from './typed-http-request';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class TypedHttpClient {
8
- constructor(httpClient) {
9
- this.httpClient = httpClient;
10
- }
11
- getResponse(url, responseTypeClass) {
12
- const httpRequest = new TypedHttpRequest('GET', url, {
13
- responseTypeClass: responseTypeClass,
14
- });
15
- return this.httpClient
16
- .request(httpRequest)
17
- .pipe(filter((event) => event instanceof HttpResponse));
18
- }
19
- get(url, responseTypeClass) {
20
- const httpRequest = new TypedHttpRequest('GET', url, {
21
- responseTypeClass: responseTypeClass,
22
- });
23
- return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));
24
- }
25
- postResponse(url, body, responseTypeClass) {
26
- const httpRequest = new TypedHttpRequest('POST', url, body, {
27
- responseTypeClass: responseTypeClass,
28
- });
29
- return this.httpClient
30
- .request(httpRequest)
31
- .pipe(filter((event) => event instanceof HttpResponse));
32
- }
33
- post(url, body, responseTypeClass) {
34
- const httpRequest = new TypedHttpRequest('POST', url, body, {
35
- responseTypeClass: responseTypeClass,
36
- });
37
- return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));
38
- }
39
- putResponse(url, body, responseTypeClass) {
40
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
41
- responseTypeClass: responseTypeClass,
42
- });
43
- return this.httpClient
44
- .request(httpRequest)
45
- .pipe(filter((event) => event instanceof HttpResponse));
46
- }
47
- put(url, body, responseTypeClass) {
48
- const httpRequest = new TypedHttpRequest('PUT', url, body, {
49
- responseTypeClass: responseTypeClass,
50
- });
51
- return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));
52
- }
53
- patchResponse(url, body, responseTypeClass) {
54
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
55
- responseTypeClass: responseTypeClass,
56
- });
57
- return this.httpClient
58
- .request(httpRequest)
59
- .pipe(filter((event) => event instanceof HttpResponse));
60
- }
61
- patch(url, body, responseTypeClass) {
62
- const httpRequest = new TypedHttpRequest('PATCH', url, body, {
63
- responseTypeClass: responseTypeClass,
64
- });
65
- return this.httpClient.request(httpRequest).pipe(filter((event) => event instanceof HttpResponse), map((event) => event.body));
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, providedIn: 'root' }); }
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClient, decorators: [{
71
- type: Injectable,
72
- args: [{
73
- providedIn: 'root',
74
- }]
75
- }], ctorParameters: () => [{ type: i1.HttpClient }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdHlwZWQtaHR0cC1jbGllbnQvc3JjL2xpYi90eXBlZC1odHRwLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUt4RCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxXQUFXLENBQ1QsR0FBVyxFQUNYLGlCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGdCQUFnQixDQUFPLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekQsaUJBQWlCLEVBQUUsaUJBQWlCO1NBQ3JDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsT0FBTyxDQUFJLFdBQVcsQ0FBQzthQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLENBRXZELENBQUM7SUFDSixDQUFDO0lBRUQsR0FBRyxDQUNELEdBQVcsRUFDWCxpQkFBZ0Q7UUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pELGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FBQyxDQUFDLElB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RyxJQUFJLGdCQUFnQixDQUFPLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2pFLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFJLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDakQsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksWUFBWSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsS0FBeUIsQ0FBQyxJQUFTLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7OEdBcEhVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVHlwZWRIdHRwUmVxdWVzdCB9IGZyb20gJy4vdHlwZWQtaHR0cC1yZXF1ZXN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cENsaWVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBnZXRSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignR0VUJywgdXJsLCB7XG4gICAgICByZXNwb25zZVR5cGVDbGFzczogcmVzcG9uc2VUeXBlQ2xhc3MsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkpIGFzIE9ic2VydmFibGU8XG4gICAgICBIdHRwUmVzcG9uc2U8Sz5cbiAgICA+O1xuICB9XG5cbiAgZ2V0PFQsIEs+KFxuICAgIHVybDogc3RyaW5nLFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxLPiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignR0VUJywgdXJsLCB7XG4gICAgICByZXNwb25zZVR5cGVDbGFzczogcmVzcG9uc2VUeXBlQ2xhc3MsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiAoZXZlbnQgYXMgSHR0cFJlc3BvbnNlPEs+KS5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBwb3N0UmVzcG9uc2U8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUE9TVCcsIHVybCwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M6IHJlc3BvbnNlVHlwZUNsYXNzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5yZXF1ZXN0PEs+KGh0dHBSZXF1ZXN0KVxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpKSBhcyBPYnNlcnZhYmxlPFxuICAgICAgSHR0cFJlc3BvbnNlPEs+XG4gICAgPjtcbiAgfVxuXG4gIHBvc3Q8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8Sz4ge1xuICAgIGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4oJ1BPU1QnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiAoZXZlbnQgYXMgSHR0cFJlc3BvbnNlPEs+KS5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cblxuICBwdXRSZXNwb25zZTxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8Sz4+IHtcbiAgICBjb25zdCBodHRwUmVxdWVzdCA9IG5ldyBUeXBlZEh0dHBSZXF1ZXN0PFQsIEs+KCdQVVQnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucmVxdWVzdDxLPihodHRwUmVxdWVzdClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgIEh0dHBSZXNwb25zZTxLPlxuICAgID47XG4gIH1cblxuICBwdXQ8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8Sz4ge1xuICAgIGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4oJ1BVVCcsIHVybCwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M6IHJlc3BvbnNlVHlwZUNsYXNzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxLPihodHRwUmVxdWVzdCkucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSxcbiAgICAgIG1hcCgoZXZlbnQpID0+IChldmVudCBhcyBIdHRwUmVzcG9uc2U8Sz4pLmJvZHkgYXMgSyksXG4gICAgKTtcbiAgfVxuXG4gIHBhdGNoUmVzcG9uc2U8VCwgSz4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogVCxcbiAgICByZXNwb25zZVR5cGVDbGFzczogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEssXG4gICk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEs+PiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUEFUQ0gnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucmVxdWVzdDxLPihodHRwUmVxdWVzdClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgIEh0dHBSZXNwb25zZTxLPlxuICAgID47XG4gIH1cblxuICBwYXRjaDxULCBLPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBib2R5OiBULFxuICAgIHJlc3BvbnNlVHlwZUNsYXNzOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSyxcbiAgKTogT2JzZXJ2YWJsZTxLPiB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3QgPSBuZXcgVHlwZWRIdHRwUmVxdWVzdDxULCBLPignUEFUQ0gnLCB1cmwsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZUNsYXNzOiByZXNwb25zZVR5cGVDbGFzcyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8Sz4oaHR0cFJlcXVlc3QpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSksXG4gICAgICBtYXAoKGV2ZW50KSA9PiAoZXZlbnQgYXMgSHR0cFJlc3BvbnNlPEs+KS5ib2R5IGFzIEspLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
3
- import { NgModule } from '@angular/core';
4
- import { ClassTransformerHttpInterceptor } from './class-transformer-http-interceptor';
5
- import * as i0 from "@angular/core";
6
- export class TypedHttpClientModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, imports: [CommonModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, providers: [
10
- {
11
- provide: HTTP_INTERCEPTORS,
12
- useClass: ClassTransformerHttpInterceptor,
13
- multi: true,
14
- },
15
- provideHttpClient(withInterceptorsFromDi()),
16
- ], imports: [CommonModule] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypedHttpClientModule, decorators: [{
19
- type: NgModule,
20
- args: [{ imports: [CommonModule], providers: [
21
- {
22
- provide: HTTP_INTERCEPTORS,
23
- useClass: ClassTransformerHttpInterceptor,
24
- multi: true,
25
- },
26
- provideHttpClient(withInterceptorsFromDi()),
27
- ] }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdHlwZWQtaHR0cC1jbGllbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVV2RixNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQVJaLFlBQVk7K0dBUXJCLHFCQUFxQixhQVJjO1lBQ3hDO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7WUFDRCxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzlDLFlBUGlCLFlBQVk7OzJGQVFyQixxQkFBcUI7a0JBUmpDLFFBQVE7bUJBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUU7d0JBQ3hDOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSwrQkFBK0I7NEJBQ3pDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNELGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7cUJBQzlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMsIHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzRnJvbURpIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4vY2xhc3MtdHJhbnNmb3JtZXItaHR0cC1pbnRlcmNlcHRvcic7XG5cbkBOZ01vZHVsZSh7IGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLCBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICB1c2VDbGFzczogQ2xhc3NUcmFuc2Zvcm1lckh0dHBJbnRlcmNlcHRvcixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgIF0gfSlcbmV4cG9ydCBjbGFzcyBUeXBlZEh0dHBDbGllbnRNb2R1bGUge31cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { HttpRequest } from '@angular/common/http';
2
- export class TypedHttpRequest extends HttpRequest {
3
- constructor(method, url, thirdParam, fourthParam) {
4
- // Determine if the third parameter is the body or init based on method
5
- let body = null;
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- let init = {};
8
- if (['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {
9
- body = thirdParam;
10
- init = fourthParam;
11
- }
12
- else {
13
- init = thirdParam;
14
- }
15
- super(method, url, body, init);
16
- this.responseTypeClass = init?.responseTypeClass;
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtaHR0cC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXR5cGVkLWh0dHAtY2xpZW50L3NyYy9saWIvdHlwZWQtaHR0cC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsTUFBTSxPQUFPLGdCQUF1QixTQUFRLFdBQW9CO0lBRzlELFlBQ0UsTUFBYyxFQUNkLEdBQVcsRUFDWCxVQWdCSyxFQUNMLFdBYUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFBSSxJQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3pCLDhEQUE4RDtRQUM5RCxJQUFJLElBQUksR0FBUSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUNsQixJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENvbnRleHQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIFR5cGVkSHR0cFJlcXVlc3Q8VCwgSz4gZXh0ZW5kcyBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gIHJlc3BvbnNlVHlwZUNsYXNzPzogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IEs7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdGhpcmRQYXJhbT86XG4gICAgICB8IFRcbiAgICAgIHwgbnVsbFxuICAgICAgfCB7XG4gICAgICAgICAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xuICAgICAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgICAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gICAgICAgICAgcGFyYW1zPzogSHR0cFBhcmFtcztcbiAgICAgICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgICAgICAgdHJhbnNmZXJDYWNoZT86XG4gICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlSGVhZGVycz86IHN0cmluZ1tdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB8IGJvb2xlYW47XG4gICAgICAgICAgcmVzcG9uc2VUeXBlQ2xhc3M/OiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSztcbiAgICAgICAgfSxcbiAgICBmb3VydGhQYXJhbT86IHtcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgICAgIHBhcmFtcz86IEh0dHBQYXJhbXM7XG4gICAgICByZXNwb25zZVR5cGU/OiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnO1xuICAgICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zZmVyQ2FjaGU/OlxuICAgICAgICB8IHtcbiAgICAgICAgICAgIGluY2x1ZGVIZWFkZXJzPzogc3RyaW5nW107XG4gICAgICAgICAgfVxuICAgICAgICB8IGJvb2xlYW47XG4gICAgICByZXNwb25zZVR5cGVDbGFzcz86IG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBLO1xuICAgIH0sXG4gICkge1xuICAgIC8vIERldGVybWluZSBpZiB0aGUgdGhpcmQgcGFyYW1ldGVyIGlzIHRoZSBib2R5IG9yIGluaXQgYmFzZWQgb24gbWV0aG9kXG4gICAgbGV0IGJvZHk6IHVua25vd24gPSBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgbGV0IGluaXQ6IGFueSA9IHt9O1xuXG4gICAgaWYgKFsnUE9TVCcsICdQVVQnLCAnUEFUQ0gnXS5pbmNsdWRlcyhtZXRob2QudG9VcHBlckNhc2UoKSkpIHtcbiAgICAgIGJvZHkgPSB0aGlyZFBhcmFtO1xuICAgICAgaW5pdCA9IGZvdXJ0aFBhcmFtO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbml0ID0gdGhpcmRQYXJhbTtcbiAgICB9XG5cbiAgICBzdXBlcihtZXRob2QsIHVybCwgYm9keSwgaW5pdCk7XG5cbiAgICB0aGlzLnJlc3BvbnNlVHlwZUNsYXNzID0gaW5pdD8ucmVzcG9uc2VUeXBlQ2xhc3M7XG4gIH1cbn1cbiJdfQ==