@indigina/dcm-api 0.0.28 → 0.0.29
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.
- package/README.md +2 -2
- package/api/api.d.ts +7 -1
- package/api/auditLogs.service.d.ts +43 -0
- package/api/containers.service.d.ts +27 -0
- package/api/documents.service.d.ts +43 -0
- package/api/notes.service.d.ts +43 -0
- package/api/shipments.service.d.ts +0 -103
- package/esm2022/api/api.mjs +8 -2
- package/esm2022/api/auditLogs.service.mjs +162 -0
- package/esm2022/api/containers.service.mjs +66 -2
- package/esm2022/api/documents.service.mjs +162 -0
- package/esm2022/api/notes.service.mjs +162 -0
- package/esm2022/api/shipments.service.mjs +1 -240
- package/esm2022/model/containerTypes.mjs +16 -0
- package/esm2022/model/models.mjs +3 -2
- package/esm2022/model/shipmentContainer.mjs +1 -1
- package/esm2022/model/shipmentProduct.mjs +1 -1
- package/esm2022/model/shipmentTimelineItem.mjs +1 -11
- package/esm2022/model/timelineEventTypes.mjs +26 -0
- package/fesm2022/indigina-dcm-api.mjs +560 -261
- package/fesm2022/indigina-dcm-api.mjs.map +1 -1
- package/model/{containerType.d.ts → containerTypes.d.ts} +5 -5
- package/model/models.d.ts +2 -1
- package/model/shipmentContainer.d.ts +4 -4
- package/model/shipmentProduct.d.ts +4 -5
- package/model/shipmentTimelineItem.d.ts +4 -1
- package/model/timelineEventTypes.d.ts +26 -0
- package/package.json +1 -1
- package/esm2022/model/containerType.mjs +0 -16
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## @indigina/dcm-api@0.0.
|
|
1
|
+
## @indigina/dcm-api@0.0.29
|
|
2
2
|
|
|
3
3
|
The version of the OpenAPI document: v1
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ Navigate to the folder of your consuming project and run one of next commands.
|
|
|
21
21
|
_published:_
|
|
22
22
|
|
|
23
23
|
```
|
|
24
|
-
npm install @indigina/dcm-api@0.0.
|
|
24
|
+
npm install @indigina/dcm-api@0.0.29 --save
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
_without publishing (not recommended):_
|
package/api/api.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
export * from './auditLogs.service';
|
|
2
|
+
import { AuditLogsService } from './auditLogs.service';
|
|
1
3
|
export * from './bookings.service';
|
|
2
4
|
import { BookingsService } from './bookings.service';
|
|
3
5
|
export * from './containers.service';
|
|
4
6
|
import { ContainersService } from './containers.service';
|
|
7
|
+
export * from './documents.service';
|
|
8
|
+
import { DocumentsService } from './documents.service';
|
|
5
9
|
export * from './health.service';
|
|
6
10
|
import { HealthService } from './health.service';
|
|
11
|
+
export * from './notes.service';
|
|
12
|
+
import { NotesService } from './notes.service';
|
|
7
13
|
export * from './permissions.service';
|
|
8
14
|
import { PermissionsService } from './permissions.service';
|
|
9
15
|
export * from './reports.service';
|
|
@@ -12,4 +18,4 @@ export * from './shipments.service';
|
|
|
12
18
|
import { ShipmentsService } from './shipments.service';
|
|
13
19
|
export * from './user.service';
|
|
14
20
|
import { UserService } from './user.service';
|
|
15
|
-
export declare const APIS: (typeof BookingsService | typeof ContainersService | typeof HealthService | typeof PermissionsService | typeof ReportsService | typeof ShipmentsService | typeof UserService)[];
|
|
21
|
+
export declare const APIS: (typeof AuditLogsService | typeof BookingsService | typeof ContainersService | typeof DocumentsService | typeof HealthService | typeof NotesService | typeof PermissionsService | typeof ReportsService | typeof ShipmentsService | typeof UserService)[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { AuditLogs } from '../model/auditLogs';
|
|
4
|
+
import { Configuration } from '../configuration';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AuditLogsService {
|
|
7
|
+
protected httpClient: HttpClient;
|
|
8
|
+
protected basePath: string;
|
|
9
|
+
defaultHeaders: HttpHeaders;
|
|
10
|
+
configuration: Configuration;
|
|
11
|
+
encoder: HttpParameterCodec;
|
|
12
|
+
constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
|
|
13
|
+
private addToHttpParams;
|
|
14
|
+
private addToHttpParamsRecursive;
|
|
15
|
+
/**
|
|
16
|
+
* Getting a shipment logs
|
|
17
|
+
* @param id
|
|
18
|
+
* @param $skip
|
|
19
|
+
* @param $top
|
|
20
|
+
* @param $orderby
|
|
21
|
+
* @param $filter
|
|
22
|
+
* @param $search
|
|
23
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
24
|
+
* @param reportProgress flag to report request and response progress.
|
|
25
|
+
*/
|
|
26
|
+
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
27
|
+
httpHeaderAccept?: 'application/json';
|
|
28
|
+
context?: HttpContext;
|
|
29
|
+
transferCache?: boolean;
|
|
30
|
+
}): Observable<AuditLogs>;
|
|
31
|
+
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
32
|
+
httpHeaderAccept?: 'application/json';
|
|
33
|
+
context?: HttpContext;
|
|
34
|
+
transferCache?: boolean;
|
|
35
|
+
}): Observable<HttpResponse<AuditLogs>>;
|
|
36
|
+
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
37
|
+
httpHeaderAccept?: 'application/json';
|
|
38
|
+
context?: HttpContext;
|
|
39
|
+
transferCache?: boolean;
|
|
40
|
+
}): Observable<HttpEvent<AuditLogs>>;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogsService, [null, { optional: true; }, { optional: true; }]>;
|
|
42
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuditLogsService>;
|
|
43
|
+
}
|
|
@@ -2,6 +2,7 @@ import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, H
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { ContainersCount } from '../model/containersCount';
|
|
4
4
|
import { ContainersToDeliverCount } from '../model/containersToDeliverCount';
|
|
5
|
+
import { ShipmentContainers } from '../model/shipmentContainers';
|
|
5
6
|
import { Configuration } from '../configuration';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class ContainersService {
|
|
@@ -153,6 +154,32 @@ export declare class ContainersService {
|
|
|
153
154
|
context?: HttpContext;
|
|
154
155
|
transferCache?: boolean;
|
|
155
156
|
}): Observable<HttpEvent<ContainersCount>>;
|
|
157
|
+
/**
|
|
158
|
+
* Getting a shipment containers
|
|
159
|
+
* @param shipmentId
|
|
160
|
+
* @param $skip
|
|
161
|
+
* @param $top
|
|
162
|
+
* @param $orderby
|
|
163
|
+
* @param $filter
|
|
164
|
+
* @param $search
|
|
165
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
166
|
+
* @param reportProgress flag to report request and response progress.
|
|
167
|
+
*/
|
|
168
|
+
getShipmentContainers(shipmentId: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
169
|
+
httpHeaderAccept?: 'application/json';
|
|
170
|
+
context?: HttpContext;
|
|
171
|
+
transferCache?: boolean;
|
|
172
|
+
}): Observable<ShipmentContainers>;
|
|
173
|
+
getShipmentContainers(shipmentId: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
174
|
+
httpHeaderAccept?: 'application/json';
|
|
175
|
+
context?: HttpContext;
|
|
176
|
+
transferCache?: boolean;
|
|
177
|
+
}): Observable<HttpResponse<ShipmentContainers>>;
|
|
178
|
+
getShipmentContainers(shipmentId: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
179
|
+
httpHeaderAccept?: 'application/json';
|
|
180
|
+
context?: HttpContext;
|
|
181
|
+
transferCache?: boolean;
|
|
182
|
+
}): Observable<HttpEvent<ShipmentContainers>>;
|
|
156
183
|
static ɵfac: i0.ɵɵFactoryDeclaration<ContainersService, [null, { optional: true; }, { optional: true; }]>;
|
|
157
184
|
static ɵprov: i0.ɵɵInjectableDeclaration<ContainersService>;
|
|
158
185
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Documents } from '../model/documents';
|
|
4
|
+
import { Configuration } from '../configuration';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class DocumentsService {
|
|
7
|
+
protected httpClient: HttpClient;
|
|
8
|
+
protected basePath: string;
|
|
9
|
+
defaultHeaders: HttpHeaders;
|
|
10
|
+
configuration: Configuration;
|
|
11
|
+
encoder: HttpParameterCodec;
|
|
12
|
+
constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
|
|
13
|
+
private addToHttpParams;
|
|
14
|
+
private addToHttpParamsRecursive;
|
|
15
|
+
/**
|
|
16
|
+
* Getting a shipment documents
|
|
17
|
+
* @param id
|
|
18
|
+
* @param $skip
|
|
19
|
+
* @param $top
|
|
20
|
+
* @param $orderby
|
|
21
|
+
* @param $filter
|
|
22
|
+
* @param $search
|
|
23
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
24
|
+
* @param reportProgress flag to report request and response progress.
|
|
25
|
+
*/
|
|
26
|
+
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
27
|
+
httpHeaderAccept?: 'application/json';
|
|
28
|
+
context?: HttpContext;
|
|
29
|
+
transferCache?: boolean;
|
|
30
|
+
}): Observable<Documents>;
|
|
31
|
+
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
32
|
+
httpHeaderAccept?: 'application/json';
|
|
33
|
+
context?: HttpContext;
|
|
34
|
+
transferCache?: boolean;
|
|
35
|
+
}): Observable<HttpResponse<Documents>>;
|
|
36
|
+
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
37
|
+
httpHeaderAccept?: 'application/json';
|
|
38
|
+
context?: HttpContext;
|
|
39
|
+
transferCache?: boolean;
|
|
40
|
+
}): Observable<HttpEvent<Documents>>;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DocumentsService, [null, { optional: true; }, { optional: true; }]>;
|
|
42
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DocumentsService>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Notes } from '../model/notes';
|
|
4
|
+
import { Configuration } from '../configuration';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class NotesService {
|
|
7
|
+
protected httpClient: HttpClient;
|
|
8
|
+
protected basePath: string;
|
|
9
|
+
defaultHeaders: HttpHeaders;
|
|
10
|
+
configuration: Configuration;
|
|
11
|
+
encoder: HttpParameterCodec;
|
|
12
|
+
constructor(httpClient: HttpClient, basePath: string | string[], configuration: Configuration);
|
|
13
|
+
private addToHttpParams;
|
|
14
|
+
private addToHttpParamsRecursive;
|
|
15
|
+
/**
|
|
16
|
+
* Getting a shipment notes
|
|
17
|
+
* @param id
|
|
18
|
+
* @param $skip
|
|
19
|
+
* @param $top
|
|
20
|
+
* @param $orderby
|
|
21
|
+
* @param $filter
|
|
22
|
+
* @param $search
|
|
23
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
24
|
+
* @param reportProgress flag to report request and response progress.
|
|
25
|
+
*/
|
|
26
|
+
getShipmentNotes(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
27
|
+
httpHeaderAccept?: 'application/json';
|
|
28
|
+
context?: HttpContext;
|
|
29
|
+
transferCache?: boolean;
|
|
30
|
+
}): Observable<Notes>;
|
|
31
|
+
getShipmentNotes(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
32
|
+
httpHeaderAccept?: 'application/json';
|
|
33
|
+
context?: HttpContext;
|
|
34
|
+
transferCache?: boolean;
|
|
35
|
+
}): Observable<HttpResponse<Notes>>;
|
|
36
|
+
getShipmentNotes(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
37
|
+
httpHeaderAccept?: 'application/json';
|
|
38
|
+
context?: HttpContext;
|
|
39
|
+
transferCache?: boolean;
|
|
40
|
+
}): Observable<HttpEvent<Notes>>;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotesService, [null, { optional: true; }, { optional: true; }]>;
|
|
42
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NotesService>;
|
|
43
|
+
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { AuditLogs } from '../model/auditLogs';
|
|
4
|
-
import { Documents } from '../model/documents';
|
|
5
|
-
import { Notes } from '../model/notes';
|
|
6
|
-
import { ShipmentContainers } from '../model/shipmentContainers';
|
|
7
3
|
import { ShipmentItems } from '../model/shipmentItems';
|
|
8
4
|
import { ShipmentProducts } from '../model/shipmentProducts';
|
|
9
5
|
import { ShipmentRouting } from '../model/shipmentRouting';
|
|
@@ -46,58 +42,6 @@ export declare class ShipmentsService {
|
|
|
46
42
|
context?: HttpContext;
|
|
47
43
|
transferCache?: boolean;
|
|
48
44
|
}): Observable<HttpEvent<ShipmentRouting>>;
|
|
49
|
-
/**
|
|
50
|
-
* Getting a shipment containers
|
|
51
|
-
* @param id
|
|
52
|
-
* @param $skip
|
|
53
|
-
* @param $top
|
|
54
|
-
* @param $orderby
|
|
55
|
-
* @param $filter
|
|
56
|
-
* @param $search
|
|
57
|
-
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
58
|
-
* @param reportProgress flag to report request and response progress.
|
|
59
|
-
*/
|
|
60
|
-
getShipmentContainers(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
61
|
-
httpHeaderAccept?: 'application/json';
|
|
62
|
-
context?: HttpContext;
|
|
63
|
-
transferCache?: boolean;
|
|
64
|
-
}): Observable<ShipmentContainers>;
|
|
65
|
-
getShipmentContainers(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
66
|
-
httpHeaderAccept?: 'application/json';
|
|
67
|
-
context?: HttpContext;
|
|
68
|
-
transferCache?: boolean;
|
|
69
|
-
}): Observable<HttpResponse<ShipmentContainers>>;
|
|
70
|
-
getShipmentContainers(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
71
|
-
httpHeaderAccept?: 'application/json';
|
|
72
|
-
context?: HttpContext;
|
|
73
|
-
transferCache?: boolean;
|
|
74
|
-
}): Observable<HttpEvent<ShipmentContainers>>;
|
|
75
|
-
/**
|
|
76
|
-
* Getting a shipment documents
|
|
77
|
-
* @param id
|
|
78
|
-
* @param $skip
|
|
79
|
-
* @param $top
|
|
80
|
-
* @param $orderby
|
|
81
|
-
* @param $filter
|
|
82
|
-
* @param $search
|
|
83
|
-
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
84
|
-
* @param reportProgress flag to report request and response progress.
|
|
85
|
-
*/
|
|
86
|
-
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
87
|
-
httpHeaderAccept?: 'application/json';
|
|
88
|
-
context?: HttpContext;
|
|
89
|
-
transferCache?: boolean;
|
|
90
|
-
}): Observable<Documents>;
|
|
91
|
-
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
92
|
-
httpHeaderAccept?: 'application/json';
|
|
93
|
-
context?: HttpContext;
|
|
94
|
-
transferCache?: boolean;
|
|
95
|
-
}): Observable<HttpResponse<Documents>>;
|
|
96
|
-
getShipmentDocuments(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
97
|
-
httpHeaderAccept?: 'application/json';
|
|
98
|
-
context?: HttpContext;
|
|
99
|
-
transferCache?: boolean;
|
|
100
|
-
}): Observable<HttpEvent<Documents>>;
|
|
101
45
|
/**
|
|
102
46
|
* Shipment items list
|
|
103
47
|
* @param id
|
|
@@ -119,53 +63,6 @@ export declare class ShipmentsService {
|
|
|
119
63
|
context?: HttpContext;
|
|
120
64
|
transferCache?: boolean;
|
|
121
65
|
}): Observable<HttpEvent<ShipmentItems>>;
|
|
122
|
-
/**
|
|
123
|
-
* Getting a shipment logs
|
|
124
|
-
* @param id
|
|
125
|
-
* @param $skip
|
|
126
|
-
* @param $top
|
|
127
|
-
* @param $orderby
|
|
128
|
-
* @param $filter
|
|
129
|
-
* @param $search
|
|
130
|
-
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
131
|
-
* @param reportProgress flag to report request and response progress.
|
|
132
|
-
*/
|
|
133
|
-
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
134
|
-
httpHeaderAccept?: 'application/json';
|
|
135
|
-
context?: HttpContext;
|
|
136
|
-
transferCache?: boolean;
|
|
137
|
-
}): Observable<AuditLogs>;
|
|
138
|
-
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
139
|
-
httpHeaderAccept?: 'application/json';
|
|
140
|
-
context?: HttpContext;
|
|
141
|
-
transferCache?: boolean;
|
|
142
|
-
}): Observable<HttpResponse<AuditLogs>>;
|
|
143
|
-
getShipmentLogs(id: string, $skip?: number, $top?: number, $orderby?: string, $filter?: string, $search?: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
144
|
-
httpHeaderAccept?: 'application/json';
|
|
145
|
-
context?: HttpContext;
|
|
146
|
-
transferCache?: boolean;
|
|
147
|
-
}): Observable<HttpEvent<AuditLogs>>;
|
|
148
|
-
/**
|
|
149
|
-
* Getting a shipment notes
|
|
150
|
-
* @param id
|
|
151
|
-
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
152
|
-
* @param reportProgress flag to report request and response progress.
|
|
153
|
-
*/
|
|
154
|
-
getShipmentNotes(id: string, observe?: 'body', reportProgress?: boolean, options?: {
|
|
155
|
-
httpHeaderAccept?: 'application/json';
|
|
156
|
-
context?: HttpContext;
|
|
157
|
-
transferCache?: boolean;
|
|
158
|
-
}): Observable<Notes>;
|
|
159
|
-
getShipmentNotes(id: string, observe?: 'response', reportProgress?: boolean, options?: {
|
|
160
|
-
httpHeaderAccept?: 'application/json';
|
|
161
|
-
context?: HttpContext;
|
|
162
|
-
transferCache?: boolean;
|
|
163
|
-
}): Observable<HttpResponse<Notes>>;
|
|
164
|
-
getShipmentNotes(id: string, observe?: 'events', reportProgress?: boolean, options?: {
|
|
165
|
-
httpHeaderAccept?: 'application/json';
|
|
166
|
-
context?: HttpContext;
|
|
167
|
-
transferCache?: boolean;
|
|
168
|
-
}): Observable<HttpEvent<Notes>>;
|
|
169
66
|
/**
|
|
170
67
|
* Getting a shipment products
|
|
171
68
|
* @param id
|
package/esm2022/api/api.mjs
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
export * from './auditLogs.service';
|
|
2
|
+
import { AuditLogsService } from './auditLogs.service';
|
|
1
3
|
export * from './bookings.service';
|
|
2
4
|
import { BookingsService } from './bookings.service';
|
|
3
5
|
export * from './containers.service';
|
|
4
6
|
import { ContainersService } from './containers.service';
|
|
7
|
+
export * from './documents.service';
|
|
8
|
+
import { DocumentsService } from './documents.service';
|
|
5
9
|
export * from './health.service';
|
|
6
10
|
import { HealthService } from './health.service';
|
|
11
|
+
export * from './notes.service';
|
|
12
|
+
import { NotesService } from './notes.service';
|
|
7
13
|
export * from './permissions.service';
|
|
8
14
|
import { PermissionsService } from './permissions.service';
|
|
9
15
|
export * from './reports.service';
|
|
@@ -12,5 +18,5 @@ export * from './shipments.service';
|
|
|
12
18
|
import { ShipmentsService } from './shipments.service';
|
|
13
19
|
export * from './user.service';
|
|
14
20
|
import { UserService } from './user.service';
|
|
15
|
-
export const APIS = [BookingsService, ContainersService, HealthService, PermissionsService, ReportsService, ShipmentsService, UserService];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
export const APIS = [AuditLogsService, BookingsService, ContainersService, DocumentsService, HealthService, NotesService, PermissionsService, ReportsService, ShipmentsService, UserService];
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdWRpdExvZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBBdWRpdExvZ3NTZXJ2aWNlIH0gZnJvbSAnLi9hdWRpdExvZ3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2tpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQm9va2luZ3NTZXJ2aWNlIH0gZnJvbSAnLi9ib29raW5ncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFpbmVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRhaW5lcnNTZXJ2aWNlIH0gZnJvbSAnLi9jb250YWluZXJzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi9kb2N1bWVudHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWx0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEhlYWx0aFNlcnZpY2UgfSBmcm9tICcuL2hlYWx0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbm90ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBOb3Rlc1NlcnZpY2UgfSBmcm9tICcuL25vdGVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4vcGVybWlzc2lvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydHMuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvcnRzU2VydmljZSB9IGZyb20gJy4vcmVwb3J0cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hpcG1lbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hpcG1lbnRzU2VydmljZSB9IGZyb20gJy4vc2hpcG1lbnRzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5leHBvcnQgY29uc3QgQVBJUyA9IFtBdWRpdExvZ3NTZXJ2aWNlLCBCb29raW5nc1NlcnZpY2UsIENvbnRhaW5lcnNTZXJ2aWNlLCBEb2N1bWVudHNTZXJ2aWNlLCBIZWFsdGhTZXJ2aWNlLCBOb3Rlc1NlcnZpY2UsIFBlcm1pc3Npb25zU2VydmljZSwgUmVwb3J0c1NlcnZpY2UsIFNoaXBtZW50c1NlcnZpY2UsIFVzZXJTZXJ2aWNlXTtcbiJdfQ==
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dcm.API.Client
|
|
3
|
+
* DCM API Client for Angular applications
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
8
|
+
* https://openapi-generator.tech
|
|
9
|
+
* Do not edit the class manually.
|
|
10
|
+
*/
|
|
11
|
+
/* tslint:disable:no-unused-variable member-ordering */
|
|
12
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
13
|
+
import { HttpHeaders, HttpParams, HttpContext } from '@angular/common/http';
|
|
14
|
+
import { CustomHttpParameterCodec } from '../encoder';
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
import { BASE_PATH } from '../variables';
|
|
17
|
+
import { Configuration } from '../configuration';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/common/http";
|
|
20
|
+
import * as i2 from "../configuration";
|
|
21
|
+
export class AuditLogsService {
|
|
22
|
+
httpClient;
|
|
23
|
+
basePath = 'http://localhost';
|
|
24
|
+
defaultHeaders = new HttpHeaders();
|
|
25
|
+
configuration = new Configuration();
|
|
26
|
+
encoder;
|
|
27
|
+
constructor(httpClient, basePath, configuration) {
|
|
28
|
+
this.httpClient = httpClient;
|
|
29
|
+
if (configuration) {
|
|
30
|
+
this.configuration = configuration;
|
|
31
|
+
}
|
|
32
|
+
if (typeof this.configuration.basePath !== 'string') {
|
|
33
|
+
const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;
|
|
34
|
+
if (firstBasePath != undefined) {
|
|
35
|
+
basePath = firstBasePath;
|
|
36
|
+
}
|
|
37
|
+
if (typeof basePath !== 'string') {
|
|
38
|
+
basePath = this.basePath;
|
|
39
|
+
}
|
|
40
|
+
this.configuration.basePath = basePath;
|
|
41
|
+
}
|
|
42
|
+
this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
|
|
43
|
+
}
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
addToHttpParams(httpParams, value, key) {
|
|
46
|
+
if (typeof value === "object" && value instanceof Date === false) {
|
|
47
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
|
|
51
|
+
}
|
|
52
|
+
return httpParams;
|
|
53
|
+
}
|
|
54
|
+
addToHttpParamsRecursive(httpParams, value, key) {
|
|
55
|
+
if (value == null) {
|
|
56
|
+
return httpParams;
|
|
57
|
+
}
|
|
58
|
+
if (typeof value === "object") {
|
|
59
|
+
if (Array.isArray(value)) {
|
|
60
|
+
value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
|
|
61
|
+
}
|
|
62
|
+
else if (value instanceof Date) {
|
|
63
|
+
if (key != null) {
|
|
64
|
+
httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw Error("key may not be null if value is Date");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (key != null) {
|
|
75
|
+
httpParams = httpParams.append(key, value);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw Error("key may not be null if value is not object or array");
|
|
79
|
+
}
|
|
80
|
+
return httpParams;
|
|
81
|
+
}
|
|
82
|
+
getShipmentLogs(id, $skip, $top, $orderby, $filter, $search, observe = 'body', reportProgress = false, options) {
|
|
83
|
+
if (id === null || id === undefined) {
|
|
84
|
+
throw new Error('Required parameter id was null or undefined when calling getShipmentLogs.');
|
|
85
|
+
}
|
|
86
|
+
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
87
|
+
if ($skip !== undefined && $skip !== null) {
|
|
88
|
+
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, $skip, '$skip');
|
|
89
|
+
}
|
|
90
|
+
if ($top !== undefined && $top !== null) {
|
|
91
|
+
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, $top, '$top');
|
|
92
|
+
}
|
|
93
|
+
if ($orderby !== undefined && $orderby !== null) {
|
|
94
|
+
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, $orderby, '$orderby');
|
|
95
|
+
}
|
|
96
|
+
if ($filter !== undefined && $filter !== null) {
|
|
97
|
+
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, $filter, '$filter');
|
|
98
|
+
}
|
|
99
|
+
if ($search !== undefined && $search !== null) {
|
|
100
|
+
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, $search, '$search');
|
|
101
|
+
}
|
|
102
|
+
let localVarHeaders = this.defaultHeaders;
|
|
103
|
+
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
104
|
+
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
105
|
+
// to determine the Accept header
|
|
106
|
+
const httpHeaderAccepts = [
|
|
107
|
+
'application/json'
|
|
108
|
+
];
|
|
109
|
+
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
110
|
+
}
|
|
111
|
+
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
112
|
+
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
113
|
+
}
|
|
114
|
+
let localVarHttpContext = options && options.context;
|
|
115
|
+
if (localVarHttpContext === undefined) {
|
|
116
|
+
localVarHttpContext = new HttpContext();
|
|
117
|
+
}
|
|
118
|
+
let localVarTransferCache = options && options.transferCache;
|
|
119
|
+
if (localVarTransferCache === undefined) {
|
|
120
|
+
localVarTransferCache = true;
|
|
121
|
+
}
|
|
122
|
+
let responseType_ = 'json';
|
|
123
|
+
if (localVarHttpHeaderAcceptSelected) {
|
|
124
|
+
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
125
|
+
responseType_ = 'text';
|
|
126
|
+
}
|
|
127
|
+
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
128
|
+
responseType_ = 'json';
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
responseType_ = 'blob';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
let localVarPath = `/auditLogs/${this.configuration.encodeParam({ name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
|
|
135
|
+
return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
|
|
136
|
+
context: localVarHttpContext,
|
|
137
|
+
params: localVarQueryParameters,
|
|
138
|
+
responseType: responseType_,
|
|
139
|
+
withCredentials: this.configuration.withCredentials,
|
|
140
|
+
headers: localVarHeaders,
|
|
141
|
+
observe: observe,
|
|
142
|
+
transferCache: localVarTransferCache,
|
|
143
|
+
reportProgress: reportProgress
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AuditLogsService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
147
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AuditLogsService, providedIn: 'root' });
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AuditLogsService, decorators: [{
|
|
150
|
+
type: Injectable,
|
|
151
|
+
args: [{
|
|
152
|
+
providedIn: 'root'
|
|
153
|
+
}]
|
|
154
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
155
|
+
type: Optional
|
|
156
|
+
}, {
|
|
157
|
+
type: Inject,
|
|
158
|
+
args: [BASE_PATH]
|
|
159
|
+
}] }, { type: i2.Configuration, decorators: [{
|
|
160
|
+
type: Optional
|
|
161
|
+
}] }] });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRMb2dzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYXVkaXRMb2dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBQ0gsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQ1UsV0FBVyxFQUN4RCxNQUFZLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUErQixZQUFZLENBQUM7QUFNL0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBT3JGLE1BQU0sT0FBTyxnQkFBZ0I7SUFPSDtJQUxaLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztJQUNqQyxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNwQyxPQUFPLENBQXFCO0lBRW5DLFlBQXNCLFVBQXNCLEVBQWdDLFFBQXlCLEVBQWMsYUFBNEI7UUFBekgsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN4QyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEUsSUFBSSxhQUFh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QztnQkFDSixhQUFhLEdBQUcsTUFBTSxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsY0FBYyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkwsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBWSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxZQUFZLEVBQUUsRUFDNUY7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsWUFBWSxFQUFPLGFBQWE7WUFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNuRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsT0FBTztZQUNoQixhQUFhLEVBQUUscUJBQXFCO1lBQ3BDLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7dUdBeEpRLGdCQUFnQiw0Q0FPd0MsU0FBUzsyR0FQakUsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWtELFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQThCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERjbS5BUEkuQ2xpZW50XG4gKiBEQ00gQVBJIENsaWVudCBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnNcbiAqXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwQ29udGV4dCBcbiAgICAgICAgfSAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwUGFyYW1ldGVyQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEF1ZGl0TG9ncyB9IGZyb20gJy4uL21vZGVsL2F1ZGl0TG9ncyc7XG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEJBU0VfUEFUSCwgQ09MTEVDVElPTl9GT1JNQVRTIH0gICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xuXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dzU2VydmljZSB7XG5cbiAgICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cDovL2xvY2FsaG9zdCc7XG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuICAgIHB1YmxpYyBlbmNvZGVyOiBIdHRwUGFyYW1ldGVyQ29kZWM7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudCwgQE9wdGlvbmFsKClASW5qZWN0KEJBU0VfUEFUSCkgYmFzZVBhdGg6IHN0cmluZ3xzdHJpbmdbXSwgQE9wdGlvbmFsKCkgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbikge1xuICAgICAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0QmFzZVBhdGggPSBBcnJheS5pc0FycmF5KGJhc2VQYXRoKSA/IGJhc2VQYXRoWzBdIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGZpcnN0QmFzZVBhdGggIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYmFzZVBhdGggPSBmaXJzdEJhc2VQYXRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGJhc2VQYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGJhc2VQYXRoID0gdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5jb2RlciA9IHRoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVyIHx8IG5ldyBDdXN0b21IdHRwUGFyYW1ldGVyQ29kZWMoKTtcbiAgICB9XG5cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBwcml2YXRlIGFkZFRvSHR0cFBhcmFtcyhodHRwUGFyYW1zOiBIdHRwUGFyYW1zLCB2YWx1ZTogYW55LCBrZXk/OiBzdHJpbmcpOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBodHRwUGFyYW1zID0gdGhpcy5hZGRUb0h0dHBQYXJhbXNSZWN1cnNpdmUoaHR0cFBhcmFtcywgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaHR0cFBhcmFtcyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zUmVjdXJzaXZlKGh0dHBQYXJhbXMsIHZhbHVlLCBrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBodHRwUGFyYW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVG9IdHRwUGFyYW1zUmVjdXJzaXZlKGh0dHBQYXJhbXM6IEh0dHBQYXJhbXMsIHZhbHVlPzogYW55LCBrZXk/OiBzdHJpbmcpOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBodHRwUGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgKHZhbHVlIGFzIGFueVtdKS5mb3JFYWNoKCBlbGVtID0+IGh0dHBQYXJhbXMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtc1JlY3Vyc2l2ZShodHRwUGFyYW1zLCBlbGVtLCBrZXkpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChrZXksICh2YWx1ZSBhcyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLCAxMCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJrZXkgbWF5IG5vdCBiZSBudWxsIGlmIHZhbHVlIGlzIERhdGVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaCggayA9PiBodHRwUGFyYW1zID0gdGhpcy5hZGRUb0h0dHBQYXJhbXNSZWN1cnNpdmUoXG4gICAgICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMsIHZhbHVlW2tdLCBrZXkgIT0gbnVsbCA/IGAke2tleX0uJHtrfWAgOiBrKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwia2V5IG1heSBub3QgYmUgbnVsbCBpZiB2YWx1ZSBpcyBub3Qgb2JqZWN0IG9yIGFycmF5XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBodHRwUGFyYW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHRpbmcgYSBzaGlwbWVudCBsb2dzXG4gICAgICogQHBhcmFtIGlkIFxuICAgICAqIEBwYXJhbSAkc2tpcCBcbiAgICAgKiBAcGFyYW0gJHRvcCBcbiAgICAgKiBAcGFyYW0gJG9yZGVyYnkgXG4gICAgICogQHBhcmFtICRmaWx0ZXIgXG4gICAgICogQHBhcmFtICRzZWFyY2ggXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldFNoaXBtZW50TG9ncyhpZDogc3RyaW5nLCAkc2tpcD86IG51bWJlciwgJHRvcD86IG51bWJlciwgJG9yZGVyYnk/OiBzdHJpbmcsICRmaWx0ZXI/OiBzdHJpbmcsICRzZWFyY2g/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8QXVkaXRMb2dzPjtcbiAgICBwdWJsaWMgZ2V0U2hpcG1lbnRMb2dzKGlkOiBzdHJpbmcsICRza2lwPzogbnVtYmVyLCAkdG9wPzogbnVtYmVyLCAkb3JkZXJieT86IHN0cmluZywgJGZpbHRlcj86IHN0cmluZywgJHNlYXJjaD86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEF1ZGl0TG9ncz4+O1xuICAgIHB1YmxpYyBnZXRTaGlwbWVudExvZ3MoaWQ6IHN0cmluZywgJHNraXA/OiBudW1iZXIsICR0b3A/OiBudW1iZXIsICRvcmRlcmJ5Pzogc3RyaW5nLCAkZmlsdGVyPzogc3RyaW5nLCAkc2VhcmNoPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PEF1ZGl0TG9ncz4+O1xuICAgIHB1YmxpYyBnZXRTaGlwbWVudExvZ3MoaWQ6IHN0cmluZywgJHNraXA/OiBudW1iZXIsICR0b3A/OiBudW1iZXIsICRvcmRlcmJ5Pzogc3RyaW5nLCAkZmlsdGVyPzogc3RyaW5nLCAkc2VhcmNoPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRTaGlwbWVudExvZ3MuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogdGhpcy5lbmNvZGVyfSk7XG4gICAgICAgIGlmICgkc2tpcCAhPT0gdW5kZWZpbmVkICYmICRza2lwICE9PSBudWxsKSB7XG4gICAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgIDxhbnk+JHNraXAsICckc2tpcCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkdG9wICE9PSB1bmRlZmluZWQgJiYgJHRvcCAhPT0gbnVsbCkge1xuICAgICAgICAgIGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzID0gdGhpcy5hZGRUb0h0dHBQYXJhbXMobG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICA8YW55PiR0b3AsICckdG9wJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCRvcmRlcmJ5ICE9PSB1bmRlZmluZWQgJiYgJG9yZGVyYnkgIT09IG51bGwpIHtcbiAgICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgPGFueT4kb3JkZXJieSwgJyRvcmRlcmJ5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCRmaWx0ZXIgIT09IHVuZGVmaW5lZCAmJiAkZmlsdGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtcyhsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgIDxhbnk+JGZpbHRlciwgJyRmaWx0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJHNlYXJjaCAhPT0gdW5kZWZpbmVkICYmICRzZWFyY2ggIT09IG51bGwpIHtcbiAgICAgICAgICBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zKGxvY2FsVmFyUXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgPGFueT4kc2VhcmNoLCAnJHNlYXJjaCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuaHR0cEhlYWRlckFjY2VwdDtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jb250ZXh0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckh0dHBDb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLnRyYW5zZmVyQ2FjaGU7XG4gICAgICAgIGlmIChsb2NhbFZhclRyYW5zZmVyQ2FjaGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJUcmFuc2ZlckNhY2hlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL2F1ZGl0TG9ncy8ke3RoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVQYXJhbSh7bmFtZTogXCJpZFwiLCB2YWx1ZTogaWQsIGluOiBcInBhdGhcIiwgc3R5bGU6IFwic2ltcGxlXCIsIGV4cGxvZGU6IGZhbHNlLCBkYXRhVHlwZTogXCJzdHJpbmdcIiwgZGF0YUZvcm1hdDogdW5kZWZpbmVkfSl9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PEF1ZGl0TG9ncz4oJ2dldCcsIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBsb2NhbFZhclF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
|