@kontur.candy/tools 2.214.0 → 2.216.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/distr/Common/CandyApiClient/CandyApiClient.js +3 -2
  2. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
  3. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
  4. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
  5. package/distr/Common/CandyApiClient/IsBuffer.js +5 -1
  6. package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -1
  7. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -1
  8. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -1
  9. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -1
  10. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -1
  11. package/distr/Common/Errors/ExtendedError.js +1 -0
  12. package/distr/Common/Errors/ExtendedError.js.map +1 -1
  13. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -1
  14. package/distr/Common/HttpClient/HttpClient.js +10 -5
  15. package/distr/Common/HttpClient/HttpClient.js.map +1 -1
  16. package/distr/Common/HttpClient/IHttpClient.js.map +1 -1
  17. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -1
  18. package/distr/Common/ModelPath/ModelPath.js +0 -2
  19. package/distr/Common/ModelPath/ModelPath.js.map +1 -1
  20. package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -1
  21. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +2 -3
  22. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -1
  23. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +1 -2
  24. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -1
  25. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +1 -2
  26. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -1
  27. package/distr/Common/TypingUtils.js +1 -5
  28. package/distr/Common/TypingUtils.js.map +1 -1
  29. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +1 -0
  30. package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -1
  31. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +1 -0
  32. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -1
  33. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +1 -0
  34. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -1
  35. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +3 -1
  36. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -1
  37. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +1 -0
  38. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -1
  39. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -0
  40. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -1
  41. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +4 -4
  42. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -1
  43. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +1 -0
  44. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -1
  45. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +0 -1
  46. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -1
  47. package/distr/Tools/src/BuildTasks/ReadFormSource.js +2 -1
  48. package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -1
  49. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +0 -3
  50. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -1
  51. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -1
  52. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +5 -1
  53. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -1
  54. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +0 -1
  55. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -1
  56. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +5 -6
  57. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -1
  58. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +1 -1
  59. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -1
  60. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -1
  61. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +0 -2
  62. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -1
  63. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -0
  64. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -1
  65. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +0 -1
  66. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -1
  67. package/distr/Tools/src/CheckNodeJsVersion.js +0 -1
  68. package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -1
  69. package/distr/Tools/src/Commons/ExecUtils.js +1 -0
  70. package/distr/Tools/src/Commons/ExecUtils.js.map +1 -1
  71. package/distr/Tools/src/Commons/FsUtils.js.map +1 -1
  72. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +7 -0
  73. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -1
  74. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +0 -1
  75. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -1
  76. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +0 -1
  77. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -1
  78. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +0 -1
  79. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -1
  80. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +0 -1
  81. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -1
  82. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +0 -1
  83. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -1
  84. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +1 -0
  85. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -1
  86. package/distr/Tools/src/Commons/Logging/ELKLogger.js +0 -1
  87. package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -1
  88. package/distr/Tools/src/Commons/Logging/Logger.js +1 -1
  89. package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -1
  90. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -1
  91. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +0 -2
  92. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -1
  93. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +6 -6
  94. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -1
  95. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +1 -7
  96. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -1
  97. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +1 -4
  98. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -1
  99. package/distr/Tools/src/FormWebpackConfiguration/variables.less +2 -0
  100. package/distr/Tools/src/ReadFarmConfig.js +1 -1
  101. package/distr/Tools/src/ReadFarmConfig.js.map +1 -1
  102. package/distr/Tools/src/SelfUpdate.js +0 -1
  103. package/distr/Tools/src/SelfUpdate.js.map +1 -1
  104. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  105. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  106. package/package.json +2 -2
  107. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +0 -22
  108. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +0 -1
  109. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +0 -2
  110. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +0 -49
  111. package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
  112. package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
  113. package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
  114. package/distr/Tools/src/LocalServerFrontEndDist/index.html +0 -1
  115. package/distr/Tools/src/LocalServerFrontEndDist/index.js +0 -3
  116. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +0 -60
  117. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ChainableValueProducer.js","names":["_lodash","_interopRequireDefault","require","_pLimit","_IterableUtils","_TypingUtils","_GetCpuLimits","_AggregatedError","noop","ChainableValueProducer","constructor","errorListeners","onNext","_listener","Error","onError","listener","push","index","indexOf","splice","currentValue","transform","transformFunction","TransformValueProducer","do","action","ExecuteOnValueProducer","chainWith","nextItemFactory","attach","attachFactory","joinValues","evaluateAttachKey","AttachValueProducer","skipUpdatesUntilNextCompleted","SkipUpdatesUntilNextCompletedProducer","splitToChains","splitFunction","getKey","factory","SplitToChainsValueProducer","splitToParallelChains","ParallelSplitToChainsValueProducer","observe","beginObserve","detachListener","endObserve","emitError","error","errorObject","errorListener","exports","ObservableValueProducerBase","args","listeners","getCurrentValue","beginListening","stopListening","emitUpdate","value","notifyAllListenersAndWaitForComplete","nextValue","parent","lastAttachKey","attachedProducer","detachParentListener","detachAttachedListener","lastAttachedValue","lastParentValue","awaitingLastAttachedValue","isInObserveState","handleChangeAttachedValue","attachedValue","undefined","emitNextValue","handleChangeParentValue","parentValue","attachKey","delay","x","length","e","console","log","chains","handleChangeParentChain","key","chainValue","lastValue","emitValue","Object","values","map","filter","isNotNullOrUndefined","handleChangeParent","input","nextValuesMap","toMap","newKeys","_","difference","keys","removedKeys","newKey","_nextValuesMap$newKey","newChain","reject","newChainValue","valueProducer","removedKey","removedChain","result","errors","childValueProducer","childValue","AggregatedError","iterateValues","_nextValuesMap$newKey2","cpuLimit","getCpuLimits","concurrencyLimit","pLimit","Promise","all","_this$chains$key","detachFromParent","nextEmitToProcess","currentlyProcessingEmit","once","timeout","resolve","setTimeout"],"sources":["../../../../../src/Commons/TasksCore/ChainableValueProducer.ts"],"sourcesContent":["import _ from \"lodash\";\nimport pLimit from \"p-limit\";\n\nimport { ReasonOrError } from \"../ErrorUntyped\";\nimport { iterateValues } from \"../../../../Common/IterableUtils\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { getCpuLimits } from \"../GetCpuLimits\";\n\nimport { AggregatedError } from \"./AggregatedError\";\nimport { DetachListener, IValueProducer, ValueListener } from \"./BuildTask\";\n\nasync function noop(): Promise<void> {\n // empty function\n}\n\nexport class ChainableValueProducer<T> implements IValueProducer<T> {\n private readonly errorListeners: Array<ValueListener<Error>> = [];\n\n public onNext(_listener: (nextValue: T) => Promise<void>): DetachListener {\n throw new Error(\"AbstractError\");\n }\n\n public onError(listener: (error: Error) => Promise<void>): DetachListener {\n this.errorListeners.push(listener);\n return () => {\n const index = this.errorListeners.indexOf(listener);\n if (index >= 0) {\n this.errorListeners.splice(index, 1);\n }\n };\n }\n\n public get currentValue(): Promise<T> {\n throw new Error(\"AbstractError\");\n }\n\n public transform<TO>(transformFunction: (input: T) => Promise<TO>): TransformValueProducer<T, TO> {\n return new TransformValueProducer(this, transformFunction);\n }\n\n public do(action: (input: T) => Promise<void>): ExecuteOnValueProducer<T> {\n return new ExecuteOnValueProducer(this, action);\n }\n\n public chainWith<TO, TVP extends IValueProducer<TO>>(nextItemFactory: (prevItem: IValueProducer<T>) => TVP): TVP {\n return nextItemFactory(this);\n }\n\n public attach<TA, TO = T>(\n attachFactory: (value: T) => Promise<IValueProducer<TA>>,\n joinValues?: (original: T, attached: TA) => Promise<TO>,\n evaluateAttachKey?: (value: T) => Promise<string>\n ): AttachValueProducer<T, TA, TO> {\n return new AttachValueProducer(this, attachFactory, joinValues, evaluateAttachKey);\n }\n\n public skipUpdatesUntilNextCompleted(): SkipUpdatesUntilNextCompletedProducer<T> {\n return new SkipUpdatesUntilNextCompletedProducer(this);\n }\n\n public splitToChains<TI, TO>(\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO>\n ): SplitToChainsValueProducer<T, TI, TO> {\n return new SplitToChainsValueProducer(this, splitFunction, getKey, factory);\n }\n\n public splitToParallelChains<TI, TO>(\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>\n ): ParallelSplitToChainsValueProducer<T, TI, TO> {\n return new ParallelSplitToChainsValueProducer(this, splitFunction, getKey, factory);\n }\n\n public async observe(listener: ValueListener<T> = noop): Promise<() => Promise<void>> {\n await this.beginObserve();\n await listener(await this.currentValue);\n const detachListener = this.onNext(listener);\n return async () => {\n detachListener();\n await this.endObserve();\n };\n }\n\n public async beginObserve(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n public async endObserve(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected async emitError(error: any): Promise<void> {\n const errorObject = error instanceof Error ? error : new Error(`${error}`);\n for (const errorListener of this.errorListeners) {\n await errorListener(errorObject);\n }\n }\n}\n\nexport class ObservableValueProducerBase<T> extends ChainableValueProducer<T> {\n public get currentValue(): Promise<T> {\n return this.getCurrentValue();\n }\n\n private readonly listeners: Array<ValueListener<T>> = [];\n\n protected async getCurrentValue(): Promise<T> {\n throw new Error(\"AbstractError\");\n }\n\n public async beginObserve(): Promise<void> {\n await this.beginListening();\n }\n\n public async endObserve(): Promise<void> {\n await this.stopListening();\n }\n\n protected async beginListening(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n protected async stopListening(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n protected async emitUpdate(value: T): Promise<void> {\n await this.notifyAllListenersAndWaitForComplete(value);\n }\n\n public onNext(listener: (nextValue: T) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async notifyAllListenersAndWaitForComplete(nextValue: T): Promise<void> {\n for (const listener of this.listeners) {\n await listener(nextValue);\n }\n }\n}\n\nexport class AttachValueProducer<TI, TA, TO> extends ChainableValueProducer<TO> {\n private readonly parent: IValueProducer<TI>;\n private readonly attachFactory: (value: TI) => Promise<IValueProducer<TA>>;\n private readonly joinValues: (original: TI, attached: TA) => Promise<TO>;\n private lastAttachKey?: string;\n private attachedProducer?: IValueProducer<TA>;\n private readonly evaluateAttachKey: (value: TI) => Promise<string>;\n private readonly listeners: Array<ValueListener<TO>> = [];\n private detachParentListener?: DetachListener;\n private detachAttachedListener?: DetachListener;\n private lastAttachedValue?: TA;\n private lastParentValue?: TI;\n private awaitingLastAttachedValue = false;\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<TI>,\n attachFactory: (value: TI) => Promise<IValueProducer<TA>>,\n joinValues?: (original: TI, attached: TA) => Promise<TO>,\n evaluateAttachKey?: (value: TI) => Promise<string>\n ) {\n super();\n this.parent = parent;\n this.attachFactory = attachFactory;\n // Я не могу победить типизацию в этом месте, слишком много у меня кода получается\n // @ts-ignore\n this.joinValues = joinValues || (async x => x);\n this.evaluateAttachKey = evaluateAttachKey || (async () => \"STATIC-ATTACH-KEY\");\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n if (this.attachedProducer != undefined) {\n await this.attachedProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public get currentValue(): Promise<TO> {\n const getCurrentValue = async (): Promise<TO> => {\n const parentValue = await this.parent.currentValue;\n this.lastParentValue = parentValue;\n const attachKey = await this.evaluateAttachKey(parentValue);\n if (this.attachedProducer != undefined && this.detachAttachedListener == undefined) {\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.lastAttachKey == undefined || this.lastAttachKey !== attachKey) {\n this.lastAttachKey = attachKey;\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n if (this.attachedProducer != undefined && this.isInObserveState) {\n await this.attachedProducer.endObserve();\n }\n this.attachedProducer = await this.attachFactory(parentValue);\n if (this.isInObserveState) {\n await this.attachedProducer.beginObserve();\n }\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.attachedProducer == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n const attachedValue = await this.attachedProducer.currentValue;\n this.lastAttachedValue = attachedValue;\n return this.joinValues(parentValue, attachedValue);\n };\n return getCurrentValue();\n }\n\n public async emitNextValue(value: TO): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n public onNext(listener: (nextValue: TO) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n if (this.listeners.length === 1) {\n if (this.detachParentListener == undefined) {\n this.detachParentListener = this.parent.onNext(this.handleChangeParentValue);\n }\n if (this.attachedProducer != undefined && this.detachParentListener == undefined) {\n this.detachParentListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n }\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n if (this.listeners.length === 0) {\n if (this.detachParentListener != undefined) {\n this.detachParentListener();\n }\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n }\n };\n }\n\n private readonly handleChangeAttachedValue = async (attachedValue: TA): Promise<void> => {\n this.lastAttachedValue = attachedValue;\n if (!this.awaitingLastAttachedValue) {\n if (this.lastParentValue == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n await this.emitNextValue(await this.joinValues(this.lastParentValue, attachedValue));\n }\n };\n\n private readonly handleChangeParentValue = async (parentValue: TI): Promise<void> => {\n this.lastParentValue = parentValue;\n const attachKey = await this.evaluateAttachKey(parentValue);\n if (this.attachedProducer != undefined && this.detachAttachedListener == undefined) {\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.lastAttachKey == undefined || this.lastAttachKey !== attachKey) {\n this.lastAttachKey = attachKey;\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n if (this.attachedProducer != undefined && this.isInObserveState) {\n await this.attachedProducer.endObserve();\n }\n this.attachedProducer = await this.attachFactory(parentValue);\n if (this.isInObserveState) {\n await this.attachedProducer.beginObserve();\n }\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.attachedProducer == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n // Просто немного обождем, вдруг придёт другое attachedValue\n this.awaitingLastAttachedValue = true;\n await delay(700);\n this.awaitingLastAttachedValue = false;\n let attachedValue = this.lastAttachedValue;\n if (attachedValue == undefined) {\n attachedValue = await this.attachedProducer.currentValue;\n }\n await this.emitNextValue(await this.joinValues(parentValue, attachedValue));\n };\n}\n\nexport class ExecuteOnValueProducer<T> extends ChainableValueProducer<T> {\n private readonly parent: IValueProducer<T>;\n private readonly action: (value: T) => Promise<void>;\n\n public constructor(parent: IValueProducer<T>, action: (value: T) => Promise<void>) {\n super();\n this.parent = parent;\n this.action = action;\n }\n\n public async beginObserve(): Promise<void> {\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n }\n\n public get currentValue(): Promise<T> {\n const getCurrentValue = async (): Promise<T> => {\n const value = await this.parent.currentValue;\n await this.action(value);\n return value;\n };\n return getCurrentValue();\n }\n\n public onNext(listener: (nextValue: T) => Promise<void>): DetachListener {\n return this.parent.onNext(async parentValue => {\n try {\n const value = parentValue;\n await this.action(value);\n await listener(value);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n await this.emitError(e);\n }\n });\n }\n}\n\nexport class TransformValueProducer<TI, TO> extends ChainableValueProducer<TO> {\n private readonly parent: IValueProducer<TI>;\n private readonly transformFunction: (value: TI) => Promise<TO>;\n\n public constructor(parent: IValueProducer<TI>, transformFunction: (value: TI) => Promise<TO>) {\n super();\n this.parent = parent;\n this.transformFunction = transformFunction;\n }\n\n public async beginObserve(): Promise<void> {\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n }\n\n public get currentValue(): Promise<TO> {\n const getCurrentValue = async (): Promise<TO> => this.transformFunction(await this.parent.currentValue);\n return getCurrentValue();\n }\n\n public onNext(listener: (nextValue: TO) => Promise<void>): DetachListener {\n return this.parent.onNext(async parentValue => {\n await listener(await this.transformFunction(parentValue));\n });\n }\n}\n\nexport class SplitToChainsValueProducer<T, TI, TO> extends ChainableValueProducer<TO[]> {\n private readonly parent: IValueProducer<T>;\n private readonly splitFunction: (input: T) => TI[];\n private readonly getKey: (input: TI) => string;\n private readonly factory: (input: TI) => IValueProducer<TO>;\n private readonly listeners: Array<ValueListener<TO[]>> = [];\n private readonly chains: {\n [key: string]: {\n valueProducer: IValueProducer<TO>;\n lastValue: undefined | TO;\n detachListener: DetachListener;\n };\n } = {};\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<T>,\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO>\n ) {\n super();\n this.parent = parent;\n this.splitFunction = splitFunction;\n this.getKey = getKey;\n this.factory = factory;\n this.parent.onNext(this.handleChangeParent);\n }\n\n public get currentValue(): Promise<TO[]> {\n const getCurrentValue = async (): Promise<TO[]> => {\n const values = this.splitFunction(await this.parent.currentValue);\n const result: TO[] = [];\n const errors: ReasonOrError[] = [];\n for (const value of values) {\n const childValueProducer = this.factory(value);\n if (this.isInObserveState) {\n await childValueProducer.beginObserve();\n }\n try {\n const childValue = await childValueProducer.currentValue;\n result.push(childValue);\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: childValue,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n } catch (e) {\n if (this.isInObserveState) {\n // eslint-disable-next-line no-console\n console.log(e);\n } else {\n errors.push(e);\n }\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: undefined,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n }\n }\n if (errors.length === 1) {\n throw errors[0];\n } else if (errors.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n throw new AggregatedError(\"There are errors\", ...errors);\n }\n return result;\n };\n return getCurrentValue();\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n for (const value of iterateValues(this.chains)) {\n await value.valueProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public onNext(listener: (nextValue: TO[]) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async emitValue(value: TO[]): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n private toMap(values: TI[]): { [key: string]: TI } {\n const result: { [key: string]: TI } = {};\n for (const value of values) {\n result[this.getKey(value)] = value;\n }\n return result;\n }\n\n private readonly handleChangeParentChain = async (nextValue: TO, key: string): Promise<void> => {\n const chainValue = this.chains[key];\n if (chainValue != undefined) {\n chainValue.lastValue = nextValue;\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n\n private readonly handleChangeParent = async (input: T): Promise<void> => {\n const values = this.splitFunction(input);\n const nextValuesMap = this.toMap(values);\n\n const newKeys = _.difference(Object.keys(nextValuesMap), Object.keys(this.chains));\n const removedKeys = _.difference(Object.keys(this.chains), Object.keys(nextValuesMap));\n for (const newKey of newKeys) {\n const newChain = this.factory(nextValuesMap[newKey] ?? reject());\n if (this.isInObserveState) {\n await newChain.beginObserve();\n }\n try {\n const newChainValue = await newChain.currentValue;\n this.chains[newKey] = {\n lastValue: newChainValue,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n this.chains[newKey] = {\n lastValue: undefined,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n }\n }\n for (const removedKey of removedKeys) {\n const removedChain = this.chains[removedKey];\n removedChain?.detachListener();\n if (this.isInObserveState) {\n await removedChain?.valueProducer.endObserve();\n }\n // Я не знаю, как тут правильно\n // tslint:disable-next-line:no-dynamic-delete\n delete this.chains[removedKey];\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n}\n\nexport class ParallelSplitToChainsValueProducer<T, TI, TO> extends ChainableValueProducer<TO[]> {\n private readonly parent: IValueProducer<T>;\n private readonly splitFunction: (input: T) => TI[];\n private readonly getKey: (input: TI) => string;\n private readonly factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>;\n private readonly listeners: Array<ValueListener<TO[]>> = [];\n private readonly chains: {\n [key: string]: {\n valueProducer: IValueProducer<TO>;\n lastValue: undefined | TO;\n detachListener: DetachListener;\n };\n } = {};\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<T>,\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>\n ) {\n super();\n this.parent = parent;\n this.splitFunction = splitFunction;\n this.getKey = getKey;\n this.factory = factory;\n this.parent.onNext(this.handleChangeParent);\n }\n\n public get currentValue(): Promise<TO[]> {\n const getCurrentValue = async (): Promise<TO[]> => {\n const values = this.splitFunction(await this.parent.currentValue);\n const result: TO[] = [];\n const errors: ReasonOrError[] = [];\n const cpuLimit = getCpuLimits();\n // eslint-disable-next-line no-console\n console.log(`Use limit: ${cpuLimit}`);\n const concurrencyLimit = pLimit(cpuLimit);\n await Promise.all(\n values.map((value, index) =>\n concurrencyLimit(async () => {\n const childValueProducer = await this.factory(value);\n if (this.isInObserveState) {\n await childValueProducer.beginObserve();\n }\n try {\n const childValue = await childValueProducer.currentValue;\n result[index] = childValue;\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: childValue,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n } catch (e) {\n if (this.isInObserveState) {\n // eslint-disable-next-line no-console\n console.log(e);\n } else {\n errors.push(e);\n }\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: undefined,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n }\n })\n )\n );\n if (errors.length === 1) {\n throw errors[0];\n } else if (errors.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n throw new AggregatedError(\"There are errors\", ...errors);\n }\n return result;\n };\n return getCurrentValue();\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n for (const key of Object.keys(this.chains)) {\n await this.chains[key]?.valueProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public onNext(listener: (nextValue: TO[]) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async emitValue(value: TO[]): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n private toMap(values: TI[]): { [key: string]: TI } {\n const result: { [key: string]: TI } = {};\n for (const value of values) {\n result[this.getKey(value)] = value;\n }\n return result;\n }\n\n private readonly handleChangeParentChain = async (nextValue: TO, key: string): Promise<void> => {\n const chainValue = this.chains[key];\n if (chainValue != undefined) {\n chainValue.lastValue = nextValue;\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n\n private readonly handleChangeParent = async (input: T): Promise<void> => {\n const values = this.splitFunction(input);\n const nextValuesMap = this.toMap(values);\n\n const newKeys = _.difference(Object.keys(nextValuesMap), Object.keys(this.chains));\n const removedKeys = _.difference(Object.keys(this.chains), Object.keys(nextValuesMap));\n for (const newKey of newKeys) {\n const newChain = await this.factory(nextValuesMap[newKey] ?? reject());\n if (this.isInObserveState) {\n await newChain.beginObserve();\n }\n try {\n const newChainValue = await newChain.currentValue;\n this.chains[newKey] = {\n lastValue: newChainValue,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n this.chains[newKey] = {\n lastValue: undefined,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n }\n }\n for (const removedKey of removedKeys) {\n const removedChain = this.chains[removedKey];\n removedChain?.detachListener();\n if (this.isInObserveState) {\n await removedChain?.valueProducer.endObserve();\n }\n // Я не знаю, как тут правильно\n // tslint:disable-next-line:no-dynamic-delete\n delete this.chains[removedKey];\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n}\n\nexport class SkipUpdatesUntilNextCompletedProducer<T> extends ObservableValueProducerBase<T> {\n private readonly parent: IValueProducer<T>;\n private detachFromParent?: DetachListener;\n private lastParentValue?: T;\n\n private nextEmitToProcess?: () => Promise<void>;\n private currentlyProcessingEmit?: Promise<void>;\n\n public constructor(parent: IValueProducer<T>) {\n super();\n this.parent = parent;\n }\n\n protected async getCurrentValue(): Promise<T> {\n if (this.lastParentValue == undefined) {\n this.currentlyProcessingEmit = (async () => {\n this.lastParentValue = await this.parent.currentValue;\n })();\n await this.currentlyProcessingEmit;\n }\n if (this.lastParentValue == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n return this.lastParentValue;\n }\n\n protected async beginListening(): Promise<void> {\n await this.parent.beginObserve();\n if (this.detachFromParent == undefined) {\n this.detachFromParent = this.parent.onNext(nextValue => this.handleChangeParentValue(nextValue));\n }\n }\n\n protected async stopListening(): Promise<void> {\n if (this.detachFromParent != undefined) {\n this.detachFromParent();\n }\n await this.parent.endObserve();\n }\n\n private async handleChangeParentValue(nextValue: T): Promise<void> {\n this.lastParentValue = nextValue;\n this.nextEmitToProcess = _.once(() => this.emitUpdate(nextValue));\n if (this.currentlyProcessingEmit != undefined) {\n await this.currentlyProcessingEmit;\n }\n this.currentlyProcessingEmit = this.nextEmitToProcess();\n await this.currentlyProcessingEmit;\n this.currentlyProcessingEmit = undefined;\n }\n}\n\nfunction delay(timeout: number): Promise<void> {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n resolve();\n }, timeout);\n });\n}\n\nfunction isNotNullOrUndefined<T>(input: T | undefined | null): input is T {\n return input != undefined;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ChainableValueProducer.js","names":["_lodash","_interopRequireDefault","require","_pLimit","_IterableUtils","_TypingUtils","_GetCpuLimits","_AggregatedError","noop","ChainableValueProducer","constructor","errorListeners","onNext","_listener","Error","onError","listener","push","index","indexOf","splice","currentValue","transform","transformFunction","TransformValueProducer","do","action","ExecuteOnValueProducer","chainWith","nextItemFactory","attach","attachFactory","joinValues","evaluateAttachKey","AttachValueProducer","skipUpdatesUntilNextCompleted","SkipUpdatesUntilNextCompletedProducer","splitToChains","splitFunction","getKey","factory","SplitToChainsValueProducer","splitToParallelChains","ParallelSplitToChainsValueProducer","observe","beginObserve","detachListener","endObserve","emitError","error","errorObject","errorListener","exports","ObservableValueProducerBase","args","listeners","getCurrentValue","beginListening","stopListening","emitUpdate","value","notifyAllListenersAndWaitForComplete","nextValue","parent","lastAttachKey","attachedProducer","detachParentListener","detachAttachedListener","lastAttachedValue","lastParentValue","awaitingLastAttachedValue","isInObserveState","handleChangeAttachedValue","attachedValue","undefined","emitNextValue","handleChangeParentValue","parentValue","attachKey","delay","x","length","e","console","log","chains","handleChangeParentChain","key","chainValue","lastValue","emitValue","Object","values","map","filter","isNotNullOrUndefined","handleChangeParent","input","nextValuesMap","toMap","newKeys","_","difference","keys","removedKeys","newKey","_nextValuesMap$newKey","newChain","reject","newChainValue","valueProducer","removedKey","removedChain","result","errors","childValueProducer","childValue","AggregatedError","iterateValues","_nextValuesMap$newKey2","cpuLimit","getCpuLimits","concurrencyLimit","pLimit","Promise","all","_this$chains$key","detachFromParent","nextEmitToProcess","currentlyProcessingEmit","once","timeout","resolve","setTimeout"],"sources":["../../../../../src/Commons/TasksCore/ChainableValueProducer.ts"],"sourcesContent":["import _ from \"lodash\";\nimport pLimit from \"p-limit\";\n\nimport { ReasonOrError } from \"../ErrorUntyped\";\nimport { iterateValues } from \"../../../../Common/IterableUtils\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { getCpuLimits } from \"../GetCpuLimits\";\n\nimport { AggregatedError } from \"./AggregatedError\";\nimport { DetachListener, IValueProducer, ValueListener } from \"./BuildTask\";\n\nasync function noop(): Promise<void> {\n // empty function\n}\n\nexport class ChainableValueProducer<T> implements IValueProducer<T> {\n private readonly errorListeners: Array<ValueListener<Error>> = [];\n\n public onNext(_listener: (nextValue: T) => Promise<void>): DetachListener {\n throw new Error(\"AbstractError\");\n }\n\n public onError(listener: (error: Error) => Promise<void>): DetachListener {\n this.errorListeners.push(listener);\n return () => {\n const index = this.errorListeners.indexOf(listener);\n if (index >= 0) {\n this.errorListeners.splice(index, 1);\n }\n };\n }\n\n public get currentValue(): Promise<T> {\n throw new Error(\"AbstractError\");\n }\n\n public transform<TO>(transformFunction: (input: T) => Promise<TO>): TransformValueProducer<T, TO> {\n return new TransformValueProducer(this, transformFunction);\n }\n\n public do(action: (input: T) => Promise<void>): ExecuteOnValueProducer<T> {\n return new ExecuteOnValueProducer(this, action);\n }\n\n public chainWith<TO, TVP extends IValueProducer<TO>>(nextItemFactory: (prevItem: IValueProducer<T>) => TVP): TVP {\n return nextItemFactory(this);\n }\n\n public attach<TA, TO = T>(\n attachFactory: (value: T) => Promise<IValueProducer<TA>>,\n joinValues?: (original: T, attached: TA) => Promise<TO>,\n evaluateAttachKey?: (value: T) => Promise<string>\n ): AttachValueProducer<T, TA, TO> {\n return new AttachValueProducer(this, attachFactory, joinValues, evaluateAttachKey);\n }\n\n public skipUpdatesUntilNextCompleted(): SkipUpdatesUntilNextCompletedProducer<T> {\n return new SkipUpdatesUntilNextCompletedProducer(this);\n }\n\n public splitToChains<TI, TO>(\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO>\n ): SplitToChainsValueProducer<T, TI, TO> {\n return new SplitToChainsValueProducer(this, splitFunction, getKey, factory);\n }\n\n public splitToParallelChains<TI, TO>(\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>\n ): ParallelSplitToChainsValueProducer<T, TI, TO> {\n return new ParallelSplitToChainsValueProducer(this, splitFunction, getKey, factory);\n }\n\n public async observe(listener: ValueListener<T> = noop): Promise<() => Promise<void>> {\n await this.beginObserve();\n await listener(await this.currentValue);\n const detachListener = this.onNext(listener);\n return async () => {\n detachListener();\n await this.endObserve();\n };\n }\n\n public async beginObserve(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n public async endObserve(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected async emitError(error: any): Promise<void> {\n const errorObject = error instanceof Error ? error : new Error(`${error}`);\n for (const errorListener of this.errorListeners) {\n await errorListener(errorObject);\n }\n }\n}\n\nexport class ObservableValueProducerBase<T> extends ChainableValueProducer<T> {\n public get currentValue(): Promise<T> {\n return this.getCurrentValue();\n }\n\n private readonly listeners: Array<ValueListener<T>> = [];\n\n protected async getCurrentValue(): Promise<T> {\n throw new Error(\"AbstractError\");\n }\n\n public async beginObserve(): Promise<void> {\n await this.beginListening();\n }\n\n public async endObserve(): Promise<void> {\n await this.stopListening();\n }\n\n protected async beginListening(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n protected async stopListening(): Promise<void> {\n throw new Error(\"AbstractError\");\n }\n\n protected async emitUpdate(value: T): Promise<void> {\n await this.notifyAllListenersAndWaitForComplete(value);\n }\n\n public onNext(listener: (nextValue: T) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async notifyAllListenersAndWaitForComplete(nextValue: T): Promise<void> {\n for (const listener of this.listeners) {\n await listener(nextValue);\n }\n }\n}\n\nexport class AttachValueProducer<TI, TA, TO> extends ChainableValueProducer<TO> {\n private readonly parent: IValueProducer<TI>;\n private readonly attachFactory: (value: TI) => Promise<IValueProducer<TA>>;\n private readonly joinValues: (original: TI, attached: TA) => Promise<TO>;\n private lastAttachKey?: string;\n private attachedProducer?: IValueProducer<TA>;\n private readonly evaluateAttachKey: (value: TI) => Promise<string>;\n private readonly listeners: Array<ValueListener<TO>> = [];\n private detachParentListener?: DetachListener;\n private detachAttachedListener?: DetachListener;\n private lastAttachedValue?: TA;\n private lastParentValue?: TI;\n private awaitingLastAttachedValue = false;\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<TI>,\n attachFactory: (value: TI) => Promise<IValueProducer<TA>>,\n joinValues?: (original: TI, attached: TA) => Promise<TO>,\n evaluateAttachKey?: (value: TI) => Promise<string>\n ) {\n super();\n this.parent = parent;\n this.attachFactory = attachFactory;\n // Я не могу победить типизацию в этом месте, слишком много у меня кода получается\n // @ts-ignore\n this.joinValues = joinValues || (async x => x);\n this.evaluateAttachKey = evaluateAttachKey || (async () => \"STATIC-ATTACH-KEY\");\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n if (this.attachedProducer != undefined) {\n await this.attachedProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public get currentValue(): Promise<TO> {\n const getCurrentValue = async (): Promise<TO> => {\n const parentValue = await this.parent.currentValue;\n this.lastParentValue = parentValue;\n const attachKey = await this.evaluateAttachKey(parentValue);\n if (this.attachedProducer != undefined && this.detachAttachedListener == undefined) {\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.lastAttachKey == undefined || this.lastAttachKey !== attachKey) {\n this.lastAttachKey = attachKey;\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n if (this.attachedProducer != undefined && this.isInObserveState) {\n await this.attachedProducer.endObserve();\n }\n this.attachedProducer = await this.attachFactory(parentValue);\n if (this.isInObserveState) {\n await this.attachedProducer.beginObserve();\n }\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.attachedProducer == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n const attachedValue = await this.attachedProducer.currentValue;\n this.lastAttachedValue = attachedValue;\n return this.joinValues(parentValue, attachedValue);\n };\n return getCurrentValue();\n }\n\n public async emitNextValue(value: TO): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n public onNext(listener: (nextValue: TO) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n if (this.listeners.length === 1) {\n if (this.detachParentListener == undefined) {\n this.detachParentListener = this.parent.onNext(this.handleChangeParentValue);\n }\n if (this.attachedProducer != undefined && this.detachParentListener == undefined) {\n this.detachParentListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n }\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n if (this.listeners.length === 0) {\n if (this.detachParentListener != undefined) {\n this.detachParentListener();\n }\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n }\n };\n }\n\n private readonly handleChangeAttachedValue = async (attachedValue: TA): Promise<void> => {\n this.lastAttachedValue = attachedValue;\n if (!this.awaitingLastAttachedValue) {\n if (this.lastParentValue == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n await this.emitNextValue(await this.joinValues(this.lastParentValue, attachedValue));\n }\n };\n\n private readonly handleChangeParentValue = async (parentValue: TI): Promise<void> => {\n this.lastParentValue = parentValue;\n const attachKey = await this.evaluateAttachKey(parentValue);\n if (this.attachedProducer != undefined && this.detachAttachedListener == undefined) {\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.lastAttachKey == undefined || this.lastAttachKey !== attachKey) {\n this.lastAttachKey = attachKey;\n if (this.detachAttachedListener != undefined) {\n this.detachAttachedListener();\n }\n if (this.attachedProducer != undefined && this.isInObserveState) {\n await this.attachedProducer.endObserve();\n }\n this.attachedProducer = await this.attachFactory(parentValue);\n if (this.isInObserveState) {\n await this.attachedProducer.beginObserve();\n }\n this.detachAttachedListener = this.attachedProducer.onNext(this.handleChangeAttachedValue);\n }\n if (this.attachedProducer == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n // Просто немного обождем, вдруг придёт другое attachedValue\n this.awaitingLastAttachedValue = true;\n await delay(700);\n this.awaitingLastAttachedValue = false;\n let attachedValue = this.lastAttachedValue;\n if (attachedValue == undefined) {\n attachedValue = await this.attachedProducer.currentValue;\n }\n await this.emitNextValue(await this.joinValues(parentValue, attachedValue));\n };\n}\n\nexport class ExecuteOnValueProducer<T> extends ChainableValueProducer<T> {\n private readonly parent: IValueProducer<T>;\n private readonly action: (value: T) => Promise<void>;\n\n public constructor(parent: IValueProducer<T>, action: (value: T) => Promise<void>) {\n super();\n this.parent = parent;\n this.action = action;\n }\n\n public async beginObserve(): Promise<void> {\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n }\n\n public get currentValue(): Promise<T> {\n const getCurrentValue = async (): Promise<T> => {\n const value = await this.parent.currentValue;\n await this.action(value);\n return value;\n };\n return getCurrentValue();\n }\n\n public onNext(listener: (nextValue: T) => Promise<void>): DetachListener {\n return this.parent.onNext(async parentValue => {\n try {\n const value = parentValue;\n await this.action(value);\n await listener(value);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n await this.emitError(e);\n }\n });\n }\n}\n\nexport class TransformValueProducer<TI, TO> extends ChainableValueProducer<TO> {\n private readonly parent: IValueProducer<TI>;\n private readonly transformFunction: (value: TI) => Promise<TO>;\n\n public constructor(parent: IValueProducer<TI>, transformFunction: (value: TI) => Promise<TO>) {\n super();\n this.parent = parent;\n this.transformFunction = transformFunction;\n }\n\n public async beginObserve(): Promise<void> {\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n }\n\n public get currentValue(): Promise<TO> {\n const getCurrentValue = async (): Promise<TO> => this.transformFunction(await this.parent.currentValue);\n return getCurrentValue();\n }\n\n public onNext(listener: (nextValue: TO) => Promise<void>): DetachListener {\n return this.parent.onNext(async parentValue => {\n await listener(await this.transformFunction(parentValue));\n });\n }\n}\n\nexport class SplitToChainsValueProducer<T, TI, TO> extends ChainableValueProducer<TO[]> {\n private readonly parent: IValueProducer<T>;\n private readonly splitFunction: (input: T) => TI[];\n private readonly getKey: (input: TI) => string;\n private readonly factory: (input: TI) => IValueProducer<TO>;\n private readonly listeners: Array<ValueListener<TO[]>> = [];\n private readonly chains: {\n [key: string]: {\n valueProducer: IValueProducer<TO>;\n lastValue: undefined | TO;\n detachListener: DetachListener;\n };\n } = {};\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<T>,\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO>\n ) {\n super();\n this.parent = parent;\n this.splitFunction = splitFunction;\n this.getKey = getKey;\n this.factory = factory;\n this.parent.onNext(this.handleChangeParent);\n }\n\n public get currentValue(): Promise<TO[]> {\n const getCurrentValue = async (): Promise<TO[]> => {\n const values = this.splitFunction(await this.parent.currentValue);\n const result: TO[] = [];\n const errors: ReasonOrError[] = [];\n for (const value of values) {\n const childValueProducer = this.factory(value);\n if (this.isInObserveState) {\n await childValueProducer.beginObserve();\n }\n try {\n const childValue = await childValueProducer.currentValue;\n result.push(childValue);\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: childValue,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n } catch (e) {\n if (this.isInObserveState) {\n // eslint-disable-next-line no-console\n console.log(e);\n } else {\n errors.push(e);\n }\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: undefined,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n }\n }\n if (errors.length === 1) {\n throw errors[0];\n } else if (errors.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n throw new AggregatedError(\"There are errors\", ...errors);\n }\n return result;\n };\n return getCurrentValue();\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n for (const value of iterateValues(this.chains)) {\n await value.valueProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public onNext(listener: (nextValue: TO[]) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async emitValue(value: TO[]): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n private toMap(values: TI[]): { [key: string]: TI } {\n const result: { [key: string]: TI } = {};\n for (const value of values) {\n result[this.getKey(value)] = value;\n }\n return result;\n }\n\n private readonly handleChangeParentChain = async (nextValue: TO, key: string): Promise<void> => {\n const chainValue = this.chains[key];\n if (chainValue != undefined) {\n chainValue.lastValue = nextValue;\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n\n private readonly handleChangeParent = async (input: T): Promise<void> => {\n const values = this.splitFunction(input);\n const nextValuesMap = this.toMap(values);\n\n const newKeys = _.difference(Object.keys(nextValuesMap), Object.keys(this.chains));\n const removedKeys = _.difference(Object.keys(this.chains), Object.keys(nextValuesMap));\n for (const newKey of newKeys) {\n const newChain = this.factory(nextValuesMap[newKey] ?? reject());\n if (this.isInObserveState) {\n await newChain.beginObserve();\n }\n try {\n const newChainValue = await newChain.currentValue;\n this.chains[newKey] = {\n lastValue: newChainValue,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n this.chains[newKey] = {\n lastValue: undefined,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n }\n }\n for (const removedKey of removedKeys) {\n const removedChain = this.chains[removedKey];\n removedChain?.detachListener();\n if (this.isInObserveState) {\n await removedChain?.valueProducer.endObserve();\n }\n // Я не знаю, как тут правильно\n delete this.chains[removedKey];\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n}\n\nexport class ParallelSplitToChainsValueProducer<T, TI, TO> extends ChainableValueProducer<TO[]> {\n private readonly parent: IValueProducer<T>;\n private readonly splitFunction: (input: T) => TI[];\n private readonly getKey: (input: TI) => string;\n private readonly factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>;\n private readonly listeners: Array<ValueListener<TO[]>> = [];\n private readonly chains: {\n [key: string]: {\n valueProducer: IValueProducer<TO>;\n lastValue: undefined | TO;\n detachListener: DetachListener;\n };\n } = {};\n private isInObserveState = false;\n\n public constructor(\n parent: IValueProducer<T>,\n splitFunction: (input: T) => TI[],\n getKey: (input: TI) => string,\n factory: (input: TI) => IValueProducer<TO> | Promise<IValueProducer<TO>>\n ) {\n super();\n this.parent = parent;\n this.splitFunction = splitFunction;\n this.getKey = getKey;\n this.factory = factory;\n this.parent.onNext(this.handleChangeParent);\n }\n\n public get currentValue(): Promise<TO[]> {\n const getCurrentValue = async (): Promise<TO[]> => {\n const values = this.splitFunction(await this.parent.currentValue);\n const result: TO[] = [];\n const errors: ReasonOrError[] = [];\n const cpuLimit = getCpuLimits();\n // eslint-disable-next-line no-console\n console.log(`Use limit: ${cpuLimit}`);\n const concurrencyLimit = pLimit(cpuLimit);\n await Promise.all(\n values.map((value, index) =>\n concurrencyLimit(async () => {\n const childValueProducer = await this.factory(value);\n if (this.isInObserveState) {\n await childValueProducer.beginObserve();\n }\n try {\n const childValue = await childValueProducer.currentValue;\n result[index] = childValue;\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: childValue,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n } catch (e) {\n if (this.isInObserveState) {\n // eslint-disable-next-line no-console\n console.log(e);\n } else {\n errors.push(e);\n }\n const key = this.getKey(value);\n this.chains[key] = {\n lastValue: undefined,\n valueProducer: childValueProducer,\n detachListener: childValueProducer.onNext(x => this.handleChangeParentChain(x, key)),\n };\n }\n })\n )\n );\n if (errors.length === 1) {\n throw errors[0];\n } else if (errors.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n throw new AggregatedError(\"There are errors\", ...errors);\n }\n return result;\n };\n return getCurrentValue();\n }\n\n public async beginObserve(): Promise<void> {\n this.isInObserveState = true;\n await this.parent.beginObserve();\n }\n\n public async endObserve(): Promise<void> {\n await this.parent.endObserve();\n for (const key of Object.keys(this.chains)) {\n await this.chains[key]?.valueProducer.endObserve();\n }\n this.isInObserveState = false;\n }\n\n public onNext(listener: (nextValue: TO[]) => Promise<void>): DetachListener {\n this.listeners.push(listener);\n return () => {\n const index = this.listeners.indexOf(listener);\n if (index >= 0) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n private async emitValue(value: TO[]): Promise<void> {\n for (const listener of this.listeners) {\n await listener(value);\n }\n }\n\n private toMap(values: TI[]): { [key: string]: TI } {\n const result: { [key: string]: TI } = {};\n for (const value of values) {\n result[this.getKey(value)] = value;\n }\n return result;\n }\n\n private readonly handleChangeParentChain = async (nextValue: TO, key: string): Promise<void> => {\n const chainValue = this.chains[key];\n if (chainValue != undefined) {\n chainValue.lastValue = nextValue;\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n\n private readonly handleChangeParent = async (input: T): Promise<void> => {\n const values = this.splitFunction(input);\n const nextValuesMap = this.toMap(values);\n\n const newKeys = _.difference(Object.keys(nextValuesMap), Object.keys(this.chains));\n const removedKeys = _.difference(Object.keys(this.chains), Object.keys(nextValuesMap));\n for (const newKey of newKeys) {\n const newChain = await this.factory(nextValuesMap[newKey] ?? reject());\n if (this.isInObserveState) {\n await newChain.beginObserve();\n }\n try {\n const newChainValue = await newChain.currentValue;\n this.chains[newKey] = {\n lastValue: newChainValue,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n this.chains[newKey] = {\n lastValue: undefined,\n valueProducer: newChain,\n detachListener: newChain.onNext(nextValue => this.handleChangeParentChain(nextValue, newKey)),\n };\n }\n }\n for (const removedKey of removedKeys) {\n const removedChain = this.chains[removedKey];\n removedChain?.detachListener();\n if (this.isInObserveState) {\n await removedChain?.valueProducer.endObserve();\n }\n // Я не знаю, как тут правильно\n delete this.chains[removedKey];\n }\n await this.emitValue(\n Object.values(this.chains)\n .map(x => x.lastValue)\n .filter(isNotNullOrUndefined)\n );\n };\n}\n\nexport class SkipUpdatesUntilNextCompletedProducer<T> extends ObservableValueProducerBase<T> {\n private readonly parent: IValueProducer<T>;\n private detachFromParent?: DetachListener;\n private lastParentValue?: T;\n\n private nextEmitToProcess?: () => Promise<void>;\n private currentlyProcessingEmit?: Promise<void>;\n\n public constructor(parent: IValueProducer<T>) {\n super();\n this.parent = parent;\n }\n\n protected async getCurrentValue(): Promise<T> {\n if (this.lastParentValue == undefined) {\n this.currentlyProcessingEmit = (async () => {\n this.lastParentValue = await this.parent.currentValue;\n })();\n await this.currentlyProcessingEmit;\n }\n if (this.lastParentValue == undefined) {\n throw new Error(\"InvalidProgramState\");\n }\n return this.lastParentValue;\n }\n\n protected async beginListening(): Promise<void> {\n await this.parent.beginObserve();\n if (this.detachFromParent == undefined) {\n this.detachFromParent = this.parent.onNext(nextValue => this.handleChangeParentValue(nextValue));\n }\n }\n\n protected async stopListening(): Promise<void> {\n if (this.detachFromParent != undefined) {\n this.detachFromParent();\n }\n await this.parent.endObserve();\n }\n\n private async handleChangeParentValue(nextValue: T): Promise<void> {\n this.lastParentValue = nextValue;\n this.nextEmitToProcess = _.once(() => this.emitUpdate(nextValue));\n if (this.currentlyProcessingEmit != undefined) {\n await this.currentlyProcessingEmit;\n }\n this.currentlyProcessingEmit = this.nextEmitToProcess();\n await this.currentlyProcessingEmit;\n this.currentlyProcessingEmit = undefined;\n }\n}\n\nfunction delay(timeout: number): Promise<void> {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n resolve();\n }, timeout);\n });\n}\n\nfunction isNotNullOrUndefined<T>(input: T | undefined | null): input is T {\n return input != undefined;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,12 +11,12 @@ class FixedDirectoryEntriesProducer extends _ChainableValueProducer.ObservableVa
11
11
  this.directories = void 0;
12
12
  this.directories = directories;
13
13
  }
