@kontur.candy/tools 2.248.0 → 2.250.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.
- package/distr/Common/CandyApiClient/CandyApiClient.js +50 -16
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftParams.js +6 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftParams.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -1
- package/distr/Common/DriveIntegration/DriveApiClientExtension.js +53 -0
- package/distr/Common/DriveIntegration/DriveApiClientExtension.js.map +1 -0
- package/distr/Common/DriveIntegration/DriveHelpers.js +24 -0
- package/distr/Common/DriveIntegration/DriveHelpers.js.map +1 -0
- package/distr/Common/DriveIntegration/ensureCandyFrontSrvDriveUri.js +23 -0
- package/distr/Common/DriveIntegration/ensureCandyFrontSrvDriveUri.js.map +1 -0
- package/distr/Common/FSPrinterClient/FSPrinterClient.js +18 -4
- package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -1
- package/distr/Common/KCLangRuntimeUtils.js +9 -0
- package/distr/Common/KCLangRuntimeUtils.js.map +1 -1
- package/distr/Tools/src/BuildTasks/Form/WriteKClangFiles.js +21 -0
- package/distr/Tools/src/BuildTasks/Form/WriteKClangFiles.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -1
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +2 -2
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +3 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +36 -53
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +6 -7
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +6 -7
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +13 -26
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -1
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +2 -2
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
- package/distr/Tools/src/BuildTasks/Form/WriteAllKClangFiles.js +0 -15
- package/distr/Tools/src/BuildTasks/Form/WriteAllKClangFiles.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICandyApiClient.js","names":[],"sources":["../../../../Common/CandyApiClient/ICandyApiClient.ts"],"sourcesContent":["import { HttpStatusCode } from \"../HttpClient/IHttpClient\";\nimport { ICombineByTransfers } from \"../../Engine/src/Engine/Core/ModalManager/Modals/UploadSection/Types\";\nimport { AbsoluteModelPath } from \"../ModelPath/ModelPath\";\nimport { AbsoluteModelFieldPath } from \"../ModelPath/AbsoluteModelFieldPath\";\nimport { FormSettings } from \"../../Engine/src/Forms/Types/FormSettings\";\nimport { AUOOptions } from \"../../Engine/src/Forms/Types/AUOOptions\";\nimport { WorkspaceResourceType } from \"../../Engine/src/ContractorsServiceIntegration/Types/WorkspaceTypes\";\n\nimport { ServerErrorLog } from \"./Types/ErrorLog/ServerErrorLog\";\nimport { ServerInnerResponse, ServerJsonResponse } from \"./Types/GetInner/ServerInnerResponse\";\nimport {\n ExcelsToPartialFufsResponse,\n FileProperties,\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 { 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 { ServerRequisitesResponse } from \"./Types/GetInner/ServerRequisitesResponse\";\nimport { CombinatorType, CombineFufResult, FufCombineMethod } from \"./Types/DraftActions/CombineFufResult\";\nimport { FeatureFlagsResponse } from \"./Types/FeatureFlags/FeatureFlagsResponse\";\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 { GetAttachmentsResponse } from \"./Types/Attachments/GetAttachmentsResponse\";\nimport { InnerQueryRequest } from \"./Types/QueryCollecton/InnerQueryRequest\";\nimport { InnerQueryResponse } from \"./Types/QueryCollecton/InnerQueryResponse\";\nimport { ResolveInnerPathRequest } from \"./Types/ErrorLog/ResolveInnerPathRequest\";\nimport { ResolvePathResponse } from \"./Types/ErrorLog/ResolvePathResponse\";\nimport { InnerHistoryResponse, InnerHistoryUndoResponseWithStatus } from \"./Types/HistoryEditing/InnerHistoryResponse\";\nimport { PollingTaskWithResult } from \"./Types/PollingTasks/PollingTasks\";\n\nexport interface ICandyApiClient {\n forDraft(draftFullId: DraftFullId): ICandyApiDraftClient;\n\n // region Create draft\n createDraft(ns: string, gfv: string): Promise<CreateDraftResponse>;\n createDraft(ns: string, gfv: undefined, body: Buffer): Promise<CreateDraftResponse>;\n createDraftFromDrive(ns: string, fufDriveUri: string, abortSignal?: AbortSignal): Promise<CreateDraftResponse>;\n createEmptyDraft(ns: string, gfv: string, abortSignal?: AbortSignal): Promise<CreateDraftResponse>;\n // endregion\n\n //region Focus\n getInfoByInns(draftFullId: DraftFullId, inns: readonly string[]): Promise<GetByInnResponse>;\n //endregion\n\n // region Diagnostics\n getAllGfvs(abortSignal?: AbortSignal): Promise<string[]>;\n forceGetAllGfvs(): Promise<string[]>;\n // endregion\n\n checkAlive(): Promise<void>;\n\n getFeatureFlags(abonId?: string, orgId?: string, userId?: string): Promise<FeatureFlagsResponse>;\n\n getWorkspaceDirectoryId(\n orgId: string,\n inn: string,\n resourceType: WorkspaceResourceType,\n kpp?: string\n ): Promise<string>;\n\n convertToPdfAndGetMeta(driveUri: string): Promise<ConvertedPDFMetaResponse>;\n convertToPdf(driveUri: string): Promise<ConvertedPdfResponse>;\n}\n\nexport interface ICandyApiDraftTasksClient {\n getAllTasks(): Promise<ServerTask[]>;\n getTaskById(taskId: string): Promise<ServerTask | undefined>;\n enqueueTask(taskId: string, taskInfo: VerifyAndFixFnsRequirementsTaskInfo): Promise<void>;\n cancelTask(taskId: string): Promise<void>;\n}\n\nexport interface ICandyApiDraftAttachmentsClient {\n getAttachmentById(attachmentId: string): Promise<AttachInfo>;\n getAllAttachments(): Promise<AttachInfo[]>;\n createOrUpdateAttachments(attachments: readonly AttachInfo[]): Promise<void>;\n createDraftAttachment(gfv: string, path: string): Promise<AttachInfo>;\n openLoadedAttachmentAsDraft(id: string): Promise<AttachInfo>;\n removeAttachments(attachmentIds: readonly string[]): Promise<void>;\n}\n\nexport interface PathLoadSpecification {\n pathOrPathPrefix: AbsoluteModelPath | AbsoluteModelFieldPath | \"*\";\n skip: boolean;\n}\n\nexport type CheckScenarioType = \"readonly\";\nexport interface IInnerChangeSuccessResult {\n dataVersion: number;\n changedPaths?: string[];\n}\nexport type IInnerChangeResult = IInnerChangeSuccessResult | HttpStatusCode;\n\nexport interface DraftSettings {\n isReadOnly?: FormSettings[\"isReadOnly\"];\n isIndividual?: FormSettings[\"isIndividual\"];\n isForeign?: FormSettings[\"isForeign\"];\n employerId?: FormSettings[\"employerId\"];\n}\n\nexport type NormalizerNames = \"formulas\" | \"formulasWithInitializers\";\n\nexport interface NormalizationProgressTask {\n id: string;\n status: \"InProgress\" | \"Success\" | \"Error\";\n progress: number;\n}\n\nexport interface RequestNdsFileOptions {\n driveUri: string;\n ignoreSizeCheck?: boolean;\n declarationGfv: string;\n requestedGfv?: string;\n}\n\nexport interface ICandyApiDraftClient extends ICandyApiDraftTasksClient, ICandyApiDraftAttachmentsClient {\n // region Explanatory note\n getExplanatoryNote(): Promise<CreateExplanatoryNoteResponse>;\n // endregion\n\n // region Error log\n getErrorLog(): Promise<ServerErrorLog>;\n checkByPopd(): Promise<CandyPopdProtocol>;\n getErrorLogWithCheckScenarios(checkScenarios: CheckScenarioType[]): Promise<ServerErrorLog>;\n getExpertErrorLog(auo: Partial<AUOOptions>): Promise<ServerErrorLog>;\n getHrefToErrorLogPdf(errorLogName: string, propsName: string): string;\n // endregion\n\n // region Get draft requisites\n getRequisites(requisiteList: readonly string[]): Promise<ServerRequisitesResponse>;\n // endregion\n\n //region Get draft inner\n getInner(paths: undefined | readonly string[]): Promise<ServerInnerResponse>;\n getPartialInner(rules: readonly PathLoadSpecification[], maxInstanceCount?: number): Promise<ServerInnerResponse>;\n getPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number,\n skipNormalization?: boolean\n ): Promise<ServerJsonResponse>;\n getRawPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number,\n skipNormalization?: boolean\n ): Promise<ServerRawResponse>;\n getDataVersion(): Promise<number>;\n startNormalizationTask(): Promise<NormalizationProgressTask>;\n getNormalizationTask(): Promise<NormalizationProgressTask>;\n //endregion\n\n // region Update draft inner\n sendChangeSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n operationName?: string\n ): Promise<IInnerChangeResult>;\n sendChangeSetSync(data: ServerChangeSet, currentDataVersion: number): IInnerChangeResult;\n sendChangeWithNormalizationSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: NormalizerNames,\n operationName?: string\n ): Promise<IInnerChangeResult>;\n startPatchWithNormalizationTask(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string,\n operationName?: string\n ): Promise<PollingTaskWithResult<IInnerChangeSuccessResult> | number>;\n getPatchWithNormalizationTask(): Promise<PollingTaskWithResult<IInnerChangeSuccessResult>>;\n // endregion\n\n // region Draft presentations\n setPresentation(type: DraftPresentationType, content: string | unknown): Promise<void>;\n patchPresentation(type: DraftPresentationType, content: PresentationContent): Promise<void>;\n // endregion\n\n // region Draft inner print\n print(type: PrintType, body?: string[]): Promise<PrintResponse>;\n // endregion\n\n // region Draft actions\n clearDraft(): Promise<void>;\n restoreToSourceFuf(): Promise<void>;\n convertDraftFromPrevGfv(request: ConvertDraftRequest): Promise<void>;\n getFileProperties(driveUri: string, ignoreSizeCheck?: boolean): Promise<FileProperties | undefined>;\n getFileNdsProperties(params: RequestNdsFileOptions): Promise<FileProperties[] | undefined>;\n prepareAndGetFileProperties(\n driveUri: string,\n gfv: string,\n ignoreSizeCheck?: boolean\n ): Promise<FileProperties | undefined>;\n uploadAndGetFileProperties(\n driveUri: string[],\n gfv: string,\n abortSignal?: AbortSignal\n ): Promise<UploadFilePropertiesResponse>;\n setFufByDriveUri(driveUri: string): Promise<void>;\n acceptMultipleTransferType(\n files: ICombineByTransfers[],\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined>;\n excelsToPartialFufs(\n gfv: string,\n pathToTable: string,\n driveUris: string[]\n ): Promise<ExcelsToPartialFufsResponse | undefined>;\n importXmls(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n combinatorType: CombinatorType,\n isImportByFuf: boolean,\n args?: string[]\n ): Promise<CombineFufResult | undefined>;\n setDraftSettings(settings: DraftSettings): Promise<void>;\n getDraftSettings(): Promise<DraftSettings>;\n // endregion\n\n normalizeByRules(rules: string): Promise<void>;\n\n getHrefToConvertationLog(): string;\n getHrefToDownloadInnerFuf(): string;\n getHrefToDownloadClientInfo(): string;\n getHrefToDownloadFormsClientInfo(): string;\n getHrefToInnerEditor(): string;\n\n getFufWithAttachments(): Promise<FufWithAttachmentsResponse | undefined>;\n startGetFufWithAttachmentsTask(): Promise<PollingTaskWithResult<FufWithAttachmentsTaskResult>>;\n getFufWithAttachmentsTask(\n format: \"Json\" | \"DriveUri\"\n ): Promise<PollingTaskWithResult<FufWithAttachmentsTaskResult>>;\n getPartialFuf(rules: string[]): Promise<GetPartialFufResponse | undefined>;\n getInnerFuf(): Promise<string | undefined>;\n startGetInnerFufTask(): Promise<PollingTaskWithResult<string>>;\n getInnerFufTask(): Promise<PollingTaskWithResult<string>>;\n\n downloadFuf(): Promise<void>;\n downloadInner(): Promise<void>;\n makeDownloadDriveLink(uri: string, fileName?: string): void;\n\n setMultipleWithNormalization(rules: ValueForInstancesSettingRule[]): Promise<IInnerChangeResult>;\n\n normalizeDirtyMasks(): Promise<IInnerChangeResult>;\n\n searchInstancesByText(\n text: string,\n pathPrefix: string,\n pathsToSearch: string[],\n maxInstanceCount?: number\n ): Promise<string[]>;\n\n queryCollection(request: InnerQueryRequest, abortSignal?: AbortSignal): Promise<InnerQueryResponse>;\n\n customNormalize(\n normalizerId: string | null,\n pathPrefixes: AbsoluteModelPath[],\n abortSignal?: AbortSignal\n ): Promise<IInnerChangeResult>;\n startCustomNormalizationTask(\n pathPrefixes: AbsoluteModelPath[],\n normalizerId?: string,\n operationName?: string\n ): Promise<PollingTaskWithResult<IInnerChangeResult>>;\n getCustomNormalizationTask(): Promise<PollingTaskWithResult<IInnerChangeResult>>;\n importEmployees(request: ImportEmployeesRequest): Promise<void>;\n runMassAction(actionId: string, parameters?: MassActionParameters): Promise<void>;\n deleteInstances(deletingRules: InstancesDeletingRule[]): Promise<void>;\n printExcel(pathToTable: string): Promise<PrintResponse | undefined>;\n\n resolveInnerPath(request: ResolveInnerPathRequest, abortSignal?: AbortSignal): Promise<ResolvePathResponse>;\n getHistory(): Promise<InnerHistoryResponse | number>;\n undoToChange(changeGUID: string): Promise<InnerHistoryUndoResponseWithStatus>;\n getGFV(): Promise<string>;\n getUser(): Promise<GetUserResponse>;\n}\n\nexport interface GetUserResponse {\n Id: string | null;\n Ip: string | null;\n FirstName: string | null;\n MiddleName: string | null;\n LastName: string | null;\n}\n\nexport interface GetPartialFufResponse {\n ContentUri: string;\n Name: string;\n}\n\nexport interface BaseGetFufResponse {\n contentUri: string;\n name: string;\n}\n\nexport interface FufWithAttachmentsResponse {\n fuf: BaseGetFufResponse;\n attachments: GetAttachmentsResponse[];\n}\n\nexport type FufWithAttachmentsTaskResult = FufWithAttachmentsResponse | { resultUri: string };\n\nexport interface CandyApiErrorResponse {\n message: string;\n errorCode: \"InvalidEditSession\" | string;\n}\n\nexport interface ConvertedPDFMetaResponse {\n contentUri: string;\n isModified: boolean;\n pageCount: number;\n lastPageHeight: number;\n contentSizeBytes: number;\n}\n\nexport interface ConvertedPdfResponse {\n contentUri: string;\n isModified: boolean;\n contentSizeBytes: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ICandyApiClient.js","names":[],"sources":["../../../../Common/CandyApiClient/ICandyApiClient.ts"],"sourcesContent":["import { HttpStatusCode } from \"../HttpClient/IHttpClient\";\nimport { ICombineByTransfers } from \"../../Engine/src/Engine/Core/ModalManager/Modals/UploadSection/Types\";\nimport { AbsoluteModelPath } from \"../ModelPath/ModelPath\";\nimport { AbsoluteModelFieldPath } from \"../ModelPath/AbsoluteModelFieldPath\";\nimport { FormSettings } from \"../../Engine/src/Forms/Types/FormSettings\";\nimport { AUOOptions } from \"../../Engine/src/Forms/Types/AUOOptions\";\nimport { WorkspaceResourceType } from \"../../Engine/src/ContractorsServiceIntegration/Types/WorkspaceTypes\";\n\nimport { ServerErrorLog } from \"./Types/ErrorLog/ServerErrorLog\";\nimport { ServerInnerResponse, ServerJsonResponse } from \"./Types/GetInner/ServerInnerResponse\";\nimport {\n ExcelsToPartialFufsResponse,\n FileProperties,\n ServerErrorResponse,\n UploadFilePropertiesResponse,\n} from \"./Types/DraftActions/FileProperties\";\nimport { CreateDraftResponse } from \"./Types/CreateDraft/CreateDraftResponse\";\nimport { CreateDraftFromDriveParams, CreateEmptyDraftParams } from \"./Types/CreateDraft/CreateDraftParams\";\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 { 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 { ServerRequisitesResponse } from \"./Types/GetInner/ServerRequisitesResponse\";\nimport { CombinatorType, CombineFufResult, FufCombineMethod } from \"./Types/DraftActions/CombineFufResult\";\nimport { FeatureFlagsResponse } from \"./Types/FeatureFlags/FeatureFlagsResponse\";\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 { GetAttachmentsResponse } from \"./Types/Attachments/GetAttachmentsResponse\";\nimport { InnerQueryRequest } from \"./Types/QueryCollecton/InnerQueryRequest\";\nimport { InnerQueryResponse } from \"./Types/QueryCollecton/InnerQueryResponse\";\nimport { ResolveInnerPathRequest } from \"./Types/ErrorLog/ResolveInnerPathRequest\";\nimport { ResolvePathResponse } from \"./Types/ErrorLog/ResolvePathResponse\";\nimport { InnerHistoryResponse, InnerHistoryUndoResponseWithStatus } from \"./Types/HistoryEditing/InnerHistoryResponse\";\nimport { PollingTaskWithResult } from \"./Types/PollingTasks/PollingTasks\";\n\nexport interface ICandyApiClient {\n forDraft(draftFullId: DraftFullId): ICandyApiDraftClient;\n\n // region Create draft\n createDraft(ns: string, gfv: string): Promise<CreateDraftResponse>;\n createDraft(ns: string, gfv: undefined, body: Buffer): Promise<CreateDraftResponse>;\n createDraftFromDrive(params: CreateDraftFromDriveParams): Promise<CreateDraftResponse>;\n createEmptyDraft(params: CreateEmptyDraftParams): Promise<CreateDraftResponse>;\n // endregion\n\n //region Focus\n getInfoByInns(draftFullId: DraftFullId, inns: readonly string[]): Promise<GetByInnResponse>;\n //endregion\n\n // region Diagnostics\n getAllGfvs(abortSignal?: AbortSignal): Promise<string[]>;\n forceGetAllGfvs(): Promise<string[]>;\n // endregion\n\n checkAlive(): Promise<void>;\n\n getFeatureFlags(abonId?: string, orgId?: string, userId?: string): Promise<FeatureFlagsResponse>;\n\n getWorkspaceDirectoryId(\n orgId: string,\n inn: string,\n resourceType: WorkspaceResourceType,\n kpp?: string\n ): Promise<string>;\n\n convertToPdfAndGetMeta(driveUri: string): Promise<ConvertedPDFMetaResponse>;\n convertToPdf(driveUri: string): Promise<ConvertedPdfResponse>;\n}\n\nexport interface ICandyApiDraftTasksClient {\n getAllTasks(): Promise<ServerTask[]>;\n getTaskById(taskId: string): Promise<ServerTask | undefined>;\n enqueueTask(taskId: string, taskInfo: VerifyAndFixFnsRequirementsTaskInfo): Promise<void>;\n cancelTask(taskId: string): Promise<void>;\n}\n\nexport interface ICandyApiDraftAttachmentsClient {\n getAttachmentById(attachmentId: string): Promise<AttachInfo>;\n getAllAttachments(): Promise<AttachInfo[]>;\n createOrUpdateAttachments(attachments: readonly AttachInfo[]): Promise<void>;\n createDraftAttachment(gfv: string, path: string): Promise<AttachInfo>;\n openLoadedAttachmentAsDraft(id: string): Promise<AttachInfo>;\n removeAttachments(attachmentIds: readonly string[]): Promise<void>;\n}\n\nexport interface PathLoadSpecification {\n pathOrPathPrefix: AbsoluteModelPath | AbsoluteModelFieldPath | \"*\";\n skip: boolean;\n}\n\nexport type CheckScenarioType = \"readonly\";\nexport interface IInnerChangeSuccessResult {\n dataVersion: number;\n changedPaths?: string[];\n}\nexport type IInnerChangeResult = IInnerChangeSuccessResult | HttpStatusCode;\n\nexport interface DraftSettings {\n isReadOnly?: FormSettings[\"isReadOnly\"];\n isIndividual?: FormSettings[\"isIndividual\"];\n isForeign?: FormSettings[\"isForeign\"];\n employerId?: FormSettings[\"employerId\"];\n}\n\nexport type NormalizerNames = \"formulas\" | \"formulasWithInitializers\";\n\nexport interface NormalizationProgressTask {\n id: string;\n status: \"InProgress\" | \"Success\" | \"Error\";\n progress: number;\n}\n\nexport interface RequestNdsFileOptions {\n driveUri: string;\n ignoreSizeCheck?: boolean;\n declarationGfv: string;\n requestedGfv?: string;\n}\n\nexport interface ICandyApiDraftClient extends ICandyApiDraftTasksClient, ICandyApiDraftAttachmentsClient {\n // region Explanatory note\n getExplanatoryNote(): Promise<CreateExplanatoryNoteResponse>;\n // endregion\n\n // region Error log\n getErrorLog(): Promise<ServerErrorLog>;\n checkByPopd(): Promise<CandyPopdProtocol>;\n getErrorLogWithCheckScenarios(checkScenarios: CheckScenarioType[]): Promise<ServerErrorLog>;\n getExpertErrorLog(auo: Partial<AUOOptions>): Promise<ServerErrorLog>;\n getHrefToErrorLogPdf(errorLogName: string, propsName: string): string;\n // endregion\n\n // region Get draft requisites\n getRequisites(requisiteList: readonly string[]): Promise<ServerRequisitesResponse>;\n // endregion\n\n //region Get draft inner\n getInner(paths: undefined | readonly string[]): Promise<ServerInnerResponse>;\n getPartialInner(rules: readonly PathLoadSpecification[], maxInstanceCount?: number): Promise<ServerInnerResponse>;\n getPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number,\n skipNormalization?: boolean\n ): Promise<ServerJsonResponse>;\n getRawPartialInnerAsJsonTree(\n rules: readonly PathLoadSpecification[],\n maxInstanceCount?: number,\n skipNormalization?: boolean\n ): Promise<ServerRawResponse>;\n getDataVersion(): Promise<number>;\n startNormalizationTask(): Promise<NormalizationProgressTask>;\n getNormalizationTask(): Promise<NormalizationProgressTask>;\n //endregion\n\n // region Update draft inner\n sendChangeSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n operationName?: string\n ): Promise<IInnerChangeResult>;\n sendChangeSetSync(data: ServerChangeSet, currentDataVersion: number): IInnerChangeResult;\n sendChangeWithNormalizationSet(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: NormalizerNames,\n operationName?: string\n ): Promise<IInnerChangeResult>;\n startPatchWithNormalizationTask(\n data: ServerChangeSet,\n currentDataVersion: number,\n normalizerId?: string,\n operationName?: string\n ): Promise<PollingTaskWithResult<IInnerChangeSuccessResult> | number>;\n getPatchWithNormalizationTask(): Promise<PollingTaskWithResult<IInnerChangeSuccessResult>>;\n // endregion\n\n // region Draft presentations\n setPresentation(type: DraftPresentationType, content: string | unknown): Promise<void>;\n patchPresentation(type: DraftPresentationType, content: PresentationContent): Promise<void>;\n // endregion\n\n // region Draft inner print\n print(type: PrintType, body?: string[]): Promise<PrintResponse>;\n // endregion\n\n // region Draft actions\n clearDraft(): Promise<void>;\n restoreToSourceFuf(): Promise<void>;\n convertDraftFromPrevGfv(request: ConvertDraftRequest): Promise<void>;\n getFileProperties(driveUri: string, ignoreSizeCheck?: boolean): Promise<FileProperties | undefined>;\n getFileNdsProperties(params: RequestNdsFileOptions): Promise<FileProperties[] | undefined>;\n prepareAndGetFileProperties(\n driveUri: string,\n gfv: string,\n ignoreSizeCheck?: boolean\n ): Promise<FileProperties | undefined>;\n uploadAndGetFileProperties(\n driveUri: string[],\n gfv: string,\n abortSignal?: AbortSignal\n ): Promise<UploadFilePropertiesResponse>;\n setFufByDriveUri(driveUri: string): Promise<void>;\n acceptMultipleTransferType(\n files: ICombineByTransfers[],\n abortSignal?: AbortSignal\n ): Promise<ServerErrorResponse | undefined>;\n excelsToPartialFufs(\n gfv: string,\n pathToTable: string,\n driveUris: string[]\n ): Promise<ExcelsToPartialFufsResponse | undefined>;\n importXmls(\n driveUris: string[],\n combineMethod: FufCombineMethod,\n combinatorType: CombinatorType,\n isImportByFuf: boolean,\n args?: string[]\n ): Promise<CombineFufResult | undefined>;\n setDraftSettings(settings: DraftSettings): Promise<void>;\n getDraftSettings(): Promise<DraftSettings>;\n // endregion\n\n normalizeByRules(rules: string): Promise<void>;\n\n getHrefToConvertationLog(): string;\n getHrefToDownloadInnerFuf(): string;\n getHrefToDownloadClientInfo(): string;\n getHrefToDownloadFormsClientInfo(): string;\n getHrefToInnerEditor(): string;\n\n getFufWithAttachments(): Promise<FufWithAttachmentsResponse | undefined>;\n startGetFufWithAttachmentsTask(): Promise<PollingTaskWithResult<FufWithAttachmentsTaskResult>>;\n getFufWithAttachmentsTask(\n format: \"Json\" | \"DriveUri\"\n ): Promise<PollingTaskWithResult<FufWithAttachmentsTaskResult>>;\n getPartialFuf(rules: string[]): Promise<GetPartialFufResponse | undefined>;\n getInnerFuf(): Promise<string | undefined>;\n startGetInnerFufTask(): Promise<PollingTaskWithResult<string>>;\n getInnerFufTask(): Promise<PollingTaskWithResult<string>>;\n\n downloadFuf(): Promise<void>;\n downloadInner(): Promise<void>;\n makeDownloadDriveLink(uri: string, fileName?: string): void;\n\n setMultipleWithNormalization(rules: ValueForInstancesSettingRule[]): Promise<IInnerChangeResult>;\n\n normalizeDirtyMasks(): Promise<IInnerChangeResult>;\n\n searchInstancesByText(\n text: string,\n pathPrefix: string,\n pathsToSearch: string[],\n maxInstanceCount?: number\n ): Promise<string[]>;\n\n queryCollection(request: InnerQueryRequest, abortSignal?: AbortSignal): Promise<InnerQueryResponse>;\n\n customNormalize(\n normalizerId: string | null,\n pathPrefixes: AbsoluteModelPath[],\n abortSignal?: AbortSignal\n ): Promise<IInnerChangeResult>;\n startCustomNormalizationTask(\n pathPrefixes: AbsoluteModelPath[],\n normalizerId?: string,\n operationName?: string\n ): Promise<PollingTaskWithResult<IInnerChangeResult>>;\n getCustomNormalizationTask(): Promise<PollingTaskWithResult<IInnerChangeResult>>;\n importEmployees(request: ImportEmployeesRequest): Promise<void>;\n runMassAction(actionId: string, parameters?: MassActionParameters): Promise<void>;\n deleteInstances(deletingRules: InstancesDeletingRule[]): Promise<void>;\n printExcel(pathToTable: string): Promise<PrintResponse | undefined>;\n\n resolveInnerPath(request: ResolveInnerPathRequest, abortSignal?: AbortSignal): Promise<ResolvePathResponse>;\n getHistory(): Promise<InnerHistoryResponse | number>;\n undoToChange(changeGUID: string): Promise<InnerHistoryUndoResponseWithStatus>;\n getGFV(): Promise<string>;\n getUser(): Promise<GetUserResponse>;\n}\n\nexport interface GetUserResponse {\n Id: string | null;\n Ip: string | null;\n FirstName: string | null;\n MiddleName: string | null;\n LastName: string | null;\n}\n\nexport interface GetPartialFufResponse {\n ContentUri: string;\n Name: string;\n}\n\nexport interface BaseGetFufResponse {\n contentUri: string;\n name: string;\n}\n\nexport interface FufWithAttachmentsResponse {\n fuf: BaseGetFufResponse;\n attachments: GetAttachmentsResponse[];\n}\n\nexport type FufWithAttachmentsTaskResult = FufWithAttachmentsResponse | { resultUri: string };\n\nexport interface CandyApiErrorResponse {\n message: string;\n errorCode: \"InvalidEditSession\" | string;\n}\n\nexport interface ConvertedPDFMetaResponse {\n contentUri: string;\n isModified: boolean;\n pageCount: number;\n lastPageHeight: number;\n contentSizeBytes: number;\n}\n\nexport interface ConvertedPdfResponse {\n contentUri: string;\n isModified: boolean;\n contentSizeBytes: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateDraftParams.js","names":[],"sources":["../../../../../../Common/CandyApiClient/Types/CreateDraft/CreateDraftParams.ts"],"sourcesContent":["export interface CreateEmptyDraftParams {\n ns: string;\n gfv: string;\n abortSignal?: AbortSignal;\n scenario?: string;\n}\n\nexport interface CreateDraftFromDriveParams {\n ns: string;\n fufDriveUri: string;\n abortSignal?: AbortSignal;\n scenario?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerErrorLog.js","names":["AdditionalProtocolResult","exports","AdditionalProtocolType"],"sources":["../../../../../../Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.ts"],"sourcesContent":["import { Guid } from \"../../../../Engine/src/Engine/Types/Guid\";\nimport {
|
|
1
|
+
{"version":3,"file":"ServerErrorLog.js","names":["AdditionalProtocolResult","exports","AdditionalProtocolType"],"sources":["../../../../../../Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.ts"],"sourcesContent":["import { Guid } from \"../../../../Engine/src/Engine/Types/Guid\";\nimport {\n InterdocumentCheckerResult,\n MarketplaceContext,\n} from \"../../../../Engine/src/Engine/Core/ErrorManager/Utils/Models\";\n\nexport enum AdditionalProtocolResult {\n Ok = \"Ok\",\n FileExceedsMaximumSize = \"FileExceedsMaximumSize\",\n Error = \"Error\",\n}\n\nexport enum AdditionalProtocolType {\n Popd = \"Popd\",\n}\n\nexport interface AdditionalErrorLogItem {\n type: AdditionalProtocolType;\n resultCode: AdditionalProtocolResult;\n contentDriveUri: string;\n errorsCount: number;\n warningsCount: number;\n}\n\nexport interface ServerErrorLogItem {\n id: Guid;\n description: string;\n path: null | undefined | string;\n source: string;\n tags: string[] | string | null;\n usedArguments: string[] | undefined;\n justification?: string | undefined | null;\n}\n\nexport interface ServerErrorLog {\n errorLogName?: null | string;\n propsName?: null | string;\n errors: ServerErrorLogItem[];\n warnings: ServerErrorLogItem[];\n successes: ServerErrorLogItem[];\n}\n\nexport interface ErrorLogGroup {\n groupName: string | null;\n errors: ServerErrorLogItem[];\n warnings: ServerErrorLogItem[];\n successes: ServerErrorLogItem[];\n groupAttachmentId?: string;\n tid?: string;\n}\n\nexport interface GroupedErrorLog {\n errorLogName?: null | string;\n propsName?: null | string;\n canSend?: boolean;\n hasErrors?: boolean;\n marketplaceContext?: MarketplaceContext;\n groups: ErrorLogGroup[];\n interdocumentCheckerResult?: InterdocumentCheckerResult | null;\n}\n"],"mappings":";;;;;;IAMYA,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAAA,IAMxBE,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureFlagsResponse.js","names":[],"sources":["../../../../../../Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.ts"],"sourcesContent":["export type FeatureFlagsResponse =\n | {\n candyTestFeature?: string;\n useExtendedErrorLog?: boolean;\n showDraftHistoryInEditor?: boolean;\n }\n | {\n [data: string]: unknown;\n };\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FeatureFlagsResponse.js","names":[],"sources":["../../../../../../Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.ts"],"sourcesContent":["export type FeatureFlagsResponse =\n | {\n candyTestFeature?: string;\n useExtendedErrorLog?: boolean;\n showDraftHistoryInEditor?: boolean;\n newOrgAdPromoCode?: string;\n }\n | {\n [data: string]: unknown;\n };\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DriveApiClientExtension = void 0;
|
|
7
|
+
var _InitializeSentry = require("../../Engine/src/Forms/Sentry/InitializeSentry");
|
|
8
|
+
class DriveApiClientExtension {
|
|
9
|
+
constructor(fetchImpl, baseUrl) {
|
|
10
|
+
this.fetchImpl = void 0;
|
|
11
|
+
this.baseUrl = void 0;
|
|
12
|
+
this.fetchImpl = fetchImpl;
|
|
13
|
+
this.baseUrl = baseUrl;
|
|
14
|
+
}
|
|
15
|
+
async copyContents(name, copyName) {
|
|
16
|
+
const response = await this.fetchImpl(`${this.baseUrl}/v1/contents/copy`, {
|
|
17
|
+
method: "POST",
|
|
18
|
+
credentials: "include",
|
|
19
|
+
headers: {
|
|
20
|
+
"Content-Type": "application/json",
|
|
21
|
+
Accept: "application/json"
|
|
22
|
+
},
|
|
23
|
+
body: JSON.stringify({
|
|
24
|
+
name: decodeURI(name),
|
|
25
|
+
copyName: decodeURI(copyName),
|
|
26
|
+
expiryTimeChange: {
|
|
27
|
+
makePermanent: false,
|
|
28
|
+
newDaysToLive: 1
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
if (response.status === 403) {
|
|
33
|
+
(0, _InitializeSentry.getCandyHub)().captureException(new Error(`Drive contents copy forbidden: ${name}`));
|
|
34
|
+
return {
|
|
35
|
+
Name: name
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (response.status === 409) {
|
|
39
|
+
return {
|
|
40
|
+
Name: copyName
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (response.status >= 400 && response.status <= 500) {
|
|
44
|
+
return {
|
|
45
|
+
Name: name
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const result = await response.json();
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DriveApiClientExtension = DriveApiClientExtension;
|
|
53
|
+
//# sourceMappingURL=DriveApiClientExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriveApiClientExtension.js","names":["_InitializeSentry","require","DriveApiClientExtension","constructor","fetchImpl","baseUrl","copyContents","name","copyName","response","method","credentials","headers","Accept","body","JSON","stringify","decodeURI","expiryTimeChange","makePermanent","newDaysToLive","status","getCandyHub","captureException","Error","Name","result","json","exports"],"sources":["../../../../Common/DriveIntegration/DriveApiClientExtension.ts"],"sourcesContent":["import { Fetch } from \"../HttpClient/FetchImplementation/Fetch\";\nimport { getCandyHub } from \"../../Engine/src/Forms/Sentry/InitializeSentry\";\n\nexport interface IDriveContentsCopyResult {\n Name: string;\n}\n\nexport interface IDriveApiClientExtension {\n copyContents(name: string, copyName: string): Promise<IDriveContentsCopyResult>;\n}\n\nexport class DriveApiClientExtension implements IDriveApiClientExtension {\n private readonly fetchImpl: Fetch;\n private readonly baseUrl: string;\n\n public constructor(fetchImpl: Fetch, baseUrl: string) {\n this.fetchImpl = fetchImpl;\n this.baseUrl = baseUrl;\n }\n\n public async copyContents(name: string, copyName: string): Promise<IDriveContentsCopyResult> {\n const response = await this.fetchImpl(`${this.baseUrl}/v1/contents/copy`, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({\n name: decodeURI(name),\n copyName: decodeURI(copyName),\n expiryTimeChange: {\n makePermanent: false,\n newDaysToLive: 1,\n },\n }),\n });\n\n if (response.status === 403) {\n getCandyHub().captureException(new Error(`Drive contents copy forbidden: ${name}`));\n return {\n Name: name,\n };\n }\n\n if (response.status === 409) {\n return {\n Name: copyName,\n };\n }\n\n if (response.status >= 400 && response.status <= 500) {\n return {\n Name: name,\n };\n }\n\n const result = await response.json();\n\n return result as IDriveContentsCopyResult;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAUO,MAAMC,uBAAuB,CAAqC;EAI9DC,WAAWA,CAACC,SAAgB,EAAEC,OAAe,EAAE;IAAA,KAHrCD,SAAS;IAAA,KACTC,OAAO;IAGpB,IAAI,CAACD,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEA,MAAaC,YAAYA,CAACC,IAAY,EAAEC,QAAgB,EAAqC;IACzF,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACL,SAAS,CAAC,GAAG,IAAI,CAACC,OAAO,mBAAmB,EAAE;MACtEK,MAAM,EAAE,MAAM;MACdC,WAAW,EAAE,SAAS;MACtBC,OAAO,EAAE;QACL,cAAc,EAAE,kBAAkB;QAClCC,MAAM,EAAE;MACZ,CAAC;MACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QACjBT,IAAI,EAAEU,SAAS,CAACV,IAAI,CAAC;QACrBC,QAAQ,EAAES,SAAS,CAACT,QAAQ,CAAC;QAC7BU,gBAAgB,EAAE;UACdC,aAAa,EAAE,KAAK;UACpBC,aAAa,EAAE;QACnB;MACJ,CAAC;IACL,CAAC,CAAC;IAEF,IAAIX,QAAQ,CAACY,MAAM,KAAK,GAAG,EAAE;MACzB,IAAAC,6BAAW,EAAC,CAAC,CAACC,gBAAgB,CAAC,IAAIC,KAAK,CAAC,kCAAkCjB,IAAI,EAAE,CAAC,CAAC;MACnF,OAAO;QACHkB,IAAI,EAAElB;MACV,CAAC;IACL;IAEA,IAAIE,QAAQ,CAACY,MAAM,KAAK,GAAG,EAAE;MACzB,OAAO;QACHI,IAAI,EAAEjB;MACV,CAAC;IACL;IAEA,IAAIC,QAAQ,CAACY,MAAM,IAAI,GAAG,IAAIZ,QAAQ,CAACY,MAAM,IAAI,GAAG,EAAE;MAClD,OAAO;QACHI,IAAI,EAAElB;MACV,CAAC;IACL;IAEA,MAAMmB,MAAM,GAAG,MAAMjB,QAAQ,CAACkB,IAAI,CAAC,CAAC;IAEpC,OAAOD,MAAM;EACjB;AACJ;AAACE,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DriveHelpers = void 0;
|
|
7
|
+
class DriveHelpers {
|
|
8
|
+
constructor(driveApiClientExtension) {
|
|
9
|
+
this.driveApiClientExtension = void 0;
|
|
10
|
+
this.driveApiClientExtension = driveApiClientExtension;
|
|
11
|
+
}
|
|
12
|
+
async ensureCandyFrontSrv(driveUri) {
|
|
13
|
+
if (driveUri.toLowerCase().includes("srv/candyfront") || driveUri.toLowerCase().includes("srv/keforms")) {
|
|
14
|
+
return driveUri;
|
|
15
|
+
}
|
|
16
|
+
const index = driveUri.indexOf("srv/");
|
|
17
|
+
const prefix = driveUri.substring(0, index);
|
|
18
|
+
const uri = driveUri.substring(index);
|
|
19
|
+
const result = await this.driveApiClientExtension.copyContents(uri, uri.replace(/srv\/[A-Za-z]+/g, "srv/candyFront"));
|
|
20
|
+
return prefix + result.Name;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DriveHelpers = DriveHelpers;
|
|
24
|
+
//# sourceMappingURL=DriveHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DriveHelpers.js","names":["DriveHelpers","constructor","driveApiClientExtension","ensureCandyFrontSrv","driveUri","toLowerCase","includes","index","indexOf","prefix","substring","uri","result","copyContents","replace","Name","exports"],"sources":["../../../../Common/DriveIntegration/DriveHelpers.ts"],"sourcesContent":["import { IDriveApiClientExtension } from \"./DriveApiClientExtension\";\n\nexport class DriveHelpers {\n private readonly driveApiClientExtension: IDriveApiClientExtension;\n\n public constructor(driveApiClientExtension: IDriveApiClientExtension) {\n this.driveApiClientExtension = driveApiClientExtension;\n }\n\n public async ensureCandyFrontSrv(driveUri: string): Promise<string> {\n if (driveUri.toLowerCase().includes(\"srv/candyfront\") || driveUri.toLowerCase().includes(\"srv/keforms\")) {\n return driveUri;\n }\n\n const index = driveUri.indexOf(\"srv/\");\n const prefix = driveUri.substring(0, index);\n const uri = driveUri.substring(index);\n\n const result = await this.driveApiClientExtension.copyContents(\n uri,\n uri.replace(/srv\\/[A-Za-z]+/g, \"srv/candyFront\")\n );\n\n return prefix + result.Name;\n }\n}\n"],"mappings":";;;;;;AAEO,MAAMA,YAAY,CAAC;EAGfC,WAAWA,CAACC,uBAAiD,EAAE;IAAA,KAFrDA,uBAAuB;IAGpC,IAAI,CAACA,uBAAuB,GAAGA,uBAAuB;EAC1D;EAEA,MAAaC,mBAAmBA,CAACC,QAAgB,EAAmB;IAChE,IAAIA,QAAQ,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,gBAAgB,CAAC,IAAIF,QAAQ,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,aAAa,CAAC,EAAE;MACrG,OAAOF,QAAQ;IACnB;IAEA,MAAMG,KAAK,GAAGH,QAAQ,CAACI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAMC,MAAM,GAAGL,QAAQ,CAACM,SAAS,CAAC,CAAC,EAAEH,KAAK,CAAC;IAC3C,MAAMI,GAAG,GAAGP,QAAQ,CAACM,SAAS,CAACH,KAAK,CAAC;IAErC,MAAMK,MAAM,GAAG,MAAM,IAAI,CAACV,uBAAuB,CAACW,YAAY,CAC1DF,GAAG,EACHA,GAAG,CAACG,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CACnD,CAAC;IAED,OAAOL,MAAM,GAAGG,MAAM,CAACG,IAAI;EAC/B;AACJ;AAACC,OAAA,CAAAhB,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ensureCandyFrontSrvDriveUris = exports.ensureCandyFrontSrvDriveUri = void 0;
|
|
7
|
+
const ensureCandyFrontSrvDriveUri = async (driveUri, driveHelpers) => {
|
|
8
|
+
let driveUriChecked = driveUri;
|
|
9
|
+
if (driveHelpers) {
|
|
10
|
+
driveUriChecked = await driveHelpers.ensureCandyFrontSrv(driveUri);
|
|
11
|
+
}
|
|
12
|
+
return driveUriChecked;
|
|
13
|
+
};
|
|
14
|
+
exports.ensureCandyFrontSrvDriveUri = ensureCandyFrontSrvDriveUri;
|
|
15
|
+
const ensureCandyFrontSrvDriveUris = async (driveUris, driveHelpers) => {
|
|
16
|
+
let driveUrisChecked = driveUris;
|
|
17
|
+
if (driveHelpers) {
|
|
18
|
+
driveUrisChecked = await Promise.all(driveUris.map(driveUri => driveHelpers === null || driveHelpers === void 0 ? void 0 : driveHelpers.ensureCandyFrontSrv(driveUri)));
|
|
19
|
+
}
|
|
20
|
+
return driveUrisChecked;
|
|
21
|
+
};
|
|
22
|
+
exports.ensureCandyFrontSrvDriveUris = ensureCandyFrontSrvDriveUris;
|
|
23
|
+
//# sourceMappingURL=ensureCandyFrontSrvDriveUri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureCandyFrontSrvDriveUri.js","names":["ensureCandyFrontSrvDriveUri","driveUri","driveHelpers","driveUriChecked","ensureCandyFrontSrv","exports","ensureCandyFrontSrvDriveUris","driveUris","driveUrisChecked","Promise","all","map"],"sources":["../../../../Common/DriveIntegration/ensureCandyFrontSrvDriveUri.ts"],"sourcesContent":["import { DriveHelpers } from \"./DriveHelpers\";\n\nexport const ensureCandyFrontSrvDriveUri = async (driveUri: string, driveHelpers?: DriveHelpers): Promise<string> => {\n let driveUriChecked = driveUri;\n if (driveHelpers) {\n driveUriChecked = await driveHelpers.ensureCandyFrontSrv(driveUri);\n }\n return driveUriChecked;\n};\n\nexport const ensureCandyFrontSrvDriveUris = async (\n driveUris: string[],\n driveHelpers?: DriveHelpers\n): Promise<string[]> => {\n let driveUrisChecked = driveUris;\n if (driveHelpers) {\n driveUrisChecked = await Promise.all(driveUris.map(driveUri => driveHelpers?.ensureCandyFrontSrv(driveUri)));\n }\n return driveUrisChecked;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,2BAA2B,GAAG,MAAAA,CAAOC,QAAgB,EAAEC,YAA2B,KAAsB;EACjH,IAAIC,eAAe,GAAGF,QAAQ;EAC9B,IAAIC,YAAY,EAAE;IACdC,eAAe,GAAG,MAAMD,YAAY,CAACE,mBAAmB,CAACH,QAAQ,CAAC;EACtE;EACA,OAAOE,eAAe;AAC1B,CAAC;AAACE,OAAA,CAAAL,2BAAA,GAAAA,2BAAA;AAEK,MAAMM,4BAA4B,GAAG,MAAAA,CACxCC,SAAmB,EACnBL,YAA2B,KACP;EACpB,IAAIM,gBAAgB,GAAGD,SAAS;EAChC,IAAIL,YAAY,EAAE;IACdM,gBAAgB,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACH,SAAS,CAACI,GAAG,CAACV,QAAQ,IAAIC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,mBAAmB,CAACH,QAAQ,CAAC,CAAC,CAAC;EAChH;EACA,OAAOO,gBAAgB;AAC3B,CAAC;AAACH,OAAA,CAAAC,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ var _DraftPresentationType = require("../CandyApiClient/Types/Presentations/Draf
|
|
|
12
12
|
var _PollingTaskWaiter = require("../CandyApiClient/Types/PollingTasks/PollingTaskWaiter");
|
|
13
13
|
var _IFSPrinterClient = require("./IFSPrinterClient");
|
|
14
14
|
class FSPrinterClient {
|
|
15
|
-
constructor(fetchImpl, baseUrl, resourceZone, authentication, candyApiDraftClient, exceptionLogger) {
|
|
15
|
+
constructor(fetchImpl, baseUrl, resourceZone, authentication, candyApiDraftClient, exceptionLogger, driveHelpers) {
|
|
16
16
|
this.httpClient = void 0;
|
|
17
17
|
this.candyApiDraftClient = void 0;
|
|
18
18
|
this.pullingDelay = 0;
|
|
@@ -22,10 +22,12 @@ class FSPrinterClient {
|
|
|
22
22
|
this.defaultFactor = 2;
|
|
23
23
|
this.defaultTimeout = 1000 * 60 * 10;
|
|
24
24
|
this.taskResult = void 0;
|
|
25
|
+
this.driveHelpers = void 0;
|
|
25
26
|
this.httpClient = new _HttpClient.HttpClient(fetchImpl, baseUrl, (0, _AuthenticationMode.createAuthenticationProvider)(authentication), {
|
|
26
27
|
resourceZone: resourceZone
|
|
27
28
|
}, exceptionLogger);
|
|
28
29
|
this.candyApiDraftClient = candyApiDraftClient;
|
|
30
|
+
this.driveHelpers = driveHelpers;
|
|
29
31
|
}
|
|
30
32
|
async printRSV({
|
|
31
33
|
type,
|
|
@@ -41,17 +43,25 @@ class FSPrinterClient {
|
|
|
41
43
|
presentation: presentation
|
|
42
44
|
};
|
|
43
45
|
if (innerFuf !== null && innerFuf !== void 0 && innerFuf.driveUri) {
|
|
46
|
+
let driveUriChecked = innerFuf.driveUri;
|
|
47
|
+
if (this.driveHelpers) {
|
|
48
|
+
driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(innerFuf.driveUri);
|
|
49
|
+
}
|
|
44
50
|
options.fuf = {
|
|
45
|
-
driveUri:
|
|
51
|
+
driveUri: driveUriChecked
|
|
46
52
|
};
|
|
47
53
|
}
|
|
48
54
|
await this.print(options, requestOptions);
|
|
49
55
|
}
|
|
50
56
|
async printByRules(options) {
|
|
51
57
|
const partialFufUri = await this.getPartialFufDriveUrl(options.rules);
|
|
58
|
+
let driveUriChecked = partialFufUri;
|
|
59
|
+
if (this.driveHelpers) {
|
|
60
|
+
driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(partialFufUri);
|
|
61
|
+
}
|
|
52
62
|
await this.print({
|
|
53
63
|
fuf: {
|
|
54
|
-
driveUri:
|
|
64
|
+
driveUri: driveUriChecked
|
|
55
65
|
},
|
|
56
66
|
resultType: _IFSPrinterClient.PrinterResultTypes.Pdf,
|
|
57
67
|
...options.options
|
|
@@ -124,7 +134,11 @@ class FSPrinterClient {
|
|
|
124
134
|
if (options.presentation === _DraftPresentationType.DraftPresentationType.innerFuf) {
|
|
125
135
|
var _options$fuf;
|
|
126
136
|
if ((_options$fuf = options.fuf) !== null && _options$fuf !== void 0 && _options$fuf.driveUri) {
|
|
127
|
-
|
|
137
|
+
let driveUriChecked = options.fuf.driveUri;
|
|
138
|
+
if (this.driveHelpers) {
|
|
139
|
+
driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(options.fuf.driveUri);
|
|
140
|
+
}
|
|
141
|
+
return driveUriChecked;
|
|
128
142
|
}
|
|
129
143
|
return await this.getInnerFufDriveUrl();
|
|
130
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FSPrinterClient.js","names":["_HttpClient","require","_AuthenticationMode","_utils","_TypingUtils","_DraftPresentationType","_PollingTaskWaiter","_IFSPrinterClient","FSPrinterClient","constructor","fetchImpl","baseUrl","resourceZone","authentication","candyApiDraftClient","exceptionLogger","httpClient","pullingDelay","factor","timeout","defaultPullingDelay","defaultFactor","defaultTimeout","taskResult","HttpClient","createAuthenticationProvider","printRSV","type","resultType","PrinterResultTypes","Excel","presentation","DraftPresentationType","fuf","innerFuf","requestOptions","options","rsvInfo","driveUri","print","printByRules","partialFufUri","getPartialFufDriveUrl","rules","Pdf","_this$taskResult","applyRequestOptions","task","createTask","runMonitoringTask","taskId","resultUrl","resultUri","resetPrintResult","downloadDocument","downloadFufHref","getPartialFuf","ContentUri","Error","getInnerFufDriveUrl","startGetInnerFufTask","downloadHref","waitPollingTask","getInnerFufTask","getFufDriveUrl","startGetFufWithAttachmentsTask","getFufWithAttachmentsTask","contentUri","_this$taskResult2","_this$taskResult3","checkTask","delay","taskStatus","get","json","errorInfo","userMessage","presentationUri","getPresentationUri","optionsWithFuf","appendFufUrlToOptions","optionsWithSender","appendSenderAppToOptions","taskInfo","post","withJsonBody","_options$fuf$driveUri","_options$fuf2","_options$fuf","driveUrl","isNullOrEmpty","_this$taskResult4","reject","window","location","href","fufUrl","senderApp","_requestOptions$pulli","_requestOptions$facto","_requestOptions$timeo","undefined","exports"],"sources":["../../../../Common/FSPrinterClient/FSPrinterClient.ts"],"sourcesContent":["import { Fetch } from \"../HttpClient/FetchImplementation/Fetch\";\nimport { ExceptionLogger, HttpClient } from \"../HttpClient/HttpClient\";\nimport { IHttpClient } from \"../HttpClient/IHttpClient\";\nimport { AuthenticationMode, createAuthenticationProvider } from \"../HttpClient/AuthenticationMode\";\nimport { ICandyApiDraftClient } from \"../CandyApiClient/ICandyApiClient\";\nimport { delay } from \"../../Engine/src/Engine/utils\";\nimport { isNullOrEmpty, reject } from \"../TypingUtils\";\nimport { DraftPresentationType } from \"../CandyApiClient/Types/Presentations/DraftPresentationType\";\nimport { waitPollingTask } from \"../CandyApiClient/Types/PollingTasks/PollingTaskWaiter\";\n\nimport {\n FSPrinterTaskResult,\n FSPrinterTaskStatus,\n IFSPrinterClient,\n PrintByRulesOptions,\n PrinterOptions,\n PrinterRequestOptions,\n PrinterResultTypes,\n RSVPrinterOptions,\n} from \"./IFSPrinterClient\";\n\nexport class FSPrinterClient implements IFSPrinterClient {\n private readonly httpClient: IHttpClient;\n private readonly candyApiDraftClient: ICandyApiDraftClient;\n\n private pullingDelay: number = 0;\n private factor: number = 0;\n private timeout: number = 0;\n\n private readonly defaultPullingDelay: number = 1200;\n private readonly defaultFactor: number = 2;\n private readonly defaultTimeout: number = 1000 * 60 * 10;\n\n private taskResult: FSPrinterTaskResult | undefined;\n\n public constructor(\n fetchImpl: Fetch,\n baseUrl: string,\n resourceZone: undefined | string,\n authentication: undefined | AuthenticationMode,\n candyApiDraftClient: ICandyApiDraftClient,\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 this.candyApiDraftClient = candyApiDraftClient;\n }\n\n public async printRSV(\n {\n type,\n resultType = PrinterResultTypes.Excel,\n presentation = DraftPresentationType.fuf,\n innerFuf,\n }: RSVPrinterOptions,\n requestOptions?: PrinterRequestOptions\n ): Promise<void> {\n const options: PrinterOptions = {\n resultType: resultType,\n rsvInfo: { type: type },\n presentation: presentation,\n };\n if (innerFuf?.driveUri) {\n options.fuf = { driveUri: innerFuf?.driveUri };\n }\n await this.print(options, requestOptions);\n }\n\n public async printByRules(options: PrintByRulesOptions): Promise<void> {\n const partialFufUri = await this.getPartialFufDriveUrl(options.rules);\n await this.print({\n fuf: {\n driveUri: partialFufUri,\n },\n resultType: PrinterResultTypes.Pdf,\n ...options.options,\n });\n }\n\n public async print(options: PrinterOptions, requestOptions?: PrinterRequestOptions): Promise<void> {\n this.applyRequestOptions(requestOptions);\n const task = await this.createTask(options);\n await this.runMonitoringTask(task.taskId);\n const resultUrl = this.taskResult?.resultUri;\n this.resetPrintResult();\n this.downloadDocument(resultUrl);\n }\n\n private async getPartialFufDriveUrl(rules: string[]): Promise<string> {\n const downloadFufHref = await this.candyApiDraftClient.getPartialFuf(rules);\n if (downloadFufHref && downloadFufHref?.ContentUri) {\n return downloadFufHref?.ContentUri;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async getInnerFufDriveUrl(): Promise<string> {\n await this.candyApiDraftClient.startGetInnerFufTask();\n const downloadHref = await waitPollingTask(() => this.candyApiDraftClient.getInnerFufTask());\n if (downloadHref) {\n return downloadHref;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async getFufDriveUrl(): Promise<string> {\n await this.candyApiDraftClient.startGetFufWithAttachmentsTask();\n const downloadFufHref = await waitPollingTask(() => this.candyApiDraftClient.getFufWithAttachmentsTask(\"Json\"));\n if (downloadFufHref && \"fuf\" in downloadFufHref && downloadFufHref?.fuf.contentUri) {\n return downloadFufHref?.fuf.contentUri;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async runMonitoringTask(taskId: string): Promise<void> {\n while (!this.taskResult?.resultUri) {\n await this.checkTask(taskId);\n if (!this.taskResult?.resultUri) {\n await delay(this.pullingDelay);\n this.pullingDelay *= this.factor;\n }\n }\n }\n\n private async checkTask(taskId: string): Promise<void> {\n const taskStatus = await this.httpClient.get(`v3/tasks/${taskId}`).json<FSPrinterTaskResult>();\n if (taskStatus.errorInfo) {\n throw new Error(taskStatus.errorInfo.userMessage);\n }\n if (taskStatus.resultUri) {\n this.taskResult = taskStatus;\n return;\n }\n if (this.timeout <= this.pullingDelay) {\n throw new Error(`Timeout ${this.timeout / 60 / 1000} min for print file has expired`);\n }\n }\n\n private async createTask(options: PrinterOptions): Promise<FSPrinterTaskStatus> {\n const presentationUri = await this.getPresentationUri(options);\n\n const optionsWithFuf = this.appendFufUrlToOptions(options, presentationUri);\n const optionsWithSender = this.appendSenderAppToOptions(optionsWithFuf);\n const taskInfo = await this.httpClient\n .post(\"v3/tasks\")\n .withJsonBody(optionsWithSender)\n .json<FSPrinterTaskStatus>();\n return taskInfo;\n }\n\n private async getPresentationUri(options: PrinterOptions) {\n if (options.presentation === DraftPresentationType.innerFuf) {\n if (options.fuf?.driveUri) {\n return options.fuf.driveUri;\n }\n return await this.getInnerFufDriveUrl();\n }\n return options.fuf?.driveUri ?? (await this.getFufDriveUrl());\n }\n\n private downloadDocument(driveUrl: string | undefined) {\n if (isNullOrEmpty(driveUrl)) {\n reject(`Ссылка на печать документа пустая или undefined. Трейс печати: ${this.taskResult?.taskId}`);\n }\n window.location.href = driveUrl;\n }\n\n private appendFufUrlToOptions(options: PrinterOptions, fufUrl: string): PrinterOptions {\n return { ...options, fuf: { driveUri: fufUrl } };\n }\n\n private appendSenderAppToOptions(options: PrinterOptions): PrinterOptions {\n return { ...options, senderApp: \"candy-front\" };\n }\n\n private applyRequestOptions(requestOptions?: PrinterRequestOptions) {\n this.pullingDelay = requestOptions?.pullingDelay ?? this.defaultPullingDelay;\n this.factor = requestOptions?.factor ?? this.defaultFactor;\n this.timeout = requestOptions?.timeout ?? this.defaultTimeout;\n }\n\n private resetPrintResult() {\n this.taskResult = undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FSPrinterClient.js","names":["_HttpClient","require","_AuthenticationMode","_utils","_TypingUtils","_DraftPresentationType","_PollingTaskWaiter","_IFSPrinterClient","FSPrinterClient","constructor","fetchImpl","baseUrl","resourceZone","authentication","candyApiDraftClient","exceptionLogger","driveHelpers","httpClient","pullingDelay","factor","timeout","defaultPullingDelay","defaultFactor","defaultTimeout","taskResult","HttpClient","createAuthenticationProvider","printRSV","type","resultType","PrinterResultTypes","Excel","presentation","DraftPresentationType","fuf","innerFuf","requestOptions","options","rsvInfo","driveUri","driveUriChecked","ensureCandyFrontSrv","print","printByRules","partialFufUri","getPartialFufDriveUrl","rules","Pdf","_this$taskResult","applyRequestOptions","task","createTask","runMonitoringTask","taskId","resultUrl","resultUri","resetPrintResult","downloadDocument","downloadFufHref","getPartialFuf","ContentUri","Error","getInnerFufDriveUrl","startGetInnerFufTask","downloadHref","waitPollingTask","getInnerFufTask","getFufDriveUrl","startGetFufWithAttachmentsTask","getFufWithAttachmentsTask","contentUri","_this$taskResult2","_this$taskResult3","checkTask","delay","taskStatus","get","json","errorInfo","userMessage","presentationUri","getPresentationUri","optionsWithFuf","appendFufUrlToOptions","optionsWithSender","appendSenderAppToOptions","taskInfo","post","withJsonBody","_options$fuf$driveUri","_options$fuf2","_options$fuf","driveUrl","isNullOrEmpty","_this$taskResult4","reject","window","location","href","fufUrl","senderApp","_requestOptions$pulli","_requestOptions$facto","_requestOptions$timeo","undefined","exports"],"sources":["../../../../Common/FSPrinterClient/FSPrinterClient.ts"],"sourcesContent":["import { Fetch } from \"../HttpClient/FetchImplementation/Fetch\";\nimport { ExceptionLogger, HttpClient } from \"../HttpClient/HttpClient\";\nimport { IHttpClient } from \"../HttpClient/IHttpClient\";\nimport { AuthenticationMode, createAuthenticationProvider } from \"../HttpClient/AuthenticationMode\";\nimport { ICandyApiDraftClient } from \"../CandyApiClient/ICandyApiClient\";\nimport { delay } from \"../../Engine/src/Engine/utils\";\nimport { isNullOrEmpty, reject } from \"../TypingUtils\";\nimport { DraftPresentationType } from \"../CandyApiClient/Types/Presentations/DraftPresentationType\";\nimport { waitPollingTask } from \"../CandyApiClient/Types/PollingTasks/PollingTaskWaiter\";\nimport { DriveHelpers } from \"../DriveIntegration/DriveHelpers\";\n\nimport {\n FSPrinterTaskResult,\n FSPrinterTaskStatus,\n IFSPrinterClient,\n PrintByRulesOptions,\n PrinterOptions,\n PrinterRequestOptions,\n PrinterResultTypes,\n RSVPrinterOptions,\n} from \"./IFSPrinterClient\";\n\nexport class FSPrinterClient implements IFSPrinterClient {\n private readonly httpClient: IHttpClient;\n private readonly candyApiDraftClient: ICandyApiDraftClient;\n\n private pullingDelay: number = 0;\n private factor: number = 0;\n private timeout: number = 0;\n\n private readonly defaultPullingDelay: number = 1200;\n private readonly defaultFactor: number = 2;\n private readonly defaultTimeout: number = 1000 * 60 * 10;\n\n private taskResult: FSPrinterTaskResult | undefined;\n\n private readonly driveHelpers?: DriveHelpers;\n\n public constructor(\n fetchImpl: Fetch,\n baseUrl: string,\n resourceZone: undefined | string,\n authentication: undefined | AuthenticationMode,\n candyApiDraftClient: ICandyApiDraftClient,\n exceptionLogger?: ExceptionLogger,\n driveHelpers?: DriveHelpers\n ) {\n this.httpClient = new HttpClient(\n fetchImpl,\n baseUrl,\n createAuthenticationProvider(authentication),\n {\n resourceZone: resourceZone,\n },\n exceptionLogger\n );\n this.candyApiDraftClient = candyApiDraftClient;\n this.driveHelpers = driveHelpers;\n }\n\n public async printRSV(\n {\n type,\n resultType = PrinterResultTypes.Excel,\n presentation = DraftPresentationType.fuf,\n innerFuf,\n }: RSVPrinterOptions,\n requestOptions?: PrinterRequestOptions\n ): Promise<void> {\n const options: PrinterOptions = {\n resultType: resultType,\n rsvInfo: { type: type },\n presentation: presentation,\n };\n if (innerFuf?.driveUri) {\n let driveUriChecked = innerFuf.driveUri;\n if (this.driveHelpers) {\n driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(innerFuf.driveUri);\n }\n\n options.fuf = { driveUri: driveUriChecked };\n }\n await this.print(options, requestOptions);\n }\n\n public async printByRules(options: PrintByRulesOptions): Promise<void> {\n const partialFufUri = await this.getPartialFufDriveUrl(options.rules);\n let driveUriChecked = partialFufUri;\n if (this.driveHelpers) {\n driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(partialFufUri);\n }\n\n await this.print({\n fuf: {\n driveUri: driveUriChecked,\n },\n resultType: PrinterResultTypes.Pdf,\n ...options.options,\n });\n }\n\n public async print(options: PrinterOptions, requestOptions?: PrinterRequestOptions): Promise<void> {\n this.applyRequestOptions(requestOptions);\n const task = await this.createTask(options);\n await this.runMonitoringTask(task.taskId);\n const resultUrl = this.taskResult?.resultUri;\n this.resetPrintResult();\n this.downloadDocument(resultUrl);\n }\n\n private async getPartialFufDriveUrl(rules: string[]): Promise<string> {\n const downloadFufHref = await this.candyApiDraftClient.getPartialFuf(rules);\n if (downloadFufHref && downloadFufHref?.ContentUri) {\n return downloadFufHref?.ContentUri;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async getInnerFufDriveUrl(): Promise<string> {\n await this.candyApiDraftClient.startGetInnerFufTask();\n const downloadHref = await waitPollingTask(() => this.candyApiDraftClient.getInnerFufTask());\n if (downloadHref) {\n return downloadHref;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async getFufDriveUrl(): Promise<string> {\n await this.candyApiDraftClient.startGetFufWithAttachmentsTask();\n const downloadFufHref = await waitPollingTask(() => this.candyApiDraftClient.getFufWithAttachmentsTask(\"Json\"));\n if (downloadFufHref && \"fuf\" in downloadFufHref && downloadFufHref?.fuf.contentUri) {\n return downloadFufHref?.fuf.contentUri;\n }\n throw new Error(\"downloadFufHref is not defined\");\n }\n\n private async runMonitoringTask(taskId: string): Promise<void> {\n while (!this.taskResult?.resultUri) {\n await this.checkTask(taskId);\n if (!this.taskResult?.resultUri) {\n await delay(this.pullingDelay);\n this.pullingDelay *= this.factor;\n }\n }\n }\n\n private async checkTask(taskId: string): Promise<void> {\n const taskStatus = await this.httpClient.get(`v3/tasks/${taskId}`).json<FSPrinterTaskResult>();\n if (taskStatus.errorInfo) {\n throw new Error(taskStatus.errorInfo.userMessage);\n }\n if (taskStatus.resultUri) {\n this.taskResult = taskStatus;\n return;\n }\n if (this.timeout <= this.pullingDelay) {\n throw new Error(`Timeout ${this.timeout / 60 / 1000} min for print file has expired`);\n }\n }\n\n private async createTask(options: PrinterOptions): Promise<FSPrinterTaskStatus> {\n const presentationUri = await this.getPresentationUri(options);\n\n const optionsWithFuf = this.appendFufUrlToOptions(options, presentationUri);\n const optionsWithSender = this.appendSenderAppToOptions(optionsWithFuf);\n const taskInfo = await this.httpClient\n .post(\"v3/tasks\")\n .withJsonBody(optionsWithSender)\n .json<FSPrinterTaskStatus>();\n return taskInfo;\n }\n\n private async getPresentationUri(options: PrinterOptions) {\n if (options.presentation === DraftPresentationType.innerFuf) {\n if (options.fuf?.driveUri) {\n let driveUriChecked = options.fuf.driveUri;\n if (this.driveHelpers) {\n driveUriChecked = await this.driveHelpers.ensureCandyFrontSrv(options.fuf.driveUri);\n }\n\n return driveUriChecked;\n }\n return await this.getInnerFufDriveUrl();\n }\n return options.fuf?.driveUri ?? (await this.getFufDriveUrl());\n }\n\n private downloadDocument(driveUrl: string | undefined) {\n if (isNullOrEmpty(driveUrl)) {\n reject(`Ссылка на печать документа пустая или undefined. Трейс печати: ${this.taskResult?.taskId}`);\n }\n window.location.href = driveUrl;\n }\n\n private appendFufUrlToOptions(options: PrinterOptions, fufUrl: string): PrinterOptions {\n return { ...options, fuf: { driveUri: fufUrl } };\n }\n\n private appendSenderAppToOptions(options: PrinterOptions): PrinterOptions {\n return { ...options, senderApp: \"candy-front\" };\n }\n\n private applyRequestOptions(requestOptions?: PrinterRequestOptions) {\n this.pullingDelay = requestOptions?.pullingDelay ?? this.defaultPullingDelay;\n this.factor = requestOptions?.factor ?? this.defaultFactor;\n this.timeout = requestOptions?.timeout ?? this.defaultTimeout;\n }\n\n private resetPrintResult() {\n this.taskResult = undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -249,6 +249,12 @@ class KCLangRuntimeUtils {
|
|
|
249
249
|
}
|
|
250
250
|
return undefined;
|
|
251
251
|
}
|
|
252
|
+
regexReplace(value, pattern, replacement, flags) {
|
|
253
|
+
if (pattern == undefined || value == undefined || replacement == undefined || typeof value !== "string") {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
return value.replace(new RegExp(pattern, flags), replacement);
|
|
257
|
+
}
|
|
252
258
|
oneof(values, value) {
|
|
253
259
|
if (values == undefined) {
|
|
254
260
|
return undefined;
|
|
@@ -293,6 +299,9 @@ class KCLangRuntimeUtils {
|
|
|
293
299
|
}
|
|
294
300
|
return (_wrapDecimalOperand2 = (0, _AutocalcCommonFunctions.wrapDecimalOperand)(denominatorVal)) !== null && _wrapDecimalOperand2 !== void 0 ? _wrapDecimalOperand2 : new _big.default(0);
|
|
295
301
|
}
|
|
302
|
+
uuid() {
|
|
303
|
+
return self.crypto.randomUUID();
|
|
304
|
+
}
|
|
296
305
|
}
|
|
297
306
|
exports.KCLangRuntimeUtils = KCLangRuntimeUtils;
|
|
298
307
|
KCLangRuntimeUtils.kcLangUtilsName = "kcLangUtils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KCLangRuntimeUtils.js","names":["_big","_interopRequireDefault","require","_ValidationHelper","_AutocalcCommonFunctions","_DateHelpers","_TypingUtils","isBigSource","value","Big","isBigOrNumber","KCLangRuntimeUtils","and","left","right","undefined","division","wrapDecimalOperand","div","eq","cmp","ge","gte","gt","le","lte","lt","minus","argument","mul","multiply","not","noteq","or","round","fractionDigits","floor","getYear","_Date","Date","getFullYear","dateTime","date","isNotNullOrEmpty","convertDate","sum","add","abs","xabs","length","exists","valueSelector","path","isSnils","normalizedSnils","replace","isNullOrWhiteSpace","result","ValidationHelper","isRegNumSfr","normalizedRegNum","isInn","isOgrn","normalizedOgrn","isValidAccountNumber","bik","account","bikValue","accountValue","isValidMirCardNumber","convertToDecimal","convertToString","toString","regexMatch","pattern","RegExp","test","oneof","values","indexOf","valueAsBig","some","item","substring","str","start","end","dateNow","toLocaleDateString","numerator","_wrapDecimalOperand","split","denominator","_wrapDecimalOperand2","denominatorVal","exports","kcLangUtilsName"],"sources":["../../../Common/KCLangRuntimeUtils.ts"],"sourcesContent":["import Big, { BigSource } from \"big.js\";\n\nimport { ValidationHelper } from \"../Engine/src/Engine/ValidationHelper/ValidationHelper\";\nimport { wrapDecimalOperand } from \"../Engine/src/Helpers/AutocalcCommonFunctions\";\nimport { convertDate } from \"../Engine/src/Helpers/DateHelpers\";\n\nimport { isNotNullOrEmpty, isNullOrWhiteSpace } from \"./TypingUtils\";\n\ntype ValueSelector = (path: string) => string;\ntype BigSourceOrUndefined = BigSource | undefined;\n\nconst isBigSource = (value: unknown): value is BigSource => {\n if (typeof value === \"number\" || typeof value === \"string\" || value instanceof Big) {\n return true;\n }\n return false;\n};\n\nconst isBigOrNumber = (value: Big | number | undefined | null | unknown) =>\n typeof value === \"number\" || value instanceof Big;\n\nexport class KCLangRuntimeUtils {\n public static kcLangUtilsName = \"kcLangUtils\";\n\n public and(left: boolean | undefined, right: boolean | undefined): boolean | undefined {\n if (left == undefined || right == undefined) {\n return undefined;\n }\n return left && right;\n }\n\n public division(left: BigSourceOrUndefined, right: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).div(right);\n }\n return undefined;\n }\n\n public eq(left: BigSourceOrUndefined | boolean, right: BigSourceOrUndefined | boolean): boolean {\n if (\n ((typeof left === \"string\" || typeof left === \"boolean\") && typeof right === \"string\") ||\n typeof right === \"boolean\"\n ) {\n return left === right;\n }\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).cmp(right) === 0;\n }\n return false;\n }\n\n public ge(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).gte(right);\n }\n return false;\n }\n\n public gt(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).gt(right);\n }\n return false;\n }\n\n public le(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).lte(right);\n }\n return false;\n }\n\n public lt(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).lt(right);\n }\n return false;\n }\n\n public minus(argument: BigSourceOrUndefined): unknown {\n if (isBigSource(argument)) {\n return wrapDecimalOperand(argument).mul(-1);\n }\n return undefined;\n }\n\n public multiply(left: BigSourceOrUndefined, right: BigSourceOrUndefined): unknown {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).mul(right);\n }\n return undefined;\n }\n\n public not(left?: boolean): boolean | undefined {\n return left != undefined ? !left : undefined;\n }\n\n public noteq(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n return !this.eq(left, right);\n }\n\n public or(left: boolean | undefined, right: boolean | undefined): boolean | undefined {\n if (typeof left == \"boolean\" || typeof right == \"boolean\") {\n return left || right;\n }\n return undefined;\n }\n\n public round(value: BigSourceOrUndefined, fractionDigits?: number): Big | undefined {\n if (isBigSource(value)) {\n return wrapDecimalOperand(value).round(fractionDigits);\n }\n return undefined;\n }\n\n public floor(value: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(value)) {\n return wrapDecimalOperand(wrapDecimalOperand(value).round(undefined, 0));\n }\n return undefined;\n }\n\n public getYear(value: string): number | undefined {\n return new Date(value)?.getFullYear();\n }\n\n public dateTime(value: string): Date | undefined {\n const date = isNotNullOrEmpty(value) ? convertDate(value) : undefined;\n if (!date) {\n return undefined;\n }\n\n return date;\n }\n\n public sum(left: BigSourceOrUndefined, right: BigSourceOrUndefined): Big | undefined {\n if (left == undefined && right == undefined) {\n return undefined;\n }\n\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).add(right);\n }\n\n if (isBigSource(left)) {\n return wrapDecimalOperand(left);\n }\n\n if (isBigSource(right)) {\n return wrapDecimalOperand(right);\n }\n\n return undefined;\n }\n\n public abs(argument: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(argument)) {\n return wrapDecimalOperand(argument).abs();\n }\n return undefined;\n }\n\n public xabs(argument: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(argument)) {\n const value = wrapDecimalOperand(argument);\n return value.lt(0) ? new Big(0) : value;\n }\n return undefined;\n }\n\n public length(argument: string | undefined | null): number | undefined {\n if (typeof argument === \"string\") {\n return argument.length;\n }\n return undefined;\n }\n\n public exists(valueSelector: (path: string) => unknown, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n return value != undefined && value != \"\";\n }\n\n public isSnils(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedSnils = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedSnils)) {\n return false;\n }\n const result = ValidationHelper.isSnils(normalizedSnils);\n\n return result;\n }\n\n public isRegNumSfr(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedRegNum = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedRegNum)) {\n return false;\n }\n const result = ValidationHelper.isRegNumSfr(normalizedRegNum);\n\n return result;\n }\n\n public isInn(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedSnils = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedSnils)) {\n return false;\n }\n const result = ValidationHelper.isInn(normalizedSnils);\n\n return result;\n }\n\n public isOgrn(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedOgrn = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedOgrn)) {\n return false;\n }\n const result = ValidationHelper.isOgrn(normalizedOgrn);\n\n return result;\n }\n\n public isValidAccountNumber(valueSelector: ValueSelector, bik: string, account: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const bikValue = valueSelector(bik);\n const accountValue = valueSelector(account);\n if (isNullOrWhiteSpace(bikValue) || isNullOrWhiteSpace(accountValue)) {\n return false;\n }\n const result = ValidationHelper.isValidAccountNumber(bikValue, accountValue);\n return result;\n }\n\n public isValidMirCardNumber(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n if (isNullOrWhiteSpace(value)) {\n return false;\n }\n const result = ValidationHelper.isValidMirCardNumber(value);\n\n return result;\n }\n\n public convertToDecimal(argument: BigSourceOrUndefined | string | undefined): Big | undefined {\n return wrapDecimalOperand(argument);\n }\n\n public convertToString(argument: boolean | BigSourceOrUndefined | undefined | null): string | undefined {\n if (typeof argument === \"string\") {\n return argument;\n }\n\n if (typeof argument === \"number\") {\n return argument.toString();\n }\n\n if (typeof argument === \"boolean\") {\n return argument.toString();\n }\n\n if (argument instanceof Big) {\n return argument.toString();\n }\n\n return undefined;\n }\n\n public regexMatch(pattern: string | undefined, value: string | undefined): boolean | undefined {\n if (pattern == undefined || value == undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return new RegExp(pattern).test(value);\n }\n return undefined;\n }\n\n public oneof(values: Array<string | number | Big>, value: string | number | Big): boolean | undefined {\n if (values == undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return values.indexOf(value) !== -1;\n }\n\n if (isBigOrNumber(value)) {\n const valueAsBig = new Big(value);\n return values.some(item => isBigOrNumber(item) && valueAsBig.eq(item));\n }\n\n return false;\n }\n\n public substring(\n str: string | undefined,\n start: number | undefined,\n length: number | undefined\n ): string | undefined {\n if (str == undefined || start == undefined || length == undefined) {\n return undefined;\n }\n if (length <= 0) {\n return \"\";\n }\n const end = start + length;\n\n return str.substring(start, end);\n }\n\n public dateNow(): string | undefined {\n return new Date().toLocaleDateString(\"ru-RU\");\n }\n\n public numerator(argument: string): Big | undefined {\n if (!argument) {\n return new Big(0);\n }\n\n return wrapDecimalOperand(argument.split(\"/\")[0]) ?? new Big(0);\n }\n\n public denominator(argument: string): Big | undefined {\n if (!argument) {\n return new Big(0);\n }\n\n const denominatorVal = argument.split(\"/\")[1];\n\n if (denominatorVal === undefined) {\n return new Big(1);\n }\n\n return wrapDecimalOperand(denominatorVal) ?? new Big(0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"KCLangRuntimeUtils.js","names":["_big","_interopRequireDefault","require","_ValidationHelper","_AutocalcCommonFunctions","_DateHelpers","_TypingUtils","isBigSource","value","Big","isBigOrNumber","KCLangRuntimeUtils","and","left","right","undefined","division","wrapDecimalOperand","div","eq","cmp","ge","gte","gt","le","lte","lt","minus","argument","mul","multiply","not","noteq","or","round","fractionDigits","floor","getYear","_Date","Date","getFullYear","dateTime","date","isNotNullOrEmpty","convertDate","sum","add","abs","xabs","length","exists","valueSelector","path","isSnils","normalizedSnils","replace","isNullOrWhiteSpace","result","ValidationHelper","isRegNumSfr","normalizedRegNum","isInn","isOgrn","normalizedOgrn","isValidAccountNumber","bik","account","bikValue","accountValue","isValidMirCardNumber","convertToDecimal","convertToString","toString","regexMatch","pattern","RegExp","test","regexReplace","replacement","flags","oneof","values","indexOf","valueAsBig","some","item","substring","str","start","end","dateNow","toLocaleDateString","numerator","_wrapDecimalOperand","split","denominator","_wrapDecimalOperand2","denominatorVal","uuid","self","crypto","randomUUID","exports","kcLangUtilsName"],"sources":["../../../Common/KCLangRuntimeUtils.ts"],"sourcesContent":["import Big, { BigSource } from \"big.js\";\n\nimport { ValidationHelper } from \"../Engine/src/Engine/ValidationHelper/ValidationHelper\";\nimport { wrapDecimalOperand } from \"../Engine/src/Helpers/AutocalcCommonFunctions\";\nimport { convertDate } from \"../Engine/src/Helpers/DateHelpers\";\n\nimport { isNotNullOrEmpty, isNullOrWhiteSpace } from \"./TypingUtils\";\n\ntype ValueSelector = (path: string) => string;\ntype BigSourceOrUndefined = BigSource | undefined;\n\nconst isBigSource = (value: unknown): value is BigSource => {\n if (typeof value === \"number\" || typeof value === \"string\" || value instanceof Big) {\n return true;\n }\n return false;\n};\n\nconst isBigOrNumber = (value: Big | number | undefined | null | unknown) =>\n typeof value === \"number\" || value instanceof Big;\n\nexport class KCLangRuntimeUtils {\n public static kcLangUtilsName = \"kcLangUtils\";\n\n public and(left: boolean | undefined, right: boolean | undefined): boolean | undefined {\n if (left == undefined || right == undefined) {\n return undefined;\n }\n return left && right;\n }\n\n public division(left: BigSourceOrUndefined, right: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).div(right);\n }\n return undefined;\n }\n\n public eq(left: BigSourceOrUndefined | boolean, right: BigSourceOrUndefined | boolean): boolean {\n if (\n ((typeof left === \"string\" || typeof left === \"boolean\") && typeof right === \"string\") ||\n typeof right === \"boolean\"\n ) {\n return left === right;\n }\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).cmp(right) === 0;\n }\n return false;\n }\n\n public ge(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).gte(right);\n }\n return false;\n }\n\n public gt(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).gt(right);\n }\n return false;\n }\n\n public le(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).lte(right);\n }\n return false;\n }\n\n public lt(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).lt(right);\n }\n return false;\n }\n\n public minus(argument: BigSourceOrUndefined): unknown {\n if (isBigSource(argument)) {\n return wrapDecimalOperand(argument).mul(-1);\n }\n return undefined;\n }\n\n public multiply(left: BigSourceOrUndefined, right: BigSourceOrUndefined): unknown {\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).mul(right);\n }\n return undefined;\n }\n\n public not(left?: boolean): boolean | undefined {\n return left != undefined ? !left : undefined;\n }\n\n public noteq(left: BigSourceOrUndefined, right: BigSourceOrUndefined): boolean {\n return !this.eq(left, right);\n }\n\n public or(left: boolean | undefined, right: boolean | undefined): boolean | undefined {\n if (typeof left == \"boolean\" || typeof right == \"boolean\") {\n return left || right;\n }\n return undefined;\n }\n\n public round(value: BigSourceOrUndefined, fractionDigits?: number): Big | undefined {\n if (isBigSource(value)) {\n return wrapDecimalOperand(value).round(fractionDigits);\n }\n return undefined;\n }\n\n public floor(value: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(value)) {\n return wrapDecimalOperand(wrapDecimalOperand(value).round(undefined, 0));\n }\n return undefined;\n }\n\n public getYear(value: string): number | undefined {\n return new Date(value)?.getFullYear();\n }\n\n public dateTime(value: string): Date | undefined {\n const date = isNotNullOrEmpty(value) ? convertDate(value) : undefined;\n if (!date) {\n return undefined;\n }\n\n return date;\n }\n\n public sum(left: BigSourceOrUndefined, right: BigSourceOrUndefined): Big | undefined {\n if (left == undefined && right == undefined) {\n return undefined;\n }\n\n if (isBigSource(left) && isBigSource(right)) {\n return wrapDecimalOperand(left).add(right);\n }\n\n if (isBigSource(left)) {\n return wrapDecimalOperand(left);\n }\n\n if (isBigSource(right)) {\n return wrapDecimalOperand(right);\n }\n\n return undefined;\n }\n\n public abs(argument: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(argument)) {\n return wrapDecimalOperand(argument).abs();\n }\n return undefined;\n }\n\n public xabs(argument: BigSourceOrUndefined): Big | undefined {\n if (isBigSource(argument)) {\n const value = wrapDecimalOperand(argument);\n return value.lt(0) ? new Big(0) : value;\n }\n return undefined;\n }\n\n public length(argument: string | undefined | null): number | undefined {\n if (typeof argument === \"string\") {\n return argument.length;\n }\n return undefined;\n }\n\n public exists(valueSelector: (path: string) => unknown, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n return value != undefined && value != \"\";\n }\n\n public isSnils(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedSnils = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedSnils)) {\n return false;\n }\n const result = ValidationHelper.isSnils(normalizedSnils);\n\n return result;\n }\n\n public isRegNumSfr(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedRegNum = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedRegNum)) {\n return false;\n }\n const result = ValidationHelper.isRegNumSfr(normalizedRegNum);\n\n return result;\n }\n\n public isInn(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedSnils = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedSnils)) {\n return false;\n }\n const result = ValidationHelper.isInn(normalizedSnils);\n\n return result;\n }\n\n public isOgrn(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n const normalizedOgrn = value?.replace(/[^0-9]/g, \"\");\n if (isNullOrWhiteSpace(normalizedOgrn)) {\n return false;\n }\n const result = ValidationHelper.isOgrn(normalizedOgrn);\n\n return result;\n }\n\n public isValidAccountNumber(valueSelector: ValueSelector, bik: string, account: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const bikValue = valueSelector(bik);\n const accountValue = valueSelector(account);\n if (isNullOrWhiteSpace(bikValue) || isNullOrWhiteSpace(accountValue)) {\n return false;\n }\n const result = ValidationHelper.isValidAccountNumber(bikValue, accountValue);\n return result;\n }\n\n public isValidMirCardNumber(valueSelector: ValueSelector, path: string): boolean | undefined {\n if (valueSelector == undefined) {\n return undefined;\n }\n const value = valueSelector(path);\n if (isNullOrWhiteSpace(value)) {\n return false;\n }\n const result = ValidationHelper.isValidMirCardNumber(value);\n\n return result;\n }\n\n public convertToDecimal(argument: BigSourceOrUndefined | string | undefined): Big | undefined {\n return wrapDecimalOperand(argument);\n }\n\n public convertToString(argument: boolean | BigSourceOrUndefined | undefined | null): string | undefined {\n if (typeof argument === \"string\") {\n return argument;\n }\n\n if (typeof argument === \"number\") {\n return argument.toString();\n }\n\n if (typeof argument === \"boolean\") {\n return argument.toString();\n }\n\n if (argument instanceof Big) {\n return argument.toString();\n }\n\n return undefined;\n }\n\n public regexMatch(pattern: string | undefined, value: string | undefined): boolean | undefined {\n if (pattern == undefined || value == undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return new RegExp(pattern).test(value);\n }\n return undefined;\n }\n\n public regexReplace(\n value: string | undefined,\n pattern: string | undefined,\n replacement: string | undefined,\n flags?: string\n ): string | undefined {\n if (pattern == undefined || value == undefined || replacement == undefined || typeof value !== \"string\") {\n return undefined;\n }\n\n return value.replace(new RegExp(pattern, flags), replacement);\n }\n\n public oneof(values: Array<string | number | Big>, value: string | number | Big): boolean | undefined {\n if (values == undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return values.indexOf(value) !== -1;\n }\n\n if (isBigOrNumber(value)) {\n const valueAsBig = new Big(value);\n return values.some(item => isBigOrNumber(item) && valueAsBig.eq(item));\n }\n\n return false;\n }\n\n public substring(\n str: string | undefined,\n start: number | undefined,\n length: number | undefined\n ): string | undefined {\n if (str == undefined || start == undefined || length == undefined) {\n return undefined;\n }\n if (length <= 0) {\n return \"\";\n }\n const end = start + length;\n\n return str.substring(start, end);\n }\n\n public dateNow(): string | undefined {\n return new Date().toLocaleDateString(\"ru-RU\");\n }\n\n public numerator(argument: string): Big | undefined {\n if (!argument) {\n return new Big(0);\n }\n\n return wrapDecimalOperand(argument.split(\"/\")[0]) ?? new Big(0);\n }\n\n public denominator(argument: string): Big | undefined {\n if (!argument) {\n return new Big(0);\n }\n\n const denominatorVal = argument.split(\"/\")[1];\n\n if (denominatorVal === undefined) {\n return new Big(1);\n }\n\n return wrapDecimalOperand(denominatorVal) ?? new Big(0);\n }\n\n public uuid(): string | undefined {\n return self.crypto.randomUUID();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.writeKClangFiles = writeKClangFiles;
|
|
7
|
+
var path = _interopRequireWildcard(require("path"));
|
|
8
|
+
var _fsExtra = require("fs-extra");
|
|
9
|
+
var _StaticLogger = require("../../Commons/Logging/StaticLogger");
|
|
10
|
+
var _WriteResourceFile = require("./WriteResourceFile");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
async function writeKClangFiles(gfv, formDirectory, resourcesDirectory, parentLogger = (0, _StaticLogger.getLogger)(), buildCache, buildCacheOptions, buildCacheExist) {
|
|
14
|
+
await (0, _WriteResourceFile.writeResourceFile)("FLASHNORM", "All.kclang", path.join("normalize", `${gfv}.All.kclang`), gfv, formDirectory, resourcesDirectory, parentLogger, buildCache, buildCacheOptions, buildCacheExist);
|
|
15
|
+
const formDistPath = path.join(formDirectory, "normalizers");
|
|
16
|
+
const kclangFiles = (await (0, _fsExtra.pathExists)(formDistPath)) ? (await (0, _fsExtra.readdir)(formDistPath)).filter(x => path.extname(x) === ".kclang") : [];
|
|
17
|
+
for (const fileName of kclangFiles) {
|
|
18
|
+
await (0, _WriteResourceFile.writeResourceFile)("KCLANGNORM", path.join("..", "normalizers", fileName), path.join("normalize", `${gfv}.${fileName}`), gfv, formDirectory, resourcesDirectory, parentLogger, buildCache, buildCacheOptions, buildCacheExist);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=WriteKClangFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteKClangFiles.js","names":["path","_interopRequireWildcard","require","_fsExtra","_StaticLogger","_WriteResourceFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeKClangFiles","gfv","formDirectory","resourcesDirectory","parentLogger","getLogger","buildCache","buildCacheOptions","buildCacheExist","writeResourceFile","join","formDistPath","kclangFiles","pathExists","readdir","filter","x","extname","fileName"],"sources":["../../../../../src/BuildTasks/Form/WriteKClangFiles.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { pathExists, readdir } from \"fs-extra\";\n\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { BuildCache, FormBuildCacheOptions } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\n\nimport { writeResourceFile } from \"./WriteResourceFile\";\n\nexport async function writeKClangFiles(\n gfv: string,\n formDirectory: string,\n resourcesDirectory: string,\n parentLogger: ILogger = getLogger(),\n buildCache?: BuildCache,\n buildCacheOptions?: FormBuildCacheOptions,\n buildCacheExist?: boolean\n): Promise<void> {\n await writeResourceFile(\n \"FLASHNORM\",\n \"All.kclang\",\n path.join(\"normalize\", `${gfv}.All.kclang`),\n gfv,\n formDirectory,\n resourcesDirectory,\n parentLogger,\n buildCache,\n buildCacheOptions,\n buildCacheExist\n );\n\n const formDistPath = path.join(formDirectory, \"normalizers\");\n const kclangFiles = (await pathExists(formDistPath))\n ? (await readdir(formDistPath)).filter(x => path.extname(x) === \".kclang\")\n : [];\n\n for (const fileName of kclangFiles) {\n await writeResourceFile(\n \"KCLANGNORM\",\n path.join(\"..\", \"normalizers\", fileName),\n path.join(\"normalize\", `${gfv}.${fileName}`),\n gfv,\n formDirectory,\n resourcesDirectory,\n parentLogger,\n buildCache,\n buildCacheOptions,\n buildCacheExist\n );\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAAwD,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEjD,eAAeW,gBAAgBA,CAClCC,GAAW,EACXC,aAAqB,EACrBC,kBAA0B,EAC1BC,YAAqB,GAAG,IAAAC,uBAAS,EAAC,CAAC,EACnCC,UAAuB,EACvBC,iBAAyC,EACzCC,eAAyB,EACZ;EACb,MAAM,IAAAC,oCAAiB,EACnB,WAAW,EACX,YAAY,EACZnC,IAAI,CAACoC,IAAI,CAAC,WAAW,EAAE,GAAGT,GAAG,aAAa,CAAC,EAC3CA,GAAG,EACHC,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZE,UAAU,EACVC,iBAAiB,EACjBC,eACJ,CAAC;EAED,MAAMG,YAAY,GAAGrC,IAAI,CAACoC,IAAI,CAACR,aAAa,EAAE,aAAa,CAAC;EAC5D,MAAMU,WAAW,GAAG,CAAC,MAAM,IAAAC,mBAAU,EAACF,YAAY,CAAC,IAC7C,CAAC,MAAM,IAAAG,gBAAO,EAACH,YAAY,CAAC,EAAEI,MAAM,CAACC,CAAC,IAAI1C,IAAI,CAAC2C,OAAO,CAACD,CAAC,CAAC,KAAK,SAAS,CAAC,GACxE,EAAE;EAER,KAAK,MAAME,QAAQ,IAAIN,WAAW,EAAE;IAChC,MAAM,IAAAH,oCAAiB,EACnB,YAAY,EACZnC,IAAI,CAACoC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAEQ,QAAQ,CAAC,EACxC5C,IAAI,CAACoC,IAAI,CAAC,WAAW,EAAE,GAAGT,GAAG,IAAIiB,QAAQ,EAAE,CAAC,EAC5CjB,GAAG,EACHC,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZE,UAAU,EACVC,iBAAiB,EACjBC,eACJ,CAAC;EACL;AACJ","ignoreList":[]}
|
package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js
CHANGED
|
@@ -13,7 +13,7 @@ _TypedProcessWorker.TypedProcessWorker.start(async ([pathToGeneratorProcessSugar
|
|
|
13
13
|
const formContent = await processSugar(formSource.sugarContent, formSource.resources, generationOptions);
|
|
14
14
|
|
|
15
15
|
// eslint-disable-next-line no-warning-comments
|
|
16
|
-
// TODO(2026-
|
|
16
|
+
// TODO(2026-06-30): временно отключаем валидацию компиляции Flang на бэкенде (исправить в задаче https://yt.skbkontur.ru/issue/FS-9242)
|
|
17
17
|
// const validator = new GeneratorSourcesValidator(generationOptions);
|
|
18
18
|
// await validator.validate(formContent);
|
|
19
19
|
|
package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadSourcesAndProcessSugarWorker.js","names":["_IterableUtils","require","_GeneratorRequireUtils","_TypedProcessWorker","TypedProcessWorker","start","pathToGeneratorProcessSugar","formSourcesPath","farmDirectory","hlFarmDirectoryPath","generationOptions","purgeCache","requestNumber","send","formSource","importer","GeneratorSourcesImporter","readSources","importReadSources","processSugar","importProcessSugar","formContent","sugarContent","resources","result","key","formContentItem","iterateEntries","Buffer","payload","toString","encoding","type","gfv","generatedForm","error","Error","_formSource","errorText","stack","_formSource2"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.ts"],"sourcesContent":["import { GeneratedForm, GenerationOptions } from \"../../Form/GenerateForm\";\nimport { FormSource } from \"../../ReadFormSource\";\nimport { iterateEntries } from \"../../../../../Common/IterableUtils\";\n\nimport { GeneratorSourcesImporter } from \"./GeneratorRequireUtils\";\nimport { TypedProcessWorker } from \"./TypedProcessWorker\";\n\nexport interface GeneratedFormInterProcessMessage {\n [relativeFileName: string]: string | { payload: string; encoding: string };\n}\n\nexport type CallMessage = [string, string, string, string, undefined | GenerationOptions, boolean, number];\nexport type CallResponse =\n | { type: \"Result\"; gfv: string; generatedForm: GeneratedFormInterProcessMessage; requestNumber: number }\n | { type: \"Error\"; gfv?: string; errorText: string; requestNumber: number };\n\nTypedProcessWorker.start<CallMessage, CallResponse>(\n async (\n [\n pathToGeneratorProcessSugar,\n formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n generationOptions,\n purgeCache,\n requestNumber,\n ],\n send\n ): Promise<void> => {\n let formSource: FormSource | undefined;\n try {\n const importer = new GeneratorSourcesImporter(purgeCache);\n const readSources = await importer.importReadSources(pathToGeneratorProcessSugar);\n formSource = await readSources(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n\n const processSugar = await importer.importProcessSugar(pathToGeneratorProcessSugar);\n\n const formContent: GeneratedForm = await processSugar(\n formSource.sugarContent,\n formSource.resources,\n generationOptions\n );\n\n // eslint-disable-next-line no-warning-comments\n // TODO(2026-
|
|
1
|
+
{"version":3,"file":"ReadSourcesAndProcessSugarWorker.js","names":["_IterableUtils","require","_GeneratorRequireUtils","_TypedProcessWorker","TypedProcessWorker","start","pathToGeneratorProcessSugar","formSourcesPath","farmDirectory","hlFarmDirectoryPath","generationOptions","purgeCache","requestNumber","send","formSource","importer","GeneratorSourcesImporter","readSources","importReadSources","processSugar","importProcessSugar","formContent","sugarContent","resources","result","key","formContentItem","iterateEntries","Buffer","payload","toString","encoding","type","gfv","generatedForm","error","Error","_formSource","errorText","stack","_formSource2"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.ts"],"sourcesContent":["import { GeneratedForm, GenerationOptions } from \"../../Form/GenerateForm\";\nimport { FormSource } from \"../../ReadFormSource\";\nimport { iterateEntries } from \"../../../../../Common/IterableUtils\";\n\nimport { GeneratorSourcesImporter } from \"./GeneratorRequireUtils\";\nimport { TypedProcessWorker } from \"./TypedProcessWorker\";\n\nexport interface GeneratedFormInterProcessMessage {\n [relativeFileName: string]: string | { payload: string; encoding: string };\n}\n\nexport type CallMessage = [string, string, string, string, undefined | GenerationOptions, boolean, number];\nexport type CallResponse =\n | { type: \"Result\"; gfv: string; generatedForm: GeneratedFormInterProcessMessage; requestNumber: number }\n | { type: \"Error\"; gfv?: string; errorText: string; requestNumber: number };\n\nTypedProcessWorker.start<CallMessage, CallResponse>(\n async (\n [\n pathToGeneratorProcessSugar,\n formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n generationOptions,\n purgeCache,\n requestNumber,\n ],\n send\n ): Promise<void> => {\n let formSource: FormSource | undefined;\n try {\n const importer = new GeneratorSourcesImporter(purgeCache);\n const readSources = await importer.importReadSources(pathToGeneratorProcessSugar);\n formSource = await readSources(formSourcesPath, farmDirectory, hlFarmDirectoryPath);\n\n const processSugar = await importer.importProcessSugar(pathToGeneratorProcessSugar);\n\n const formContent: GeneratedForm = await processSugar(\n formSource.sugarContent,\n formSource.resources,\n generationOptions\n );\n\n // eslint-disable-next-line no-warning-comments\n // TODO(2026-06-30): временно отключаем валидацию компиляции Flang на бэкенде (исправить в задаче https://yt.skbkontur.ru/issue/FS-9242)\n // const validator = new GeneratorSourcesValidator(generationOptions);\n // await validator.validate(formContent);\n\n const result: GeneratedFormInterProcessMessage = {};\n\n // NOTE Because only JSON are allowed for IPC we need to convert Buffer -> Base64\n // Another solution is use a stream, but formContent still need to convert or send by chunks\n for (const [key, formContentItem] of iterateEntries(formContent)) {\n // @ts-ignore\n result[key] =\n formContentItem instanceof Buffer\n ? { payload: formContentItem.toString(\"base64\"), encoding: \"base64\" }\n : formContentItem;\n }\n\n send({\n type: \"Result\",\n gfv: formSource.resources.gfv,\n generatedForm: result,\n requestNumber: requestNumber,\n });\n } catch (error) {\n if (error instanceof Error) {\n send({\n type: \"Error\",\n gfv: formSource?.resources.gfv,\n errorText: `${error.toString()}\\n${error.stack}`,\n requestNumber: requestNumber,\n });\n } else {\n send({\n type: \"Error\",\n gfv: formSource?.resources.gfv,\n errorText: `${error}`,\n requestNumber: requestNumber,\n });\n }\n }\n }\n);\n"],"mappings":";;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAWAG,sCAAkB,CAACC,KAAK,CACpB,OACI,CACIC,2BAA2B,EAC3BC,eAAe,EACfC,aAAa,EACbC,mBAAmB,EACnBC,iBAAiB,EACjBC,UAAU,EACVC,aAAa,CAChB,EACDC,IAAI,KACY;EAChB,IAAIC,UAAkC;EACtC,IAAI;IACA,MAAMC,QAAQ,GAAG,IAAIC,+CAAwB,CAACL,UAAU,CAAC;IACzD,MAAMM,WAAW,GAAG,MAAMF,QAAQ,CAACG,iBAAiB,CAACZ,2BAA2B,CAAC;IACjFQ,UAAU,GAAG,MAAMG,WAAW,CAACV,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,CAAC;IAEnF,MAAMU,YAAY,GAAG,MAAMJ,QAAQ,CAACK,kBAAkB,CAACd,2BAA2B,CAAC;IAEnF,MAAMe,WAA0B,GAAG,MAAMF,YAAY,CACjDL,UAAU,CAACQ,YAAY,EACvBR,UAAU,CAACS,SAAS,EACpBb,iBACJ,CAAC;;IAED;IACA;IACA;IACA;;IAEA,MAAMc,MAAwC,GAAG,CAAC,CAAC;;IAEnD;IACA;IACA,KAAK,MAAM,CAACC,GAAG,EAAEC,eAAe,CAAC,IAAI,IAAAC,6BAAc,EAACN,WAAW,CAAC,EAAE;MAC9D;MACAG,MAAM,CAACC,GAAG,CAAC,GACPC,eAAe,YAAYE,MAAM,GAC3B;QAAEC,OAAO,EAAEH,eAAe,CAACI,QAAQ,CAAC,QAAQ,CAAC;QAAEC,QAAQ,EAAE;MAAS,CAAC,GACnEL,eAAe;IAC7B;IAEAb,IAAI,CAAC;MACDmB,IAAI,EAAE,QAAQ;MACdC,GAAG,EAAEnB,UAAU,CAACS,SAAS,CAACU,GAAG;MAC7BC,aAAa,EAAEV,MAAM;MACrBZ,aAAa,EAAEA;IACnB,CAAC,CAAC;EACN,CAAC,CAAC,OAAOuB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYC,KAAK,EAAE;MAAA,IAAAC,WAAA;MACxBxB,IAAI,CAAC;QACDmB,IAAI,EAAE,OAAO;QACbC,GAAG,GAAAI,WAAA,GAAEvB,UAAU,cAAAuB,WAAA,uBAAVA,WAAA,CAAYd,SAAS,CAACU,GAAG;QAC9BK,SAAS,EAAE,GAAGH,KAAK,CAACL,QAAQ,CAAC,CAAC,KAAKK,KAAK,CAACI,KAAK,EAAE;QAChD3B,aAAa,EAAEA;MACnB,CAAC,CAAC;IACN,CAAC,MAAM;MAAA,IAAA4B,YAAA;MACH3B,IAAI,CAAC;QACDmB,IAAI,EAAE,OAAO;QACbC,GAAG,GAAAO,YAAA,GAAE1B,UAAU,cAAA0B,YAAA,uBAAVA,YAAA,CAAYjB,SAAS,CAACU,GAAG;QAC9BK,SAAS,EAAE,GAAGH,KAAK,EAAE;QACrBvB,aAAa,EAAEA;MACnB,CAAC,CAAC;IACN;EACJ;AACJ,CACJ,CAAC","ignoreList":[]}
|