@kontur.candy/tools 2.201.0 → 2.203.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +11 -3
  2. package/distr/Common/CandyApiClient/CandyApiClient.js +9 -1
  3. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
  4. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +7 -1
  5. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
  6. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
  7. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
  8. package/distr/Common/FSPrinterClient/FSPrinterClient.js +22 -6
  9. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -1
  10. package/distr/Common/FSPrinterClient/IFSPrinterClient.js +1 -1
  11. package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -1
  12. package/distr/Common/HttpClient/HttpClient.js +5 -1
  13. package/distr/Common/HttpClient/HttpClient.js.map +1 -1
  14. package/distr/Common/HttpClient/IHttpClient.js +1 -1
  15. package/distr/Common/HttpClient/IHttpClient.js.map +1 -1
  16. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +3 -3
  17. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -1
  18. package/distr/Common/ModelPath/ModelPath.js +10 -1
  19. package/distr/Common/ModelPath/ModelPath.js.map +1 -1
  20. package/distr/Common/TypingUtils.js +8 -1
  21. package/distr/Common/TypingUtils.js.map +1 -1
  22. package/distr/Common/UseTypedSelector.js +3 -2
  23. package/distr/Common/UseTypedSelector.js.map +1 -1
  24. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +7 -2
  25. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -1
  26. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +7 -2
  27. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -1
  28. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +7 -2
  29. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -1
  30. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +25 -5
  31. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -1
  32. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +10 -4
  33. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -1
  34. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +35 -13
  35. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -1
  36. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  37. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  38. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  39. package/distr/Tools/src/SelfUpdate.js +8 -2
  40. package/distr/Tools/src/SelfUpdate.js.map +1 -1
  41. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +37 -29
  42. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  43. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +59 -54
  44. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  45. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"CandyApiClient.js","names":["_TypingUtils","require","_HttpClient","_AuthenticationMode","_ModelPath","_FocusTypes","_DraftPresentationType","_IsBuffer","_FufSizeTooLargeError","strangeOptions","src","dataVersion","CandyResourceZones","exports","TestForms","ServerErrors","convertPathLoadSpecificationToString","spec","skip","pathOrPathPrefix","toLegacyPath","CandyApiClient","constructor","fetchImpl","baseUrl","resourceZone","authentication","exceptionLogger","httpClient","HttpClient","createAuthenticationProvider","forDraft","draftFullId","CandyApiDraftClient","getInfoByInns","inns","paths","map","inn","response","post","getDraftUrl","withJsonBody","json","result","_response","innServerValue","value","undefined","error","errorCode","FocusServerErrorCode","NoInnError","_innServerValue$value","_innServerValue$error","_innServerValue$error2","getAllGfvs","abortSignal","body","get","createDraftFromDrive","ns","fufDriveUri","withQueryParams","withAbortSignal","createEmptyDraft","gfv","createDraft","fufContent","withContentType","withBodyFromBuffer","Buffer","from","Error","checkAlive","draftRelatedUrl","draftId","getFeatureFlags","getHrefToInnerEditor","url","getHrefDownloadFuf","getHrefToConvertationLog","getHrefToDownloadInnerFuf","getHrefDownloadDraftPresentation","DraftPresentationType","innerFuf","getHrefToDownloadClientInfo","clientInfo","getHrefToDownloadFormsClientInfo","formsClientInfo","getHrefDownloadInner","inner","getErrorLog","getDraftPresentationUrl","errorLog","getErrorLogWithCheckScenarios","checkScenarios","getTaskById","taskId","_tasks","tasks","getFufWithAttachments","getPartialFuf","rules","getAllTasks","Object","values","x","enqueueTask","taskInfo","added","changed","id","removed","cancelTask","getExpertErrorLog","errorlogExpert","getHrefToErrorLogPdf","errorLogName","propsName","propsDriveName","clearDraft","convertDraftFromPrevGfv","prevGfvDraftId","sendChangeSet","data","currentDataVersion","acceptCode","getSuccessResult","_dataResult$dataVersi","dataResult","reject","status","sendChangeWithNormalizationSet","normalizerId","sendChangeSetSync","postSync","getSuccessResultSync","_dataResult$dataVersi2","getRequisites","requisiteList","getInner","getPartialInner","maxInstanceCount","convertedRules","toString","length","getPartialInnerAsJsonTree","format","getRawPartialInnerAsJsonTree","getDataVersion","getExplanatoryNote","explanatoryNote","getAttachmentById","attachmentId","_result$value","_result","getAllAttachments","removeAttachments","attachmentIds","createOrUpdateAttachments","attachments","attachment","contentUri","meta","createDraftAttachment","path","openLoadedAttachmentAsDraft","errorData","FufSizeTooLargeError","message","HttpError","setPresentation","presentationType","content","request","put","withRawBody","isBuffer","patchPresentation","presentationContent","patch","getFileProperties","driveUri","ignoreSizeCheck","prepareAndGetFileProperties","uploadAndGetFileProperties","driveUris","serverError","invalidSourceDriveContentNames","sourcesTotalCount","e","UnknownError","acceptTransferType","transferType","typeId","acceptMultipleTransferType","files","setFufByDriveUri","combineFufByDriveUri","combineMethod","excelsToPartialFufs","pathToTable","importFromPartialFufsByPath","combinatorType","multipleCombineFufByDriveUri","args","arguments","importXmls","isImportByFuf","importByFuf","FufDriveUris","setDraftSettings","settings","getDraftSettings","normalizeByRules","setMultipleWithNormalization","uri","finalRules","convertToLegacyPath","searchInstancesByText","text","pathsPrefix","pathsToSearch","maxInstanceCountParams","params","searchString","queryCollection","resolveInnerPath","customNormalize","pathPrefixes","importEmployees","deleteInstances","deletingRules","runMassAction","actionId","parameters","queryParams","print","type","printExcel","tableExcel","checkByPopd"],"sources":["../../../../Common/CandyApiClient/CandyApiClient.ts"],"sourcesContent":["import { reject } from \"../TypingUtils\";\nimport { Fetch } from \"../HttpClient/FetchImplementation/Fetch\";\nimport { ExceptionLogger, HttpClient, HttpError } from \"../HttpClient/HttpClient\";\nimport { IHttpClient } from \"../HttpClient/IHttpClient\";\nimport { AuthenticationMode, createAuthenticationProvider } from \"../HttpClient/AuthenticationMode\";\nimport { ICombineByTransfers } from \"../../Engine/src/Engine/Core/ModalManager/Modals/UploadSection/Types\";\nimport { AbsoluteModelPath, convertToLegacyPath } from \"../ModelPath/ModelPath\";\n\nimport {\n BaseGetFufResponse,\n CheckScenarioType,\n DraftSettings,\n FufWithAttachmentsResponse,\n ICandyApiClient,\n ICandyApiDraftClient,\n IInnerChangeResult,\n IInnerChangeSuccessResult,\n PathLoadSpecification,\n} from \"./ICandyApiClient\";\nimport { ServerErrorLog } from \"./Types/ErrorLog/ServerErrorLog\";\nimport { ServerInnerResponse, ServerJsonResponse } from \"./Types/GetInner/ServerInnerResponse\";\nimport {\n ExcelsToPartialFufsResponse,\n FileProperties,\n ImportFromPartialFufsByPathResponse,\n ServerErrorResponse,\n UploadFilePropertiesResponse,\n} from \"./Types/DraftActions/FileProperties\";\nimport { CreateDraftResponse } from \"./Types/CreateDraft/CreateDraftResponse\";\nimport { CreateExplanatoryNoteResponse } from \"./Types/ExplanatoryNote/CreateExplanatoryNoteResponse\";\nimport { DraftFullId } from \"./Types/DraftFullId\";\nimport { ServerChangeSet } from \"./Types/ChangeSet/ServerChangeSet\";\nimport { ServerTask, VerifyAndFixFnsRequirementsTaskInfo } from \"./Types/Tasks/Tasks\";\nimport { FocusServerErrorCode, GetByInnResponse } from \"./Types/Focus/FocusTypes\";\nimport { AttachInfo } from \"./Types/Attachments/Attacments\";\nimport { DraftPresentationType } from \"./Types/Presentations/DraftPresentationType\";\nimport { PresentationContent } from \"./Types/Presentations/PresentationContent\";\nimport { ConvertDraftRequest } from \"./Types/DraftActions/ConvertDraftRequest\";\nimport { GetAttachmentsResponse } from \"./Types/Attachments/GetAttachmentsResponse\";\nimport { FocusServerResponse } from \"./Types/Focus/FocusServerResponse\";\nimport { GetTasksServerResponse } from \"./Types/Tasks/GetTasksServerResponse\";\nimport { ServerRequisitesResponse } from \"./Types/GetInner/ServerRequisitesResponse\";\nimport { isBuffer } from \"./IsBuffer\";\nimport { CombinatorType, CombineFufResult, FufCombineMethod } from \"./Types/DraftActions/CombineFufResult\";\nimport { FeatureFlagsResponse } from \"./Types/FeatureFlags/FeatureFlagsResponse\";\nimport { FufSizeTooLargeError } from \"./Types/DraftActions/FufSizeTooLargeError\";\nimport { ImportEmployeesRequest } from \"./Types/Staff/ImportEmployeesRequest\";\nimport { MassActionParameters } from \"./Types/MassActions/MassActionParameters\";\nimport { PrintType } from \"./Types/Print/PrintType\";\nimport { PrintResponse } from \"./Types/Print/PrintResponse\";\nimport { ServerRawResponse } from \"./Types/GetInner/ServerRawResponse\";\nimport { CandyPopdProtocol } from \"./Types/ErrorLog/CandyPopdProtocol\";\nimport { InstancesDeletingRule } from \"./Types/InstancesDeleting/InstancesDeletingRule\";\nimport { ValueForInstancesSettingRule } from \"./Types/MassActions/ValueForInstancesSettingRule\";\nimport { InnerQueryRequest } from \"./Types/QueryCollecton/InnerQueryRequest\";\nimport { InnerQueryResponse } from \"./Types/QueryCollecton/InnerQueryResponse\";\nimport { ResolveInnerPathRequest } from \"./Types/ErrorLog/ResolveInnerPathRequest\";\nimport { ResolvePathResponse } from \"./Types/ErrorLog/ResolvePathResponse\";\n\nconst strangeOptions = { src: \"changeSet\", dataVersion: \"0\" };\n\nexport const CandyResourceZones = {\n TestForms: \"candy.resources.test-forms\",\n};\n\nexport enum ServerErrors {\n FufSizeTooLarge = \"FufSizeTooLarge\",\n BadRequest = \"BadRequest\",\n UnknownError = \"UnknownError\",\n}\n\nfunction convertPathLoadSpecificationToString(spec: PathLoadSpecification): string {\n return (\n (spec.skip ? \"-\" : \"\") +\n (spec.pathOrPathPrefix === \"*\" ? spec.pathOrPathPrefix : spec.pathOrPathPrefix.toLegacyPath())\n );\n}\n\nexport class CandyApiClient implements ICandyApiClient {\n private readonly httpClient: IHttpClient;\n\n public constructor(\n fetchImpl: Fetch,\n baseUrl: string,\n resourceZone: undefined | string,\n authentication: undefined | AuthenticationMode,\n exceptionLogger?: ExceptionLogger\n ) {\n this.httpClient = new HttpClient(\n fetchImpl,\n baseUrl,\n createAuthenticationProvider(authentication),\n {\n resourceZone: resourceZone,\n },\n exceptionLogger\n );\n }\n\n public forDraft(draftFullId: DraftFullId): ICandyApiDraftClient {\n return new CandyApiDraftClient(this.httpClient, draftFullId);\n }\n\n public async getInfoByInns(draftFullId: DraftFullId, inns: readonly string[]): Promise<GetByInnResponse> {\n const paths = inns.map(inn => `@focus/${inn}`);\n const response = await this.httpClient\n .post(this.getDraftUrl(draftFullId, \"get-inner\"))\n .withJsonBody(paths)\n .json<FocusServerResponse>();\n const result: GetByInnResponse = {};\n for (const inn of inns) {\n const innServerValue = response[`@focus/${inn}`]?.value;\n if (innServerValue == undefined) {\n result[inn] = {\n value: undefined,\n error: \"Server does not return inn info\",\n errorCode: FocusServerErrorCode.NoInnError,\n };\n } else {\n result[inn] = {\n value: innServerValue.value ?? undefined,\n errorCode: innServerValue.errorCode ?? undefined,\n error: innServerValue.error ?? undefined,\n };\n }\n }\n return result;\n }\n\n public async getAllGfvs(abortSignal?: AbortSignal): Promise<string[]> {\n const body = await this.httpClient.get(`build-server/gfvs`).json<string[]>();\n return body;\n }\n\n public async createDraftFromDrive(\n ns: string,\n fufDriveUri: string,\n abortSignal?: AbortSignal\n ): Promise<CreateDraftResponse> {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft-from-drive`)\n .withQueryParams({\n ns: ns,\n fufDriveUri: fufDriveUri,\n })\n .withAbortSignal(abortSignal)\n .json<CreateDraftResponse>();\n }\n\n public async createEmptyDraft(ns: string, gfv: string, abortSignal?: AbortSignal): Promise<CreateDraftResponse> {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withAbortSignal(abortSignal)\n .json<CreateDraftResponse>();\n }\n\n public createDraft(ns: string, gfv: string): Promise<CreateDraftResponse>;\n public createDraft(ns: string, gfv: undefined, fufContent: Buffer): Promise<CreateDraftResponse>;\n public async createDraft(ns: string, gfv: undefined | string, fufContent?: Buffer): Promise<CreateDraftResponse> {\n if (gfv == undefined && fufContent != undefined) {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(fufContent)\n .json<CreateDraftResponse>();\n }\n if (gfv != undefined && fufContent == undefined) {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(Buffer.from([]))\n .json<CreateDraftResponse>();\n }\n if (gfv == undefined && fufContent == undefined) {\n throw new Error(\"Cannot create draft: no gfv and no fuf specified\");\n }\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(fufContent)\n .json<CreateDraftResponse>();\n }\n\n public async checkAlive(): Promise<void> {\n await this.httpClient.get(`_status/ping`);\n }\n\n private getDraftUrl(draftFullId: DraftFullId, draftRelatedUrl: string): string {\n return `v1/ns/${draftFullId.ns}/drafts/${draftFullId.draftId}/${draftRelatedUrl}`;\n }\n\n public async getFeatureFlags(): Promise<FeatureFlagsResponse> {\n return await this.httpClient.get(\"v1/features/flags\").json<FeatureFlagsResponse>();\n }\n}\n\nexport class CandyApiDraftClient implements ICandyApiDraftClient {\n private readonly httpClient: IHttpClient;\n private readonly draftFullId: DraftFullId;\n\n public constructor(httpClient: IHttpClient, draftFullId: DraftFullId) {\n this.httpClient = httpClient;\n this.draftFullId = draftFullId;\n }\n\n public getHrefToInnerEditor(): string {\n return this.httpClient.url(`inner-editor/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}`);\n }\n\n public getHrefDownloadFuf(): string {\n return this.httpClient.url(this.getDraftUrl(\"get-fuf\"));\n }\n\n public getHrefToConvertationLog(): string {\n return this.httpClient.url(this.getDraftUrl(\"conversion\"));\n }\n\n public getHrefToDownloadInnerFuf(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.innerFuf);\n }\n\n public getHrefToDownloadClientInfo(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.clientInfo);\n }\n\n public getHrefToDownloadFormsClientInfo(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.formsClientInfo);\n }\n\n public getHrefDownloadInner(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.inner);\n }\n\n public async getErrorLog(): Promise<ServerErrorLog> {\n return this.httpClient.get(this.getDraftPresentationUrl(DraftPresentationType.errorLog)).json<ServerErrorLog>();\n }\n\n public async getErrorLogWithCheckScenarios(checkScenarios: CheckScenarioType[]): Promise<ServerErrorLog> {\n return this.httpClient\n .post(this.getDraftUrl(\"errorlog\"))\n .withJsonBody({ checkScenarios: checkScenarios })\n .json<ServerErrorLog>();\n }\n\n public async getTaskById(taskId: string): Promise<ServerTask | undefined> {\n const tasks = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@task/*`])\n .json<GetTasksServerResponse>();\n return tasks[`@task/${taskId}`]?.value;\n }\n\n public async getFufWithAttachments(): Promise<FufWithAttachmentsResponse | undefined> {\n const response = await this.httpClient\n .get(this.getDraftUrl(\"get-fuf-with-attachments\"))\n .json<FufWithAttachmentsResponse>();\n return response;\n }\n\n public async getPartialFuf(rules: string[]): Promise<BaseGetFufResponse | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"get-partial-fuf\"))\n .withJsonBody(rules)\n .json<BaseGetFufResponse>();\n return response;\n }\n\n public async getAllTasks(): Promise<ServerTask[]> {\n const tasks = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@task/*`])\n .json<GetTasksServerResponse>();\n return Object.values(tasks).map(x => x.value);\n }\n\n public async enqueueTask(taskId: string, taskInfo: VerifyAndFixFnsRequirementsTaskInfo): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {\n [`@task/${taskId}`]: {\n ...taskInfo,\n id: taskId,\n },\n },\n removed: [],\n });\n }\n\n public async cancelTask(taskId: string): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {},\n removed: [`@task/${taskId}`],\n });\n }\n\n public getExpertErrorLog(): Promise<ServerErrorLog> {\n return this.httpClient\n .get(this.getDraftPresentationUrl(DraftPresentationType.errorlogExpert))\n .json<ServerErrorLog>();\n }\n\n public getHrefToErrorLogPdf(errorLogName: string, propsName: string): string {\n return this.httpClient.url(this.getDraftUrl(\"presentations/errorLog/print\"), {\n errorLogName: errorLogName,\n propsDriveName: propsName,\n });\n }\n\n public async clearDraft(): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"clear\"));\n }\n\n public async convertDraftFromPrevGfv({ prevGfvDraftId, gfv }: ConvertDraftRequest): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"convert\")).withQueryParams({\n id: prevGfvDraftId,\n gfv: gfv,\n });\n }\n\n public async sendChangeSet(data: ServerChangeSet, currentDataVersion: number): Promise<IInnerChangeResult> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner\"))\n .withQueryParams({ dataVersion: currentDataVersion })\n .withJsonBody(data)\n .acceptCode(409);\n\n const getSuccessResult = async () => {\n const dataResult = await result.json<{ dataVersion?: number }>();\n return {\n dataVersion: dataResult?.dataVersion ?? reject(\"Invalid dataVersion after applying change set.\"),\n };\n };\n\n return result.status == 200 ? await getSuccessResult() : result.status;\n }\n\n public async sendChangeWithNormalizationSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string\n ): Promise<IInnerChangeResult> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner/patch-with-normalization\"))\n .withQueryParams({ dataVersion: currentDataVersion, normalizerId: normalizerId })\n .withJsonBody(data)\n .acceptCode(409);\n\n return result.status == 200 ? await result.json<IInnerChangeSuccessResult>() : result.status;\n }\n\n public sendChangeSetSync(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string\n ): IInnerChangeResult {\n const result = this.httpClient.postSync(this.getDraftUrl(\"inner\"), { dataVersion: currentDataVersion }, data);\n\n const getSuccessResultSync = () => {\n const dataResult = result.json<{ dataVersion?: number }>();\n return {\n dataVersion: dataResult?.dataVersion ?? reject(\"Invalid dataVersion after applying change set.\"),\n };\n };\n return result.status == 200 ? getSuccessResultSync() : result.status;\n }\n\n public async getRequisites(requisiteList: readonly string[]): Promise<ServerRequisitesResponse> {\n return await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody(requisiteList)\n .json<ServerRequisitesResponse>();\n }\n\n public async getInner(paths: undefined | readonly string[]): Promise<ServerInnerResponse> {\n return await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody(paths)\n .json<ServerInnerResponse>();\n }\n\n public getPartialInner(rules: PathLoadSpecification[], maxInstanceCount?: number): Promise<ServerInnerResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerInnerResponse>();\n }\n\n public async getPartialInnerAsJsonTree(\n rules: PathLoadSpecification[],\n maxInstanceCount?: number\n ): Promise<ServerJsonResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withQueryParams({ format: \"JsonTree\" })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerJsonResponse>();\n }\n\n public getRawPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number\n ): Promise<ServerRawResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner2\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerRawResponse>();\n }\n\n public getDataVersion(): Promise<number> {\n return this.httpClient.get(this.getDraftUrl(\"inner/get-data-version\")).json<number>();\n }\n\n public async getExplanatoryNote(): Promise<CreateExplanatoryNoteResponse> {\n return await this.httpClient\n .get(this.getDraftPresentationUrl(DraftPresentationType.explanatoryNote))\n .json<CreateExplanatoryNoteResponse>();\n }\n\n public async getAttachmentById(attachmentId: string): Promise<AttachInfo> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@attachment/${attachmentId}`])\n .json<GetAttachmentsResponse>();\n return result[`@attachment/${attachmentId}`]?.value ?? reject();\n }\n\n public async getAllAttachments(): Promise<AttachInfo[]> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@attachment/*`])\n .json<GetAttachmentsResponse>();\n return Object.values(result).map(x => x.value);\n }\n\n public async removeAttachments(attachmentIds: readonly string[]): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {},\n removed: attachmentIds.map(id => `@attachment/${id}`),\n });\n }\n\n public async createOrUpdateAttachments(attachments: readonly AttachInfo[]): Promise<void> {\n const changed = {};\n for (const attachment of attachments) {\n changed[`@attachment/${attachment.id}`] = {\n contentUri: attachment.contentUri,\n id: attachment.id,\n meta: attachment.meta,\n };\n }\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: changed,\n removed: [],\n });\n }\n\n public async createDraftAttachment(gfv: string, path: string): Promise<AttachInfo> {\n return await this.httpClient\n .post(this.getDraftUrl(\"external/create-attachment-draft\"))\n .withQueryParams({ gfv: gfv, path: path })\n .json<AttachInfo>();\n }\n\n public async openLoadedAttachmentAsDraft(id: string): Promise<AttachInfo> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"external/open-loaded-attachment-as-draft\"))\n .withQueryParams({ attachmentId: id })\n .acceptCode(413);\n\n if (response.status === 413) {\n const errorData = await response.json<{ errorCode: string; message: string }>();\n if (errorData.errorCode === \"FufSizeTooLarge\") {\n throw new FufSizeTooLargeError(errorData.message);\n }\n throw new HttpError(errorData.message, response.status);\n }\n return await response.json<AttachInfo>();\n }\n\n public async setPresentation(presentationType: DraftPresentationType, content: string | unknown): Promise<void> {\n let request = this.httpClient.put(this.getDraftPresentationUrl(presentationType));\n if (typeof content === \"string\") {\n request = request.withRawBody(content);\n } else if (isBuffer(content)) {\n request = request.withRawBody(content);\n } else {\n request = request.withJsonBody(content);\n }\n await request;\n }\n\n public async patchPresentation(\n presentationType: DraftPresentationType,\n presentationContent: PresentationContent\n ): Promise<void> {\n await this.httpClient.patch(this.getDraftPresentationUrl(presentationType)).withJsonBody(presentationContent);\n }\n\n public async getFileProperties(\n driveUri: string,\n ignoreSizeCheck?: boolean | undefined\n ): Promise<FileProperties | undefined> {\n const response = await this.httpClient\n .get(`v1/files/get-properties`)\n .withQueryParams({ driveUri: driveUri, ignoreSizeCheck: ignoreSizeCheck ?? false })\n .acceptCode(400)\n .acceptCode(413);\n if (response.status === 400 || response.status === 413 || response.status === 200) {\n return response.json<FileProperties>();\n }\n return undefined;\n }\n\n public async prepareAndGetFileProperties(driveUri: string, gfv: string): Promise<FileProperties | undefined> {\n const response = await this.httpClient\n .get(`v1/files/prepare-and-get-properties`)\n .withQueryParams({ gfv: gfv, driveUri: driveUri })\n .acceptCode(413);\n if (response.status === 400) {\n return undefined;\n }\n if (response.status === 413) {\n const errorData = await response.json<{ errorCode: string; message: string }>();\n if (errorData.errorCode === \"FufSizeTooLarge\") {\n throw new FufSizeTooLargeError(errorData.message);\n }\n throw new HttpError(errorData.message, response.status);\n }\n return await response.json<FileProperties>();\n }\n\n public async uploadAndGetFileProperties(\n driveUris: string[],\n gfv: string,\n abortSignal?: AbortSignal\n ): Promise<UploadFilePropertiesResponse> {\n try {\n const response = await this.httpClient\n .post(`v1/files/upload-and-get-properties`)\n .withQueryParams({ gfv: gfv })\n .withJsonBody(driveUris)\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode, invalidSourceDriveContentNames: \"\", sourcesTotalCount: 0 };\n }\n const data = await response.json<UploadFilePropertiesResponse>();\n return data;\n } catch (e) {\n return {\n serverError: ServerErrors.UnknownError,\n invalidSourceDriveContentNames: \"\",\n sourcesTotalCount: 0,\n };\n }\n }\n\n public async acceptTransferType(\n fufDriveUri: string,\n transferType: string,\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(`v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/transfer/combine`)\n .withQueryParams({ fufDriveUri: fufDriveUri, typeId: transferType })\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode };\n }\n return undefined;\n } catch (e) {\n return { serverError: ServerErrors.UnknownError };\n }\n }\n\n public async acceptMultipleTransferType(\n files: ICombineByTransfers[],\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(`v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/transfer/combine-multiple`)\n .withJsonBody(files)\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode };\n }\n return undefined;\n } catch (e) {\n return { serverError: ServerErrors.UnknownError };\n }\n }\n\n public async setFufByDriveUri(driveUri: string): Promise<void> {\n await this.httpClient.put(this.getDraftUrl(\"set-fuf\")).withQueryParams({ driveUri: driveUri });\n }\n\n public async combineFufByDriveUri(\n driveUri: string,\n combineMethod: FufCombineMethod,\n abortSignal?: AbortSignal\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/combine-with-fuf\"))\n .withQueryParams({ fufDriveUri: driveUri, combineMethod: combineMethod })\n .withAbortSignal(abortSignal);\n if (response.status === 400) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async excelsToPartialFufs(\n gfv: string,\n pathToTable: string,\n driveUris: string[]\n ): Promise<ExcelsToPartialFufsResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(\"v1/files/excels-to-partial-fufs\")\n .withQueryParams({ gfv: gfv, pathToTable: pathToTable })\n .withJsonBody(driveUris);\n if (response.status === 200) {\n return await response.json<ExcelsToPartialFufsResponse>();\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async importFromPartialFufsByPath(\n pathToTable: string,\n driveUri: string[],\n combineMethod: string,\n combinatorType: CombinatorType\n ): Promise<ImportFromPartialFufsByPathResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/import-from-partial-fufs-by-path\"))\n .withQueryParams({\n pathToTable: pathToTable,\n combineMethod: combineMethod,\n combinatorType: combinatorType,\n })\n .withJsonBody(driveUri);\n if (response.status === 200) {\n return await response.json<ImportFromPartialFufsByPathResponse>();\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async multipleCombineFufByDriveUri(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n args?: string[]\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/combine-with-fufs\"))\n .withQueryParams({ combineMethod: combineMethod })\n .withJsonBody({ driveUris: driveUris, arguments: args })\n .acceptCode(400)\n .acceptCode(500);\n if (response.status === 400 || response.status === 500) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async importXmls(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n combinatorType: CombinatorType,\n isImportByFuf: boolean,\n args?: string[]\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/import-xmls\"))\n .withQueryParams({\n combineMethod: combineMethod,\n combinatorType: combinatorType,\n importByFuf: isImportByFuf,\n })\n .withJsonBody({ FufDriveUris: driveUris, arguments: args });\n if (response.status === 400) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async setDraftSettings(settings: DraftSettings): Promise<void> {\n await this.httpClient.patch(this.getDraftUrl(\"external/set-settings\")).withJsonBody(settings);\n }\n\n public async getDraftSettings(): Promise<DraftSettings> {\n const response = await this.httpClient.get(this.getDraftUrl(\"external/get-settings\"));\n\n return response.json<DraftSettings>();\n }\n\n public async normalizeByRules(rules: string): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"test-normalize\")).withJsonBody(rules);\n }\n\n private getHrefDownloadDraftPresentation(presentationType: DraftPresentationType): string {\n return this.httpClient.url(this.getDraftPresentationUrl(presentationType));\n }\n\n private getDraftUrl(draftRelatedUrl: string): string {\n return `v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/${draftRelatedUrl}`;\n }\n\n private getDraftPresentationUrl(presentationType: DraftPresentationType): string {\n return this.getDraftUrl(`presentations/${presentationType.toString()}`);\n }\n\n public async setMultipleWithNormalization(rules: ValueForInstancesSettingRule[]): Promise<void> {\n const uri = this.getDraftUrl(\"inner/set-multiple-with-normalization\");\n const finalRules = rules.map(x => ({ ...x, path: convertToLegacyPath(x.path) }));\n await this.httpClient.patch(uri).withJsonBody(finalRules);\n }\n\n public async searchInstancesByText(\n text: string,\n pathsPrefix: string,\n pathsToSearch: string[],\n maxInstanceCount?: number\n ): Promise<string[]> {\n const maxInstanceCountParams = maxInstanceCount != undefined ? { maxInstanceCount: maxInstanceCount } : {};\n const params = { searchString: text, pathsPrefix: pathsPrefix, ...maxInstanceCountParams };\n return this.httpClient\n .post(this.getDraftUrl(\"inner/search-by-string\"))\n .withQueryParams(params)\n .withJsonBody(pathsToSearch)\n .json<string[]>();\n }\n\n public async queryCollection(request: InnerQueryRequest, abortSignal?: AbortSignal): Promise<InnerQueryResponse> {\n return this.httpClient\n .post(this.getDraftUrl(\"inner/query-collection\"))\n .withJsonBody(request)\n .withAbortSignal(abortSignal)\n .json<InnerQueryResponse>();\n }\n\n public async resolveInnerPath(\n request: ResolveInnerPathRequest,\n abortSignal?: AbortSignal\n ): Promise<ResolvePathResponse> {\n return this.httpClient\n .post(this.getDraftUrl(\"inner/resolve-inner-path\"))\n .withJsonBody(request)\n .withAbortSignal(abortSignal)\n .json<ResolvePathResponse>();\n }\n\n public async customNormalize(\n normalizerId: string | null,\n pathPrefixes: AbsoluteModelPath[],\n abortSignal?: AbortSignal\n ): Promise<IInnerChangeResult> {\n const params = { normalizerId: normalizerId };\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner/custom-normalize\"))\n .withQueryParams(params)\n .withJsonBody(pathPrefixes.map(x => x.toString()))\n .withAbortSignal(abortSignal);\n\n return result.status == 200 ? await result.json<IInnerChangeSuccessResult>() : result.status;\n }\n\n public async importEmployees(request: ImportEmployeesRequest): Promise<void> {\n await this.httpClient.patch(this.getDraftUrl(\"staff\")).withJsonBody(request);\n }\n\n public async deleteInstances(deletingRules: InstancesDeletingRule[]): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"inner/delete-instances\")).withJsonBody(deletingRules);\n }\n\n public async runMassAction(actionId: string, parameters?: MassActionParameters): Promise<void> {\n const queryParams = { actionId: actionId };\n await this.httpClient\n .post(this.getDraftUrl(\"inner/mass-action\"))\n .withQueryParams(queryParams)\n .withJsonBody(parameters);\n }\n\n public print(type: PrintType, body?: string[]): Promise<PrintResponse> {\n return this.httpClient\n .post(this.getDraftUrl(`presentations/inner/print/${type}`))\n .withJsonBody(body)\n .json<PrintResponse>();\n }\n\n public async printExcel(pathToTable: string): Promise<PrintResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(this.getDraftUrl(`presentations/table/print`))\n .withQueryParams({ pathToTable: pathToTable });\n if (response.status === 200) {\n const tableExcel = response.json<PrintResponse>();\n return tableExcel;\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async checkByPopd(): Promise<CandyPopdProtocol> {\n const response = await this.httpClient.get(\n `v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/checkByPopd`\n );\n\n return response.json<CandyPopdProtocol>();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CandyApiClient.js","names":["_TypingUtils","require","_HttpClient","_AuthenticationMode","_ModelPath","_FocusTypes","_DraftPresentationType","_IsBuffer","_FufSizeTooLargeError","strangeOptions","src","dataVersion","CandyResourceZones","exports","TestForms","ServerErrors","convertPathLoadSpecificationToString","spec","skip","pathOrPathPrefix","toLegacyPath","CandyApiClient","constructor","fetchImpl","baseUrl","resourceZone","authentication","exceptionLogger","httpClient","HttpClient","createAuthenticationProvider","forDraft","draftFullId","CandyApiDraftClient","getInfoByInns","inns","paths","map","inn","response","post","getDraftUrl","withJsonBody","json","result","_response","innServerValue","value","undefined","error","errorCode","FocusServerErrorCode","NoInnError","_innServerValue$value","_innServerValue$error","_innServerValue$error2","getAllGfvs","abortSignal","body","get","createDraftFromDrive","ns","fufDriveUri","withQueryParams","withAbortSignal","createEmptyDraft","gfv","createDraft","fufContent","withContentType","withBodyFromBuffer","Buffer","from","Error","checkAlive","draftRelatedUrl","draftId","getFeatureFlags","getHrefToInnerEditor","url","getHrefDownloadFuf","getHrefToConvertationLog","getInnerFuf","DraftPresentationType","innerFuf","text","getHrefToDownloadInnerFuf","getHrefDownloadDraftPresentation","getHrefToDownloadClientInfo","clientInfo","getHrefToDownloadFormsClientInfo","formsClientInfo","getHrefDownloadInner","inner","getErrorLog","getDraftPresentationUrl","errorLog","getErrorLogWithCheckScenarios","checkScenarios","getTaskById","taskId","_tasks","tasks","getFufWithAttachments","getPartialFuf","rules","getAllTasks","Object","values","x","enqueueTask","taskInfo","added","changed","id","removed","cancelTask","getExpertErrorLog","errorlogExpert","getHrefToErrorLogPdf","errorLogName","propsName","propsDriveName","clearDraft","convertDraftFromPrevGfv","prevGfvDraftId","sendChangeSet","data","currentDataVersion","acceptCode","getSuccessResult","_dataResult$dataVersi","dataResult","reject","status","sendChangeWithNormalizationSet","normalizerId","sendChangeSetSync","postSync","getSuccessResultSync","_dataResult$dataVersi2","getRequisites","requisiteList","getInner","getPartialInner","maxInstanceCount","convertedRules","toString","length","getPartialInnerAsJsonTree","format","getRawPartialInnerAsJsonTree","getDataVersion","getExplanatoryNote","explanatoryNote","getAttachmentById","attachmentId","_result$value","_result","getAllAttachments","removeAttachments","attachmentIds","createOrUpdateAttachments","attachments","attachment","contentUri","meta","createDraftAttachment","path","openLoadedAttachmentAsDraft","errorData","FufSizeTooLargeError","message","HttpError","setPresentation","presentationType","content","request","put","withRawBody","isBuffer","patchPresentation","presentationContent","patch","getFileProperties","driveUri","ignoreSizeCheck","prepareAndGetFileProperties","uploadAndGetFileProperties","driveUris","serverError","invalidSourceDriveContentNames","sourcesTotalCount","e","UnknownError","acceptTransferType","transferType","typeId","acceptMultipleTransferType","files","setFufByDriveUri","combineFufByDriveUri","combineMethod","excelsToPartialFufs","pathToTable","importFromPartialFufsByPath","combinatorType","multipleCombineFufByDriveUri","args","arguments","importXmls","isImportByFuf","importByFuf","FufDriveUris","setDraftSettings","settings","getDraftSettings","normalizeByRules","setMultipleWithNormalization","uri","finalRules","convertToLegacyPath","normalizeDirtyMasks","searchInstancesByText","pathsPrefix","pathsToSearch","maxInstanceCountParams","params","searchString","queryCollection","resolveInnerPath","customNormalize","pathPrefixes","importEmployees","deleteInstances","deletingRules","runMassAction","actionId","parameters","queryParams","print","type","printExcel","tableExcel","checkByPopd"],"sources":["../../../../Common/CandyApiClient/CandyApiClient.ts"],"sourcesContent":["import { reject } from \"../TypingUtils\";\nimport { Fetch } from \"../HttpClient/FetchImplementation/Fetch\";\nimport { ExceptionLogger, HttpClient, HttpError } from \"../HttpClient/HttpClient\";\nimport { IHttpClient } from \"../HttpClient/IHttpClient\";\nimport { AuthenticationMode, createAuthenticationProvider } from \"../HttpClient/AuthenticationMode\";\nimport { ICombineByTransfers } from \"../../Engine/src/Engine/Core/ModalManager/Modals/UploadSection/Types\";\nimport { AbsoluteModelPath, convertToLegacyPath } from \"../ModelPath/ModelPath\";\n\nimport {\n BaseGetFufResponse,\n CheckScenarioType,\n DraftSettings,\n FufWithAttachmentsResponse,\n ICandyApiClient,\n ICandyApiDraftClient,\n IInnerChangeResult,\n IInnerChangeSuccessResult,\n PathLoadSpecification,\n} from \"./ICandyApiClient\";\nimport { ServerErrorLog } from \"./Types/ErrorLog/ServerErrorLog\";\nimport { ServerInnerResponse, ServerJsonResponse } from \"./Types/GetInner/ServerInnerResponse\";\nimport {\n ExcelsToPartialFufsResponse,\n FileProperties,\n ImportFromPartialFufsByPathResponse,\n ServerErrorResponse,\n UploadFilePropertiesResponse,\n} from \"./Types/DraftActions/FileProperties\";\nimport { CreateDraftResponse } from \"./Types/CreateDraft/CreateDraftResponse\";\nimport { CreateExplanatoryNoteResponse } from \"./Types/ExplanatoryNote/CreateExplanatoryNoteResponse\";\nimport { DraftFullId } from \"./Types/DraftFullId\";\nimport { ServerChangeSet } from \"./Types/ChangeSet/ServerChangeSet\";\nimport { ServerTask, VerifyAndFixFnsRequirementsTaskInfo } from \"./Types/Tasks/Tasks\";\nimport { FocusServerErrorCode, GetByInnResponse } from \"./Types/Focus/FocusTypes\";\nimport { AttachInfo } from \"./Types/Attachments/Attacments\";\nimport { DraftPresentationType } from \"./Types/Presentations/DraftPresentationType\";\nimport { PresentationContent } from \"./Types/Presentations/PresentationContent\";\nimport { ConvertDraftRequest } from \"./Types/DraftActions/ConvertDraftRequest\";\nimport { GetAttachmentsResponse } from \"./Types/Attachments/GetAttachmentsResponse\";\nimport { FocusServerResponse } from \"./Types/Focus/FocusServerResponse\";\nimport { GetTasksServerResponse } from \"./Types/Tasks/GetTasksServerResponse\";\nimport { ServerRequisitesResponse } from \"./Types/GetInner/ServerRequisitesResponse\";\nimport { isBuffer } from \"./IsBuffer\";\nimport { CombinatorType, CombineFufResult, FufCombineMethod } from \"./Types/DraftActions/CombineFufResult\";\nimport { FeatureFlagsResponse } from \"./Types/FeatureFlags/FeatureFlagsResponse\";\nimport { FufSizeTooLargeError } from \"./Types/DraftActions/FufSizeTooLargeError\";\nimport { ImportEmployeesRequest } from \"./Types/Staff/ImportEmployeesRequest\";\nimport { MassActionParameters } from \"./Types/MassActions/MassActionParameters\";\nimport { PrintType } from \"./Types/Print/PrintType\";\nimport { PrintResponse } from \"./Types/Print/PrintResponse\";\nimport { ServerRawResponse } from \"./Types/GetInner/ServerRawResponse\";\nimport { CandyPopdProtocol } from \"./Types/ErrorLog/CandyPopdProtocol\";\nimport { InstancesDeletingRule } from \"./Types/InstancesDeleting/InstancesDeletingRule\";\nimport { ValueForInstancesSettingRule } from \"./Types/MassActions/ValueForInstancesSettingRule\";\nimport { InnerQueryRequest } from \"./Types/QueryCollecton/InnerQueryRequest\";\nimport { InnerQueryResponse } from \"./Types/QueryCollecton/InnerQueryResponse\";\nimport { ResolveInnerPathRequest } from \"./Types/ErrorLog/ResolveInnerPathRequest\";\nimport { ResolvePathResponse } from \"./Types/ErrorLog/ResolvePathResponse\";\n\nconst strangeOptions = { src: \"changeSet\", dataVersion: \"0\" };\n\nexport const CandyResourceZones = {\n TestForms: \"candy.resources.test-forms\",\n};\n\nexport enum ServerErrors {\n FufSizeTooLarge = \"FufSizeTooLarge\",\n BadRequest = \"BadRequest\",\n UnknownError = \"UnknownError\",\n}\n\nfunction convertPathLoadSpecificationToString(spec: PathLoadSpecification): string {\n return (\n (spec.skip ? \"-\" : \"\") +\n (spec.pathOrPathPrefix === \"*\" ? spec.pathOrPathPrefix : spec.pathOrPathPrefix.toLegacyPath())\n );\n}\n\nexport class CandyApiClient implements ICandyApiClient {\n private readonly httpClient: IHttpClient;\n\n public constructor(\n fetchImpl: Fetch,\n baseUrl: string,\n resourceZone: undefined | string,\n authentication: undefined | AuthenticationMode,\n exceptionLogger?: ExceptionLogger\n ) {\n this.httpClient = new HttpClient(\n fetchImpl,\n baseUrl,\n createAuthenticationProvider(authentication),\n {\n resourceZone: resourceZone,\n },\n exceptionLogger\n );\n }\n\n public forDraft(draftFullId: DraftFullId): ICandyApiDraftClient {\n return new CandyApiDraftClient(this.httpClient, draftFullId);\n }\n\n public async getInfoByInns(draftFullId: DraftFullId, inns: readonly string[]): Promise<GetByInnResponse> {\n const paths = inns.map(inn => `@focus/${inn}`);\n const response = await this.httpClient\n .post(this.getDraftUrl(draftFullId, \"get-inner\"))\n .withJsonBody(paths)\n .json<FocusServerResponse>();\n const result: GetByInnResponse = {};\n for (const inn of inns) {\n const innServerValue = response[`@focus/${inn}`]?.value;\n if (innServerValue == undefined) {\n result[inn] = {\n value: undefined,\n error: \"Server does not return inn info\",\n errorCode: FocusServerErrorCode.NoInnError,\n };\n } else {\n result[inn] = {\n value: innServerValue.value ?? undefined,\n errorCode: innServerValue.errorCode ?? undefined,\n error: innServerValue.error ?? undefined,\n };\n }\n }\n return result;\n }\n\n public async getAllGfvs(abortSignal?: AbortSignal): Promise<string[]> {\n const body = await this.httpClient.get(`build-server/gfvs`).json<string[]>();\n return body;\n }\n\n public async createDraftFromDrive(\n ns: string,\n fufDriveUri: string,\n abortSignal?: AbortSignal\n ): Promise<CreateDraftResponse> {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft-from-drive`)\n .withQueryParams({\n ns: ns,\n fufDriveUri: fufDriveUri,\n })\n .withAbortSignal(abortSignal)\n .json<CreateDraftResponse>();\n }\n\n public async createEmptyDraft(ns: string, gfv: string, abortSignal?: AbortSignal): Promise<CreateDraftResponse> {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withAbortSignal(abortSignal)\n .json<CreateDraftResponse>();\n }\n\n public createDraft(ns: string, gfv: string): Promise<CreateDraftResponse>;\n public createDraft(ns: string, gfv: undefined, fufContent: Buffer): Promise<CreateDraftResponse>;\n public async createDraft(ns: string, gfv: undefined | string, fufContent?: Buffer): Promise<CreateDraftResponse> {\n if (gfv == undefined && fufContent != undefined) {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(fufContent)\n .json<CreateDraftResponse>();\n }\n if (gfv != undefined && fufContent == undefined) {\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(Buffer.from([]))\n .json<CreateDraftResponse>();\n }\n if (gfv == undefined && fufContent == undefined) {\n throw new Error(\"Cannot create draft: no gfv and no fuf specified\");\n }\n return await this.httpClient\n .post(`v1/ns/${ns}/create-draft`)\n .withQueryParams({ gfv: gfv })\n .withContentType(\"application/octet-stream\")\n .withBodyFromBuffer(fufContent)\n .json<CreateDraftResponse>();\n }\n\n public async checkAlive(): Promise<void> {\n await this.httpClient.get(`_status/ping`);\n }\n\n private getDraftUrl(draftFullId: DraftFullId, draftRelatedUrl: string): string {\n return `v1/ns/${draftFullId.ns}/drafts/${draftFullId.draftId}/${draftRelatedUrl}`;\n }\n\n public async getFeatureFlags(): Promise<FeatureFlagsResponse> {\n return await this.httpClient.get(\"v1/features/flags\").json<FeatureFlagsResponse>();\n }\n}\n\nexport class CandyApiDraftClient implements ICandyApiDraftClient {\n private readonly httpClient: IHttpClient;\n private readonly draftFullId: DraftFullId;\n\n public constructor(httpClient: IHttpClient, draftFullId: DraftFullId) {\n this.httpClient = httpClient;\n this.draftFullId = draftFullId;\n }\n\n public getHrefToInnerEditor(): string {\n return this.httpClient.url(`inner-editor/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}`);\n }\n\n public getHrefDownloadFuf(): string {\n return this.httpClient.url(this.getDraftUrl(\"get-fuf\"));\n }\n\n public getHrefToConvertationLog(): string {\n return this.httpClient.url(this.getDraftUrl(\"conversion\"));\n }\n\n public async getInnerFuf(): Promise<string | undefined> {\n return (await this.httpClient.get(this.getDraftUrl(DraftPresentationType.innerFuf))).text();\n }\n\n public getHrefToDownloadInnerFuf(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.innerFuf);\n }\n\n public getHrefToDownloadClientInfo(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.clientInfo);\n }\n\n public getHrefToDownloadFormsClientInfo(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.formsClientInfo);\n }\n\n public getHrefDownloadInner(): string {\n return this.getHrefDownloadDraftPresentation(DraftPresentationType.inner);\n }\n\n public async getErrorLog(): Promise<ServerErrorLog> {\n return this.httpClient.get(this.getDraftPresentationUrl(DraftPresentationType.errorLog)).json<ServerErrorLog>();\n }\n\n public async getErrorLogWithCheckScenarios(checkScenarios: CheckScenarioType[]): Promise<ServerErrorLog> {\n return this.httpClient\n .post(this.getDraftUrl(\"errorlog\"))\n .withJsonBody({ checkScenarios: checkScenarios })\n .json<ServerErrorLog>();\n }\n\n public async getTaskById(taskId: string): Promise<ServerTask | undefined> {\n const tasks = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@task/*`])\n .json<GetTasksServerResponse>();\n return tasks[`@task/${taskId}`]?.value;\n }\n\n public async getFufWithAttachments(): Promise<FufWithAttachmentsResponse | undefined> {\n const response = await this.httpClient\n .get(this.getDraftUrl(\"get-fuf-with-attachments\"))\n .json<FufWithAttachmentsResponse>();\n return response;\n }\n\n public async getPartialFuf(rules: string[]): Promise<BaseGetFufResponse | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"get-partial-fuf\"))\n .withJsonBody(rules)\n .json<BaseGetFufResponse>();\n return response;\n }\n\n public async getAllTasks(): Promise<ServerTask[]> {\n const tasks = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@task/*`])\n .json<GetTasksServerResponse>();\n return Object.values(tasks).map(x => x.value);\n }\n\n public async enqueueTask(taskId: string, taskInfo: VerifyAndFixFnsRequirementsTaskInfo): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {\n [`@task/${taskId}`]: {\n ...taskInfo,\n id: taskId,\n },\n },\n removed: [],\n });\n }\n\n public async cancelTask(taskId: string): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {},\n removed: [`@task/${taskId}`],\n });\n }\n\n public getExpertErrorLog(): Promise<ServerErrorLog> {\n return this.httpClient\n .get(this.getDraftPresentationUrl(DraftPresentationType.errorlogExpert))\n .json<ServerErrorLog>();\n }\n\n public getHrefToErrorLogPdf(errorLogName: string, propsName: string): string {\n return this.httpClient.url(this.getDraftUrl(\"presentations/errorLog/print\"), {\n errorLogName: errorLogName,\n propsDriveName: propsName,\n });\n }\n\n public async clearDraft(): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"clear\"));\n }\n\n public async convertDraftFromPrevGfv({ prevGfvDraftId, gfv }: ConvertDraftRequest): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"convert\")).withQueryParams({\n id: prevGfvDraftId,\n gfv: gfv,\n });\n }\n\n public async sendChangeSet(data: ServerChangeSet, currentDataVersion: number): Promise<IInnerChangeResult> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner\"))\n .withQueryParams({ dataVersion: currentDataVersion })\n .withJsonBody(data)\n .acceptCode(409);\n\n const getSuccessResult = async () => {\n const dataResult = await result.json<{ dataVersion?: number }>();\n return {\n dataVersion: dataResult?.dataVersion ?? reject(\"Invalid dataVersion after applying change set.\"),\n };\n };\n\n return result.status == 200 ? await getSuccessResult() : result.status;\n }\n\n public async sendChangeWithNormalizationSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string\n ): Promise<IInnerChangeResult> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner/patch-with-normalization\"))\n .withQueryParams({ dataVersion: currentDataVersion, normalizerId: normalizerId })\n .withJsonBody(data)\n .acceptCode(409);\n\n return result.status == 200 ? await result.json<IInnerChangeSuccessResult>() : result.status;\n }\n\n public sendChangeSetSync(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string\n ): IInnerChangeResult {\n const result = this.httpClient.postSync(this.getDraftUrl(\"inner\"), { dataVersion: currentDataVersion }, data);\n\n const getSuccessResultSync = () => {\n const dataResult = result.json<{ dataVersion?: number }>();\n return {\n dataVersion: dataResult?.dataVersion ?? reject(\"Invalid dataVersion after applying change set.\"),\n };\n };\n return result.status == 200 ? getSuccessResultSync() : result.status;\n }\n\n public async getRequisites(requisiteList: readonly string[]): Promise<ServerRequisitesResponse> {\n return await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody(requisiteList)\n .json<ServerRequisitesResponse>();\n }\n\n public async getInner(paths: undefined | readonly string[]): Promise<ServerInnerResponse> {\n return await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody(paths)\n .json<ServerInnerResponse>();\n }\n\n public getPartialInner(rules: PathLoadSpecification[], maxInstanceCount?: number): Promise<ServerInnerResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerInnerResponse>();\n }\n\n public async getPartialInnerAsJsonTree(\n rules: PathLoadSpecification[],\n maxInstanceCount?: number\n ): Promise<ServerJsonResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withQueryParams({ format: \"JsonTree\" })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerJsonResponse>();\n }\n\n public getRawPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number\n ): Promise<ServerRawResponse> {\n const convertedRules = rules.map(convertPathLoadSpecificationToString);\n return this.httpClient\n .post(this.getDraftUrl(\"get-partial-inner2\"))\n .withQueryParams(maxInstanceCount != undefined && { maxInstanceCount: maxInstanceCount.toString() })\n .withJsonBody(convertedRules.length > 0 ? convertedRules : [\"*\"])\n .json<ServerRawResponse>();\n }\n\n public getDataVersion(): Promise<number> {\n return this.httpClient.get(this.getDraftUrl(\"inner/get-data-version\")).json<number>();\n }\n\n public async getExplanatoryNote(): Promise<CreateExplanatoryNoteResponse> {\n return await this.httpClient\n .get(this.getDraftPresentationUrl(DraftPresentationType.explanatoryNote))\n .json<CreateExplanatoryNoteResponse>();\n }\n\n public async getAttachmentById(attachmentId: string): Promise<AttachInfo> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@attachment/${attachmentId}`])\n .json<GetAttachmentsResponse>();\n return result[`@attachment/${attachmentId}`]?.value ?? reject();\n }\n\n public async getAllAttachments(): Promise<AttachInfo[]> {\n const result = await this.httpClient\n .post(this.getDraftUrl(\"get-inner\"))\n .withJsonBody([`@attachment/*`])\n .json<GetAttachmentsResponse>();\n return Object.values(result).map(x => x.value);\n }\n\n public async removeAttachments(attachmentIds: readonly string[]): Promise<void> {\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: {},\n removed: attachmentIds.map(id => `@attachment/${id}`),\n });\n }\n\n public async createOrUpdateAttachments(attachments: readonly AttachInfo[]): Promise<void> {\n const changed = {};\n for (const attachment of attachments) {\n changed[`@attachment/${attachment.id}`] = {\n contentUri: attachment.contentUri,\n id: attachment.id,\n meta: attachment.meta,\n };\n }\n await this.httpClient\n .post(this.getDraftPresentationUrl(DraftPresentationType.inner))\n .withQueryParams(strangeOptions)\n .withJsonBody({\n added: [],\n changed: changed,\n removed: [],\n });\n }\n\n public async createDraftAttachment(gfv: string, path: string): Promise<AttachInfo> {\n return await this.httpClient\n .post(this.getDraftUrl(\"external/create-attachment-draft\"))\n .withQueryParams({ gfv: gfv, path: path })\n .json<AttachInfo>();\n }\n\n public async openLoadedAttachmentAsDraft(id: string): Promise<AttachInfo> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"external/open-loaded-attachment-as-draft\"))\n .withQueryParams({ attachmentId: id })\n .acceptCode(413);\n\n if (response.status === 413) {\n const errorData = await response.json<{ errorCode: string; message: string }>();\n if (errorData.errorCode === \"FufSizeTooLarge\") {\n throw new FufSizeTooLargeError(errorData.message);\n }\n throw new HttpError(errorData.message, response.status);\n }\n return await response.json<AttachInfo>();\n }\n\n public async setPresentation(presentationType: DraftPresentationType, content: string | unknown): Promise<void> {\n let request = this.httpClient.put(this.getDraftPresentationUrl(presentationType));\n if (typeof content === \"string\") {\n request = request.withRawBody(content);\n } else if (isBuffer(content)) {\n request = request.withRawBody(content);\n } else {\n request = request.withJsonBody(content);\n }\n await request;\n }\n\n public async patchPresentation(\n presentationType: DraftPresentationType,\n presentationContent: PresentationContent\n ): Promise<void> {\n await this.httpClient.patch(this.getDraftPresentationUrl(presentationType)).withJsonBody(presentationContent);\n }\n\n public async getFileProperties(\n driveUri: string,\n ignoreSizeCheck?: boolean | undefined\n ): Promise<FileProperties | undefined> {\n const response = await this.httpClient\n .get(`v1/files/get-properties`)\n .withQueryParams({ driveUri: driveUri, ignoreSizeCheck: ignoreSizeCheck ?? false })\n .acceptCode(400)\n .acceptCode(413);\n if (response.status === 400 || response.status === 413 || response.status === 200) {\n return response.json<FileProperties>();\n }\n return undefined;\n }\n\n public async prepareAndGetFileProperties(driveUri: string, gfv: string): Promise<FileProperties | undefined> {\n const response = await this.httpClient\n .get(`v1/files/prepare-and-get-properties`)\n .withQueryParams({ gfv: gfv, driveUri: driveUri })\n .acceptCode(413);\n if (response.status === 400) {\n return undefined;\n }\n if (response.status === 413) {\n const errorData = await response.json<{ errorCode: string; message: string }>();\n if (errorData.errorCode === \"FufSizeTooLarge\") {\n throw new FufSizeTooLargeError(errorData.message);\n }\n throw new HttpError(errorData.message, response.status);\n }\n return await response.json<FileProperties>();\n }\n\n public async uploadAndGetFileProperties(\n driveUris: string[],\n gfv: string,\n abortSignal?: AbortSignal\n ): Promise<UploadFilePropertiesResponse> {\n try {\n const response = await this.httpClient\n .post(`v1/files/upload-and-get-properties`)\n .withQueryParams({ gfv: gfv })\n .withJsonBody(driveUris)\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode, invalidSourceDriveContentNames: \"\", sourcesTotalCount: 0 };\n }\n const data = await response.json<UploadFilePropertiesResponse>();\n return data;\n } catch (e) {\n return {\n serverError: ServerErrors.UnknownError,\n invalidSourceDriveContentNames: \"\",\n sourcesTotalCount: 0,\n };\n }\n }\n\n public async acceptTransferType(\n fufDriveUri: string,\n transferType: string,\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(`v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/transfer/combine`)\n .withQueryParams({ fufDriveUri: fufDriveUri, typeId: transferType })\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode };\n }\n return undefined;\n } catch (e) {\n return { serverError: ServerErrors.UnknownError };\n }\n }\n\n public async acceptMultipleTransferType(\n files: ICombineByTransfers[],\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(`v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/transfer/combine-multiple`)\n .withJsonBody(files)\n .withAbortSignal(abortSignal)\n .acceptCode(400)\n .acceptCode(413);\n if (response.status !== 200) {\n const data = await response.json<{ errorCode: ServerErrors; message: string }>();\n return { serverError: data.errorCode };\n }\n return undefined;\n } catch (e) {\n return { serverError: ServerErrors.UnknownError };\n }\n }\n\n public async setFufByDriveUri(driveUri: string): Promise<void> {\n await this.httpClient.put(this.getDraftUrl(\"set-fuf\")).withQueryParams({ driveUri: driveUri });\n }\n\n public async combineFufByDriveUri(\n driveUri: string,\n combineMethod: FufCombineMethod,\n abortSignal?: AbortSignal\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/combine-with-fuf\"))\n .withQueryParams({ fufDriveUri: driveUri, combineMethod: combineMethod })\n .withAbortSignal(abortSignal);\n if (response.status === 400) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async excelsToPartialFufs(\n gfv: string,\n pathToTable: string,\n driveUris: string[]\n ): Promise<ExcelsToPartialFufsResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(\"v1/files/excels-to-partial-fufs\")\n .withQueryParams({ gfv: gfv, pathToTable: pathToTable })\n .withJsonBody(driveUris);\n if (response.status === 200) {\n return await response.json<ExcelsToPartialFufsResponse>();\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async importFromPartialFufsByPath(\n pathToTable: string,\n driveUri: string[],\n combineMethod: string,\n combinatorType: CombinatorType\n ): Promise<ImportFromPartialFufsByPathResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/import-from-partial-fufs-by-path\"))\n .withQueryParams({\n pathToTable: pathToTable,\n combineMethod: combineMethod,\n combinatorType: combinatorType,\n })\n .withJsonBody(driveUri);\n if (response.status === 200) {\n return await response.json<ImportFromPartialFufsByPathResponse>();\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async multipleCombineFufByDriveUri(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n args?: string[]\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/combine-with-fufs\"))\n .withQueryParams({ combineMethod: combineMethod })\n .withJsonBody({ driveUris: driveUris, arguments: args })\n .acceptCode(400)\n .acceptCode(500);\n if (response.status === 400 || response.status === 500) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async importXmls(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n combinatorType: CombinatorType,\n isImportByFuf: boolean,\n args?: string[]\n ): Promise<CombineFufResult | undefined> {\n const response = await this.httpClient\n .post(this.getDraftUrl(\"transfer/import-xmls\"))\n .withQueryParams({\n combineMethod: combineMethod,\n combinatorType: combinatorType,\n importByFuf: isImportByFuf,\n })\n .withJsonBody({ FufDriveUris: driveUris, arguments: args });\n if (response.status === 400) {\n return undefined;\n }\n return await response.json<CombineFufResult>();\n }\n\n public async setDraftSettings(settings: DraftSettings): Promise<void> {\n await this.httpClient.patch(this.getDraftUrl(\"external/set-settings\")).withJsonBody(settings);\n }\n\n public async getDraftSettings(): Promise<DraftSettings> {\n const response = await this.httpClient.get(this.getDraftUrl(\"external/get-settings\"));\n\n return response.json<DraftSettings>();\n }\n\n public async normalizeByRules(rules: string): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"test-normalize\")).withJsonBody(rules);\n }\n\n private getHrefDownloadDraftPresentation(presentationType: DraftPresentationType): string {\n return this.httpClient.url(this.getDraftPresentationUrl(presentationType));\n }\n\n private getDraftUrl(draftRelatedUrl: string): string {\n return `v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/${draftRelatedUrl}`;\n }\n\n private getDraftPresentationUrl(presentationType: DraftPresentationType): string {\n return this.getDraftUrl(`presentations/${presentationType.toString()}`);\n }\n\n public async setMultipleWithNormalization(rules: ValueForInstancesSettingRule[]): Promise<void> {\n const uri = this.getDraftUrl(\"inner/set-multiple-with-normalization\");\n const finalRules = rules.map(x => ({ ...x, path: convertToLegacyPath(x.path) }));\n await this.httpClient.patch(uri).withJsonBody(finalRules);\n }\n\n public async normalizeDirtyMasks(): Promise<IInnerChangeResult> {\n const uri = this.getDraftUrl(\"inner/normalize-dirty-masks\");\n const result = await this.httpClient.post(uri);\n return result.status == 200 ? await result.json<IInnerChangeSuccessResult>() : result.status;\n }\n\n public async searchInstancesByText(\n text: string,\n pathsPrefix: string,\n pathsToSearch: string[],\n maxInstanceCount?: number\n ): Promise<string[]> {\n const maxInstanceCountParams = maxInstanceCount != undefined ? { maxInstanceCount: maxInstanceCount } : {};\n const params = { searchString: text, pathsPrefix: pathsPrefix, ...maxInstanceCountParams };\n return this.httpClient\n .post(this.getDraftUrl(\"inner/search-by-string\"))\n .withQueryParams(params)\n .withJsonBody(pathsToSearch)\n .json<string[]>();\n }\n\n public async queryCollection(request: InnerQueryRequest, abortSignal?: AbortSignal): Promise<InnerQueryResponse> {\n return this.httpClient\n .post(this.getDraftUrl(\"inner/query-collection\"))\n .withJsonBody(request)\n .withAbortSignal(abortSignal)\n .json<InnerQueryResponse>();\n }\n\n public async resolveInnerPath(\n request: ResolveInnerPathRequest,\n abortSignal?: AbortSignal\n ): Promise<ResolvePathResponse> {\n return this.httpClient\n .post(this.getDraftUrl(\"inner/resolve-inner-path\"))\n .withJsonBody(request)\n .withAbortSignal(abortSignal)\n .json<ResolvePathResponse>();\n }\n\n public async customNormalize(\n normalizerId: string | null,\n pathPrefixes: AbsoluteModelPath[],\n abortSignal?: AbortSignal\n ): Promise<IInnerChangeResult> {\n const params = { normalizerId: normalizerId };\n const result = await this.httpClient\n .post(this.getDraftUrl(\"inner/custom-normalize\"))\n .withQueryParams(params)\n .withJsonBody(pathPrefixes.map(x => x.toString()))\n .withAbortSignal(abortSignal);\n\n return result.status == 200 ? await result.json<IInnerChangeSuccessResult>() : result.status;\n }\n\n public async importEmployees(request: ImportEmployeesRequest): Promise<void> {\n await this.httpClient.patch(this.getDraftUrl(\"staff\")).withJsonBody(request);\n }\n\n public async deleteInstances(deletingRules: InstancesDeletingRule[]): Promise<void> {\n await this.httpClient.post(this.getDraftUrl(\"inner/delete-instances\")).withJsonBody(deletingRules);\n }\n\n public async runMassAction(actionId: string, parameters?: MassActionParameters): Promise<void> {\n const queryParams = { actionId: actionId };\n await this.httpClient\n .post(this.getDraftUrl(\"inner/mass-action\"))\n .withQueryParams(queryParams)\n .withJsonBody(parameters);\n }\n\n public print(type: PrintType, body?: string[]): Promise<PrintResponse> {\n return this.httpClient\n .post(this.getDraftUrl(`presentations/inner/print/${type}`))\n .withJsonBody(body)\n .json<PrintResponse>();\n }\n\n public async printExcel(pathToTable: string): Promise<PrintResponse | undefined> {\n try {\n const response = await this.httpClient\n .post(this.getDraftUrl(`presentations/table/print`))\n .withQueryParams({ pathToTable: pathToTable });\n if (response.status === 200) {\n const tableExcel = response.json<PrintResponse>();\n return tableExcel;\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n public async checkByPopd(): Promise<CandyPopdProtocol> {\n const response = await this.httpClient.get(\n `v1/ns/${this.draftFullId.ns}/drafts/${this.draftFullId.draftId}/checkByPopd`\n );\n\n return response.json<CandyPopdProtocol>();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -43,6 +43,9 @@ class FakeCandyApiDraftClient {
43
43
  deleteInstances(deletingRules) {
44
44
  return Promise.resolve();
45
45
  }
46
+ getInnerFuf() {
47
+ return Promise.resolve(undefined);
48
+ }
46
49
  getFufWithAttachments() {
47
50
  return Promise.resolve(undefined);
48
51
  }
@@ -201,6 +204,9 @@ class FakeCandyApiDraftClient {
201
204
  setMultipleWithNormalization(rules) {
202
205
  return Promise.resolve();
203
206
  }
207
+ normalizeDirtyMasks() {
208
+ return Promise.resolve(200);
209
+ }
204
210
  searchInstancesByText(text, pathPrefix, pathsToSearch, maxInstanceCount) {
205
211
  return Promise.resolve([]);
206
212
  }
@@ -239,4 +245,4 @@ class FakeCandyApiDraftClient {
239
245
  }
240
246
  }
241
247
  exports.FakeCandyApiDraftClient = FakeCandyApiDraftClient;
242
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3JzIiwicmVxdWlyZSIsIl9DYW5keUFwaUNsaWVudCIsIkZha2VDYW5keUFwaUNsaWVudCIsImdldEFsbEdmdnMiLCJhYm9ydFNpZ25hbCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2hlY2tBbGl2ZSIsInVuZGVmaW5lZCIsImNyZWF0ZURyYWZ0IiwibnMiLCJnZnYiLCJib2R5IiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImZvckRyYWZ0IiwiZHJhZnRGdWxsSWQiLCJGYWtlQ2FuZHlBcGlEcmFmdENsaWVudCIsImNyZWF0ZURyYWZ0RnJvbURyaXZlIiwiZnVmRHJpdmVVcmkiLCJjcmVhdGVFbXB0eURyYWZ0IiwiZ2V0SW5mb0J5SW5ucyIsImlubnMiLCJnZXRGZWF0dXJlRmxhZ3NXaXRob3V0UHJvbWlzZSIsImZlYXR1cmVGbGFncyIsImdldEZlYXR1cmVGbGFncyIsInJlc3BvbnNlIiwiY2FuZHlUZXN0RmVhdHVyZSIsImV4cG9ydHMiLCJkZWxldGVJbnN0YW5jZXMiLCJkZWxldGluZ1J1bGVzIiwiZ2V0RnVmV2l0aEF0dGFjaG1lbnRzIiwiaW1wb3J0RW1wbG95ZWVzIiwicmVxdWVzdCIsImdldFBhcnRpYWxGdWYiLCJydWxlcyIsInJ1bk1hc3NBY3Rpb24iLCJhY3Rpb25JZCIsInBhcmFtZXRlcnMiLCJhY2NlcHRUcmFuc2ZlclR5cGUiLCJ0cmFuc2ZlclR5cGUiLCJhY2NlcHRNdWx0aXBsZVRyYW5zZmVyVHlwZSIsImZpbGVzIiwiY2FuY2VsVGFzayIsInRhc2tJZCIsImNsZWFyRHJhZnQiLCJjb252ZXJ0RHJhZnRGcm9tUHJldkdmdiIsImNyZWF0ZU9yVXBkYXRlQXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImVucXVldWVUYXNrIiwidGFza0luZm8iLCJnZXRBbGxBdHRhY2htZW50cyIsImdldEFsbFRhc2tzIiwiZ2V0QXR0YWNobWVudEJ5SWQiLCJhdHRhY2htZW50SWQiLCJjcmVhdGVEcmFmdEF0dGFjaG1lbnQiLCJwYXRoIiwib3BlbkxvYWRlZEF0dGFjaG1lbnRBc0RyYWZ0IiwiaWQiLCJnZXRFcnJvckxvZyIsImdldEVycm9yTG9nV2l0aENoZWNrU2NlbmFyaW9zIiwiY2hlY2tTY2VuYXJpb3MiLCJnZXRFeHBlcnRFcnJvckxvZyIsImdldEV4cGxhbmF0b3J5Tm90ZSIsInByaW50IiwidHlwZSIsImdldEZpbGVQcm9wZXJ0aWVzIiwiZHJpdmVVcmkiLCJpZ25vcmVTaXplQ2hlY2siLCJwcmVwYXJlQW5kR2V0RmlsZVByb3BlcnRpZXMiLCJ1cGxvYWRBbmRHZXRGaWxlUHJvcGVydGllcyIsImRyaXZlVXJpcyIsInNlcnZlckVycm9yIiwiU2VydmVyRXJyb3JzIiwiVW5rbm93bkVycm9yIiwic291cmNlc1RvdGFsQ291bnQiLCJpbnZhbGlkU291cmNlRHJpdmVDb250ZW50TmFtZXMiLCJnZXRIcmVmRG93bmxvYWRGdWYiLCJnZXRIcmVmRG93bmxvYWRJbm5lciIsImdldEhyZWZUb0NvbnZlcnRhdGlvbkxvZyIsImdldEhyZWZUb0Rvd25sb2FkQ2xpZW50SW5mbyIsImdldEhyZWZUb0Rvd25sb2FkRm9ybXNDbGllbnRJbmZvIiwiZ2V0SHJlZlRvRG93bmxvYWRJbm5lckZ1ZiIsImdldEhyZWZUb0Vycm9yTG9nUGRmIiwiZXJyb3JMb2dOYW1lIiwicHJvcHNOYW1lIiwiZ2V0SHJlZlRvSW5uZXJFZGl0b3IiLCJnZXRSZXF1aXNpdGVzIiwicmVxdWlzaXRlTGlzdCIsImdldElubmVyIiwicGF0aHMiLCJnZXRQYXJ0aWFsSW5uZXIiLCJtYXhJbnN0YW5jZUNvdW50IiwiZ2V0UGFydGlhbElubmVyQXNKc29uVHJlZSIsImdldFJhd1BhcnRpYWxJbm5lckFzSnNvblRyZWUiLCJnZXRUYXNrQnlJZCIsIm5vcm1hbGl6ZUJ5UnVsZXMiLCJwYXRjaFByZXNlbnRhdGlvbiIsImNvbnRlbnQiLCJyZW1vdmVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRJZHMiLCJzZW5kQ2hhbmdlU2V0IiwiZGF0YSIsImN1cnJlbnREYXRhVmVyc2lvbiIsImRhdGFWZXJzaW9uIiwic2VuZENoYW5nZVdpdGhOb3JtYWxpemF0aW9uU2V0Iiwibm9ybWFsaXplcklkIiwic2VuZENoYW5nZVNldFN5bmMiLCJzZXRGdWZCeURyaXZlVXJpIiwiY29tYmluZUZ1ZkJ5RHJpdmVVcmkiLCJjb21iaW5lTWV0aG9kIiwibXVsdGlwbGVDb21iaW5lRnVmQnlEcml2ZVVyaSIsImltcG9ydFhtbHMiLCJjb21iaW5hdG9yVHlwZSIsImlzSW1wb3J0QnlGdWYiLCJzZXRQcmVzZW50YXRpb24iLCJzZXRNdWx0aXBsZVdpdGhOb3JtYWxpemF0aW9uIiwic2VhcmNoSW5zdGFuY2VzQnlUZXh0IiwidGV4dCIsInBhdGhQcmVmaXgiLCJwYXRoc1RvU2VhcmNoIiwiY3VzdG9tTm9ybWFsaXplIiwicGF0aFByZWZpeGVzIiwicXVlcnlDb2xsZWN0aW9uIiwiY29sdW1ucyIsImdldERhdGFWZXJzaW9uIiwicHJpbnRFeGNlbCIsInBhdGhUb1RhYmxlIiwicmVzb2x2ZUlubmVyUGF0aCIsImV4Y2Vsc1RvUGFydGlhbEZ1ZnMiLCJpbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGgiLCJjaGVja0J5UG9wZCIsImdldERyYWZ0U2V0dGluZ3MiLCJzZXREcmFmdFNldHRpbmdzIiwic2V0dGluZ3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvRmFrZUNhbmR5QXBpQ2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tIFwiLi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBJQ29tYmluZUJ5VHJhbnNmZXJzIH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL0NvcmUvTW9kYWxNYW5hZ2VyL01vZGFscy9VcGxvYWRTZWN0aW9uL1R5cGVzXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZU1vZGVsUGF0aCB9IGZyb20gXCIuLi9Nb2RlbFBhdGgvTW9kZWxQYXRoXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgICBDaGVja1NjZW5hcmlvVHlwZSxcbiAgICBGdWZXaXRoQXR0YWNobWVudHNSZXNwb25zZSxcbiAgICBJQ2FuZHlBcGlDbGllbnQsXG4gICAgSUNhbmR5QXBpRHJhZnRDbGllbnQsXG4gICAgSUlubmVyQ2hhbmdlUmVzdWx0LFxuICAgIFBhdGhMb2FkU3BlY2lmaWNhdGlvbixcbiAgICBEcmFmdFNldHRpbmdzLFxufSBmcm9tIFwiLi9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB0eXBlIHsgU2VydmVyRXJyb3JMb2cgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJJbm5lclJlc3BvbnNlLCBTZXJ2ZXJKc29uUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJJbm5lclJlc3BvbnNlXCI7XG5pbXBvcnQge1xuICAgIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNSZXNwb25zZSxcbiAgICBGaWxlUHJvcGVydGllcyxcbiAgICBJbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGhSZXNwb25zZSxcbiAgICBTZXJ2ZXJFcnJvclJlc3BvbnNlLFxuICAgIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UsXG59IGZyb20gXCIuL1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgQ3JlYXRlRHJhZnRSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0NyZWF0ZURyYWZ0L0NyZWF0ZURyYWZ0UmVzcG9uc2VcIjtcbmltcG9ydCB7IENyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRXhwbGFuYXRvcnlOb3RlL0NyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlXCI7XG5pbXBvcnQgeyBEcmFmdEZ1bGxJZCB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0RnVsbElkXCI7XG5pbXBvcnQgeyBTZXJ2ZXJDaGFuZ2VTZXQgfSBmcm9tIFwiLi9UeXBlcy9DaGFuZ2VTZXQvU2VydmVyQ2hhbmdlU2V0XCI7XG5pbXBvcnQgeyBTZXJ2ZXJUYXNrLCBWZXJpZnlBbmRGaXhGbnNSZXF1aXJlbWVudHNUYXNrSW5mbyB9IGZyb20gXCIuL1R5cGVzL1Rhc2tzL1Rhc2tzXCI7XG5pbXBvcnQgeyBHZXRCeUlublJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRm9jdXMvRm9jdXNUeXBlc1wiO1xuaW1wb3J0IHsgQXR0YWNoSW5mbyB9IGZyb20gXCIuL1R5cGVzL0F0dGFjaG1lbnRzL0F0dGFjbWVudHNcIjtcbmltcG9ydCB7IERyYWZ0UHJlc2VudGF0aW9uVHlwZSB9IGZyb20gXCIuL1R5cGVzL1ByZXNlbnRhdGlvbnMvRHJhZnRQcmVzZW50YXRpb25UeXBlXCI7XG5pbXBvcnQgeyBDb252ZXJ0RHJhZnRSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvRHJhZnRBY3Rpb25zL0NvbnZlcnREcmFmdFJlcXVlc3RcIjtcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRlbnQgfSBmcm9tIFwiLi9UeXBlcy9QcmVzZW50YXRpb25zL1ByZXNlbnRhdGlvbkNvbnRlbnRcIjtcbmltcG9ydCB7IFNlcnZlclJlcXVpc2l0ZXNSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0dldElubmVyL1NlcnZlclJlcXVpc2l0ZXNSZXNwb25zZVwiO1xuaW1wb3J0IHsgQ29tYmluYXRvclR5cGUsIENvbWJpbmVGdWZSZXN1bHQsIEZ1ZkNvbWJpbmVNZXRob2QgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvQ29tYmluZUZ1ZlJlc3VsdFwiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdzUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9GZWF0dXJlRmxhZ3MvRmVhdHVyZUZsYWdzUmVzcG9uc2VcIjtcbmltcG9ydCB7IFNlcnZlckVycm9ycyB9IGZyb20gXCIuL0NhbmR5QXBpQ2xpZW50XCI7XG5pbXBvcnQgeyBJbXBvcnRFbXBsb3llZXNSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvU3RhZmYvSW1wb3J0RW1wbG95ZWVzUmVxdWVzdFwiO1xuaW1wb3J0IHsgTWFzc0FjdGlvblBhcmFtZXRlcnMgfSBmcm9tIFwiLi9UeXBlcy9NYXNzQWN0aW9ucy9NYXNzQWN0aW9uUGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgUHJpbnRUeXBlIH0gZnJvbSBcIi4vVHlwZXMvUHJpbnQvUHJpbnRUeXBlXCI7XG5pbXBvcnQgeyBQcmludFJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvUHJpbnQvUHJpbnRSZXNwb25zZVwiO1xuaW1wb3J0IHsgU2VydmVyUmF3UmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJSYXdSZXNwb25zZVwiO1xuaW1wb3J0IHsgQ2FuZHlQb3BkUHJvdG9jb2wgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9DYW5keVBvcGRQcm90b2NvbFwiO1xuaW1wb3J0IHsgSW5zdGFuY2VzRGVsZXRpbmdSdWxlIH0gZnJvbSBcIi4vVHlwZXMvSW5zdGFuY2VzRGVsZXRpbmcvSW5zdGFuY2VzRGVsZXRpbmdSdWxlXCI7XG5pbXBvcnQgeyBWYWx1ZUZvckluc3RhbmNlc1NldHRpbmdSdWxlIH0gZnJvbSBcIi4vVHlwZXMvTWFzc0FjdGlvbnMvVmFsdWVGb3JJbnN0YW5jZXNTZXR0aW5nUnVsZVwiO1xuaW1wb3J0IHsgQmFzZUdldEZ1ZlJlc3BvbnNlIH0gZnJvbSBcIi4vSUNhbmR5QXBpQ2xpZW50XCI7XG5pbXBvcnQgeyBJbm5lclF1ZXJ5UmVxdWVzdCB9IGZyb20gXCIuL1R5cGVzL1F1ZXJ5Q29sbGVjdG9uL0lubmVyUXVlcnlSZXF1ZXN0XCI7XG5pbXBvcnQgeyBJbm5lclF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9RdWVyeUNvbGxlY3Rvbi9Jbm5lclF1ZXJ5UmVzcG9uc2VcIjtcbmltcG9ydCB7IFJlc29sdmVJbm5lclBhdGhSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvRXJyb3JMb2cvUmVzb2x2ZUlubmVyUGF0aFJlcXVlc3RcIjtcbmltcG9ydCB7IFJlc29sdmVQYXRoUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9SZXNvbHZlUGF0aFJlc3BvbnNlXCI7XG5cbmV4cG9ydCBjbGFzcyBGYWtlQ2FuZHlBcGlDbGllbnQgaW1wbGVtZW50cyBJQ2FuZHlBcGlDbGllbnQge1xuICAgIHB1YmxpYyBnZXRBbGxHZnZzKGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0FsaXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlRHJhZnQobnM6IHN0cmluZywgZ2Z2OiB1bmRlZmluZWQsIGJvZHk6IEJ1ZmZlcik6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nIHwgdW5kZWZpbmVkLCBib2R5PzogQnVmZmVyKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvckRyYWZ0KGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZCk6IElDYW5keUFwaURyYWZ0Q2xpZW50IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWtlQ2FuZHlBcGlEcmFmdENsaWVudCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEcmFmdEZyb21Ecml2ZShcbiAgICAgICAgbnM6IHN0cmluZyxcbiAgICAgICAgZnVmRHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbFxuICAgICk6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVFbXB0eURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nLCBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluZm9CeUlubnMoZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkLCBpbm5zOiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8R2V0QnlJbm5SZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGZWF0dXJlRmxhZ3NXaXRob3V0UHJvbWlzZShmZWF0dXJlRmxhZ3M6IEZlYXR1cmVGbGFnc1Jlc3BvbnNlKTogRmVhdHVyZUZsYWdzUmVzcG9uc2Uge1xuICAgICAgICByZXR1cm4gZmVhdHVyZUZsYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGZWF0dXJlRmxhZ3MoKTogUHJvbWlzZTxGZWF0dXJlRmxhZ3NSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZTogRmVhdHVyZUZsYWdzUmVzcG9uc2UgPSB7IGNhbmR5VGVzdEZlYXR1cmU6IFwidHJ1ZVwiIH07XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZha2VDYW5keUFwaURyYWZ0Q2xpZW50IGltcGxlbWVudHMgSUNhbmR5QXBpRHJhZnRDbGllbnQge1xuICAgIHB1YmxpYyBkZWxldGVJbnN0YW5jZXMoZGVsZXRpbmdSdWxlczogSW5zdGFuY2VzRGVsZXRpbmdSdWxlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGdWZXaXRoQXR0YWNobWVudHMoKTogUHJvbWlzZTxGdWZXaXRoQXR0YWNobWVudHNSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVlcyhyZXF1ZXN0OiBJbXBvcnRFbXBsb3llZXNSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFydGlhbEZ1ZihydWxlczogc3RyaW5nW10pOiBQcm9taXNlPEJhc2VHZXRGdWZSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJ1bk1hc3NBY3Rpb24oYWN0aW9uSWQ6IHN0cmluZywgcGFyYW1ldGVycz86IE1hc3NBY3Rpb25QYXJhbWV0ZXJzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWNjZXB0VHJhbnNmZXJUeXBlKFxuICAgICAgICBmdWZEcml2ZVVyaTogc3RyaW5nLFxuICAgICAgICB0cmFuc2ZlclR5cGU6IHN0cmluZyxcbiAgICAgICAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbFxuICAgICk6IFByb21pc2U8U2VydmVyRXJyb3JSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFjY2VwdE11bHRpcGxlVHJhbnNmZXJUeXBlKFxuICAgICAgICBmaWxlczogSUNvbWJpbmVCeVRyYW5zZmVyc1tdLFxuICAgICAgICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsXG4gICAgKTogUHJvbWlzZTxTZXJ2ZXJFcnJvclJlc3BvbnNlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsVGFzayh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyRHJhZnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydERyYWZ0RnJvbVByZXZHZnYocmVxdWVzdDogQ29udmVydERyYWZ0UmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZU9yVXBkYXRlQXR0YWNobWVudHMoYXR0YWNobWVudHM6IHJlYWRvbmx5IEF0dGFjaEluZm9bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVucXVldWVUYXNrKHRhc2tJZDogc3RyaW5nLCB0YXNrSW5mbzogVmVyaWZ5QW5kRml4Rm5zUmVxdWlyZW1lbnRzVGFza0luZm8pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGxBdHRhY2htZW50cygpOiBQcm9taXNlPEF0dGFjaEluZm9bXT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWxsVGFza3MoKTogUHJvbWlzZTxTZXJ2ZXJUYXNrW10+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF0dGFjaG1lbnRCeUlkKGF0dGFjaG1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBdHRhY2hJbmZvPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURyYWZ0QXR0YWNobWVudChnZnY6IHN0cmluZywgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxBdHRhY2hJbmZvPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Mb2FkZWRBdHRhY2htZW50QXNEcmFmdChpZDogc3RyaW5nKTogUHJvbWlzZTxBdHRhY2hJbmZvPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVycm9yTG9nKCk6IFByb21pc2U8U2VydmVyRXJyb3JMb2c+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RXJyb3JMb2dXaXRoQ2hlY2tTY2VuYXJpb3MoY2hlY2tTY2VuYXJpb3M6IENoZWNrU2NlbmFyaW9UeXBlW10pOiBQcm9taXNlPFNlcnZlckVycm9yTG9nPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEV4cGVydEVycm9yTG9nKCk6IFByb21pc2U8U2VydmVyRXJyb3JMb2c+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwbGFuYXRvcnlOb3RlKCk6IFByb21pc2U8Q3JlYXRlRXhwbGFuYXRvcnlOb3RlUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJpbnQodHlwZTogUHJpbnRUeXBlLCBib2R5Pzogc3RyaW5nW10pOiBQcm9taXNlPFByaW50UmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVByb3BlcnRpZXMoXG4gICAgICAgIGRyaXZlVXJpOiBzdHJpbmcsXG4gICAgICAgIGlnbm9yZVNpemVDaGVjaz86IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgICApOiBQcm9taXNlPEZpbGVQcm9wZXJ0aWVzIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJlcGFyZUFuZEdldEZpbGVQcm9wZXJ0aWVzKGRyaXZlVXJpOiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxGaWxlUHJvcGVydGllcyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwbG9hZEFuZEdldEZpbGVQcm9wZXJ0aWVzKFxuICAgICAgICBkcml2ZVVyaXM6IHN0cmluZ1tdLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbFxuICAgICk6IFByb21pc2U8VXBsb2FkRmlsZVByb3BlcnRpZXNSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHNlcnZlckVycm9yOiBTZXJ2ZXJFcnJvcnMuVW5rbm93bkVycm9yLFxuICAgICAgICAgICAgc291cmNlc1RvdGFsQ291bnQ6IDAsXG4gICAgICAgICAgICBpbnZhbGlkU291cmNlRHJpdmVDb250ZW50TmFtZXM6IFwiXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmRG93bmxvYWRGdWYoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZEb3dubG9hZElubmVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Db252ZXJ0YXRpb25Mb2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Rvd25sb2FkQ2xpZW50SW5mbygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRG93bmxvYWRGb3Jtc0NsaWVudEluZm8oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Rvd25sb2FkSW5uZXJGdWYoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0Vycm9yTG9nUGRmKGVycm9yTG9nTmFtZTogc3RyaW5nLCBwcm9wc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Jbm5lckVkaXRvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0UmVxdWlzaXRlcyhyZXF1aXNpdGVMaXN0OiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8U2VydmVyUmVxdWlzaXRlc1Jlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0SW5uZXIocGF0aHM6IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxTZXJ2ZXJJbm5lclJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFydGlhbElubmVyKFxuICAgICAgICBydWxlczogcmVhZG9ubHkgUGF0aExvYWRTcGVjaWZpY2F0aW9uW10sXG4gICAgICAgIG1heEluc3RhbmNlQ291bnQ/OiBudW1iZXJcbiAgICApOiBQcm9taXNlPFNlcnZlcklubmVyUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFydGlhbElubmVyQXNKc29uVHJlZShcbiAgICAgICAgcnVsZXM6IHJlYWRvbmx5IFBhdGhMb2FkU3BlY2lmaWNhdGlvbltdLFxuICAgICAgICBtYXhJbnN0YW5jZUNvdW50PzogbnVtYmVyXG4gICAgKTogUHJvbWlzZTxTZXJ2ZXJKc29uUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmF3UGFydGlhbElubmVyQXNKc29uVHJlZShcbiAgICAgICAgcnVsZXM6IHJlYWRvbmx5IFBhdGhMb2FkU3BlY2lmaWNhdGlvbltdLFxuICAgICAgICBtYXhJbnN0YW5jZUNvdW50PzogbnVtYmVyXG4gICAgKTogUHJvbWlzZTxTZXJ2ZXJSYXdSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUYXNrQnlJZCh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8U2VydmVyVGFzayB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZUJ5UnVsZXMocnVsZXM6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoUHJlc2VudGF0aW9uKHR5cGU6IERyYWZ0UHJlc2VudGF0aW9uVHlwZSwgY29udGVudDogUHJlc2VudGF0aW9uQ29udGVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRJZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VuZENoYW5nZVNldChkYXRhOiBTZXJ2ZXJDaGFuZ2VTZXQsIGN1cnJlbnREYXRhVmVyc2lvbjogbnVtYmVyKTogUHJvbWlzZTxJSW5uZXJDaGFuZ2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGRhdGFWZXJzaW9uOiAwIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZW5kQ2hhbmdlV2l0aE5vcm1hbGl6YXRpb25TZXQoXG4gICAgICAgIGRhdGE6IFNlcnZlckNoYW5nZVNldCxcbiAgICAgICAgY3VycmVudERhdGFWZXJzaW9uOiBudW1iZXIsXG4gICAgICAgIG5vcm1hbGl6ZXJJZD86IHN0cmluZ1xuICAgICk6IFByb21pc2U8SUlubmVyQ2hhbmdlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBkYXRhVmVyc2lvbjogMCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VuZENoYW5nZVNldFN5bmMoZGF0YTogU2VydmVyQ2hhbmdlU2V0LCBjdXJyZW50RGF0YVZlcnNpb246IG51bWJlcik6IElJbm5lckNoYW5nZVJlc3VsdCB7XG4gICAgICAgIHJldHVybiAyMDA7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZ1ZkJ5RHJpdmVVcmkoZHJpdmVVcmk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbWJpbmVGdWZCeURyaXZlVXJpKFxuICAgICAgICBkcml2ZVVyaTogc3RyaW5nLFxuICAgICAgICBjb21iaW5lTWV0aG9kOiBGdWZDb21iaW5lTWV0aG9kXG4gICAgKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbXVsdGlwbGVDb21iaW5lRnVmQnlEcml2ZVVyaShcbiAgICAgICAgZHJpdmVVcmlzOiBzdHJpbmdbXSxcbiAgICAgICAgY29tYmluZU1ldGhvZDogRnVmQ29tYmluZU1ldGhvZFxuICAgICk6IFByb21pc2U8Q29tYmluZUZ1ZlJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydFhtbHMoXG4gICAgICAgIGRyaXZlVXJpczogc3RyaW5nW10sXG4gICAgICAgIGNvbWJpbmVNZXRob2Q6IEZ1ZkNvbWJpbmVNZXRob2QsXG4gICAgICAgIGNvbWJpbmF0b3JUeXBlOiBDb21iaW5hdG9yVHlwZSxcbiAgICAgICAgaXNJbXBvcnRCeUZ1ZjogYm9vbGVhblxuICAgICk6IFByb21pc2U8Q29tYmluZUZ1ZlJlc3VsdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFByZXNlbnRhdGlvbih0eXBlOiBEcmFmdFByZXNlbnRhdGlvblR5cGUsIGNvbnRlbnQ6IHN0cmluZyB8IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRNdWx0aXBsZVdpdGhOb3JtYWxpemF0aW9uKHJ1bGVzOiBWYWx1ZUZvckluc3RhbmNlc1NldHRpbmdSdWxlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hJbnN0YW5jZXNCeVRleHQoXG4gICAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgICAgcGF0aFByZWZpeDogc3RyaW5nLFxuICAgICAgICBwYXRoc1RvU2VhcmNoOiBzdHJpbmdbXSxcbiAgICAgICAgbWF4SW5zdGFuY2VDb3VudD86IG51bWJlclxuICAgICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGN1c3RvbU5vcm1hbGl6ZShcbiAgICAgICAgbm9ybWFsaXplcklkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwYXRoUHJlZml4ZXM6IEFic29sdXRlTW9kZWxQYXRoW11cbiAgICApOiBQcm9taXNlPElJbm5lckNoYW5nZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDIwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5Q29sbGVjdGlvbihyZXF1ZXN0OiBJbm5lclF1ZXJ5UmVxdWVzdCwgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8SW5uZXJRdWVyeVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiBbXSwgY29sdW1uczogW10gfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGFWZXJzaW9uKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByaW50RXhjZWwocGF0aFRvVGFibGU6IHN0cmluZyk6IFByb21pc2U8UHJpbnRSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlSW5uZXJQYXRoKHJlcXVlc3Q6IFJlc29sdmVJbm5lclBhdGhSZXF1ZXN0LCBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNvbHZlUGF0aFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4Y2Vsc1RvUGFydGlhbEZ1ZnMoXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBwYXRoVG9UYWJsZTogc3RyaW5nLFxuICAgICAgICBkcml2ZVVyaXM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxFeGNlbHNUb1BhcnRpYWxGdWZzUmVzcG9uc2UgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0RnJvbVBhcnRpYWxGdWZzQnlQYXRoKFxuICAgICAgICBwYXRoVG9UYWJsZTogc3RyaW5nLFxuICAgICAgICBkcml2ZVVyaTogc3RyaW5nW10sXG4gICAgICAgIGNvbWJpbmVNZXRob2Q6IHN0cmluZ1xuICAgICk6IFByb21pc2U8SW1wb3J0RnJvbVBhcnRpYWxGdWZzQnlQYXRoUmVzcG9uc2UgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tCeVBvcGQoKTogUHJvbWlzZTxDYW5keVBvcGRQcm90b2NvbD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREcmFmdFNldHRpbmdzKCk6IFByb21pc2U8RHJhZnRTZXR0aW5ncz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREcmFmdFNldHRpbmdzKHNldHRpbmdzOiBEcmFmdFNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQW1DQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFlTyxNQUFNRSxrQkFBa0IsQ0FBNEI7RUFDaERDLFVBQVVBLENBQUNDLFdBQXlCLEVBQXFCO0lBQzVELE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQztFQUM5QjtFQUVPQyxVQUFVQSxDQUFBLEVBQWtCO0lBQy9CLE9BQU9GLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDRSxTQUFTLENBQUM7RUFDckM7RUFJT0MsV0FBV0EsQ0FBQ0MsRUFBVSxFQUFFQyxHQUF1QixFQUFFQyxJQUFhLEVBQWdDO0lBQ2pHLE1BQU0sSUFBSUMsMkJBQW1CLENBQUMsQ0FBQztFQUNuQztFQUVPQyxRQUFRQSxDQUFDQyxXQUF3QixFQUF3QjtJQUM1RCxPQUFPLElBQUlDLHVCQUF1QixDQUFDLENBQUM7RUFDeEM7RUFFT0Msb0JBQW9CQSxDQUN2QlAsRUFBVSxFQUNWUSxXQUFtQixFQUNuQmQsV0FBeUIsRUFDRztJQUM1QixNQUFNLElBQUlTLDJCQUFtQixDQUFDLENBQUM7RUFDbkM7RUFFT00sZ0JBQWdCQSxDQUFDVCxFQUFVLEVBQUVDLEdBQVcsRUFBRVAsV0FBeUIsRUFBZ0M7SUFDdEcsTUFBTSxJQUFJUywyQkFBbUIsQ0FBQyxDQUFDO0VBQ25DO0VBRU9PLGFBQWFBLENBQUNMLFdBQXdCLEVBQUVNLElBQXVCLEVBQTZCO0lBQy9GLE1BQU0sSUFBSVIsMkJBQW1CLENBQUMsQ0FBQztFQUNuQztFQUVPUyw2QkFBNkJBLENBQUNDLFlBQWtD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
248
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3JzIiwicmVxdWlyZSIsIl9DYW5keUFwaUNsaWVudCIsIkZha2VDYW5keUFwaUNsaWVudCIsImdldEFsbEdmdnMiLCJhYm9ydFNpZ25hbCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2hlY2tBbGl2ZSIsInVuZGVmaW5lZCIsImNyZWF0ZURyYWZ0IiwibnMiLCJnZnYiLCJib2R5IiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImZvckRyYWZ0IiwiZHJhZnRGdWxsSWQiLCJGYWtlQ2FuZHlBcGlEcmFmdENsaWVudCIsImNyZWF0ZURyYWZ0RnJvbURyaXZlIiwiZnVmRHJpdmVVcmkiLCJjcmVhdGVFbXB0eURyYWZ0IiwiZ2V0SW5mb0J5SW5ucyIsImlubnMiLCJnZXRGZWF0dXJlRmxhZ3NXaXRob3V0UHJvbWlzZSIsImZlYXR1cmVGbGFncyIsImdldEZlYXR1cmVGbGFncyIsInJlc3BvbnNlIiwiY2FuZHlUZXN0RmVhdHVyZSIsImV4cG9ydHMiLCJkZWxldGVJbnN0YW5jZXMiLCJkZWxldGluZ1J1bGVzIiwiZ2V0SW5uZXJGdWYiLCJnZXRGdWZXaXRoQXR0YWNobWVudHMiLCJpbXBvcnRFbXBsb3llZXMiLCJyZXF1ZXN0IiwiZ2V0UGFydGlhbEZ1ZiIsInJ1bGVzIiwicnVuTWFzc0FjdGlvbiIsImFjdGlvbklkIiwicGFyYW1ldGVycyIsImFjY2VwdFRyYW5zZmVyVHlwZSIsInRyYW5zZmVyVHlwZSIsImFjY2VwdE11bHRpcGxlVHJhbnNmZXJUeXBlIiwiZmlsZXMiLCJjYW5jZWxUYXNrIiwidGFza0lkIiwiY2xlYXJEcmFmdCIsImNvbnZlcnREcmFmdEZyb21QcmV2R2Z2IiwiY3JlYXRlT3JVcGRhdGVBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiZW5xdWV1ZVRhc2siLCJ0YXNrSW5mbyIsImdldEFsbEF0dGFjaG1lbnRzIiwiZ2V0QWxsVGFza3MiLCJnZXRBdHRhY2htZW50QnlJZCIsImF0dGFjaG1lbnRJZCIsImNyZWF0ZURyYWZ0QXR0YWNobWVudCIsInBhdGgiLCJvcGVuTG9hZGVkQXR0YWNobWVudEFzRHJhZnQiLCJpZCIsImdldEVycm9yTG9nIiwiZ2V0RXJyb3JMb2dXaXRoQ2hlY2tTY2VuYXJpb3MiLCJjaGVja1NjZW5hcmlvcyIsImdldEV4cGVydEVycm9yTG9nIiwiZ2V0RXhwbGFuYXRvcnlOb3RlIiwicHJpbnQiLCJ0eXBlIiwiZ2V0RmlsZVByb3BlcnRpZXMiLCJkcml2ZVVyaSIsImlnbm9yZVNpemVDaGVjayIsInByZXBhcmVBbmRHZXRGaWxlUHJvcGVydGllcyIsInVwbG9hZEFuZEdldEZpbGVQcm9wZXJ0aWVzIiwiZHJpdmVVcmlzIiwic2VydmVyRXJyb3IiLCJTZXJ2ZXJFcnJvcnMiLCJVbmtub3duRXJyb3IiLCJzb3VyY2VzVG90YWxDb3VudCIsImludmFsaWRTb3VyY2VEcml2ZUNvbnRlbnROYW1lcyIsImdldEhyZWZEb3dubG9hZEZ1ZiIsImdldEhyZWZEb3dubG9hZElubmVyIiwiZ2V0SHJlZlRvQ29udmVydGF0aW9uTG9nIiwiZ2V0SHJlZlRvRG93bmxvYWRDbGllbnRJbmZvIiwiZ2V0SHJlZlRvRG93bmxvYWRGb3Jtc0NsaWVudEluZm8iLCJnZXRIcmVmVG9Eb3dubG9hZElubmVyRnVmIiwiZ2V0SHJlZlRvRXJyb3JMb2dQZGYiLCJlcnJvckxvZ05hbWUiLCJwcm9wc05hbWUiLCJnZXRIcmVmVG9Jbm5lckVkaXRvciIsImdldFJlcXVpc2l0ZXMiLCJyZXF1aXNpdGVMaXN0IiwiZ2V0SW5uZXIiLCJwYXRocyIsImdldFBhcnRpYWxJbm5lciIsIm1heEluc3RhbmNlQ291bnQiLCJnZXRQYXJ0aWFsSW5uZXJBc0pzb25UcmVlIiwiZ2V0UmF3UGFydGlhbElubmVyQXNKc29uVHJlZSIsImdldFRhc2tCeUlkIiwibm9ybWFsaXplQnlSdWxlcyIsInBhdGNoUHJlc2VudGF0aW9uIiwiY29udGVudCIsInJlbW92ZUF0dGFjaG1lbnRzIiwiYXR0YWNobWVudElkcyIsInNlbmRDaGFuZ2VTZXQiLCJkYXRhIiwiY3VycmVudERhdGFWZXJzaW9uIiwiZGF0YVZlcnNpb24iLCJzZW5kQ2hhbmdlV2l0aE5vcm1hbGl6YXRpb25TZXQiLCJub3JtYWxpemVySWQiLCJzZW5kQ2hhbmdlU2V0U3luYyIsInNldEZ1ZkJ5RHJpdmVVcmkiLCJjb21iaW5lRnVmQnlEcml2ZVVyaSIsImNvbWJpbmVNZXRob2QiLCJtdWx0aXBsZUNvbWJpbmVGdWZCeURyaXZlVXJpIiwiaW1wb3J0WG1scyIsImNvbWJpbmF0b3JUeXBlIiwiaXNJbXBvcnRCeUZ1ZiIsInNldFByZXNlbnRhdGlvbiIsInNldE11bHRpcGxlV2l0aE5vcm1hbGl6YXRpb24iLCJub3JtYWxpemVEaXJ0eU1hc2tzIiwic2VhcmNoSW5zdGFuY2VzQnlUZXh0IiwidGV4dCIsInBhdGhQcmVmaXgiLCJwYXRoc1RvU2VhcmNoIiwiY3VzdG9tTm9ybWFsaXplIiwicGF0aFByZWZpeGVzIiwicXVlcnlDb2xsZWN0aW9uIiwiY29sdW1ucyIsImdldERhdGFWZXJzaW9uIiwicHJpbnRFeGNlbCIsInBhdGhUb1RhYmxlIiwicmVzb2x2ZUlubmVyUGF0aCIsImV4Y2Vsc1RvUGFydGlhbEZ1ZnMiLCJpbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGgiLCJjaGVja0J5UG9wZCIsImdldERyYWZ0U2V0dGluZ3MiLCJzZXREcmFmdFNldHRpbmdzIiwic2V0dGluZ3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvRmFrZUNhbmR5QXBpQ2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEltcGxlbWVudGVkRXJyb3IgfSBmcm9tIFwiLi4vRXJyb3JzXCI7XG5pbXBvcnQgeyBJQ29tYmluZUJ5VHJhbnNmZXJzIH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL0NvcmUvTW9kYWxNYW5hZ2VyL01vZGFscy9VcGxvYWRTZWN0aW9uL1R5cGVzXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZU1vZGVsUGF0aCB9IGZyb20gXCIuLi9Nb2RlbFBhdGgvTW9kZWxQYXRoXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgICBDaGVja1NjZW5hcmlvVHlwZSxcbiAgICBGdWZXaXRoQXR0YWNobWVudHNSZXNwb25zZSxcbiAgICBJQ2FuZHlBcGlDbGllbnQsXG4gICAgSUNhbmR5QXBpRHJhZnRDbGllbnQsXG4gICAgSUlubmVyQ2hhbmdlUmVzdWx0LFxuICAgIFBhdGhMb2FkU3BlY2lmaWNhdGlvbixcbiAgICBEcmFmdFNldHRpbmdzLFxufSBmcm9tIFwiLi9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB0eXBlIHsgU2VydmVyRXJyb3JMb2cgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJJbm5lclJlc3BvbnNlLCBTZXJ2ZXJKc29uUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJJbm5lclJlc3BvbnNlXCI7XG5pbXBvcnQge1xuICAgIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNSZXNwb25zZSxcbiAgICBGaWxlUHJvcGVydGllcyxcbiAgICBJbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGhSZXNwb25zZSxcbiAgICBTZXJ2ZXJFcnJvclJlc3BvbnNlLFxuICAgIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UsXG59IGZyb20gXCIuL1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllc1wiO1xuaW1wb3J0IHsgQ3JlYXRlRHJhZnRSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0NyZWF0ZURyYWZ0L0NyZWF0ZURyYWZ0UmVzcG9uc2VcIjtcbmltcG9ydCB7IENyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRXhwbGFuYXRvcnlOb3RlL0NyZWF0ZUV4cGxhbmF0b3J5Tm90ZVJlc3BvbnNlXCI7XG5pbXBvcnQgeyBEcmFmdEZ1bGxJZCB9IGZyb20gXCIuL1R5cGVzL0RyYWZ0RnVsbElkXCI7XG5pbXBvcnQgeyBTZXJ2ZXJDaGFuZ2VTZXQgfSBmcm9tIFwiLi9UeXBlcy9DaGFuZ2VTZXQvU2VydmVyQ2hhbmdlU2V0XCI7XG5pbXBvcnQgeyBTZXJ2ZXJUYXNrLCBWZXJpZnlBbmRGaXhGbnNSZXF1aXJlbWVudHNUYXNrSW5mbyB9IGZyb20gXCIuL1R5cGVzL1Rhc2tzL1Rhc2tzXCI7XG5pbXBvcnQgeyBHZXRCeUlublJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvRm9jdXMvRm9jdXNUeXBlc1wiO1xuaW1wb3J0IHsgQXR0YWNoSW5mbyB9IGZyb20gXCIuL1R5cGVzL0F0dGFjaG1lbnRzL0F0dGFjbWVudHNcIjtcbmltcG9ydCB7IERyYWZ0UHJlc2VudGF0aW9uVHlwZSB9IGZyb20gXCIuL1R5cGVzL1ByZXNlbnRhdGlvbnMvRHJhZnRQcmVzZW50YXRpb25UeXBlXCI7XG5pbXBvcnQgeyBDb252ZXJ0RHJhZnRSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvRHJhZnRBY3Rpb25zL0NvbnZlcnREcmFmdFJlcXVlc3RcIjtcbmltcG9ydCB7IFByZXNlbnRhdGlvbkNvbnRlbnQgfSBmcm9tIFwiLi9UeXBlcy9QcmVzZW50YXRpb25zL1ByZXNlbnRhdGlvbkNvbnRlbnRcIjtcbmltcG9ydCB7IFNlcnZlclJlcXVpc2l0ZXNSZXNwb25zZSB9IGZyb20gXCIuL1R5cGVzL0dldElubmVyL1NlcnZlclJlcXVpc2l0ZXNSZXNwb25zZVwiO1xuaW1wb3J0IHsgQ29tYmluYXRvclR5cGUsIENvbWJpbmVGdWZSZXN1bHQsIEZ1ZkNvbWJpbmVNZXRob2QgfSBmcm9tIFwiLi9UeXBlcy9EcmFmdEFjdGlvbnMvQ29tYmluZUZ1ZlJlc3VsdFwiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdzUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9GZWF0dXJlRmxhZ3MvRmVhdHVyZUZsYWdzUmVzcG9uc2VcIjtcbmltcG9ydCB7IFNlcnZlckVycm9ycyB9IGZyb20gXCIuL0NhbmR5QXBpQ2xpZW50XCI7XG5pbXBvcnQgeyBJbXBvcnRFbXBsb3llZXNSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvU3RhZmYvSW1wb3J0RW1wbG95ZWVzUmVxdWVzdFwiO1xuaW1wb3J0IHsgTWFzc0FjdGlvblBhcmFtZXRlcnMgfSBmcm9tIFwiLi9UeXBlcy9NYXNzQWN0aW9ucy9NYXNzQWN0aW9uUGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgUHJpbnRUeXBlIH0gZnJvbSBcIi4vVHlwZXMvUHJpbnQvUHJpbnRUeXBlXCI7XG5pbXBvcnQgeyBQcmludFJlc3BvbnNlIH0gZnJvbSBcIi4vVHlwZXMvUHJpbnQvUHJpbnRSZXNwb25zZVwiO1xuaW1wb3J0IHsgU2VydmVyUmF3UmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9HZXRJbm5lci9TZXJ2ZXJSYXdSZXNwb25zZVwiO1xuaW1wb3J0IHsgQ2FuZHlQb3BkUHJvdG9jb2wgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9DYW5keVBvcGRQcm90b2NvbFwiO1xuaW1wb3J0IHsgSW5zdGFuY2VzRGVsZXRpbmdSdWxlIH0gZnJvbSBcIi4vVHlwZXMvSW5zdGFuY2VzRGVsZXRpbmcvSW5zdGFuY2VzRGVsZXRpbmdSdWxlXCI7XG5pbXBvcnQgeyBWYWx1ZUZvckluc3RhbmNlc1NldHRpbmdSdWxlIH0gZnJvbSBcIi4vVHlwZXMvTWFzc0FjdGlvbnMvVmFsdWVGb3JJbnN0YW5jZXNTZXR0aW5nUnVsZVwiO1xuaW1wb3J0IHsgQmFzZUdldEZ1ZlJlc3BvbnNlIH0gZnJvbSBcIi4vSUNhbmR5QXBpQ2xpZW50XCI7XG5pbXBvcnQgeyBJbm5lclF1ZXJ5UmVxdWVzdCB9IGZyb20gXCIuL1R5cGVzL1F1ZXJ5Q29sbGVjdG9uL0lubmVyUXVlcnlSZXF1ZXN0XCI7XG5pbXBvcnQgeyBJbm5lclF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9RdWVyeUNvbGxlY3Rvbi9Jbm5lclF1ZXJ5UmVzcG9uc2VcIjtcbmltcG9ydCB7IFJlc29sdmVJbm5lclBhdGhSZXF1ZXN0IH0gZnJvbSBcIi4vVHlwZXMvRXJyb3JMb2cvUmVzb2x2ZUlubmVyUGF0aFJlcXVlc3RcIjtcbmltcG9ydCB7IFJlc29sdmVQYXRoUmVzcG9uc2UgfSBmcm9tIFwiLi9UeXBlcy9FcnJvckxvZy9SZXNvbHZlUGF0aFJlc3BvbnNlXCI7XG5cbmV4cG9ydCBjbGFzcyBGYWtlQ2FuZHlBcGlDbGllbnQgaW1wbGVtZW50cyBJQ2FuZHlBcGlDbGllbnQge1xuICAgIHB1YmxpYyBnZXRBbGxHZnZzKGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0FsaXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPjtcbiAgICBwdWJsaWMgY3JlYXRlRHJhZnQobnM6IHN0cmluZywgZ2Z2OiB1bmRlZmluZWQsIGJvZHk6IEJ1ZmZlcik6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT47XG4gICAgcHVibGljIGNyZWF0ZURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nIHwgdW5kZWZpbmVkLCBib2R5PzogQnVmZmVyKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvckRyYWZ0KGRyYWZ0RnVsbElkOiBEcmFmdEZ1bGxJZCk6IElDYW5keUFwaURyYWZ0Q2xpZW50IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWtlQ2FuZHlBcGlEcmFmdENsaWVudCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEcmFmdEZyb21Ecml2ZShcbiAgICAgICAgbnM6IHN0cmluZyxcbiAgICAgICAgZnVmRHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbFxuICAgICk6IFByb21pc2U8Q3JlYXRlRHJhZnRSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVFbXB0eURyYWZ0KG5zOiBzdHJpbmcsIGdmdjogc3RyaW5nLCBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxDcmVhdGVEcmFmdFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluZm9CeUlubnMoZHJhZnRGdWxsSWQ6IERyYWZ0RnVsbElkLCBpbm5zOiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8R2V0QnlJbm5SZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGZWF0dXJlRmxhZ3NXaXRob3V0UHJvbWlzZShmZWF0dXJlRmxhZ3M6IEZlYXR1cmVGbGFnc1Jlc3BvbnNlKTogRmVhdHVyZUZsYWdzUmVzcG9uc2Uge1xuICAgICAgICByZXR1cm4gZmVhdHVyZUZsYWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGZWF0dXJlRmxhZ3MoKTogUHJvbWlzZTxGZWF0dXJlRmxhZ3NSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZTogRmVhdHVyZUZsYWdzUmVzcG9uc2UgPSB7IGNhbmR5VGVzdEZlYXR1cmU6IFwidHJ1ZVwiIH07XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZha2VDYW5keUFwaURyYWZ0Q2xpZW50IGltcGxlbWVudHMgSUNhbmR5QXBpRHJhZnRDbGllbnQge1xuICAgIHB1YmxpYyBkZWxldGVJbnN0YW5jZXMoZGVsZXRpbmdSdWxlczogSW5zdGFuY2VzRGVsZXRpbmdSdWxlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbm5lckZ1ZigpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZ1ZldpdGhBdHRhY2htZW50cygpOiBQcm9taXNlPEZ1ZldpdGhBdHRhY2htZW50c1Jlc3BvbnNlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0RW1wbG95ZWVzKHJlcXVlc3Q6IEltcG9ydEVtcGxveWVlc1JlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJ0aWFsRnVmKHJ1bGVzOiBzdHJpbmdbXSk6IFByb21pc2U8QmFzZUdldEZ1ZlJlc3BvbnNlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcnVuTWFzc0FjdGlvbihhY3Rpb25JZDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogTWFzc0FjdGlvblBhcmFtZXRlcnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhY2NlcHRUcmFuc2ZlclR5cGUoXG4gICAgICAgIGZ1ZkRyaXZlVXJpOiBzdHJpbmcsXG4gICAgICAgIHRyYW5zZmVyVHlwZTogc3RyaW5nLFxuICAgICAgICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsXG4gICAgKTogUHJvbWlzZTxTZXJ2ZXJFcnJvclJlc3BvbnNlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWNjZXB0TXVsdGlwbGVUcmFuc2ZlclR5cGUoXG4gICAgICAgIGZpbGVzOiBJQ29tYmluZUJ5VHJhbnNmZXJzW10sXG4gICAgICAgIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWxcbiAgICApOiBQcm9taXNlPFNlcnZlckVycm9yUmVzcG9uc2UgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWxUYXNrKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJEcmFmdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0RHJhZnRGcm9tUHJldkdmdihyZXF1ZXN0OiBDb252ZXJ0RHJhZnRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlT3JVcGRhdGVBdHRhY2htZW50cyhhdHRhY2htZW50czogcmVhZG9ubHkgQXR0YWNoSW5mb1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5xdWV1ZVRhc2sodGFza0lkOiBzdHJpbmcsIHRhc2tJbmZvOiBWZXJpZnlBbmRGaXhGbnNSZXF1aXJlbWVudHNUYXNrSW5mbyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFsbEF0dGFjaG1lbnRzKCk6IFByb21pc2U8QXR0YWNoSW5mb1tdPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGxUYXNrcygpOiBQcm9taXNlPFNlcnZlclRhc2tbXT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0YWNobWVudEJ5SWQoYXR0YWNobWVudElkOiBzdHJpbmcpOiBQcm9taXNlPEF0dGFjaEluZm8+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRHJhZnRBdHRhY2htZW50KGdmdjogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEF0dGFjaEluZm8+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkxvYWRlZEF0dGFjaG1lbnRBc0RyYWZ0KGlkOiBzdHJpbmcpOiBQcm9taXNlPEF0dGFjaEluZm8+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXJyb3JMb2coKTogUHJvbWlzZTxTZXJ2ZXJFcnJvckxvZz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRFcnJvckxvZ1dpdGhDaGVja1NjZW5hcmlvcyhjaGVja1NjZW5hcmlvczogQ2hlY2tTY2VuYXJpb1R5cGVbXSk6IFByb21pc2U8U2VydmVyRXJyb3JMb2c+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwZXJ0RXJyb3JMb2coKTogUHJvbWlzZTxTZXJ2ZXJFcnJvckxvZz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFeHBsYW5hdG9yeU5vdGUoKTogUHJvbWlzZTxDcmVhdGVFeHBsYW5hdG9yeU5vdGVSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmludCh0eXBlOiBQcmludFR5cGUsIGJvZHk/OiBzdHJpbmdbXSk6IFByb21pc2U8UHJpbnRSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWxlUHJvcGVydGllcyhcbiAgICAgICAgZHJpdmVVcmk6IHN0cmluZyxcbiAgICAgICAgaWdub3JlU2l6ZUNoZWNrPzogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICAgICk6IFByb21pc2U8RmlsZVByb3BlcnRpZXMgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmVwYXJlQW5kR2V0RmlsZVByb3BlcnRpZXMoZHJpdmVVcmk6IHN0cmluZywgZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVQcm9wZXJ0aWVzIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBsb2FkQW5kR2V0RmlsZVByb3BlcnRpZXMoXG4gICAgICAgIGRyaXZlVXJpczogc3RyaW5nW10sXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsXG4gICAgKTogUHJvbWlzZTxVcGxvYWRGaWxlUHJvcGVydGllc1Jlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgc2VydmVyRXJyb3I6IFNlcnZlckVycm9ycy5Vbmtub3duRXJyb3IsXG4gICAgICAgICAgICBzb3VyY2VzVG90YWxDb3VudDogMCxcbiAgICAgICAgICAgIGludmFsaWRTb3VyY2VEcml2ZUNvbnRlbnROYW1lczogXCJcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZEb3dubG9hZEZ1ZigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZkRvd25sb2FkSW5uZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0NvbnZlcnRhdGlvbkxvZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRG93bmxvYWRDbGllbnRJbmZvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIcmVmVG9Eb3dubG9hZEZvcm1zQ2xpZW50SW5mbygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRG93bmxvYWRJbm5lckZ1ZigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHJlZlRvRXJyb3JMb2dQZGYoZXJyb3JMb2dOYW1lOiBzdHJpbmcsIHByb3BzTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhyZWZUb0lubmVyRWRpdG9yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRSZXF1aXNpdGVzKHJlcXVpc2l0ZUxpc3Q6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTxTZXJ2ZXJSZXF1aXNpdGVzUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRJbm5lcihwYXRoczogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQpOiBQcm9taXNlPFNlcnZlcklubmVyUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJ0aWFsSW5uZXIoXG4gICAgICAgIHJ1bGVzOiByZWFkb25seSBQYXRoTG9hZFNwZWNpZmljYXRpb25bXSxcbiAgICAgICAgbWF4SW5zdGFuY2VDb3VudD86IG51bWJlclxuICAgICk6IFByb21pc2U8U2VydmVySW5uZXJSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJ0aWFsSW5uZXJBc0pzb25UcmVlKFxuICAgICAgICBydWxlczogcmVhZG9ubHkgUGF0aExvYWRTcGVjaWZpY2F0aW9uW10sXG4gICAgICAgIG1heEluc3RhbmNlQ291bnQ/OiBudW1iZXJcbiAgICApOiBQcm9taXNlPFNlcnZlckpzb25SZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYXdQYXJ0aWFsSW5uZXJBc0pzb25UcmVlKFxuICAgICAgICBydWxlczogcmVhZG9ubHkgUGF0aExvYWRTcGVjaWZpY2F0aW9uW10sXG4gICAgICAgIG1heEluc3RhbmNlQ291bnQ/OiBudW1iZXJcbiAgICApOiBQcm9taXNlPFNlcnZlclJhd1Jlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRhc2tCeUlkKHRhc2tJZDogc3RyaW5nKTogUHJvbWlzZTxTZXJ2ZXJUYXNrIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm9ybWFsaXplQnlSdWxlcyhydWxlczogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hQcmVzZW50YXRpb24odHlwZTogRHJhZnRQcmVzZW50YXRpb25UeXBlLCBjb250ZW50OiBQcmVzZW50YXRpb25Db250ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQXR0YWNobWVudHMoYXR0YWNobWVudElkczogcmVhZG9ubHkgc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZW5kQ2hhbmdlU2V0KGRhdGE6IFNlcnZlckNoYW5nZVNldCwgY3VycmVudERhdGFWZXJzaW9uOiBudW1iZXIpOiBQcm9taXNlPElJbm5lckNoYW5nZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgZGF0YVZlcnNpb246IDAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbmRDaGFuZ2VXaXRoTm9ybWFsaXphdGlvblNldChcbiAgICAgICAgZGF0YTogU2VydmVyQ2hhbmdlU2V0LFxuICAgICAgICBjdXJyZW50RGF0YVZlcnNpb246IG51bWJlcixcbiAgICAgICAgbm9ybWFsaXplcklkPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxJSW5uZXJDaGFuZ2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IGRhdGFWZXJzaW9uOiAwIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kQ2hhbmdlU2V0U3luYyhkYXRhOiBTZXJ2ZXJDaGFuZ2VTZXQsIGN1cnJlbnREYXRhVmVyc2lvbjogbnVtYmVyKTogSUlubmVyQ2hhbmdlUmVzdWx0IHtcbiAgICAgICAgcmV0dXJuIDIwMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RnVmQnlEcml2ZVVyaShkcml2ZVVyaTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tYmluZUZ1ZkJ5RHJpdmVVcmkoXG4gICAgICAgIGRyaXZlVXJpOiBzdHJpbmcsXG4gICAgICAgIGNvbWJpbmVNZXRob2Q6IEZ1ZkNvbWJpbmVNZXRob2RcbiAgICApOiBQcm9taXNlPENvbWJpbmVGdWZSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtdWx0aXBsZUNvbWJpbmVGdWZCeURyaXZlVXJpKFxuICAgICAgICBkcml2ZVVyaXM6IHN0cmluZ1tdLFxuICAgICAgICBjb21iaW5lTWV0aG9kOiBGdWZDb21iaW5lTWV0aG9kXG4gICAgKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0WG1scyhcbiAgICAgICAgZHJpdmVVcmlzOiBzdHJpbmdbXSxcbiAgICAgICAgY29tYmluZU1ldGhvZDogRnVmQ29tYmluZU1ldGhvZCxcbiAgICAgICAgY29tYmluYXRvclR5cGU6IENvbWJpbmF0b3JUeXBlLFxuICAgICAgICBpc0ltcG9ydEJ5RnVmOiBib29sZWFuXG4gICAgKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UHJlc2VudGF0aW9uKHR5cGU6IERyYWZ0UHJlc2VudGF0aW9uVHlwZSwgY29udGVudDogc3RyaW5nIHwgdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE11bHRpcGxlV2l0aE5vcm1hbGl6YXRpb24ocnVsZXM6IFZhbHVlRm9ySW5zdGFuY2VzU2V0dGluZ1J1bGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZURpcnR5TWFza3MoKTogUHJvbWlzZTxJSW5uZXJDaGFuZ2VSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgyMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hJbnN0YW5jZXNCeVRleHQoXG4gICAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgICAgcGF0aFByZWZpeDogc3RyaW5nLFxuICAgICAgICBwYXRoc1RvU2VhcmNoOiBzdHJpbmdbXSxcbiAgICAgICAgbWF4SW5zdGFuY2VDb3VudD86IG51bWJlclxuICAgICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGN1c3RvbU5vcm1hbGl6ZShcbiAgICAgICAgbm9ybWFsaXplcklkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwYXRoUHJlZml4ZXM6IEFic29sdXRlTW9kZWxQYXRoW11cbiAgICApOiBQcm9taXNlPElJbm5lckNoYW5nZVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKDIwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5Q29sbGVjdGlvbihyZXF1ZXN0OiBJbm5lclF1ZXJ5UmVxdWVzdCwgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8SW5uZXJRdWVyeVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiBbXSwgY29sdW1uczogW10gfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGFWZXJzaW9uKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByaW50RXhjZWwocGF0aFRvVGFibGU6IHN0cmluZyk6IFByb21pc2U8UHJpbnRSZXNwb25zZT4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlSW5uZXJQYXRoKHJlcXVlc3Q6IFJlc29sdmVJbm5lclBhdGhSZXF1ZXN0LCBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxSZXNvbHZlUGF0aFJlc3BvbnNlPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4Y2Vsc1RvUGFydGlhbEZ1ZnMoXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBwYXRoVG9UYWJsZTogc3RyaW5nLFxuICAgICAgICBkcml2ZVVyaXM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxFeGNlbHNUb1BhcnRpYWxGdWZzUmVzcG9uc2UgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0RnJvbVBhcnRpYWxGdWZzQnlQYXRoKFxuICAgICAgICBwYXRoVG9UYWJsZTogc3RyaW5nLFxuICAgICAgICBkcml2ZVVyaTogc3RyaW5nW10sXG4gICAgICAgIGNvbWJpbmVNZXRob2Q6IHN0cmluZ1xuICAgICk6IFByb21pc2U8SW1wb3J0RnJvbVBhcnRpYWxGdWZzQnlQYXRoUmVzcG9uc2UgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tCeVBvcGQoKTogUHJvbWlzZTxDYW5keVBvcGRQcm90b2NvbD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREcmFmdFNldHRpbmdzKCk6IFByb21pc2U8RHJhZnRTZXR0aW5ncz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREcmFmdFNldHRpbmdzKHNldHRpbmdzOiBEcmFmdFNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQW1DQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFlTyxNQUFNRSxrQkFBa0IsQ0FBNEI7RUFDaERDLFVBQVVBLENBQUNDLFdBQXlCLEVBQXFCO0lBQzVELE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FBQztFQUM5QjtFQUVPQyxVQUFVQSxDQUFBLEVBQWtCO0lBQy9CLE9BQU9GLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDRSxTQUFTLENBQUM7RUFDckM7RUFJT0MsV0FBV0EsQ0FBQ0MsRUFBVSxFQUFFQyxHQUF1QixFQUFFQyxJQUFhLEVBQWdDO0lBQ2pHLE1BQU0sSUFBSUMsMkJBQW1CLENBQUMsQ0FBQztFQUNuQztFQUVPQyxRQUFRQSxDQUFDQyxXQUF3QixFQUF3QjtJQUM1RCxPQUFPLElBQUlDLHVCQUF1QixDQUFDLENBQUM7RUFDeEM7RUFFT0Msb0JBQW9CQSxDQUN2QlAsRUFBVSxFQUNWUSxXQUFtQixF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