@von-development-studio/angular-rest-service 2.0.3-SNAPSHOT → 18.2.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.
Files changed (38) hide show
  1. package/README.md +54 -54
  2. package/esm2022/lib/models/von-error-rest-interceptor.model.mjs +2 -0
  3. package/esm2022/lib/models/von-header-params.model.mjs +2 -0
  4. package/esm2022/lib/models/von-http-options.model.mjs +2 -0
  5. package/esm2022/lib/models/von-page-response.model.mjs +2 -0
  6. package/esm2022/lib/models/von-rest-definition.model.mjs +2 -0
  7. package/esm2022/lib/von-rest-interceptor.service.mjs +68 -0
  8. package/esm2022/lib/von-rest.service.mjs +185 -0
  9. package/esm2022/public-api.mjs +7 -0
  10. package/esm2022/von-development-studio-angular-rest-service.mjs +5 -0
  11. package/fesm2022/von-development-studio-angular-rest-service.mjs +258 -0
  12. package/fesm2022/von-development-studio-angular-rest-service.mjs.map +1 -0
  13. package/{von-development-studio-angular-rest-service.d.ts → index.d.ts} +0 -0
  14. package/lib/{model → models}/von-error-rest-interceptor.model.d.ts +0 -0
  15. package/lib/models/von-header-params.model.d.ts +5 -0
  16. package/lib/{model → models}/von-http-options.model.d.ts +0 -0
  17. package/lib/{model → models}/von-page-response.model.d.ts +3 -0
  18. package/lib/models/von-rest-definition.model.d.ts +21 -0
  19. package/lib/von-rest-interceptor.service.d.ts +0 -0
  20. package/lib/von-rest.service.d.ts +35 -16
  21. package/package.json +13 -19
  22. package/public-api.d.ts +4 -4
  23. package/LICENSE +0 -21
  24. package/esm2020/lib/model/von-error-response.model.mjs +0 -2
  25. package/esm2020/lib/model/von-error-rest-interceptor.model.mjs +0 -2
  26. package/esm2020/lib/model/von-http-options.model.mjs +0 -2
  27. package/esm2020/lib/model/von-page-response.model.mjs +0 -2
  28. package/esm2020/lib/model/von-rest-definition.type.mjs +0 -2
  29. package/esm2020/lib/von-rest-interceptor.service.mjs +0 -62
  30. package/esm2020/lib/von-rest.service.mjs +0 -105
  31. package/esm2020/public-api.mjs +0 -7
  32. package/esm2020/von-development-studio-angular-rest-service.mjs +0 -5
  33. package/fesm2015/von-development-studio-angular-rest-service.mjs +0 -168
  34. package/fesm2015/von-development-studio-angular-rest-service.mjs.map +0 -1
  35. package/fesm2020/von-development-studio-angular-rest-service.mjs +0 -172
  36. package/fesm2020/von-development-studio-angular-rest-service.mjs.map +0 -1
  37. package/lib/model/von-error-response.model.d.ts +0 -5
  38. package/lib/model/von-rest-definition.type.d.ts +0 -25
