UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

184 lines 22 kB
import { Injectable } from '@angular/core'; import { map } from 'rxjs/operators'; 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 UserResourceService extends AbstractResourceService { constructor(provider, configService) { super('user', provider, configService); } /** * Assign authority to the user * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/{id}/authority/assign */ assignAuthority(userId, body, realmId = 'default', params) { return this._resourceProvider.post$('users/' + realmId + '/' + userId + '/authority', this.SERVER_URL, body, params, // TODO 2025-05-08 refactor this for exact realm id { 'Content-Type': 'text/plain' }) .pipe(map(r => this.changeType(r, undefined))); } /** * Assign role to the user * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/{id}/role/assign */ assignRoles(userId, realmId, body, params) { return this._resourceProvider.put$('users/' + realmId + '/' + userId + '/roles', this.SERVER_URL, body, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Get all authorities of the system * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/authority */ getAllAuthorities() { return this._resourceProvider.get$('users/authority', this.SERVER_URL) .pipe(map(r => this.changeType(r, 'authorities'))); } /** * Get all users * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/user */ getAll(params) { return this._resourceProvider.get$('users', this.SERVER_URL, params) .pipe(map(r => this.mapToPage(r))); } /** * Get all users with specified roles * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/role */ getAllWithRole(body, params) { return this._resourceProvider.post$('users/role', this.SERVER_URL, body, params) .pipe(map(r => this.changeType(r, 'users'))); } /** * Get logged user * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/me */ getLoggedUser(params) { return this._resourceProvider.get$('users/me', this.SERVER_URL, params).pipe(map(r => this.changeType(r, undefined))); } /** * Get logged user * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/me */ getPublicLoggedUser(params) { return this._resourceProvider.get$('public/users/me', this.SERVER_URL, params).pipe(map(r => this.changeType(r, undefined))); } /** * Get user by id * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/{id} */ getUser(userId, realmId = 'default', params) { return this._resourceProvider.get$('users/' + realmId + '/' + userId, this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Get user's preferences * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/preferences */ getPreferences(params) { return this._resourceProvider.get$('users/preferences', this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Set user's preferences * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/preferences */ setPreferences(body, params) { return this._resourceProvider.post$('users/preferences', this.SERVER_URL, body, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Get user's preferences * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/users/preferences */ getPublicPreferences(params) { return this._resourceProvider.get$('public/users/preferences', this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Set user's preferences * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/preferences */ setPublicPreferences(body, params) { return this._resourceProvider.post$('public/users/preferences', this.SERVER_URL, body, params) .pipe(map(r => this.changeType(r, undefined))); } /** * Generic user search * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/search */ search(body, params) { return this._resourceProvider.post$('users/search', this.SERVER_URL, body, params) .pipe(map(r => this.mapToPage(r))); } /** * Update user * * **Request Type:** POST * * **Request URL:** {{baseUrl}}/api/users/{id} */ updateUser(userId, body, realmId = 'default', params) { return this._resourceProvider.post$('users/' + realmId + '/' + userId, this.SERVER_URL, body, params) // TODO 2025-05-08 refactor this for exact realm id .pipe(map(r => this.changeType(r, undefined))); } /** * get all groups * * **Request Type:** GET * * **Request URL:** {{baseUrl}}/api/group/all */ getAllGroups(params) { return this._resourceProvider.get$('group/all', this.SERVER_URL, params) .pipe(map(r => this.changeType(r, undefined))); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserResourceService, 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: UserResourceService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserResourceService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: () => [{ type: i1.ResourceProvider }, { type: i2.ConfigurationService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yZXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3VzZXItcmVzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVFuQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQzs7OztBQU12RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBRTVELFlBQVksUUFBMEIsRUFBRSxhQUFtQztRQUN2RSxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsVUFBa0IsU0FBUyxFQUFFLE1BQWU7UUFDN0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLG1EQUFtRDtRQUNwSyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsQ0FBQzthQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxJQUFZLEVBQUUsTUFBZTtRQUM3RSxPQUFP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SSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsVUFBa0IsU0FBUyxFQUFFLE1BQWU7UUFDeEYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxtREFBbUQ7YUFDcEosSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksWUFBWSxDQUFDLE1BQWU7UUFDL0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7d0dBekxRLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhcmFtcywgUmVzb3VyY2VQcm92aWRlcn0gZnJvbSAnLi4vcmVzb3VyY2UtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge01lc3NhZ2VSZXNvdXJjZX0gZnJvbSAnLi4vaW50ZXJmYWNlL21lc3NhZ2UtcmVzb3VyY2UnO1xuaW1wb3J0IHtBdXRob3JpdHl9IGZyb20gJy4uL2ludGVyZmFjZS9hdXRob3JpdHknO1xuaW1wb3J0IHtQcmVmZXJlbmNlc30gZnJvbSAnLi4vaW50ZXJmYWNlL3ByZWZlcmVuY2VzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3BhZ2UnO1xuaW1wb3J0IHtHcm91cHNJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZS9ncm91cCc7XG5pbXBvcnQge0Fic3RyYWN0UmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi9hYnN0cmFjdC1lbmRwb2ludC9hYnN0cmFjdC1yZXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7VXNlclJlc291cmNlfSBmcm9tICcuLi9pbnRlcmZhY2UvdXNlci1yZXNvdXJjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFJlc291cmNlU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm92aWRlcjogUmVzb3VyY2VQcm92aWRlciwgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoJ3VzZXInLCBwcm92aWRlciwgY29uZmlnU2VydmljZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXNzaWduIGF1dGhvcml0eSB0byB0aGUgdXNlclxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvdXNlcnMve2lkfS9hdXRob3JpdHkvYXNzaWduXG4gICAgICovXG4gICAgcHVibGljIGFzc2lnbkF1dGhvcml0eSh1c2VySWQ6IHN0cmluZywgYm9keTogb2JqZWN0LCByZWFsbUlkOiBzdHJpbmcgPSAnZGVmYXVsdCcsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8TWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnBvc3QkKCd1c2Vycy8nICsgcmVhbG1JZCArICcvJyArIHVzZXJJZCArICcvYXV0aG9yaXR5JywgdGhpcy5TRVJWRVJfVVJMLCBib2R5LCBwYXJhbXMsIC8vIFRPRE8gMjAyNS0wNS0wOCByZWZhY3RvciB0aGlzIGZvciBleGFjdCByZWFsbSBpZFxuICAgICAgICAgICAgeydDb250ZW50LVR5cGUnOiAndGV4dC9wbGFpbid9KVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ24gcm9sZSB0byB0aGUgdXNlclxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvdXNlcnMve2lkfS9yb2xlL2Fzc2lnblxuICAgICAqL1xuICAgIHB1YmxpYyBhc3NpZ25Sb2xlcyh1c2VySWQ6IHN0cmluZywgcmVhbG1JZDogc3RyaW5nLCBib2R5OiBvYmplY3QsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8TWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnB1dCQoJ3VzZXJzLycgKyByZWFsbUlkICsgJy8nICsgdXNlcklkICsgJy9yb2xlcycsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIGF1dGhvcml0aWVzIG9mIHRoZSBzeXN0ZW1cbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvdXNlcnMvYXV0aG9yaXR5XG4gICAgICovXG4gICAgcHVibGljIGdldEFsbEF1dGhvcml0aWVzKCk6IE9ic2VydmFibGU8QXJyYXk8QXV0aG9yaXR5Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCd1c2Vycy9hdXRob3JpdHknLCB0aGlzLlNFUlZFUl9VUkwpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgJ2F1dGhvcml0aWVzJykpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHVzZXJzXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsKHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxVc2VyUmVzb3VyY2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLmdldCQoJ3VzZXJzJywgdGhpcy5TRVJWRVJfVVJMLCBwYXJhbXMpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLm1hcFRvUGFnZTxVc2VyUmVzb3VyY2U+KHIpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCB1c2VycyB3aXRoIHNwZWNpZmllZCByb2xlc1xuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFR5cGU6KiogUE9TVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvdXNlcnMvcm9sZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGxXaXRoUm9sZShib2R5OiBvYmplY3QsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8QXJyYXk8VXNlclJlc291cmNlPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgndXNlcnMvcm9sZScsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsICd1c2VycycpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGxvZ2dlZCB1c2VyXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJzL21lXG4gICAgICovXG4gICAgcHVibGljIGdldExvZ2dlZFVzZXIocGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxVc2VyUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgndXNlcnMvbWUnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcykucGlwZShcbiAgICAgICAgICAgIG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGxvZ2dlZCB1c2VyXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJzL21lXG4gICAgICovXG4gICAgcHVibGljIGdldFB1YmxpY0xvZ2dlZFVzZXIocGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxVc2VyUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgncHVibGljL3VzZXJzL21lJywgdGhpcy5TRVJWRVJfVVJMLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB1c2VyIGJ5IGlkXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJzL3tpZH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlcih1c2VySWQ6IHN0cmluZywgcmVhbG1JZDogc3RyaW5nID0gJ2RlZmF1bHQnLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFVzZXJSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCd1c2Vycy8nICsgcmVhbG1JZCArICcvJyArIHVzZXJJZCwgdGhpcy5TRVJWRVJfVVJMLCBwYXJhbXMpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB1c2VyJ3MgcHJlZmVyZW5jZXNcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvdXNlcnMvcHJlZmVyZW5jZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMocGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxQcmVmZXJlbmNlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCd1c2Vycy9wcmVmZXJlbmNlcycsIHRoaXMuU0VSVkVSX1VSTCwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdXNlcidzIHByZWZlcmVuY2VzXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBQT1NUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS91c2Vycy9wcmVmZXJlbmNlc1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQcmVmZXJlbmNlcyhib2R5OiBvYmplY3QsIHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8TWVzc2FnZVJlc291cmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVByb3ZpZGVyLnBvc3QkKCd1c2Vycy9wcmVmZXJlbmNlcycsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdXNlcidzIHByZWZlcmVuY2VzXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBHRVRcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJzL3ByZWZlcmVuY2VzXG4gICAgICovXG4gICAgcHVibGljIGdldFB1YmxpY1ByZWZlcmVuY2VzKHBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8UHJlZmVyZW5jZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIuZ2V0JCgncHVibGljL3VzZXJzL3ByZWZlcmVuY2VzJywgdGhpcy5TRVJWRVJfVVJMLCBwYXJhbXMpXG4gICAgICAgICAgICAucGlwZShtYXAociA9PiB0aGlzLmNoYW5nZVR5cGUociwgdW5kZWZpbmVkKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB1c2VyJ3MgcHJlZmVyZW5jZXNcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIFBPU1RcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBVUkw6Kioge3tiYXNlVXJsfX0vYXBpL3VzZXJzL3ByZWZlcmVuY2VzXG4gICAgICovXG4gICAgcHVibGljIHNldFB1YmxpY1ByZWZlcmVuY2VzKGJvZHk6IG9iamVjdCwgcGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxNZXNzYWdlUmVzb3VyY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdCQoJ3B1YmxpYy91c2Vycy9wcmVmZXJlbmNlcycsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5jaGFuZ2VUeXBlKHIsIHVuZGVmaW5lZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmljIHVzZXIgc2VhcmNoXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBQT1NUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS91c2Vycy9zZWFyY2hcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoKGJvZHk6IG9iamVjdCwgcGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdlPFVzZXJSZXNvdXJjZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlUHJvdmlkZXIucG9zdCQoJ3VzZXJzL3NlYXJjaCcsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gdGhpcy5tYXBUb1BhZ2U8VXNlclJlc291cmNlPihyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB1c2VyXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVHlwZToqKiBQT1NUXG4gICAgICpcbiAgICAgKiAqKlJlcXVlc3QgVVJMOioqIHt7YmFzZVVybH19L2FwaS91c2Vycy97aWR9XG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXIodXNlcklkOiBzdHJpbmcsIGJvZHk6IG9iamVjdCwgcmVhbG1JZDogc3RyaW5nID0gJ2RlZmF1bHQnLCBwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPFVzZXJSZXNvdXJjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5wb3N0JCgndXNlcnMvJyArIHJlYWxtSWQgKyAnLycgKyB1c2VySWQsIHRoaXMuU0VSVkVSX1VSTCwgYm9keSwgcGFyYW1zKSAvLyBUT0RPIDIwMjUtMDUtMDggcmVmYWN0b3IgdGhpcyBmb3IgZXhhY3QgcmVhbG0gaWRcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IGFsbCBncm91cHNcbiAgICAgKlxuICAgICAqICoqUmVxdWVzdCBUeXBlOioqIEdFVFxuICAgICAqXG4gICAgICogKipSZXF1ZXN0IFVSTDoqKiB7e2Jhc2VVcmx9fS9hcGkvZ3JvdXAvYWxsXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbEdyb3VwcyhwYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPEdyb3Vwc0ludGVyZmFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VQcm92aWRlci5nZXQkKCdncm91cC9hbGwnLCB0aGlzLlNFUlZFUl9VUkwsIHBhcmFtcylcbiAgICAgICAgICAgIC5waXBlKG1hcChyID0+IHRoaXMuY2hhbmdlVHlwZShyLCB1bmRlZmluZWQpKSk7XG4gICAgfVxuXG59XG4iXX0=