UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

175 lines 22.2 kB
import { Injectable } from '@angular/core'; import { filter, map, switchMap } from 'rxjs/operators'; import { ResourceProvider } from '../resource-provider.service'; import { HttpEventType, HttpParams } from '@angular/common/http'; import { processMessageResponse } from '../../utility/process-message-response'; import { AbstractResourceService } from '../abstract-endpoint/abstract-resource.service'; import * as i0 from "@angular/core"; import * as i1 from "../resource-provider.service"; import * as i2 from "../../configuration/configuration.service"; export class PetriNetResourceService extends AbstractResourceService { constructor(provider, configService) { super('petrinet', provider, configService); } /** * Get All Using Petri Net * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet */ getAll(params) { return this._resourceProvider.get$('petrinet', this.SERVER_URL, params) // .pipe(map(r => this.changeType(r, 'petriNetReferences'))); .pipe((map((response) => response.content))); } /** * Get Data Field References Using * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/petrinet/data */ getDataPetriNet(body) { return this._resourceProvider.post$('petrinet/data', this.SERVER_URL, body) .pipe(map(r => this.changeType(r, undefined))); } /** * Get Transition References Using * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/transitions */ getPetriNetTransitions(netId) { return this._resourceProvider.get$('/petrinet/transitions', this.SERVER_URL, new HttpParams().set('ids', netId)) .pipe(map(r => this.changeType(r, 'transitionReferences'))); } /** * Get Transaction References Using * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/{id}/transactions */ getPetriNetTransactions(netId, params) { return this._resourceProvider.get$('/petrinet/' + netId + '/transactions', this.SERVER_URL, params) .pipe(map(r => this.changeType(r, 'transactions'))); } /** * Get Roles References Using * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/{id}/roles */ getPetriNetRoles(netId, params) { return this._resourceProvider.get$('/petrinet/' + netId + '/roles', this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } /** * get Net File * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/{netId}/file */ getNetFile(netId) { return this._resourceProvider.getBlob$('petrinet/' + netId + '/file', this.SERVER_URL).pipe(map(event => { switch (event.type) { case HttpEventType.DownloadProgress: return ResourceProvider.getProgress(event); case HttpEventType.Response: return event.body; default: return undefined; } }), filter(value => !!value)); } /** * get One Net * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/{identifier}/{version} */ getOne(identifier, version, params) { return this._resourceProvider.get$('petrinet/' + btoa(identifier) + '/' + version, this.SERVER_URL, params) .pipe(map(r => this.changeType(r, 'petriNetReferences'))); } /** * get One Net by ID * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/petrinet/{id} */ getOneById(netId, params) { return this._resourceProvider.get$('petrinet/' + netId, this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } /** * import PetriNet * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/petrinet/import */ importPetriNet(body, params) { return this._resourceProvider.postWithEvent$('petrinet/import', this.SERVER_URL, body, params).pipe(map(event => { switch (event.type) { case HttpEventType.UploadProgress: return ResourceProvider.getProgress(event); case HttpEventType.Response: return ResourceProvider.processMessageResource(event); default: return undefined; } }), filter(value => !!value)); } /** * search PetriNets * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/petrinet/search */ searchPetriNets(body, params) { return this._resourceProvider.post$('petrinet/search', this.SERVER_URL, body, params) // .pipe(map(r => this.getResourcePage<PetriNetReference>(r, 'petriNetReferences'))); .pipe(map(r => this.mapToPage(r))); } /** * search PetriNets * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/petrinet/search */ searchElasticPetriNets(body, params) { return this._resourceProvider.post$('petrinet/search_elastic', this.SERVER_URL, body, params) .pipe(map(r => this.getResourcePage(r, 'petriNetReferences'))); } /** * delete PetriNet * * **Request Type:** DELETE * * **Request URL:** {{baseUrl}}/api/petrinet/{id} * * @param netId stringId of the deleted Petri Net */ deletePetriNet(netId) { return this._resourceProvider.delete$('petrinet/' + netId, this.SERVER_URL) .pipe(switchMap(processMessageResponse)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PetriNetResourceService, deps: [{ token: i1.ResourceProvider }, { token: i2.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PetriNetResourceService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PetriNetResourceService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.ResourceProvider }, { type: i2.ConfigurationService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvcGV0cmktbmV0LXJlc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQTJCLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHeEYsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU0vRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQzs7OztBQU12RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO0lBRWhFLFlBQVksUUFBMEIsRUFBRSxhQUFtQztRQUN2RSxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztZQUNuRSw2REFBNkQ7YUFDNUQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlLENB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QUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHNCQUFzQixDQUFDLElBQXlCLEVBQUUsTUFBZTtRQUNwRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFvQixDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFrQixXQUFXLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzt3R0FoTFEsdUJBQXVCOzRHQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BldHJpTmV0fSBmcm9tICcuLi9pbnRlcmZhY2UvcGV0cmktbmV0JztcbmltcG9ydCB7UGFyYW1zLCBQcm92aWRlclByb2dyZXNzLCBSZXNvdXJjZVByb3ZpZGVyfSBmcm9tICcuLi9yZXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCBUcmFuc2l0aW9uIGZyb20gJy4uLy4uL3Byb2Nlc3MvdHJhbnNpdGlvbic7XG5pbXBvcnQge0h0dHBFdmVudFR5cGUsIEh0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCBUcmFuc2FjdGlvbiBmcm9tICcuLi8uLi9wcm9jZXNzL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7RXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlLCBNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uL2ludGVyZmFjZS9tZXNzYWdlLXJlc291cmNlJztcbmltcG9ydCB7UGV0cmlOZXRSZWZlcmVuY2V9IGZyb20gJy4uL2ludGVyZmFjZS9wZXRyaS1uZXQtcmVmZXJlbmNlJztcbmltcG9ydCB7UGV0cmlOZXRSZXF1ZXN0Qm9keX0gZnJvbSAnLi4vaW50ZXJmYWNlL3BldHJpLW5ldC1yZXF1ZXN0LWJvZHknO1xuaW1wb3J0IHtQYWdlfSBmcm9tICcuLi9pbnRlcmZhY2UvcGFnZSc7XG5pbXBvcnQge3Byb2Nlc3NNZXNzYWdlUmVzcG9uc2V9IGZyb20gJy4uLy4uL3V0aWxpdHkvcHJvY2Vzcy1tZXNzYWdlLXJlc3BvbnNlJztcbmltcG9ydCB7QWJzdHJhY3RSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uL2Fic3RyYWN0LWVuZHBvaW50L2Fic3RyYWN0LXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IFJvbGVzQW5kUGVybWlzc2lvbnMgZnJvbSAnLi4vLi4vcHJvY2Vzcy9yb2xlc0FuZFBlcm1pc3Npb25zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQZXRyaU5ldFJlc291cmNlU2VydmljZSBleHRlbmRzIEFic3RyYWN0UmVzb3VyY2VTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3ZpZGVyOiBSZXNvdXJjZVByb3ZpZGVyLCBjb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICBzdXBlcigncGV0cmluZXQnLCBwcm92aWRlciwgY29uZmlnU2VydmljZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IEFsbCBVc2luZyBQZXRyaSBOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsKHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8QXJyYXk8UGV0cmlOZXRSZWZlcmVuY2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJ3BldHJpbmV0JywgdGhpcy5TRVJWRVJfVVJMLCBwYXJhbXMpXG4gICAgICAgICAgICAvLyAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgJ3BldHJpTmV0UmVmZXJlbmNlcycpKSk7XG4gICAgICAgICAgICAucGlwZSgobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5jb250ZW50KSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBEYXRhIEZpZWxkIFJlZmVyZW5jZXMgVXNpbmdcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIFBPU1RcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L2RhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RGF0YVBldHJpTmV0KGJvZHk6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7ICAvLyBUT0RPOiByZXNwb25zZVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgncGV0cmluZXQvZGF0YScsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IFRyYW5zaXRpb24gUmVmZXJlbmNlcyBVc2luZ1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC90cmFuc2l0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQZXRyaU5ldFRyYW5zaXRpb25zKG5ldElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFRyYW5zaXRpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC90cmFuc2l0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkcycsIG5ldElkKSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAndHJhbnNpdGlvblJlZmVyZW5jZXMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBUcmFuc2FjdGlvbiBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vdHJhbnNhY3Rpb25zXG4gICAgICovXG4gICAgcHVibGljIGdldFBldHJpTmV0VHJhbnNhY3Rpb25zKG5ldElkOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8QXJyYXk8VHJhbnNhY3Rpb24+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJy9wZXRyaW5ldC8nICsgbmV0SWQgKyAnL3RyYW5zYWN0aW9ucycsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICd0cmFuc2FjdGlvbnMnKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBSb2xlcyBSZWZlcmVuY2VzIFVzaW5nXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH0vcm9sZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGV0cmlOZXRSb2xlcyhuZXRJZDogc3RyaW5nLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFJvbGVzQW5kUGVybWlzc2lvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgnL3BldHJpbmV0LycgKyBuZXRJZCArICcvcm9sZXMnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE5ldCBGaWxlXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tuZXRJZH0vZmlsZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXRGaWxlKG5ldElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBCbG9iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldEJsb2IkKCdwZXRyaW5ldC8nICsgbmV0SWQgKyAnL2ZpbGUnLCB0aGlzLlNFUlZFUl9VUkwpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzczpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLmdldFByb2dyZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+ICEhdmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IE9uZSBOZXRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQve2lkZW50aWZpZXJ9L3t2ZXJzaW9ufVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPbmUoaWRlbnRpZmllcjogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGV0cmlOZXRSZWZlcmVuY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgncGV0cmluZXQvJyArIGJ0b2EoaWRlbnRpZmllcikgKyAnLycgKyB2ZXJzaW9uLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgT25lIE5ldCBieSBJRFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogR0VUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS9wZXRyaW5ldC97aWR9XG4gICAgICovXG4gICAgcHVibGljIGdldE9uZUJ5SWQobmV0SWQ6IHN0cmluZywgcGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxQZXRyaU5ldD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdwZXRyaW5ldC8nICsgbmV0SWQsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIGltcG9ydCBQZXRyaU5ldFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvaW1wb3J0XG4gICAgICovXG4gICAgcHVibGljIGltcG9ydFBldHJpTmV0KGJvZHk6IEZvcm1EYXRhLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFByb3ZpZGVyUHJvZ3Jlc3MgfCBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdFdpdGhFdmVudCQ8TWVzc2FnZVJlc291cmNlPigncGV0cmluZXQvaW1wb3J0JywgdGhpcy5TRVJWRVJfVVJMLCBib2R5LCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VQcm92aWRlci5nZXRQcm9ncmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZVByb3ZpZGVyLnByb2Nlc3NNZXNzYWdlUmVzb3VyY2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogc2VhcmNoIFBldHJpTmV0c1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvcGV0cmluZXQvc2VhcmNoXG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaFBldHJpTmV0cyhib2R5OiBQZXRyaU5ldFJlcXVlc3RCb2R5LCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8UGV0cmlOZXRSZWZlcmVuY2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnBvc3QkKCdwZXRyaW5ldC9zZWFyY2gnLCB0aGlzLlNFUlZFUl9VUkwsIGJvZHksIHBhcmFtcylcbiAgICAgICAgICAgIC8vIC5waXBlKG1hcChyID0+IHRoaXMuZ2V0UmVzb3VyY2VQYWdlPFBldHJpTmV0UmVmZXJlbmNlPihyLCAncGV0cmlOZXRSZWZlcmVuY2VzJykpKTtcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMubWFwVG9QYWdlPFBldHJpTmV0UmVmZXJlbmNlPihyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNlYXJjaCBQZXRyaU5ldHNcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIFBPU1RcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3NlYXJjaFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWFyY2hFbGFzdGljUGV0cmlOZXRzKGJvZHk6IFBldHJpTmV0UmVxdWVzdEJvZHksIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxQZXRyaU5ldFJlZmVyZW5jZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdCQoJ3BldHJpbmV0L3NlYXJjaF9lbGFzdGljJywgdGhpcy5TRVJWRVJfVVJMLCBib2R5LCBwYXJhbXMpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmdldFJlc291cmNlUGFnZTxQZXRyaU5ldFJlZmVyZW5jZT4ociwgJ3BldHJpTmV0UmVmZXJlbmNlcycpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZGVsZXRlIFBldHJpTmV0XG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBERUxFVEVcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3BldHJpbmV0L3tpZH1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXRJZCBzdHJpbmdJZCBvZiB0aGUgZGVsZXRlZCBQZXRyaSBOZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlUGV0cmlOZXQobmV0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmRlbGV0ZSQ8TWVzc2FnZVJlc291cmNlPigncGV0cmluZXQvJyArIG5ldElkLCB0aGlzLlNFUlZFUl9VUkwpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAocHJvY2Vzc01lc3NhZ2VSZXNwb25zZSkpO1xuICAgIH1cbn1cbiJdfQ==