package/README.md CHANGED
@@ -1,54 +1,54 @@
1
- # Angular Rest Service
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.3.
4
-
5
- ## Installing
6
-
7
- 1. Add NPM package into your project:
8
-
9
- ```node
10
- npm install @von-development-studio/angular-rest-service --save
11
- ```
12
-
13
- 2. Create your rest service file _**RestService**_
14
-
15
- ```typescript
16
- ...
17
- import { VonRestService } from '@von-development-studio/angular-rest-service';
18
- ...
19
-
20
- @Injectable({
21
- providedIn: 'root'
22
- })
23
- export class RestService extends VonRestService {
24
- constructor(
25
- protected http: HttpClient,
26
- protected sanitizer: DomSanitizer
27
- ) {
28
- super(http, sanitizer);
29
- }
30
- }
31
- ```
32
-
33
- 2. Create your rest interceptor service file _**RestInterceptorService**_
34
-
35
- ```typescript
36
- ...
37
- import { VonRestInterceptorService } from '@von-development-studio/angular-rest-service';
38
- ...
39
-
40
- @Injectable({
41
- providedIn: 'root'
42
- })
43
- export class RestInterceptorService extends VonRestInterceptorService {
44
- constructor(
45
- protected router: Router
46
- ) {
47
- super(router);
48
- }
49
- }
50
- ```
51
-
52
- <hr>
53
-
54
- ###### _[By Von Development Studio](https://www.von-development-studio.com/)_
1
+ # Angular Rest Service
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.13.
4
+
5
+ ## Installing
6
+
7
+ 1. Add NPM package into your project:
8
+
9
+ ```node
10
+ npm install @von-development-studio/angular-rest-service --save
11
+ ```
12
+
13
+ 2. Create your rest service file _**RestService**_
14
+
15
+ ```typescript
16
+ ...
17
+ import { VonRestService } from '@von-development-studio/angular-rest-service';
18
+ ...
19
+
20
+ @Injectable({
21
+ providedIn: 'root'
22
+ })
23
+ export class RestService extends VonRestService {
24
+ constructor(
25
+ protected http: HttpClient,
26
+ protected sanitizer: DomSanitizer
27
+ ) {
28
+ super(http, sanitizer);
29
+ }
30
+ }
31
+ ```
32
+
33
+ 2. Create your rest interceptor service file _**RestInterceptorService**_
34
+
35
+ ```typescript
36
+ ...
37
+ import { VonRestInterceptorService } from '@von-development-studio/angular-rest-service';
38
+ ...
39
+
40
+ @Injectable({
41
+ providedIn: 'root'
42
+ })
43
+ export class RestInterceptorService extends VonRestInterceptorService {
44
+ constructor(
45
+ protected router: Router
46
+ ) {
47
+ super(router);
48
+ }
49
+ }
50
+ ```
51
+
52
+ <hr>
53
+
54
+ ###### _[By Von Development Studio](https://www.von-development-studio.com/)_
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWVycm9yLXJlc3QtaW50ZXJjZXB0b3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1yZXN0LXNlcnZpY2Uvc3JjL2xpYi9tb2RlbHMvdm9uLWVycm9yLXJlc3QtaW50ZXJjZXB0b3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVm9uRXJyb3JSZXN0SW50ZXJjZXB0b3JNb2RlbCB7XG4gIHN0YXR1czogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGJvZHk/OiBhbnk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWhlYWRlci1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1yZXN0LXNlcnZpY2Uvc3JjL2xpYi9tb2RlbHMvdm9uLWhlYWRlci1wYXJhbXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEhlYWRlclBhcmFtcyA9IHtcclxuICBjb250ZW50VHlwZT86IHN0cmluZztcclxuICBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xyXG59O1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWh0dHAtb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvbGliL21vZGVscy92b24taHR0cC1vcHRpb25zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGludGVyZmFjZSBWb25IdHRwT3B0aW9uc01vZGVsIHtcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwge1xuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICB9O1xuICBvYnNlcnZlPzogJ2JvZHknO1xuICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwge1xuICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gIH07XG4gIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcbiAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXBhZ2UtcmVzcG9uc2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1yZXN0LXNlcnZpY2Uvc3JjL2xpYi9tb2RlbHMvdm9uLXBhZ2UtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgRGVmaW5lIHRoaXMgbW9kZWwgaW4gdGhlIHNvbHV0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVm9uUGFnZVJlc3BvbnNlTW9kZWw8VD4ge1xuICBjb250ZW50OiBUW107XG4gIGxhc3Q6IGJvb2xlYW47XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgdG90YWxFbGVtZW50czogbnVtYmVyO1xuICBzaXplOiBudW1iZXI7XG4gIG51bWJlck9mRWxlbWVudHM6IG51bWJlcjtcbiAgbnVtYmVyOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3QtZGVmaW5pdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvbGliL21vZGVscy92b24tcmVzdC1kZWZpbml0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJQYXJhbXMgfSBmcm9tICcuL3Zvbi1oZWFkZXItcGFyYW1zLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljUGFyYW1zIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VQYXJhbXMge1xuICB1cmw6IHN0cmluZztcbiAgdXJsUGFyYW1zPzogR2VuZXJpY1BhcmFtcztcbiAgcXVlcnlQYXJhbXM/OiBHZW5lcmljUGFyYW1zO1xuICBoZWFkZXJQYXJhbXM/OiBIZWFkZXJQYXJhbXM7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBoZWFkZXJQYXJhbXMgaW5zdGVhZFxuICAgKi9cbiAgaGVhZGVyPzogSGVhZGVyUGFyYW1zO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHF1ZXJ5UGFyYW1zIGluc3RlYWRcbiAgICovXG4gIHBhcmFtcz86IEdlbmVyaWNQYXJhbXM7XG59XG5cbmV4cG9ydCB0eXBlIEJvZHlQYXJhbXM8QiA9IEdlbmVyaWNQYXJhbXMgfCBGb3JtRGF0YT4gPSBCYXNlUGFyYW1zICYge1xuICBib2R5PzogQjtcbn07XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { HttpResponse, } from '@angular/common/http';
2
+ import { throwError } from 'rxjs';
3
+ import { catchError, map } from 'rxjs/operators';
4
+ export class VonRestInterceptorService {
5
+ router;
6
+ consoleDebug = false;
7
+ errorResponseUnknown = 'Unknown Error';
8
+ errorResponseForbidden = 'Forbidden Error';
9
+ urlWhoAmI = 'api/who-am-i';
10
+ redirectOn403 = true;
11
+ redirect403Url = ['403'];
12
+ constructor(router) {
13
+ this.router = router;
14
+ }
15
+ intercept(request, next) {
16
+ return next
17
+ .handle(request)
18
+ .pipe(map(this.mapEvent), catchError(this.catchError));
19
+ }
20
+ postHttpRequest = () => { };
21
+ mapEvent = (event) => {
22
+ if (event instanceof HttpResponse) {
23
+ if (event.status === 200 || event.status === 204) {
24
+ this.postHttpRequest();
25
+ return event;
26
+ }
27
+ if (event.status !== 200) {
28
+ const error = {
29
+ status: event.status,
30
+ message: event.statusText,
31
+ body: event.body,
32
+ };
33
+ if (this.consoleDebug) {
34
+ console.error('[ErrorWS]: ', error);
35
+ }
36
+ throw error;
37
+ }
38
+ }
39
+ return event;
40
+ };
41
+ catchError = (errorResponse) => {
42
+ if (this.consoleDebug) {
43
+ console.error('[Fatal]: ', errorResponse);
44
+ }
45
+ const error = {
46
+ status: errorResponse.status,
47
+ message: '',
48
+ body: errorResponse.error || {},
49
+ };
50
+ if (errorResponse.status === 0) {
51
+ error.message = this.errorResponseUnknown;
52
+ }
53
+ if (errorResponse.status === 401) {
54
+ error.message = errorResponse.error
55
+ ? errorResponse.error
56
+ : this.errorResponseForbidden;
57
+ }
58
+ if (this.redirectOn403) {
59
+ if (errorResponse.status === 403 ||
60
+ (errorResponse.url && errorResponse.url.indexOf(this.urlWhoAmI) > -1)) {
61
+ this.router.navigate(this.redirect403Url);
62
+ }
63
+ }
64
+ this.postHttpRequest();
65
+ return throwError(error);
66
+ };
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3QtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvbGliL3Zvbi1yZXN0LWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU1MLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxNQUFNLE9BQWdCLHlCQUF5QjtJQVF2QjtJQVBaLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0lBQ3ZDLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDO0lBQzNDLFNBQVMsR0FBRyxjQUFjLENBQUM7SUFDM0IsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVuQyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFeEMsU0FBUyxDQUNQLE9BQXlCLEVBQ3pCLElBQWlCO1FBRWpCLE9BQU8sSUFBSTthQUNSLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVTLGVBQWUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFM0IsUUFBUSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO1FBQzdDLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRSxDQUFDO1lBQ2xDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFpQztvQkFDMUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQ3pCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDakIsQ0FBQztnQkFDRixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRVEsVUFBVSxHQUFHLENBQUMsYUFBZ0MsRUFBRSxFQUFFO1FBQzFELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBaUM7WUFDMUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO1lBQzVCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRTtTQUNoQyxDQUFDO1FBQ0YsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakMsS0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsS0FBSztnQkFDakMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2dCQUNyQixDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUNFLGFBQWEsQ0FBQyxNQUFNLEtBQUssR0FBRztnQkFDNUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNyRSxDQUFDO2dCQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwUmVzcG9uc2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWb25FcnJvclJlc3RJbnRlcmNlcHRvck1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdm9uLWVycm9yLXJlc3QtaW50ZXJjZXB0b3IubW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVm9uUmVzdEludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByb3RlY3RlZCBjb25zb2xlRGVidWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGVycm9yUmVzcG9uc2VVbmtub3duID0gJ1Vua25vd24gRXJyb3InO1xuICBwcm90ZWN0ZWQgZXJyb3JSZXNwb25zZUZvcmJpZGRlbiA9ICdGb3JiaWRkZW4gRXJyb3InO1xuICBwcm90ZWN0ZWQgdXJsV2hvQW1JID0gJ2FwaS93aG8tYW0taSc7XG4gIHByb3RlY3RlZCByZWRpcmVjdE9uNDAzID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHJlZGlyZWN0NDAzVXJsID0gWyc0MDMnXTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJldHVybiBuZXh0XG4gICAgICAuaGFuZGxlKHJlcXVlc3QpXG4gICAgICAucGlwZShtYXAodGhpcy5tYXBFdmVudCksIGNhdGNoRXJyb3IodGhpcy5jYXRjaEVycm9yKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcG9zdEh0dHBSZXF1ZXN0ID0gKCkgPT4ge307XG5cbiAgcHJvdGVjdGVkIG1hcEV2ZW50ID0gKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xuICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgaWYgKGV2ZW50LnN0YXR1cyA9PT0gMjAwIHx8IGV2ZW50LnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHRoaXMucG9zdEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICBjb25zdCBlcnJvcjogVm9uRXJyb3JSZXN0SW50ZXJjZXB0b3JNb2RlbCA9IHtcbiAgICAgICAgICBzdGF0dXM6IGV2ZW50LnN0YXR1cyxcbiAgICAgICAgICBtZXNzYWdlOiBldmVudC5zdGF0dXNUZXh0LFxuICAgICAgICAgIGJvZHk6IGV2ZW50LmJvZHksXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLmNvbnNvbGVEZWJ1Zykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tFcnJvcldTXTogJywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGNhdGNoRXJyb3IgPSAoZXJyb3JSZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICBpZiAodGhpcy5jb25zb2xlRGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tGYXRhbF06ICcsIGVycm9yUmVzcG9uc2UpO1xuICAgIH1cbiAgICBjb25zdCBlcnJvcjogVm9uRXJyb3JSZXN0SW50ZXJjZXB0b3JNb2RlbCA9IHtcbiAgICAgIHN0YXR1czogZXJyb3JSZXNwb25zZS5zdGF0dXMsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIGJvZHk6IGVycm9yUmVzcG9uc2UuZXJyb3IgfHwge30sXG4gICAgfTtcbiAgICBpZiAoZXJyb3JSZXNwb25zZS5zdGF0dXMgPT09IDApIHtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSB0aGlzLmVycm9yUmVzcG9uc2VVbmtub3duO1xuICAgIH1cbiAgICBpZiAoZXJyb3JSZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGVycm9yUmVzcG9uc2UuZXJyb3JcbiAgICAgICAgPyBlcnJvclJlc3BvbnNlLmVycm9yXG4gICAgICAgIDogdGhpcy5lcnJvclJlc3BvbnNlRm9yYmlkZGVuO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWRpcmVjdE9uNDAzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVycm9yUmVzcG9uc2Uuc3RhdHVzID09PSA0MDMgfHxcbiAgICAgICAgKGVycm9yUmVzcG9uc2UudXJsICYmIGVycm9yUmVzcG9uc2UudXJsLmluZGV4T2YodGhpcy51cmxXaG9BbUkpID4gLTEpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5yZWRpcmVjdDQwM1VybCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucG9zdEh0dHBSZXF1ZXN0KCk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,185 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { map, share, take } from 'rxjs/operators';
3
+ /**
4
+ * Rest service wrapper for API calls. This class needs to be extended in a `@Injectable({ providedIn: 'root' })` service.
5
+ * Parameters needed:
6
+ * @HttpClient
7
+ * @DomSanitizer
8
+ */
9
+ export class VonRestService {
10
+ http;
11
+ sanitizer;
12
+ constructor(http, sanitizer) {
13
+ this.http = http;
14
+ this.sanitizer = sanitizer;
15
+ }
16
+ /**
17
+ * Allows to set the default headers
18
+ * @param headerParams Check HeaderParams interface to verify allowed overrides
19
+ * @returns
20
+ * ```json
21
+ * {
22
+ * "Content-Type": "application/json",
23
+ * "Accept": "application/json",
24
+ * "Access-Control-Allow-Origin": "*"
25
+ * }
26
+ * ```
27
+ */
28
+ setHeaders = (headerParams) => {
29
+ return new HttpHeaders({
30
+ 'Content-Type': headerParams?.contentType ?? 'application/json',
31
+ Accept: headerParams?.accept ?? 'application/json',
32
+ 'Access-Control-Allow-Origin': '*',
33
+ });
34
+ };
35
+ setOptions = ({ headerParams, queryParams: params, } = {}) => {
36
+ const options = {
37
+ headers: this.setHeaders(headerParams),
38
+ params,
39
+ withCredentials: true,
40
+ };
41
+ if (headerParams?.responseType) {
42
+ options.responseType = headerParams.responseType;
43
+ }
44
+ return options;
45
+ };
46
+ setOptionsForFile = ({ headerParams, queryParams, } = {}) => {
47
+ const options = {
48
+ ...this.setOptions({
49
+ headerParams,
50
+ queryParams,
51
+ }),
52
+ headers: new HttpHeaders({
53
+ Accept: headerParams?.accept ?? 'application/json',
54
+ 'Access-Control-Allow-Origin': '*',
55
+ }),
56
+ };
57
+ if (headerParams?.responseType) {
58
+ options.responseType = headerParams.responseType;
59
+ }
60
+ return options;
61
+ };
62
+ setUrlParams = (url, params) => {
63
+ if (params != null) {
64
+ for (const p in params) {
65
+ if (p != null) {
66
+ url = url.replace(`{${p}}`, params[p]);
67
+ }
68
+ }
69
+ }
70
+ return url;
71
+ };
72
+ authenticate = (url, username, password) => {
73
+ const authorization = btoa(`${username}:${password}`);
74
+ const headers = new HttpHeaders({
75
+ authorization: `Basic ${authorization}`,
76
+ });
77
+ return this.http
78
+ .get(url, {
79
+ headers,
80
+ withCredentials: true,
81
+ })
82
+ .pipe(take(1), share());
83
+ };
84
+ get = ({ url, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
85
+ url = this.setUrlParams(url, urlParams);
86
+ return this.http.get(url, this.setOptions({
87
+ headerParams: {
88
+ ...headerParams,
89
+ ...oldHeaderParams,
90
+ },
91
+ queryParams: {
92
+ ...params,
93
+ ...oldParams,
94
+ },
95
+ }));
96
+ };
97
+ delete = ({ url, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
98
+ url = this.setUrlParams(url, urlParams);
99
+ return this.http.delete(url, this.setOptions({
100
+ headerParams: {
101
+ ...headerParams,
102
+ ...oldHeaderParams,
103
+ },
104
+ queryParams: {
105
+ ...params,
106
+ ...oldParams,
107
+ },
108
+ }));
109
+ };
110
+ post = ({ url, body, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
111
+ url = this.setUrlParams(url, urlParams);
112
+ const optionsParams = {
113
+ headerParams: {
114
+ ...headerParams,
115
+ ...oldHeaderParams,
116
+ },
117
+ queryParams: {
118
+ ...params,
119
+ ...oldParams,
120
+ },
121
+ };
122
+ let options = body && body instanceof FormData
123
+ ? this.setOptionsForFile(optionsParams)
124
+ : this.setOptions(optionsParams);
125
+ return this.http.post(url, body, options);
126
+ };
127
+ put = ({ url, body, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
128
+ url = this.setUrlParams(url, urlParams);
129
+ const optionsParams = {
130
+ headerParams: {
131
+ ...headerParams,
132
+ ...oldHeaderParams,
133
+ },
134
+ queryParams: {
135
+ ...params,
136
+ ...oldParams,
137
+ },
138
+ };
139
+ let options = body && body instanceof FormData
140
+ ? this.setOptionsForFile(optionsParams)
141
+ : this.setOptions(optionsParams);
142
+ return this.http.put(url, body, options);
143
+ };
144
+ patch = ({ url, body, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
145
+ url = this.setUrlParams(url, urlParams);
146
+ const optionsParams = {
147
+ headerParams: {
148
+ ...headerParams,
149
+ ...oldHeaderParams,
150
+ },
151
+ queryParams: {
152
+ ...params,
153
+ ...oldParams,
154
+ },
155
+ };
156
+ let options = body && body instanceof FormData
157
+ ? this.setOptionsForFile(optionsParams)
158
+ : this.setOptions(optionsParams);
159
+ return this.http.patch(url, body, options);
160
+ };
161
+ file = ({ url, urlParams, queryParams: params, headerParams, header: oldHeaderParams, params: oldParams, }) => {
162
+ url = this.setUrlParams(url, urlParams);
163
+ return this.http
164
+ .get(url, {
165
+ ...this.setOptionsForFile({
166
+ headerParams: {
167
+ ...headerParams,
168
+ ...oldHeaderParams,
169
+ },
170
+ queryParams: {
171
+ ...params,
172
+ ...oldParams,
173
+ },
174
+ }),
175
+ responseType: 'blob',
176
+ })
177
+ .pipe(map((res) => {
178
+ const fileBlob = new Blob([res], { type: params?.['contentType'] });
179
+ const objUrl = URL.createObjectURL(fileBlob);
180
+ const sanitized = this.sanitizer.bypassSecurityTrustResourceUrl(objUrl);
181
+ return sanitized;
182
+ }));
183
+ };
184
+ }
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLXJlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvbGliL3Zvbi1yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU2xEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixjQUFjO0lBQ1o7SUFBNEI7SUFBbEQsWUFBc0IsSUFBZ0IsRUFBWSxTQUF1QjtRQUFuRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7SUFFN0U7Ozs7Ozs7Ozs7O09BV0c7SUFDTyxVQUFVLEdBQUcsQ0FBQyxZQUEyQixFQUFlLEVBQUU7UUFDbEUsT0FBTyxJQUFJLFdBQVcsQ0FBQztZQUNyQixjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsSUFBSSxrQkFBa0I7WUFDL0QsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksa0JBQWtCO1lBQ2xELDZCQUE2QixFQUFFLEdBQUc7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRVEsVUFBVSxHQUFHLENBQUMsRUFDdEIsWUFBWSxFQUNaLFdBQVcsRUFBRSxNQUFNLE1BSWpCLEVBQUUsRUFBdUIsRUFBRTtRQUM3QixNQUFNLE9BQU8sR0FBd0I7WUFDbkMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQ3RDLE1BQU07WUFDTixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBQ0YsSUFBSSxZQUFZLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ25ELENBQUM7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QUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUM7SUFFRixJQUFJLEdBQUcsQ0FBQyxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUFFLE1BQU0sRUFDbkIsWUFBWSxFQUNaLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLE1BQU0sRUFBRSxTQUFTLEdBQ04sRUFBK0IsRUFBRTtRQUM1QyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDeEIsWUFBWSxFQUFFO29CQUNaLEdBQUcsWUFBWTtvQkFDZixHQUFHLGVBQWU7aUJBQ25CO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxHQUFHLE1BQU07b0JBQ1QsR0FBRyxTQUFTO2lCQUNiO2FBQ0YsQ0FBQztZQUNGLFlBQVksRUFBRSxNQUFnQjtTQUMvQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIZWFkZXJQYXJhbXMgfSBmcm9tICcuL21vZGVscy92b24taGVhZGVyLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBWb25IdHRwT3B0aW9uc01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdm9uLWh0dHAtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQge1xuICBCYXNlUGFyYW1zLFxuICBCb2R5UGFyYW1zLFxuICBHZW5lcmljUGFyYW1zLFxufSBmcm9tICcuL21vZGVscy92b24tcmVzdC1kZWZpbml0aW9uLm1vZGVsJztcblxuLyoqXG4gKiBSZXN0IHNlcnZpY2Ugd3JhcHBlciBmb3IgQVBJIGNhbGxzLiBUaGlzIGNsYXNzIG5lZWRzIHRvIGJlIGV4dGVuZGVkIGluIGEgYEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pYCBzZXJ2aWNlLlxuICogUGFyYW1ldGVycyBuZWVkZWQ6XG4gKiBASHR0cENsaWVudFxuICogQERvbVNhbml0aXplclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVm9uUmVzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCwgcHJvdGVjdGVkIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gc2V0IHRoZSBkZWZhdWx0IGhlYWRlcnNcbiAgICogQHBhcmFtIGhlYWRlclBhcmFtcyBDaGVjayBIZWFkZXJQYXJhbXMgaW50ZXJmYWNlIHRvIHZlcmlmeSBhbGxvd2VkIG92ZXJyaWRlc1xuICAgKiBAcmV0dXJuc1xuICAgKiBgYGBqc29uXG4gICAqIHtcbiAgICogICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICogICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICogICBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiOiBcIipcIlxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgcHJvdGVjdGVkIHNldEhlYWRlcnMgPSAoaGVhZGVyUGFyYW1zPzogSGVhZGVyUGFyYW1zKTogSHR0cEhlYWRlcnMgPT4ge1xuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6IGhlYWRlclBhcmFtcz8uY29udGVudFR5cGUgPz8gJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgQWNjZXB0OiBoZWFkZXJQYXJhbXM/LmFjY2VwdCA/PyAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJzogJyonLFxuICAgIH0pO1xuICB9O1xuXG4gIHByb3RlY3RlZCBzZXRPcHRpb25zID0gKHtcbiAgICBoZWFkZXJQYXJhbXMsXG4gICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgfToge1xuICAgIGhlYWRlclBhcmFtcz86IEhlYWRlclBhcmFtcztcbiAgICBxdWVyeVBhcmFtcz86IEdlbmVyaWNQYXJhbXM7XG4gIH0gPSB7fSk6IFZvbkh0dHBPcHRpb25zTW9kZWwgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFZvbkh0dHBPcHRpb25zTW9kZWwgPSB7XG4gICAgICBoZWFkZXJzOiB0aGlzLnNldEhlYWRlcnMoaGVhZGVyUGFyYW1zKSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9O1xuICAgIGlmIChoZWFkZXJQYXJhbXM/LnJlc3BvbnNlVHlwZSkge1xuICAgICAgb3B0aW9ucy5yZXNwb25zZVR5cGUgPSBoZWFkZXJQYXJhbXMucmVzcG9uc2VUeXBlO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfTtcblxuICBwcm90ZWN0ZWQgc2V0T3B0aW9uc0ZvckZpbGUgPSAoe1xuICAgIGhlYWRlclBhcmFtcyxcbiAgICBxdWVyeVBhcmFtcyxcbiAgfToge1xuICAgIGhlYWRlclBhcmFtcz86IEhlYWRlclBhcmFtcztcbiAgICBxdWVyeVBhcmFtcz86IEdlbmVyaWNQYXJhbXM7XG4gIH0gPSB7fSk6IFZvbkh0dHBPcHRpb25zTW9kZWwgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFZvbkh0dHBPcHRpb25zTW9kZWwgPSB7XG4gICAgICAuLi50aGlzLnNldE9wdGlvbnMoe1xuICAgICAgICBoZWFkZXJQYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgfSksXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICBBY2NlcHQ6IGhlYWRlclBhcmFtcz8uYWNjZXB0ID8/ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6ICcqJyxcbiAgICAgIH0pLFxuICAgIH07XG4gICAgaWYgKGhlYWRlclBhcmFtcz8ucmVzcG9uc2VUeXBlKSB7XG4gICAgICBvcHRpb25zLnJlc3BvbnNlVHlwZSA9IGhlYWRlclBhcmFtcy5yZXNwb25zZVR5cGU7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9O1xuXG4gIHByb3RlY3RlZCBzZXRVcmxQYXJhbXMgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86IEdlbmVyaWNQYXJhbXMpID0+IHtcbiAgICBpZiAocGFyYW1zICE9IG51bGwpIHtcbiAgICAgIGZvciAoY29uc3QgcCBpbiBwYXJhbXMpIHtcbiAgICAgICAgaWYgKHAgIT0gbnVsbCkge1xuICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGB7JHtwfX1gLCBwYXJhbXNbcF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH07XG5cbiAgYXV0aGVudGljYXRlID0gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHVzZXJuYW1lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb24gPSBidG9hKGAke3VzZXJuYW1lfToke3Bhc3N3b3JkfWApO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgYXV0aG9yaXphdGlvbjogYEJhc2ljICR7YXV0aG9yaXphdGlvbn1gLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YWtlKDEpLCBzaGFyZSgpKTtcbiAgfTtcblxuICBnZXQgPSA8UiA9IGFueT4oe1xuICAgIHVybCxcbiAgICB1cmxQYXJhbXMsXG4gICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgICBoZWFkZXJQYXJhbXMsXG4gICAgaGVhZGVyOiBvbGRIZWFkZXJQYXJhbXMsXG4gICAgcGFyYW1zOiBvbGRQYXJhbXMsXG4gIH06IEJhc2VQYXJhbXMpOiBPYnNlcnZhYmxlPFI+ID0+IHtcbiAgICB1cmwgPSB0aGlzLnNldFVybFBhcmFtcyh1cmwsIHVybFBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Uj4oXG4gICAgICB1cmwsXG4gICAgICB0aGlzLnNldE9wdGlvbnMoe1xuICAgICAgICBoZWFkZXJQYXJhbXM6IHtcbiAgICAgICAgICAuLi5oZWFkZXJQYXJhbXMsXG4gICAgICAgICAgLi4ub2xkSGVhZGVyUGFyYW1zLFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAuLi5vbGRQYXJhbXMsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH07XG5cbiAgZGVsZXRlID0gPFIgPSBhbnk+KHtcbiAgICB1cmwsXG4gICAgdXJsUGFyYW1zLFxuICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXG4gICAgaGVhZGVyUGFyYW1zLFxuICAgIGhlYWRlcjogb2xkSGVhZGVyUGFyYW1zLFxuICAgIHBhcmFtczogb2xkUGFyYW1zLFxuICB9OiBCYXNlUGFyYW1zKTogT2JzZXJ2YWJsZTxSPiA9PiB7XG4gICAgdXJsID0gdGhpcy5zZXRVcmxQYXJhbXModXJsLCB1cmxQYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFI+KFxuICAgICAgdXJsLFxuICAgICAgdGhpcy5zZXRPcHRpb25zKHtcbiAgICAgICAgaGVhZGVyUGFyYW1zOiB7XG4gICAgICAgICAgLi4uaGVhZGVyUGFyYW1zLFxuICAgICAgICAgIC4uLm9sZEhlYWRlclBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgLi4ub2xkUGFyYW1zLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9O1xuXG4gIHBvc3QgPSA8UiA9IGFueSwgQiA9IEdlbmVyaWNQYXJhbXMgfCBGb3JtRGF0YT4oe1xuICAgIHVybCxcbiAgICBib2R5LFxuICAgIHVybFBhcmFtcyxcbiAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxuICAgIGhlYWRlclBhcmFtcyxcbiAgICBoZWFkZXI6IG9sZEhlYWRlclBhcmFtcyxcbiAgICBwYXJhbXM6IG9sZFBhcmFtcyxcbiAgfTogQm9keVBhcmFtczxCPik6IE9ic2VydmFibGU8Uj4gPT4ge1xuICAgIHVybCA9IHRoaXMuc2V0VXJsUGFyYW1zKHVybCwgdXJsUGFyYW1zKTtcbiAgICBjb25zdCBvcHRpb25zUGFyYW1zID0ge1xuICAgICAgaGVhZGVyUGFyYW1zOiB7XG4gICAgICAgIC4uLmhlYWRlclBhcmFtcyxcbiAgICAgICAgLi4ub2xkSGVhZGVyUGFyYW1zLFxuICAgICAgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgLi4ub2xkUGFyYW1zLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGxldCBvcHRpb25zID1cbiAgICAgIGJvZHkgJiYgYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhXG4gICAgICAgID8gdGhpcy5zZXRPcHRpb25zRm9yRmlsZShvcHRpb25zUGFyYW1zKVxuICAgICAgICA6IHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zUGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Uj4odXJsLCBib2R5LCBvcHRpb25zKTtcbiAgfTtcblxuICBwdXQgPSA8UiA9IGFueSwgQiA9IEdlbmVyaWNQYXJhbXMgfCBGb3JtRGF0YT4oe1xuICAgIHVybCxcbiAgICBib2R5LFxuICAgIHVybFBhcmFtcyxcbiAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxuICAgIGhlYWRlclBhcmFtcyxcbiAgICBoZWFkZXI6IG9sZEhlYWRlclBhcmFtcyxcbiAgICBwYXJhbXM6IG9sZFBhcmFtcyxcbiAgfTogQm9keVBhcmFtczxCPik6IE9ic2VydmFibGU8Uj4gPT4ge1xuICAgIHVybCA9IHRoaXMuc2V0VXJsUGFyYW1zKHVybCwgdXJsUGFyYW1zKTtcbiAgICBjb25zdCBvcHRpb25zUGFyYW1zID0ge1xuICAgICAgaGVhZGVyUGFyYW1zOiB7XG4gICAgICAgIC4uLmhlYWRlclBhcmFtcyxcbiAgICAgICAgLi4ub2xkSGVhZGVyUGFyYW1zLFxuICAgICAgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgLi4ub2xkUGFyYW1zLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGxldCBvcHRpb25zID1cbiAgICAgIGJvZHkgJiYgYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhXG4gICAgICAgID8gdGhpcy5zZXRPcHRpb25zRm9yRmlsZShvcHRpb25zUGFyYW1zKVxuICAgICAgICA6IHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zUGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxSPih1cmwsIGJvZHksIG9wdGlvbnMpO1xuICB9O1xuXG4gIHBhdGNoID0gPFIgPSBhbnksIEIgPSBHZW5lcmljUGFyYW1zIHwgRm9ybURhdGE+KHtcbiAgICB1cmwsXG4gICAgYm9keSxcbiAgICB1cmxQYXJhbXMsXG4gICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgICBoZWFkZXJQYXJhbXMsXG4gICAgaGVhZGVyOiBvbGRIZWFkZXJQYXJhbXMsXG4gICAgcGFyYW1zOiBvbGRQYXJhbXMsXG4gIH06IEJvZHlQYXJhbXM8Qj4pOiBPYnNlcnZhYmxlPFI+ID0+IHtcbiAgICB1cmwgPSB0aGlzLnNldFVybFBhcmFtcyh1cmwsIHVybFBhcmFtcyk7XG4gICAgY29uc3Qgb3B0aW9uc1BhcmFtcyA9IHtcbiAgICAgIGhlYWRlclBhcmFtczoge1xuICAgICAgICAuLi5oZWFkZXJQYXJhbXMsXG4gICAgICAgIC4uLm9sZEhlYWRlclBhcmFtcyxcbiAgICAgIH0sXG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIC4uLm9sZFBhcmFtcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBsZXQgb3B0aW9ucyA9XG4gICAgICBib2R5ICYmIGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YVxuICAgICAgICA/IHRoaXMuc2V0T3B0aW9uc0ZvckZpbGUob3B0aW9uc1BhcmFtcylcbiAgICAgICAgOiB0aGlzLnNldE9wdGlvbnMob3B0aW9uc1BhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxSPih1cmwsIGJvZHksIG9wdGlvbnMpO1xuICB9O1xuXG4gIGZpbGUgPSAoe1xuICAgIHVybCxcbiAgICB1cmxQYXJhbXMsXG4gICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgICBoZWFkZXJQYXJhbXMsXG4gICAgaGVhZGVyOiBvbGRIZWFkZXJQYXJhbXMsXG4gICAgcGFyYW1zOiBvbGRQYXJhbXMsXG4gIH06IEJhc2VQYXJhbXMpOiBPYnNlcnZhYmxlPFNhZmVSZXNvdXJjZVVybD4gPT4ge1xuICAgIHVybCA9IHRoaXMuc2V0VXJsUGFyYW1zKHVybCwgdXJsUGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICAuLi50aGlzLnNldE9wdGlvbnNGb3JGaWxlKHtcbiAgICAgICAgICBoZWFkZXJQYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLmhlYWRlclBhcmFtcyxcbiAgICAgICAgICAgIC4uLm9sZEhlYWRlclBhcmFtcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICAuLi5vbGRQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVCbG9iID0gbmV3IEJsb2IoW3Jlc10sIHsgdHlwZTogcGFyYW1zPy5bJ2NvbnRlbnRUeXBlJ10gfSk7XG4gICAgICAgICAgY29uc3Qgb2JqVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlQmxvYik7XG4gICAgICAgICAgY29uc3Qgc2FuaXRpemVkID1cbiAgICAgICAgICAgIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChvYmpVcmwpO1xuICAgICAgICAgIHJldHVybiBzYW5pdGl6ZWQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9O1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './lib/models/von-error-rest-interceptor.model';
2
+ export * from './lib/models/von-header-params.model';
3
+ export * from './lib/models/von-page-response.model';
4
+ export * from './lib/models/von-rest-definition.model';
5
+ export * from './lib/von-rest-interceptor.service';
6
+ export * from './lib/von-rest.service';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92b24tZXJyb3ItcmVzdC1pbnRlcmNlcHRvci5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92b24taGVhZGVyLXBhcmFtcy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92b24tcGFnZS1yZXNwb25zZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92b24tcmVzdC1kZWZpbml0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdm9uLXJlc3QtaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Zvbi1yZXN0LnNlcnZpY2UnO1xyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9uLWRldmVsb3BtZW50LXN0dWRpby1hbmd1bGFyLXJlc3Qtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXJlc3Qtc2VydmljZS9zcmMvdm9uLWRldmVsb3BtZW50LXN0dWRpby1hbmd1bGFyLXJlc3Qtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19