@kontur.candy/tools 2.249.0 → 2.250.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/distr/Common/CandyApiClient/CandyApiClient.js +50 -16
  2. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
  3. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
  4. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftParams.js +6 -0
  5. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftParams.js.map +1 -0
  6. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -1
  7. package/distr/Common/DriveIntegration/DriveApiClientExtension.js +53 -0
  8. package/distr/Common/DriveIntegration/DriveApiClientExtension.js.map +1 -0
  9. package/distr/Common/DriveIntegration/DriveHelpers.js +24 -0
  10. package/distr/Common/DriveIntegration/DriveHelpers.js.map +1 -0
  11. package/distr/Common/DriveIntegration/ensureCandyFrontSrvDriveUri.js +23 -0
  12. package/distr/Common/DriveIntegration/ensureCandyFrontSrvDriveUri.js.map +1 -0
  13. package/distr/Common/FSPrinterClient/FSPrinterClient.js +18 -4
  14. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -1
  15. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -1
  16. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -1
  17. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +3 -1
  18. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -1
  19. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +36 -53
  20. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -1
  21. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +6 -7
  22. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -1
  23. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +6 -7
  24. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -1
  25. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +13 -26
  26. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -1
  27. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  28. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  29. package/package.json +1 -1
@@ -17,29 +17,15 @@ var _PublishedVersionUtils = require("../../../../BuildTasks/PublishedVersionUti
17
17
  var _ResolveFormInfo = require("../../../../BuildTasks/ResolveFormInfo");
18
18
  var _AsyncUtils = require("../../../../../../Common/AsyncUtils");
19
19
  var _Observe = require("../../../../Commons/TasksCore/Observe");
20
- var _FsUtils = require("../../../../Commons/FsUtils");
21
- var _FormPathUtils = require("../../../../../../Common/FormPathUtils");
22
- var _TypingUtils = require("../../../../../../Common/TypingUtils");
20
+ var _ExtractGFVPath = require("../../../../../../Common/ExtractGFVPath/ExtractGFVPath");
23
21
  var _WellKnownDirectories = require("../../../../../../Common/WellKnownDirectories");
24
22
  var _NotFoundWebError = require("../../../../Commons/HttpServer/AttributeRouting/NotFoundWebError");
23
+ var _TypingUtils = require("../../../../../../Common/TypingUtils");
25
24
  var _ReportGeneratorErrorToPageBody = require("./ReportGeneratorErrorToPageBody");
26
25
  var _RunFormCompilationViaWebpackDevServer = require("./RunFormCompilationViaWebpackDevServer");
27
26
  var _WebpackHybridFileSystem = require("./WebpackInMemoryUtils/WebpackHybridFileSystem");
28
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
29
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
- async function buildGfvToPathMap(repositoryRoots) {
31
- const result = new Map();
32
- for (const repositoryRoot of repositoryRoots) {
33
- const formPaths = await (0, _FsUtils.globAsync)(`forms/**/*/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`, {
34
- cwd: repositoryRoot
35
- });
36
- for (const formPath of formPaths) {
37
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
38
- result.set(gfv, path.join(repositoryRoot, formPath));
39
- }
40
- }
41
- return result;
42
- }
43
29
  class BuildFormDevServer {
44
30
  constructor(port, allFarmConfig, gfv, candyModulesDirectory, farmConfigArray, useGeneratorFromLocalSources, engineDirectory, buildDebugOnly, skipCodeReformatting, nightly) {
45
31
  this.port = void 0;
@@ -59,7 +45,10 @@ class BuildFormDevServer {
59
45
  this.buildDebugOnly = void 0;
60
46
  this.skipCodeReformatting = void 0;
61
47
  this.webpackHybridFileSystem = void 0;
62
- this.gfvPaths = undefined;
48
+ this.httpsAgent = new _https.Agent({
49
+ rejectUnauthorized: false,
50
+ keepAlive: true
51
+ });
63
52
  this.port = port;
64
53
  this.allFarmConfig = allFarmConfig;
65
54
  this.gfv = gfv;
@@ -75,19 +64,24 @@ class BuildFormDevServer {
75
64
  this.formPath = "";
76
65
  }
77
66
  async findFormPath(gfv) {
78
- var _this$gfvPaths;
79
- this.gfvPaths = (_this$gfvPaths = this.gfvPaths) !== null && _this$gfvPaths !== void 0 ? _this$gfvPaths : await buildGfvToPathMap(this.allFarmConfig.map(x => path.join(x, "..")));
80
- if (this.gfvPaths.has(gfv)) {
81
- var _this$gfvPaths$get;
82
- const formPath = (_this$gfvPaths$get = this.gfvPaths.get(gfv)) !== null && _this$gfvPaths$get !== void 0 ? _this$gfvPaths$get : (0, _TypingUtils.reject)();
83
- return {
84
- formPath: formPath !== null && formPath !== void 0 ? formPath : (0, _TypingUtils.reject)(),
85
- farmDirectory: path.normalize(path.join(formPath, "..", "..", "..", "..", "..", "candy.farm"))
86
- };
67
+ for (const farmConfigPath of this.allFarmConfig) {
68
+ const formPath = (0, _ExtractGFVPath.extractGFVPathFromCandyFarmPath)(farmConfigPath, gfv);
69
+ if (await (0, _fsExtra.pathExists)(formPath)) {
70
+ return {
71
+ formPath: formPath,
72
+ farmDirectory: farmConfigPath
73
+ };
74
+ }
87
75
  }
76
+ return this.findFormPathLegacy(this.allFarmConfig, gfv);
77
+ }
78
+
79
+ // Fallback для legacy-каталогов (без /Candy подпапки)
80
+ // узнать остались ли такие, если нет -> удалить
81
+ async findFormPathLegacy(allFarmConfig, gfv) {
88
82
  let farmDirectory;
89
83
  let formDirPath = "";
90
- const allPossibleFilePath = this.allFarmConfig.map(i => path.join(i, "forms", this.gfv));
84
+ const allPossibleFilePath = allFarmConfig.map(i => path.join(i, "forms", gfv));
91
85
  for (const pth of allPossibleFilePath) {
92
86
  if (await (0, _fsExtra.pathExists)(pth)) {
93
87
  formDirPath = pth;
@@ -99,7 +93,7 @@ class BuildFormDevServer {
99
93
  throw Error("formDirPath not found");
100
94
  }
101
95
  if (farmDirectory == undefined || !(await (0, _fsExtra.pathExists)(farmDirectory))) {
102
- throw Error(`FarmDirectory = ${this.farmDirectory} not exist`);
96
+ throw Error(`FarmDirectory = ${farmDirectory} not exist`);
103
97
  }
104
98
  return {
105
99
  formPath: formDirPath,
@@ -175,28 +169,21 @@ class BuildFormDevServer {
175
169
  while (!this.webpackDevServerStarted) {
176
170
  await (0, _AsyncUtils.delay)(500);
177
171
  }
178
- let resultFileName = "";
179
- const formPath = await this.findFormPath(this.gfv);
180
- const allPossibleFilePath = [path.join(formPath.formPath, _WellKnownDirectories.WellKnownDirectories.GeneratedFormSubdirectory, filename)];
181
- for (const pth of allPossibleFilePath) {
182
- try {
183
- var _this$webpackHybridFi2;
184
- if ((_this$webpackHybridFi2 = this.webpackHybridFileSystem) !== null && _this$webpackHybridFi2 !== void 0 && _this$webpackHybridFi2.statSync(pth)) {
185
- resultFileName = pth;
186
- break;
187
- }
188
- } catch {
189
- continue;
190
- }
191
- }
192
- if (resultFileName === "") {
172
+ const {
173
+ formPath
174
+ } = await this.findFormPath(this.gfv);
175
+ const filePath = path.join(formPath, _WellKnownDirectories.WellKnownDirectories.GeneratedFormSubdirectory, filename);
176
+ try {
177
+ (0, _TypingUtils.ensureNotNullOrUndefined)(this.webpackHybridFileSystem);
178
+ this.webpackHybridFileSystem.statSync(filePath);
179
+ } catch {
193
180
  throw new _NotFoundWebError.NotFoundWebError(`getGeneratedFileAsStream ${filename} not found`);
194
181
  }
195
- return new Promise((resolve, r) => {
196
- var _this$webpackHybridFi3;
197
- (_this$webpackHybridFi3 = this.webpackHybridFileSystem) === null || _this$webpackHybridFi3 === void 0 || _this$webpackHybridFi3.readFile(resultFileName, "utf-8", (error, data) => {
182
+ return new Promise((resolve, reject) => {
183
+ var _this$webpackHybridFi2;
184
+ (_this$webpackHybridFi2 = this.webpackHybridFileSystem) === null || _this$webpackHybridFi2 === void 0 || _this$webpackHybridFi2.readFile(filePath, "utf-8", (error, data) => {
198
185
  if (error) {
199
- r(error);
186
+ reject(error);
200
187
  } else {
201
188
  resolve(_stream.Readable.from([data]));
202
189
  }
@@ -209,17 +196,13 @@ class BuildFormDevServer {
209
196
  }
210
197
  const response = await (0, _nodeFetch.default)(`https://localhost:${this.port}/${filename}`, {
211
198
  method: "GET",
212
- agent: new _https.Agent({
213
- rejectUnauthorized: false
214
- }),
215
- compress: true
199
+ agent: this.httpsAgent
216
200
  });
217
201
  if (response.status != 200) {
218
202
  const textResponse = await response.text();
219
203
  throw new Error(textResponse);
220
204
  }
221
- const buffer = await response.buffer();
222
- return _stream.Readable.from(buffer);
205
+ return response.body;
223
206
  }
224
207
  formatError(e) {
225
208
  if (e instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"BuildFormDevServer.js","names":["path","_interopRequireWildcard","require","_stream","_https","_nodeFetch","_interopRequireDefault","_pLimit","_fsExtra","_GenerateForm","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_AsyncUtils","_Observe","_FsUtils","_FormPathUtils","_TypingUtils","_WellKnownDirectories","_NotFoundWebError","_ReportGeneratorErrorToPageBody","_RunFormCompilationViaWebpackDevServer","_WebpackHybridFileSystem","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","buildGfvToPathMap","repositoryRoots","result","Map","repositoryRoot","formPaths","globAsync","WellKnownDirectories","CandySubdirectoryName","cwd","formPath","gfv","extractGfvFromFormPath","join","BuildFormDevServer","constructor","port","allFarmConfig","candyModulesDirectory","farmConfigArray","useGeneratorFromLocalSources","engineDirectory","buildDebugOnly","skipCodeReformatting","nightly","farmDirectory","startParallelLimit","generateChain","webpackDevServerStarted","webpackHybridFileSystem","gfvPaths","undefined","pLimit","findFormPath","_this$gfvPaths","map","x","_this$gfvPaths$get","reject","normalize","formDirPath","allPossibleFilePath","pth","pathExists","Error","writeErrorInEntryAndShowInBrowser","_this$webpackHybridFi","formEntryPointPath","writeBatch","getReportGeneratorErrorToPageBodyScript","formatError","start","WebpackHybridFileSystem","Observe","file","FormJsonFileName","transform","formJsonFile","resolveFormInfo","generatorSource","resolveLocalGeneratorSource","engineSource","resolveLocalEngineSource","generatorVersion","engineVersion","resolveGeneratorVersion","resolveEngineVersion","attach","fi","generatorFactory","y","generator","getGeneratorSourceKey","files","formSourcesPath","do","FormsDirWithHlPath","find","generateForm","hlFarmDirectoryPath","resourcesHash","observe","runFormCompilationViaWebpackDevServer","getGeneratedFileAsStream","filename","delay","resultFileName","GeneratedFormSubdirectory","_this$webpackHybridFi2","statSync","NotFoundWebError","Promise","resolve","_this$webpackHybridFi3","readFile","error","data","Readable","from","getFileAsStream","response","fetch","method","agent","Agent","rejectUnauthorized","compress","status","textResponse","text","buffer","stack","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.ts"],"sourcesContent":["import * as path from \"path\";\nimport { Readable } from \"stream\";\nimport { Agent } from \"https\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\nimport { pathExists } from \"fs-extra\";\n\nimport { generateForm } from \"../../../../BuildTasks/Form/GenerateForm\";\nimport { generatorFactory, getGeneratorSourceKey } from \"../../../../BuildTasks/Generator/AcquireFormGenerator\";\nimport {\n resolveEngineVersion,\n resolveGeneratorVersion,\n resolveLocalEngineSource,\n resolveLocalGeneratorSource,\n} from \"../../../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../../../BuildTasks/ResolveFormInfo\";\nimport { delay } from \"../../../../../../Common/AsyncUtils\";\nimport { ReasonOrError } from \"../../../../Commons/ErrorUntyped\";\nimport { ChainableValueProducer } from \"../../../../Commons/TasksCore/ChainableValueProducer\";\nimport { Observe } from \"../../../../Commons/TasksCore/Observe\";\nimport { globAsync } from \"../../../../Commons/FsUtils\";\nimport { extractGfvFromFormPath } from \"../../../../../../Common/FormPathUtils\";\nimport { reject } from \"../../../../../../Common/TypingUtils\";\nimport { WellKnownDirectories } from \"../../../../../../Common/WellKnownDirectories\";\nimport { NotFoundWebError } from \"../../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\n\nimport { getReportGeneratorErrorToPageBodyScript } from \"./ReportGeneratorErrorToPageBody\";\nimport { runFormCompilationViaWebpackDevServer } from \"./RunFormCompilationViaWebpackDevServer\";\nimport { WebpackHybridFileSystem } from \"./WebpackInMemoryUtils/WebpackHybridFileSystem\";\n\nasync function buildGfvToPathMap(repositoryRoots: string[]): Promise<Map<string, string>> {\n const result = new Map<string, string>();\n\n for (const repositoryRoot of repositoryRoots) {\n const formPaths = await globAsync(`forms/**/*/${WellKnownDirectories.CandySubdirectoryName}`, {\n cwd: repositoryRoot,\n });\n for (const formPath of formPaths) {\n const gfv = extractGfvFromFormPath(formPath);\n result.set(gfv, path.join(repositoryRoot, formPath));\n }\n }\n\n return result;\n}\n\nexport class BuildFormDevServer {\n private readonly port: number;\n private readonly allFarmConfig: string[];\n private readonly gfv: string;\n private readonly candyModulesDirectory: string;\n private farmDirectory: string;\n private formPath: string;\n private readonly farmConfigArray: FarmConfig[];\n private readonly startParallelLimit: Limit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private generateChain?: ChainableValueProducer<any>;\n private webpackDevServerStarted = false;\n private readonly useGeneratorFromLocalSources: boolean;\n private readonly engineDirectory: string;\n private readonly nightly: boolean;\n private readonly buildDebugOnly: boolean;\n private readonly skipCodeReformatting: boolean;\n private webpackHybridFileSystem?: WebpackHybridFileSystem;\n private gfvPaths: undefined | Map<string, string> = undefined;\n\n public constructor(\n port: number,\n allFarmConfig: string[],\n gfv: string,\n candyModulesDirectory: string,\n farmConfigArray: FarmConfig[],\n useGeneratorFromLocalSources: boolean,\n engineDirectory: string,\n buildDebugOnly: boolean,\n skipCodeReformatting: boolean,\n nightly: boolean\n ) {\n this.port = port;\n this.allFarmConfig = allFarmConfig;\n this.gfv = gfv;\n this.candyModulesDirectory = candyModulesDirectory;\n this.farmConfigArray = farmConfigArray;\n this.startParallelLimit = pLimit(1);\n this.useGeneratorFromLocalSources = useGeneratorFromLocalSources;\n this.engineDirectory = engineDirectory;\n this.buildDebugOnly = buildDebugOnly;\n this.skipCodeReformatting = skipCodeReformatting;\n this.nightly = nightly;\n this.farmDirectory = \"\";\n this.formPath = \"\";\n }\n\n private async findFormPath(gfv: string): Promise<{ formPath: string; farmDirectory: string }> {\n this.gfvPaths = this.gfvPaths ?? (await buildGfvToPathMap(this.allFarmConfig.map(x => path.join(x, \"..\"))));\n\n if (this.gfvPaths.has(gfv)) {\n const formPath = this.gfvPaths.get(gfv) ?? reject();\n return {\n formPath: formPath ?? reject(),\n farmDirectory: path.normalize(path.join(formPath, \"..\", \"..\", \"..\", \"..\", \"..\", \"candy.farm\")),\n };\n }\n\n let farmDirectory: string | undefined;\n let formDirPath = \"\";\n\n const allPossibleFilePath = this.allFarmConfig.map(i => path.join(i, \"forms\", this.gfv));\n for (const pth of allPossibleFilePath) {\n if (await pathExists(pth)) {\n formDirPath = pth;\n farmDirectory = path.join(pth, \"..\", \"..\");\n break;\n }\n }\n\n if (formDirPath === \"\") {\n throw Error(\"formDirPath not found\");\n }\n if (farmDirectory == undefined || !(await pathExists(farmDirectory))) {\n throw Error(`FarmDirectory = ${this.farmDirectory} not exist`);\n }\n return {\n formPath: formDirPath,\n farmDirectory: farmDirectory,\n };\n }\n\n private async writeErrorInEntryAndShowInBrowser(e: unknown) {\n const formEntryPointPath = path.join(this.formPath, \"form\", \"web.js\");\n await this.webpackHybridFileSystem?.writeBatch({\n [formEntryPointPath]: getReportGeneratorErrorToPageBodyScript(this.formatError(e)),\n });\n }\n\n public start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.generateChain != undefined) {\n return;\n }\n\n const { formPath, farmDirectory } = await this.findFormPath(this.gfv);\n this.farmDirectory = farmDirectory;\n this.formPath = formPath;\n this.webpackHybridFileSystem = new WebpackHybridFileSystem(path.join(this.formPath, \"form\"));\n\n this.generateChain = Observe.file(path.join(this.formPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n this.formPath,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n this.nightly\n )\n )\n .transform(async x => {\n if (this.useGeneratorFromLocalSources) {\n return {\n ...x,\n generatorSource: resolveLocalGeneratorSource(this.engineDirectory),\n engineSource: resolveLocalEngineSource(this.engineDirectory),\n };\n } else {\n if (x.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is no defined\");\n }\n if (x.engineVersion == undefined) {\n throw new Error(\"engineVersion is no defined\");\n }\n return {\n ...x,\n generatorSource: await resolveGeneratorVersion(x.generatorVersion),\n engineSource: await resolveEngineVersion(x.engineVersion),\n };\n }\n })\n .attach(\n async fi => generatorFactory(fi.generatorSource, this.candyModulesDirectory, false, undefined),\n async (fi, y) => ({ ...fi, generator: y }),\n async fi => getGeneratorSourceKey(fi.generatorSource)\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/generator/*\",\n `./${WellKnownDirectories.FormJsonFileName}`,\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"normalizers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .do(async fi => {\n try {\n const FormsDirWithHlPath = this.farmConfigArray.find(i => i.farmDirectory == farmDirectory);\n if (FormsDirWithHlPath == undefined) {\n throw Error(\"FormsDirWithHlPath === undefined\");\n }\n await generateForm(\n fi.formSourcesPath,\n this.farmDirectory,\n FormsDirWithHlPath.hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: this.skipCodeReformatting,\n resourcesHash: \"local-hash\",\n },\n this.webpackHybridFileSystem\n );\n } catch (e) {\n await this.writeErrorInEntryAndShowInBrowser(e);\n }\n });\n try {\n await this.generateChain.observe();\n } catch (e) {\n await this.writeErrorInEntryAndShowInBrowser(e);\n }\n\n await runFormCompilationViaWebpackDevServer(\n this.gfv,\n this.formPath,\n path.join(this.farmDirectory, \"res\"),\n \"local-hash\",\n this.buildDebugOnly,\n this.webpackHybridFileSystem,\n this.port\n );\n this.webpackDevServerStarted = true;\n });\n }\n\n public async getGeneratedFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.webpackDevServerStarted) {\n await delay(500);\n }\n let resultFileName = \"\";\n const formPath = await this.findFormPath(this.gfv);\n const allPossibleFilePath = [\n path.join(formPath.formPath, WellKnownDirectories.GeneratedFormSubdirectory, filename),\n ];\n for (const pth of allPossibleFilePath) {\n try {\n if (this.webpackHybridFileSystem?.statSync(pth)) {\n resultFileName = pth;\n break;\n }\n } catch {\n continue;\n }\n }\n if (resultFileName === \"\") {\n throw new NotFoundWebError(`getGeneratedFileAsStream ${filename} not found`);\n }\n\n return new Promise((resolve, r) => {\n this.webpackHybridFileSystem?.readFile(resultFileName, \"utf-8\", (error, data) => {\n if (error) {\n r(error);\n } else {\n resolve(Readable.from([data]));\n }\n });\n });\n }\n\n public async getFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.webpackDevServerStarted) {\n await delay(500);\n }\n const response = await fetch(`https://localhost:${this.port}/${filename}`, {\n method: \"GET\",\n agent: new Agent({ rejectUnauthorized: false }),\n compress: true,\n });\n if (response.status != 200) {\n const textResponse = await response.text();\n throw new Error(textResponse);\n }\n const buffer = await response.buffer();\n return Readable.from(buffer);\n }\n\n private formatError(e: ReasonOrError): string {\n if (e instanceof Error) {\n return `${e}\\n${e.stack}`;\n }\n return `${e}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BuildFormDevServer.js","names":["path","_interopRequireWildcard","require","_stream","_https","_nodeFetch","_interopRequireDefault","_pLimit","_fsExtra","_GenerateForm","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_AsyncUtils","_Observe","_ExtractGFVPath","_WellKnownDirectories","_NotFoundWebError","_TypingUtils","_ReportGeneratorErrorToPageBody","_RunFormCompilationViaWebpackDevServer","_WebpackHybridFileSystem","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BuildFormDevServer","constructor","port","allFarmConfig","gfv","candyModulesDirectory","farmConfigArray","useGeneratorFromLocalSources","engineDirectory","buildDebugOnly","skipCodeReformatting","nightly","farmDirectory","formPath","startParallelLimit","generateChain","webpackDevServerStarted","webpackHybridFileSystem","httpsAgent","Agent","rejectUnauthorized","keepAlive","pLimit","findFormPath","farmConfigPath","extractGFVPathFromCandyFarmPath","pathExists","findFormPathLegacy","formDirPath","allPossibleFilePath","map","join","pth","Error","undefined","writeErrorInEntryAndShowInBrowser","_this$webpackHybridFi","formEntryPointPath","writeBatch","getReportGeneratorErrorToPageBodyScript","formatError","start","WebpackHybridFileSystem","Observe","file","WellKnownDirectories","FormJsonFileName","transform","formJsonFile","resolveFormInfo","x","generatorSource","resolveLocalGeneratorSource","engineSource","resolveLocalEngineSource","generatorVersion","engineVersion","resolveGeneratorVersion","resolveEngineVersion","attach","fi","generatorFactory","y","generator","getGeneratorSourceKey","files","formSourcesPath","do","FormsDirWithHlPath","find","generateForm","hlFarmDirectoryPath","resourcesHash","observe","runFormCompilationViaWebpackDevServer","getGeneratedFileAsStream","filename","delay","filePath","GeneratedFormSubdirectory","ensureNotNullOrUndefined","statSync","NotFoundWebError","Promise","resolve","reject","_this$webpackHybridFi2","readFile","error","data","Readable","from","getFileAsStream","response","fetch","method","agent","status","textResponse","text","body","stack","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.ts"],"sourcesContent":["import * as path from \"path\";\nimport { Readable } from \"stream\";\nimport { Agent } from \"https\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\nimport { FarmConfig } from \"Tools/src/CandyCLI\";\nimport { pathExists } from \"fs-extra\";\n\nimport { generateForm } from \"../../../../BuildTasks/Form/GenerateForm\";\nimport { generatorFactory, getGeneratorSourceKey } from \"../../../../BuildTasks/Generator/AcquireFormGenerator\";\nimport {\n resolveEngineVersion,\n resolveGeneratorVersion,\n resolveLocalEngineSource,\n resolveLocalGeneratorSource,\n} from \"../../../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../../../BuildTasks/ResolveFormInfo\";\nimport { delay } from \"../../../../../../Common/AsyncUtils\";\nimport { ReasonOrError } from \"../../../../Commons/ErrorUntyped\";\nimport { ChainableValueProducer } from \"../../../../Commons/TasksCore/ChainableValueProducer\";\nimport { Observe } from \"../../../../Commons/TasksCore/Observe\";\nimport { extractGFVPathFromCandyFarmPath } from \"../../../../../../Common/ExtractGFVPath/ExtractGFVPath\";\nimport { WellKnownDirectories } from \"../../../../../../Common/WellKnownDirectories\";\nimport { NotFoundWebError } from \"../../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\nimport { ensureNotNullOrUndefined } from \"../../../../../../Common/TypingUtils\";\n\nimport { getReportGeneratorErrorToPageBodyScript } from \"./ReportGeneratorErrorToPageBody\";\nimport { runFormCompilationViaWebpackDevServer } from \"./RunFormCompilationViaWebpackDevServer\";\nimport { WebpackHybridFileSystem } from \"./WebpackInMemoryUtils/WebpackHybridFileSystem\";\n\nexport class BuildFormDevServer {\n private readonly port: number;\n private readonly allFarmConfig: string[];\n private readonly gfv: string;\n private readonly candyModulesDirectory: string;\n private farmDirectory: string;\n private formPath: string;\n private readonly farmConfigArray: FarmConfig[];\n private readonly startParallelLimit: Limit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private generateChain?: ChainableValueProducer<any>;\n private webpackDevServerStarted = false;\n private readonly useGeneratorFromLocalSources: boolean;\n private readonly engineDirectory: string;\n private readonly nightly: boolean;\n private readonly buildDebugOnly: boolean;\n private readonly skipCodeReformatting: boolean;\n private webpackHybridFileSystem?: WebpackHybridFileSystem;\n private readonly httpsAgent = new Agent({ rejectUnauthorized: false, keepAlive: true });\n\n public constructor(\n port: number,\n allFarmConfig: string[],\n gfv: string,\n candyModulesDirectory: string,\n farmConfigArray: FarmConfig[],\n useGeneratorFromLocalSources: boolean,\n engineDirectory: string,\n buildDebugOnly: boolean,\n skipCodeReformatting: boolean,\n nightly: boolean\n ) {\n this.port = port;\n this.allFarmConfig = allFarmConfig;\n this.gfv = gfv;\n this.candyModulesDirectory = candyModulesDirectory;\n this.farmConfigArray = farmConfigArray;\n this.startParallelLimit = pLimit(1);\n this.useGeneratorFromLocalSources = useGeneratorFromLocalSources;\n this.engineDirectory = engineDirectory;\n this.buildDebugOnly = buildDebugOnly;\n this.skipCodeReformatting = skipCodeReformatting;\n this.nightly = nightly;\n this.farmDirectory = \"\";\n this.formPath = \"\";\n }\n\n private async findFormPath(gfv: string): Promise<{ formPath: string; farmDirectory: string }> {\n for (const farmConfigPath of this.allFarmConfig) {\n const formPath = extractGFVPathFromCandyFarmPath(farmConfigPath, gfv);\n if (await pathExists(formPath)) {\n return {\n formPath: formPath,\n farmDirectory: farmConfigPath,\n };\n }\n }\n\n return this.findFormPathLegacy(this.allFarmConfig, gfv);\n }\n\n // Fallback для legacy-каталогов (без /Candy подпапки)\n // узнать остались ли такие, если нет -> удалить\n private async findFormPathLegacy(\n allFarmConfig: string[],\n gfv: string\n ): Promise<{ formPath: string; farmDirectory: string }> {\n let farmDirectory: string | undefined;\n let formDirPath = \"\";\n\n const allPossibleFilePath = allFarmConfig.map(i => path.join(i, \"forms\", gfv));\n for (const pth of allPossibleFilePath) {\n if (await pathExists(pth)) {\n formDirPath = pth;\n farmDirectory = path.join(pth, \"..\", \"..\");\n break;\n }\n }\n\n if (formDirPath === \"\") {\n throw Error(\"formDirPath not found\");\n }\n if (farmDirectory == undefined || !(await pathExists(farmDirectory))) {\n throw Error(`FarmDirectory = ${farmDirectory} not exist`);\n }\n return {\n formPath: formDirPath,\n farmDirectory: farmDirectory,\n };\n }\n\n private async writeErrorInEntryAndShowInBrowser(e: unknown) {\n const formEntryPointPath = path.join(this.formPath, \"form\", \"web.js\");\n await this.webpackHybridFileSystem?.writeBatch({\n [formEntryPointPath]: getReportGeneratorErrorToPageBodyScript(this.formatError(e)),\n });\n }\n\n public start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.generateChain != undefined) {\n return;\n }\n\n const { formPath, farmDirectory } = await this.findFormPath(this.gfv);\n this.farmDirectory = farmDirectory;\n this.formPath = formPath;\n this.webpackHybridFileSystem = new WebpackHybridFileSystem(path.join(this.formPath, \"form\"));\n\n this.generateChain = Observe.file(path.join(this.formPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n this.formPath,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n this.nightly\n )\n )\n .transform(async x => {\n if (this.useGeneratorFromLocalSources) {\n return {\n ...x,\n generatorSource: resolveLocalGeneratorSource(this.engineDirectory),\n engineSource: resolveLocalEngineSource(this.engineDirectory),\n };\n } else {\n if (x.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is no defined\");\n }\n if (x.engineVersion == undefined) {\n throw new Error(\"engineVersion is no defined\");\n }\n return {\n ...x,\n generatorSource: await resolveGeneratorVersion(x.generatorVersion),\n engineSource: await resolveEngineVersion(x.engineVersion),\n };\n }\n })\n .attach(\n async fi => generatorFactory(fi.generatorSource, this.candyModulesDirectory, false, undefined),\n async (fi, y) => ({ ...fi, generator: y }),\n async fi => getGeneratorSourceKey(fi.generatorSource)\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/generator/*\",\n `./${WellKnownDirectories.FormJsonFileName}`,\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"normalizers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .do(async fi => {\n try {\n const FormsDirWithHlPath = this.farmConfigArray.find(i => i.farmDirectory == farmDirectory);\n if (FormsDirWithHlPath == undefined) {\n throw Error(\"FormsDirWithHlPath === undefined\");\n }\n await generateForm(\n fi.formSourcesPath,\n this.farmDirectory,\n FormsDirWithHlPath.hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: this.skipCodeReformatting,\n resourcesHash: \"local-hash\",\n },\n this.webpackHybridFileSystem\n );\n } catch (e) {\n await this.writeErrorInEntryAndShowInBrowser(e);\n }\n });\n try {\n await this.generateChain.observe();\n } catch (e) {\n await this.writeErrorInEntryAndShowInBrowser(e);\n }\n\n await runFormCompilationViaWebpackDevServer(\n this.gfv,\n this.formPath,\n path.join(this.farmDirectory, \"res\"),\n \"local-hash\",\n this.buildDebugOnly,\n this.webpackHybridFileSystem,\n this.port\n );\n this.webpackDevServerStarted = true;\n });\n }\n\n public async getGeneratedFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.webpackDevServerStarted) {\n await delay(500);\n }\n\n const { formPath } = await this.findFormPath(this.gfv);\n const filePath = path.join(formPath, WellKnownDirectories.GeneratedFormSubdirectory, filename);\n try {\n ensureNotNullOrUndefined(this.webpackHybridFileSystem);\n this.webpackHybridFileSystem.statSync(filePath);\n } catch {\n throw new NotFoundWebError(`getGeneratedFileAsStream ${filename} not found`);\n }\n\n return new Promise((resolve, reject) => {\n this.webpackHybridFileSystem?.readFile(filePath, \"utf-8\", (error, data) => {\n if (error) {\n reject(error);\n } else {\n resolve(Readable.from([data]));\n }\n });\n });\n }\n\n public async getFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.webpackDevServerStarted) {\n await delay(500);\n }\n const response = await fetch(`https://localhost:${this.port}/${filename}`, {\n method: \"GET\",\n agent: this.httpsAgent,\n });\n if (response.status != 200) {\n const textResponse = await response.text();\n throw new Error(textResponse);\n }\n return response.body;\n }\n\n private formatError(e: ReasonOrError): string {\n if (e instanceof Error) {\n return `${e}\\n${e.stack}`;\n }\n return `${e}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.ClientJsDevServer = void 0;
8
8
  var _https = require("https");
9
- var _stream = require("stream");
10
9
  var _nodeFetch = _interopRequireDefault(require("node-fetch"));
11
10
  var _pLimit = _interopRequireDefault(require("p-limit"));
12
11
  var _WebpackDevServerWorkerFactory = require("./WebpackDevServerWorker/WebpackDevServerWorkerFactory");
@@ -17,6 +16,10 @@ class ClientJsDevServer {
17
16
  this.startParallelLimit = void 0;
18
17
  this.started = false;
19
18
  this.buildDebugOnly = void 0;
19
+ this.httpsAgent = new _https.Agent({
20
+ rejectUnauthorized: false,
21
+ keepAlive: true
22
+ });
20
23
  this.port = port;
21
24
  this.engineDirectory = engineDirectory;
22
25
  this.startParallelLimit = (0, _pLimit.default)(1);
@@ -44,13 +47,9 @@ class ClientJsDevServer {
44
47
  async getFileStream(filePathUrl) {
45
48
  const request = await (0, _nodeFetch.default)(`https://localhost:${this.port}/${filePathUrl}`, {
46
49
  method: "GET",
47
- agent: new _https.Agent({
48
- rejectUnauthorized: false
49
- }),
50
- compress: true
50
+ agent: this.httpsAgent
51
51
  });
52
- const buffer = await request.buffer();
53
- return _stream.Readable.from(buffer);
52
+ return request.body;
54
53
  }
55
54
  }
56
55
  exports.ClientJsDevServer = ClientJsDevServer;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientJsDevServer.js","names":["_https","require","_stream","_nodeFetch","_interopRequireDefault","_pLimit","_WebpackDevServerWorkerFactory","ClientJsDevServer","constructor","port","engineDirectory","buildDebugOnly","startParallelLimit","started","pLimit","start","createWebPackDevServerWorker","resourcesPath","outputFilename","development","production","sourceMapPrefix","getClientJsContentAsStream","minified","fileName","getFileStream","filePathUrl","request","fetch","method","agent","Agent","rejectUnauthorized","compress","buffer","Readable","from","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.ts"],"sourcesContent":["import { Agent } from \"https\";\nimport { Readable } from \"stream\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\n\nimport { createWebPackDevServerWorker } from \"./WebpackDevServerWorker/WebpackDevServerWorkerFactory\";\n\nexport class ClientJsDevServer {\n private readonly port: number;\n private readonly engineDirectory: string;\n private readonly startParallelLimit: Limit;\n private started = false;\n private readonly buildDebugOnly: boolean;\n\n public constructor(port: number, engineDirectory: string, buildDebugOnly: boolean) {\n this.port = port;\n this.engineDirectory = engineDirectory;\n this.startParallelLimit = pLimit(1);\n this.buildDebugOnly = buildDebugOnly;\n }\n\n public async start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.started) {\n return;\n }\n await createWebPackDevServerWorker(this.engineDirectory, \"clientjs.webpack.config.js\", this.port, {\n resourcesPath: \"dist\",\n outputFilename: \"client\",\n development: \"true\",\n production: this.buildDebugOnly ? \"false\" : \"true\",\n sourceMapPrefix: \"static/\",\n });\n this.started = true;\n });\n }\n\n public async getClientJsContentAsStream(minified: boolean): Promise<NodeJS.ReadableStream> {\n const fileName = minified ? \"client.min.js\" : \"client.js\";\n return this.getFileStream(`static/public/scripts/${fileName}`);\n }\n\n public async getFileStream(filePathUrl: string): Promise<NodeJS.ReadableStream> {\n const request = await fetch(`https://localhost:${this.port}/${filePathUrl}`, {\n method: \"GET\",\n agent: new Agent({ rejectUnauthorized: false }),\n compress: true,\n });\n const buffer = await request.buffer();\n return Readable.from(buffer);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,8BAAA,GAAAL,OAAA;AAEO,MAAMM,iBAAiB,CAAC;EAOpBC,WAAWA,CAACC,IAAY,EAAEC,eAAuB,EAAEC,cAAuB,EAAE;IAAA,KANlEF,IAAI;IAAA,KACJC,eAAe;IAAA,KACfE,kBAAkB;IAAA,KAC3BC,OAAO,GAAG,KAAK;IAAA,KACNF,cAAc;IAG3B,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACE,kBAAkB,GAAG,IAAAE,eAAM,EAAC,CAAC,CAAC;IACnC,IAAI,CAACH,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAaI,KAAKA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACH,kBAAkB,CAAC,YAAY;MACvC,IAAI,IAAI,CAACC,OAAO,EAAE;QACd;MACJ;MACA,MAAM,IAAAG,2DAA4B,EAAC,IAAI,CAACN,eAAe,EAAE,4BAA4B,EAAE,IAAI,CAACD,IAAI,EAAE;QAC9FQ,aAAa,EAAE,MAAM;QACrBC,cAAc,EAAE,QAAQ;QACxBC,WAAW,EAAE,MAAM;QACnBC,UAAU,EAAE,IAAI,CAACT,cAAc,GAAG,OAAO,GAAG,MAAM;QAClDU,eAAe,EAAE;MACrB,CAAC,CAAC;MACF,IAAI,CAACR,OAAO,GAAG,IAAI;IACvB,CAAC,CAAC;EACN;EAEA,MAAaS,0BAA0BA,CAACC,QAAiB,EAAkC;IACvF,MAAMC,QAAQ,GAAGD,QAAQ,GAAG,eAAe,GAAG,WAAW;IACzD,OAAO,IAAI,CAACE,aAAa,CAAC,yBAAyBD,QAAQ,EAAE,CAAC;EAClE;EAEA,MAAaC,aAAaA,CAACC,WAAmB,EAAkC;IAC5E,MAAMC,OAAO,GAAG,MAAM,IAAAC,kBAAK,EAAC,qBAAqB,IAAI,CAACnB,IAAI,IAAIiB,WAAW,EAAE,EAAE;MACzEG,MAAM,EAAE,KAAK;MACbC,KAAK,EAAE,IAAIC,YAAK,CAAC;QAAEC,kBAAkB,EAAE;MAAM,CAAC,CAAC;MAC/CC,QAAQ,EAAE;IACd,CAAC,CAAC;IACF,MAAMC,MAAM,GAAG,MAAMP,OAAO,CAACO,MAAM,CAAC,CAAC;IACrC,OAAOC,gBAAQ,CAACC,IAAI,CAACF,MAAM,CAAC;EAChC;AACJ;AAACG,OAAA,CAAA9B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"ClientJsDevServer.js","names":["_https","require","_nodeFetch","_interopRequireDefault","_pLimit","_WebpackDevServerWorkerFactory","ClientJsDevServer","constructor","port","engineDirectory","buildDebugOnly","startParallelLimit","started","httpsAgent","Agent","rejectUnauthorized","keepAlive","pLimit","start","createWebPackDevServerWorker","resourcesPath","outputFilename","development","production","sourceMapPrefix","getClientJsContentAsStream","minified","fileName","getFileStream","filePathUrl","request","fetch","method","agent","body","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.ts"],"sourcesContent":["import { Agent } from \"https\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\n\nimport { createWebPackDevServerWorker } from \"./WebpackDevServerWorker/WebpackDevServerWorkerFactory\";\n\nexport class ClientJsDevServer {\n private readonly port: number;\n private readonly engineDirectory: string;\n private readonly startParallelLimit: Limit;\n private started = false;\n private readonly buildDebugOnly: boolean;\n private readonly httpsAgent = new Agent({ rejectUnauthorized: false, keepAlive: true });\n\n public constructor(port: number, engineDirectory: string, buildDebugOnly: boolean) {\n this.port = port;\n this.engineDirectory = engineDirectory;\n this.startParallelLimit = pLimit(1);\n this.buildDebugOnly = buildDebugOnly;\n }\n\n public async start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.started) {\n return;\n }\n await createWebPackDevServerWorker(this.engineDirectory, \"clientjs.webpack.config.js\", this.port, {\n resourcesPath: \"dist\",\n outputFilename: \"client\",\n development: \"true\",\n production: this.buildDebugOnly ? \"false\" : \"true\",\n sourceMapPrefix: \"static/\",\n });\n this.started = true;\n });\n }\n\n public async getClientJsContentAsStream(minified: boolean): Promise<NodeJS.ReadableStream> {\n const fileName = minified ? \"client.min.js\" : \"client.js\";\n return this.getFileStream(`static/public/scripts/${fileName}`);\n }\n\n public async getFileStream(filePathUrl: string): Promise<NodeJS.ReadableStream> {\n const request = await fetch(`https://localhost:${this.port}/${filePathUrl}`, {\n method: \"GET\",\n agent: this.httpsAgent,\n });\n return request.body;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,8BAAA,GAAAJ,OAAA;AAEO,MAAMK,iBAAiB,CAAC;EAQpBC,WAAWA,CAACC,IAAY,EAAEC,eAAuB,EAAEC,cAAuB,EAAE;IAAA,KAPlEF,IAAI;IAAA,KACJC,eAAe;IAAA,KACfE,kBAAkB;IAAA,KAC3BC,OAAO,GAAG,KAAK;IAAA,KACNF,cAAc;IAAA,KACdG,UAAU,GAAG,IAAIC,YAAK,CAAC;MAAEC,kBAAkB,EAAE,KAAK;MAAEC,SAAS,EAAE;IAAK,CAAC,CAAC;IAGnF,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACE,kBAAkB,GAAG,IAAAM,eAAM,EAAC,CAAC,CAAC;IACnC,IAAI,CAACP,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAaQ,KAAKA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACP,kBAAkB,CAAC,YAAY;MACvC,IAAI,IAAI,CAACC,OAAO,EAAE;QACd;MACJ;MACA,MAAM,IAAAO,2DAA4B,EAAC,IAAI,CAACV,eAAe,EAAE,4BAA4B,EAAE,IAAI,CAACD,IAAI,EAAE;QAC9FY,aAAa,EAAE,MAAM;QACrBC,cAAc,EAAE,QAAQ;QACxBC,WAAW,EAAE,MAAM;QACnBC,UAAU,EAAE,IAAI,CAACb,cAAc,GAAG,OAAO,GAAG,MAAM;QAClDc,eAAe,EAAE;MACrB,CAAC,CAAC;MACF,IAAI,CAACZ,OAAO,GAAG,IAAI;IACvB,CAAC,CAAC;EACN;EAEA,MAAaa,0BAA0BA,CAACC,QAAiB,EAAkC;IACvF,MAAMC,QAAQ,GAAGD,QAAQ,GAAG,eAAe,GAAG,WAAW;IACzD,OAAO,IAAI,CAACE,aAAa,CAAC,yBAAyBD,QAAQ,EAAE,CAAC;EAClE;EAEA,MAAaC,aAAaA,CAACC,WAAmB,EAAkC;IAC5E,MAAMC,OAAO,GAAG,MAAM,IAAAC,kBAAK,EAAC,qBAAqB,IAAI,CAACvB,IAAI,IAAIqB,WAAW,EAAE,EAAE;MACzEG,MAAM,EAAE,KAAK;MACbC,KAAK,EAAE,IAAI,CAACpB;IAChB,CAAC,CAAC;IACF,OAAOiB,OAAO,CAACI,IAAI;EACvB;AACJ;AAACC,OAAA,CAAA7B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.EngineDevServer = void 0;
8
8
  var _https = require("https");
9
- var _stream = require("stream");
10
9
  var _nodeFetch = _interopRequireDefault(require("node-fetch"));
11
10
  var _pLimit = _interopRequireDefault(require("p-limit"));
12
11
  var _AsyncUtils = require("../../../../../../Common/AsyncUtils");
@@ -20,6 +19,10 @@ class EngineDevServer {
20
19
  this.theme = void 0;
21
20
  this.started = false;
22
21
  this.buildDebugOnly = void 0;
22
+ this.httpsAgent = new _https.Agent({
23
+ rejectUnauthorized: false,
24
+ keepAlive: true
25
+ });
23
26
  this.port = port;
24
27
  this.engineDirectory = engineDirectory;
25
28
  this.startParallelLimit = (0, _pLimit.default)(1);
@@ -52,16 +55,12 @@ class EngineDevServer {
52
55
  }
53
56
  const response = await (0, _nodeFetch.default)(`https://localhost:${this.port}/static/${filename}`, {
54
57
  method: "GET",
55
- agent: new _https.Agent({
56
- rejectUnauthorized: false
57
- }),
58
- compress: true
58
+ agent: this.httpsAgent
59
59
  });
60
60
  if (response.status === 404) {
61
61
  throw new _NotFoundWebError.NotFoundWebError(`Cannot find ${filename} at runtime dev server runner at ${this.port}`);
62
62
  }
63
- const buffer = await response.buffer();
64
- return _stream.Readable.from(buffer);
63
+ return response.body;
65
64
  }
66
65
  }
67
66
  exports.EngineDevServer = EngineDevServer;
@@ -1 +1 @@
1
- {"version":3,"file":"EngineDevServer.js","names":["_https","require","_stream","_nodeFetch","_interopRequireDefault","_pLimit","_AsyncUtils","_NotFoundWebError","_WebpackDevServerWorkerFactory","EngineDevServer","constructor","port","engineDirectory","buildDebugOnly","theme","startParallelLimit","started","pLimit","start","commonOptions","resourcesPath","serving","options","development","production","testing","createWebPackDevServerWorker","getFileAsStream","filename","delay","response","fetch","method","agent","Agent","rejectUnauthorized","compress","status","NotFoundWebError","buffer","Readable","from","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.ts"],"sourcesContent":["import { Agent } from \"https\";\nimport { Readable } from \"stream\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\n\nimport { delay } from \"../../../../../../Common/AsyncUtils\";\nimport { NotFoundWebError } from \"../../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\n\nimport { createWebPackDevServerWorker } from \"./WebpackDevServerWorker/WebpackDevServerWorkerFactory\";\n\nexport class EngineDevServer {\n private readonly port: number;\n private readonly engineDirectory: string;\n private readonly startParallelLimit: Limit;\n private readonly theme: undefined | string;\n private started = false;\n private readonly buildDebugOnly: boolean;\n\n public constructor(port: number, engineDirectory: string, buildDebugOnly: boolean, theme: undefined | string) {\n this.port = port;\n this.engineDirectory = engineDirectory;\n this.startParallelLimit = pLimit(1);\n this.buildDebugOnly = buildDebugOnly;\n this.theme = theme;\n }\n\n public async start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.started) {\n return;\n }\n const commonOptions = {\n resourcesPath: \"dist\",\n serving: \"true\",\n theme: this.theme,\n };\n const options = this.buildDebugOnly\n ? {\n ...commonOptions,\n development: \"true\",\n production: \"false\",\n testing: \"false\",\n }\n : commonOptions;\n await createWebPackDevServerWorker(this.engineDirectory, \"webpack.config.js\", this.port, options);\n\n this.started = true;\n });\n }\n\n public async getFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.started) {\n await delay(500);\n }\n const response = await fetch(`https://localhost:${this.port}/static/${filename}`, {\n method: \"GET\",\n agent: new Agent({ rejectUnauthorized: false }),\n compress: true,\n });\n if (response.status === 404) {\n throw new NotFoundWebError(`Cannot find ${filename} at runtime dev server runner at ${this.port}`);\n }\n const buffer = await response.buffer();\n return Readable.from(buffer);\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAEA,IAAAO,8BAAA,GAAAP,OAAA;AAEO,MAAMQ,eAAe,CAAC;EAQlBC,WAAWA,CAACC,IAAY,EAAEC,eAAuB,EAAEC,cAAuB,EAAEC,KAAyB,EAAE;IAAA,KAP7FH,IAAI;IAAA,KACJC,eAAe;IAAA,KACfG,kBAAkB;IAAA,KAClBD,KAAK;IAAA,KACdE,OAAO,GAAG,KAAK;IAAA,KACNH,cAAc;IAG3B,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACG,kBAAkB,GAAG,IAAAE,eAAM,EAAC,CAAC,CAAC;IACnC,IAAI,CAACJ,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,KAAK,GAAGA,KAAK;EACtB;EAEA,MAAaI,KAAKA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACH,kBAAkB,CAAC,YAAY;MACvC,IAAI,IAAI,CAACC,OAAO,EAAE;QACd;MACJ;MACA,MAAMG,aAAa,GAAG;QAClBC,aAAa,EAAE,MAAM;QACrBC,OAAO,EAAE,MAAM;QACfP,KAAK,EAAE,IAAI,CAACA;MAChB,CAAC;MACD,MAAMQ,OAAO,GAAG,IAAI,CAACT,cAAc,GAC7B;QACI,GAAGM,aAAa;QAChBI,WAAW,EAAE,MAAM;QACnBC,UAAU,EAAE,OAAO;QACnBC,OAAO,EAAE;MACb,CAAC,GACDN,aAAa;MACnB,MAAM,IAAAO,2DAA4B,EAAC,IAAI,CAACd,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAACD,IAAI,EAAEW,OAAO,CAAC;MAEjG,IAAI,CAACN,OAAO,GAAG,IAAI;IACvB,CAAC,CAAC;EACN;EAEA,MAAaW,eAAeA,CAACC,QAAgB,EAAkC;IAC3E,OAAO,CAAC,IAAI,CAACZ,OAAO,EAAE;MAClB,MAAM,IAAAa,iBAAK,EAAC,GAAG,CAAC;IACpB;IACA,MAAMC,QAAQ,GAAG,MAAM,IAAAC,kBAAK,EAAC,qBAAqB,IAAI,CAACpB,IAAI,WAAWiB,QAAQ,EAAE,EAAE;MAC9EI,MAAM,EAAE,KAAK;MACbC,KAAK,EAAE,IAAIC,YAAK,CAAC;QAAEC,kBAAkB,EAAE;MAAM,CAAC,CAAC;MAC/CC,QAAQ,EAAE;IACd,CAAC,CAAC;IACF,IAAIN,QAAQ,CAACO,MAAM,KAAK,GAAG,EAAE;MACzB,MAAM,IAAIC,kCAAgB,CAAC,eAAeV,QAAQ,oCAAoC,IAAI,CAACjB,IAAI,EAAE,CAAC;IACtG;IACA,MAAM4B,MAAM,GAAG,MAAMT,QAAQ,CAACS,MAAM,CAAC,CAAC;IACtC,OAAOC,gBAAQ,CAACC,IAAI,CAACF,MAAM,CAAC;EAChC;AACJ;AAACG,OAAA,CAAAjC,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"EngineDevServer.js","names":["_https","require","_nodeFetch","_interopRequireDefault","_pLimit","_AsyncUtils","_NotFoundWebError","_WebpackDevServerWorkerFactory","EngineDevServer","constructor","port","engineDirectory","buildDebugOnly","theme","startParallelLimit","started","httpsAgent","Agent","rejectUnauthorized","keepAlive","pLimit","start","commonOptions","resourcesPath","serving","options","development","production","testing","createWebPackDevServerWorker","getFileAsStream","filename","delay","response","fetch","method","agent","status","NotFoundWebError","body","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.ts"],"sourcesContent":["import { Agent } from \"https\";\n\nimport fetch from \"node-fetch\";\nimport pLimit, { Limit } from \"p-limit\";\n\nimport { delay } from \"../../../../../../Common/AsyncUtils\";\nimport { NotFoundWebError } from \"../../../../Commons/HttpServer/AttributeRouting/NotFoundWebError\";\n\nimport { createWebPackDevServerWorker } from \"./WebpackDevServerWorker/WebpackDevServerWorkerFactory\";\n\nexport class EngineDevServer {\n private readonly port: number;\n private readonly engineDirectory: string;\n private readonly startParallelLimit: Limit;\n private readonly theme: undefined | string;\n private started = false;\n private readonly buildDebugOnly: boolean;\n private readonly httpsAgent = new Agent({ rejectUnauthorized: false, keepAlive: true });\n\n public constructor(port: number, engineDirectory: string, buildDebugOnly: boolean, theme: undefined | string) {\n this.port = port;\n this.engineDirectory = engineDirectory;\n this.startParallelLimit = pLimit(1);\n this.buildDebugOnly = buildDebugOnly;\n this.theme = theme;\n }\n\n public async start(): Promise<void> {\n return this.startParallelLimit(async () => {\n if (this.started) {\n return;\n }\n const commonOptions = {\n resourcesPath: \"dist\",\n serving: \"true\",\n theme: this.theme,\n };\n const options = this.buildDebugOnly\n ? {\n ...commonOptions,\n development: \"true\",\n production: \"false\",\n testing: \"false\",\n }\n : commonOptions;\n await createWebPackDevServerWorker(this.engineDirectory, \"webpack.config.js\", this.port, options);\n\n this.started = true;\n });\n }\n\n public async getFileAsStream(filename: string): Promise<NodeJS.ReadableStream> {\n while (!this.started) {\n await delay(500);\n }\n const response = await fetch(`https://localhost:${this.port}/static/${filename}`, {\n method: \"GET\",\n agent: this.httpsAgent,\n });\n if (response.status === 404) {\n throw new NotFoundWebError(`Cannot find ${filename} at runtime dev server runner at ${this.port}`);\n }\n return response.body;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAEA,IAAAM,8BAAA,GAAAN,OAAA;AAEO,MAAMO,eAAe,CAAC;EASlBC,WAAWA,CAACC,IAAY,EAAEC,eAAuB,EAAEC,cAAuB,EAAEC,KAAyB,EAAE;IAAA,KAR7FH,IAAI;IAAA,KACJC,eAAe;IAAA,KACfG,kBAAkB;IAAA,KAClBD,KAAK;IAAA,KACdE,OAAO,GAAG,KAAK;IAAA,KACNH,cAAc;IAAA,KACdI,UAAU,GAAG,IAAIC,YAAK,CAAC;MAAEC,kBAAkB,EAAE,KAAK;MAAEC,SAAS,EAAE;IAAK,CAAC,CAAC;IAGnF,IAAI,CAACT,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACG,kBAAkB,GAAG,IAAAM,eAAM,EAAC,CAAC,CAAC;IACnC,IAAI,CAACR,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,KAAK,GAAGA,KAAK;EACtB;EAEA,MAAaQ,KAAKA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACP,kBAAkB,CAAC,YAAY;MACvC,IAAI,IAAI,CAACC,OAAO,EAAE;QACd;MACJ;MACA,MAAMO,aAAa,GAAG;QAClBC,aAAa,EAAE,MAAM;QACrBC,OAAO,EAAE,MAAM;QACfX,KAAK,EAAE,IAAI,CAACA;MAChB,CAAC;MACD,MAAMY,OAAO,GAAG,IAAI,CAACb,cAAc,GAC7B;QACI,GAAGU,aAAa;QAChBI,WAAW,EAAE,MAAM;QACnBC,UAAU,EAAE,OAAO;QACnBC,OAAO,EAAE;MACb,CAAC,GACDN,aAAa;MACnB,MAAM,IAAAO,2DAA4B,EAAC,IAAI,CAAClB,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAACD,IAAI,EAAEe,OAAO,CAAC;MAEjG,IAAI,CAACV,OAAO,GAAG,IAAI;IACvB,CAAC,CAAC;EACN;EAEA,MAAae,eAAeA,CAACC,QAAgB,EAAkC;IAC3E,OAAO,CAAC,IAAI,CAAChB,OAAO,EAAE;MAClB,MAAM,IAAAiB,iBAAK,EAAC,GAAG,CAAC;IACpB;IACA,MAAMC,QAAQ,GAAG,MAAM,IAAAC,kBAAK,EAAC,qBAAqB,IAAI,CAACxB,IAAI,WAAWqB,QAAQ,EAAE,EAAE;MAC9EI,MAAM,EAAE,KAAK;MACbC,KAAK,EAAE,IAAI,CAACpB;IAChB,CAAC,CAAC;IACF,IAAIiB,QAAQ,CAACI,MAAM,KAAK,GAAG,EAAE;MACzB,MAAM,IAAIC,kCAAgB,CAAC,eAAeP,QAAQ,oCAAoC,IAAI,CAACrB,IAAI,EAAE,CAAC;IACtG;IACA,OAAOuB,QAAQ,CAACM,IAAI;EACxB;AACJ;AAACC,OAAA,CAAAhC,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -22,16 +22,7 @@ var _BuildServerPublishedEngineController = require("./ResourcesControllers/Buil
22
22
  var _BuildServerCandyWidgetController = require("./ResourcesControllers/BuildServerCandyWidgetController");
23
23
  async function runBuildServer(context, options, allFarmConfig) {
24
24
  (0, _TypingUtils.ensureArrayIsNotEmpty)(allFarmConfig);
25
- let engineDirectory = "";
26
- for (const conf of allFarmConfig) {
27
- if (conf.engineDirectory != undefined) {
28
- engineDirectory = conf.engineDirectory;
29
- break;
30
- }
31
- }
32
- if (engineDirectory === "") {
33
- throw Error("All Engine directory is empty");
34
- }
25
+ const engineDirectory = resolveEngineDirectory(allFarmConfig);
35
26
  const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;
36
27
  const formTestingHelpersWebServer = new _ExpressServerWrapper.ExpressServerWrapper(9010, undefined, context.logger, "Forms helpers");
37
28
  formTestingHelpersWebServer.registerSigletonController(new _FormsHelperController.FormsHelperController({
@@ -41,10 +32,10 @@ async function runBuildServer(context, options, allFarmConfig) {
41
32
  if (!options.disableClientOverride) {
42
33
  webServer.registerSigletonController(new _BuildLogsWebsocketController.BuildLogsWebsocketController());
43
34
  }
44
- const buildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, false, engineDirectory, options.buildDebugOnly, options.nightly);
45
35
  const buildServerCandyWidgetController = new _BuildServerCandyWidgetController.BuildServerCandyWidgetController(engineDirectory, options.buildDebugOnly, {
46
36
  frontEndDevMode: options.developmentMode
47
37
  });
38
+ const buildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, false, engineDirectory, options.buildDebugOnly, options.nightly);
48
39
  webServer.registerSigletonController(buildServerCandyWidgetController);
49
40
  webServer.registerSigletonController(buildFormsController);
50
41
  webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildFormsController));
@@ -63,19 +54,8 @@ async function runBuildServer(context, options, allFarmConfig) {
63
54
  await formTestingHelpersWebServer.stop();
64
55
  }
65
56
  async function runDevBuildServer(context, options, allFarmConfig) {
66
- if (allFarmConfig[0] == undefined) {
67
- throw Error("Config can't be length 0");
68
- }
69
- let engineDirectory = "";
70
- for (const conf of allFarmConfig) {
71
- if (conf.engineDirectory != undefined) {
72
- engineDirectory = conf.engineDirectory;
73
- break;
74
- }
75
- }
76
- if (engineDirectory === "") {
77
- throw Error("All Engine directory is empty");
78
- }
57
+ (0, _TypingUtils.ensureArrayIsNotEmpty)(allFarmConfig);
58
+ const engineDirectory = resolveEngineDirectory(allFarmConfig);
79
59
  const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;
80
60
  const formTestingHelpersWebServer = new _ExpressServerWrapper.ExpressServerWrapper(9010, undefined, context.logger, "Forms helpers");
81
61
  formTestingHelpersWebServer.registerSigletonController(new _FormsHelperController.FormsHelperController({
@@ -85,17 +65,16 @@ async function runDevBuildServer(context, options, allFarmConfig) {
85
65
  if (!options.disableClientOverride) {
86
66
  webServer.registerSigletonController(new _BuildLogsWebsocketController.BuildLogsWebsocketController());
87
67
  }
88
- const buildServerBuildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, true, engineDirectory, options.buildDebugOnly);
89
68
  const buildServerCandyWidgetController = new _BuildServerCandyWidgetController.BuildServerCandyWidgetController(engineDirectory, options.buildDebugOnly, {
90
69
  frontEndDevMode: options.developmentMode
91
70
  });
71
+ const buildServerBuildFormsController = new _BuildServerBuildFormsController.BuildServerBuildFormsController(allFarmConfig, candyModulesDirectory, true, engineDirectory, options.buildDebugOnly);
92
72
  webServer.registerSigletonController(buildServerCandyWidgetController);
93
73
  webServer.registerSigletonController(buildServerBuildFormsController);
94
74
  webServer.registerSigletonController(new _BuildServerBackendResourcesController.BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController));
95
75
  webServer.registerSigletonController(new _ExtractTextsFromSugarController.ExtractTextsFromSugarController(allFarmConfig));
96
76
  webServer.registerSigletonController(new _BuildServerFormInfoController.BuildServerFormInfoController(allFarmConfig, true, false));
97
77
  webServer.registerSigletonController(new _BuildServerPrebuiltResourcesController.BuildServerPrebuiltResourcesController());
98
- webServer.registerSigletonController(new _BuildServerPublishedEngineController.BuildServerPublishedEngineController(candyModulesDirectory));
99
78
  webServer.registerSigletonController(new _BuildServerLocalSourcesEngineController.BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly));
100
79
  webServer.registerSigletonController(new _BuildServerClientJsController.BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {
101
80
  frontEndDevMode: options.developmentMode
@@ -107,4 +86,12 @@ async function runDevBuildServer(context, options, allFarmConfig) {
107
86
  await webServer.stop();
108
87
  await formTestingHelpersWebServer.stop();
109
88
  }
89
+ const resolveEngineDirectory = configs => {
90
+ var _configs$find;
91
+ const engineDirectory = (_configs$find = configs.find(c => Boolean(c.engineDirectory))) === null || _configs$find === void 0 ? void 0 : _configs$find.engineDirectory;
92
+ if (!engineDirectory) {
93
+ throw Error("All Engine directory is empty");
94
+ }
95
+ return engineDirectory;
96
+ };
110
97
  //# sourceMappingURL=RunBuildServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunBuildServer.js","names":["_TypingUtils","require","_ExpressServerWrapper","_FormsHelperController","_ExtractTextsFromSugarController","_BuildLogsWebsocketController","_BuildServerBackendResourcesController","_BuildServerBackendResourcesUpdatesController","_BuildServerBuildFormsController","_BuildServerClientJsController","_BuildServerClientJsFromResourcesController","_BuildServerFormInfoController","_BuildServerLocalSourcesEngineController","_BuildServerPrebuiltResourcesController","_BuildServerPublishedEngineController","_BuildServerCandyWidgetController","runBuildServer","context","options","allFarmConfig","ensureArrayIsNotEmpty","engineDirectory","conf","undefined","Error","candyModulesDirectory","formTestingHelpersWebServer","ExpressServerWrapper","logger","registerSigletonController","FormsHelperController","frontEndDevMode","developmentMode","webServer","disableClientOverride","BuildLogsWebsocketController","buildFormsController","BuildServerBuildFormsController","buildDebugOnly","nightly","buildServerCandyWidgetController","BuildServerCandyWidgetController","BuildServerBackendResourcesController","ExtractTextsFromSugarController","BuildServerFormInfoController","BuildServerPrebuiltResourcesController","BuildServerPublishedEngineController","BuildServerClientJsFromResourcesController","BuildServerBackendResourcesUpdatesController","start","waitForExit","stop","runDevBuildServer","buildServerBuildFormsController","BuildServerLocalSourcesEngineController","BuildServerClientJsController"],"sources":["../../../../../src/CLICommands/BuildServer/RunBuildServer.ts"],"sourcesContent":["import { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { ensureArrayIsNotEmpty } from \"../../../../Common/TypingUtils\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { ExpressServerWrapper } from \"../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper\";\nimport { FormsHelperController } from \"../FormsHelper/FormsHelperController\";\nimport { ExtractTextsFromSugarController } from \"../SugarExtractor/ExtractTextsFromSugarController\";\n\nimport { BuildLogsWebsocketController } from \"./BuildLogsWebsocketController\";\nimport { BuildServerOptions, DevBuildServerOptions } from \"./BuildServerServerOptions\";\nimport { BuildServerBackendResourcesController } from \"./ResourcesControllers/BuildServerBackendResourcesController\";\nimport { BuildServerBackendResourcesUpdatesController } from \"./ResourcesControllers/BuildServerBackendResourcesUpdatesController\";\nimport { BuildServerBuildFormsController } from \"./ResourcesControllers/BuildServerBuildFormsController\";\nimport { BuildServerClientJsController } from \"./ResourcesControllers/BuildServerClientJsController\";\nimport { BuildServerClientJsFromResourcesController } from \"./ResourcesControllers/BuildServerClientJsFromResourcesController\";\nimport { BuildServerFormInfoController } from \"./ResourcesControllers/BuildServerFormInfoController\";\nimport { BuildServerLocalSourcesEngineController } from \"./ResourcesControllers/BuildServerLocalSourcesEngineController\";\nimport { BuildServerPrebuiltResourcesController } from \"./ResourcesControllers/BuildServerPrebuiltResourcesController\";\nimport { BuildServerPublishedEngineController } from \"./ResourcesControllers/BuildServerPublishedEngineController\";\nimport { BuildServerCandyWidgetController } from \"./ResourcesControllers/BuildServerCandyWidgetController\";\n\nexport async function runBuildServer(\n context: ConsoleApplicationContext,\n options: BuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n false,\n engineDirectory,\n options.buildDebugOnly,\n options.nightly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildFormsController)\n );\n\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, false, options.nightly));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerClientJsFromResourcesController(options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nexport async function runDevBuildServer(\n context: ConsoleApplicationContext,\n options: DevBuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n if (allFarmConfig[0] == undefined) {\n throw Error(\"Config can't be length 0\");\n }\n\n let engineDirectory = \"\";\n for (const conf of allFarmConfig) {\n if (conf.engineDirectory != undefined) {\n engineDirectory = conf.engineDirectory;\n break;\n }\n }\n if (engineDirectory === \"\") {\n throw Error(\"All Engine directory is empty\");\n }\n\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n\n const buildServerBuildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n true,\n engineDirectory,\n options.buildDebugOnly\n );\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildServerBuildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, true, false));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly)\n );\n\n webServer.registerSigletonController(\n new BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,gCAAA,GAAAH,OAAA;AAEA,IAAAI,6BAAA,GAAAJ,OAAA;AAEA,IAAAK,sCAAA,GAAAL,OAAA;AACA,IAAAM,6CAAA,GAAAN,OAAA;AACA,IAAAO,gCAAA,GAAAP,OAAA;AACA,IAAAQ,8BAAA,GAAAR,OAAA;AACA,IAAAS,2CAAA,GAAAT,OAAA;AACA,IAAAU,8BAAA,GAAAV,OAAA;AACA,IAAAW,wCAAA,GAAAX,OAAA;AACA,IAAAY,uCAAA,GAAAZ,OAAA;AACA,IAAAa,qCAAA,GAAAb,OAAA;AACA,IAAAc,iCAAA,GAAAd,OAAA;AAEO,eAAee,cAAcA,CAChCC,OAAkC,EAClCC,OAA2B,EAC3BC,aAA2B,EACd;EACb,IAAAC,kCAAqB,EAACD,aAAa,CAAC;EAEpC,IAAIE,eAAe,GAAG,EAAE;EACxB,KAAK,MAAMC,IAAI,IAAIH,aAAa,EAAE;IAC9B,IAAIG,IAAI,CAACD,eAAe,IAAIE,SAAS,EAAE;MACnCF,eAAe,GAAGC,IAAI,CAACD,eAAe;MACtC;IACJ;EACJ;EACA,IAAIA,eAAe,KAAK,EAAE,EAAE;IACxB,MAAMG,KAAK,CAAC,+BAA+B,CAAC;EAChD;EAEA,MAAMC,qBAAqB,GAAGN,aAAa,CAAC,CAAC,CAAC,CAACM,qBAAqB;EAEpE,MAAMC,2BAA2B,GAAG,IAAIC,0CAAoB,CAAC,IAAI,EAAEJ,SAAS,EAAEN,OAAO,CAACW,MAAM,EAAE,eAAe,CAAC;EAC9GF,2BAA2B,CAACG,0BAA0B,CAClD,IAAIC,4CAAqB,CAAC;IAAEC,eAAe,EAAEb,OAAO,CAACc;EAAgB,CAAC,CAC1E,CAAC;EAED,MAAMC,SAAS,GAAG,IAAIN,0CAAoB,CAAC,IAAI,EAAE,IAAI,EAAEV,OAAO,CAACW,MAAM,CAAC;EACtE,IAAI,CAACV,OAAO,CAACgB,qBAAqB,EAAE;IAChCD,SAAS,CAACJ,0BAA0B,CAAC,IAAIM,0DAA4B,CAAC,CAAC,CAAC;EAC5E;EACA,MAAMC,oBAAoB,GAAG,IAAIC,gEAA+B,CAC5DlB,aAAa,EACbM,qBAAqB,EACrB,KAAK,EACLJ,eAAe,EACfH,OAAO,CAACoB,cAAc,EACtBpB,OAAO,CAACqB,OACZ,CAAC;EACD,MAAMC,gCAAgC,GAAG,IAAIC,kEAAgC,CACzEpB,eAAe,EACfH,OAAO,CAACoB,cAAc,EACtB;IACIP,eAAe,EAAEb,OAAO,CAACc;EAC7B,CACJ,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAACW,gCAAgC,CAAC;EACtEP,SAAS,CAACJ,0BAA0B,CAACO,oBAAoB,CAAC;EAC1DH,SAAS,CAACJ,0BAA0B,CAChC,IAAIa,4EAAqC,CAACvB,aAAa,EAAEiB,oBAAoB,CACjF,CAAC;EAEDH,SAAS,CAACJ,0BAA0B,CAAC,IAAIc,gEAA+B,CAACxB,aAAa,CAAC,CAAC;EAExFc,SAAS,CAACJ,0BAA0B,CAAC,IAAIe,4DAA6B,CAACzB,aAAa,EAAE,KAAK,EAAED,OAAO,CAACqB,OAAO,CAAC,CAAC;EAE9GN,SAAS,CAACJ,0BAA0B,CAAC,IAAIgB,8EAAsC,CAAC,CAAC,CAAC;EAClFZ,SAAS,CAACJ,0BAA0B,CAAC,IAAIiB,0EAAoC,CAACrB,qBAAqB,CAAC,CAAC;EACrGQ,SAAS,CAACJ,0BAA0B,CAChC,IAAIkB,sFAA0C,CAAC7B,OAAO,CAACgB,qBAAqB,EAAE;IAC1EH,eAAe,EAAEb,OAAO,CAACc;EAC7B,CAAC,CACL,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAAC,IAAImB,0FAA4C,CAAC7B,aAAa,CAAC,CAAC;EACrG,MAAMO,2BAA2B,CAACuB,KAAK,CAAC,CAAC;EACzC,MAAMhB,SAAS,CAACgB,KAAK,CAAC,CAAC;EACvB,MAAMhC,OAAO,CAACiC,WAAW,CAAC,CAAC;EAC3B,MAAMjB,SAAS,CAACkB,IAAI,CAAC,CAAC;EACtB,MAAMzB,2BAA2B,CAACyB,IAAI,CAAC,CAAC;AAC5C;AAEO,eAAeC,iBAAiBA,CACnCnC,OAAkC,EAClCC,OAA8B,EAC9BC,aAA2B,EACd;EACb,IAAIA,aAAa,CAAC,CAAC,CAAC,IAAII,SAAS,EAAE;IAC/B,MAAMC,KAAK,CAAC,0BAA0B,CAAC;EAC3C;EAEA,IAAIH,eAAe,GAAG,EAAE;EACxB,KAAK,MAAMC,IAAI,IAAIH,aAAa,EAAE;IAC9B,IAAIG,IAAI,CAACD,eAAe,IAAIE,SAAS,EAAE;MACnCF,eAAe,GAAGC,IAAI,CAACD,eAAe;MACtC;IACJ;EACJ;EACA,IAAIA,eAAe,KAAK,EAAE,EAAE;IACxB,MAAMG,KAAK,CAAC,+BAA+B,CAAC;EAChD;EAEA,MAAMC,qBAAqB,GAAGN,aAAa,CAAC,CAAC,CAAC,CAACM,qBAAqB;EAEpE,MAAMC,2BAA2B,GAAG,IAAIC,0CAAoB,CAAC,IAAI,EAAEJ,SAAS,EAAEN,OAAO,CAACW,MAAM,EAAE,eAAe,CAAC;EAC9GF,2BAA2B,CAACG,0BAA0B,CAClD,IAAIC,4CAAqB,CAAC;IAAEC,eAAe,EAAEb,OAAO,CAACc;EAAgB,CAAC,CAC1E,CAAC;EAED,MAAMC,SAAS,GAAG,IAAIN,0CAAoB,CAAC,IAAI,EAAE,IAAI,EAAEV,OAAO,CAACW,MAAM,CAAC;EACtE,IAAI,CAACV,OAAO,CAACgB,qBAAqB,EAAE;IAChCD,SAAS,CAACJ,0BAA0B,CAAC,IAAIM,0DAA4B,CAAC,CAAC,CAAC;EAC5E;EAEA,MAAMkB,+BAA+B,GAAG,IAAIhB,gEAA+B,CACvElB,aAAa,EACbM,qBAAqB,EACrB,IAAI,EACJJ,eAAe,EACfH,OAAO,CAACoB,cACZ,CAAC;EACD,MAAME,gCAAgC,GAAG,IAAIC,kEAAgC,CACzEpB,eAAe,EACfH,OAAO,CAACoB,cAAc,EACtB;IACIP,eAAe,EAAEb,OAAO,CAACc;EAC7B,CACJ,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAACW,gCAAgC,CAAC;EACtEP,SAAS,CAACJ,0BAA0B,CAACwB,+BAA+B,CAAC;EACrEpB,SAAS,CAACJ,0BAA0B,CAChC,IAAIa,4EAAqC,CAACvB,aAAa,EAAEkC,+BAA+B,CAC5F,CAAC;EACDpB,SAAS,CAACJ,0BAA0B,CAAC,IAAIc,gEAA+B,CAACxB,aAAa,CAAC,CAAC;EACxFc,SAAS,CAACJ,0BAA0B,CAAC,IAAIe,4DAA6B,CAACzB,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;EAEnGc,SAAS,CAACJ,0BAA0B,CAAC,IAAIgB,8EAAsC,CAAC,CAAC,CAAC;EAClFZ,SAAS,CAACJ,0BAA0B,CAAC,IAAIiB,0EAAoC,CAACrB,qBAAqB,CAAC,CAAC;EACrGQ,SAAS,CAACJ,0BAA0B,CAChC,IAAIyB,gFAAuC,CAACjC,eAAe,EAAEH,OAAO,CAACoB,cAAc,CACvF,CAAC;EAEDL,SAAS,CAACJ,0BAA0B,CAChC,IAAI0B,4DAA6B,CAAClC,eAAe,EAAEH,OAAO,CAACoB,cAAc,EAAEpB,OAAO,CAACgB,qBAAqB,EAAE;IACtGH,eAAe,EAAEb,OAAO,CAACc;EAC7B,CAAC,CACL,CAAC;EACDC,SAAS,CAACJ,0BAA0B,CAAC,IAAImB,0FAA4C,CAAC7B,aAAa,CAAC,CAAC;EACrG,MAAMO,2BAA2B,CAACuB,KAAK,CAAC,CAAC;EACzC,MAAMhB,SAAS,CAACgB,KAAK,CAAC,CAAC;EACvB,MAAMhC,OAAO,CAACiC,WAAW,CAAC,CAAC;EAC3B,MAAMjB,SAAS,CAACkB,IAAI,CAAC,CAAC;EACtB,MAAMzB,2BAA2B,CAACyB,IAAI,CAAC,CAAC;AAC5C","ignoreList":[]}
1
+ {"version":3,"file":"RunBuildServer.js","names":["_TypingUtils","require","_ExpressServerWrapper","_FormsHelperController","_ExtractTextsFromSugarController","_BuildLogsWebsocketController","_BuildServerBackendResourcesController","_BuildServerBackendResourcesUpdatesController","_BuildServerBuildFormsController","_BuildServerClientJsController","_BuildServerClientJsFromResourcesController","_BuildServerFormInfoController","_BuildServerLocalSourcesEngineController","_BuildServerPrebuiltResourcesController","_BuildServerPublishedEngineController","_BuildServerCandyWidgetController","runBuildServer","context","options","allFarmConfig","ensureArrayIsNotEmpty","engineDirectory","resolveEngineDirectory","candyModulesDirectory","formTestingHelpersWebServer","ExpressServerWrapper","undefined","logger","registerSigletonController","FormsHelperController","frontEndDevMode","developmentMode","webServer","disableClientOverride","BuildLogsWebsocketController","buildServerCandyWidgetController","BuildServerCandyWidgetController","buildDebugOnly","buildFormsController","BuildServerBuildFormsController","nightly","BuildServerBackendResourcesController","ExtractTextsFromSugarController","BuildServerFormInfoController","BuildServerPrebuiltResourcesController","BuildServerPublishedEngineController","BuildServerClientJsFromResourcesController","BuildServerBackendResourcesUpdatesController","start","waitForExit","stop","runDevBuildServer","buildServerBuildFormsController","BuildServerLocalSourcesEngineController","BuildServerClientJsController","configs","_configs$find","find","c","Boolean","Error"],"sources":["../../../../../src/CLICommands/BuildServer/RunBuildServer.ts"],"sourcesContent":["import { FarmConfig } from \"Tools/src/CandyCLI\";\n\nimport { ensureArrayIsNotEmpty } from \"../../../../Common/TypingUtils\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { ExpressServerWrapper } from \"../../Commons/HttpServer/ExpressWrapper/ExpressServerWrapper\";\nimport { FormsHelperController } from \"../FormsHelper/FormsHelperController\";\nimport { ExtractTextsFromSugarController } from \"../SugarExtractor/ExtractTextsFromSugarController\";\n\nimport { BuildLogsWebsocketController } from \"./BuildLogsWebsocketController\";\nimport { BuildServerOptions, DevBuildServerOptions } from \"./BuildServerServerOptions\";\nimport { BuildServerBackendResourcesController } from \"./ResourcesControllers/BuildServerBackendResourcesController\";\nimport { BuildServerBackendResourcesUpdatesController } from \"./ResourcesControllers/BuildServerBackendResourcesUpdatesController\";\nimport { BuildServerBuildFormsController } from \"./ResourcesControllers/BuildServerBuildFormsController\";\nimport { BuildServerClientJsController } from \"./ResourcesControllers/BuildServerClientJsController\";\nimport { BuildServerClientJsFromResourcesController } from \"./ResourcesControllers/BuildServerClientJsFromResourcesController\";\nimport { BuildServerFormInfoController } from \"./ResourcesControllers/BuildServerFormInfoController\";\nimport { BuildServerLocalSourcesEngineController } from \"./ResourcesControllers/BuildServerLocalSourcesEngineController\";\nimport { BuildServerPrebuiltResourcesController } from \"./ResourcesControllers/BuildServerPrebuiltResourcesController\";\nimport { BuildServerPublishedEngineController } from \"./ResourcesControllers/BuildServerPublishedEngineController\";\nimport { BuildServerCandyWidgetController } from \"./ResourcesControllers/BuildServerCandyWidgetController\";\n\nexport async function runBuildServer(\n context: ConsoleApplicationContext,\n options: BuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n const engineDirectory = resolveEngineDirectory(allFarmConfig);\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n const buildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n false,\n engineDirectory,\n options.buildDebugOnly,\n options.nightly\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildFormsController)\n );\n\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, false, options.nightly));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(new BuildServerPublishedEngineController(candyModulesDirectory));\n webServer.registerSigletonController(\n new BuildServerClientJsFromResourcesController(options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nexport async function runDevBuildServer(\n context: ConsoleApplicationContext,\n options: DevBuildServerOptions,\n allFarmConfig: FarmConfig[]\n): Promise<void> {\n ensureArrayIsNotEmpty(allFarmConfig);\n const engineDirectory = resolveEngineDirectory(allFarmConfig);\n const candyModulesDirectory = allFarmConfig[0].candyModulesDirectory;\n\n const formTestingHelpersWebServer = new ExpressServerWrapper(9010, undefined, context.logger, \"Forms helpers\");\n formTestingHelpersWebServer.registerSigletonController(\n new FormsHelperController({ frontEndDevMode: options.developmentMode })\n );\n\n const webServer = new ExpressServerWrapper(9000, 9043, context.logger);\n if (!options.disableClientOverride) {\n webServer.registerSigletonController(new BuildLogsWebsocketController());\n }\n const buildServerCandyWidgetController = new BuildServerCandyWidgetController(\n engineDirectory,\n options.buildDebugOnly,\n {\n frontEndDevMode: options.developmentMode,\n }\n );\n const buildServerBuildFormsController = new BuildServerBuildFormsController(\n allFarmConfig,\n candyModulesDirectory,\n true,\n engineDirectory,\n options.buildDebugOnly\n );\n webServer.registerSigletonController(buildServerCandyWidgetController);\n webServer.registerSigletonController(buildServerBuildFormsController);\n webServer.registerSigletonController(\n new BuildServerBackendResourcesController(allFarmConfig, buildServerBuildFormsController)\n );\n webServer.registerSigletonController(new ExtractTextsFromSugarController(allFarmConfig));\n webServer.registerSigletonController(new BuildServerFormInfoController(allFarmConfig, true, false));\n\n webServer.registerSigletonController(new BuildServerPrebuiltResourcesController());\n webServer.registerSigletonController(\n new BuildServerLocalSourcesEngineController(engineDirectory, options.buildDebugOnly)\n );\n\n webServer.registerSigletonController(\n new BuildServerClientJsController(engineDirectory, options.buildDebugOnly, options.disableClientOverride, {\n frontEndDevMode: options.developmentMode,\n })\n );\n webServer.registerSigletonController(new BuildServerBackendResourcesUpdatesController(allFarmConfig));\n await formTestingHelpersWebServer.start();\n await webServer.start();\n await context.waitForExit();\n await webServer.stop();\n await formTestingHelpersWebServer.stop();\n}\n\nconst resolveEngineDirectory = (configs: FarmConfig[]): string => {\n const engineDirectory = configs.find(c => Boolean(c.engineDirectory))?.engineDirectory;\n if (!engineDirectory) {\n throw Error(\"All Engine directory is empty\");\n }\n return engineDirectory;\n};\n"],"mappings":"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","ignoreList":[]}