@kontur.candy/tools 2.232.0 → 2.233.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.
@@ -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\";\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 } 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\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\";\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 instantResultDelay?: number\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 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 getPartialFuf(rules: string[]): Promise<BaseGetFufResponse | undefined>;\n getInnerFuf(): Promise<string | undefined>;\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<number>;\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 BaseGetFufResponse {\n ContentUri: string;\n Name: string;\n}\n\nexport interface FufWithAttachmentsResponse {\n Fuf: BaseGetFufResponse;\n attachments: GetAttachmentsResponse[];\n}\n\nexport interface CandyApiErrorResponse {\n message: string;\n errorCode: \"InvalidEditSession\" | string;\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\";\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 } 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\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 instantResultDelay?: number\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 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 getPartialFuf(rules: string[]): Promise<BaseGetFufResponse | undefined>;\n getInnerFuf(): Promise<string | undefined>;\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<number>;\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 BaseGetFufResponse {\n ContentUri: string;\n Name: string;\n}\n\nexport interface FufWithAttachmentsResponse {\n Fuf: BaseGetFufResponse;\n attachments: GetAttachmentsResponse[];\n}\n\nexport interface CandyApiErrorResponse {\n message: string;\n errorCode: \"InvalidEditSession\" | 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 { InterdocumentCheckerResult } 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 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 groups: ErrorLogGroup[];\n interdocumentCheckerResult?: InterdocumentCheckerResult | null;\n}\n"],"mappings":";;;;;;IAGYA,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
+ {"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 { InterdocumentCheckerResult } 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 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 groups: ErrorLogGroup[];\n interdocumentCheckerResult?: InterdocumentCheckerResult | null;\n}\n"],"mappings":";;;;;;IAGYA,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":[]}
@@ -26,7 +26,7 @@ let BuildServerBackendResourcesUpdatesController = exports.BuildServerBackendRes
26
26
  this.farmWatchers = void 0;
27
27
  this.formWatchers = void 0;
28
28
  this.allFarmConfig = void 0;
29
- this.farmWatchingRegexps = ["sugarTemplates", "legacyfetchfunctions", "jsHelpers", `images`, "tour", "controls", "commonResources", "externalConverters"].map(_GlobToRegexp.globToRegexp);
29
+ this.farmWatchingRegexps = ["sugarTemplates", "legacyfetchfunctions", "kclangfetchfunctions", "jsHelpers", `images`, "tour", "controls", "commonResources", "externalConverters"].map(_GlobToRegexp.globToRegexp);
30
30
  this.formsWatchingRegexps = [`**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/schemas`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/converters`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/mergers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/autocalc`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/validations`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/helpers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/sugar`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/normalize`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/normalizers`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/unmap`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/map`, `**/**/**/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/patch`].map(_GlobToRegexp.globToRegexp);