14
- async beginListening() {
15
- // eslint-disable-next-line no-empty-function
16
- }
17
- async stopListening() {
18
- // eslint-disable-next-line no-empty-function
19
- }
14
+
15
+ // eslint-disable-next-line no-empty-function
16
+ async beginListening() {}
17
+
18
+ // eslint-disable-next-line no-empty-function
19
+ async stopListening() {}
20
20
  async getCurrentValue() {
21
21
  return this.directories;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FixedDirectoryEntriesProducer.js","names":["_ChainableValueProducer","require","FixedDirectoryEntriesProducer","ObservableValueProducerBase","constructor","directories","beginListening","stopListening","getCurrentValue","exports"],"sources":["../../../../../src/Commons/TasksCore/FixedDirectoryEntriesProducer.ts"],"sourcesContent":["import { ObservableValueProducerBase } from \"./ChainableValueProducer\";\n\nexport class FixedDirectoryEntriesProducer extends ObservableValueProducerBase<string[]> {\n private readonly directories: string[];\n\n public constructor(directories: string[]) {\n super();\n this.directories = directories;\n }\n\n protected async beginListening(): Promise<void> {\n // eslint-disable-next-line no-empty-function\n }\n\n protected async stopListening(): Promise<void> {\n // eslint-disable-next-line no-empty-function\n }\n\n protected async getCurrentValue(): Promise<string[]> {\n return this.directories;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEO,MAAMC,6BAA6B,SAASC,mDAA2B,CAAW;EAG9EC,WAAWA,CAACC,WAAqB,EAAE;IACtC,KAAK,CAAC,CAAC;IAAC,KAHKA,WAAW;IAIxB,IAAI,CAACA,WAAW,GAAGA,WAAW;EAClC;EAEA,MAAgBC,cAAcA,CAAA,EAAkB;IAC5C;EAAA;EAGJ,MAAgBC,aAAaA,CAAA,EAAkB;IAC3C;EAAA;EAGJ,MAAgBC,eAAeA,CAAA,EAAsB;IACjD,OAAO,IAAI,CAACH,WAAW;EAC3B;AACJ;AAACI,OAAA,CAAAP,6BAAA,GAAAA,6BAAA","ignoreList":[]}
