@kontur.candy/tools 2.253.0 → 2.255.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 (85) hide show
  1. package/README.md +0 -16
  2. package/distr/Common/AsyncUtils.js +7 -0
  3. package/distr/Common/AsyncUtils.js.map +1 -1
  4. package/distr/Common/CandyApiClient/CandyApiClient.js +37 -5
  5. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
  6. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -1
  7. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +20 -0
  8. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
  9. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
  10. package/distr/Common/CommonConstants/DefaultServicesUrls.js +3 -1
  11. package/distr/Common/CommonConstants/DefaultServicesUrls.js.map +1 -1
  12. package/distr/Common/IntRangeUtils.js +4 -0
  13. package/distr/Common/IntRangeUtils.js.map +1 -1
  14. package/distr/Common/KCLangRuntimeUtils.js +7 -1
  15. package/distr/Common/KCLangRuntimeUtils.js.map +1 -1
  16. package/distr/Common/TypingUtils.js +4 -0
  17. package/distr/Common/TypingUtils.js.map +1 -1
  18. package/distr/Common/async/Channel.js +64 -0
  19. package/distr/Common/async/Channel.js.map +1 -0
  20. package/distr/Common/async/pool/AsyncPool.js +145 -0
  21. package/distr/Common/async/pool/AsyncPool.js.map +1 -0
  22. package/distr/Common/async/pool/FixedPool.js +29 -0
  23. package/distr/Common/async/pool/FixedPool.js.map +1 -0
  24. package/distr/Common/async/pool/LimitedPool.js +81 -0
  25. package/distr/Common/async/pool/LimitedPool.js.map +1 -0
  26. package/distr/Common/async/pool/Registry.js +73 -0
  27. package/distr/Common/async/pool/Registry.js.map +1 -0
  28. package/distr/Common/async/pool/index.js +13 -0
  29. package/distr/Common/async/pool/index.js.map +1 -0
  30. package/distr/Common/ds/LinkedList.js +64 -0
  31. package/distr/Common/ds/LinkedList.js.map +1 -0
  32. package/distr/Common/multithread/ThreadPool.js +74 -0
  33. package/distr/Common/multithread/ThreadPool.js.map +1 -0
  34. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +2 -1
  35. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -1
  36. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +0 -3
  37. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -1
  38. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +1 -1
  39. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -1
  40. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +13 -4
  41. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -1
  42. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +29 -107
  43. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -1
  44. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorPool.js +62 -0
  45. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorPool.js.map +1 -0
  46. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +29 -36
  47. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -1
  48. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +28 -35
  49. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -1
  50. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedThreadWorker.js +14 -0
  51. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedThreadWorker.js.map +1 -0
  52. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +1 -1
  53. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -1
  54. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +0 -10
  55. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -1
  56. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +2 -6
  57. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -1
  58. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +0 -22
  59. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -1
  60. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +1 -3
  61. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -1
  62. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +1 -1
  63. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -1
  64. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +2 -5
  65. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -1
  66. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +0 -10
  67. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -1
  68. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +35 -6
  69. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -1
  70. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +1 -1
  71. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -1
  72. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +1 -1
  73. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -1
  74. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  75. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  76. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  77. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +14 -13
  78. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  79. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +14 -13
  80. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  81. package/package.json +1 -1
  82. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +0 -40
  83. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +0 -1
  84. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +0 -19
  85. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +0 -1
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
2
 
3
+ var _nodeWorker_threads = require("node:worker_threads");
3
4
  var _IterableUtils = require("../../../../../Common/IterableUtils");
4
5
  var _GeneratorRequireUtils = require("./GeneratorRequireUtils");