31
31
  this.getHandleFSUpdate = directoriesRegExps => (_eventType, filePath, rootDir, force = false) => {
32
32
  if (force || directoriesRegExps.some(x => x.test(filePath))) {
@@ -1 +1 @@
1
- {"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GitUtils","_GlobToRegexp","_dec","_class","GIT_BRANCH_POLL_DELAY","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","farmWatchingRegexps","map","globToRegexp","formsWatchingRegexps","WellKnownDirectories","CandySubdirectoryName","FormJsonFileName","getHandleFSUpdate","directoriesRegExps","_eventType","filePath","rootDir","force","some","x","test","stat","path","join","_err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","beforeStart","config","getDirectoryWatcher","farmDirectory","formRootDirectory","normalize","FormsDirectory","directoryPath","fsUpdateHandler","fsWatcher","watch","recursive","_","debounce","y","savedBranch","checkGitBranch","currentBranch","getGitBranch","gitPollIntervalId","setInterval","getLastUpdateTime","toString","afterStop","_this$farmWatchers","_this$formWatchers","clearWatcher","watcher","close","clearInterval","forEach","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","wait","Promise","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\nimport { getGitBranch } from \"../../../Commons/GitUtils\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\ntype FSUpdateHandler = (eventType: string, filePath: string, rootDir: string, force?: boolean) => void;\n\ninterface DirectoryWatcher {\n fsWatcher: FSWatcher;\n gitPollIntervalId: NodeJS.Timeout;\n}\nconst GIT_BRANCH_POLL_DELAY = 3000;\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: DirectoryWatcher[];\n private formWatchers?: DirectoryWatcher[];\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"sugarTemplates\",\n \"legacyfetchfunctions\",\n \"jsHelpers\",\n `images`,\n \"tour\",\n \"controls\",\n \"commonResources\",\n \"externalConverters\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/schemas`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/converters`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/mergers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/autocalc`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/validations`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/helpers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/sugar`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalize`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalizers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/unmap`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/map`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/patch`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n this.getDirectoryWatcher(config.farmDirectory, this.getHandleFSUpdate(this.farmWatchingRegexps))\n );\n\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(\n path.join(config.farmDirectory, \"..\", WellKnownDirectories.FormsDirectory)\n );\n\n return this.getDirectoryWatcher(formRootDirectory, this.getHandleFSUpdate(this.formsWatchingRegexps));\n });\n }\n\n private getDirectoryWatcher(directoryPath: string, fsUpdateHandler: FSUpdateHandler): DirectoryWatcher {\n // @ts-ignore\n const fsWatcher = watch(\n directoryPath,\n { recursive: true },\n _.debounce((x: string, y: string) => fsUpdateHandler(x, y, directoryPath), 200)\n );\n\n let savedBranch: string | null = null;\n const checkGitBranch = () => {\n const currentBranch = getGitBranch(directoryPath);\n\n if (!savedBranch) {\n savedBranch = currentBranch;\n } else if (currentBranch !== savedBranch) {\n savedBranch = currentBranch;\n fsUpdateHandler(\"git\", \"\", directoryPath, true);\n }\n };\n\n return { fsWatcher: fsWatcher, gitPollIntervalId: setInterval(checkGitBranch, GIT_BRANCH_POLL_DELAY) };\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(): Promise<string> {\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n const clearWatcher = (watcher: DirectoryWatcher) => {\n watcher.fsWatcher.close();\n clearInterval(watcher.gitPollIntervalId);\n };\n this.farmWatchers?.forEach(clearWatcher);\n this.formWatchers?.forEach(clearWatcher);\n }\n\n private readonly getHandleFSUpdate: (directoriesRegExps: RegExp[]) => FSUpdateHandler =\n (directoriesRegExps: RegExp[]) =>\n (_eventType: string, filePath: string, rootDir: string, force: boolean = false) => {\n if (force || directoriesRegExps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (_err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (force || fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BuildServerBackendResourcesUpdatesController.js","names":["_fs","require","_path","_interopRequireDefault","_lodash","_Methods","_Params","_Results","_SingletonController","_WellKnownDirectories","_GitUtils","_GlobToRegexp","_dec","_class","GIT_BRANCH_POLL_DELAY","BuildServerBackendResourcesUpdatesController","exports","httpGet","httpReturn","PlainText","httpQueryParam","httpType","Number","SingletonController","constructor","allFarmConfig","lastUpdateTime","updateMonitor","Monitor","farmWatchers","formWatchers","farmWatchingRegexps","map","globToRegexp","formsWatchingRegexps","WellKnownDirectories","CandySubdirectoryName","FormJsonFileName","getHandleFSUpdate","directoriesRegExps","_eventType","filePath","rootDir","force","some","x","test","stat","path","join","_err","fileStat","fileTicks","Math","max","mtimeMs","ctimeMs","Date","now","pulseAll","beforeStart","config","getDirectoryWatcher","farmDirectory","formRootDirectory","normalize","FormsDirectory","directoryPath","fsUpdateHandler","fsWatcher","watch","recursive","_","debounce","y","savedBranch","checkGitBranch","currentBranch","getGitBranch","gitPollIntervalId","setInterval","getLastUpdateTime","toString","afterStop","_this$farmWatchers","_this$formWatchers","clearWatcher","watcher","close","clearInterval","forEach","_applyDecoratedDescriptor2","default","prototype","Object","getOwnPropertyDescriptor","awaiters","waitPromiseHandler","resolve","push","wait","Promise","awaiter"],"sources":["../../../../../../src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.ts"],"sourcesContent":["import { FSWatcher, watch, stat } from \"fs\";\nimport path from \"path\";\n\nimport _ from \"lodash\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { httpGet } from \"../../../Commons/HttpServer/AttributeRouting/Methods\";\nimport { httpQueryParam, httpType } from \"../../../Commons/HttpServer/AttributeRouting/Params\";\nimport { httpReturn } from \"../../../Commons/HttpServer/AttributeRouting/Results\";\nimport { SingletonController } from \"../../../Commons/HttpServer/ExpressWrapper/SingletonController\";\nimport { WellKnownDirectories } from \"../../../../../Common/WellKnownDirectories\";\nimport { getGitBranch } from \"../../../Commons/GitUtils\";\n\nimport { globToRegexp } from \"./GlobToRegexp\";\n\ntype FSUpdateHandler = (eventType: string, filePath: string, rootDir: string, force?: boolean) => void;\n\ninterface DirectoryWatcher {\n fsWatcher: FSWatcher;\n gitPollIntervalId: NodeJS.Timeout;\n}\nconst GIT_BRANCH_POLL_DELAY = 3000;\n\nexport class BuildServerBackendResourcesUpdatesController extends SingletonController {\n private lastUpdateTime = 0;\n private readonly updateMonitor: Monitor = new Monitor();\n private farmWatchers?: DirectoryWatcher[];\n private formWatchers?: DirectoryWatcher[];\n private readonly allFarmConfig: FarmConfig[];\n private readonly farmWatchingRegexps = [\n \"sugarTemplates\",\n \"legacyfetchfunctions\",\n \"kclangfetchfunctions\",\n \"jsHelpers\",\n `images`,\n \"tour\",\n \"controls\",\n \"commonResources\",\n \"externalConverters\",\n ].map(globToRegexp);\n private readonly formsWatchingRegexps = [\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/schemas`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/converters`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/mergers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/autocalc`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/validations`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/fetchfunctions`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/helpers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/sugar`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalize`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/normalizers`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/unmap`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/map`,\n `**/**/**/${WellKnownDirectories.CandySubdirectoryName}/patch`,\n ].map(globToRegexp);\n\n public constructor(allFarmConfig: FarmConfig[]) {\n super();\n this.allFarmConfig = allFarmConfig;\n this.lastUpdateTime = Date.now();\n }\n\n public async beforeStart(): Promise<void> {\n this.farmWatchers = this.allFarmConfig.map(config =>\n this.getDirectoryWatcher(config.farmDirectory, this.getHandleFSUpdate(this.farmWatchingRegexps))\n );\n\n this.formWatchers = this.allFarmConfig.map(config => {\n const formRootDirectory = path.normalize(\n path.join(config.farmDirectory, \"..\", WellKnownDirectories.FormsDirectory)\n );\n\n return this.getDirectoryWatcher(formRootDirectory, this.getHandleFSUpdate(this.formsWatchingRegexps));\n });\n }\n\n private getDirectoryWatcher(directoryPath: string, fsUpdateHandler: FSUpdateHandler): DirectoryWatcher {\n // @ts-ignore\n const fsWatcher = watch(\n directoryPath,\n { recursive: true },\n _.debounce((x: string, y: string) => fsUpdateHandler(x, y, directoryPath), 200)\n );\n\n let savedBranch: string | null = null;\n const checkGitBranch = () => {\n const currentBranch = getGitBranch(directoryPath);\n\n if (!savedBranch) {\n savedBranch = currentBranch;\n } else if (currentBranch !== savedBranch) {\n savedBranch = currentBranch;\n fsUpdateHandler(\"git\", \"\", directoryPath, true);\n }\n };\n\n return { fsWatcher: fsWatcher, gitPollIntervalId: setInterval(checkGitBranch, GIT_BRANCH_POLL_DELAY) };\n }\n\n @httpGet(\n \"/updates-observer/check-last-update-long-poll\",\n httpReturn.PlainText,\n httpQueryParam(\"prevLastUpdate\", httpType.Number)\n )\n public async getLastUpdateTime(): Promise<string> {\n return this.lastUpdateTime.toString();\n }\n\n public async afterStop(): Promise<void> {\n const clearWatcher = (watcher: DirectoryWatcher) => {\n watcher.fsWatcher.close();\n clearInterval(watcher.gitPollIntervalId);\n };\n this.farmWatchers?.forEach(clearWatcher);\n this.formWatchers?.forEach(clearWatcher);\n }\n\n private readonly getHandleFSUpdate: (directoriesRegExps: RegExp[]) => FSUpdateHandler =\n (directoriesRegExps: RegExp[]) =>\n (_eventType: string, filePath: string, rootDir: string, force: boolean = false) => {\n if (force || directoriesRegExps.some(x => x.test(filePath))) {\n stat(path.join(rootDir, filePath), (_err, fileStat) => {\n const fileTicks = Math.max(fileStat.mtimeMs, fileStat.ctimeMs);\n if (force || fileTicks > this.lastUpdateTime) {\n this.lastUpdateTime = Date.now();\n this.updateMonitor.pulseAll();\n }\n });\n }\n };\n}\n\nclass Monitor {\n private awaiters: Array<() => void> = [];\n\n public wait(): Promise<void> {\n return new Promise(this.waitPromiseHandler);\n }\n\n public pulseAll(): void {\n const awaiters = [...this.awaiters];\n this.awaiters = [];\n for (const awaiter of awaiters) {\n awaiter();\n }\n }\n\n private readonly waitPromiseHandler = (resolve: () => void) => {\n this.awaiters.push(resolve);\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontur.candy/tools",
3
- "version": "2.232.0",
3
+ "version": "2.233.0",
4
4
  "description": "",
5
5
  "files": [
6
6
  "candy.js",