1
+ {"version":3,"file":"FixedDirectoryEntriesProducer.js","names":["_ChainableValueProducer","require","FixedDirectoryEntriesProducer","ObservableValueProducerBase","constructor","directories","beginListening","stopListening","getCurrentValue","exports"],"sources":["../../../../../src/Commons/TasksCore/FixedDirectoryEntriesProducer.ts"],"sourcesContent":["import { ObservableValueProducerBase } from \"./ChainableValueProducer\";\n\nexport class FixedDirectoryEntriesProducer extends ObservableValueProducerBase<string[]> {\n private readonly directories: string[];\n\n public constructor(directories: string[]) {\n super();\n this.directories = directories;\n }\n\n // eslint-disable-next-line no-empty-function\n protected async beginListening(): Promise<void> {}\n\n // eslint-disable-next-line no-empty-function\n protected async stopListening(): Promise<void> {}\n\n protected async getCurrentValue(): Promise<string[]> {\n return this.directories;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEO,MAAMC,6BAA6B,SAASC,mDAA2B,CAAW;EAG9EC,WAAWA,CAACC,WAAqB,EAAE;IACtC,KAAK,CAAC,CAAC;IAAC,KAHKA,WAAW;IAIxB,IAAI,CAACA,WAAW,GAAGA,WAAW;EAClC;;EAEA;EACA,MAAgBC,cAAcA,CAAA,EAAkB,CAAC;;EAEjD;EACA,MAAgBC,aAAaA,CAAA,EAAkB,CAAC;EAEhD,MAAgBC,eAAeA,CAAA,EAAsB;IACjD,OAAO,IAAI,CAACH,WAAW;EAC3B;AACJ;AAACI,OAAA,CAAAP,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -25,10 +25,8 @@ class CacheAssetsPlugin {
25
25
  async apply(compiler) {
26
26
  compiler.hooks.emit.tapPromise("CacheAssetsPlugin", compilation => singleLimit(async () => {
27
27
  const cacheItems = {};
28
- // tslint:disable-next-line no-unsafe-any
29
28
  for (const assetName of Object.keys(compilation.assets)) {
30
29
  var _compilation$assets$a, _compilation$assets$a2;
31
- // tslint:disable-next-line no-unsafe-any
32
30
  const source = (_compilation$assets$a = (_compilation$assets$a2 = compilation.assets[assetName]) === null || _compilation$assets$a2 === void 0 ? void 0 : _compilation$assets$a2.source()) !== null && _compilation$assets$a !== void 0 ? _compilation$assets$a : (0, _TypingUtils.reject)();
33
31
  if (source instanceof Buffer) {
34
32
  cacheItems[assetName] = {
@@ -44,9 +42,7 @@ class CacheAssetsPlugin {
44
42
  }
45
43
  async updateFile(cacheItems) {
46
44
  const filePath = path.resolve(this.options.cacheFile);
47
- let content = (await (0, _fsExtra.pathExists)(filePath)) ?
48
- // tslint:disable-next-line no-unsafe-any
49
- await CacheFile.read(filePath) : {};
45
+ let content = (await (0, _fsExtra.pathExists)(filePath)) ? await CacheFile.read(filePath) : {};
50
46
  content = {
51
47
  ...content,
52
48
  ...cacheItems
@@ -69,7 +65,6 @@ class BuildCache {
69
65
  if (generatorSource.type === "GeneratorSources") {
70
66
  throw new Error("Local generator does not supports caching");
71
67
  }
72
- // tslint:disable-next-line no-unsafe-any
73
68
  const content = await CacheFile.read(CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorSource.version, depsHash));
74
69
  for (const assetPath of Object.keys(content)) {
75
70
  var _content$assetPath;
@@ -99,7 +94,6 @@ class BuildCache {
99
94
  if (!(await (0, _fsExtra.pathExists)(cacheFilePath))) {
100
95
  return;
101
96
  }
102
- // tslint:disable-next-line no-unsafe-any
103
97
  let content = await CacheFile.read(cacheFilePath);
104
98
  content = {
105
99
  ...content,
@@ -1 +1 @@
1
- {"version":3,"file":"CacheAssetsPlugin.js","names":["path","_interopRequireWildcard","require","_fsExtra","_md","_interopRequireDefault","_pLimit","_nodeFetch","_admZip","_BuildCacheMode","_TypingUtils","_StaticLogger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","singleLimit","pLimit","CacheAssetsPlugin","constructor","options","apply","compiler","hooks","emit","tapPromise","compilation","cacheItems","assetName","keys","assets","_compilation$assets$a","_compilation$assets$a2","source","reject","Buffer","type","base64content","toString","updateFile","filePath","resolve","cacheFile","content","pathExists","CacheFile","read","ensureDir","dirname","write","exports","BuildCache","farmDirectory","mode","logger","getLogger","withPrefix","extract","generatorSource","gfv","depsHash","resourcesDirectory","Error","getCacheFilePath","version","assetPath","_content$assetPath","contentElement","normalizedAssetPath","join","split","writeFile","from","exists","BuildCacheMode","Disabled","ForceUpdate","cachedFilePath","existsFileCacheOrDownload","undefined","setContent","fileName","fileContent","cacheFilePath","createWebpackPlugin","ReadOnly","generatorVersion","log","filename","basename","response","fetch","status","buffer","error","md5","zip","AdmZip","addFile","contentFilename","JSON","stringify","writeZip","readAsText","parse","warning","readFile"],"sources":["../../../../src/FormWebpackConfiguration/CacheAssetsPlugin.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { ensureDir, pathExists, readFile, writeFile } from \"fs-extra\";\nimport md5 from \"md5\";\nimport pLimit from \"p-limit\";\nimport webpack from \"webpack\";\nimport fetch from \"node-fetch\";\nimport AdmZip from \"adm-zip\";\n\nimport { GeneratorSource } from \"../BuildTasks/Generator/AcquireFormGenerator\";\nimport { BuildCacheMode } from \"../CLICommands/BuildForms/BuildCacheMode\";\nimport { reject } from \"../../../Common/TypingUtils\";\nimport { ILogger } from \"../Commons/Logging/ILogger\";\nimport { getLogger } from \"../Commons/Logging/StaticLogger\";\n\ninterface CacheAssetsPluginOptions {\n cacheFile: string;\n}\n\nexport interface FormBuildCacheOptions {\n farmDirectory: string;\n mode: BuildCacheMode;\n generatorVersion: string;\n gfv: string;\n depsHash: string;\n}\n\nconst singleLimit = pLimit(1);\n\ninterface BuildResultsSerialized {\n [path: string]: string | { type: \"Buffer\"; base64content: string };\n}\n\nexport class CacheAssetsPlugin {\n private readonly options: CacheAssetsPluginOptions;\n\n public constructor(options: CacheAssetsPluginOptions) {\n this.options = options;\n }\n\n public async apply(compiler: webpack.Compiler): Promise<void> {\n compiler.hooks.emit.tapPromise(\"CacheAssetsPlugin\", compilation =>\n singleLimit(async () => {\n const cacheItems: BuildResultsSerialized = {};\n // tslint:disable-next-line no-unsafe-any\n for (const assetName of Object.keys(compilation.assets)) {\n // tslint:disable-next-line no-unsafe-any\n const source: string | Buffer = compilation.assets[assetName]?.source() ?? reject();\n if (source instanceof Buffer) {\n cacheItems[assetName] = { type: \"Buffer\", base64content: source.toString(\"base64\") };\n } else {\n cacheItems[assetName] = source;\n }\n }\n await this.updateFile(cacheItems);\n })\n );\n }\n\n private async updateFile(cacheItems: BuildResultsSerialized): Promise<void> {\n const filePath = path.resolve(this.options.cacheFile);\n let content: BuildResultsSerialized = (await pathExists(filePath))\n ? // tslint:disable-next-line no-unsafe-any\n await CacheFile.read(filePath)\n : {};\n content = {\n ...content,\n ...cacheItems,\n };\n await ensureDir(path.dirname(filePath));\n await CacheFile.write(filePath, content);\n }\n}\n\nexport class BuildCache {\n private readonly farmDirectory: string;\n private readonly mode: BuildCacheMode;\n private readonly logger: ILogger;\n\n public constructor(farmDirectory: string, mode: BuildCacheMode) {\n this.farmDirectory = farmDirectory;\n this.mode = mode;\n this.logger = getLogger().withPrefix(\"BUILD_CACHE\");\n }\n\n public async extract(\n generatorSource: GeneratorSource,\n gfv: string,\n depsHash: string,\n resourcesDirectory: string\n ): Promise<void> {\n if (generatorSource.type === \"GeneratorSources\") {\n throw new Error(\"Local generator does not supports caching\");\n }\n // tslint:disable-next-line no-unsafe-any\n const content: BuildResultsSerialized = await CacheFile.read(\n CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorSource.version, depsHash)\n );\n for (const assetPath of Object.keys(content)) {\n const contentElement = content[assetPath] ?? reject();\n const normalizedAssetPath = path.join(...assetPath.split(/[\\\\\\/]/));\n const filePath = path.join(resourcesDirectory, normalizedAssetPath);\n await ensureDir(path.dirname(filePath));\n if (typeof contentElement === \"string\") {\n await writeFile(filePath, contentElement, \"utf8\");\n } else {\n await writeFile(filePath, Buffer.from(contentElement.base64content, \"base64\"));\n }\n }\n }\n\n public async exists(generatorSource: GeneratorSource, gfv: string, depsHash: string): Promise<boolean> {\n if (generatorSource.type === \"GeneratorSources\") {\n throw new Error(\"Local generator does not supports caching\");\n }\n if (this.mode === BuildCacheMode.Disabled || this.mode === BuildCacheMode.ForceUpdate) {\n return false;\n }\n const cachedFilePath = await this.existsFileCacheOrDownload(gfv, generatorSource.version, depsHash);\n return cachedFilePath != undefined;\n }\n\n public async setContent(\n generatorSource: string,\n gfv: string,\n depsHash: string,\n resourcesDirectory: string,\n fileName: string,\n fileContent: string\n ): Promise<void> {\n const cacheFilePath = CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorSource, depsHash);\n if (!(await pathExists(cacheFilePath))) {\n return;\n }\n // tslint:disable-next-line no-unsafe-any\n let content: BuildResultsSerialized = await CacheFile.read(cacheFilePath);\n content = {\n ...content,\n [fileName]: fileContent,\n };\n await ensureDir(path.dirname(cacheFilePath));\n await CacheFile.write(cacheFilePath, content);\n }\n\n public async createWebpackPlugin(options: FormBuildCacheOptions): Promise<CacheAssetsPlugin | undefined> {\n if (options.mode === BuildCacheMode.Disabled || options.mode === BuildCacheMode.ReadOnly) {\n return undefined;\n }\n const cachedFilePath = CacheFile.getCacheFilePath(\n this.farmDirectory,\n options.gfv,\n options.generatorVersion,\n options.depsHash\n );\n return new CacheAssetsPlugin({\n cacheFile: cachedFilePath,\n });\n }\n\n private async existsFileCacheOrDownload(\n gfv: string,\n generatorVersion: string,\n depsHash: string\n ): Promise<string | undefined> {\n const filePath = CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorVersion, depsHash);\n this.logger.log(`Start search file locally: ${filePath}`);\n const filename = path.basename(filePath);\n await ensureDir(path.dirname(filePath));\n if (await pathExists(filePath)) {\n this.logger.log(\"Found file in local directory\");\n return filePath;\n } else {\n try {\n this.logger.log(`Cache file was not found locally: ${filePath}`);\n this.logger.log(`Looking for cache in drive storage: ${filename}`);\n const response = await fetch(`https://api.kontur.ru/drive/v1/public/${filename}`);\n this.logger.log(`Drive response status code: ${response.status.toString()}`);\n if (response.status === 200) {\n await writeFile(filePath, await response.buffer(), \"utf-8\");\n return filePath;\n } else {\n if (response.status === 404) {\n this.logger.error(\n `Cache file not found in drive storage: ${filename}. GFV: ${gfv}, GeneratorVersion: ${generatorVersion}, DependenciesHash: ${depsHash}`\n );\n } else {\n this.logger.error(\n `Drive storage sent ${response.status} status code, I don't process it in any way`\n );\n }\n return undefined;\n }\n } catch (e) {\n this.logger.error(\"Drive storage responded with an error\");\n this.logger.error(\"The build will continue without a cache\");\n this.logger.error(e);\n return undefined;\n }\n }\n }\n}\n\nclass CacheFile {\n private static readonly contentFilename = \"content.json\";\n private static readonly logger = getLogger().withPrefix(\"BUILD_CACHE\");\n\n public static getCacheFilePath(\n farmDirectory: string,\n gfv: string,\n generatorVersion: string,\n depsHash: string\n ): string {\n const fileName = `${md5(gfv)}-${md5(generatorVersion)}-${depsHash}.zip`;\n return path.join(farmDirectory, \".build-cache\", \"compile\", fileName);\n }\n\n public static async write(cacheFilePath: string, content: BuildResultsSerialized): Promise<void> {\n const zip = new AdmZip();\n zip.addFile(CacheFile.contentFilename, Buffer.from(JSON.stringify(content), \"utf8\"));\n zip.writeZip(cacheFilePath);\n }\n\n public static async read(cacheFilePath: string): Promise<BuildResultsSerialized> {\n try {\n const zip = new AdmZip(cacheFilePath);\n const fileContent = zip.readAsText(CacheFile.contentFilename, \"utf-8\");\n return JSON.parse(fileContent) as BuildResultsSerialized;\n } catch (e) {\n CacheFile.logger.warning(`Failed to unzip: ${cacheFilePath}`);\n CacheFile.logger.warning(`${e}`);\n const fileContent = await readFile(cacheFilePath, \"utf-8\");\n return JSON.parse(fileContent) as BuildResultsSerialized;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CacheAssetsPlugin.js","names":["path","_interopRequireWildcard","require","_fsExtra","_md","_interopRequireDefault","_pLimit","_nodeFetch","_admZip","_BuildCacheMode","_TypingUtils","_StaticLogger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","singleLimit","pLimit","CacheAssetsPlugin","constructor","options","apply","compiler","hooks","emit","tapPromise","compilation","cacheItems","assetName","keys","assets","_compilation$assets$a","_compilation$assets$a2","source","reject","Buffer","type","base64content","toString","updateFile","filePath","resolve","cacheFile","content","pathExists","CacheFile","read","ensureDir","dirname","write","exports","BuildCache","farmDirectory","mode","logger","getLogger","withPrefix","extract","generatorSource","gfv","depsHash","resourcesDirectory","Error","getCacheFilePath","version","assetPath","_content$assetPath","contentElement","normalizedAssetPath","join","split","writeFile","from","exists","BuildCacheMode","Disabled","ForceUpdate","cachedFilePath","existsFileCacheOrDownload","undefined","setContent","fileName","fileContent","cacheFilePath","createWebpackPlugin","ReadOnly","generatorVersion","log","filename","basename","response","fetch","status","buffer","error","md5","zip","AdmZip","addFile","contentFilename","JSON","stringify","writeZip","readAsText","parse","warning","readFile"],"sources":["../../../../src/FormWebpackConfiguration/CacheAssetsPlugin.ts"],"sourcesContent":["import * as path from \"path\";\n\nimport { ensureDir, pathExists, readFile, writeFile } from \"fs-extra\";\nimport md5 from \"md5\";\nimport pLimit from \"p-limit\";\nimport webpack from \"webpack\";\nimport fetch from \"node-fetch\";\nimport AdmZip from \"adm-zip\";\n\nimport { GeneratorSource } from \"../BuildTasks/Generator/AcquireFormGenerator\";\nimport { BuildCacheMode } from \"../CLICommands/BuildForms/BuildCacheMode\";\nimport { reject } from \"../../../Common/TypingUtils\";\nimport { ILogger } from \"../Commons/Logging/ILogger\";\nimport { getLogger } from \"../Commons/Logging/StaticLogger\";\n\ninterface CacheAssetsPluginOptions {\n cacheFile: string;\n}\n\nexport interface FormBuildCacheOptions {\n farmDirectory: string;\n mode: BuildCacheMode;\n generatorVersion: string;\n gfv: string;\n depsHash: string;\n}\n\nconst singleLimit = pLimit(1);\n\ninterface BuildResultsSerialized {\n [path: string]: string | { type: \"Buffer\"; base64content: string };\n}\n\nexport class CacheAssetsPlugin {\n private readonly options: CacheAssetsPluginOptions;\n\n public constructor(options: CacheAssetsPluginOptions) {\n this.options = options;\n }\n\n public async apply(compiler: webpack.Compiler): Promise<void> {\n compiler.hooks.emit.tapPromise(\"CacheAssetsPlugin\", compilation =>\n singleLimit(async () => {\n const cacheItems: BuildResultsSerialized = {};\n for (const assetName of Object.keys(compilation.assets)) {\n const source: string | Buffer = compilation.assets[assetName]?.source() ?? reject();\n if (source instanceof Buffer) {\n cacheItems[assetName] = { type: \"Buffer\", base64content: source.toString(\"base64\") };\n } else {\n cacheItems[assetName] = source as string;\n }\n }\n await this.updateFile(cacheItems);\n })\n );\n }\n\n private async updateFile(cacheItems: BuildResultsSerialized): Promise<void> {\n const filePath = path.resolve(this.options.cacheFile);\n let content: BuildResultsSerialized = (await pathExists(filePath)) ? await CacheFile.read(filePath) : {};\n content = {\n ...content,\n ...cacheItems,\n };\n await ensureDir(path.dirname(filePath));\n await CacheFile.write(filePath, content);\n }\n}\n\nexport class BuildCache {\n private readonly farmDirectory: string;\n private readonly mode: BuildCacheMode;\n private readonly logger: ILogger;\n\n public constructor(farmDirectory: string, mode: BuildCacheMode) {\n this.farmDirectory = farmDirectory;\n this.mode = mode;\n this.logger = getLogger().withPrefix(\"BUILD_CACHE\");\n }\n\n public async extract(\n generatorSource: GeneratorSource,\n gfv: string,\n depsHash: string,\n resourcesDirectory: string\n ): Promise<void> {\n if (generatorSource.type === \"GeneratorSources\") {\n throw new Error(\"Local generator does not supports caching\");\n }\n const content: BuildResultsSerialized = await CacheFile.read(\n CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorSource.version, depsHash)\n );\n for (const assetPath of Object.keys(content)) {\n const contentElement = content[assetPath] ?? reject();\n const normalizedAssetPath = path.join(...assetPath.split(/[\\\\\\/]/));\n const filePath = path.join(resourcesDirectory, normalizedAssetPath);\n await ensureDir(path.dirname(filePath));\n if (typeof contentElement === \"string\") {\n await writeFile(filePath, contentElement, \"utf8\");\n } else {\n await writeFile(filePath, Buffer.from(contentElement.base64content, \"base64\"));\n }\n }\n }\n\n public async exists(generatorSource: GeneratorSource, gfv: string, depsHash: string): Promise<boolean> {\n if (generatorSource.type === \"GeneratorSources\") {\n throw new Error(\"Local generator does not supports caching\");\n }\n if (this.mode === BuildCacheMode.Disabled || this.mode === BuildCacheMode.ForceUpdate) {\n return false;\n }\n const cachedFilePath = await this.existsFileCacheOrDownload(gfv, generatorSource.version, depsHash);\n return cachedFilePath != undefined;\n }\n\n public async setContent(\n generatorSource: string,\n gfv: string,\n depsHash: string,\n resourcesDirectory: string,\n fileName: string,\n fileContent: string\n ): Promise<void> {\n const cacheFilePath = CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorSource, depsHash);\n if (!(await pathExists(cacheFilePath))) {\n return;\n }\n let content: BuildResultsSerialized = await CacheFile.read(cacheFilePath);\n content = {\n ...content,\n [fileName]: fileContent,\n };\n await ensureDir(path.dirname(cacheFilePath));\n await CacheFile.write(cacheFilePath, content);\n }\n\n public async createWebpackPlugin(options: FormBuildCacheOptions): Promise<CacheAssetsPlugin | undefined> {\n if (options.mode === BuildCacheMode.Disabled || options.mode === BuildCacheMode.ReadOnly) {\n return undefined;\n }\n const cachedFilePath = CacheFile.getCacheFilePath(\n this.farmDirectory,\n options.gfv,\n options.generatorVersion,\n options.depsHash\n );\n return new CacheAssetsPlugin({\n cacheFile: cachedFilePath,\n });\n }\n\n private async existsFileCacheOrDownload(\n gfv: string,\n generatorVersion: string,\n depsHash: string\n ): Promise<string | undefined> {\n const filePath = CacheFile.getCacheFilePath(this.farmDirectory, gfv, generatorVersion, depsHash);\n this.logger.log(`Start search file locally: ${filePath}`);\n const filename = path.basename(filePath);\n await ensureDir(path.dirname(filePath));\n if (await pathExists(filePath)) {\n this.logger.log(\"Found file in local directory\");\n return filePath;\n } else {\n try {\n this.logger.log(`Cache file was not found locally: ${filePath}`);\n this.logger.log(`Looking for cache in drive storage: ${filename}`);\n const response = await fetch(`https://api.kontur.ru/drive/v1/public/${filename}`);\n this.logger.log(`Drive response status code: ${response.status.toString()}`);\n if (response.status === 200) {\n await writeFile(filePath, await response.buffer(), \"utf-8\");\n return filePath;\n } else {\n if (response.status === 404) {\n this.logger.error(\n `Cache file not found in drive storage: ${filename}. GFV: ${gfv}, GeneratorVersion: ${generatorVersion}, DependenciesHash: ${depsHash}`\n );\n } else {\n this.logger.error(\n `Drive storage sent ${response.status} status code, I don't process it in any way`\n );\n }\n return undefined;\n }\n } catch (e) {\n this.logger.error(\"Drive storage responded with an error\");\n this.logger.error(\"The build will continue without a cache\");\n this.logger.error(e);\n return undefined;\n }\n }\n }\n}\n\nclass CacheFile {\n private static readonly contentFilename = \"content.json\";\n private static readonly logger = getLogger().withPrefix(\"BUILD_CACHE\");\n\n public static getCacheFilePath(\n farmDirectory: string,\n gfv: string,\n generatorVersion: string,\n depsHash: string\n ): string {\n const fileName = `${md5(gfv)}-${md5(generatorVersion)}-${depsHash}.zip`;\n return path.join(farmDirectory, \".build-cache\", \"compile\", fileName);\n }\n\n public static async write(cacheFilePath: string, content: BuildResultsSerialized): Promise<void> {\n const zip = new AdmZip();\n zip.addFile(CacheFile.contentFilename, Buffer.from(JSON.stringify(content), \"utf8\"));\n zip.writeZip(cacheFilePath);\n }\n\n public static async read(cacheFilePath: string): Promise<BuildResultsSerialized> {\n try {\n const zip = new AdmZip(cacheFilePath);\n const fileContent = zip.readAsText(CacheFile.contentFilename, \"utf-8\");\n return JSON.parse(fileContent) as BuildResultsSerialized;\n } catch (e) {\n CacheFile.logger.warning(`Failed to unzip: ${cacheFilePath}`);\n CacheFile.logger.warning(`${e}`);\n const fileContent = await readFile(cacheFilePath, \"utf-8\");\n return JSON.parse(fileContent) as BuildResultsSerialized;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,6 @@ var _path = _interopRequireDefault(require("path"));
9
9
  var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
10
10
  var _webpack = _interopRequireDefault(require("webpack"));
11
11
  var _CacheAssetsPlugin = require("./CacheAssetsPlugin");
12
- // tslint:disable no-any no-unsafe-any no-invalid-this
13
-
14
12
  async function createConfigVariant(options) {
15
13
  const {
16
14
  gfv
@@ -64,9 +62,8 @@ async function createConfigVariant(options) {
64
62
  options: {
65
63
  postcssOptions: {
66
64
  ident: "postcss",
67
- // tslint:disable no-require-imports
68
65
  plugins: [
69
- // eslint-disable-next-line @typescript-eslint/no-var-requires
66
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
70
67
  require("autoprefixer")({
71
68
  // Просто дефолтные значение из текущего (1.7.7) browserslist
72
69
  overrideBrowserslist: "> 1%, last 2 versions, Firefox ESR"
@@ -1 +1 @@
1
- {"version":3,"file":"createFormWebpackConfiguration.js","names":["_path","_interopRequireDefault","require","_miniCssExtractPlugin","_webpack","_CacheAssetsPlugin","createConfigVariant","options","gfv","fileNameSuffix","mode","formPath","buildCache","buildCacheOptions","undefined","BuildCache","farmDirectory","buildCacheWebpackPlugin","createWebpackPlugin","devtoolOption","isLocalDev","target","context","output","filename","path","resourcesDirectoryPath","publicPath","resolve","alias","join","__dirname","variables","Resources","extensions","entry","devtool","cache","type","maxGenerations","module","rules","test","use","loader","MiniCssExtractPlugin","modules","localIdentName","postcssOptions","ident","plugins","overrideBrowserslist","babelrc","configFile","presets","targets","browsers","loose","legacy","fullySpecified","exclude","name","webpack","DefinePlugin","GFV","JSON","stringify","NODE_ENV","RESOURCES_HASH","resourcesHash","filter","isNotNullOrUndefined","input","createConfig","result","modes","push","Promise","all"],"sources":["../../../../src/FormWebpackConfiguration/createFormWebpackConfiguration.ts"],"sourcesContent":["// tslint:disable no-any no-unsafe-any no-invalid-this\nimport path from \"path\";\n\nimport MiniCssExtractPlugin from \"mini-css-extract-plugin\";\nimport webpack, { Configuration } from \"webpack\";\n\nimport { BuildCache, FormBuildCacheOptions } from \"./CacheAssetsPlugin\";\n\ntype BuildMode = \"production\" | \"development\";\n\ninterface CreateWebpackConfigurationVariantOptions {\n gfv: string;\n resourcesHash: string;\n formPath: string;\n mode?: BuildMode;\n isLocalDev?: boolean;\n resourcesDirectoryPath: string;\n buildCacheOptions?: FormBuildCacheOptions;\n}\n\nasync function createConfigVariant(options: CreateWebpackConfigurationVariantOptions): Promise<Configuration> {\n const { gfv } = options;\n\n const fileNameSuffix = options.mode === \"production\" ? \".min\" : \"\";\n\n const formPath = options.formPath;\n const buildCache =\n options.buildCacheOptions != undefined\n ? new BuildCache(options.buildCacheOptions.farmDirectory, options.buildCacheOptions.mode)\n : undefined;\n\n const buildCacheWebpackPlugin =\n buildCache != undefined && options.buildCacheOptions != undefined\n ? await buildCache.createWebpackPlugin(options.buildCacheOptions)\n : undefined;\n\n const devtoolOption: Configuration[\"devtool\"] =\n options.mode === \"production\" ? \"hidden-source-map\" : options.isLocalDev ? \"inline-source-map\" : \"source-map\";\n\n return {\n mode: options.mode,\n target: [\"web\", \"es5\"],\n context: formPath,\n output: {\n filename: `public/scripts/${gfv}${fileNameSuffix}.js`,\n path: options.resourcesDirectoryPath,\n publicPath: \"/static/\",\n },\n resolve: {\n alias: {\n \"variables.less\": path.resolve(path.join(__dirname, \"variables.less\")),\n variables: path.resolve(path.join(__dirname, \"variables.less\")),\n Resources: path.join(formPath, \"form\", \"resources\"),\n },\n extensions: [\".js\", \".jsx\"],\n },\n entry: [path.join(formPath, \"form\", \"./web\")],\n devtool: devtoolOption,\n cache:\n options.mode === \"development\"\n ? {\n type: \"memory\",\n maxGenerations: 5,\n }\n : false,\n module: {\n rules: [\n {\n test: /\\.less$/,\n use: [\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loader: MiniCssExtractPlugin.loader as any,\n options: { publicPath: \"../../\" },\n },\n {\n loader: require.resolve(\"css-loader\"),\n options: {\n modules: {\n localIdentName: \"[hash:base64:5]\",\n },\n },\n },\n {\n loader: require.resolve(\"postcss-loader\"),\n options: {\n postcssOptions: {\n ident: \"postcss\",\n // tslint:disable no-require-imports\n plugins: [\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(\"autoprefixer\")({\n // Просто дефолтные значение из текущего (1.7.7) browserslist\n overrideBrowserslist: \"> 1%, last 2 versions, Firefox ESR\",\n }),\n ],\n },\n },\n },\n {\n loader: require.resolve(\"less-loader\"),\n },\n ],\n },\n {\n test: /\\.jsx?$/,\n use: [\n {\n loader: require.resolve(\"babel-loader\"),\n options: {\n babelrc: false,\n configFile: false,\n presets: [\n require.resolve(\"@babel/preset-react\"),\n [\n require.resolve(\"@babel/preset-env\"),\n {\n targets: { browsers: \"> 0%\" },\n loose: true,\n },\n ],\n ],\n plugins: [\n [require.resolve(\"@babel/plugin-proposal-decorators\"), { legacy: true }],\n [require.resolve(\"@babel/plugin-transform-class-properties\"), { loose: true }],\n require.resolve(\"@babel/plugin-proposal-export-default-from\"),\n ],\n },\n },\n ],\n resolve: {\n fullySpecified: false,\n },\n exclude: [/node_modules/],\n },\n {\n test: /\\.(png|svg)$/,\n loader: require.resolve(\"file-loader\"),\n options: { name: \"public/images/[hash].[ext]\" },\n },\n {\n test: /\\.(ttf|eot|woff2?)$/,\n loader: require.resolve(\"file-loader\"),\n options: { name: \"public/fonts/[hash].[ext]\" },\n },\n ],\n },\n // @ts-expect-error Починится, когда все либы обновятся\n plugins: [\n new MiniCssExtractPlugin({\n filename: `public/styles/${gfv}${fileNameSuffix}.css`,\n }),\n new webpack.DefinePlugin({\n \"process.env\": {\n GFV: JSON.stringify(gfv),\n NODE_ENV: JSON.stringify(options.mode),\n RESOURCES_HASH: JSON.stringify(options.resourcesHash),\n },\n }),\n buildCacheWebpackPlugin,\n ].filter(isNotNullOrUndefined),\n };\n}\n\nfunction isNotNullOrUndefined<T>(input: T | undefined | null): input is T {\n return input != undefined;\n}\n\nexport interface CreateWebpackConfigurationOptions {\n gfv: string;\n resourcesHash: string;\n formPath: string;\n resourcesDirectoryPath: string;\n modes: BuildMode[];\n isLocalDev?: boolean;\n buildCacheOptions?: FormBuildCacheOptions;\n}\n\nexport function createConfig(options: CreateWebpackConfigurationOptions): Promise<Configuration[]> {\n const result: Array<Promise<Configuration>> = [];\n\n for (const mode of options.modes) {\n result.push(\n createConfigVariant({\n gfv: options.gfv,\n resourcesHash: options.resourcesHash,\n formPath: options.formPath,\n resourcesDirectoryPath: options.resourcesDirectoryPath,\n mode: mode,\n isLocalDev: options.isLocalDev,\n buildCacheOptions: options.buildCacheOptions,\n })\n );\n }\n return Promise.all(result);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createFormWebpackConfiguration.js","names":["_path","_interopRequireDefault","require","_miniCssExtractPlugin","_webpack","_CacheAssetsPlugin","createConfigVariant","options","gfv","fileNameSuffix","mode","formPath","buildCache","buildCacheOptions","undefined","BuildCache","farmDirectory","buildCacheWebpackPlugin","createWebpackPlugin","devtoolOption","isLocalDev","target","context","output","filename","path","resourcesDirectoryPath","publicPath","resolve","alias","join","__dirname","variables","Resources","extensions","entry","devtool","cache","type","maxGenerations","module","rules","test","use","loader","MiniCssExtractPlugin","modules","localIdentName","postcssOptions","ident","plugins","overrideBrowserslist","babelrc","configFile","presets","targets","browsers","loose","legacy","fullySpecified","exclude","name","webpack","DefinePlugin","GFV","JSON","stringify","NODE_ENV","RESOURCES_HASH","resourcesHash","filter","isNotNullOrUndefined","input","createConfig","result","modes","push","Promise","all"],"sources":["../../../../src/FormWebpackConfiguration/createFormWebpackConfiguration.ts"],"sourcesContent":["import path from \"path\";\n\nimport MiniCssExtractPlugin from \"mini-css-extract-plugin\";\nimport webpack, { Configuration } from \"webpack\";\n\nimport { BuildCache, FormBuildCacheOptions } from \"./CacheAssetsPlugin\";\n\ntype BuildMode = \"production\" | \"development\";\n\ninterface CreateWebpackConfigurationVariantOptions {\n gfv: string;\n resourcesHash: string;\n formPath: string;\n mode?: BuildMode;\n isLocalDev?: boolean;\n resourcesDirectoryPath: string;\n buildCacheOptions?: FormBuildCacheOptions;\n}\n\nasync function createConfigVariant(options: CreateWebpackConfigurationVariantOptions): Promise<Configuration> {\n const { gfv } = options;\n\n const fileNameSuffix = options.mode === \"production\" ? \".min\" : \"\";\n\n const formPath = options.formPath;\n const buildCache =\n options.buildCacheOptions != undefined\n ? new BuildCache(options.buildCacheOptions.farmDirectory, options.buildCacheOptions.mode)\n : undefined;\n\n const buildCacheWebpackPlugin =\n buildCache != undefined && options.buildCacheOptions != undefined\n ? await buildCache.createWebpackPlugin(options.buildCacheOptions)\n : undefined;\n\n const devtoolOption: Configuration[\"devtool\"] =\n options.mode === \"production\" ? \"hidden-source-map\" : options.isLocalDev ? \"inline-source-map\" : \"source-map\";\n\n return {\n mode: options.mode,\n target: [\"web\", \"es5\"],\n context: formPath,\n output: {\n filename: `public/scripts/${gfv}${fileNameSuffix}.js`,\n path: options.resourcesDirectoryPath,\n publicPath: \"/static/\",\n },\n resolve: {\n alias: {\n \"variables.less\": path.resolve(path.join(__dirname, \"variables.less\")),\n variables: path.resolve(path.join(__dirname, \"variables.less\")),\n Resources: path.join(formPath, \"form\", \"resources\"),\n },\n extensions: [\".js\", \".jsx\"],\n },\n entry: [path.join(formPath, \"form\", \"./web\")],\n devtool: devtoolOption,\n cache:\n options.mode === \"development\"\n ? {\n type: \"memory\",\n maxGenerations: 5,\n }\n : false,\n module: {\n rules: [\n {\n test: /\\.less$/,\n use: [\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loader: MiniCssExtractPlugin.loader as any,\n options: { publicPath: \"../../\" },\n },\n {\n loader: require.resolve(\"css-loader\"),\n options: {\n modules: {\n localIdentName: \"[hash:base64:5]\",\n },\n },\n },\n {\n loader: require.resolve(\"postcss-loader\"),\n options: {\n postcssOptions: {\n ident: \"postcss\",\n plugins: [\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n require(\"autoprefixer\")({\n // Просто дефолтные значение из текущего (1.7.7) browserslist\n overrideBrowserslist: \"> 1%, last 2 versions, Firefox ESR\",\n }),\n ],\n },\n },\n },\n {\n loader: require.resolve(\"less-loader\"),\n },\n ],\n },\n {\n test: /\\.jsx?$/,\n use: [\n {\n loader: require.resolve(\"babel-loader\"),\n options: {\n babelrc: false,\n configFile: false,\n presets: [\n require.resolve(\"@babel/preset-react\"),\n [\n require.resolve(\"@babel/preset-env\"),\n {\n targets: { browsers: \"> 0%\" },\n loose: true,\n },\n ],\n ],\n plugins: [\n [require.resolve(\"@babel/plugin-proposal-decorators\"), { legacy: true }],\n [require.resolve(\"@babel/plugin-transform-class-properties\"), { loose: true }],\n require.resolve(\"@babel/plugin-proposal-export-default-from\"),\n ],\n },\n },\n ],\n resolve: {\n fullySpecified: false,\n },\n exclude: [/node_modules/],\n },\n {\n test: /\\.(png|svg)$/,\n loader: require.resolve(\"file-loader\"),\n options: { name: \"public/images/[hash].[ext]\" },\n },\n {\n test: /\\.(ttf|eot|woff2?)$/,\n loader: require.resolve(\"file-loader\"),\n options: { name: \"public/fonts/[hash].[ext]\" },\n },\n ],\n },\n // @ts-expect-error Починится, когда все либы обновятся\n plugins: [\n new MiniCssExtractPlugin({\n filename: `public/styles/${gfv}${fileNameSuffix}.css`,\n }),\n new webpack.DefinePlugin({\n \"process.env\": {\n GFV: JSON.stringify(gfv),\n NODE_ENV: JSON.stringify(options.mode),\n RESOURCES_HASH: JSON.stringify(options.resourcesHash),\n },\n }),\n buildCacheWebpackPlugin,\n ].filter(isNotNullOrUndefined),\n };\n}\n\nfunction isNotNullOrUndefined<T>(input: T | undefined | null): input is T {\n return input != undefined;\n}\n\nexport interface CreateWebpackConfigurationOptions {\n gfv: string;\n resourcesHash: string;\n formPath: string;\n resourcesDirectoryPath: string;\n modes: BuildMode[];\n isLocalDev?: boolean;\n buildCacheOptions?: FormBuildCacheOptions;\n}\n\nexport function createConfig(options: CreateWebpackConfigurationOptions): Promise<Configuration[]> {\n const result: Array<Promise<Configuration>> = [];\n\n for (const mode of options.modes) {\n result.push(\n createConfigVariant({\n gfv: options.gfv,\n resourcesHash: options.resourcesHash,\n formPath: options.formPath,\n resourcesDirectoryPath: options.resourcesDirectoryPath,\n mode: mode,\n isLocalDev: options.isLocalDev,\n buildCacheOptions: options.buildCacheOptions,\n })\n );\n }\n return Promise.all(result);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -129,4 +129,6 @@
129
129
  @loader-bg: @candy-bg-color-panel;
130
130
  @loader-opacity: 0.8;
131
131
 
132
+ /* stylelint-disable */
132
133
  @import (optional) "~candy-ui-theme";
134
+ /* stylelint-enable */
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.readFarmConfig = readFarmConfig;
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  function readFarmConfig(farmDirectory) {
10
- // eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-explicit-any
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-require-imports
11
11
  const configEvaluationResult = require(_path.default.join(farmDirectory, "config.js"))(farmDirectory);
12
12
  return {
13
13
  engineDirectory: configEvaluationResult.localEngineDirectoryPath,
@@ -1 +1 @@
1
- {"version":3,"file":"ReadFarmConfig.js","names":["_path","_interopRequireDefault","require","readFarmConfig","farmDirectory","configEvaluationResult","path","join","engineDirectory","localEngineDirectoryPath","resourcesDirectory","resourcesDirectoryPath","hlFarmDirectoryPath"],"sources":["../../../src/ReadFarmConfig.ts"],"sourcesContent":["import path from \"path\";\n\nexport interface FarmConfig {\n engineDirectory?: string;\n resourcesDirectory?: string;\n hlFarmDirectoryPath: string;\n}\n\nexport function readFarmConfig(farmDirectory: string): FarmConfig {\n // eslint-disable-next-line @typescript-eslint/no-var-requires,@typescript-eslint/no-explicit-any\n const configEvaluationResult: any = require(path.join(farmDirectory, \"config.js\"))(farmDirectory);\n return {\n engineDirectory: configEvaluationResult.localEngineDirectoryPath,\n resourcesDirectory: configEvaluationResult.resourcesDirectoryPath,\n hlFarmDirectoryPath: configEvaluationResult.hlFarmDirectoryPath,\n };\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQO,SAASC,cAAcA,CAACC,aAAqB,EAAc;EAC9D;EACA,MAAMC,sBAA2B,GAAGH,OAAO,CAACI,aAAI,CAACC,IAAI,CAACH,aAAa,EAAE,WAAW,CAAC,CAAC,CAACA,aAAa,CAAC;EACjG,OAAO;IACHI,eAAe,EAAEH,sBAAsB,CAACI,wBAAwB;IAChEC,kBAAkB,EAAEL,sBAAsB,CAACM,sBAAsB;IACjEC,mBAAmB,EAAEP,sBAAsB,CAACO;EAChD,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"ReadFarmConfig.js","names":["_path","_interopRequireDefault","require","readFarmConfig","farmDirectory","configEvaluationResult","path","join","engineDirectory","localEngineDirectoryPath","resourcesDirectory","resourcesDirectoryPath","hlFarmDirectoryPath"],"sources":["../../../src/ReadFarmConfig.ts"],"sourcesContent":["import path from \"path\";\n\nexport interface FarmConfig {\n engineDirectory?: string;\n resourcesDirectory?: string;\n hlFarmDirectoryPath: string;\n}\n\nexport function readFarmConfig(farmDirectory: string): FarmConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-require-imports\n const configEvaluationResult: any = require(path.join(farmDirectory, \"config.js\"))(farmDirectory);\n return {\n engineDirectory: configEvaluationResult.localEngineDirectoryPath,\n resourcesDirectory: configEvaluationResult.resourcesDirectoryPath,\n hlFarmDirectoryPath: configEvaluationResult.hlFarmDirectoryPath,\n };\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQO,SAASC,cAAcA,CAACC,aAAqB,EAAc;EAC9D;EACA,MAAMC,sBAA2B,GAAGH,OAAO,CAACI,aAAI,CAACC,IAAI,CAACH,aAAa,EAAE,WAAW,CAAC,CAAC,CAACA,aAAa,CAAC;EACjG,OAAO;IACHI,eAAe,EAAEH,sBAAsB,CAACI,wBAAwB;IAChEC,kBAAkB,EAAEL,sBAAsB,CAACM,sBAAsB;IACjEC,mBAAmB,EAAEP,sBAAsB,CAACO;EAChD,CAAC;AACL","ignoreList":[]}
@@ -94,7 +94,6 @@ async function getCandyToolUpdateVersion() {
94
94
  console.warn("**********************************************");
95
95
  return undefined;
96
96
  }
97
- // tslint:disable-next-line no-unsafe-any
98
97
  const availableVersions = JSON.parse(output);
99
98
  return getMajorOrMinorIncremented(currentVersion, availableVersions);
100
99
  }