5
- var _TypedProcessWorker = require("./TypedProcessWorker");
6
- _TypedProcessWorker.TypedProcessWorker.start(async ([pathToGeneratorProcessSugar, formSourcesPath, farmDirectory, generationOptions, purgeCache, requestNumber], send) => {
6
+ var _TypedThreadWorker = require("./TypedThreadWorker");
7
+ const {
8
+ generatorPath
9
+ } = _nodeWorker_threads.workerData;
10
+ const generator = (0, _GeneratorRequireUtils.importGenerator)(generatorPath);
11
+ (0, _TypedThreadWorker.startWorker)(async ([formPath, farmPath, options], send) => {
7
12
  let formSource;
8
13
  try {
9
- const importer = new _GeneratorRequireUtils.GeneratorSourcesImporter(pathToGeneratorProcessSugar, purgeCache);
10
- const readSources = await importer.importReadSources();
11
- formSource = await readSources(formSourcesPath, farmDirectory);
12
- const processSugar = await importer.importProcessSugar();
13
- const formContent = await processSugar(formSource.sugarContent, formSource.resources, generationOptions);
14
+ formSource = await generator.readSources(formPath, farmPath);
15
+ const formContent = await generator.processSugar(formSource.sugarContent, formSource.resources, options);
14
16
 
15
17
  // eslint-disable-next-line no-warning-comments
16
18
  // TODO(2026-06-30): временно отключаем валидацию компиляции Flang на бэкенде (исправить в задаче https://yt.skbkontur.ru/issue/FS-9242)
@@ -18,40 +20,31 @@ _TypedProcessWorker.TypedProcessWorker.start(async ([pathToGeneratorProcessSugar
18
20
  // await validator.validate(formContent);
19
21
 
20
22
  const result = {};
21
-
22
- // NOTE Because only JSON are allowed for IPC we need to convert Buffer -> Base64
23
- // Another solution is use a stream, but formContent still need to convert or send by chunks
23
+ const transferList = [];
24
24
  for (const [key, formContentItem] of (0, _IterableUtils.iterateEntries)(formContent)) {
25
- // @ts-ignore
26
- result[key] = formContentItem instanceof Buffer ? {
27
- payload: formContentItem.toString("base64"),
28
- encoding: "base64"
29
- } : formContentItem;
25
+ if (formContentItem instanceof Buffer) {
26
+ // Buffer.buffer is typed as ArrayBuffer | SharedArrayBuffer,
27
+ // but Node.js Buffers never use SharedArrayBuffer in practice.
28
+ const content = formContentItem.buffer.slice(formContentItem.byteOffset, formContentItem.byteOffset + formContentItem.byteLength);
29
+ result[key] = content;
30
+ transferList.push(content);
31
+ } else {
32
+ result[key] = formContentItem;
33
+ }
30
34
  }
31
35
  send({
32
36
  type: "Result",
33
37
  gfv: formSource.resources.gfv,
34
- generatedForm: result,
35
- requestNumber: requestNumber
36
- });
38
+ generatedForm: result
39
+ }, transferList);
37
40
  } catch (error) {
38
- if (error instanceof Error) {
39
- var _formSource;
40
- send({
41
- type: "Error",
42
- gfv: (_formSource = formSource) === null || _formSource === void 0 ? void 0 : _formSource.resources.gfv,
43
- errorText: `${error.toString()}\n${error.stack}`,
44
- requestNumber: requestNumber
45
- });
46
- } else {
47
- var _formSource2;
48
- send({
49
- type: "Error",
50
- gfv: (_formSource2 = formSource) === null || _formSource2 === void 0 ? void 0 : _formSource2.resources.gfv,
51
- errorText: `${error}`,
52
- requestNumber: requestNumber
53
- });
54
- }
41
+ var _formSource;
42
+ const errorText = error instanceof Error ? `${error.toString()}\n${error.stack}` : `${error}`;
43
+ send({
44
+ type: "Error",
45
+ gfv: (_formSource = formSource) === null || _formSource === void 0 ? void 0 : _formSource.resources.gfv,
46
+ errorText: errorText
47
+ });
55
48
  }
56
49
  });
57
50
  //# sourceMappingURL=ReadSourcesAndProcessSugarWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReadSourcesAndProcessSugarWorker.js","names":["_IterableUtils","require","_GeneratorRequireUtils","_TypedProcessWorker","TypedProcessWorker","start","pathToGeneratorProcessSugar","formSourcesPath","farmDirectory","generationOptions","purgeCache","requestNumber","send","formSource","importer","GeneratorSourcesImporter","readSources","importReadSources","processSugar","importProcessSugar","formContent","sugarContent","resources","result","key","formContentItem","iterateEntries","Buffer","payload","toString","encoding","type","gfv","generatedForm","error","Error","_formSource","errorText","stack","_formSource2"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.ts"],"sourcesContent":["import type { GeneratedForm, GenerationOptions } from \"../../Form/GenerateForm\";\nimport type { FormSource } from \"../../FormSource\";\nimport { iterateEntries } from \"../../../../../Common/IterableUtils\";\n\nimport { GeneratorSourcesImporter } from \"./GeneratorRequireUtils\";\nimport { TypedProcessWorker } from \"./TypedProcessWorker\";\n\nexport interface GeneratedFormInterProcessMessage {\n [relativeFileName: string]: string | { payload: string; encoding: BufferEncoding };\n}\n\nexport type CallMessage = [\n generatorPath: string,\n formPath: string,\n farmPath: string,\n undefined | GenerationOptions,\n purgeCache: boolean,\n requestNumber: number,\n];\n\nexport type CallResponse =\n | { type: \"Result\"; gfv: string; generatedForm: GeneratedFormInterProcessMessage; requestNumber: number }\n | { type: \"Error\"; gfv?: string; errorText: string; requestNumber: number };\n\nTypedProcessWorker.start<CallMessage, CallResponse>(\n async (\n [pathToGeneratorProcessSugar, formSourcesPath, farmDirectory, generationOptions, purgeCache, requestNumber],\n send\n ): Promise<void> => {\n let formSource: FormSource | undefined;\n try {\n const importer = new GeneratorSourcesImporter(pathToGeneratorProcessSugar, purgeCache);\n const readSources = await importer.importReadSources();\n formSource = await readSources(formSourcesPath, farmDirectory);\n\n const processSugar = await importer.importProcessSugar();\n\n const formContent: GeneratedForm = await processSugar(\n formSource.sugarContent,\n formSource.resources,\n generationOptions\n );\n\n // eslint-disable-next-line no-warning-comments\n // TODO(2026-06-30): временно отключаем валидацию компиляции Flang на бэкенде (исправить в задаче https://yt.skbkontur.ru/issue/FS-9242)\n // const validator = new GeneratorSourcesValidator(generationOptions);\n // await validator.validate(formContent);\n\n const result: GeneratedFormInterProcessMessage = {};\n\n // NOTE Because only JSON are allowed for IPC we need to convert Buffer -> Base64\n // Another solution is use a stream, but formContent still need to convert or send by chunks\n for (const [key, formContentItem] of iterateEntries(formContent)) {\n // @ts-ignore\n result[key] =\n formContentItem instanceof Buffer\n ? { payload: formContentItem.toString(\"base64\"), encoding: \"base64\" }\n : formContentItem;\n }\n\n send({\n type: \"Result\",\n gfv: formSource.resources.gfv,\n generatedForm: result,\n requestNumber: requestNumber,\n });\n } catch (error) {\n if (error instanceof Error) {\n send({\n type: \"Error\",\n gfv: formSource?.resources.gfv,\n errorText: `${error.toString()}\\n${error.stack}`,\n requestNumber: requestNumber,\n });\n } else {\n send({\n type: \"Error\",\n gfv: formSource?.resources.gfv,\n errorText: `${error}`,\n requestNumber: requestNumber,\n });\n }\n }\n }\n);\n"],"mappings":";;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAmBAG,sCAAkB,CAACC,KAAK,CACpB,OACI,CAACC,2BAA2B,EAAEC,eAAe,EAAEC,aAAa,EAAEC,iBAAiB,EAAEC,UAAU,EAAEC,aAAa,CAAC,EAC3GC,IAAI,KACY;EAChB,IAAIC,UAAkC;EACtC,IAAI;IACA,MAAMC,QAAQ,GAAG,IAAIC,+CAAwB,CAACT,2BAA2B,EAAEI,UAAU,CAAC;IACtF,MAAMM,WAAW,GAAG,MAAMF,QAAQ,CAACG,iBAAiB,CAAC,CAAC;IACtDJ,UAAU,GAAG,MAAMG,WAAW,CAACT,eAAe,EAAEC,aAAa,CAAC;IAE9D,MAAMU,YAAY,GAAG,MAAMJ,QAAQ,CAACK,kBAAkB,CAAC,CAAC;IAExD,MAAMC,WAA0B,GAAG,MAAMF,YAAY,CACjDL,UAAU,CAACQ,YAAY,EACvBR,UAAU,CAACS,SAAS,EACpBb,iBACJ,CAAC;;IAED;IACA;IACA;IACA;;IAEA,MAAMc,MAAwC,GAAG,CAAC,CAAC;;IAEnD;IACA;IACA,KAAK,MAAM,CAACC,GAAG,EAAEC,eAAe,CAAC,IAAI,IAAAC,6BAAc,EAACN,WAAW,CAAC,EAAE;MAC9D;MACAG,MAAM,CAACC,GAAG,CAAC,GACPC,eAAe,YAAYE,MAAM,GAC3B;QAAEC,OAAO,EAAEH,eAAe,CAACI,QAAQ,CAAC,QAAQ,CAAC;QAAEC,QAAQ,EAAE;MAAS,CAAC,GACnEL,eAAe;IAC7B;IAEAb,IAAI,CAAC;MACDmB,IAAI,EAAE,QAAQ;MACdC,GAAG,EAAEnB,UAAU,CAACS,SAAS,CAACU,GAAG;MAC7BC,aAAa,EAAEV,MAAM;MACrBZ,aAAa,EAAEA;IACnB,CAAC,CAAC;EACN,CAAC,CAAC,OAAOuB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYC,KAAK,EAAE;MAAA,IAAAC,WAAA;MACxBxB,IAAI,CAAC;QACDmB,IAAI,EAAE,OAAO;QACbC,GAAG,GAAAI,WAAA,GAAEvB,UAAU,cAAAuB,WAAA,uBAAVA,WAAA,CAAYd,SAAS,CAACU,GAAG;QAC9BK,SAAS,EAAE,GAAGH,KAAK,CAACL,QAAQ,CAAC,CAAC,KAAKK,KAAK,CAACI,KAAK,EAAE;QAChD3B,aAAa,EAAEA;MACnB,CAAC,CAAC;IACN,CAAC,MAAM;MAAA,IAAA4B,YAAA;MACH3B,IAAI,CAAC;QACDmB,IAAI,EAAE,OAAO;QACbC,GAAG,GAAAO,YAAA,GAAE1B,UAAU,cAAA0B,YAAA,uBAAVA,YAAA,CAAYjB,SAAS,CAACU,GAAG;QAC9BK,SAAS,EAAE,GAAGH,KAAK,EAAE;QACrBvB,aAAa,EAAEA;MACnB,CAAC,CAAC;IACN;EACJ;AACJ,CACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ReadSourcesAndProcessSugarWorker.js","names":["_nodeWorker_threads","require","_IterableUtils","_GeneratorRequireUtils","_TypedThreadWorker","generatorPath","workerData","generator","importGenerator","startWorker","formPath","farmPath","options","send","formSource","readSources","formContent","processSugar","sugarContent","resources","result","transferList","key","formContentItem","iterateEntries","Buffer","content","buffer","slice","byteOffset","byteLength","push","type","gfv","generatedForm","error","_formSource","errorText","Error","toString","stack"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.ts"],"sourcesContent":["import { workerData } from \"node:worker_threads\";\n\nimport type { GeneratedForm, GenerationOptions } from \"../../Form/GenerateForm\";\nimport type { FormSource } from \"../../FormSource\";\nimport { iterateEntries } from \"../../../../../Common/IterableUtils\";\n\nimport { importGenerator } from \"./GeneratorRequireUtils\";\nimport { startWorker } from \"./TypedThreadWorker\";\n\nexport interface GeneratedFormWorkerMessage {\n [relativeFileName: string]: string | ArrayBuffer;\n}\n\nexport type CallMessage = [formPath: string, farmPath: string, options: GenerationOptions | undefined];\n\nexport type CallResponse =\n | { type: \"Result\"; gfv: string; generatedForm: GeneratedFormWorkerMessage }\n | { type: \"Error\"; gfv?: string; errorText: string };\n\nconst { generatorPath } = workerData as { generatorPath: string };\nconst generator = importGenerator(generatorPath);\n\nstartWorker<CallMessage, CallResponse>(async ([formPath, farmPath, options], send): Promise<void> => {\n let formSource: FormSource | undefined;\n try {\n formSource = await generator.readSources(formPath, farmPath);\n const formContent: GeneratedForm = await generator.processSugar(\n formSource.sugarContent,\n formSource.resources,\n options\n );\n\n // eslint-disable-next-line no-warning-comments\n // TODO(2026-06-30): временно отключаем валидацию компиляции Flang на бэкенде (исправить в задаче https://yt.skbkontur.ru/issue/FS-9242)\n // const validator = new GeneratorSourcesValidator(generationOptions);\n // await validator.validate(formContent);\n\n const result: GeneratedFormWorkerMessage = {};\n const transferList: ArrayBuffer[] = [];\n\n for (const [key, formContentItem] of iterateEntries(formContent)) {\n if (formContentItem instanceof Buffer) {\n // Buffer.buffer is typed as ArrayBuffer | SharedArrayBuffer,\n // but Node.js Buffers never use SharedArrayBuffer in practice.\n const content = formContentItem.buffer.slice(\n formContentItem.byteOffset,\n formContentItem.byteOffset + formContentItem.byteLength\n ) as ArrayBuffer;\n result[key] = content;\n transferList.push(content);\n } else {\n result[key] = formContentItem as string;\n }\n }\n\n send(\n {\n type: \"Result\",\n gfv: formSource.resources.gfv,\n generatedForm: result,\n },\n transferList\n );\n } catch (error) {\n const errorText = error instanceof Error ? `${error.toString()}\\n${error.stack}` : `${error}`;\n send({\n type: \"Error\",\n gfv: formSource?.resources.gfv,\n errorText: errorText,\n });\n }\n});\n"],"mappings":";;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAIA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAYA,MAAM;EAAEI;AAAc,CAAC,GAAGC,8BAAuC;AACjE,MAAMC,SAAS,GAAG,IAAAC,sCAAe,EAACH,aAAa,CAAC;AAEhD,IAAAI,8BAAW,EAA4B,OAAO,CAACC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,CAAC,EAAEC,IAAI,KAAoB;EACjG,IAAIC,UAAkC;EACtC,IAAI;IACAA,UAAU,GAAG,MAAMP,SAAS,CAACQ,WAAW,CAACL,QAAQ,EAAEC,QAAQ,CAAC;IAC5D,MAAMK,WAA0B,GAAG,MAAMT,SAAS,CAACU,YAAY,CAC3DH,UAAU,CAACI,YAAY,EACvBJ,UAAU,CAACK,SAAS,EACpBP,OACJ,CAAC;;IAED;IACA;IACA;IACA;;IAEA,MAAMQ,MAAkC,GAAG,CAAC,CAAC;IAC7C,MAAMC,YAA2B,GAAG,EAAE;IAEtC,KAAK,MAAM,CAACC,GAAG,EAAEC,eAAe,CAAC,IAAI,IAAAC,6BAAc,EAACR,WAAW,CAAC,EAAE;MAC9D,IAAIO,eAAe,YAAYE,MAAM,EAAE;QACnC;QACA;QACA,MAAMC,OAAO,GAAGH,eAAe,CAACI,MAAM,CAACC,KAAK,CACxCL,eAAe,CAACM,UAAU,EAC1BN,eAAe,CAACM,UAAU,GAAGN,eAAe,CAACO,UACjD,CAAgB;QAChBV,MAAM,CAACE,GAAG,CAAC,GAAGI,OAAO;QACrBL,YAAY,CAACU,IAAI,CAACL,OAAO,CAAC;MAC9B,CAAC,MAAM;QACHN,MAAM,CAACE,GAAG,CAAC,GAAGC,eAAyB;MAC3C;IACJ;IAEAV,IAAI,CACA;MACImB,IAAI,EAAE,QAAQ;MACdC,GAAG,EAAEnB,UAAU,CAACK,SAAS,CAACc,GAAG;MAC7BC,aAAa,EAAEd;IACnB,CAAC,EACDC,YACJ,CAAC;EACL,CAAC,CAAC,OAAOc,KAAK,EAAE;IAAA,IAAAC,WAAA;IACZ,MAAMC,SAAS,GAAGF,KAAK,YAAYG,KAAK,GAAG,GAAGH,KAAK,CAACI,QAAQ,CAAC,CAAC,KAAKJ,KAAK,CAACK,KAAK,EAAE,GAAG,GAAGL,KAAK,EAAE;IAC7FtB,IAAI,CAAC;MACDmB,IAAI,EAAE,OAAO;MACbC,GAAG,GAAAG,WAAA,GAAEtB,UAAU,cAAAsB,WAAA,uBAAVA,WAAA,CAAYjB,SAAS,CAACc,GAAG;MAC9BI,SAAS,EAAEA;IACf,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.startWorker = void 0;
7
+ var _nodeWorker_threads = require("node:worker_threads");
8
+ const startWorker = handle => {
9
+ _nodeWorker_threads.parentPort === null || _nodeWorker_threads.parentPort === void 0 || _nodeWorker_threads.parentPort.on("message", async msg => {
10
+ await handle(msg, (out, transfer) => _nodeWorker_threads.parentPort === null || _nodeWorker_threads.parentPort === void 0 ? void 0 : _nodeWorker_threads.parentPort.postMessage(out, transfer));
11
+ });
12
+ };
13
+ exports.startWorker = startWorker;
14
+ //# sourceMappingURL=TypedThreadWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedThreadWorker.js","names":["_nodeWorker_threads","require","startWorker","handle","parentPort","on","msg","out","transfer","postMessage","exports"],"sources":["../../../../../../src/BuildTasks/Generator/GeneratorWorker/TypedThreadWorker.ts"],"sourcesContent":["import { parentPort, TransferListItem } from \"node:worker_threads\";\n\ntype Send<Out> = (out: Out, transfer?: TransferListItem[]) => void;\ntype Handle<In, Out> = (msg: In, send: Send<Out>) => Promise<void>;\n\nexport const startWorker = <In, Out>(handle: Handle<In, Out>): void => {\n parentPort?.on(\"message\", async (msg: In) => {\n await handle(msg, (out, transfer) => parentPort?.postMessage(out, transfer));\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAKO,MAAMC,WAAW,GAAaC,MAAuB,IAAW;EACnEC,8BAAU,aAAVA,8BAAU,eAAVA,8BAAU,CAAEC,EAAE,CAAC,SAAS,EAAE,MAAOC,GAAO,IAAK;IACzC,MAAMH,MAAM,CAACG,GAAG,EAAE,CAACC,GAAG,EAAEC,QAAQ,KAAKJ,8BAAU,aAAVA,8BAAU,uBAAVA,8BAAU,CAAEK,WAAW,CAACF,GAAG,EAAEC,QAAQ,CAAC,CAAC;EAChF,CAAC,CAAC;AACN,CAAC;AAACE,OAAA,CAAAR,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -20,7 +20,7 @@ let FormBuildMode = exports.FormBuildMode = /*#__PURE__*/function (FormBuildMode
20
20
  FormBuildMode[FormBuildMode["NoEditor"] = 1] = "NoEditor";
21
21
  return FormBuildMode;
22
22
  }({});
23
- async function resolveFormInfo(formJsonFile, pathToForm, _engineDirectory, logger = (0, _StaticLogger.getLogger)(), upgradeFormJson = false, useLastStableVersion = false, usePrereleaseVersion, nightly = false) {
23
+ async function resolveFormInfo(formJsonFile, pathToForm, logger = (0, _StaticLogger.getLogger)(), upgradeFormJson = false, useLastStableVersion = false, usePrereleaseVersion, nightly = false) {
24
24
  var _formConfig$dependenc, _formConfig$dependenc2, _formConfig$settings$;
25
25
  const formConfig = await readFormConfig(formJsonFile);
26
26
  if (useLastStableVersion && usePrereleaseVersion != undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"ResolveFormInfo.js","names":["_fsExtra","require","_lodash","_FsUtils","_StaticLogger","_FormPathUtils","_PublishedVersionUtils","_Version","FormBuildMode","exports","resolveFormInfo","formJsonFile","pathToForm","_engineDirectory","logger","getLogger","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","nightly","_formConfig$dependenc","_formConfig$dependenc2","_formConfig$settings$","formConfig","readFormConfig","undefined","Error","dependencies","engine","getLastStableEngineVersion","generator","getLastStableGeneratorVersion","log","writeFileAsync","JSON","stringify","prereleaseVersionFormJson","getPrereleaseVersionFormJson","generatorVersion","parseCandyVersionSpec","engineVersion","type","preId","themes","mode","NoEditor","NormalBuild","formName","extractGfvFromFormPath","formSourcesPath","useServerSideNormalization","settings","useServerSideFLangNormalization","isNewFormJsonFormat","readJson","getFormConfigFromSource","_formConfig$dependenc3","_formConfig$dependenc4","_formConfig$settings","_formConfig$mode","isValidSemVerVersionRange","pickBy","x","build"],"sources":["../../../../src/BuildTasks/ResolveFormInfo.ts"],"sourcesContent":["import { readJson } from \"fs-extra\";\nimport { pickBy } from \"lodash\";\n\nimport { writeFileAsync } from \"../Commons/FsUtils\";\nimport { ILogger } from \"../Commons/Logging/ILogger\";\nimport { getLogger } from \"../Commons/Logging/StaticLogger\";\nimport { extractGfvFromFormPath } from \"../../../Common/FormPathUtils\";\n\nimport {\n getLastStableEngineVersion,\n getLastStableGeneratorVersion,\n getPrereleaseVersionFormJson,\n} from \"./PublishedVersionUtils\";\nimport { CandyVersionSpec, isValidSemVerVersionRange, parseCandyVersionSpec } from \"./Version\";\n\nexport enum FormBuildMode {\n NormalBuild,\n NoEditor,\n}\n\nexport interface FormInfo {\n themes?: string[];\n mode: FormBuildMode;\n formName: string;\n formSourcesPath: string;\n generatorVersion: undefined | CandyVersionSpec;\n engineVersion: undefined | CandyVersionSpec;\n useServerSideNormalization: boolean;\n}\n\nexport interface FormConfigContent {\n themes?: string[];\n build?: \"ci\" | \"manual\";\n mode?: \"no-editor\";\n dependencies?: {\n generator?: string;\n engine?: string;\n };\n settings?: {\n useServerSideFLangNormalization?: boolean;\n autoCalculationCalculatorImpl?: \"calculator2\";\n disableFlangRulesForEnableAutoFieldFeature?: boolean;\n disableFlangRulesForFormulaAndInitNormalizer?: boolean;\n };\n}\n\ninterface FormConfig {\n themes?: string[];\n build?: \"ci\" | \"manual\";\n mode?: \"no-editor\" | \"normal-build\";\n dependencies?: {\n generator: undefined | string;\n engine: undefined | string;\n };\n settings: {\n useServerSideFLangNormalization: boolean;\n autoCalculationCalculatorImpl?: \"calculator2\" | \"default\";\n disableFlangRulesForEnableAutoFieldFeature?: boolean;\n disableFlangRulesForFormulaAndInitNormalizer?: boolean;\n };\n}\n\nexport async function resolveFormInfo(\n formJsonFile: string,\n pathToForm: string,\n _engineDirectory: undefined | string,\n logger: ILogger = getLogger(),\n upgradeFormJson: boolean = false,\n useLastStableVersion: boolean = false,\n usePrereleaseVersion?: string,\n nightly: boolean = false\n): Promise<FormInfo> {\n const formConfig = await readFormConfig(formJsonFile);\n if (useLastStableVersion && usePrereleaseVersion != undefined) {\n throw new Error(\"Необходимо использовать либо флаг useLastStableVersion либо usePrereleaseVersion\");\n }\n if (useLastStableVersion) {\n formConfig.dependencies = {\n engine: await getLastStableEngineVersion(),\n generator: await getLastStableGeneratorVersion(),\n };\n logger.log(`Updated to last stable version ${formConfig.dependencies.engine}`);\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n if (usePrereleaseVersion != undefined) {\n const prereleaseVersionFormJson = await getPrereleaseVersionFormJson(usePrereleaseVersion);\n if (prereleaseVersionFormJson != undefined) {\n formConfig.dependencies = {\n engine: prereleaseVersionFormJson,\n generator: prereleaseVersionFormJson,\n };\n logger.log(`Updated to last prerelease version ${formConfig.dependencies.engine}`);\n }\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n let generatorVersion =\n formConfig.dependencies?.generator != undefined\n ? parseCandyVersionSpec(formConfig.dependencies.generator)\n : undefined;\n let engineVersion =\n formConfig.dependencies?.engine != undefined\n ? parseCandyVersionSpec(formConfig.dependencies.engine)\n : undefined;\n if (nightly) {\n generatorVersion = { type: \"pre\", preId: \"nightly\" };\n engineVersion = { type: \"pre\", preId: \"nightly\" };\n }\n if (upgradeFormJson) {\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n return {\n themes: formConfig.themes,\n mode: formConfig.mode === \"no-editor\" ? FormBuildMode.NoEditor : FormBuildMode.NormalBuild,\n formName: extractGfvFromFormPath(pathToForm),\n formSourcesPath: pathToForm,\n generatorVersion: generatorVersion,\n engineVersion: engineVersion,\n useServerSideNormalization: formConfig.settings.useServerSideFLangNormalization ?? false,\n };\n}\n\nexport async function isNewFormJsonFormat(formJsonFile: string): Promise<boolean> {\n const formConfig: FormConfigContent = await readJson(formJsonFile);\n return formConfig.dependencies != undefined;\n}\n\nexport async function readFormConfig(formJsonFile: string): Promise<FormConfig> {\n const formConfig: FormConfigContent = await readJson(formJsonFile);\n return getFormConfigFromSource(formConfig);\n}\n\nexport function getFormConfigFromSource(formConfig: FormConfigContent): FormConfig {\n if (\n formConfig.dependencies?.generator != undefined &&\n !isValidSemVerVersionRange(formConfig.dependencies.generator)\n ) {\n throw new Error(`${formConfig.dependencies.generator} is not valid version format`);\n }\n\n if (formConfig.dependencies?.engine != undefined && !isValidSemVerVersionRange(formConfig.dependencies.engine)) {\n throw new Error(`${formConfig.dependencies.engine} is not valid version format`);\n }\n\n const settings = {\n useServerSideFLangNormalization: false,\n ...pickBy(formConfig.settings ?? {}, x => x !== undefined),\n };\n\n return {\n themes: formConfig.themes,\n build: formConfig.build || \"manual\",\n mode: formConfig.mode ?? \"normal-build\",\n settings: settings,\n dependencies:\n formConfig.dependencies != undefined\n ? {\n generator: formConfig.dependencies.generator,\n engine: formConfig.dependencies.engine,\n }\n : undefined,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ResolveFormInfo.js","names":["_fsExtra","require","_lodash","_FsUtils","_StaticLogger","_FormPathUtils","_PublishedVersionUtils","_Version","FormBuildMode","exports","resolveFormInfo","formJsonFile","pathToForm","logger","getLogger","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","nightly","_formConfig$dependenc","_formConfig$dependenc2","_formConfig$settings$","formConfig","readFormConfig","undefined","Error","dependencies","engine","getLastStableEngineVersion","generator","getLastStableGeneratorVersion","log","writeFileAsync","JSON","stringify","prereleaseVersionFormJson","getPrereleaseVersionFormJson","generatorVersion","parseCandyVersionSpec","engineVersion","type","preId","themes","mode","NoEditor","NormalBuild","formName","extractGfvFromFormPath","formSourcesPath","useServerSideNormalization","settings","useServerSideFLangNormalization","isNewFormJsonFormat","readJson","getFormConfigFromSource","_formConfig$dependenc3","_formConfig$dependenc4","_formConfig$settings","_formConfig$mode","isValidSemVerVersionRange","pickBy","x","build"],"sources":["../../../../src/BuildTasks/ResolveFormInfo.ts"],"sourcesContent":["import { readJson } from \"fs-extra\";\nimport { pickBy } from \"lodash\";\n\nimport { writeFileAsync } from \"../Commons/FsUtils\";\nimport { ILogger } from \"../Commons/Logging/ILogger\";\nimport { getLogger } from \"../Commons/Logging/StaticLogger\";\nimport { extractGfvFromFormPath } from \"../../../Common/FormPathUtils\";\n\nimport {\n getLastStableEngineVersion,\n getLastStableGeneratorVersion,\n getPrereleaseVersionFormJson,\n} from \"./PublishedVersionUtils\";\nimport { CandyVersionSpec, isValidSemVerVersionRange, parseCandyVersionSpec } from \"./Version\";\n\nexport enum FormBuildMode {\n NormalBuild,\n NoEditor,\n}\n\nexport interface FormInfo {\n themes?: string[];\n mode: FormBuildMode;\n formName: string;\n formSourcesPath: string;\n generatorVersion: undefined | CandyVersionSpec;\n engineVersion: undefined | CandyVersionSpec;\n useServerSideNormalization: boolean;\n}\n\nexport interface FormConfigContent {\n themes?: string[];\n build?: \"ci\" | \"manual\";\n mode?: \"no-editor\";\n dependencies?: {\n generator?: string;\n engine?: string;\n };\n settings?: {\n useServerSideFLangNormalization?: boolean;\n autoCalculationCalculatorImpl?: \"calculator2\";\n disableFlangRulesForEnableAutoFieldFeature?: boolean;\n disableFlangRulesForFormulaAndInitNormalizer?: boolean;\n };\n}\n\ninterface FormConfig {\n themes?: string[];\n build?: \"ci\" | \"manual\";\n mode?: \"no-editor\" | \"normal-build\";\n dependencies?: {\n generator: undefined | string;\n engine: undefined | string;\n };\n settings: {\n useServerSideFLangNormalization: boolean;\n autoCalculationCalculatorImpl?: \"calculator2\" | \"default\";\n disableFlangRulesForEnableAutoFieldFeature?: boolean;\n disableFlangRulesForFormulaAndInitNormalizer?: boolean;\n };\n}\n\nexport async function resolveFormInfo(\n formJsonFile: string,\n pathToForm: string,\n logger: ILogger = getLogger(),\n upgradeFormJson: boolean = false,\n useLastStableVersion: boolean = false,\n usePrereleaseVersion?: string,\n nightly: boolean = false\n): Promise<FormInfo> {\n const formConfig = await readFormConfig(formJsonFile);\n if (useLastStableVersion && usePrereleaseVersion != undefined) {\n throw new Error(\"Необходимо использовать либо флаг useLastStableVersion либо usePrereleaseVersion\");\n }\n if (useLastStableVersion) {\n formConfig.dependencies = {\n engine: await getLastStableEngineVersion(),\n generator: await getLastStableGeneratorVersion(),\n };\n logger.log(`Updated to last stable version ${formConfig.dependencies.engine}`);\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n if (usePrereleaseVersion != undefined) {\n const prereleaseVersionFormJson = await getPrereleaseVersionFormJson(usePrereleaseVersion);\n if (prereleaseVersionFormJson != undefined) {\n formConfig.dependencies = {\n engine: prereleaseVersionFormJson,\n generator: prereleaseVersionFormJson,\n };\n logger.log(`Updated to last prerelease version ${formConfig.dependencies.engine}`);\n }\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n let generatorVersion =\n formConfig.dependencies?.generator != undefined\n ? parseCandyVersionSpec(formConfig.dependencies.generator)\n : undefined;\n let engineVersion =\n formConfig.dependencies?.engine != undefined\n ? parseCandyVersionSpec(formConfig.dependencies.engine)\n : undefined;\n if (nightly) {\n generatorVersion = { type: \"pre\", preId: \"nightly\" };\n engineVersion = { type: \"pre\", preId: \"nightly\" };\n }\n if (upgradeFormJson) {\n await writeFileAsync(formJsonFile, JSON.stringify(formConfig, undefined, \" \"), \"utf8\");\n }\n return {\n themes: formConfig.themes,\n mode: formConfig.mode === \"no-editor\" ? FormBuildMode.NoEditor : FormBuildMode.NormalBuild,\n formName: extractGfvFromFormPath(pathToForm),\n formSourcesPath: pathToForm,\n generatorVersion: generatorVersion,\n engineVersion: engineVersion,\n useServerSideNormalization: formConfig.settings.useServerSideFLangNormalization ?? false,\n };\n}\n\nexport async function isNewFormJsonFormat(formJsonFile: string): Promise<boolean> {\n const formConfig: FormConfigContent = await readJson(formJsonFile);\n return formConfig.dependencies != undefined;\n}\n\nexport async function readFormConfig(formJsonFile: string): Promise<FormConfig> {\n const formConfig: FormConfigContent = await readJson(formJsonFile);\n return getFormConfigFromSource(formConfig);\n}\n\nexport function getFormConfigFromSource(formConfig: FormConfigContent): FormConfig {\n if (\n formConfig.dependencies?.generator != undefined &&\n !isValidSemVerVersionRange(formConfig.dependencies.generator)\n ) {\n throw new Error(`${formConfig.dependencies.generator} is not valid version format`);\n }\n\n if (formConfig.dependencies?.engine != undefined && !isValidSemVerVersionRange(formConfig.dependencies.engine)) {\n throw new Error(`${formConfig.dependencies.engine} is not valid version format`);\n }\n\n const settings = {\n useServerSideFLangNormalization: false,\n ...pickBy(formConfig.settings ?? {}, x => x !== undefined),\n };\n\n return {\n themes: formConfig.themes,\n build: formConfig.build || \"manual\",\n mode: formConfig.mode ?? \"normal-build\",\n settings: settings,\n dependencies:\n formConfig.dependencies != undefined\n ? {\n generator: formConfig.dependencies.generator,\n engine: formConfig.dependencies.engine,\n }\n : undefined,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -75,16 +75,6 @@ const buildFormsOptionsDefinition = exports.buildFormsOptionsDefinition = (0, _C
75
75
  usePrereleaseVersion: input
76
76
  }),
77
77
  description: "Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid."
78
- }, {
79
- name: "no-reformat",
80
- doesNotRequireValue: true,
81
- defaultValue: {
82
- skipGeneratedCodeReformatting: true
83
- },
84
- parse: input => ({
85
- skipGeneratedCodeReformatting: input
86
- }),
87
- description: "Отлючает форматирование генерируемого кода. Работает, только если версия генератора поддерживает эту опцию. Используется для ускорения сборки форм. (default: true)"
88
78
  }, {
89
79
  alias: "g",
90
80
  name: "gfvs",
@@ -1 +1 @@
1
- {"version":3,"file":"BuildFormsOptions.js","names":["_CommandBasedOptionsParser","require","_CommonOptionDefintions","_BuildCacheMode","buildFormsOptionsDefinition","exports","commandDefinition","optionsDefinition","alias","name","defaultValue","watch","parse","input","doesNotRequireValue","description","clean","mode","upgradeFormJson","buildCacheMode","BuildCacheMode","ReadOnly","parseBuildCacheMode","useLastStableVersion","usePrereleaseVersion","undefined","skipGeneratedCodeReformatting","formGlobs","defaultOption","multiple","useVersionFromCache","buildCandyWidget","devModeOption","logVerbosityOption","detailedDescription","trim","examples","extendedDetails"],"sources":["../../../../../src/CLICommands/BuildForms/BuildFormsOptions.ts"],"sourcesContent":["import { commandDefinition, optionsDefinition } from \"../../Commons/Options/CommandBasedOptionsParser\";\nimport { CommonOptions } from \"../CommonOptions/CommonOptions\";\nimport { devModeOption, logVerbosityOption } from \"../CommonOptions/CommonOptionDefintions\";\n\nimport { BuildCacheMode, parseBuildCacheMode } from \"./BuildCacheMode\";\n\nexport interface BuildFormsOptions extends CommonOptions {\n watch: boolean;\n clean: boolean;\n formGlobs: string[];\n upgradeFormJson: boolean;\n useLastStableVersion: boolean;\n usePrereleaseVersion?: string;\n skipGeneratedCodeReformatting: boolean;\n useVersionFromCache: boolean;\n mode: \"development\" | \"production\";\n buildCacheMode: BuildCacheMode;\n buildCandyWidget: boolean;\n}\n\nexport const buildFormsOptionsDefinition = commandDefinition<\"build\", BuildFormsOptions>(\n \"build\",\n \"build\",\n optionsDefinition(\n {\n alias: \"w\",\n name: \"watch\",\n defaultValue: { watch: false },\n parse: input => ({ watch: input }),\n doesNotRequireValue: true,\n description:\n \"Watch-режим. Выполняет сборку форм, а затем пересобирает при изменениях. В том числе движка, генератора и статических ресурсов.\",\n },\n {\n name: \"clean\",\n defaultValue: { clean: false },\n parse: input => ({ clean: input }),\n doesNotRequireValue: true,\n description:\n \"Полностью очищает целевой каталог ресурсов. Используется при полной сборке форм для продакшена\",\n },\n {\n name: \"mode\",\n defaultValue: { mode: \"development\" },\n parse: (input: string) => ({ mode: input }),\n description:\n \"Разделение сборок на продовую (mode=production) и не продовую (mode=development). По умолчанию development\",\n },\n {\n name: \"upgrade-form-json\",\n defaultValue: { upgradeFormJson: false },\n parse: input => ({ upgradeFormJson: input }),\n doesNotRequireValue: true,\n description: \"Форсирует изменение формата файла form.json на новый\",\n },\n {\n name: \"build-cache\",\n defaultValue: { buildCacheMode: BuildCacheMode.ReadOnly },\n parse: (input: string) => ({ buildCacheMode: parseBuildCacheMode(input) }),\n description:\n \"Задаёт режим использования кэша сборки. Возможные значения:\\n\" +\n \" disabled - не использовать кэш\\n\" +\n \" readonly - использовать кэш для сборки, но не обновляет его (значение по умолчанию)\\n\" +\n \" update - использовать кэш для сборки и презаписывать, если не совпадает\\n\" +\n \" force-update - всегда выполнять сборку и обновить значения в кэше\\n\" +\n \"Отключается при использовании watch-режима\",\n },\n {\n name: \"use-last-stable-version\",\n defaultValue: { useLastStableVersion: false },\n parse: input => ({ useLastStableVersion: input }),\n doesNotRequireValue: true,\n description:\n \"Устанавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master\",\n },\n {\n name: \"use-prerelease-version\",\n defaultValue: { usePrereleaseVersion: undefined as undefined | string },\n parse: (input: string) => ({ usePrereleaseVersion: input }),\n description:\n \"Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid.\",\n },\n {\n name: \"no-reformat\",\n doesNotRequireValue: true,\n defaultValue: { skipGeneratedCodeReformatting: true },\n parse: (input: boolean) => ({ skipGeneratedCodeReformatting: input }),\n description:\n \"Отлючает форматирование генерируемого кода. Работает, только если версия генератора поддерживает эту опцию. Используется для ускорения сборки форм. (default: true)\",\n },\n {\n alias: \"g\",\n name: \"gfvs\",\n defaultValue: { formGlobs: [] },\n parse: (input: string[]) => ({ formGlobs: input }),\n defaultOption: true,\n multiple: true,\n description: \"Одна или несколько GFV или GFV-масок для пересборки. Может содержать значки `?` и `*`.\",\n },\n {\n name: \"use-version-from-cache\",\n defaultValue: { useVersionFromCache: false },\n parse: (input: boolean) => ({ useVersionFromCache: input }),\n description: \"Использовать версию движка и генератора из файловой системы\",\n doesNotRequireValue: true,\n },\n {\n name: \"build-candy-widget\",\n doesNotRequireValue: true,\n defaultValue: { buildCandyWidget: false },\n parse: (input: boolean) => ({ buildCandyWidget: input }),\n description: \"Собирать candy-виджет\",\n },\n devModeOption,\n logVerbosityOption\n ),\n {\n description:\n \"Выполняет сборку одной или нескольких форм.\\n\" +\n \"Подробнее: https://git.skbkontur.ru/forms/candy/-/blob/master/Tools/README.md#candy-build\",\n\n detailedDescription: `\nОсновной сценарий: выполняет сборку форм в каталог с ресурсами. Действия, которые выполняет команда:\n\n* Получение движка форм версии указанной в \\`form.json\\`,\n* получение генератора форм версии указанной в \\`form.json\\`,\n* генерация и компиляция формы в каталог ресурсов,\n* создание файлов \\`{gfv}.metas.json\\` в каталоге ресурсов\n* копирование конвертеров в каталог ресурсов,\n* копирование схемы в каталог ресурсов.\n`.trim(),\n\n examples: `\n\\`\\`\\`\n# Сборка формы 104816\ncandy build 104816\n\\`\\`\\`\n\n\\`\\`\\`\n# Сборка все формы группы 1\ncandy build 1?????\n\\`\\`\\`\n\n\\`\\`\\`\n# Собрать форму 104816 и следить за изменениями\ncandy build 104816 -w\n\\`\\`\\`\n\n\\`\\`\\`\n# Использовать последнюю пререлизную версию движка с preid=bso\ncandy build 104816 --use-prerelease-version bso\n\\`\\`\\`\n`.trim(),\n\n extendedDetails: `\n### Версионирование\n\nПри сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соответствии с [semver](https://semver.org/lang/ru/).\nВ этом случае будет выбрана последняя подходящая версия.\n\nФайл form.json должен выглядеть следующим образом:\n\\`\\`\\`\n{\n // Опционально\n \"themes\": [\"имя-темы\", ...],\n \"dependencies\": {\n \"engine\": \"[версия-движка]\",\n \"generator\": \"[версия-генератора]\"\n }\n}\n\\`\\`\\`\n\n\\`версия-движка\\`, \\`версия-генератора\\` - Соответственно, диапазоны версий. На данный момент всегда совпадают.\n\nДопустимые варианты версий:\n* Версия в формате [semver](https://semver.org/lang/ru/).\n* Версия с префиксом pre. Например, \\`pre:my-stange-branch-name\\`, где \\`my-stange-branch-name\\` - название предрелизной версии, выпускаемой разработчиками Candy, для предварительного выпуска форм.\nВерсия с префиксом pre используются для движков, которые не являются стабильными и используются для предварительных сборок форм.\n`.trim(),\n }\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BuildFormsOptions.js","names":["_CommandBasedOptionsParser","require","_CommonOptionDefintions","_BuildCacheMode","buildFormsOptionsDefinition","exports","commandDefinition","optionsDefinition","alias","name","defaultValue","watch","parse","input","doesNotRequireValue","description","clean","mode","upgradeFormJson","buildCacheMode","BuildCacheMode","ReadOnly","parseBuildCacheMode","useLastStableVersion","usePrereleaseVersion","undefined","formGlobs","defaultOption","multiple","useVersionFromCache","buildCandyWidget","devModeOption","logVerbosityOption","detailedDescription","trim","examples","extendedDetails"],"sources":["../../../../../src/CLICommands/BuildForms/BuildFormsOptions.ts"],"sourcesContent":["import { commandDefinition, optionsDefinition } from \"../../Commons/Options/CommandBasedOptionsParser\";\nimport { CommonOptions } from \"../CommonOptions/CommonOptions\";\nimport { devModeOption, logVerbosityOption } from \"../CommonOptions/CommonOptionDefintions\";\n\nimport { BuildCacheMode, parseBuildCacheMode } from \"./BuildCacheMode\";\n\nexport interface BuildFormsOptions extends CommonOptions {\n watch: boolean;\n clean: boolean;\n formGlobs: string[];\n upgradeFormJson: boolean;\n useLastStableVersion: boolean;\n usePrereleaseVersion?: string;\n useVersionFromCache: boolean;\n mode: \"development\" | \"production\";\n buildCacheMode: BuildCacheMode;\n buildCandyWidget: boolean;\n}\n\nexport const buildFormsOptionsDefinition = commandDefinition<\"build\", BuildFormsOptions>(\n \"build\",\n \"build\",\n optionsDefinition(\n {\n alias: \"w\",\n name: \"watch\",\n defaultValue: { watch: false },\n parse: input => ({ watch: input }),\n doesNotRequireValue: true,\n description:\n \"Watch-режим. Выполняет сборку форм, а затем пересобирает при изменениях. В том числе движка, генератора и статических ресурсов.\",\n },\n {\n name: \"clean\",\n defaultValue: { clean: false },\n parse: input => ({ clean: input }),\n doesNotRequireValue: true,\n description:\n \"Полностью очищает целевой каталог ресурсов. Используется при полной сборке форм для продакшена\",\n },\n {\n name: \"mode\",\n defaultValue: { mode: \"development\" },\n parse: (input: string) => ({ mode: input }),\n description:\n \"Разделение сборок на продовую (mode=production) и не продовую (mode=development). По умолчанию development\",\n },\n {\n name: \"upgrade-form-json\",\n defaultValue: { upgradeFormJson: false },\n parse: input => ({ upgradeFormJson: input }),\n doesNotRequireValue: true,\n description: \"Форсирует изменение формата файла form.json на новый\",\n },\n {\n name: \"build-cache\",\n defaultValue: { buildCacheMode: BuildCacheMode.ReadOnly },\n parse: (input: string) => ({ buildCacheMode: parseBuildCacheMode(input) }),\n description:\n \"Задаёт режим использования кэша сборки. Возможные значения:\\n\" +\n \" disabled - не использовать кэш\\n\" +\n \" readonly - использовать кэш для сборки, но не обновляет его (значение по умолчанию)\\n\" +\n \" update - использовать кэш для сборки и презаписывать, если не совпадает\\n\" +\n \" force-update - всегда выполнять сборку и обновить значения в кэше\\n\" +\n \"Отключается при использовании watch-режима\",\n },\n {\n name: \"use-last-stable-version\",\n defaultValue: { useLastStableVersion: false },\n parse: input => ({ useLastStableVersion: input }),\n doesNotRequireValue: true,\n description:\n \"Устанавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master\",\n },\n {\n name: \"use-prerelease-version\",\n defaultValue: { usePrereleaseVersion: undefined as undefined | string },\n parse: (input: string) => ({ usePrereleaseVersion: input }),\n description:\n \"Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid.\",\n },\n {\n alias: \"g\",\n name: \"gfvs\",\n defaultValue: { formGlobs: [] },\n parse: (input: string[]) => ({ formGlobs: input }),\n defaultOption: true,\n multiple: true,\n description: \"Одна или несколько GFV или GFV-масок для пересборки. Может содержать значки `?` и `*`.\",\n },\n {\n name: \"use-version-from-cache\",\n defaultValue: { useVersionFromCache: false },\n parse: (input: boolean) => ({ useVersionFromCache: input }),\n description: \"Использовать версию движка и генератора из файловой системы\",\n doesNotRequireValue: true,\n },\n {\n name: \"build-candy-widget\",\n doesNotRequireValue: true,\n defaultValue: { buildCandyWidget: false },\n parse: (input: boolean) => ({ buildCandyWidget: input }),\n description: \"Собирать candy-виджет\",\n },\n devModeOption,\n logVerbosityOption\n ),\n {\n description:\n \"Выполняет сборку одной или нескольких форм.\\n\" +\n \"Подробнее: https://git.skbkontur.ru/forms/candy/-/blob/master/Tools/README.md#candy-build\",\n\n detailedDescription: `\nОсновной сценарий: выполняет сборку форм в каталог с ресурсами. Действия, которые выполняет команда:\n\n* Получение движка форм версии указанной в \\`form.json\\`,\n* получение генератора форм версии указанной в \\`form.json\\`,\n* генерация и компиляция формы в каталог ресурсов,\n* создание файлов \\`{gfv}.metas.json\\` в каталоге ресурсов\n* копирование конвертеров в каталог ресурсов,\n* копирование схемы в каталог ресурсов.\n`.trim(),\n\n examples: `\n\\`\\`\\`\n# Сборка формы 104816\ncandy build 104816\n\\`\\`\\`\n\n\\`\\`\\`\n# Сборка все формы группы 1\ncandy build 1?????\n\\`\\`\\`\n\n\\`\\`\\`\n# Собрать форму 104816 и следить за изменениями\ncandy build 104816 -w\n\\`\\`\\`\n\n\\`\\`\\`\n# Использовать последнюю пререлизную версию движка с preid=bso\ncandy build 104816 --use-prerelease-version bso\n\\`\\`\\`\n`.trim(),\n\n extendedDetails: `\n### Версионирование\n\nПри сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соответствии с [semver](https://semver.org/lang/ru/).\nВ этом случае будет выбрана последняя подходящая версия.\n\nФайл form.json должен выглядеть следующим образом:\n\\`\\`\\`\n{\n // Опционально\n \"themes\": [\"имя-темы\", ...],\n \"dependencies\": {\n \"engine\": \"[версия-движка]\",\n \"generator\": \"[версия-генератора]\"\n }\n}\n\\`\\`\\`\n\n\\`версия-движка\\`, \\`версия-генератора\\` - Соответственно, диапазоны версий. На данный момент всегда совпадают.\n\nДопустимые варианты версий:\n* Версия в формате [semver](https://semver.org/lang/ru/).\n* Версия с префиксом pre. Например, \\`pre:my-stange-branch-name\\`, где \\`my-stange-branch-name\\` - название предрелизной версии, выпускаемой разработчиками Candy, для предварительного выпуска форм.\nВерсия с префиксом pre используются для движков, которые не являются стабильными и используются для предварительных сборок форм.\n`.trim(),\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -76,7 +76,7 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
76
76
  if (await (0, _fsExtra.pathExists)(_path.default.join(formDirPath, "presentations.json"))) {
77
77
  throw new Error(`presentations.json больше не используется, удали его из ${formDirPath} или используй команду candy rename ${gfv} в каталоге candy.farm`);
78
78
  }
79
- return _Observe.Observe.file(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${gfv}`), options.upgradeFormJson, options.useLastStableVersion, options.usePrereleaseVersion)).transform(async fi => {
79
+ return _Observe.Observe.file(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, context.logger.withPrefix(`FORM:${gfv}`), options.upgradeFormJson, options.useLastStableVersion, options.usePrereleaseVersion)).transform(async fi => {
80
80
  if (fi.mode === _ResolveFormInfo.FormBuildMode.NormalBuild) {
81
81
  if (fi.generatorVersion == undefined) {
82
82
  throw new Error("generatorVersion is not defined");
@@ -116,16 +116,13 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
116
116
  }
117
117
  });
118
118
  }, async fi => fi, async fi => fi.engineSource != undefined ? (0, _EngineSource.getEngineSourceKey)(fi.engineSource) : "NullEngine").attach(async fi => buildOptions.watch ? _Observe.Observe.files(fi.formSourcesPath, "../../controls/**/*", "../../xsltTemplates/**/*", "../../jsHelpers/**/*", `./${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, "schemas/**/*", "sugar/**/*", "controls/**/*", "autocalc/**/*", "helpers/**/*", "normalizers/**/*", "validations/**/*", "localization/**/*") : _Observe.Observe.value(fi.formSourcesPath)).transform(async fi => {
119
- let dependenciesHash;
120
119
  if (fi.mode !== _ResolveFormInfo.FormBuildMode.NormalBuild) {
121
120
  return {
122
121
  ...fi,
123
122
  dependenciesHash: undefined
124
123
  };
125
124
  }
126
- if (await fi.generator.supportsDependenciesExtraction()) {
127
- dependenciesHash = await fi.generator.getAllDependenciesHash(formDirPath, farmDirectory);
128
- }
125
+ const dependenciesHash = await fi.generator.getAllDependenciesHash(formDirPath, farmDirectory);
129
126
  return {
130
127
  ...fi,
131
128
  dependenciesHash: dependenciesHash
@@ -149,7 +146,6 @@ async function runBuildForms(context, options, farmDirectory, resourcesDirectory
149
146
  return undefined;
150
147
  }
151
148
  return (0, _GenerateForm.generateForm)(fi.formSourcesPath, farmDirectory, fi.generator, undefined, {
152
- skipCodeReformatting: options.skipGeneratedCodeReformatting,
153
149
  resourcesHash: (_fi$dependenciesHash = fi.dependenciesHash) !== null && _fi$dependenciesHash !== void 0 ? _fi$dependenciesHash : "UndefinedResourcesHash"
154
150
  });
155
151
  }).attach(async () => buildOptions.watch ? _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*") : _Observe.Observe.value(_path.default.join(formDirPath, "form"))).do(async fi => {
@@ -1 +1 @@
1
- {"version":3,"file":"RunBuildForms.js","names":["_path","_interopRequireDefault","require","_chalk","_fsExtra","_nodeNotifier","_AcquireFormEngine","_EngineSource","_CompileForm","_GenerateForm","_NullFormGenerator","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_SingleValueProducer","_TimingUtils","_CacheAssetsPlugin","_TypingUtils","_WriteAttachmentPathFiles","_EmptyProducer","_GetRngSchemaFileExtension","_FormPathUtils","_WellKnownDirectories","_WriteAttachmentPathByGfvFiles","_WriteKClangFiles","_WriteExtendedSchemaFiles","_EngineStructureUtils","_BuildCandyWidgetTask","getGeneratorVersion","generatorSource","type","version","Error","runBuildForms","context","options","farmDirectory","resourcesDirectory","engineDirectory","candyModulesDirectory","buildOptions","pickListsChain","Observe","files","path","join","do","x","FSTask","copyRecursively","logger","withPrefix","formInfos","FormGlobs","resolveGfvGlobs","formGlobs","staticResourcesForProductionChain","__dirname","getLogger","resourcesExternalConvertersChain","empty","copiedEngines","Set","repositoryRoot","buildCache","BuildCache","buildCacheMode","createChainForForm","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","pathExists","WellKnownDirectories","FormJsonFileName","warning","value","formSchemasDirPath","rngSchemaMask","getRngSchemaFileExtension","rngSchemaExtension","file","transform","formJsonFile","resolveFormInfo","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","fi","mode","FormBuildMode","NormalBuild","generatorVersion","undefined","engineVersion","resolveGeneratorVersion","engineSource","resolveEngineVersion","attach","SingleValueProducer","NullFormGenerator","generatorFactory","useVersionFromCache","y","generator","getGeneratorSourceKey","engineFactory","has","getEngineSourceKey","add","watch","formSourcesPath","dependenciesHash","supportsDependenciesExtraction","getAllDependenciesHash","buildCacheExist","exists","_fi$dependenciesHash","log","generateForm","skipCodeReformatting","skipGeneratedCodeReformatting","resourcesHash","_fi$dependenciesHash2","_fi$dependenciesHash3","extract","buildCacheOptions","depsHash","compileForm","formName","reject","writeFormMeta","themes","useServerSideNormalization","writeFLangNormalizationFiles","writeKClangFiles","writeExtendedSchemaFiles","writeAttachmentPathFiles","writeAttachmentPathByGfvFiles","modifier","content","replace","modifyFilesContent","notifier","notify","title","message","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","candyWidgetsConfigTask","createClientViteConfigTask","buildCandyWidgetChain","buildCandyWidget","EmptyProducer","chainWith","p","BuildCandyWidgetTask","clean","cleanTargetDirectory","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve5","waitForExit","startDate","Date","now","currentValue","console","chalk","greenBright","totalTime","printTime","emptyDir"],"sources":["../../../../../src/CLICommands/BuildForms/RunBuildForms.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\nimport { emptyDir, pathExists } from \"fs-extra\";\nimport notifier from \"node-notifier\";\n\nimport { engineFactory } from \"../../BuildTasks/Engine/AcquireFormEngine\";\nimport { getEngineSourceKey } from \"../../BuildTasks/Engine/EngineSource\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { NullFormGenerator } from \"../../BuildTasks/Form/NullFormGenerator\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport {\n generatorFactory,\n GeneratorSource,\n getGeneratorSourceKey,\n} from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveEngineVersion, resolveGeneratorVersion } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { FormBuildMode, resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { SingleValueProducer } from \"../../Commons/TasksCore/SingleValueProducer\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { BuildCache } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFileExtension } from \"../../../../Common/GetRngSchemaFileExtension\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\nimport { writeAttachmentPathByGfvFiles } from \"../../BuildTasks/Form/WriteAttachmentPathByGfvFiles\";\nimport { writeKClangFiles } from \"../../BuildTasks/Form/WriteKClangFiles\";\nimport { writeExtendedSchemaFiles } from \"../../BuildTasks/Form/WriteExtendedSchemaFiles\";\nimport { createClientViteConfigTask } from \"../../BuildTasks/EngineStructureUtils\";\nimport { BuildCandyWidgetTask } from \"../../BuildTasks/CandyWidget/BuildCandyWidgetTask\";\n\nimport { BuildFormsOptions } from \"./BuildFormsOptions\";\n\nfunction getGeneratorVersion(generatorSource: GeneratorSource): string {\n if (generatorSource.type === \"PublishedGenerator\") {\n return generatorSource.version;\n } else {\n throw new Error(\"InvalidProgramState\");\n }\n}\n\nexport async function runBuildForms(\n context: ConsoleApplicationContext,\n options: BuildFormsOptions,\n farmDirectory: string,\n resourcesDirectory: string,\n engineDirectory: string,\n candyModulesDirectory: string\n): Promise<void> {\n const buildOptions = options;\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n const staticResourcesForProductionChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForProductionResourcesDir\"),\n \"*.js\",\n \"*.js.map\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const copiedEngines = new Set<string>();\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n const buildCache = new BuildCache(farmDirectory, options.buildCacheMode);\n\n const createChainForForm = async (formRelativePath: string) => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n\n if (!(await pathExists(path.join(formDirPath, WellKnownDirectories.FormJsonFileName)))) {\n context.logger.warning(\n `Form ${gfv} does not have form.json file. To include this form to build process restart build`\n );\n return Observe.value({});\n }\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFileExtension(formSchemasDirPath, gfv)}`;\n const rngSchemaExtension = getRngSchemaFileExtension(formSchemasDirPath, gfv);\n\n if (rngSchemaExtension == \".rng.xml\") {\n throw new Error(\n `Недопустимое название схемы ${gfv + rngSchemaExtension} используй команду candy rename ${gfv} в каталоге candy.farm`\n );\n }\n if (await pathExists(path.join(formDirPath, \"presentations.json\"))) {\n throw new Error(\n `presentations.json больше не используется, удали его из ${formDirPath} или используй команду candy rename ${gfv} в каталоге candy.farm`\n );\n }\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n formDirPath,\n engineDirectory,\n context.logger.withPrefix(`FORM:${gfv}`),\n options.upgradeFormJson,\n options.useLastStableVersion,\n options.usePrereleaseVersion\n )\n )\n .transform(async fi => {\n if (fi.mode === FormBuildMode.NormalBuild) {\n if (fi.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is not defined\");\n }\n if (fi.engineVersion == undefined) {\n throw new Error(\"engineVersion is not defined\");\n }\n return {\n ...fi,\n generatorSource: await resolveGeneratorVersion(\n fi.generatorVersion,\n context.logger.withPrefix(gfv)\n ),\n engineSource: await resolveEngineVersion(fi.engineVersion, context.logger.withPrefix(gfv)),\n };\n } else {\n return {\n ...fi,\n generatorSource: undefined,\n engineSource: undefined,\n };\n }\n })\n .attach(\n async fi => {\n if (fi.generatorSource == undefined) {\n return new SingleValueProducer(new NullFormGenerator());\n } else {\n return generatorFactory(fi.generatorSource, candyModulesDirectory, options.useVersionFromCache);\n }\n },\n async (fi, y) => ({ ...fi, generator: y }),\n async fi =>\n fi.generatorSource != undefined ? getGeneratorSourceKey(fi.generatorSource) : \"NullFormGenerator\"\n )\n .attach(\n async fi => {\n if (fi.engineSource === undefined) {\n return new SingleValueProducer(\"NullEngine\");\n }\n return engineFactory(fi.engineSource, candyModulesDirectory, options.useVersionFromCache).do(\n async x => {\n if (!copiedEngines.has(getEngineSourceKey(fi.engineSource))) {\n await FSTask.copyRecursively(\n getLogger().withPrefix(\"ENGINE\"),\n x,\n path.join(resourcesDirectory, \"public\")\n );\n copiedEngines.add(getEngineSourceKey(fi.engineSource));\n }\n }\n );\n },\n async fi => fi,\n async fi => (fi.engineSource != undefined ? getEngineSourceKey(fi.engineSource) : \"NullEngine\")\n )\n .attach(async fi =>\n buildOptions.watch\n ? Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"../../xsltTemplates/**/*\",\n \"../../jsHelpers/**/*\",\n `./${WellKnownDirectories.FormJsonFileName}`,\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"normalizers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n : Observe.value(fi.formSourcesPath)\n )\n .transform(async fi => {\n let dependenciesHash: undefined | string;\n if (fi.mode !== FormBuildMode.NormalBuild) {\n return {\n ...fi,\n dependenciesHash: undefined,\n };\n }\n if (await fi.generator.supportsDependenciesExtraction()) {\n dependenciesHash = await fi.generator.getAllDependenciesHash(formDirPath, farmDirectory);\n }\n return {\n ...fi,\n dependenciesHash: dependenciesHash,\n };\n })\n .transform(async fi => {\n let buildCacheExist: boolean = false;\n if (fi.dependenciesHash != undefined && fi.generatorSource != undefined) {\n buildCacheExist = await buildCache.exists(fi.generatorSource, gfv, fi.dependenciesHash);\n }\n return {\n ...fi,\n buildCacheExist: buildCacheExist,\n };\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return undefined;\n }\n if (fi.buildCacheExist) {\n context.logger.withPrefix(`GENERATE:${gfv}`).log(\"Skipped due build cache exits\");\n return undefined;\n }\n\n return generateForm(fi.formSourcesPath, farmDirectory, fi.generator, undefined, {\n skipCodeReformatting: options.skipGeneratedCodeReformatting,\n resourcesHash: fi.dependenciesHash ?? \"UndefinedResourcesHash\",\n });\n })\n .attach(async () =>\n buildOptions.watch\n ? Observe.files(path.join(formDirPath, \"form\"), \"**/*\")\n : Observe.value(path.join(formDirPath, \"form\"))\n )\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n if (fi.dependenciesHash != undefined && fi.buildCacheExist) {\n context.logger.withPrefix(`COMPILE:${gfv}`).log(\"Skipped due build cache exists\");\n await buildCache.extract(fi.generatorSource, gfv, fi.dependenciesHash, resourcesDirectory);\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n\n await compileForm(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n false,\n undefined,\n options.mode === \"production\",\n buildCacheOptions\n );\n\n await writeFormMeta(\n resourcesDirectory,\n gfv,\n fi.engineSource,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n fi.themes,\n fi.useServerSideNormalization,\n buildCache,\n buildCacheOptions\n );\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n await writeFLangNormalizationFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeKClangFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeExtendedSchemaFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeAttachmentPathFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n await writeAttachmentPathByGfvFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi => {\n const modifier = (content: string): string =>\n content.replace(/<x:include href=\"[./]+/g, '<x:include href=\"');\n return Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.modifyFilesContent(\n getLogger().withPrefix(\"FIX-XSLT-INCLUDE\"),\n x,\n path.join(resourcesDirectory, \"converters\"),\n \"**/*.xslt\",\n modifier\n )\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"..\", \"..\", \"xsltTemplates\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"XSLT-TEMPLATES\"),\n x,\n path.join(resourcesDirectory, \"converters\", \"xsltTemplates\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"PATCH\"), x, path.join(resourcesDirectory, \"patch\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"UNMAP\"), x, path.join(resourcesDirectory, \"unmap\"))\n )\n )\n .do(async fi => {\n if (buildOptions.watch) {\n notifier.notify({\n title: `${fi.formName}: сборка завершена`,\n message: `Engine: ${\n fi.engineSource == undefined\n ? \"[NoEngine]\"\n : fi.engineSource.type === \"LocalEngineSources\"\n ? \"local\"\n : fi.engineSource.version\n }`,\n });\n }\n });\n };\n\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n createChainForForm\n );\n\n const candyWidgetsConfigTask = await createClientViteConfigTask(engineDirectory);\n const buildCandyWidgetChain = !options.buildCandyWidget\n ? new EmptyProducer()\n : candyWidgetsConfigTask.chainWith(p => new BuildCandyWidgetTask(p));\n\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n\n if (buildOptions.watch) {\n const stopObserve1 = await pickListsChain.observe();\n const stopObserve2 = await buildFormsChain.observe();\n const stopObserve3 = await staticResourcesForProductionChain.observe();\n const stopObserve5 = await resourcesExternalConvertersChain.observe();\n await context.waitForExit();\n if (stopObserve3 != undefined) {\n await stopObserve3();\n }\n if (stopObserve5 != undefined) {\n await stopObserve5();\n }\n await stopObserve2();\n await stopObserve1();\n } else {\n const startDate = Date.now();\n try {\n await pickListsChain.currentValue;\n await resourcesExternalConvertersChain.currentValue;\n await staticResourcesForProductionChain.currentValue;\n await buildFormsChain.currentValue;\n await buildCandyWidgetChain.currentValue;\n // eslint-disable-next-line no-console\n console.log(chalk.greenBright(\"Build success\"));\n } finally {\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`Total time: ${printTime(totalTime)}`);\n }\n }\n}\n\nasync function cleanTargetDirectory(resourcesDirectory: string, logger: ILogger): Promise<void> {\n logger.log(\"Cleaning resource directory. \" + resourcesDirectory);\n await emptyDir(resourcesDirectory);\n logger.log(\"Resource directory clean\");\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RunBuildForms.js","names":["_path","_interopRequireDefault","require","_chalk","_fsExtra","_nodeNotifier","_AcquireFormEngine","_EngineSource","_CompileForm","_GenerateForm","_NullFormGenerator","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_SingleValueProducer","_TimingUtils","_CacheAssetsPlugin","_TypingUtils","_WriteAttachmentPathFiles","_EmptyProducer","_GetRngSchemaFileExtension","_FormPathUtils","_WellKnownDirectories","_WriteAttachmentPathByGfvFiles","_WriteKClangFiles","_WriteExtendedSchemaFiles","_EngineStructureUtils","_BuildCandyWidgetTask","getGeneratorVersion","generatorSource","type","version","Error","runBuildForms","context","options","farmDirectory","resourcesDirectory","engineDirectory","candyModulesDirectory","buildOptions","pickListsChain","Observe","files","path","join","do","x","FSTask","copyRecursively","logger","withPrefix","formInfos","FormGlobs","resolveGfvGlobs","formGlobs","staticResourcesForProductionChain","__dirname","getLogger","resourcesExternalConvertersChain","empty","copiedEngines","Set","repositoryRoot","buildCache","BuildCache","buildCacheMode","createChainForForm","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","pathExists","WellKnownDirectories","FormJsonFileName","warning","value","formSchemasDirPath","rngSchemaMask","getRngSchemaFileExtension","rngSchemaExtension","file","transform","formJsonFile","resolveFormInfo","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","fi","mode","FormBuildMode","NormalBuild","generatorVersion","undefined","engineVersion","resolveGeneratorVersion","engineSource","resolveEngineVersion","attach","SingleValueProducer","NullFormGenerator","generatorFactory","useVersionFromCache","y","generator","getGeneratorSourceKey","engineFactory","has","getEngineSourceKey","add","watch","formSourcesPath","dependenciesHash","getAllDependenciesHash","buildCacheExist","exists","_fi$dependenciesHash","log","generateForm","resourcesHash","_fi$dependenciesHash2","_fi$dependenciesHash3","extract","buildCacheOptions","depsHash","compileForm","formName","reject","writeFormMeta","themes","useServerSideNormalization","writeFLangNormalizationFiles","writeKClangFiles","writeExtendedSchemaFiles","writeAttachmentPathFiles","writeAttachmentPathByGfvFiles","modifier","content","replace","modifyFilesContent","notifier","notify","title","message","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","candyWidgetsConfigTask","createClientViteConfigTask","buildCandyWidgetChain","buildCandyWidget","EmptyProducer","chainWith","p","BuildCandyWidgetTask","clean","cleanTargetDirectory","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve5","waitForExit","startDate","Date","now","currentValue","console","chalk","greenBright","totalTime","printTime","emptyDir"],"sources":["../../../../../src/CLICommands/BuildForms/RunBuildForms.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\nimport { emptyDir, pathExists } from \"fs-extra\";\nimport notifier from \"node-notifier\";\n\nimport { engineFactory } from \"../../BuildTasks/Engine/AcquireFormEngine\";\nimport { getEngineSourceKey } from \"../../BuildTasks/Engine/EngineSource\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { NullFormGenerator } from \"../../BuildTasks/Form/NullFormGenerator\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport {\n generatorFactory,\n GeneratorSource,\n getGeneratorSourceKey,\n} from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveEngineVersion, resolveGeneratorVersion } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { FormBuildMode, resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { SingleValueProducer } from \"../../Commons/TasksCore/SingleValueProducer\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { BuildCache } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFileExtension } from \"../../../../Common/GetRngSchemaFileExtension\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\nimport { writeAttachmentPathByGfvFiles } from \"../../BuildTasks/Form/WriteAttachmentPathByGfvFiles\";\nimport { writeKClangFiles } from \"../../BuildTasks/Form/WriteKClangFiles\";\nimport { writeExtendedSchemaFiles } from \"../../BuildTasks/Form/WriteExtendedSchemaFiles\";\nimport { createClientViteConfigTask } from \"../../BuildTasks/EngineStructureUtils\";\nimport { BuildCandyWidgetTask } from \"../../BuildTasks/CandyWidget/BuildCandyWidgetTask\";\n\nimport { BuildFormsOptions } from \"./BuildFormsOptions\";\n\nfunction getGeneratorVersion(generatorSource: GeneratorSource): string {\n if (generatorSource.type === \"PublishedGenerator\") {\n return generatorSource.version;\n } else {\n throw new Error(\"InvalidProgramState\");\n }\n}\n\nexport async function runBuildForms(\n context: ConsoleApplicationContext,\n options: BuildFormsOptions,\n farmDirectory: string,\n resourcesDirectory: string,\n engineDirectory: string,\n candyModulesDirectory: string\n): Promise<void> {\n const buildOptions = options;\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n const staticResourcesForProductionChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForProductionResourcesDir\"),\n \"*.js\",\n \"*.js.map\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const copiedEngines = new Set<string>();\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n const buildCache = new BuildCache(farmDirectory, options.buildCacheMode);\n\n const createChainForForm = async (formRelativePath: string) => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n\n if (!(await pathExists(path.join(formDirPath, WellKnownDirectories.FormJsonFileName)))) {\n context.logger.warning(\n `Form ${gfv} does not have form.json file. To include this form to build process restart build`\n );\n return Observe.value({});\n }\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFileExtension(formSchemasDirPath, gfv)}`;\n const rngSchemaExtension = getRngSchemaFileExtension(formSchemasDirPath, gfv);\n\n if (rngSchemaExtension == \".rng.xml\") {\n throw new Error(\n `Недопустимое название схемы ${gfv + rngSchemaExtension} используй команду candy rename ${gfv} в каталоге candy.farm`\n );\n }\n if (await pathExists(path.join(formDirPath, \"presentations.json\"))) {\n throw new Error(\n `presentations.json больше не используется, удали его из ${formDirPath} или используй команду candy rename ${gfv} в каталоге candy.farm`\n );\n }\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n formDirPath,\n context.logger.withPrefix(`FORM:${gfv}`),\n options.upgradeFormJson,\n options.useLastStableVersion,\n options.usePrereleaseVersion\n )\n )\n .transform(async fi => {\n if (fi.mode === FormBuildMode.NormalBuild) {\n if (fi.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is not defined\");\n }\n if (fi.engineVersion == undefined) {\n throw new Error(\"engineVersion is not defined\");\n }\n return {\n ...fi,\n generatorSource: await resolveGeneratorVersion(\n fi.generatorVersion,\n context.logger.withPrefix(gfv)\n ),\n engineSource: await resolveEngineVersion(fi.engineVersion, context.logger.withPrefix(gfv)),\n };\n } else {\n return {\n ...fi,\n generatorSource: undefined,\n engineSource: undefined,\n };\n }\n })\n .attach(\n async fi => {\n if (fi.generatorSource == undefined) {\n return new SingleValueProducer(new NullFormGenerator());\n } else {\n return generatorFactory(fi.generatorSource, candyModulesDirectory, options.useVersionFromCache);\n }\n },\n async (fi, y) => ({ ...fi, generator: y }),\n async fi =>\n fi.generatorSource != undefined ? getGeneratorSourceKey(fi.generatorSource) : \"NullFormGenerator\"\n )\n .attach(\n async fi => {\n if (fi.engineSource === undefined) {\n return new SingleValueProducer(\"NullEngine\");\n }\n return engineFactory(fi.engineSource, candyModulesDirectory, options.useVersionFromCache).do(\n async x => {\n if (!copiedEngines.has(getEngineSourceKey(fi.engineSource))) {\n await FSTask.copyRecursively(\n getLogger().withPrefix(\"ENGINE\"),\n x,\n path.join(resourcesDirectory, \"public\")\n );\n copiedEngines.add(getEngineSourceKey(fi.engineSource));\n }\n }\n );\n },\n async fi => fi,\n async fi => (fi.engineSource != undefined ? getEngineSourceKey(fi.engineSource) : \"NullEngine\")\n )\n .attach(async fi =>\n buildOptions.watch\n ? Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"../../xsltTemplates/**/*\",\n \"../../jsHelpers/**/*\",\n `./${WellKnownDirectories.FormJsonFileName}`,\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"normalizers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n : Observe.value(fi.formSourcesPath)\n )\n .transform(async fi => {\n if (fi.mode !== FormBuildMode.NormalBuild) {\n return {\n ...fi,\n dependenciesHash: undefined,\n };\n }\n const dependenciesHash = await fi.generator.getAllDependenciesHash(formDirPath, farmDirectory);\n return {\n ...fi,\n dependenciesHash: dependenciesHash,\n };\n })\n .transform(async fi => {\n let buildCacheExist: boolean = false;\n if (fi.dependenciesHash != undefined && fi.generatorSource != undefined) {\n buildCacheExist = await buildCache.exists(fi.generatorSource, gfv, fi.dependenciesHash);\n }\n return {\n ...fi,\n buildCacheExist: buildCacheExist,\n };\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return undefined;\n }\n if (fi.buildCacheExist) {\n context.logger.withPrefix(`GENERATE:${gfv}`).log(\"Skipped due build cache exits\");\n return undefined;\n }\n\n return generateForm(fi.formSourcesPath, farmDirectory, fi.generator, undefined, {\n resourcesHash: fi.dependenciesHash ?? \"UndefinedResourcesHash\",\n });\n })\n .attach(async () =>\n buildOptions.watch\n ? Observe.files(path.join(formDirPath, \"form\"), \"**/*\")\n : Observe.value(path.join(formDirPath, \"form\"))\n )\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n if (fi.dependenciesHash != undefined && fi.buildCacheExist) {\n context.logger.withPrefix(`COMPILE:${gfv}`).log(\"Skipped due build cache exists\");\n await buildCache.extract(fi.generatorSource, gfv, fi.dependenciesHash, resourcesDirectory);\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n\n await compileForm(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n false,\n undefined,\n options.mode === \"production\",\n buildCacheOptions\n );\n\n await writeFormMeta(\n resourcesDirectory,\n gfv,\n fi.engineSource,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n fi.themes,\n fi.useServerSideNormalization,\n buildCache,\n buildCacheOptions\n );\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n await writeFLangNormalizationFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeKClangFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeExtendedSchemaFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeAttachmentPathFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n await writeAttachmentPathByGfvFiles(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi => {\n const modifier = (content: string): string =>\n content.replace(/<x:include href=\"[./]+/g, '<x:include href=\"');\n return Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.modifyFilesContent(\n getLogger().withPrefix(\"FIX-XSLT-INCLUDE\"),\n x,\n path.join(resourcesDirectory, \"converters\"),\n \"**/*.xslt\",\n modifier\n )\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"..\", \"..\", \"xsltTemplates\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"XSLT-TEMPLATES\"),\n x,\n path.join(resourcesDirectory, \"converters\", \"xsltTemplates\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"PATCH\"), x, path.join(resourcesDirectory, \"patch\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"UNMAP\"), x, path.join(resourcesDirectory, \"unmap\"))\n )\n )\n .do(async fi => {\n if (buildOptions.watch) {\n notifier.notify({\n title: `${fi.formName}: сборка завершена`,\n message: `Engine: ${\n fi.engineSource == undefined\n ? \"[NoEngine]\"\n : fi.engineSource.type === \"LocalEngineSources\"\n ? \"local\"\n : fi.engineSource.version\n }`,\n });\n }\n });\n };\n\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n createChainForForm\n );\n\n const candyWidgetsConfigTask = await createClientViteConfigTask(engineDirectory);\n const buildCandyWidgetChain = !options.buildCandyWidget\n ? new EmptyProducer()\n : candyWidgetsConfigTask.chainWith(p => new BuildCandyWidgetTask(p));\n\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n\n if (buildOptions.watch) {\n const stopObserve1 = await pickListsChain.observe();\n const stopObserve2 = await buildFormsChain.observe();\n const stopObserve3 = await staticResourcesForProductionChain.observe();\n const stopObserve5 = await resourcesExternalConvertersChain.observe();\n await context.waitForExit();\n if (stopObserve3 != undefined) {\n await stopObserve3();\n }\n if (stopObserve5 != undefined) {\n await stopObserve5();\n }\n await stopObserve2();\n await stopObserve1();\n } else {\n const startDate = Date.now();\n try {\n await pickListsChain.currentValue;\n await resourcesExternalConvertersChain.currentValue;\n await staticResourcesForProductionChain.currentValue;\n await buildFormsChain.currentValue;\n await buildCandyWidgetChain.currentValue;\n // eslint-disable-next-line no-console\n console.log(chalk.greenBright(\"Build success\"));\n } finally {\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`Total time: ${printTime(totalTime)}`);\n }\n }\n}\n\nasync function cleanTargetDirectory(resourcesDirectory: string, logger: ILogger): Promise<void> {\n logger.log(\"Cleaning resource directory. \" + resourcesDirectory);\n await emptyDir(resourcesDirectory);\n logger.log(\"Resource directory clean\");\n}\n"],"mappings":"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","ignoreList":[]}
@@ -47,17 +47,6 @@ const buildServerCommandDefinition = exports.buildServerCommandDefinition = (0,
47
47
  }),
48
48
  doesNotRequireValue: true,
49
49
  description: "Отключает перехват client.js. В этом случае не будет работать отображение логов сборки и ожидания сборки формы."
50
- }, {
51
- name: "reformat",
52
- alias: "r",
53
- doesNotRequireValue: true,
54
- defaultValue: {
55
- skipGeneratedCodeReformatting: true
56
- },
57
- parse: input => ({
58
- skipGeneratedCodeReformatting: !input
59
- }),
60
- description: "Включает форматирование генерируемого кода. Работает, только если версия генератора поддерживает эту опцию. Используется для отладки и просмотра сгенерированных форм в отдадчике. (default: false)"
61
50
  }, _BuildDebugOnlyOption.debugOnlyOptionDefinition, _CommonOptionDefintions.devModeOption, _CommonOptionDefintions.logVerbosityOption), {
62
51
  description: "Magic"
63
52
  });
@@ -95,17 +84,6 @@ const devBuildServerCommandDefinition = exports.devBuildServerCommandDefinition
95
84
  }),
96
85
  doesNotRequireValue: true,
97
86
  description: "Отключает перехват client.js. В этом случае не будет работать отображение логов сборки и ожидания сборки формы."
98
- }, {
99
- name: "reformat",
100
- alias: "r",
101
- doesNotRequireValue: true,
102
- defaultValue: {
103
- skipGeneratedCodeReformatting: true
104
- },
105
- parse: input => ({
106
- skipGeneratedCodeReformatting: !input
107
- }),
108
- description: "Включает форматирование генерируемого кода. Работает, только если версия генератора поддерживает эту опцию. Используется для отладки и просмотра сгенерированных форм в отдадчике. (default: false)"
109
87
  }, _BuildDebugOnlyOption.debugOnlyOptionDefinition, _CommonOptionDefintions.devModeOption, _CommonOptionDefintions.logVerbosityOption), {
110
88
  description: "Magic"
111
89
  });