UNPKG

@experteam-mx/ngx-services

Version:

Angular common services for Experteam apps

194 lines 26.6 kB
import { Inject, Injectable } from '@angular/core'; import { map } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; export class ApiInventoriesService { environments; http; constructor(environments, http) { this.environments = environments; this.http = http; } /** * Retrieves the URL for the Inventories API from the environment configurations. * * @return {string} The URL of the Inventories API. */ get url() { return this.environments.apiInventoriesUrl ?? ''; } /** * Retrieves a list of checkpoints based on query parameters. * * @param {QueryParams} params - Query parameters for filtering the checkpoints. * @returns {Observable<CheckpointsOut>} The list of checkpoints. */ getCheckpoints(params) { return this.http.get(`${this.url}/checkpoints`, { params }).pipe(map(({ data }) => data)); } /** * Retrieves a list of checkpoint event reasons based on query parameters. * * @param {QueryParams} params - Query parameters for filtering the checkpoint event reasons. * @returns {Observable<CheckpointEventReasonsOut>} The list of checkpoint event reasons. */ getCheckpointEventReasons(params) { return this.http.get(`${this.url}/checkpoint-event-reasons`, { params }).pipe(map(({ data }) => data)); } /** * Retrieves a list of incidents based on query parameters. * * @param {QueryParams} params - Query parameters for filtering the incidents. * @returns {Observable<IncidentsOut>} An observable that emits the list of incidents. */ getIncidents(params) { return this.http.get(`${this.url}/incidents`, { params }).pipe(map(({ data }) => data)); } /** * Fetches the incident details based on the provided incident ID. * * @param {number} id - The identifier of the incident record to get detail. * @return {Observable<IncidentOut>} An observable that emits the detail incident data. */ getIncident(id) { return this.http.get(`${this.url}/incidents/${id}`) .pipe(map(({ data }) => data)); } /** * Creates a new incident. * * @param {IncidentIn} body - The data for the new incident. * @returns {Observable<IncidentOut>} An observable the created incident detail. */ postIncident(body) { return this.http.post(`${this.url}/incidents`, body).pipe(map(({ data }) => data)); } /** * Updates an existing incident. * * @param {number} id - The identifier of the incident record to update. * @param {IncidentIn} body - The incident data to be updated. * @returns {Observable<IncidentOut>} An observable detail of the updated incident. */ putIncident(id, body) { return this.http.put(`${this.url}/incidents/${id}`, body).pipe(map(({ data }) => data)); } /** * Delete an existing incident. * * @param {number} id - The unique identifier of the incident to be deleted. * @returns {Observable<IncidentOut>} An observable that emits the result of the delete incident. */ deleteIncident(id) { return this.http.delete(`${this.url}/incidents/${id}`) .pipe(map(({ data }) => data)); } /** * Retrieves a list of incident reasons based on query parameters. * * @param {QueryParams} params - Query parameters for filtering the incident reasons. * @returns {Observable<IncidentReasonsOut>} An observable that emits the list of incident reasons. */ getIncidentReasons(params) { return this.http.get(`${this.url}/incident-reasons`, { params }).pipe(map(({ data }) => data)); } /** * Fetches the incident reason details based on the provided incident reason ID. * * @param {number} id - The identifier of the incident reason record to get detail. * @return {Observable<IncidentReasonOut>} An observable that emits the detail incident reason data. */ getIncidentReason(id) { return this.http.get(`${this.url}/incident-reasons/${id}`) .pipe(map(({ data }) => data)); } /** * Creates a new incident reason. * * @param {IncidentReasonIn} body - The data for the new incident reason. * @returns {Observable<IncidentReasonOut>} An observable the created incident reason detail. */ postIncidentReason(body) { return this.http.post(`${this.url}/incident-reasons`, body).pipe(map(({ data }) => data)); } /** * Updates an existing incident reason. * * @param {number} id - The identifier of the incident reason record to update. * @param {IncidentIn} body - The incident reason data to be updated. * @returns {Observable<IncidentReasonOut>} An observable detail of the updated incident reason. */ putIncidentReason(id, body) { return this.http.put(`${this.url}/incident-reasons/${id}`, body).pipe(map(({ data }) => data)); } /** * Delete an existing incident reason. * * @param {number} id - The unique identifier of the incident reason to be deleted. * @returns {Observable<IncidentReasonOut>} An observable that emits the result of the delete incident reason. */ deleteIncidentReason(id) { return this.http.delete(`${this.url}/incident-reasons/${id}`) .pipe(map(({ data }) => data)); } /** * Retrieves a list of incident reason complements based on query parameters. * * @param {QueryParams} params - Query parameters for filtering the incident reason complements. * @returns {Observable<IncidentReasonComplementsOut>} An observable that emits the list of incident reason complements. */ getIncidentReasonComplements(params) { return this.http.get(`${this.url}/incident-reason-complements`, { params }).pipe(map(({ data }) => data)); } /** * Creates a new incident reason complement. * * @param {IncidentReasonIn} body - The data for the new incident reason complement. * @returns {Observable<IncidentReasonComplementOut>} An observable the created incident reason complement detail. */ postIncidentReasonComplement(body) { return this.http.post(`${this.url}/incident-reason-complements`, body).pipe(map(({ data }) => data)); } /** * Updates an existing incident reason complement. * * @param {number} id - The identifier of the incident reason complement record to update. * @param {IncidentIn} body - The incident reason complement data to be updated. * @returns {Observable<IncidentReasonComplementOut>} An observable detail of the updated incident reason complement. */ putIncidentReasonComplement(id, body) { return this.http.put(`${this.url}/incident-reason-complements/${id}`, body).pipe(map(({ data }) => data)); } /** * Delete an existing incident reason complement. * * @param {number} id - The unique identifier of the incident reason complement to be deleted. * @returns {Observable<IncidentReasonComplementOut>} An observable that emits the result of the delete incident reason complement. */ deleteIncidentReasonComplement(id) { return this.http.delete(`${this.url}/incident-reason-complements/${id}`) .pipe(map(({ data }) => data)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInventoriesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInventoriesService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiInventoriesService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: ['env'] }] }, { type: i1.HttpClient }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWludmVudG9yaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktaW52ZW50b3JpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFNdEMsTUFBTSxPQUFPLHFCQUFxQjtJQUVQO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBRSxNQUFtQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE2QixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRTtZQUMxRSxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLE1BQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUU7WUFDbEcsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUs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Q3ZFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxFQUMzRyxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw4QkFBOEIsQ0FBRSxFQUFVO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBDLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsRUFBRSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBM01VLHFCQUFxQixrQkFFdEIsS0FBSzs0R0FGSixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQ2hlY2twb2ludEV2ZW50UmVhc29uc091dCwgQ2hlY2twb2ludHNPdXQsIEluY2lkZW50SW4sIEluY2lkZW50T3V0LCBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRJbiwgSW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0LCBJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRzT3V0LCBJbmNpZGVudFJlYXNvbkluLCBJbmNpZGVudFJlYXNvbk91dCwgSW5jaWRlbnRSZWFzb25zT3V0LCBJbmNpZGVudHNPdXQgfSBmcm9tICcuL21vZGVscy9hcGktaW52ZW50b3JpZXMudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlJbnZlbnRvcmllc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgSW52ZW50b3JpZXMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBJbnZlbnRvcmllcyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlJbnZlbnRvcmllc1VybCA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjaGVja3BvaW50cyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBjaGVja3BvaW50cy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxDaGVja3BvaW50c091dD59IFRoZSBsaXN0IG9mIGNoZWNrcG9pbnRzLlxyXG4gICAqL1xyXG4gIGdldENoZWNrcG9pbnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDaGVja3BvaW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDaGVja3BvaW50c091dD4+KGAke3RoaXMudXJsfS9jaGVja3BvaW50c2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBjaGVja3BvaW50IGV2ZW50IHJlYXNvbnMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgY2hlY2twb2ludCBldmVudCByZWFzb25zLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPENoZWNrcG9pbnRFdmVudFJlYXNvbnNPdXQ+fSBUaGUgbGlzdCBvZiBjaGVja3BvaW50IGV2ZW50IHJlYXNvbnMuXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2twb2ludEV2ZW50UmVhc29ucyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2hlY2twb2ludEV2ZW50UmVhc29uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxDaGVja3BvaW50RXZlbnRSZWFzb25zT3V0Pj4oYCR7dGhpcy51cmx9L2NoZWNrcG9pbnQtZXZlbnQtcmVhc29uc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBpbmNpZGVudHMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgaW5jaWRlbnRzLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBpbmNpZGVudHMuXHJcbiAgICovXHJcbiAgZ2V0SW5jaWRlbnRzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxJbmNpZGVudHNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50c2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgaW5jaWRlbnQgZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgaW5jaWRlbnQgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVjb3JkIHRvIGdldCBkZXRhaWwuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbmNpZGVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlsIGluY2lkZW50IGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0SW5jaWRlbnQgKGlkOiBOdW1iZXIpOiBPYnNlcnZhYmxlPEluY2lkZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEluY2lkZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBpbmNpZGVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgbmV3IGluY2lkZW50LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGUgY3JlYXRlZCBpbmNpZGVudCBkZXRhaWwuXHJcbiAgICovXHJcbiAgcG9zdEluY2lkZW50IChib2R5OiBJbmNpZGVudEluKTogT2JzZXJ2YWJsZTxJbmNpZGVudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnRzYCxcclxuICAgICAgYm9keVxyXG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBpbmNpZGVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCByZWNvcmQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRJbn0gYm9keSAtIFRoZSBpbmNpZGVudCBkYXRhIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGRldGFpbCBvZiB0aGUgdXBkYXRlZCBpbmNpZGVudC5cclxuICAgKi9cclxuICBwdXRJbmNpZGVudCAoaWQ6IE51bWJlciwgYm9keTogSW5jaWRlbnRJbik6IE9ic2VydmFibGU8SW5jaWRlbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnRzLyR7aWR9YCxcclxuICAgICAgYm9keVxyXG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIGluY2lkZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCB0byBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGRlbGV0ZSBpbmNpZGVudC5cclxuICAgKi9cclxuICBkZWxldGVJbmNpZGVudCAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPEFwaVN1Y2Nlc3M8SW5jaWRlbnRPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnRzLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGluY2lkZW50IHJlYXNvbnMgYmFzZWQgb24gcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyB0aGUgaW5jaWRlbnQgcmVhc29ucy5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgaW5jaWRlbnQgcmVhc29ucy5cclxuICAgKi9cclxuICBnZXRJbmNpZGVudFJlYXNvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbnNPdXQ+PihgJHt0aGlzLnVybH0vaW5jaWRlbnQtcmVhc29uc2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgaW5jaWRlbnQgcmVhc29uIGRldGFpbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluY2lkZW50IHJlYXNvbiBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCByZWFzb24gcmVjb3JkIHRvIGdldCBkZXRhaWwuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlsIGluY2lkZW50IHJlYXNvbiBkYXRhLlxyXG4gICAqL1xyXG4gIGdldEluY2lkZW50UmVhc29uIChpZDogTnVtYmVyKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGluY2lkZW50IHJlYXNvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRSZWFzb25Jbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgbmV3IGluY2lkZW50IHJlYXNvbi5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgdGhlIGNyZWF0ZWQgaW5jaWRlbnQgcmVhc29uIGRldGFpbC5cclxuICAgKi9cclxuICBwb3N0SW5jaWRlbnRSZWFzb24gKGJvZHk6IEluY2lkZW50UmVhc29uSW4pOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb25zYCxcclxuICAgICAgYm9keVxyXG4gICAgKS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBpbmNpZGVudCByZWFzb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIHJlY29yZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtJbmNpZGVudElufSBib2R5IC0gVGhlIGluY2lkZW50IHJlYXNvbiBkYXRhIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGRldGFpbCBvZiB0aGUgdXBkYXRlZCBpbmNpZGVudCByZWFzb24uXHJcbiAgICovXHJcbiAgcHV0SW5jaWRlbnRSZWFzb24gKGlkOiBOdW1iZXIsIGJvZHk6IEluY2lkZW50UmVhc29uSW4pOiBPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbnMvJHtpZH1gLFxyXG4gICAgICBib2R5XHJcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgaW5jaWRlbnQgcmVhc29uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBpbmNpZGVudCByZWFzb24gdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIHRoZSBkZWxldGUgaW5jaWRlbnQgcmVhc29uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUluY2lkZW50UmVhc29uIChpZDogTnVtYmVyKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbk91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50cyBiYXNlZCBvbiBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHRoZSBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudHMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudHMuXHJcbiAgICovXHJcbiAgZ2V0SW5jaWRlbnRSZWFzb25Db21wbGVtZW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbi1jb21wbGVtZW50c2AsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SW5jaWRlbnRSZWFzb25Jbn0gYm9keSAtIFRoZSBkYXRhIGZvciB0aGUgbmV3IGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD59IEFuIG9ic2VydmFibGUgdGhlIGNyZWF0ZWQgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQgZGV0YWlsLlxyXG4gICAqL1xyXG4gIHBvc3RJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnQgKGJvZHk6IEluY2lkZW50UmVhc29uQ29tcGxlbWVudEluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb24tY29tcGxlbWVudHNgLFxyXG4gICAgICBib2R5XHJcbiAgICApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IHJlY29yZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIHtJbmNpZGVudElufSBib2R5IC0gVGhlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50IGRhdGEgdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIGRldGFpbCBvZiB0aGUgdXBkYXRlZCBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKi9cclxuICBwdXRJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnQgKGlkOiBOdW1iZXIsIGJvZHk6IEluY2lkZW50UmVhc29uQ29tcGxlbWVudEluKTogT2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0Pj4oYCR7dGhpcy51cmx9L2luY2lkZW50LXJlYXNvbi1jb21wbGVtZW50cy8ke2lkfWAsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBpbmNpZGVudCByZWFzb24gY29tcGxlbWVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgaW5jaWRlbnQgcmVhc29uIGNvbXBsZW1lbnQgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxJbmNpZGVudFJlYXNvbkNvbXBsZW1lbnRPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIGluY2lkZW50IHJlYXNvbiBjb21wbGVtZW50LlxyXG4gICAqL1xyXG4gIGRlbGV0ZUluY2lkZW50UmVhc29uQ29tcGxlbWVudCAoaWQ6IE51bWJlcik6IE9ic2VydmFibGU8SW5jaWRlbnRSZWFzb25Db21wbGVtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPEluY2lkZW50UmVhc29uQ29tcGxlbWVudE91dD4+KGAke3RoaXMudXJsfS9pbmNpZGVudC1yZWFzb24tY29tcGxlbWVudHMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19