@yamato-daiwa/automation 0.8.0-alpha.0 → 0.8.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 (3) hide show
  1. package/EntryPoint.js +1077 -477
  2. package/README.md +6 -3
  3. package/package.json +13 -11
package/EntryPoint.js CHANGED
@@ -34,7 +34,7 @@ function revisionHash(data) {
34
34
  \***********************/
35
35
  /***/ ((module) => {
36
36
 
37
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.8.0-alpha.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=20.0.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@stylistic/eslint-plugin":"5.2.3","@typescript-eslint/eslint-plugin":"8.39.0","@typescript-eslint/parser":"8.39.0","@vue/compiler-sfc":"3.5.18","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.0-rc.1","@yamato-daiwa/es-extensions-nodejs":"1.8.0-rc.1","@yamato-daiwa/style_guides":"0.9.0","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.0","dotenv":"17.2.1","eslint":"9.33.0","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.21.3","eslint-plugin-react":"7.37.5","eslint-plugin-vue":"9.33.0","eslint-plugin-vue-pug":"0.6.2","gulp":"4.0.2","gulp-data":"1.3.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"10.0.0","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","htmlnano":"2.1.2","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.5","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.0","probe-image-size":"7.2.3","pug-lint":"2.7.0","pug3-ast-loader":"0.0.0","puppeteer":"24.10.0","require-from-string":"2.0.2","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"4.0.0","stylus":"0.63.0","stylus-loader":"8.1.1","ts-loader":"9.5.2","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.0.5","webpack":"5.101.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.1"},"devDependencies":{"@types/browser-sync":"2.29.0","@types/cssnano":"5.0.0","@types/gulp":"4.0.17","@types/gulp-if":"3.0.5","@types/gulp-imagemin":"7.0.3","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.37","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.38","@types/gulp-stylus":"2.7.8","@types/js-beautify":"1.14.3","@types/node":"22.15.30","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.5","@types/pug":"2.0.10","@types/require-from-string":"1.2.3","@types/vnu-jar":"17.11.2","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.9.2","webpack-cli":"6.0.1"},"scripts":{"Incremental Development Building":"webpack --mode development","Production Building":"webpack --mode production","Linting":"eslint Source"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"homepage":"https://automation.yamato-daiwa.com/","funding":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation?sponsor=1","bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
37
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.8.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=20.0.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@stylistic/eslint-plugin":"5.4.0","@typescript-eslint/eslint-plugin":"8.46.1","@typescript-eslint/parser":"8.46.1","@vue/compiler-sfc":"3.5.18","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.1","@yamato-daiwa/es-extensions-nodejs":"1.8.1","@yamato-daiwa/style_guides":"0.10.1","@yamato-daiwa/universal-reactive-webpack-loader":"0.0.0","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.0","dotenv":"17.2.1","eslint":"9.38.0","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.23.1","eslint-plugin-react":"7.37.5","eslint-plugin-vue":"9.33.0","eslint-plugin-vue-pug":"0.6.2","gulp":"4.0.2","gulp-data":"1.3.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"10.0.0","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","htmlnano":"2.1.2","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.5","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.0","postcss-loader":"8.2.0","postcss-normalize-stylus-compatible-container-query-syntax":"1.0.0","probe-image-size":"7.2.3","pug-lint":"2.7.0","puppeteer":"24.10.0","require-from-string":"2.0.2","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"4.0.0","stylus":"0.63.0","stylus-loader":"8.1.1","ts-loader":"9.5.2","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.0.5","webpack":"5.101.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.1"},"devDependencies":{"@types/browser-sync":"2.29.0","@types/cssnano":"5.0.0","@types/gulp":"4.0.17","@types/gulp-if":"3.0.5","@types/gulp-imagemin":"7.0.3","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.37","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.38","@types/gulp-stylus":"2.7.8","@types/js-beautify":"1.14.3","@types/node":"22.15.30","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.5","@types/pug":"2.0.10","@types/require-from-string":"1.2.3","@types/vnu-jar":"17.11.2","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.9.3","webpack-cli":"6.0.1"},"scripts":{"Incremental Development Building":"webpack --mode development","Production Building":"webpack --mode production","Linting":"eslint Source"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"homepage":"https://automation.yamato-daiwa.com/","funding":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation?sponsor=1","bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
38
38
 
39
39
  /***/ }),
40
40
 
@@ -157,7 +157,7 @@ class EntryPoint {
157
157
  }
158
158
  catch (error) {
159
159
  if (error instanceof es_extensions_nodejs_1.FileNotFoundError) {
160
- es_extensions_1.Logger.throwErrorAndLog({
160
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
161
161
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
162
162
  customMessage: "The configuration file for \"Yamato Daiwa Automation\" utility not found at path " +
163
163
  `"${rawConfigFileAbsolutePath}". ` +
@@ -171,7 +171,7 @@ class EntryPoint {
171
171
  innerError: error
172
172
  });
173
173
  }
174
- es_extensions_1.Logger.throwErrorAndLog({
174
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
175
175
  errorInstance: new es_extensions_1.FileReadingFailedError({
176
176
  customMessage: "The configuration file for \"Yamato Daiwa Automation\" utility not found at path " +
177
177
  `"${rawConfigFileAbsolutePath}". ` +
@@ -207,6 +207,115 @@ class EntryPoint {
207
207
  exports["default"] = EntryPoint;
208
208
 
209
209
 
210
+ /***/ }),
211
+
212
+ /***/ "./Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory.ts":
213
+ /*!*************************************************************************!*\
214
+ !*** ./Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory.ts ***!
215
+ \*************************************************************************/
216
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
217
+
218
+
219
+ var __importDefault = (this && this.__importDefault) || function (mod) {
220
+ return (mod && mod.__esModule) ? mod : { "default": mod };
221
+ };
222
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
223
+ exports["default"] = isSubdirectory;
224
+ const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
225
+ function isSubdirectory({ whichPath, ofWhichPath }) {
226
+ const relativePath = path_1.default.relative(ofWhichPath, whichPath);
227
+ return relativePath.length > 0 && !relativePath.startsWith("..") && !path_1.default.isAbsolute(relativePath);
228
+ }
229
+
230
+
231
+ /***/ }),
232
+
233
+ /***/ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts":
234
+ /*!*************************************************************!*\
235
+ !*** ./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts ***!
236
+ \*************************************************************/
237
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
238
+
239
+
240
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
241
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
242
+ class Stopwatch {
243
+ activationUnixTimestamp__milliseconds = 0;
244
+ deactivationUnixTimestamp__milliseconds = 0;
245
+ startOrRestart() {
246
+ if (this.activationUnixTimestamp__milliseconds === 0) {
247
+ this.activationUnixTimestamp__milliseconds = Date.now();
248
+ }
249
+ return this;
250
+ }
251
+ stop() {
252
+ this.deactivationUnixTimestamp__milliseconds = Date.now();
253
+ const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
254
+ return {
255
+ seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
256
+ milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
257
+ };
258
+ }
259
+ reset() {
260
+ this.activationUnixTimestamp__milliseconds = 0;
261
+ this.deactivationUnixTimestamp__milliseconds = 0;
262
+ }
263
+ }
264
+ exports["default"] = Stopwatch;
265
+
266
+
267
+ /***/ }),
268
+
269
+ /***/ "./Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension.ts":
270
+ /*!*******************************************************************************************!*\
271
+ !*** ./Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension.ts ***!
272
+ \*******************************************************************************************/
273
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
274
+
275
+
276
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
277
+ exports["default"] = addPenultimateFileNameExtension;
278
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
279
+ function addPenultimateFileNameExtension({ targetPath, targetFileNamePenultimateExtensionWithOrWithoutLeadingDot, mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist }) {
280
+ const targetFileNamePenultimateExtensionWithoutLeadingDot = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
281
+ targetString: targetFileNamePenultimateExtensionWithOrWithoutLeadingDot,
282
+ targetCharacter: ".",
283
+ fromFirstPosition: true
284
+ });
285
+ if (!targetPath.includes(".")) {
286
+ const { updatedString: targetPathWihtoutFragment, extractedMatching: targetPathFragmentWithLeadingHash } = (0, es_extensions_1.extractMatchingsWithRegularExpression)(targetPath, /#.+$/u, { mustExpectOneOrZeroMatchings: true });
287
+ return mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist ?
288
+ `${targetPathWihtoutFragment}.${targetFileNamePenultimateExtensionWithoutLeadingDot}` +
289
+ targetPathFragmentWithLeadingHash :
290
+ targetPath;
291
+ }
292
+ const pathDotSeparatedSegments = (0, es_extensions_1.splitString)(targetPath, ".");
293
+ return (0, es_extensions_1.addElementsToArray)({
294
+ targetArray: pathDotSeparatedSegments,
295
+ newElements: [targetFileNamePenultimateExtensionWithoutLeadingDot],
296
+ mutably: true,
297
+ toPosition__numerationFrom1: pathDotSeparatedSegments.length
298
+ }).join(".");
299
+ }
300
+
301
+
302
+ /***/ }),
303
+
304
+ /***/ "./Incubators/@yamato-daiwa/es-extensions/Strings/replaceLinesSeparators.ts":
305
+ /*!**********************************************************************************!*\
306
+ !*** ./Incubators/@yamato-daiwa/es-extensions/Strings/replaceLinesSeparators.ts ***!
307
+ \**********************************************************************************/
308
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
309
+
310
+
311
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
312
+ exports["default"] = replaceLinesSeparators;
313
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
314
+ function replaceLinesSeparators(targetString, lineSeparators) {
315
+ return (0, es_extensions_1.explodeStringToLines)({ targetString, mustIgnoreCarriageReturn: false }).join(lineSeparators);
316
+ }
317
+
318
+
210
319
  /***/ }),
211
320
 
212
321
  /***/ "./ProjectBuilder.ts":
@@ -240,6 +349,8 @@ const AudiosProcessor_1 = __importDefault(__webpack_require__(/*! @AudiosProcess
240
349
  const PlainCopier_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopier */ "./ProjectBuilding/PlainCopying/PlainCopier.ts"));
241
350
  const LocalDevelopmentServerOrchestrator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Subtasks/LocalDevelopmentServerOrchestration/LocalDevelopmentServerOrchestrator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/LocalDevelopmentServerOrchestration/LocalDevelopmentServerOrchestrator.ts"));
242
351
  const BrowserLiveReloader_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloader */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloader.ts"));
352
+ const DockerComposeLauncher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/DockerCompose/DockerComposeLauncher */ "./ProjectBuilding/DockerCompose/DockerComposeLauncher.ts"));
353
+ const ElectronCoordinator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Subtasks/ElectronCoordinator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/ElectronCoordinator.ts"));
243
354
  const OutputPackageJSON_Generator_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator.ts"));
244
355
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
245
356
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
@@ -250,7 +361,7 @@ class ProjectBuilder {
250
361
  static buildProject({ consumingProjectRootDirectoryAbsolutePath, projectBuildingConfig__fromConsole, rawConfigFromFile }) {
251
362
  const rawDataProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawConfigFromFile, ProjectBuildingConfig__FromFile__RawValid_1.default.propertiesSpecification, { processingApproach: es_extensions_1.RawObjectDataProcessor.ProcessingApproaches.assemblingOfNewObject });
252
363
  if (rawDataProcessingResult.isRawDataInvalid) {
253
- es_extensions_1.Logger.throwErrorAndLog({
364
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
254
365
  errorInstance: new es_extensions_1.InvalidConfigError({
255
366
  mentionToConfig: "@yamato-daiwa/automation (project building)",
256
367
  messageSpecificPart: es_extensions_1.RawObjectDataProcessor.formatValidationErrorsList(rawDataProcessingResult.validationErrorsMessages)
@@ -292,7 +403,9 @@ class ProjectBuilder {
292
403
  OutputPackageJSON_Generator_1.default.generateIfMust(masterConfigRepresentative),
293
404
  gulp_1.default.parallel([
294
405
  FilesMasterWatcher_1.default.watchIfMust(masterConfigRepresentative),
295
- LocalDevelopmentServerOrchestrator_1.default.orchestrateIfMust(masterConfigRepresentative)
406
+ DockerComposeLauncher_1.default.launchIfMust(masterConfigRepresentative),
407
+ LocalDevelopmentServerOrchestrator_1.default.orchestrateIfMust(masterConfigRepresentative),
408
+ ElectronCoordinator_1.default.coordinateIfMust(masterConfigRepresentative)
296
409
  ])
297
410
  ])
298
411
  ]));
@@ -387,7 +500,7 @@ exports["default"] = AudiosProcessingRawSettingsNormalizer;
387
500
 
388
501
  Object.defineProperty(exports, "__esModule", ({ value: true }));
389
502
  exports["default"] = {
390
- supportedSourceFilesNamesExtensionsWithoutLeadingDots: ["mp3", "ogg", "wma", "wav", "flac"]
503
+ supportedSourceFilesNamesExtensionsWithoutLeadingDots: new Set(["mp3", "ogg", "wma", "wav", "flac"])
391
504
  };
392
505
 
393
506
 
@@ -545,7 +658,7 @@ class AudiosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
545
658
  super({
546
659
  projectBuildingMasterConfigRepresentative,
547
660
  associatedAssetsProcessingSettingsRepresentative: audiosProcessingSettingsRepresentative,
548
- taskTitleForLogging: "Audios processing",
661
+ taskTitleForLogging: "Audios Processing",
549
662
  waitingForSubsequentFilesWillSavedPeriod__seconds: audiosProcessingSettingsRepresentative.assetsProcessingCommonSettings.
550
663
  periodBetweenFileUpdatingAndRebuildingStarting__seconds
551
664
  });
@@ -560,7 +673,7 @@ class AudiosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
560
673
  return () => gulp_1.default.
561
674
  src((0, es_extensions_1.readonlyArrayToMutableOne)(sourceFilesAbsolutePaths)).
562
675
  pipe(super.handleErrorIfItWillOccur()).
563
- pipe(super.logProcessedFilesIfMust()).
676
+ pipe(super.logInputFilesIfMust()).
564
677
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
565
678
  onStreamStartedEventHandler: this.replacePlainVinylFileWithAssetVinylFile.bind(this)
566
679
  })).
@@ -570,6 +683,7 @@ class AudiosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
570
683
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
571
684
  onStreamStartedEventHandler: AudiosProcessor.postProcessFile
572
685
  })).
686
+ pipe(super.logOutputFilesIfMust()).
573
687
  pipe(gulp_1.default.dest((targetFileInFinalState) => AssetVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFileInFinalState)));
574
688
  }
575
689
  /* ━━━ Files watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -703,8 +817,8 @@ exports["default"] = FontsProcessingSettingsRawSettingsNormalizer;
703
817
 
704
818
  Object.defineProperty(exports, "__esModule", ({ value: true }));
705
819
  exports["default"] = {
706
- /* [ Theory ] There could be text licence file which must be copied. */
707
- supportedSourceFilesNamesExtensionsWithoutLeadingDots: ["ttf", "otf", "woff", "txt"]
820
+ /* [ Theory ] There could be a text license file that must be copied. */
821
+ supportedSourceFilesNamesExtensionsWithoutLeadingDots: new Set(["ttf", "otf", "woff", "txt"])
708
822
  };
709
823
 
710
824
 
@@ -862,7 +976,7 @@ class FontsProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
862
976
  super({
863
977
  projectBuildingMasterConfigRepresentative,
864
978
  associatedAssetsProcessingSettingsRepresentative: fontsProcessingSettingsRepresentative,
865
- taskTitleForLogging: "Fonts processing",
979
+ taskTitleForLogging: "Fonts Processing",
866
980
  waitingForSubsequentFilesWillSavedPeriod__seconds: fontsProcessingSettingsRepresentative.assetsProcessingCommonSettings.
867
981
  periodBetweenFileUpdatingAndRebuildingStarting__seconds
868
982
  });
@@ -877,7 +991,7 @@ class FontsProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
877
991
  return () => gulp_1.default.
878
992
  src((0, es_extensions_1.readonlyArrayToMutableOne)(sourceFilesAbsolutePaths)).
879
993
  pipe(super.handleErrorIfItWillOccur()).
880
- pipe(super.logProcessedFilesIfMust()).
994
+ pipe(super.logInputFilesIfMust()).
881
995
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
882
996
  onStreamStartedEventHandler: this.replacePlainVinylFileWithAssetVinylFile.bind(this)
883
997
  })).
@@ -887,6 +1001,7 @@ class FontsProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
887
1001
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
888
1002
  onStreamStartedEventHandler: FontsProcessor.postProcessFile
889
1003
  })).
1004
+ pipe(super.logOutputFilesIfMust()).
890
1005
  pipe(gulp_1.default.dest((targetFileInFinalState) => AssetVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFileInFinalState)));
891
1006
  }
892
1007
  /* ━━━ Files watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -1020,7 +1135,7 @@ exports["default"] = ImagesProcessingRawSettingsNormalizer;
1020
1135
 
1021
1136
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1022
1137
  exports["default"] = {
1023
- supportedSourceFilesNamesExtensionsWithoutLeadingDots: ["jpg", "jpeg", "png", "gif", "svg", "ico", "webp"]
1138
+ supportedSourceFilesNamesExtensionsWithoutLeadingDots: new Set(["jpg", "jpeg", "png", "gif", "svg", "ico", "webp"])
1024
1139
  };
1025
1140
 
1026
1141
 
@@ -1196,7 +1311,7 @@ class ImagesProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1196
1311
  return () => gulp_1.default.
1197
1312
  src((0, es_extensions_1.readonlyArrayToMutableOne)(sourceFilesAbsolutePaths)).
1198
1313
  pipe(super.handleErrorIfItWillOccur()).
1199
- pipe(super.logProcessedFilesIfMust()).
1314
+ pipe(super.logInputFilesIfMust()).
1200
1315
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
1201
1316
  onStreamStartedEventHandler: this.replacePlainVinylFileWithAssetVinylFile.bind(this)
1202
1317
  })).
@@ -1213,6 +1328,7 @@ class ImagesProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1213
1328
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
1214
1329
  onStreamStartedEventHandler: ImagesProcessor.postProcessFile
1215
1330
  })).
1331
+ pipe(super.logOutputFilesIfMust()).
1216
1332
  pipe(gulp_1.default.dest((targetFileInFinalState) => AssetVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFileInFinalState)));
1217
1333
  }
1218
1334
  /* ━━━ Files watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -1346,7 +1462,7 @@ exports["default"] = VideosProcessingRawSettingsNormalizer;
1346
1462
 
1347
1463
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1348
1464
  exports["default"] = {
1349
- supportedSourceFilesNamesExtensionsWithoutLeadingDots: ["avi", "mov", "mkv", "mp4", "avchd", "flw", "swf"]
1465
+ supportedSourceFilesNamesExtensionsWithoutLeadingDots: new Set(["avi", "mov", "mkv", "mp4", "avchd", "flw", "swf"])
1350
1466
  };
1351
1467
 
1352
1468
 
@@ -1504,7 +1620,7 @@ class VideosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1504
1620
  super({
1505
1621
  projectBuildingMasterConfigRepresentative,
1506
1622
  associatedAssetsProcessingSettingsRepresentative: videosProcessingConfigRepresentative,
1507
- taskTitleForLogging: "Videos processing",
1623
+ taskTitleForLogging: "Videos Processing",
1508
1624
  waitingForSubsequentFilesWillSavedPeriod__seconds: videosProcessingConfigRepresentative.assetsProcessingCommonSettings.
1509
1625
  periodBetweenFileUpdatingAndRebuildingStarting__seconds
1510
1626
  });
@@ -1519,7 +1635,7 @@ class VideosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1519
1635
  return () => gulp_1.default.
1520
1636
  src((0, es_extensions_1.readonlyArrayToMutableOne)(sourceFilesAbsolutePaths)).
1521
1637
  pipe(super.handleErrorIfItWillOccur()).
1522
- pipe(super.logProcessedFilesIfMust()).
1638
+ pipe(super.logInputFilesIfMust()).
1523
1639
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
1524
1640
  onStreamStartedEventHandler: this.replacePlainVinylFileWithAssetVinylFile.bind(this)
1525
1641
  })).
@@ -1529,6 +1645,7 @@ class VideosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1529
1645
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
1530
1646
  onStreamStartedEventHandler: VideosProcessor.postProcessFile
1531
1647
  })).
1648
+ pipe(super.logOutputFilesIfMust()).
1532
1649
  pipe(gulp_1.default.dest((targetFileInFinalState) => AssetVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFileInFinalState)));
1533
1650
  }
1534
1651
  /* ━━━ Files watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -1640,6 +1757,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1640
1757
  return (mod && mod.__esModule) ? mod : { "default": mod };
1641
1758
  };
1642
1759
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1760
+ /* ─── Shared state ───────────────────────────────────────────────────────────────────────────────────────────────── */
1761
+ const MarkupProcessingSharedState_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSharedState */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSharedState.ts"));
1643
1762
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
1644
1763
  const browser_sync_1 = __importDefault(__webpack_require__(/*! browser-sync */ "browser-sync"));
1645
1764
  const BrowserCoordinatorRelatedFilesWatcher_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserCoordinatorRelatedFilesWatcher */ "./ProjectBuilding/BrowserLiveReloading/BrowserCoordinatorRelatedFilesWatcher.ts"));
@@ -1650,8 +1769,10 @@ const BrowserLiveReloaderLocalization_english_1 = __importDefault(__webpack_requ
1650
1769
  class BrowserLiveReloader {
1651
1770
  static localization = BrowserLiveReloaderLocalization_english_1.default;
1652
1771
  static onURI_ChangedEventHandlers = [];
1772
+ static EXPERIMENTAL_LOGGING = false;
1653
1773
  browserLiveReloadingSettingsRepresentative;
1654
1774
  waitingForSubsequentFilesWillBeUpdatedCountdown;
1775
+ currentHTML_File__EXPERIMENTAL = null;
1655
1776
  static provideBrowserLiveReloadingIfMust(masterConfigRepresentative) {
1656
1777
  const browserLiveReloadingConfigRepresentative = masterConfigRepresentative.getBrowserLiveReloadingSettingsRepresentativeIfMustProvideBrowserLiveReloading();
1657
1778
  if ((0, es_extensions_1.isNull)(browserLiveReloadingConfigRepresentative)) {
@@ -1723,6 +1844,12 @@ class BrowserLiveReloader {
1723
1844
  }, (0, es_extensions_1.secondsToMilliseconds)(this.browserLiveReloadingSettingsRepresentative.periodBetweenFileUpdatingAndBrowserReloading__seconds));
1724
1845
  }
1725
1846
  onRequest(request, _response, letPass) {
1847
+ es_extensions_1.Logger.logWarning({
1848
+ badge: { customText: "Experimental" },
1849
+ title: "Local Server, Request:",
1850
+ description: request.url ?? "No URI",
1851
+ mustOutputIf: BrowserLiveReloader.EXPERIMENTAL_LOGGING
1852
+ });
1726
1853
  if ((0, es_extensions_1.isUndefined)(request.url)) {
1727
1854
  letPass();
1728
1855
  return;
@@ -1733,6 +1860,26 @@ class BrowserLiveReloader {
1733
1860
  this.browserLiveReloadingSettingsRepresentative.startingFileNameWithExtension
1734
1861
  ], { alwaysForwardSlashSeparators: true }) :
1735
1862
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([this.browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath, request.url], { alwaysForwardSlashSeparators: true });
1863
+ if ((0, es_extensions_1.extractLastExtensionOfFileName)({
1864
+ targetPath: targetHTML_FileAbsolutePath,
1865
+ withLeadingDot: false
1866
+ }) !== "html") {
1867
+ letPass();
1868
+ return;
1869
+ }
1870
+ es_extensions_1.Logger.logWarning({
1871
+ badge: { customText: "Experimental" },
1872
+ title: "Local Server, Target HTML File",
1873
+ description: targetHTML_FileAbsolutePath,
1874
+ mustOutputIf: BrowserLiveReloader.EXPERIMENTAL_LOGGING,
1875
+ additionalData: {
1876
+ hasPageChanged: this.currentHTML_File__EXPERIMENTAL !== targetHTML_FileAbsolutePath,
1877
+ relatedEntryPointsSourceFiles: Array.from(MarkupProcessingSharedState_1.default.entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap.entries()).
1878
+ filter(([, entryPointOutputFileAbsolutePath]) => targetHTML_FileAbsolutePath === entryPointOutputFileAbsolutePath).
1879
+ map(([entryPointSourceFileAbsolutePath]) => entryPointSourceFileAbsolutePath)
1880
+ }
1881
+ });
1882
+ this.currentHTML_File__EXPERIMENTAL = targetHTML_FileAbsolutePath;
1736
1883
  for (const handler of BrowserLiveReloader.onURI_ChangedEventHandlers) {
1737
1884
  handler(targetHTML_FileAbsolutePath);
1738
1885
  }
@@ -1919,6 +2066,7 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1919
2066
  newName: "customPort",
1920
2067
  type: Number,
1921
2068
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
2069
+ isNaN_Forbidden: true,
1922
2070
  isUndefinedForbidden: false,
1923
2071
  isNullForbidden: true,
1924
2072
  maximalValue: 65536
@@ -1999,6 +2147,7 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1999
2147
  newName: "customPort",
2000
2148
  type: Number,
2001
2149
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
2150
+ isNaN_Forbidden: true,
2002
2151
  isUndefinedForbidden: false,
2003
2152
  isNullForbidden: true,
2004
2153
  maximalValue: 65536
@@ -2014,6 +2163,7 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
2014
2163
  $periodBetweenFileUpdatingAndBrowserReloading__seconds: {
2015
2164
  newName: "periodBetweenFileUpdatingAndBrowserReloading__seconds",
2016
2165
  type: Number,
2166
+ isNaN_Forbidden: true,
2017
2167
  isUndefinedForbidden: false,
2018
2168
  isNullForbidden: true,
2019
2169
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.anyRealNumber
@@ -2080,7 +2230,7 @@ class BrowserLiveReloadingSettingsNormalizer {
2080
2230
  actualBrowserLiveReloadingSetup__rawValid =
2081
2231
  browserLiveReloadingSettings__fromFile__rawValid.setups[selectedBrowserLiveReloadingSetupID];
2082
2232
  if ((0, es_extensions_1.isUndefined)(actualBrowserLiveReloadingSetup__rawValid)) {
2083
- es_extensions_1.Logger.throwErrorAndLog({
2233
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
2084
2234
  errorInstance: new es_extensions_1.InvalidParameterValueError({
2085
2235
  customMessage: BrowserLiveReloadingSettingsNormalizer.localization.
2086
2236
  generateUndefinedBrowserLiveReloadingSetupID_Message({
@@ -2107,16 +2257,7 @@ class BrowserLiveReloadingSettingsNormalizer {
2107
2257
  projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
2108
2258
  actualBrowserLiveReloadingSetup__rawValid.localServer.rootDirectoryRelativePath
2109
2259
  ], { alwaysForwardSlashSeparators: true }),
2110
- ignoredFilesAndDirectoriesRelativePaths: (() => {
2111
- const ignoredFilesAndDirectoriesRelativePaths = actualBrowserLiveReloadingSetup__rawValid.localServer.ignoredFilesAndDirectoriesRelativePaths;
2112
- if (Array.isArray(ignoredFilesAndDirectoriesRelativePaths)) {
2113
- return ignoredFilesAndDirectoriesRelativePaths;
2114
- }
2115
- else if ((0, es_extensions_1.isString)(ignoredFilesAndDirectoriesRelativePaths)) {
2116
- return [ignoredFilesAndDirectoriesRelativePaths];
2117
- }
2118
- return [];
2119
- })(),
2260
+ ignoredFilesAndDirectoriesRelativePaths: actualBrowserLiveReloadingSetup__rawValid.localServer.ignoredFilesAndDirectoriesRelativePaths ?? [],
2120
2261
  ...(0, es_extensions_1.isNotUndefined)(actualBrowserLiveReloadingSetup__rawValid.localServer.customPort) ? {
2121
2262
  port: actualBrowserLiveReloadingSetup__rawValid.localServer.customPort
2122
2263
  } : null,
@@ -2260,7 +2401,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2260
2401
  return (mod && mod.__esModule) ? mod : { "default": mod };
2261
2402
  };
2262
2403
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2404
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
2405
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
2263
2406
  const mustProvideIncrementalProjectBuilding_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding */ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts"));
2407
+ const FilesWatchingRestrictions_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingRestrictions */ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts"));
2264
2408
  /* ─── Raw Valid Settings ─────────────────────────────────────────────────────────────────────────────────────────── */
2265
2409
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2266
2410
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
@@ -2275,6 +2419,7 @@ class ProjectBuildingCommonSettingsNormalizer {
2275
2419
  if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
2276
2420
  actualPublicDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { alwaysForwardSlashSeparators: true });
2277
2421
  }
2422
+ const filesWatchingSettings__fromFile__rawValid = commonSettings__fromFile__rawValid.filesWatching;
2278
2423
  return {
2279
2424
  projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
2280
2425
  projectBuildingMode,
@@ -2302,7 +2447,38 @@ class ProjectBuildingCommonSettingsNormalizer {
2302
2447
  } : null,
2303
2448
  browserLiveReloadingSetupID: actualSelectiveExecution?.browserLiveReloadingSetupID,
2304
2449
  mustGenerateOutputPackageJSON: actualSelectiveExecution?.distributablePackageJSON_Generating === true,
2305
- actualPublicDirectoryAbsolutePath
2450
+ dockerSetupID: actualSelectiveExecution?.dockerSetupID,
2451
+ actualPublicDirectoryAbsolutePath,
2452
+ filesWatching: {
2453
+ excludedFilesGlobSelectors: new Set([
2454
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeFiles,
2455
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludedFiles ?? [],
2456
+ /* eslint-disable-next-line @stylistic/no-extra-parens -- For squared layout */
2457
+ ...(projectBuildingMode === ConsumingProjectBuildingModes_1.default.staticPreview ||
2458
+ projectBuildingMode === ConsumingProjectBuildingModes_1.default.localDevelopment) ?
2459
+ filesWatchingSettings__fromFile__rawValid?.buildingModeDependent?.[projectBuildingMode].
2460
+ relativePathsOfExcludedFiles ??
2461
+ [] :
2462
+ []
2463
+ ].
2464
+ map((fileRelativePath) =>
2465
+ /* [ Theory ] In this case the Glob even with a directory absolute path is fine. */
2466
+ es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath, fileRelativePath], { alwaysForwardSlashSeparators: true }))),
2467
+ excludedDirectoriesGlobSelectors: new Set([
2468
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeDirectories,
2469
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeDirectories ?? [],
2470
+ /* eslint-disable-next-line @stylistic/no-extra-parens -- For squared layout */
2471
+ ...(projectBuildingMode === ConsumingProjectBuildingModes_1.default.staticPreview ||
2472
+ projectBuildingMode === ConsumingProjectBuildingModes_1.default.localDevelopment) ?
2473
+ filesWatchingSettings__fromFile__rawValid?.buildingModeDependent?.[projectBuildingMode].
2474
+ relativePathsOfExcludeDirectories ??
2475
+ [] :
2476
+ []
2477
+ ].
2478
+ map((directoryRelativePath) =>
2479
+ /* [ Theory ] In this case the Glob even with a directory absolute path is fine. */
2480
+ es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))
2481
+ }
2306
2482
  };
2307
2483
  }
2308
2484
  }
@@ -2360,8 +2536,8 @@ class ResourcesPointersResolver {
2360
2536
  });
2361
2537
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile) ||
2362
2538
  !supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
2363
- includes(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
2364
- const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
2539
+ has(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
2540
+ const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = Array.from(supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
2365
2541
  targetPath: sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension,
2366
2542
  targetFileNameExtensionWithOrWithoutLeadingDot: supportedStylesheetFileNameExtensionWithoutLeadingDot,
2367
2543
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
@@ -2593,9 +2769,10 @@ var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2593
2769
  $periodBetweenFileUpdatingAndRebuildingStarting__seconds: {
2594
2770
  newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
2595
2771
  type: Number,
2772
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
2773
+ isNaN_Forbidden: true,
2596
2774
  isUndefinedForbidden: false,
2597
- isNullForbidden: true,
2598
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
2775
+ isNullForbidden: true
2599
2776
  }
2600
2777
  }
2601
2778
  },
@@ -2717,6 +2894,7 @@ var ProjectBuildingTasksIDsForConfigFile;
2717
2894
  ProjectBuildingTasksIDsForConfigFile["plainCopying"] = "plainCopying";
2718
2895
  ProjectBuildingTasksIDsForConfigFile["filesWatching"] = "filesWatching";
2719
2896
  ProjectBuildingTasksIDsForConfigFile["outputPackageJSON_Generating"] = "outputPackageJSON_Generating";
2897
+ ProjectBuildingTasksIDsForConfigFile["dockerLaunching"] = "dockerLaunching";
2720
2898
  })(ProjectBuildingTasksIDsForConfigFile || (exports.ProjectBuildingTasksIDsForConfigFile = ProjectBuildingTasksIDsForConfigFile = {}));
2721
2899
 
2722
2900
 
@@ -2797,13 +2975,21 @@ var ProjectBuildingCommonSettings__FromFile__RawValid;
2797
2975
  newName: "browserLiveReloadingSetupID",
2798
2976
  type: String,
2799
2977
  isUndefinedForbidden: false,
2800
- isNullForbidden: true
2978
+ isNullForbidden: true,
2979
+ minimalCharactersCount: 1
2801
2980
  },
2802
2981
  $distributablePackageJSON_Generating: {
2803
2982
  newName: "distributablePackageJSON_Generating",
2804
2983
  type: Boolean,
2805
2984
  isUndefinedForbidden: false,
2806
2985
  isNullForbidden: true
2986
+ },
2987
+ $dockerSetupID: {
2988
+ newName: "dockerSetupID",
2989
+ type: String,
2990
+ isUndefinedForbidden: false,
2991
+ isNullForbidden: true,
2992
+ minimalCharactersCount: 1
2807
2993
  }
2808
2994
  }
2809
2995
  }
@@ -2831,6 +3017,83 @@ var ProjectBuildingCommonSettings__FromFile__RawValid;
2831
3017
  type: String,
2832
3018
  minimalCharactersCount: 1
2833
3019
  }
3020
+ },
3021
+ $filesWatching: {
3022
+ newName: "filesWatching",
3023
+ type: Object,
3024
+ isUndefinedForbidden: false,
3025
+ mustTransformNullToUndefined: true,
3026
+ properties: {
3027
+ $relativePathsOfExcludedFiles: {
3028
+ newName: "relativePathsOfExcludedFiles",
3029
+ type: Array,
3030
+ isUndefinedForbidden: false,
3031
+ mustTransformNullToUndefined: true,
3032
+ areUndefinedElementsForbidden: false,
3033
+ areNullElementsForbidden: false,
3034
+ element: {
3035
+ type: String,
3036
+ minimalCharactersCount: 1
3037
+ }
3038
+ },
3039
+ $relativePathsOfExcludeDirectories: {
3040
+ newName: "relativePathsOfExcludeDirectories",
3041
+ type: Array,
3042
+ isUndefinedForbidden: false,
3043
+ mustTransformNullToUndefined: true,
3044
+ areUndefinedElementsForbidden: false,
3045
+ areNullElementsForbidden: false,
3046
+ element: {
3047
+ type: String,
3048
+ minimalCharactersCount: 1
3049
+ }
3050
+ },
3051
+ $buildingModeDependent: {
3052
+ newName: "buildingModeDependent",
3053
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
3054
+ isUndefinedForbidden: false,
3055
+ mustTransformNullToUndefined: true,
3056
+ areUndefinedTypeValuesForbidden: true,
3057
+ areNullTypeValuesForbidden: true,
3058
+ allowedKeys: [
3059
+ "$staticPreview",
3060
+ "$localDevelopment"
3061
+ ],
3062
+ keysRenamings: {
3063
+ $staticPreview: ConsumingProjectBuildingModes_1.default.staticPreview,
3064
+ $localDevelopment: ConsumingProjectBuildingModes_1.default.localDevelopment
3065
+ },
3066
+ value: {
3067
+ type: Object,
3068
+ properties: {
3069
+ $relativePathsOfExcludedFiles: {
3070
+ newName: "relativePathsOfExcludedFiles",
3071
+ type: Array,
3072
+ isUndefinedForbidden: false,
3073
+ mustTransformNullToUndefined: true,
3074
+ areUndefinedElementsForbidden: false,
3075
+ areNullElementsForbidden: false,
3076
+ element: {
3077
+ type: String,
3078
+ minimalCharactersCount: 1
3079
+ }
3080
+ },
3081
+ $relativePathsOfExcludeDirectories: {
3082
+ newName: "relativePathsOfExcludeDirectories",
3083
+ type: Array,
3084
+ isUndefinedForbidden: false,
3085
+ mustTransformNullToUndefined: true,
3086
+ areUndefinedElementsForbidden: false,
3087
+ areNullElementsForbidden: false,
3088
+ element: {
3089
+ type: String,
3090
+ minimalCharactersCount: 1
3091
+ }
3092
+ }
3093
+ }
3094
+ }
3095
+ }
3096
+ }
2834
3097
  }
2835
3098
  };
2836
3099
  })(ProjectBuildingCommonSettings__FromFile__RawValid || (ProjectBuildingCommonSettings__FromFile__RawValid = {}));
@@ -2910,6 +3173,7 @@ var OutputDirectoryPathTransformationsSettings__FromFile__RawValid;
2910
3173
  newName: "segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved",
2911
3174
  type: Number,
2912
3175
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
3176
+ isNaN_Forbidden: true,
2913
3177
  isUndefinedForbidden: false,
2914
3178
  isNullForbidden: true
2915
3179
  }
@@ -3639,7 +3903,7 @@ class AssetsProcessingSettingsRepresentative {
3639
3903
  }
3640
3904
  }
3641
3905
  if ((0, es_extensions_1.isNumber)(relevantAssetsGroupNormalizedSettings.outputPathTransformations.
3642
- segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved)) {
3906
+ segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved, { mustConsiderNaN_AsNumber: true })) {
3643
3907
  outputDirectoryAbsolutePathForTargetSourceFile =
3644
3908
  (0, es_extensions_1.explodeURI_PathToSegments)(outputDirectoryAbsolutePathForTargetSourceFile).
3645
3909
  slice(0, -relevantAssetsGroupNormalizedSettings.outputPathTransformations.
@@ -3663,13 +3927,13 @@ class AssetsProcessingSettingsRepresentative {
3663
3927
  this.hasAtLeastOneActualAssetsGroup = this.relevantAssetsGroupsSettingsMappedByGroupID.size > 0;
3664
3928
  this.actualAssetsSourceFilesAbsolutePaths = Array.from(this.relevantAssetsGroupsSettingsMappedByGroupID.values()).
3665
3929
  flatMap((assetsGroupSettings) => es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously([assetsGroupSettings.sourceFilesGlobSelector]));
3930
+ this.supportedSourceFilesNamesExtensionsWithoutLeadingDots = this.assetsProcessingCommonSettings.
3931
+ supportedSourceFilesNamesExtensionsWithoutLeadingDots;
3666
3932
  this.actualOutputFilesGlobSelectors = Array.from(this.relevantAssetsGroupsSettingsMappedByGroupID.values()).
3667
3933
  map((assetsGroupSettings__normalized) => es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
3668
3934
  basicDirectoryPath: assetsGroupSettings__normalized.outputFilesTopDirectoryAbsolutePath,
3669
3935
  fileNamesExtensions: this.supportedSourceFilesNamesExtensionsWithoutLeadingDots
3670
3936
  }));
3671
- this.supportedSourceFilesNamesExtensionsWithoutLeadingDots = this.assetsProcessingCommonSettings.
3672
- supportedSourceFilesNamesExtensionsWithoutLeadingDots;
3673
3937
  }
3674
3938
  /* ━━━ Public instance methods ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3675
3939
  getAssetsNormalizedSettingsActualForTargetSourceFile(targetSourceFileAbsolutePath) {
@@ -3739,7 +4003,7 @@ class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCode
3739
4003
  outputDirectoryAbsolutePathExplodedToSegmentsForTargetSourceFile.join("/");
3740
4004
  }
3741
4005
  }
3742
- if ((0, es_extensions_1.isNumber)(relevantEntryPointsGroupSettings.outputPathTransformations.segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved)) {
4006
+ if ((0, es_extensions_1.isNumber)(relevantEntryPointsGroupSettings.outputPathTransformations.segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved, { mustConsiderNaN_AsNumber: true })) {
3743
4007
  outputDirectoryAbsolutePathForTargetSourceFile =
3744
4008
  (0, es_extensions_1.explodeURI_PathToSegments)(outputDirectoryAbsolutePathForTargetSourceFile).
3745
4009
  slice(0, -relevantEntryPointsGroupSettings.outputPathTransformations.
@@ -3760,7 +4024,7 @@ class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCode
3760
4024
  }
3761
4025
  }
3762
4026
  if ((0, es_extensions_1.isUndefined)(entryPointsGroupsNormalizedSettingsRelevantForTargetSourceFile)) {
3763
- es_extensions_1.Logger.throwErrorAndLog({
4027
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
3764
4028
  errorInstance: new es_extensions_1.UnexpectedEventError(`No output entry points group has been fond for file of the path:\n${targetSourceFileAbsolutePath}`),
3765
4029
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
3766
4030
  occurrenceLocation: "GulpStreamBasedSourceCodeProcessingConfigRepresentative(Inheritor)." +
@@ -3815,7 +4079,7 @@ class OutputDirectoryPathTransformationsSettingsRepresentative {
3815
4079
  outputPath = outputDirectoryAbsolutePathExplodedToSegmentsForTargetSourceFile.join("/");
3816
4080
  }
3817
4081
  }
3818
- if ((0, es_extensions_1.isNumber)(outputDirectoryPathTransformationsSettings.segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved)) {
4082
+ if ((0, es_extensions_1.isNumber)(outputDirectoryPathTransformationsSettings.segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved, { mustConsiderNaN_AsNumber: true })) {
3819
4083
  outputPath =
3820
4084
  (0, es_extensions_1.explodeURI_PathToSegments)(outputPath).
3821
4085
  slice(0, -outputDirectoryPathTransformationsSettings.segmentsCountRelativeToGroupTopDirectoryWhichMustBeRemoved).
@@ -3853,7 +4117,7 @@ class SourceCodeProcessingConfigRepresentative {
3853
4117
  isEntryPoint(targetFileAbsolutePath) {
3854
4118
  if (!path_1.default.isAbsolute(targetFileAbsolutePath)) {
3855
4119
  if (true) {
3856
- es_extensions_1.Logger.throwErrorAndLog({
4120
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
3857
4121
  errorInstance: new es_extensions_1.UnexpectedEventError("\"sourceCodeProcessingConfigRepresentative.isEntryPoint\" works only with absolute paths while " +
3858
4122
  `the relative path "${targetFileAbsolutePath}" has been passed.`),
3859
4123
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -3877,8 +4141,7 @@ class SourceCodeProcessingConfigRepresentative {
3877
4141
  }
3878
4142
  get actualOutputFilesGlobSelectors() {
3879
4143
  return Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupNormalizedSettings) => es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
3880
- basicDirectoryPath: entryPointsGroupNormalizedSettings.
3881
- outputFilesTopDirectoryAbsolutePath,
4144
+ basicDirectoryPath: entryPointsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
3882
4145
  fileNamesExtensions: this.sourceCodeProcessingCommonSettings.supportedOutputFileNameExtensionsWithoutLeadingDots
3883
4146
  }));
3884
4147
  }
@@ -3923,7 +4186,7 @@ class GulpStreamsBasedTaskExecutor {
3923
4186
  handleErrorIfItWillOccur() {
3924
4187
  return (0, gulp_plumber_1.default)({
3925
4188
  errorHandler: (error) => {
3926
- const ERROR_MESSAGE_TITLE = `Task "${this.TASK_TITLE_FOR_LOGGING}", Error Occurred`;
4189
+ const ERROR_MESSAGE_TITLE = `${this.TASK_TITLE_FOR_LOGGING}, Error Occurred`;
3927
4190
  es_extensions_1.Logger.logErrorLikeMessage({
3928
4191
  title: ERROR_MESSAGE_TITLE,
3929
4192
  description: error.message
@@ -3940,18 +4203,19 @@ class GulpStreamsBasedTaskExecutor {
3940
4203
  }
3941
4204
  });
3942
4205
  }
3943
- logProcessedFilesIfMust() {
4206
+ logInputFilesIfMust() {
3944
4207
  return GulpStreamModifier_1.default.modify({
3945
4208
  onStreamStartedEventCommonHandler: async (file) => {
3946
4209
  es_extensions_1.Logger.logGeneric({
3947
4210
  mustOutputIf: this.logging.pathsOfFilesWillBeProcessed,
3948
4211
  badge: false,
3949
- title: `[ ${this.TASK_TITLE_FOR_LOGGING} ]`,
3950
- description: es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
3951
- basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
3952
- comparedPath: file.path,
3953
- alwaysForwardSlashSeparators: true
3954
- }),
4212
+ title: "⦅ ➞□ Input ⦆",
4213
+ description: `[ ${this.TASK_TITLE_FOR_LOGGING} ] ` +
4214
+ es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
4215
+ basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4216
+ comparedPath: file.path,
4217
+ alwaysForwardSlashSeparators: true
4218
+ }),
3955
4219
  compactLayout: true
3956
4220
  });
3957
4221
  this.processedFilesCountDuringCurrentRun++;
@@ -3962,7 +4226,40 @@ class GulpStreamsBasedTaskExecutor {
3962
4226
  mustOutputIf: this.logging.quantityOfFilesWillBeProcessed,
3963
4227
  badge: false,
3964
4228
  title: this.TASK_TITLE_FOR_LOGGING,
3965
- description: `Files will be processed: ${this.processedFilesCountDuringCurrentRun}`,
4229
+ description: `${this.processedFilesCountDuringCurrentRun} files will be processed`,
4230
+ compactLayout: true
4231
+ });
4232
+ this.processedFilesCountDuringCurrentRun = 0;
4233
+ return Promise.resolve();
4234
+ }
4235
+ });
4236
+ }
4237
+ logOutputFilesIfMust() {
4238
+ return GulpStreamModifier_1.default.modify({
4239
+ onStreamStartedEventCommonHandler: async (file) => {
4240
+ /* [ Approach ] It is better to use different with input case font color. */
4241
+ es_extensions_1.Logger.logSuccess({
4242
+ mustOutputIf: this.logging.pathsOfFilesWillBeProcessed,
4243
+ badge: false,
4244
+ title: "⦅ □➞ Output ⦆",
4245
+ description: `[ ${this.TASK_TITLE_FOR_LOGGING} ] ` +
4246
+ es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
4247
+ basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4248
+ comparedPath: file.path,
4249
+ alwaysForwardSlashSeparators: true
4250
+ }),
4251
+ compactLayout: true
4252
+ });
4253
+ this.processedFilesCountDuringCurrentRun++;
4254
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
4255
+ },
4256
+ onStreamEndedEventHandler: async () => {
4257
+ /* [ Approach ] It is better to use different with input case font color. */
4258
+ es_extensions_1.Logger.logSuccess({
4259
+ mustOutputIf: this.logging.quantityOfFilesWillBeProcessed,
4260
+ badge: false,
4261
+ title: this.TASK_TITLE_FOR_LOGGING,
4262
+ description: `${this.processedFilesCountDuringCurrentRun} file(s) has been processed`,
3966
4263
  compactLayout: true
3967
4264
  });
3968
4265
  this.processedFilesCountDuringCurrentRun = 0;
@@ -4062,7 +4359,7 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4062
4359
  * thus linting results could be cached. */
4063
4360
  src((0, es_extensions_1.readonlyArrayToMutableOne)(globSelectorsOrAbsolutePathsOfTargetFiles), { read: false }).
4064
4361
  pipe(super.handleErrorIfItWillOccur()).
4065
- pipe(super.logProcessedFilesIfMust()).
4362
+ pipe(super.logInputFilesIfMust()).
4066
4363
  pipe(GulpStreamModifier_1.default.modify({
4067
4364
  onStreamStartedEventCommonHandler: this.registerFoundFileMentionedInCache.bind(this)
4068
4365
  })).
@@ -4081,6 +4378,7 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4081
4378
  }), GulpStreamModifier_1.default.modify({
4082
4379
  onStreamStartedEventCommonHandler: this.logNoIssuesFoundInFileEventIfMust.bind(this)
4083
4380
  })))).
4381
+ pipe(super.logOutputFilesIfMust()).
4084
4382
  /* [ Approach ]
4085
4383
  * Basically, the `on("end", this.onStreamEnded.bind(this));` should be here.
4086
4384
  * However, the `onStreamEnded` will not be called on the subsequent pipeline pass and the reason and solution
@@ -4199,7 +4497,7 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4199
4497
  this.reportCheckingIssues();
4200
4498
  es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
4201
4499
  filePath: this.ABSOLUTE_PATH_OF_FILE_WITH_CACHED_RESULTS_OF_SOURCE_FILES_CHECKING,
4202
- content: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.sourceFilesCheckingCachedResults),
4500
+ content: JSON.stringify(this.sourceFilesCheckingCachedResults, null, 2),
4203
4501
  synchronously: true
4204
4502
  });
4205
4503
  }
@@ -4369,133 +4667,230 @@ exports["default"] = AssetVinylFile;
4369
4667
 
4370
4668
  /***/ }),
4371
4669
 
4372
- /***/ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts":
4373
- /*!********************************************************************!*\
4374
- !*** ./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts ***!
4375
- \********************************************************************/
4376
- /***/ ((__unused_webpack_module, exports) => {
4670
+ /***/ "./ProjectBuilding/DockerCompose/DockerComposeLauncher.ts":
4671
+ /*!****************************************************************!*\
4672
+ !*** ./ProjectBuilding/DockerCompose/DockerComposeLauncher.ts ***!
4673
+ \****************************************************************/
4674
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4377
4675
 
4378
4676
 
4379
- /* eslint-disable no-inline-comments, @stylistic/no-multi-spaces -- Will comment with which technology each exclusion related. */
4380
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4381
- /* [ Theory ] All directories and files which names started form dot will be ignored by Chokidar. */
4382
- exports["default"] = {
4383
- relativePathsOfExcludeFiles: [
4384
- "package-lock.json", // NPM
4385
- "yarn.lock" // Yarn, the third-party package manager
4386
- ],
4387
- relativePathsOfExcludeDirectories: [
4388
- "bin", // .NET
4389
- "node_modules", // Node.js
4390
- "obj" // .NET
4391
- ]
4677
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4678
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4392
4679
  };
4680
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4681
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4682
+ const child_process_1 = __importDefault(__webpack_require__(/*! child_process */ "child_process"));
4683
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4684
+ const VoidPromiseReturningFunction_1 = __webpack_require__(/*! @Utils/VoidPromiseReturningFunction */ "./Utils/VoidPromiseReturningFunction.ts");
4685
+ class DockerComposeLauncher {
4686
+ static launchIfMust(projectBuildingMasterConfigRepresentative) {
4687
+ if (!projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
4688
+ return VoidPromiseReturningFunction_1.voidPromiseReturningFunction;
4689
+ }
4690
+ const dockerComposeSettingsRepresentative = projectBuildingMasterConfigRepresentative.dockerComposeSettingsRepresentative;
4691
+ if ((0, es_extensions_1.isUndefined)(dockerComposeSettingsRepresentative)) {
4692
+ return VoidPromiseReturningFunction_1.voidPromiseReturningFunction;
4693
+ }
4694
+ const { composingOptions, upOptions } = dockerComposeSettingsRepresentative.dockerComposeSettings;
4695
+ return async () => new Promise((resolve) => {
4696
+ child_process_1.default.exec([
4697
+ /* [ Theory ] Docker Compose Options: https://docs.docker.com/reference/cli/docker/compose/ */
4698
+ "docker compose",
4699
+ ...(0, es_extensions_1.isNotUndefined)(composingOptions.absolutePathOfCustomEnvironmentFile) ?
4700
+ [`--env-file ${composingOptions.absolutePathOfCustomEnvironmentFile}`] : [],
4701
+ ...(0, es_extensions_1.isNotUndefined)(composingOptions.absolutePathOfCustomDockerComposeFile) ?
4702
+ [`--file ${composingOptions.absolutePathOfCustomDockerComposeFile}`] : [],
4703
+ ...(0, es_extensions_1.isNotUndefined)(composingOptions.projectName) ?
4704
+ [`--project-name ${composingOptions.projectName}`] : [],
4705
+ /* [ Theory ] Docker Compose Up Options: https://docs.docker.com/reference/cli/docker/compose/up/ */
4706
+ "up",
4707
+ "--detach",
4708
+ ...(0, es_extensions_1.isNotUndefined)(upOptions.mustAlwaysBuildImagesBeforeStarting) ? ["--build"] : []
4709
+ ].join(" "), { encoding: "utf-8" },
4710
+ /* [ Theory ] Normally `standardOutput` will not be using for the moment of Docker launching. */
4711
+ (error, _standardOutput, standardError) => {
4712
+ if ((0, es_extensions_1.isNotNull)(error)) {
4713
+ es_extensions_1.Logger.logError({
4714
+ errorType: "CommandExecutionInChildProcessFailureError",
4715
+ title: "Command Execution in Child Process Failure",
4716
+ description: `The error has occurred during the execution of Docker\n ${standardError}`,
4717
+ occurrenceLocation: "DockerComposeLauncher.launchIfMust(projectBuildingMasterConfigRepresentative)",
4718
+ caughtError: error
4719
+ });
4720
+ }
4721
+ resolve();
4722
+ });
4723
+ });
4724
+ }
4725
+ }
4726
+ exports["default"] = DockerComposeLauncher;
4393
4727
 
4394
4728
 
4395
4729
  /***/ }),
4396
4730
 
4397
- /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts":
4731
+ /***/ "./ProjectBuilding/DockerCompose/DockerComposeSettingsNormalizer.ts":
4398
4732
  /*!**************************************************************************!*\
4399
- !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts ***!
4733
+ !*** ./ProjectBuilding/DockerCompose/DockerComposeSettingsNormalizer.ts ***!
4400
4734
  \**************************************************************************/
4401
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4735
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4402
4736
 
4403
4737
 
4404
- var __importDefault = (this && this.__importDefault) || function (mod) {
4405
- return (mod && mod.__esModule) ? mod : { "default": mod };
4406
- };
4407
4738
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4408
- /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
4409
- const FilesWatchingRestrictions_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingRestrictions */ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts"));
4410
4739
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4740
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4411
4741
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4412
- class FilesWatchingSettingsNormalizer {
4413
- static normalize({ filesWatchingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized }) {
4742
+ class DockerComposeSettingsNormalizer {
4743
+ static normalize({ dockerComposeSettings__fromFile__rawValid, commonSettings__normalized: { dockerSetupID, projectRootDirectoryAbsolutePath } }) {
4744
+ if ((0, es_extensions_1.isUndefined)(dockerSetupID)) {
4745
+ return null;
4746
+ }
4747
+ const actualSetup = dockerComposeSettings__fromFile__rawValid[dockerSetupID];
4748
+ if ((0, es_extensions_1.isUndefined)(actualSetup)) {
4749
+ return null;
4750
+ }
4414
4751
  return {
4415
- excludedFilesGlobSelectors: new Set([
4416
- ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeFiles,
4417
- ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeFiles ?? []
4418
- ].
4419
- map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true }))),
4420
- excludedDirectoriesGlobSelectors: new Set([
4421
- ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeDirectories,
4422
- ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeDirectories ?? []
4423
- ].
4424
- map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))
4752
+ composingOptions: {
4753
+ projectName: actualSetup.composingOptions.projectName,
4754
+ ...(0, es_extensions_1.isNotUndefined)(actualSetup.composingOptions.composeFileNameWithExtension) ?
4755
+ {
4756
+ absolutePathOfCustomDockerComposeFile: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectRootDirectoryAbsolutePath, actualSetup.composingOptions.composeFileNameWithExtension], { alwaysForwardSlashSeparators: true })
4757
+ } :
4758
+ null,
4759
+ ...(0, es_extensions_1.isNotUndefined)(actualSetup.composingOptions.environmentFileNameWithExtensions) ?
4760
+ {
4761
+ absolutePathOfCustomEnvironmentFile: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectRootDirectoryAbsolutePath, actualSetup.composingOptions.environmentFileNameWithExtensions], { alwaysForwardSlashSeparators: true })
4762
+ } :
4763
+ null
4764
+ },
4765
+ upOptions: {
4766
+ mustAlwaysBuildImagesBeforeStarting: actualSetup.upOptions.mustAlwaysBuildImagesBeforeStarting === true
4767
+ }
4425
4768
  };
4426
4769
  }
4427
4770
  }
4428
- exports["default"] = FilesWatchingSettingsNormalizer;
4771
+ exports["default"] = DockerComposeSettingsNormalizer;
4429
4772
 
4430
4773
 
4431
4774
  /***/ }),
4432
4775
 
4433
- /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts":
4434
- /*!******************************************************************************!*\
4435
- !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts ***!
4436
- \******************************************************************************/
4776
+ /***/ "./ProjectBuilding/DockerCompose/DockerComposeSettings__FromFile__RawValid.ts":
4777
+ /*!************************************************************************************!*\
4778
+ !*** ./ProjectBuilding/DockerCompose/DockerComposeSettings__FromFile__RawValid.ts ***!
4779
+ \************************************************************************************/
4437
4780
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4438
4781
 
4439
4782
 
4440
4783
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4441
- /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4442
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4443
- class FilesWatchingSettingsRepresentative {
4444
- mustProvideFilesWatching;
4445
- exclusiveGlobsOfExcludedFilesAndDirectories;
4446
- fileWatchingSettings;
4447
- constructor(fileWatchingSettings, projectBuildingMasterConfigRepresentative) {
4448
- this.fileWatchingSettings = fileWatchingSettings;
4449
- this.mustProvideFilesWatching = projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding;
4450
- this.exclusiveGlobsOfExcludedFilesAndDirectories = [
4451
- ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedFilesGlobSelectors)),
4452
- ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedDirectoriesGlobSelectors))
4453
- ];
4784
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4785
+ var DockerComposeSettings__FromFile__RawValid;
4786
+ (function (DockerComposeSettings__FromFile__RawValid) {
4787
+ /* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
4788
+ DockerComposeSettings__FromFile__RawValid.propertiesSpecification = {
4789
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
4790
+ areUndefinedTypeValuesForbidden: true,
4791
+ areNullTypeValuesForbidden: true,
4792
+ value: {
4793
+ type: Object,
4794
+ properties: {
4795
+ $composingOptions: {
4796
+ newName: "composingOptions",
4797
+ type: Object,
4798
+ isUndefinedForbidden: true,
4799
+ isNullForbidden: true,
4800
+ properties: {
4801
+ $projectName: {
4802
+ newName: "projectName",
4803
+ type: String,
4804
+ isUndefinedForbidden: false,
4805
+ isNullForbidden: true,
4806
+ minimalCharactersCount: 1,
4807
+ /* [ Reference ] https://docs.docker.com/compose/how-tos/project-name/#set-a-project-name */
4808
+ allowedCharacters: new Set([
4809
+ ...es_extensions_1.lowercaseLatinCharacters,
4810
+ ...es_extensions_1.stringifiedDigits,
4811
+ "-",
4812
+ "_"
4813
+ ])
4814
+ },
4815
+ $composeFileNameWithExtension: {
4816
+ newName: "composeFileNameWithExtension",
4817
+ type: String,
4818
+ isUndefinedForbidden: false,
4819
+ isNullForbidden: true,
4820
+ minimalCharactersCount: 1
4821
+ },
4822
+ $environmentFileNameWithExtensions: {
4823
+ newName: "environmentFileNameWithExtensions",
4824
+ type: String,
4825
+ isUndefinedForbidden: false,
4826
+ isNullForbidden: true,
4827
+ minimalCharactersCount: 1
4828
+ }
4829
+ }
4830
+ },
4831
+ $upOptions: {
4832
+ newName: "upOptions",
4833
+ type: Object,
4834
+ isUndefinedForbidden: true,
4835
+ isNullForbidden: true,
4836
+ properties: {
4837
+ $mustAlwaysBuildImagesBeforeStarting: {
4838
+ newName: "mustAlwaysBuildImagesBeforeStarting",
4839
+ type: Boolean,
4840
+ isUndefinedForbidden: false,
4841
+ isNullForbidden: true
4842
+ }
4843
+ }
4844
+ }
4845
+ }
4846
+ }
4847
+ };
4848
+ })(DockerComposeSettings__FromFile__RawValid || (DockerComposeSettings__FromFile__RawValid = {}));
4849
+ exports["default"] = DockerComposeSettings__FromFile__RawValid;
4850
+
4851
+
4852
+ /***/ }),
4853
+
4854
+ /***/ "./ProjectBuilding/DockerCompose/DockerSettingsRepresentative.ts":
4855
+ /*!***********************************************************************!*\
4856
+ !*** ./ProjectBuilding/DockerCompose/DockerSettingsRepresentative.ts ***!
4857
+ \***********************************************************************/
4858
+ /***/ ((__unused_webpack_module, exports) => {
4859
+
4860
+
4861
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4862
+ class DockerSettingsRepresentative {
4863
+ dockerComposeSettings;
4864
+ constructor(dockerComposeSettings) {
4865
+ this.dockerComposeSettings = dockerComposeSettings;
4454
4866
  }
4455
4867
  }
4456
- exports["default"] = FilesWatchingSettingsRepresentative;
4868
+ exports["default"] = DockerSettingsRepresentative;
4457
4869
 
4458
4870
 
4459
4871
  /***/ }),
4460
4872
 
4461
- /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts":
4462
- /*!************************************************************************************!*\
4463
- !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts ***!
4464
- \************************************************************************************/
4873
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts":
4874
+ /*!********************************************************************!*\
4875
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts ***!
4876
+ \********************************************************************/
4465
4877
  /***/ ((__unused_webpack_module, exports) => {
4466
4878
 
4467
4879
 
4880
+ /* eslint-disable no-inline-comments, @stylistic/no-multi-spaces -- Will comment with which technology each exclusion related. */
4468
4881
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4469
- var FilesWatchingSettings__FromFile__RawValid;
4470
- (function (FilesWatchingSettings__FromFile__RawValid) {
4471
- FilesWatchingSettings__FromFile__RawValid.propertiesSpecification = {
4472
- $relativePathsOfExcludeFiles: {
4473
- newName: "relativePathsOfExcludeFiles",
4474
- type: Array,
4475
- isUndefinedForbidden: false,
4476
- isNullForbidden: true,
4477
- areUndefinedElementsForbidden: true,
4478
- areNullElementsForbidden: true,
4479
- element: {
4480
- type: String,
4481
- minimalCharactersCount: 1
4482
- }
4483
- },
4484
- $relativePathsOfExcludeDirectories: {
4485
- newName: "relativePathsOfExcludeDirectories",
4486
- type: Array,
4487
- isUndefinedForbidden: false,
4488
- isNullForbidden: true,
4489
- areUndefinedElementsForbidden: true,
4490
- areNullElementsForbidden: true,
4491
- element: {
4492
- type: String,
4493
- minimalCharactersCount: 1
4494
- }
4495
- }
4496
- };
4497
- })(FilesWatchingSettings__FromFile__RawValid || (FilesWatchingSettings__FromFile__RawValid = {}));
4498
- exports["default"] = FilesWatchingSettings__FromFile__RawValid;
4882
+ /* [ Theory ] Chokidar will ignore all directories and files which names started from dot. */
4883
+ exports["default"] = {
4884
+ relativePathsOfExcludeFiles: [
4885
+ "package-lock.json", // NPM
4886
+ "yarn.lock" // Yarn, the third-party package manager
4887
+ ],
4888
+ relativePathsOfExcludeDirectories: [
4889
+ "bin", // .NET
4890
+ "node_modules", // Node.js
4891
+ "obj" // .NET
4892
+ ]
4893
+ };
4499
4894
 
4500
4895
 
4501
4896
  /***/ }),
@@ -4810,12 +5205,10 @@ const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdParty
4810
5205
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4811
5206
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
4812
5207
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4813
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4814
5208
  class FilesMasterWatcher {
4815
5209
  static passiveWatchers = new Set();
4816
5210
  static watchIfMust(projectBuildingMasterConfigRepresentative) {
4817
- const filesWatchingSettingsRepresentative = projectBuildingMasterConfigRepresentative.filesWatchingSettingsRepresentative;
4818
- if ((0, es_extensions_1.isUndefined)(filesWatchingSettingsRepresentative) || !filesWatchingSettingsRepresentative.mustProvideFilesWatching) {
5211
+ if (!projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
4819
5212
  return (callback) => { callback(); };
4820
5213
  }
4821
5214
  return (callback) => {
@@ -4824,7 +5217,8 @@ class FilesMasterWatcher {
4824
5217
  es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4825
5218
  basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
4826
5219
  }),
4827
- ...filesWatchingSettingsRepresentative.exclusiveGlobsOfExcludedFilesAndDirectories
5220
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(projectBuildingMasterConfigRepresentative.filesWatchingSettings.excludedFilesGlobSelectors)),
5221
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(projectBuildingMasterConfigRepresentative.filesWatchingSettings.excludedDirectoriesGlobSelectors))
4828
5222
  ]).
4829
5223
  on("all", FilesMasterWatcher.onAnyChokidarEvent.bind(this));
4830
5224
  callback();
@@ -5212,7 +5606,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
5212
5606
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
5213
5607
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
5214
5608
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5215
- const replaceLinesSeparators_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Strings/replaceLinesSeparators */ "./UtilsIncubator/Strings/replaceLinesSeparators.ts"));
5609
+ const replaceLinesSeparators_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Strings/replaceLinesSeparators */ "./Incubators/@yamato-daiwa/es-extensions/Strings/replaceLinesSeparators.ts"));
5216
5610
  class OutputPackageJSON_Generator {
5217
5611
  static generateIfMust(projectBuildingMasterConfigRepresentative) {
5218
5612
  if ((0, es_extensions_1.isUndefined)(projectBuildingMasterConfigRepresentative.outputPackageJSON_GeneratingSettingsRepresentative)) {
@@ -5806,8 +6200,8 @@ const FontsProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require
5806
6200
  const VideosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingRawSettingsNormalizer.ts"));
5807
6201
  const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingRawSettingsNormalizer.ts"));
5808
6202
  const PlainCopyingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer */ "./ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer.ts"));
5809
- const FilesWatchingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts"));
5810
6203
  const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts"));
6204
+ const DockerComposeSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/DockerCompose/DockerComposeSettingsNormalizer */ "./ProjectBuilding/DockerCompose/DockerComposeSettingsNormalizer.ts"));
5811
6205
  const OutputPackageJSON_GeneratingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer.ts"));
5812
6206
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
5813
6207
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5816,7 +6210,7 @@ class ProjectBuilderRawConfigNormalizer {
5816
6210
  static localization = ProjectBuilderRawConfigNormalizer.getDefaultLocalization();
5817
6211
  static normalize({ consumingProjectRootDirectoryAbsolutePath, projectBuildingConfig__fromFile__rawValid, projectBuildingConfig__fromConsole }) {
5818
6212
  const commonSettings__fromFile__rawValid = projectBuildingConfig__fromFile__rawValid.commonSettings ?? {};
5819
- const actualSelectiveExecution = ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecutionID({
6213
+ const actualSelectiveExecution = ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecution({
5820
6214
  commonSettings__fromFile__rawValid,
5821
6215
  projectBuildingConfig__fromConsole
5822
6216
  });
@@ -5965,10 +6359,6 @@ class ProjectBuilderRawConfigNormalizer {
5965
6359
  })
5966
6360
  };
5967
6361
  })(),
5968
- filesWatching: FilesWatchingSettingsNormalizer_1.default.normalize({
5969
- filesWatchingSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.filesWatching],
5970
- projectBuilderCommonSettings__normalized: commonSettings__normalized
5971
- }),
5972
6362
  ...(() => {
5973
6363
  const browserLiveReloadingSettings__fromFile__rawValid = projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.browserLiveReloading];
5974
6364
  if ((0, es_extensions_1.isUndefined)(browserLiveReloadingSettings__fromFile__rawValid)) {
@@ -5984,6 +6374,13 @@ class ProjectBuilderRawConfigNormalizer {
5984
6374
  })
5985
6375
  };
5986
6376
  })(),
6377
+ ...(() => {
6378
+ const dockerComposeSettings__normalized = DockerComposeSettingsNormalizer_1.default.normalize({
6379
+ dockerComposeSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.dockerLaunching],
6380
+ commonSettings__normalized
6381
+ });
6382
+ return (0, es_extensions_1.isNotNull)(dockerComposeSettings__normalized) ? { dockerCompose: dockerComposeSettings__normalized } : {};
6383
+ })(),
5987
6384
  ...(() => {
5988
6385
  const outputPackageJSON_Generating = OutputPackageJSON_GeneratingSettingsNormalizer_1.default.normalizeIfThereAreActualOnes({
5989
6386
  outputPackageJSON_GeneratingSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.outputPackageJSON_Generating],
@@ -5996,32 +6393,32 @@ class ProjectBuilderRawConfigNormalizer {
5996
6393
  static setLocalization(newLocalization) {
5997
6394
  ProjectBuilderRawConfigNormalizer.localization = newLocalization;
5998
6395
  }
5999
- static determineActualSelectiveExecutionID({ commonSettings__fromFile__rawValid, projectBuildingConfig__fromConsole }) {
6396
+ static determineActualSelectiveExecution({ commonSettings__fromFile__rawValid, projectBuildingConfig__fromConsole }) {
6000
6397
  const selectiveExecutions = commonSettings__fromFile__rawValid.selectiveExecutions;
6001
6398
  let actualSelectiveExecution;
6002
6399
  if ((0, es_extensions_1.isNotUndefined)(projectBuildingConfig__fromConsole.selectiveExecutionID)) {
6003
6400
  if ((0, es_extensions_1.isUndefined)(selectiveExecutions)) {
6004
- es_extensions_1.Logger.throwErrorAndLog({
6401
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
6005
6402
  errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
6006
6403
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
6007
6404
  generateNoSelectiveExecutionsHasBeenDefinedErrorMessage({
6008
6405
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
6009
6406
  })
6010
6407
  }),
6011
- occurrenceLocation: "ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecutionID(parametersObject)",
6408
+ occurrenceLocation: "ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecution(parametersObject)",
6012
6409
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
6013
6410
  });
6014
6411
  }
6015
6412
  actualSelectiveExecution = selectiveExecutions[projectBuildingConfig__fromConsole.selectiveExecutionID];
6016
6413
  if ((0, es_extensions_1.isUndefined)(actualSelectiveExecution)) {
6017
- es_extensions_1.Logger.throwErrorAndLog({
6414
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
6018
6415
  errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
6019
6416
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
6020
6417
  generateUndefinedSelectiveExecutionID_ErrorMessage({
6021
6418
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
6022
6419
  })
6023
6420
  }),
6024
- occurrenceLocation: "ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecutionID(parametersObject)",
6421
+ occurrenceLocation: "ProjectBuilderRawConfigNormalizer.determineActualSelectiveExecution(parametersObject)",
6025
6422
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
6026
6423
  });
6027
6424
  }
@@ -6062,9 +6459,9 @@ const FontsProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_
6062
6459
  const VideosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettings__FromFile__RawValid.ts"));
6063
6460
  const AudiosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettings__FromFile__RawValid.ts"));
6064
6461
  const PlainCopyingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid */ "./ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid.ts"));
6065
- const FilesWatchingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid */ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts"));
6066
6462
  const BrowserLiveReloadingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid.ts"));
6067
6463
  const OutputPackageJSON_GeneratingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid.ts"));
6464
+ const DockerComposeSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/DockerCompose/DockerComposeSettings__FromFile__RawValid */ "./ProjectBuilding/DockerCompose/DockerComposeSettings__FromFile__RawValid.ts"));
6068
6465
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
6069
6466
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6070
6467
  var ProjectBuildingConfig__FromFile__RawValid;
@@ -6144,13 +6541,6 @@ var ProjectBuildingConfig__FromFile__RawValid;
6144
6541
  mustTransformNullToUndefined: true,
6145
6542
  properties: PlainCopyingSettings__FromFile__RawValid_1.default.propertiesSpecification
6146
6543
  },
6147
- $filesWatching: {
6148
- newName: "filesWatching",
6149
- type: Object,
6150
- isUndefinedForbidden: false,
6151
- mustTransformNullToUndefined: true,
6152
- properties: FilesWatchingSettings__FromFile__RawValid_1.default.propertiesSpecification
6153
- },
6154
6544
  $browserLiveReloading: {
6155
6545
  newName: "browserLiveReloading",
6156
6546
  type: Object,
@@ -6164,6 +6554,12 @@ var ProjectBuildingConfig__FromFile__RawValid;
6164
6554
  isUndefinedForbidden: false,
6165
6555
  mustTransformNullToUndefined: true,
6166
6556
  properties: OutputPackageJSON_GeneratingSettings__FromFile__RawValid_1.default.propertiesSpecification
6557
+ },
6558
+ $dockerLaunching: {
6559
+ newName: "dockerLaunching",
6560
+ ...DockerComposeSettings__FromFile__RawValid_1.default.propertiesSpecification,
6561
+ undefinedValueSubstitution: {},
6562
+ mustTransformNullToUndefined: true
6167
6563
  }
6168
6564
  }
6169
6565
  }
@@ -6197,9 +6593,9 @@ const FontsProcessingSettingsRepresentative_1 = __importDefault(__webpack_requir
6197
6593
  const AudiosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettingsRepresentative.ts"));
6198
6594
  const VideosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettingsRepresentative.ts"));
6199
6595
  const PlainCopyingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative */ "./ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative.ts"));
6200
- const FilesWatchingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts"));
6201
6596
  const BrowserLiveReloadingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts"));
6202
6597
  const OutputPackageJSON_GeneratingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative.ts"));
6598
+ const DockerSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/DockerCompose/DockerSettingsRepresentative */ "./ProjectBuilding/DockerCompose/DockerSettingsRepresentative.ts"));
6203
6599
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
6204
6600
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6205
6601
  class ProjectBuildingMasterConfigRepresentative {
@@ -6212,13 +6608,13 @@ class ProjectBuildingMasterConfigRepresentative {
6212
6608
  audiosProcessingSettingsRepresentative;
6213
6609
  videosProcessingSettingsRepresentative;
6214
6610
  plainCopyingSettingsRepresentative;
6215
- filesWatchingSettingsRepresentative;
6216
6611
  browserLiveReloadingSettingsRepresentative;
6612
+ dockerComposeSettingsRepresentative;
6217
6613
  outputPackageJSON_GeneratingSettingsRepresentative;
6218
6614
  commonSettings;
6219
6615
  static initializeAndGetInstance(projectBuilderConfig__normalized) {
6220
6616
  if ((0, es_extensions_1.isNotNull)(ProjectBuildingMasterConfigRepresentative.selfSoleInstance)) {
6221
- es_extensions_1.Logger.throwErrorAndLog({
6617
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
6222
6618
  errorInstance: new es_extensions_1.ClassRedundantSubsequentInitializationError({
6223
6619
  className: "ProjectBuildingMasterConfigRepresentative"
6224
6620
  }),
@@ -6256,11 +6652,12 @@ class ProjectBuildingMasterConfigRepresentative {
6256
6652
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.plainCopying)) {
6257
6653
  this.plainCopyingSettingsRepresentative = new PlainCopyingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.plainCopying);
6258
6654
  }
6259
- this.filesWatchingSettingsRepresentative =
6260
- new FilesWatchingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.filesWatching, this);
6261
6655
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.browserLiveReloading)) {
6262
6656
  this.browserLiveReloadingSettingsRepresentative = new BrowserLiveReloadingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.browserLiveReloading);
6263
6657
  }
6658
+ if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.dockerCompose)) {
6659
+ this.dockerComposeSettingsRepresentative = new DockerSettingsRepresentative_1.default(projectBuilderNormalizedConfig.dockerCompose);
6660
+ }
6264
6661
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.outputPackageJSON_Generating)) {
6265
6662
  this.outputPackageJSON_GeneratingSettingsRepresentative = new OutputPackageJSON_GeneratingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.outputPackageJSON_Generating);
6266
6663
  }
@@ -6275,6 +6672,9 @@ class ProjectBuildingMasterConfigRepresentative {
6275
6672
  get selectiveExecutionID() {
6276
6673
  return this.commonSettings.selectiveExecutionID;
6277
6674
  }
6675
+ get filesWatchingSettings() {
6676
+ return this.commonSettings.filesWatching;
6677
+ }
6278
6678
  /* --- Project building mode -------------------------------------------------------------------------------------- */
6279
6679
  get consumingProjectBuildingMode() { return this.commonSettings.projectBuildingMode; }
6280
6680
  get isStaticPreviewBuildingMode() {
@@ -6376,7 +6776,7 @@ const dotenv_1 = __importDefault(__webpack_require__(/*! dotenv */ "dotenv"));
6376
6776
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6377
6777
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6378
6778
  class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
6379
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = ECMA_ScriptLogicProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
6779
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = ECMA_ScriptLogicProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
6380
6780
  cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions = new Map();
6381
6781
  static normalize({ ECMA_ScriptLogicProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
6382
6782
  const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessingRawSettingsNormalizer({
@@ -6391,7 +6791,8 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6391
6791
  const lintingSettings__fromFile__rawValid = ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.linting ?? {};
6392
6792
  return {
6393
6793
  common: {
6394
- supportedSourceFileNameExtensionsWithoutLeadingDots: ECMA_ScriptLogicProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
6794
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: ECMA_ScriptLogicProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
6795
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: ECMA_ScriptLogicProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
6395
6796
  supportedOutputFileNameExtensionsWithoutLeadingDots: ECMA_ScriptLogicProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots
6396
6797
  },
6397
6798
  linting: {
@@ -6406,6 +6807,26 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6406
6807
  },
6407
6808
  relevantEntryPointsGroups,
6408
6809
  ...dataHoldingSelfInstance.normalizeLocalDevelopmentServerOrchestrationSettingsIfAny(relevantEntryPointsGroups, ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.localDevelopmentServerOrchestration),
6810
+ ...(0, es_extensions_1.isNotUndefined)(ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.electron) ?
6811
+ {
6812
+ electron: {
6813
+ hotReloadingForLocalDevelopmentMode: {
6814
+ rootDirectoryAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6815
+ dataHoldingSelfInstance.consumingProjectRootDirectoryAbsolutePath,
6816
+ ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.electron.
6817
+ hotReloadingForLocalDevelopmentMode.rootDirectoryRelativePath
6818
+ ], { alwaysForwardSlashSeparators: true }),
6819
+ ignoredFilesAndDirectoriesAbsolutePaths: (ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.electron.
6820
+ hotReloadingForLocalDevelopmentMode.ignoredFilesAndDirectoriesRelativePaths ??
6821
+ []).
6822
+ map((ignoredFileOrDirectoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6823
+ dataHoldingSelfInstance.consumingProjectRootDirectoryAbsolutePath,
6824
+ ignoredFileOrDirectoryRelativePath
6825
+ ], { alwaysForwardSlashSeparators: true }))
6826
+ }
6827
+ }
6828
+ } :
6829
+ null,
6409
6830
  logging: {
6410
6831
  filesPaths: ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.logging?.filesPaths ??
6411
6832
  ECMA_ScriptLogicProcessingSettings__Default_1.default.logging.filesPaths,
@@ -6612,7 +7033,12 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6612
7033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6613
7034
  var ECMA_ScriptLogicProcessingRestrictions;
6614
7035
  (function (ECMA_ScriptLogicProcessingRestrictions) {
6615
- ECMA_ScriptLogicProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["js", "mjs", "ts", "tsx", "jsx"];
7036
+ ECMA_ScriptLogicProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
7037
+ "js", "mjs", "ts", "mts"
7038
+ ]);
7039
+ ECMA_ScriptLogicProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([
7040
+ "jsx", "tsx", "vue"
7041
+ ]);
6616
7042
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["js"];
6617
7043
  let SupportedECMA_ScriptRuntimesTypes;
6618
7044
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -6644,6 +7070,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6644
7070
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
6645
7071
  const PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX */ "./ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX.ts"));
6646
7072
  const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/SourceCodeProcessingConfigRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/SourceCodeProcessingConfigRepresentative.ts"));
7073
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
7074
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6647
7075
  class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
6648
7076
  /* [ Theory ] Below two fields could be even or not. */
6649
7077
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -6653,6 +7081,7 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6653
7081
  TASK_NAME_FOR_LOGGING = "ECMAScript Logic Processing";
6654
7082
  entryPointsGroupsNormalizedSettingsMappedByReferences;
6655
7083
  relevantEntryPointsGroupsSettings;
7084
+ electronSettings;
6656
7085
  loggingSettings;
6657
7086
  localDevelopmentServerOrchestrationSettings;
6658
7087
  sourceCodeProcessingCommonSettings;
@@ -6660,19 +7089,18 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6660
7089
  super(projectBuildingMasterConfigRepresentative);
6661
7090
  this.sourceCodeProcessingCommonSettings = normalizedECMA_ScriptLogicProcessingSettings.common;
6662
7091
  this.relevantEntryPointsGroupsSettings = normalizedECMA_ScriptLogicProcessingSettings.relevantEntryPointsGroups;
7092
+ this.electronSettings = normalizedECMA_ScriptLogicProcessingSettings.electron;
6663
7093
  this.loggingSettings = normalizedECMA_ScriptLogicProcessingSettings.logging;
6664
7094
  this.localDevelopmentServerOrchestrationSettings = normalizedECMA_ScriptLogicProcessingSettings.
6665
7095
  localDevelopmentServerOrchestration;
6666
7096
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6667
- supportedSourceFileNameExtensionsWithoutLeadingDots;
6668
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6669
- supportedSourceFileNameExtensionsWithoutLeadingDots;
7097
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
7098
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedECMA_ScriptLogicProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
6670
7099
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
6671
7100
  `${PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1.default}${entryPointsGroupSettings.ID}`,
6672
7101
  entryPointsGroupSettings
6673
7102
  ]));
6674
7103
  }
6675
- /* ━━━ Logging ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6676
7104
  get mustLogSourceFilesWatcherEvents() {
6677
7105
  return this.loggingSettings.filesWatcherEvents;
6678
7106
  }
@@ -6763,8 +7191,9 @@ const RevisioningSettings__FromFile__RawValid_1 = __importDefault(__webpack_requ
6763
7191
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6764
7192
  var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6765
7193
  (function (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid) {
6766
- /* ━━━ Localization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7194
+ /* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6767
7195
  ECMA_ScriptLogicProcessingSettings__FromFile__RawValid.propertiesSpecification = {
7196
+ /* ┅┅┅ Linting ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6768
7197
  $linting: {
6769
7198
  newName: "linting",
6770
7199
  type: Object,
@@ -6772,6 +7201,7 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6772
7201
  mustTransformNullToUndefined: true,
6773
7202
  properties: LintingSettings__FromFile__RawValid_1.default.propertiesSpecification
6774
7203
  },
7204
+ /* ╍╍╍ Entry Points Group ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
6775
7205
  ...SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid_1.default.generatePropertiesSpecification({
6776
7206
  entryPointsGroupBuildingModeIndependentSpecificSettingsLocalizedPropertiesSpecification: {
6777
7207
  $targetRuntime: {
@@ -6809,14 +7239,16 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6809
7239
  type: Number,
6810
7240
  isUndefinedForbidden: true,
6811
7241
  isNullForbidden: true,
6812
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7242
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7243
+ isNaN_Forbidden: true
6813
7244
  },
6814
7245
  $minor: {
6815
7246
  newName: "minor",
6816
7247
  type: Number,
6817
7248
  isUndefinedForbidden: false,
6818
7249
  isNullForbidden: true,
6819
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7250
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7251
+ isNaN_Forbidden: true
6820
7252
  }
6821
7253
  }
6822
7254
  }
@@ -6926,7 +7358,91 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6926
7358
  minimalCharactersCount: 1
6927
7359
  }
6928
7360
  }
6929
- }),
7361
+ }),
7362
+ /* ┅┅┅ Local Development Server Orchestration ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7363
+ $localDevelopmentServerOrchestration: {
7364
+ newName: "localDevelopmentServerOrchestration",
7365
+ type: Object,
7366
+ isUndefinedForbidden: false,
7367
+ mustTransformNullToUndefined: true,
7368
+ properties: {
7369
+ $targetSingularEntryPointsGroupID: {
7370
+ newName: "targetSingularEntryPointsGroupID",
7371
+ type: String,
7372
+ isUndefinedForbidden: true,
7373
+ isNullForbidden: true,
7374
+ minimalCharactersCount: 1
7375
+ },
7376
+ $arguments: {
7377
+ newName: "arguments",
7378
+ type: Array,
7379
+ isUndefinedForbidden: false,
7380
+ isNullForbidden: true,
7381
+ areUndefinedElementsForbidden: true,
7382
+ areNullElementsForbidden: true,
7383
+ element: {
7384
+ type: String,
7385
+ minimalCharactersCount: 1
7386
+ }
7387
+ },
7388
+ $environmentVariables: {
7389
+ newName: "environmentVariables",
7390
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
7391
+ isUndefinedForbidden: false,
7392
+ isNullForbidden: true,
7393
+ areUndefinedTypeValuesForbidden: true,
7394
+ areNullTypeValuesForbidden: true,
7395
+ value: {
7396
+ type: String,
7397
+ minimalCharactersCount: 1
7398
+ }
7399
+ },
7400
+ $environmentVariablesFileRelativePath: {
7401
+ newName: "environmentVariablesFileRelativePath",
7402
+ type: String,
7403
+ isUndefinedForbidden: false,
7404
+ isNullForbidden: true,
7405
+ minimalCharactersCount: 1
7406
+ }
7407
+ }
7408
+ },
7409
+ /* ┅┅┅ Electron ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7410
+ $electron: {
7411
+ newName: "electron",
7412
+ type: Object,
7413
+ isUndefinedForbidden: false,
7414
+ mustTransformNullToUndefined: true,
7415
+ properties: {
7416
+ $hotReloadingForLocalDevelopmentMode: {
7417
+ newName: "hotReloadingForLocalDevelopmentMode",
7418
+ type: Object,
7419
+ isUndefinedForbidden: true,
7420
+ mustTransformNullToUndefined: true,
7421
+ properties: {
7422
+ $rootDirectoryRelativePath: {
7423
+ newName: "rootDirectoryRelativePath",
7424
+ type: String,
7425
+ isUndefinedForbidden: true,
7426
+ isNullForbidden: true,
7427
+ minimalCharactersCount: 1
7428
+ },
7429
+ $ignoredFilesAndDirectoriesRelativePaths: {
7430
+ newName: "ignoredFilesAndDirectoriesRelativePaths",
7431
+ type: Array,
7432
+ isUndefinedForbidden: false,
7433
+ mustTransformNullToUndefined: true,
7434
+ areUndefinedElementsForbidden: true,
7435
+ areNullElementsForbidden: true,
7436
+ element: {
7437
+ type: String,
7438
+ minimalCharactersCount: 1
7439
+ }
7440
+ }
7441
+ }
7442
+ }
7443
+ }
7444
+ },
7445
+ /* ┅┅┅ Logging ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6930
7446
  $logging: {
6931
7447
  newName: "logging",
6932
7448
  type: Object,
@@ -6978,52 +7494,6 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6978
7494
  }
6979
7495
  }
6980
7496
  }
6981
- },
6982
- $localDevelopmentServerOrchestration: {
6983
- newName: "localDevelopmentServerOrchestration",
6984
- type: Object,
6985
- isUndefinedForbidden: false,
6986
- mustTransformNullToUndefined: true,
6987
- properties: {
6988
- $targetSingularEntryPointsGroupID: {
6989
- newName: "targetSingularEntryPointsGroupID",
6990
- type: String,
6991
- isUndefinedForbidden: true,
6992
- isNullForbidden: true,
6993
- minimalCharactersCount: 1
6994
- },
6995
- $arguments: {
6996
- newName: "arguments",
6997
- type: Array,
6998
- isUndefinedForbidden: false,
6999
- isNullForbidden: true,
7000
- areUndefinedElementsForbidden: true,
7001
- areNullElementsForbidden: true,
7002
- element: {
7003
- type: String,
7004
- minimalCharactersCount: 1
7005
- }
7006
- },
7007
- $environmentVariables: {
7008
- newName: "environmentVariables",
7009
- type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
7010
- isUndefinedForbidden: false,
7011
- isNullForbidden: true,
7012
- areUndefinedTypeValuesForbidden: true,
7013
- areNullTypeValuesForbidden: true,
7014
- value: {
7015
- type: String,
7016
- minimalCharactersCount: 1
7017
- }
7018
- },
7019
- $environmentVariablesFileRelativePath: {
7020
- newName: "environmentVariablesFileRelativePath",
7021
- type: String,
7022
- isUndefinedForbidden: false,
7023
- isNullForbidden: true,
7024
- minimalCharactersCount: 1
7025
- }
7026
- }
7027
7497
  }
7028
7498
  };
7029
7499
  })(ECMA_ScriptLogicProcessingSettings__FromFile__RawValid || (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid = {}));
@@ -7137,7 +7607,19 @@ class ECMA_ScriptLogicProcessor {
7137
7607
  });
7138
7608
  }
7139
7609
  this.webpackConfigurationsForExistingEntryPoints = webpackConfigurationsForExistingEntryPoints;
7140
- this.webpackMultiCompiler = (0, webpack_1.default)(this.webpackConfigurationsForExistingEntryPoints);
7610
+ const webpackMultiCompiler = (0, webpack_1.default)(this.webpackConfigurationsForExistingEntryPoints);
7611
+ if ((0, es_extensions_1.isNull)(webpackMultiCompiler)) {
7612
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7613
+ errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
7614
+ politeExplanation: "It has occurred some problem with changed functionality of Webpack, the dependency of YDA.",
7615
+ technicalDetails: "The `Webpack` function returned the null. " +
7616
+ "Previously according to TypeScript type definitions, the returned value was always non-nullable. "
7617
+ })),
7618
+ title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7619
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.constructor(...parameters)"
7620
+ });
7621
+ }
7622
+ this.webpackMultiCompiler = webpackMultiCompiler;
7141
7623
  this.entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap =
7142
7624
  entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap;
7143
7625
  if (this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
@@ -7280,7 +7762,10 @@ class ECMA_ScriptLogicProcessor {
7280
7762
  unifiedDirectoriesAliasesAndTheirAbsolutePatsMap.set(directoryAlias, new Set(correspondingDirectoriesAbsolutePaths));
7281
7763
  }
7282
7764
  else {
7283
- (0, es_extensions_1.addMultipleElementsToSet)(alreadyRegisteredCorrespondingDirectoriesAbsolutePaths, correspondingDirectoriesAbsolutePaths);
7765
+ (0, es_extensions_1.addElementsToSet)({
7766
+ targetSet: alreadyRegisteredCorrespondingDirectoriesAbsolutePaths,
7767
+ newElements: correspondingDirectoriesAbsolutePaths
7768
+ });
7284
7769
  }
7285
7770
  }
7286
7771
  }
@@ -7334,6 +7819,97 @@ class ECMA_ScriptSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
7334
7819
  exports["default"] = ECMA_ScriptSourceFilesWatcher;
7335
7820
 
7336
7821
 
7822
+ /***/ }),
7823
+
7824
+ /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/ElectronCoordinator.ts":
7825
+ /*!******************************************************************************************!*\
7826
+ !*** ./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/ElectronCoordinator.ts ***!
7827
+ \******************************************************************************************/
7828
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7829
+
7830
+
7831
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7832
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7833
+ };
7834
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7835
+ /* ─── Files Watchers ─────────────────────────────────────────────────────────────────────────────────────────────── */
7836
+ const ElectronOutputFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Watchers/ElectronOutputFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts"));
7837
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
7838
+ const child_process_1 = __importDefault(__webpack_require__(/*! child_process */ "child_process"));
7839
+ const VoidPromiseReturningFunction_1 = __webpack_require__(/*! @Utils/VoidPromiseReturningFunction */ "./Utils/VoidPromiseReturningFunction.ts");
7840
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7841
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7842
+ class ElectronCoordinator {
7843
+ projectBuildingMasterConfigRepresentative;
7844
+ electronExecutableFileAbsolutePath;
7845
+ activeElectronChildProcess = null;
7846
+ waitingForNextEventWithRelatedFiles = null;
7847
+ static coordinateIfMust(projectBuildingMasterConfigRepresentative) {
7848
+ const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
7849
+ if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative?.electronSettings)) {
7850
+ return VoidPromiseReturningFunction_1.voidPromiseReturningFunction;
7851
+ }
7852
+ const selfInstance = new ElectronCoordinator({ projectBuildingMasterConfigRepresentative });
7853
+ ElectronOutputFilesWatcher_1.default.initialize({
7854
+ electronSettings: ecmaScriptLogicProcessingSettingsRepresentative.electronSettings,
7855
+ loggingSettings: ecmaScriptLogicProcessingSettingsRepresentative.loggingSettings,
7856
+ onAnyEventRelatedWithActualFilesHandler: selfInstance.onAnyEventRelatedWithRelatedFiles.bind(selfInstance)
7857
+ });
7858
+ return selfInstance.createPromisfiedChildProcess.bind(selfInstance);
7859
+ }
7860
+ constructor({ projectBuildingMasterConfigRepresentative }) {
7861
+ this.projectBuildingMasterConfigRepresentative = projectBuildingMasterConfigRepresentative;
7862
+ this.electronExecutableFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7863
+ this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
7864
+ "node_modules",
7865
+ "electron",
7866
+ "cli.js"
7867
+ ], { alwaysForwardSlashSeparators: true });
7868
+ }
7869
+ async createPromisfiedChildProcess() {
7870
+ return new Promise((resolve) => {
7871
+ this.activeElectronChildProcess = this.createElectronChildProcess(resolve);
7872
+ });
7873
+ }
7874
+ createElectronChildProcess(onStartedEventHandler) {
7875
+ /* [ Theory ]
7876
+ * The process killing will not work on Windows with the `exec` method.
7877
+ * https://github.com/nodejs/node/issues/7281 */
7878
+ const childProcess = child_process_1.default.
7879
+ execFile("node", [this.electronExecutableFileAbsolutePath, "."], { encoding: "utf-8" }).
7880
+ on("spawn", () => {
7881
+ onStartedEventHandler?.();
7882
+ });
7883
+ childProcess.stdout?.on("data", (data) => {
7884
+ /* eslint-disable-next-line no-console -- The data should be output as is, preserving the formatting if any. */
7885
+ console.log(data);
7886
+ });
7887
+ childProcess.stderr?.on("data", (data) => {
7888
+ /* eslint-disable-next-line no-console -- The data should be output as is, preserving the formatting if any. */
7889
+ console.error(data);
7890
+ });
7891
+ return childProcess;
7892
+ }
7893
+ onAnyEventRelatedWithRelatedFiles() {
7894
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextEventWithRelatedFiles));
7895
+ es_extensions_1.Logger.logInfo({
7896
+ title: "ElectronCoordinator, Restarting Application",
7897
+ description: "The changes has been detected on or more output files. Restarting the application..."
7898
+ });
7899
+ this.waitingForNextEventWithRelatedFiles = setTimeout(() => {
7900
+ const outdatedChildProcess = this.activeElectronChildProcess;
7901
+ this.activeElectronChildProcess = this.createElectronChildProcess(() => {
7902
+ /* [ Theory ]
7903
+ * The process killing will not work on Windows if the child process has started with the `exec` method.
7904
+ * https://github.com/nodejs/node/issues/7281 */
7905
+ outdatedChildProcess?.kill("SIGKILL");
7906
+ });
7907
+ }, (0, es_extensions_1.secondsToMilliseconds)(1));
7908
+ }
7909
+ }
7910
+ exports["default"] = ElectronCoordinator;
7911
+
7912
+
7337
7913
  /***/ }),
7338
7914
 
7339
7915
  /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/Linting/ECMA_ScriptSourceCodeLinter.ts":
@@ -7399,7 +7975,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7399
7975
  constructor({ ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative }) {
7400
7976
  super({
7401
7977
  projectBuildingMasterConfigRepresentative,
7402
- taskTitleForLogging: "ECMAScript logic processing / ECMAScript logic source code linting",
7978
+ taskTitleForLogging: "ECMAScript Logic Processing / ECMAScript Logic Source Code Linting",
7403
7979
  sourceFilesCachedCheckingResults: {
7404
7980
  fileNameWithExtension: "ECMA_ScriptLintingCache.json",
7405
7981
  contentSpecification: {
@@ -7464,24 +8040,28 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7464
8040
  startingLineNumber__numerationFrom1: {
7465
8041
  type: Number,
7466
8042
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8043
+ isNaN_Forbidden: true,
7467
8044
  isUndefinedForbidden: false,
7468
8045
  isNullForbidden: true
7469
8046
  },
7470
8047
  endingLineNumber__numerationFrom1: {
7471
8048
  type: Number,
7472
8049
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8050
+ isNaN_Forbidden: true,
7473
8051
  isUndefinedForbidden: false,
7474
8052
  isNullForbidden: true
7475
8053
  },
7476
8054
  startingColumnNumber__numerationFrom1: {
7477
8055
  type: Number,
7478
8056
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8057
+ isNaN_Forbidden: true,
7479
8058
  isUndefinedForbidden: false,
7480
8059
  isNullForbidden: true
7481
8060
  },
7482
8061
  endingColumnNumber__numerationFrom1: {
7483
8062
  type: Number,
7484
8063
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8064
+ isNaN_Forbidden: true,
7485
8065
  isUndefinedForbidden: false,
7486
8066
  isNullForbidden: true
7487
8067
  }
@@ -7543,7 +8123,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7543
8123
  map((issue) => this.normalizeLintingIssues(issue, sourceCode));
7544
8124
  }
7545
8125
  catch (error) {
7546
- es_extensions_1.Logger.throwErrorAndLog({
8126
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7547
8127
  errorType: "ECMA_ScriptSourceCodeLinter",
7548
8128
  title: ECMA_ScriptSourceCodeLinter.localization.lintingFailedErrorLog.title,
7549
8129
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -7590,6 +8170,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7590
8170
  (0, es_extensions_1.isNeitherUndefinedNorNull)(rawIssue.endColumn)) {
7591
8171
  /* [ Maintainability ] Keep these variables for easier debugging. */
7592
8172
  codeFragmentBeforeHighlighting = (0, es_extensions_1.cropArray)({
8173
+ fromStart: true,
7593
8174
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7594
8175
  targetArray: sourceCodeExplodedToLines,
7595
8176
  index: rawIssue.line - 1,
@@ -7606,11 +8187,12 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7606
8187
  targetNumber: rawIssue.line - this.DISPLAYING_LINES_COUNT_BEFORE_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7607
8188
  minimalValue: 1
7608
8189
  }),
7609
- endingElementNumber__numerationFrom1: rawIssue.line,
8190
+ endingElementNumber__numerationFrom1__including: rawIssue.line,
7610
8191
  mutably: false,
7611
8192
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7612
8193
  }).join("\n");
7613
8194
  highlightedCodeFragment = (0, es_extensions_1.cropArray)({
8195
+ fromStart: true,
7614
8196
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7615
8197
  targetArray: sourceCodeExplodedToLines,
7616
8198
  replacements: [
@@ -7653,12 +8235,13 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7653
8235
  ]
7654
8236
  }),
7655
8237
  startingElementNumber__numerationFrom1: rawIssue.line,
7656
- endingElementNumber__numerationFrom1: rawIssue.endLine,
8238
+ endingElementNumber__numerationFrom1__including: rawIssue.endLine,
7657
8239
  mutably: false,
7658
8240
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7659
8241
  }).join("\n");
7660
8242
  const lastLineOfHighlightedCodeFragment = sourceCodeExplodedToLines[rawIssue.endLine - 1];
7661
8243
  codeFragmentAfterHighlighting = (0, es_extensions_1.cropArray)({
8244
+ fromStart: true,
7662
8245
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7663
8246
  targetArray: sourceCodeExplodedToLines,
7664
8247
  index: rawIssue.endLine - 1,
@@ -7672,7 +8255,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7672
8255
  })
7673
8256
  }),
7674
8257
  startingElementNumber__numerationFrom1: rawIssue.endLine,
7675
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMaximalValue)({
8258
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMaximalValue)({
7676
8259
  targetNumber: rawIssue.endLine + this.DISPLAYING_LINES_COUNT_AFTER_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7677
8260
  maximalValue: sourceCodeExplodedToLines.length
7678
8261
  }),
@@ -7798,7 +8381,7 @@ class TypeScriptTypesChecker {
7798
8381
  vueTSC_ExecutableFileAbsolutePath;
7799
8382
  projectBuildingMasterConfigRepresentative;
7800
8383
  ecmaScriptLogicProcessingSettingsRepresentative;
7801
- waitingForNextWithRelatedFiles = null;
8384
+ waitingForNextEventWithRelatedFiles = null;
7802
8385
  static provideCheckingIfMust(projectBuildingMasterConfigRepresentative) {
7803
8386
  const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
7804
8387
  if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
@@ -7820,13 +8403,13 @@ class TypeScriptTypesChecker {
7820
8403
  }).
7821
8404
  addOnAnyEventRelatedWithActualFilesHandler({
7822
8405
  handlerID: "ON_ANY_EVENT_RELATED_WITH_ACTUAL_FILES_HANDLER--BY_TYPE_SCRIPT_TYPES_CHECKER",
7823
- handler: this.onAnyEventRelatedWithActualFiles.bind(this)
8406
+ handler: this.onAnyEventRelatedWithRelatedFiles.bind(this)
7824
8407
  });
7825
8408
  }
7826
8409
  const vueTSC_ExecutableFileAbsolutePath = TypeScriptTypesChecker.
7827
8410
  getAbsolutePathOfExistingVueTSC_ExecutableFile__alwaysForwardSlashesPathSeparators(projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath);
7828
8411
  if ((0, es_extensions_1.isNull)(vueTSC_ExecutableFileAbsolutePath)) {
7829
- es_extensions_1.Logger.throwErrorAndLog({
8412
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7830
8413
  errorInstance: new es_extensions_1.UnexpectedEventError("File to \"vue-tsc\" executable not found"),
7831
8414
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7832
8415
  occurrenceLocation: "TypeScriptTypesChecker.constructor(compoundParameter)"
@@ -7834,9 +8417,9 @@ class TypeScriptTypesChecker {
7834
8417
  }
7835
8418
  this.vueTSC_ExecutableFileAbsolutePath = vueTSC_ExecutableFileAbsolutePath;
7836
8419
  }
7837
- onAnyEventRelatedWithActualFiles() {
7838
- clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextWithRelatedFiles));
7839
- this.waitingForNextWithRelatedFiles = setTimeout(() => {
8420
+ onAnyEventRelatedWithRelatedFiles() {
8421
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextEventWithRelatedFiles));
8422
+ this.waitingForNextEventWithRelatedFiles = setTimeout(() => {
7840
8423
  this.checkTypes().catch(es_extensions_1.Logger.logPromiseError);
7841
8424
  }, (0, es_extensions_1.secondsToMilliseconds)(TypeScriptTypesChecker.WAITING_FOR_NEXT_EVENT_WITH_RELATED_FILES__SECONDS));
7842
8425
  }
@@ -7844,6 +8427,21 @@ class TypeScriptTypesChecker {
7844
8427
  return new Promise((resolve, reject) => {
7845
8428
  child_process_1.default.exec(`node ${this.vueTSC_ExecutableFileAbsolutePath} --noEmit`, { encoding: "utf-8" }, (error, stdout) => {
7846
8429
  if ((0, es_extensions_1.isNotNull)(error)) {
8430
+ if (error.message.includes("Cannot find module")) {
8431
+ es_extensions_1.Logger.logError({
8432
+ errorType: "TypeScriptTypeCheckingError",
8433
+ title: "TypeScript Types Checking Failed",
8434
+ description: "The reference to unexisting module has terminated the TypeScript types checking",
8435
+ occurrenceLocation: "typeScriptTypesChecker.checkTypes",
8436
+ caughtError: error
8437
+ });
8438
+ if (this.projectBuildingMasterConfigRepresentative.isProductionLikeBuildingMode) {
8439
+ reject(error);
8440
+ return;
8441
+ }
8442
+ resolve();
8443
+ return;
8444
+ }
7847
8445
  es_extensions_1.Logger.logErrorLikeMessage({
7848
8446
  title: "TypeScript Type Checking, Error(s) Detected",
7849
8447
  description: "The source code is including the TypeScript error(s).\n" +
@@ -7876,7 +8474,8 @@ class TypeScriptTypesChecker {
7876
8474
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7877
8475
  consumingProjectRootDirectoryAbsolutePath,
7878
8476
  "node_modules",
7879
- ".bin",
8477
+ "vue-tsc",
8478
+ "bin",
7880
8479
  "vue-tsc.js"
7881
8480
  ], { alwaysForwardSlashSeparators: true }),
7882
8481
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
@@ -7949,7 +8548,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7949
8548
  ], { alwaysForwardSlashSeparators: true });
7950
8549
  const targetOutputFileSearchResults = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously([targetOutputFileGlobSelector]);
7951
8550
  if (targetOutputFileSearchResults.length === 0) {
7952
- es_extensions_1.Logger.throwErrorAndLog({
8551
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7953
8552
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが見つけられなかった。`),
7954
8553
  occurrenceLocation: "ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator" +
7955
8554
  ".getEntryPointsOutputFileActualAbsolutePath(...parameters)",
@@ -7957,7 +8556,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7957
8556
  });
7958
8557
  }
7959
8558
  else if (targetOutputFileSearchResults.length > 1) {
7960
- es_extensions_1.Logger.throwErrorAndLog({
8559
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7961
8560
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが複数件が発見された:\n` +
7962
8561
  `${(0, es_extensions_1.stringifyAndFormatArbitraryValue)(targetOutputFileSearchResults)}\n` +
7963
8562
  "前の構成は自動的に削除されなかった場合、再構成する前に手動で削除して下さい。"),
@@ -8018,6 +8617,8 @@ const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPar
8018
8617
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
8019
8618
  const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
8020
8619
  const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
8620
+ const autoprefixer_1 = __importDefault(__webpack_require__(/*! autoprefixer */ "autoprefixer"));
8621
+ const cssnano_1 = __importDefault(__webpack_require__(/*! cssnano */ "cssnano"));
8021
8622
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
8022
8623
  const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
8023
8624
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -8051,6 +8652,26 @@ class WebpackConfigGenerator {
8051
8652
  const willPugLibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
8052
8653
  entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.pug;
8053
8654
  const distributingSettings = entryPointsGroupSettings.distributing;
8655
+ const postCSS_LoaderSettings = {
8656
+ loader: "postcss-loader",
8657
+ options: {
8658
+ postcssOptions: {
8659
+ plugins: [
8660
+ "postcss-normalize-stylus-compatible-container-query-syntax",
8661
+ autoprefixer_1.default,
8662
+ (0, cssnano_1.default)({
8663
+ preset: [
8664
+ "default",
8665
+ {
8666
+ normalizeWhitespace: !masterConfigRepresentative.mustProvideIncrementalBuilding,
8667
+ discardComments: !masterConfigRepresentative.mustProvideIncrementalBuilding
8668
+ }
8669
+ ]
8670
+ })
8671
+ ]
8672
+ }
8673
+ }
8674
+ };
8054
8675
  return {
8055
8676
  name: entryPointsGroupSettings.ID,
8056
8677
  /* [ Webpack theory ] In this case, path separators must be operating-system-dependent; otherwise the following
@@ -8072,7 +8693,7 @@ class WebpackConfigGenerator {
8072
8693
  `node${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8073
8694
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8074
8695
  [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : []
8075
- ];
8696
+ ].join("");
8076
8697
  }
8077
8698
  case SupportedECMA_ScriptRuntimesTypes.electronMainProcess: {
8078
8699
  return [
@@ -8127,7 +8748,7 @@ class WebpackConfigGenerator {
8127
8748
  case SupportedECMA_ScriptRuntimesTypes.pug:
8128
8749
  return "umd";
8129
8750
  case SupportedECMA_ScriptRuntimesTypes.webWorker: {
8130
- es_extensions_1.Logger.throwErrorAndLog({
8751
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8131
8752
  errorInstance: new es_extensions_1.UnexpectedEventError("The web worker could not be the library, while the computing of 'output.library.type' has been " +
8132
8753
  "requested"),
8133
8754
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8157,7 +8778,18 @@ class WebpackConfigGenerator {
8157
8778
  /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
8158
8779
  * faster alternatives including "eval" could cause the errors related with security.
8159
8780
  * See https://stackoverflow.com/a/49100966. */
8160
- devtool: masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false,
8781
+ devtool: (() => {
8782
+ /* eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check --
8783
+ * Currently no sourcemap demanded for non-browser-like environments;
8784
+ * */
8785
+ switch (entryPointsGroupSettings.targetRuntime.type) {
8786
+ case SupportedECMA_ScriptRuntimesTypes.browser:
8787
+ case SupportedECMA_ScriptRuntimesTypes.electronRendererProcess:
8788
+ case SupportedECMA_ScriptRuntimesTypes.electronPreload:
8789
+ return masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false;
8790
+ default: return false;
8791
+ }
8792
+ })(),
8161
8793
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
8162
8794
  node: {
8163
8795
  __dirname: true,
@@ -8207,8 +8839,8 @@ class WebpackConfigGenerator {
8207
8839
  options: { mode: "compile" }
8208
8840
  },
8209
8841
  {
8210
- test: /\.ydfr\.pug$/u,
8211
- loader: "pug3-ast-loader"
8842
+ test: /\.ydur\.pug$/u,
8843
+ loader: "@yamato-daiwa/universal-reactive-webpack-loader"
8212
8844
  },
8213
8845
  {
8214
8846
  loader: "@webdiscus/pug-loader",
@@ -8248,6 +8880,7 @@ class WebpackConfigGenerator {
8248
8880
  use: [
8249
8881
  "vue-style-loader",
8250
8882
  "css-loader",
8883
+ postCSS_LoaderSettings,
8251
8884
  "stylus-loader"
8252
8885
  ]
8253
8886
  },
@@ -8255,6 +8888,7 @@ class WebpackConfigGenerator {
8255
8888
  use: [
8256
8889
  "style-loader",
8257
8890
  "css-loader",
8891
+ postCSS_LoaderSettings,
8258
8892
  "stylus-loader"
8259
8893
  ]
8260
8894
  }
@@ -8263,8 +8897,8 @@ class WebpackConfigGenerator {
8263
8897
  ]
8264
8898
  },
8265
8899
  resolve: {
8266
- extensions: ECMA_ScriptLogicProcessingConfigRepresentative.
8267
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
8900
+ extensions: Array.
8901
+ from(ECMA_ScriptLogicProcessingConfigRepresentative.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).
8268
8902
  map((fileNameExtensionWithoutDot) => `.${fileNameExtensionWithoutDot}`),
8269
8903
  alias: {
8270
8904
  ...WebpackSpecialist_1.default.convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
@@ -8362,7 +8996,7 @@ class WebpackConfigGenerator {
8362
8996
  for (const entryPointSourceFileAbsolutePath of entryPointsSourceFilesAbsolutePaths) {
8363
8997
  const filePathWithoutFilenameExtension = (0, es_extensions_1.removeAllFileNameExtensions)(entryPointSourceFileAbsolutePath);
8364
8998
  if (entryPointsSourceFiles.has(filePathWithoutFilenameExtension)) {
8365
- es_extensions_1.Logger.throwErrorAndLog({
8999
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8366
9000
  errorType: "IncompatibleFilesError",
8367
9001
  description: "Incompatible files",
8368
9002
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8379,6 +9013,49 @@ class WebpackConfigGenerator {
8379
9013
  exports["default"] = WebpackConfigGenerator;
8380
9014
 
8381
9015
 
9016
+ /***/ }),
9017
+
9018
+ /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts":
9019
+ /*!*************************************************************************************************!*\
9020
+ !*** ./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts ***!
9021
+ \*************************************************************************************************/
9022
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9023
+
9024
+
9025
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9026
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9027
+ };
9028
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9029
+ /* ─── Files Watchers ─────────────────────────────────────────────────────────────────────────────────────────────── */
9030
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
9031
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
9032
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
9033
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9034
+ class ElectronFilesWatcher extends FilesPassiveWatcher_1.default {
9035
+ onAnyEventRelatedWithActualFilesHandler;
9036
+ static initialize(initializationRequirements) {
9037
+ FilesMasterWatcher_1.default.addPassiveWatcher(new ElectronFilesWatcher(initializationRequirements));
9038
+ }
9039
+ constructor({ electronSettings, loggingSettings, onAnyEventRelatedWithActualFilesHandler }) {
9040
+ super({
9041
+ ID: "BROWSER_COORDINATOR_RELATED_FILES_WATCHER",
9042
+ targetFilesGlobSelectors: [
9043
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
9044
+ basicDirectoryPath: electronSettings.hotReloadingForLocalDevelopmentMode.rootDirectoryAbsolutePath
9045
+ }),
9046
+ ...electronSettings.hotReloadingForLocalDevelopmentMode.ignoredFilesAndDirectoriesAbsolutePaths.map((excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory) => es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory))
9047
+ ],
9048
+ mustLogEvents: loggingSettings.filesWatcherEvents
9049
+ });
9050
+ this.onAnyEventRelatedWithActualFilesHandler = onAnyEventRelatedWithActualFilesHandler;
9051
+ }
9052
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
9053
+ this.onAnyEventRelatedWithActualFilesHandler(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName);
9054
+ }
9055
+ }
9056
+ exports["default"] = ElectronFilesWatcher;
9057
+
9058
+
8382
9059
  /***/ }),
8383
9060
 
8384
9061
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupEntryPointVinylFile.ts":
@@ -8484,10 +9161,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8484
9161
  return (mod && mod.__esModule) ? mod : { "default": mod };
8485
9162
  };
8486
9163
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8487
- const addPenultimateFileNameExtension_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Strings/addPenultimateFileNameExtension */ "./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts"));
9164
+ const addPenultimateFileNameExtension_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension */ "./Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension.ts"));
8488
9165
  var MarkupProcessingRestrictions;
8489
9166
  (function (MarkupProcessingRestrictions) {
8490
- MarkupProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["pug"];
9167
+ MarkupProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set(["pug"]);
9168
+ MarkupProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
8491
9169
  MarkupProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["html"];
8492
9170
  let OutputFormats;
8493
9171
  (function (OutputFormats) {
@@ -8574,9 +9252,8 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
8574
9252
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
8575
9253
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
8576
9254
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8577
- supportedSourceFileNameExtensionsWithoutLeadingDots;
8578
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8579
- supportedSourceFileNameExtensionsWithoutLeadingDots;
9255
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
9256
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedMarkupProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
8580
9257
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedMarkupProcessingSettings.common.
8581
9258
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
8582
9259
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -9035,6 +9712,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
9035
9712
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
9036
9713
  type: Number,
9037
9714
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
9715
+ isNaN_Forbidden: true,
9038
9716
  isUndefinedForbidden: false,
9039
9717
  isNullForbidden: true
9040
9718
  },
@@ -9635,7 +10313,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9635
10313
  constructor(markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
9636
10314
  super({
9637
10315
  projectBuildingMasterConfigRepresentative,
9638
- taskTitleForLogging: "Markup processing"
10316
+ taskTitleForLogging: "Markup Processing"
9639
10317
  });
9640
10318
  this.logging = {
9641
10319
  pathsOfFilesWillBeProcessed: markupProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -9663,7 +10341,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9663
10341
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9664
10342
  onStreamStartedEventHandler: MarkupProcessor.managePageVariations
9665
10343
  })).
9666
- pipe(this.logProcessedFilesIfMust()).
10344
+ pipe(super.logInputFilesIfMust()).
9667
10345
  pipe((0, gulp_data_1.default)((vinylFile) => ({
9668
10346
  ...vinylFile.pageStateDependentVariationData ?? null,
9669
10347
  ...vinylFile.localizationData ?? null,
@@ -9694,6 +10372,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9694
10372
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9695
10373
  onStreamStartedEventHandler: this.onOutputHTML_FileReady.bind(this)
9696
10374
  })).
10375
+ pipe(super.logOutputFilesIfMust()).
9697
10376
  pipe(gulp_1.default.dest((targetFile) => MarkupEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile))).
9698
10377
  on("end", this.onStreamEnded.bind(this));
9699
10378
  }
@@ -9937,7 +10616,7 @@ const puppeteer_1 = __importDefault(__webpack_require__(/*! puppeteer */ "puppet
9937
10616
  /* ─── Generals utils ────────────────────────────────────────────────────────────────────────────────────────────── */
9938
10617
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
9939
10618
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9940
- const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
10619
+ const Stopwatch_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Stopwatch */ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts"));
9941
10620
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
9942
10621
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
9943
10622
  const node_html_parser_1 = __webpack_require__(/*! node-html-parser */ "node-html-parser");
@@ -10162,7 +10841,7 @@ class AccessibilityInspector {
10162
10841
  title: AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog.title,
10163
10842
  description: `\n${accessibilityIssuesLogForEachFile.join("\n")}`
10164
10843
  });
10165
- es_extensions_1.Logger.throwErrorAndLog({
10844
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10166
10845
  errorType: "AccessibilityIssuesFoundError",
10167
10846
  ...AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog,
10168
10847
  occurrenceLocation: "AccessibilityInspector.reportCachedValidationsResultsAndFinalize"
@@ -10396,9 +11075,10 @@ class AccessibilityInspector {
10396
11075
  const numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1 = numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 + highlightedCodeFragment.length;
10397
11076
  /* [ Maintainability ] Keep these variables for easy debugging. */
10398
11077
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11078
+ fromStart: true,
10399
11079
  targetArray: rawHTML_CodeSplitToLines,
10400
11080
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10401
- endingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
11081
+ endingElementNumber__numerationFrom1__including: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
10402
11082
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10403
11083
  mutably: false
10404
11084
  }).join("\n")}\n` +
@@ -10415,9 +11095,10 @@ class AccessibilityInspector {
10415
11095
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
10416
11096
  })}\n` +
10417
11097
  (0, es_extensions_1.cropArray)({
11098
+ fromStart: true,
10418
11099
  targetArray: rawHTML_CodeSplitToLines,
10419
11100
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
10420
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11101
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10421
11102
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10422
11103
  mutably: false
10423
11104
  }).join("\n");
@@ -10545,7 +11226,7 @@ class AccessibilityInspector {
10545
11226
  accumulatingValue[filePathRelativeToConsumingProjectRootDirectory] = cachedInspectionRawResultsForSpecificFile;
10546
11227
  return accumulatingValue;
10547
11228
  }, {});
10548
- fs_1.default.writeFileSync(this.CACHED_INSPECTIONS_RESULTS_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(cachedInspectionsResultsFileContent));
11229
+ fs_1.default.writeFileSync(this.CACHED_INSPECTIONS_RESULTS_FILE_ABSOLUTE_PATH, JSON.stringify(cachedInspectionsResultsFileContent, null, 2));
10549
11230
  }
10550
11231
  /* ─── Routines ─────────────────────────────────────────────────────────────────────────────────────────────────── */
10551
11232
  static async initializeAsynchronousRequirements({ cachedInspectionsResultsDirectoryAbsolutePath, cachedInspectionResultsFileAbsolutePath }) {
@@ -10585,7 +11266,7 @@ class AccessibilityInspector {
10585
11266
  }
10586
11267
  static async getInstanceOnceReady() {
10587
11268
  if (!AccessibilityInspector.hasInitializationStarted) {
10588
- es_extensions_1.Logger.throwErrorAndLog({
11269
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10589
11270
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
10590
11271
  className: "AccessibilityInspector",
10591
11272
  initializingMethodName: "beginInitialization"
@@ -10595,7 +11276,7 @@ class AccessibilityInspector {
10595
11276
  });
10596
11277
  }
10597
11278
  if (AccessibilityInspector.hasInitializationFailed) {
10598
- es_extensions_1.Logger.throwErrorAndLog({
11279
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10599
11280
  errorType: "InitializationFailedError",
10600
11281
  description: "The initialization has failed thus the accessibility checking could not be executed.",
10601
11282
  title: "Initialization failed",
@@ -10627,13 +11308,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
10627
11308
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
10628
11309
  const accessibilityInspectorLocalization__english = {
10629
11310
  generateFileIsEmptyWarningLog: ({ targetFileRelativePath }) => ({
10630
- title: "HTML code accessibility inspection terminated because of empty file",
11311
+ title: "HTML Code Accessibility Inspection Terminated because of Empty File",
10631
11312
  description: `File "${targetFileRelativePath}" is empty, no HTML to inspect. ` +
10632
11313
  "Please note that at production-like modes the empty HTML files are being considered as invalid."
10633
11314
  }),
10634
11315
  generateInspectionStartedInfoLog: ({ targetFileRelativePath }) => ({
10635
- title: "HTML code accessibility inspection started",
10636
- description: `Begin the accessibility inspection of HTML code in the file "${targetFileRelativePath}" ...`
11316
+ title: "HTML Code Accessibility Inspection Started",
11317
+ description: `Target file: ${targetFileRelativePath}`
10637
11318
  }),
10638
11319
  inspectionFailedErrorLog: {
10639
11320
  title: "HTML conde accessibility checking failed",
@@ -10643,11 +11324,11 @@ const accessibilityInspectorLocalization__english = {
10643
11324
  "We believe that you will check the HTML accessibility afterwards and fix the issues if they will be."
10644
11325
  },
10645
11326
  generateInspectionOfSingleFilesHasFinishedWithNoIssuesFoundSuccessLog: ({ targetFileRelativePath, secondsElapsed }) => ({
10646
- title: "HTML code accessibility cheking of single file has finished with no issues found",
11327
+ title: "HTML Code Accessibility Checking of Single File Complete without Issues",
10647
11328
  description: `The HTML code in file "${targetFileRelativePath}" has no the accessibility issues.\n` +
10648
- (0, es_extensions_1.isUndefined)(secondsElapsed) ?
10649
- "(Cached result, no changes in output HTML code since last building)" :
10650
- `${secondsElapsed} seconds taken.`
11329
+ ((0, es_extensions_1.isUndefined)(secondsElapsed) ?
11330
+ "(Cached result, no changes in output HTML code since last building)" :
11331
+ `${secondsElapsed} seconds taken.`)
10651
11332
  }),
10652
11333
  generateIssuesFoundInSingleFileErrorLog: ({ targetFileRelativePath, formattedErrorsAndWarnings }) => ({
10653
11334
  title: "HTML accessibility inspection, issue(s) found",
@@ -10716,7 +11397,7 @@ const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */
10716
11397
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
10717
11398
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
10718
11399
  const nanoid_1 = __webpack_require__(/*! nanoid */ "nanoid");
10719
- const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
11400
+ const Stopwatch_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Stopwatch */ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts"));
10720
11401
  class HTML_Validator {
10721
11402
  /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
10722
11403
  static selfSingleInstance = null;
@@ -10762,19 +11443,22 @@ class HTML_Validator {
10762
11443
  type: Number,
10763
11444
  isUndefinedForbidden: false,
10764
11445
  isNullForbidden: true,
10765
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11446
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11447
+ isNaN_Forbidden: true
10766
11448
  },
10767
11449
  lastColumn: {
10768
11450
  type: Number,
10769
11451
  isUndefinedForbidden: false,
10770
11452
  isNullForbidden: true,
10771
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11453
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11454
+ isNaN_Forbidden: true
10772
11455
  },
10773
11456
  firstColumn: {
10774
11457
  type: Number,
10775
11458
  isUndefinedForbidden: false,
10776
11459
  isNullForbidden: true,
10777
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11460
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11461
+ isNaN_Forbidden: true
10778
11462
  },
10779
11463
  subType: {
10780
11464
  type: String,
@@ -10798,13 +11482,15 @@ class HTML_Validator {
10798
11482
  isUndefinedForbidden: false,
10799
11483
  isNullForbidden: true,
10800
11484
  /* [ Theory ] The 0 is rare but possible (at least was possible for May 2025). */
10801
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
11485
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11486
+ isNaN_Forbidden: true
10802
11487
  },
10803
11488
  hiliteLength: {
10804
11489
  type: Number,
10805
11490
  isUndefinedForbidden: false,
10806
11491
  isNullForbidden: true,
10807
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11492
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11493
+ isNaN_Forbidden: true
10808
11494
  }
10809
11495
  }
10810
11496
  }
@@ -10862,18 +11548,21 @@ class HTML_Validator {
10862
11548
  lineNumber__numerationFrom1: {
10863
11549
  type: Number,
10864
11550
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11551
+ isNaN_Forbidden: true,
10865
11552
  isUndefinedForbidden: true,
10866
11553
  isNullForbidden: true
10867
11554
  },
10868
11555
  startingColumnNumber__numerationFrom1: {
10869
11556
  type: Number,
10870
11557
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11558
+ isNaN_Forbidden: true,
10871
11559
  isUndefinedForbidden: true,
10872
11560
  isNullForbidden: true
10873
11561
  },
10874
11562
  endingColumnNumber__numerationFrom1: {
10875
11563
  type: Number,
10876
11564
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11565
+ isNaN_Forbidden: true,
10877
11566
  isUndefinedForbidden: true,
10878
11567
  isNullForbidden: true
10879
11568
  },
@@ -11163,9 +11852,10 @@ class HTML_Validator {
11163
11852
  const numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 = firstColumn ?? numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1;
11164
11853
  /* [ Maintainability ] Keep these variables for easier debugging. */
11165
11854
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11855
+ fromStart: true,
11166
11856
  targetArray: HTML_CodeSplitToLines,
11167
11857
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11168
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMinimalValue)({
11858
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMinimalValue)({
11169
11859
  targetNumber: lineNumberOfActualCodeFragment__numerationFrom1 - 1, minimalValue: 1
11170
11860
  }),
11171
11861
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
@@ -11192,9 +11882,10 @@ class HTML_Validator {
11192
11882
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
11193
11883
  })}\n` +
11194
11884
  (0, es_extensions_1.cropArray)({
11885
+ fromStart: true,
11195
11886
  targetArray: HTML_CodeSplitToLines,
11196
11887
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
11197
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11888
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11198
11889
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
11199
11890
  mutably: false
11200
11891
  }).join("\n");
@@ -11337,8 +12028,8 @@ class HTML_Validator {
11337
12028
  return es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
11338
12029
  parentDirectoryAbsolutePath,
11339
12030
  [
11340
- `${HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART}.`,
11341
- ...(0, es_extensions_1.isUndefined)(projectBuildingSelectiveExecutionID) ? [] : [`${projectBuildingSelectiveExecutionID}.`],
12031
+ HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART,
12032
+ ...(0, es_extensions_1.isUndefined)(projectBuildingSelectiveExecutionID) ? [] : [projectBuildingSelectiveExecutionID],
11342
12033
  `${(0, es_extensions_1.toLowerCamelCase)(consumingProjectBuildingMode)}.json`
11343
12034
  ].join(".")
11344
12035
  ]);
@@ -11351,7 +12042,7 @@ class HTML_Validator {
11351
12042
  return accumulatingValue;
11352
12043
  }, {});
11353
12044
  es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
11354
- filePath: this.absolutePathOfParentDirectoryOfCachedValidationsResultsFile,
12045
+ filePath: this.absolutePathOfCachedValidationsResultsFile,
11355
12046
  content: JSON.stringify(cachedValidationsResultsFileContent, null, 2),
11356
12047
  synchronously: true
11357
12048
  });
@@ -11359,7 +12050,7 @@ class HTML_Validator {
11359
12050
  /* ━━━ Routines ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
11360
12051
  static getExpectedToBeInitializedSelfSingleInstance() {
11361
12052
  return HTML_Validator.selfSingleInstance ??
11362
- es_extensions_1.Logger.throwErrorAndLog({
12053
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
11363
12054
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
11364
12055
  className: "HTML_Validator",
11365
12056
  initializingMethodName: "initialize"
@@ -12196,8 +12887,8 @@ class ResourcesPointersResolverForHTML {
12196
12887
  });
12197
12888
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile) ||
12198
12889
  !supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
12199
- includes(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
12200
- const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
12890
+ has(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
12891
+ const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = Array.from(supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
12201
12892
  targetPath: sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension,
12202
12893
  targetFileNameExtensionWithOrWithoutLeadingDot: supportedStylesheetFileNameExtensionWithoutLeadingDot,
12203
12894
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
@@ -12322,7 +13013,8 @@ class CodeListingPugFilter {
12322
13013
  type: Number,
12323
13014
  isUndefinedForbidden: false,
12324
13015
  isNullForbidden: true,
12325
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
13016
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
13017
+ isNaN_Forbidden: true
12326
13018
  },
12327
13019
  indentationString: {
12328
13020
  type: String,
@@ -12338,7 +13030,7 @@ class CodeListingPugFilter {
12338
13030
  static apply(sourcePugCode, rawOptions) {
12339
13031
  const rawOptionsProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawOptions, CodeListingPugFilter.optionsSpecification);
12340
13032
  if (rawOptionsProcessingResult.isRawDataInvalid) {
12341
- es_extensions_1.Logger.throwErrorAndLog({
13033
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12342
13034
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12343
13035
  customMessage: "One or more invalid options found for \"CodeListing\" pug filer.\n" +
12344
13036
  es_extensions_1.RawObjectDataProcessor.formatValidationErrorsList(rawOptionsProcessingResult.validationErrorsMessages)
@@ -12392,13 +13084,13 @@ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_re
12392
13084
  const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
12393
13085
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12394
13086
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12395
- const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/NodeJS/isSubdirectory */ "./UtilsIncubator/NodeJS/isSubdirectory.ts"));
13087
+ const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory */ "./Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory.ts"));
12396
13088
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
12397
13089
  /* ─── Localization ───────────────────────────────────────────────────────────────────────────────────────────────── */
12398
13090
  const MarkupProcessingRawSettingsNormalizerLocalization_english_1 = __importDefault(__webpack_require__(/*! ./MarkupProcessingRawSettingsNormalizerLocalization.english */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts"));
12399
13091
  class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
12400
13092
  static localization = MarkupProcessingRawSettingsNormalizerLocalization_english_1.default;
12401
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
13093
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
12402
13094
  markupProcessingSettings__fromFile__rawValid;
12403
13095
  unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths;
12404
13096
  commonStringResources;
@@ -12412,7 +13104,8 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12412
13104
  });
12413
13105
  return {
12414
13106
  common: {
12415
- supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
13107
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
13108
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: MarkupProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
12416
13109
  supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
12417
13110
  mustResolveResourcesReferencesToAbsolutePath: dataHoldingSelfInstance.
12418
13111
  computeMustResolveResourcesReferencesToAbsolutePathPropertyValue(),
@@ -12553,7 +13246,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12553
13246
  });
12554
13247
  }
12555
13248
  catch (error) {
12556
- es_extensions_1.Logger.throwErrorAndLog({
13249
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12557
13250
  errorInstance: new es_extensions_1.FileReadingFailedError({
12558
13251
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12559
13252
  generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage({
@@ -12590,7 +13283,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12590
13283
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
12591
13284
  });
12592
13285
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData)) {
12593
- es_extensions_1.Logger.throwErrorAndLog({
13286
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12594
13287
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12595
13288
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12596
13289
  generateInvalidValueOfStaticPreviewStateDependentPagesVariationsSpecificationAssociativeArrayMessage({
@@ -12606,7 +13299,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12606
13299
  });
12607
13300
  }
12608
13301
  if (!(0, es_extensions_1.isNonEmptyString)(stateDependentPageVariationsData.$stateObjectTypeVariableName)) {
12609
- es_extensions_1.Logger.throwErrorAndLog({
13302
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12610
13303
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12611
13304
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableNameMessage({
12612
13305
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12620,7 +13313,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12620
13313
  });
12621
13314
  }
12622
13315
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData.$stateDependentVariations)) {
12623
- es_extensions_1.Logger.throwErrorAndLog({
13316
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12624
13317
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12625
13318
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12626
13319
  generateInvalidPageStateDependentVariationsSpecificationMessage({
@@ -12639,7 +13332,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12639
13332
  for (const [fineNamePostfix, stateData] of Object.entries(stateDependentPageVariationsData.$stateDependentVariations)) {
12640
13333
  const derivedFileAbsolutePath = `${(0, es_extensions_1.removeAllFileNameExtensions)(markupSourceFileFileAbsolutePath)}${fineNamePostfix}.pug`;
12641
13334
  if (!(0, es_extensions_1.isArbitraryObject)(stateData)) {
12642
- es_extensions_1.Logger.throwErrorAndLog({
13335
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12643
13336
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12644
13337
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableMessage({
12645
13338
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12676,7 +13369,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12676
13369
  });
12677
13370
  }
12678
13371
  catch (error) {
12679
- es_extensions_1.Logger.throwErrorAndLog({
13372
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12680
13373
  errorInstance: new es_extensions_1.FileReadingFailedError({
12681
13374
  filePath: importFromStaticDataFile.fileRelativePath
12682
13375
  }),
@@ -12813,7 +13506,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12813
13506
  excludedFilesPathsRelativeToSourcesFilesTopDirectory?.
12814
13507
  map((excludedFilePathRelativeRelativeToSourcesFileTopDirectory) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceFilesTopDirectoryAbsolutePath, excludedFilePathRelativeRelativeToSourcesFileTopDirectory], { alwaysForwardSlashSeparators: true })) ??
12815
13508
  []).
12816
- concat(Array.from((0, es_extensions_1.removeMultipleElementsFromSetByPredicate)({
13509
+ concat(Array.from((0, es_extensions_1.removeSetElementsByPredicates)({
12817
13510
  targetSet: this.unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths,
12818
13511
  predicate: (commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath) => (0, isSubdirectory_1.default)({
12819
13512
  whichPath: commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath,
@@ -12832,7 +13525,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12832
13525
  });
12833
13526
  }
12834
13527
  catch (error) {
12835
- es_extensions_1.Logger.throwErrorAndLog({
13528
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12836
13529
  errorInstance: new es_extensions_1.FileReadingFailedError({
12837
13530
  customMessage: `Unable to read the file with string resources at "${stringResourcesFileAbsolutePath}".`
12838
13531
  }),
@@ -12843,7 +13536,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12843
13536
  });
12844
13537
  }
12845
13538
  if (!(0, es_extensions_1.isArbitraryObject)(stringResources)) {
12846
- es_extensions_1.Logger.throwErrorAndLog({
13539
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12847
13540
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12848
13541
  customMessage: `The content of string resources files "${stringResourcesFileAbsolutePath}" is not an object.`
12849
13542
  }),
@@ -12986,7 +13679,7 @@ class RoutingSettingsNormalizer {
12986
13679
  schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12987
13680
  });
12988
13681
  if (!(0, es_extensions_1.isArbitraryObject)(routingLocalization)) {
12989
- es_extensions_1.Logger.throwErrorAndLog({
13682
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12990
13683
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12991
13684
  customMessage: `Malformed routing localization at "${routingLocalizationFileAbsolutePath}".`
12992
13685
  }),
@@ -13019,7 +13712,7 @@ class RoutingSettingsNormalizer {
13019
13712
  }
13020
13713
  static normalizeDepthLevelWiseRecursively({ rawRoutingOfSpecificDepthLevel, outputWorkpiece, localization }) {
13021
13714
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoutingOfSpecificDepthLevel)) {
13022
- es_extensions_1.Logger.throwErrorAndLog({
13715
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13023
13716
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13024
13717
  customMessage: [
13025
13718
  "Malformed routing",
@@ -13037,7 +13730,7 @@ class RoutingSettingsNormalizer {
13037
13730
  for (const [routeKey, rawRoute] of Object.entries(rawRoutingOfSpecificDepthLevel)) {
13038
13731
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = routeKey;
13039
13732
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoute)) {
13040
- es_extensions_1.Logger.throwErrorAndLog({
13733
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13041
13734
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13042
13735
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13043
13736
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawRoute)} found.`
@@ -13070,7 +13763,7 @@ class RoutingSettingsNormalizer {
13070
13763
  return null;
13071
13764
  }
13072
13765
  if (!(0, es_extensions_1.isString)(rawURI)) {
13073
- es_extensions_1.Logger.throwErrorAndLog({
13766
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13074
13767
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13075
13768
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13076
13769
  `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawURI)} found.`
@@ -13082,7 +13775,7 @@ class RoutingSettingsNormalizer {
13082
13775
  let URI_Workpiece = rawURI;
13083
13776
  if (URI_Workpiece.startsWith("`")) {
13084
13777
  if ((0, es_extensions_1.isUndefined)(localization)) {
13085
- es_extensions_1.Logger.throwErrorAndLog({
13778
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13086
13779
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13087
13780
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13088
13781
  "The specified URI has been wrapped to backticks while no localization specified."
@@ -13107,7 +13800,7 @@ class RoutingSettingsNormalizer {
13107
13800
  regularExpressionWithCapturingGroups: /(?<interpolation>\$\{\s*(?<variable>(?:\w|\.)+)\s*\})/gum,
13108
13801
  replacer(matching) {
13109
13802
  const variableSubstitution = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, matching.namedCapturingGroups.variable);
13110
- if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution)) {
13803
+ if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution, { mustConsiderNaN_AsNumber: false })) {
13111
13804
  return null;
13112
13805
  }
13113
13806
  return String(variableSubstitution);
@@ -13117,7 +13810,7 @@ class RoutingSettingsNormalizer {
13117
13810
  if (URI_Workpiece.includes("$")) {
13118
13811
  const localeDependentURI = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, URI_Workpiece);
13119
13812
  if (!(0, es_extensions_1.isString)(localeDependentURI)) {
13120
- es_extensions_1.Logger.throwErrorAndLog({
13813
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13121
13814
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13122
13815
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13123
13816
  "The specified URI is including backticks while no localization specified."
@@ -13133,7 +13826,7 @@ class RoutingSettingsNormalizer {
13133
13826
  }
13134
13827
  static normalizeHeading(rawHeading, localization) {
13135
13828
  if (!(0, es_extensions_1.isString)(rawHeading)) {
13136
- es_extensions_1.Logger.throwErrorAndLog({
13829
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13137
13830
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13138
13831
  customMessage: [
13139
13832
  `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13147,7 +13840,7 @@ class RoutingSettingsNormalizer {
13147
13840
  let headingWorkpiece = rawHeading;
13148
13841
  if (headingWorkpiece.startsWith("`")) {
13149
13842
  if ((0, es_extensions_1.isEitherUndefinedOrNull)(localization)) {
13150
- es_extensions_1.Logger.throwErrorAndLog({
13843
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13151
13844
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13152
13845
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".` +
13153
13846
  "The specified URI is including backticks while no localization specified."
@@ -13168,7 +13861,7 @@ class RoutingSettingsNormalizer {
13168
13861
  });
13169
13862
  const localizedHeading = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, headingWorkpiece);
13170
13863
  if (!(0, es_extensions_1.isString)(localizedHeading)) {
13171
- es_extensions_1.Logger.throwErrorAndLog({
13864
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13172
13865
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13173
13866
  customMessage: [
13174
13867
  `Malformed localized heading at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13187,7 +13880,7 @@ class RoutingSettingsNormalizer {
13187
13880
  static normalizeSectioning(rawSectioningSpecification, parentRouteURI, localization) {
13188
13881
  RoutingSettingsNormalizer.routingPathSegments.push("$sectioning");
13189
13882
  if (!(0, es_extensions_1.isString)(parentRouteURI)) {
13190
- es_extensions_1.Logger.throwErrorAndLog({
13883
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13191
13884
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13192
13885
  customMessage: `The sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}" has been defined ` +
13193
13886
  "while the $URI of the parent route has not been. " +
@@ -13198,7 +13891,7 @@ class RoutingSettingsNormalizer {
13198
13891
  });
13199
13892
  }
13200
13893
  if (!(0, es_extensions_1.isNonEmptyString)(rawSectioningSpecification.$specificationFileRelativePath)) {
13201
- es_extensions_1.Logger.throwErrorAndLog({
13894
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13202
13895
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13203
13896
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.` +
13204
13897
  "$specificationFileRelativePath\"." +
@@ -13225,7 +13918,7 @@ class RoutingSettingsNormalizer {
13225
13918
  });
13226
13919
  }
13227
13920
  catch (error) {
13228
- es_extensions_1.Logger.throwErrorAndLog({
13921
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13229
13922
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13230
13923
  customMessage: "The error has occurred during the reading of sectioning file at " +
13231
13924
  `"${rawSectioningSpecification.$specificationFileRelativePath}".`
@@ -13237,7 +13930,7 @@ class RoutingSettingsNormalizer {
13237
13930
  }
13238
13931
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(rawSectioningSchemaFileAbsolutePath);
13239
13932
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningSchema)) {
13240
- es_extensions_1.Logger.throwErrorAndLog({
13933
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13241
13934
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13242
13935
  customMessage: `Malformed sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}". ` +
13243
13936
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningSchema)} found.`
@@ -13248,7 +13941,7 @@ class RoutingSettingsNormalizer {
13248
13941
  }
13249
13942
  if ((0, es_extensions_1.isArbitraryObject)(rawSectioningSpecification.$localizations)) {
13250
13943
  if ((0, es_extensions_1.isUndefined)(localization)) {
13251
- es_extensions_1.Logger.throwErrorAndLog({
13944
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13252
13945
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13253
13946
  customMessage: "The $localizations has been specified for sectioning " +
13254
13947
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}", but common localizations for ` +
@@ -13262,7 +13955,7 @@ class RoutingSettingsNormalizer {
13262
13955
  const targetLocalizationFileRelativePath = rawSectioningSpecification.$localizations[localization.locale];
13263
13956
  RoutingSettingsNormalizer.routingPathSegments.push("$localizations", localization.locale);
13264
13957
  if (!(0, es_extensions_1.isString)(targetLocalizationFileRelativePath)) {
13265
- es_extensions_1.Logger.throwErrorAndLog({
13958
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13266
13959
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13267
13960
  customMessage: "Invalid path to sectioning localization at " +
13268
13961
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
@@ -13283,7 +13976,7 @@ class RoutingSettingsNormalizer {
13283
13976
  });
13284
13977
  }
13285
13978
  catch (error) {
13286
- es_extensions_1.Logger.throwErrorAndLog({
13979
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13287
13980
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: targetLocalizationFileAbsolutePath }),
13288
13981
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
13289
13982
  occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(...parameters)",
@@ -13292,7 +13985,7 @@ class RoutingSettingsNormalizer {
13292
13985
  }
13293
13986
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(targetLocalizationFileAbsolutePath);
13294
13987
  if (!(0, es_extensions_1.isArbitraryObject)(sectioningRawLocalization)) {
13295
- es_extensions_1.Logger.throwErrorAndLog({
13988
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13296
13989
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13297
13990
  customMessage: `Malformed sectioning localization at "${targetLocalizationFileAbsolutePath}".`
13298
13991
  }),
@@ -13321,7 +14014,7 @@ class RoutingSettingsNormalizer {
13321
14014
  }
13322
14015
  static normalizeSectioningDepthLevelRecursively({ rawSectioningOfSpecificDepthLevel, outputWorkpiece, localization, parentRouteURI }) {
13323
14016
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningOfSpecificDepthLevel)) {
13324
- es_extensions_1.Logger.throwErrorAndLog({
14017
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13325
14018
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13326
14019
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13327
14020
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningOfSpecificDepthLevel)} found.`
@@ -13339,7 +14032,7 @@ class RoutingSettingsNormalizer {
13339
14032
  for (const [sectionKey, sectionRawMetadata] of Object.entries(rawSectioningOfSpecificDepthLevel)) {
13340
14033
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = sectionKey;
13341
14034
  if (!(0, es_extensions_1.isArbitraryObject)(sectionRawMetadata)) {
13342
- es_extensions_1.Logger.throwErrorAndLog({
14035
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13343
14036
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13344
14037
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".` +
13345
14038
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(sectionRawMetadata)} found.`
@@ -13349,7 +14042,7 @@ class RoutingSettingsNormalizer {
13349
14042
  });
13350
14043
  }
13351
14044
  if (!(0, es_extensions_1.isString)(sectionRawMetadata.$anchor)) {
13352
- es_extensions_1.Logger.throwErrorAndLog({
14045
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13353
14046
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13354
14047
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13355
14048
  `The property "$anchor" must be defined with string while ${typeof sectionRawMetadata} found.`
@@ -13453,7 +14146,7 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13453
14146
  })
13454
14147
  });
13455
14148
  if (!fs_1.default.existsSync(compiledTypeScriptImportingSettings.sourceFileAbsolutePath)) {
13456
- es_extensions_1.Logger.throwErrorAndLog({
14149
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13457
14150
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
13458
14151
  customMessage: `The TypeScript file "${compiledTypeScriptImportingSettings.sourceFileAbsolutePath}" for ` +
13459
14152
  "the exporting to Pug was found. " +
@@ -13486,10 +14179,11 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13486
14179
  return gulp_1.default.
13487
14180
  src(this.typeScriptSourceFileAbsolutePath).
13488
14181
  pipe(super.handleErrorIfItWillOccur()).
13489
- pipe(super.logProcessedFilesIfMust()).
14182
+ pipe(super.logInputFilesIfMust()).
13490
14183
  pipe((0, webpack_stream_1.default)(this.webpackConfiguration,
13491
14184
  /* @ts-ignore: TS2345 The null as second argument is obeying to README of "webpack-stream" package. */
13492
14185
  null, this.onBuildHasCompleted.bind(this))).
14186
+ pipe(super.logOutputFilesIfMust()).
13493
14187
  pipe(GulpStreamModifier_1.default.modify({
13494
14188
  onStreamStartedEventCommonHandler: async (vinylFile) => {
13495
14189
  const outputJavaScriptCode = (0, extractStringifiedContentFromVinylFile_1.default)(vinylFile);
@@ -13657,7 +14351,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13657
14351
  pugLintConfig = config_file_1.default.load();
13658
14352
  }
13659
14353
  catch (error) {
13660
- es_extensions_1.Logger.throwErrorAndLog({
14354
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13661
14355
  errorInstance: new es_extensions_1.InvalidConfigError({
13662
14356
  customMessage: "Invalid puglint config."
13663
14357
  }),
@@ -13709,7 +14403,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13709
14403
  constructor({ markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative, pugLintConfig }) {
13710
14404
  super({
13711
14405
  projectBuildingMasterConfigRepresentative,
13712
- taskTitleForLogging: "Markup processing / Markup source code linting",
14406
+ taskTitleForLogging: "Markup Processing / Markup Source Code Linting",
13713
14407
  sourceFilesCachedCheckingResults: {
13714
14408
  fileNameWithExtension: "MarkupLintingCache.json",
13715
14409
  contentSpecification: {
@@ -13755,13 +14449,15 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13755
14449
  type: Number,
13756
14450
  isUndefinedForbidden: true,
13757
14451
  isNullForbidden: true,
13758
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14452
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14453
+ isNaN_Forbidden: true
13759
14454
  },
13760
14455
  columnNumber: {
13761
14456
  type: Number,
13762
14457
  isUndefinedForbidden: false,
13763
14458
  isNullForbidden: true,
13764
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14459
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14460
+ isNaN_Forbidden: true
13765
14461
  }
13766
14462
  }
13767
14463
  }
@@ -13805,7 +14501,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13805
14501
  this.pugLintInstance.configure(this.pugLintConfig);
13806
14502
  }
13807
14503
  catch (error) {
13808
- es_extensions_1.Logger.throwErrorAndLog({
14504
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13809
14505
  errorInstance: new es_extensions_1.InvalidConfigError({
13810
14506
  customMessage: MarkupSourceCodeLinter.localization.pugLintConfigurationIsInvalid.description
13811
14507
  }),
@@ -13831,7 +14527,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13831
14527
  }));
13832
14528
  }
13833
14529
  catch (error) {
13834
- es_extensions_1.Logger.throwErrorAndLog({
14530
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13835
14531
  errorType: "MarkupLintingError",
13836
14532
  title: MarkupSourceCodeLinter.localization.lintingFailedErrorLog.title,
13837
14533
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -14009,7 +14705,7 @@ const RevisioningSettingsNormalizer_1 = __importDefault(__webpack_require__(/*!
14009
14705
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14010
14706
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
14011
14707
  class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
14012
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
14708
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
14013
14709
  static normalize({ stylesProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
14014
14710
  const dataHoldingSelfInstance = new StylesProcessingRawSettingsNormalizer({
14015
14711
  projectBuildingCommonSettings__normalized: commonSettings__normalized,
@@ -14019,7 +14715,8 @@ class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
14019
14715
  });
14020
14716
  return {
14021
14717
  common: {
14022
- supportedSourceFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
14718
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
14719
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: StylesProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
14023
14720
  supportedOutputFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
14024
14721
  secondsBetweenFileUpdatingAndStartingOfRebuilding: stylesProcessingSettings__fromFile__rawValid.
14025
14722
  common?.
@@ -14095,7 +14792,10 @@ exports["default"] = StylesProcessingRawSettingsNormalizer;
14095
14792
  Object.defineProperty(exports, "__esModule", ({ value: true }));
14096
14793
  var StylesProcessingRestrictions;
14097
14794
  (function (StylesProcessingRestrictions) {
14098
- StylesProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["styl", "stylus"];
14795
+ StylesProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
14796
+ "styl", "stylus"
14797
+ ]);
14798
+ StylesProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
14099
14799
  StylesProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["css"];
14100
14800
  })(StylesProcessingRestrictions || (StylesProcessingRestrictions = {}));
14101
14801
  exports["default"] = StylesProcessingRestrictions;
@@ -14117,6 +14817,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
14117
14817
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
14118
14818
  const PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX */ "./ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX.ts"));
14119
14819
  const GulpStreamBasedSourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative.ts"));
14820
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
14821
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14120
14822
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
14121
14823
  /* [ Theory ] Below two fields could be even or not. */
14122
14824
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -14137,9 +14839,8 @@ class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
14137
14839
  this.relevantEntryPointsGroupsSettings = normalizedStylesProcessingSettings.relevantEntryPointsGroups;
14138
14840
  this.loggingSettings = normalizedStylesProcessingSettings.logging;
14139
14841
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14140
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14141
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14142
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14842
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
14843
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedStylesProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
14143
14844
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedStylesProcessingSettings.common.
14144
14845
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
14145
14846
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -14253,6 +14954,7 @@ var StylesProcessingSettings__FromFile__RawValid;
14253
14954
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
14254
14955
  type: Number,
14255
14956
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
14957
+ isNaN_Forbidden: true,
14256
14958
  isUndefinedForbidden: false,
14257
14959
  isNullForbidden: true
14258
14960
  },
@@ -14457,7 +15159,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14457
15159
  constructor(stylesProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
14458
15160
  super({
14459
15161
  projectBuildingMasterConfigRepresentative,
14460
- taskTitleForLogging: "Styles processing"
15162
+ taskTitleForLogging: "Styles Processing"
14461
15163
  });
14462
15164
  this.logging = {
14463
15165
  pathsOfFilesWillBeProcessed: stylesProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -14474,13 +15176,13 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14474
15176
  }
14475
15177
  return () => gulp_1.default.
14476
15178
  src(entryPointsSourceFilesAbsolutePaths).
14477
- pipe(this.handleErrorIfItWillOccur()).
15179
+ pipe(super.handleErrorIfItWillOccur()).
14478
15180
  pipe(GulpStreamModifier_1.default.modify({
14479
15181
  onStreamStartedEventCommonHandler: this.replacePlainVinylFileWithStylesEntryPointVinylFile.bind(this)
14480
15182
  })).
14481
15183
  pipe((0, gulp_if_1.default)(this.projectBuildingMasterConfigRepresentative.isStaticPreviewBuildingMode ||
14482
15184
  this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
14483
- pipe(this.logProcessedFilesIfMust()).
15185
+ pipe(this.logInputFilesIfMust()).
14484
15186
  pipe((0, gulp_stylus_1.default)({
14485
15187
  /* [ Theory ] Allows to "@include XXX.css" which is critical for third-party libraries' usage. */
14486
15188
  "include css": true
@@ -14498,10 +15200,8 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14498
15200
  preset: [
14499
15201
  "default",
14500
15202
  {
14501
- normalizeWhitespace: !this.projectBuildingMasterConfigRepresentative.isStaticPreviewBuildingMode &&
14502
- !this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode,
14503
- discardComments: !this.projectBuildingMasterConfigRepresentative.isStaticPreviewBuildingMode &&
14504
- !this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode
15203
+ normalizeWhitespace: !this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding,
15204
+ discardComments: !this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding
14505
15205
  }
14506
15206
  ]
14507
15207
  })
@@ -14512,6 +15212,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14512
15212
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
14513
15213
  onStreamStartedEventHandler: this.onOutputCSS_FileReady.bind(this)
14514
15214
  })).
15215
+ pipe(super.logOutputFilesIfMust()).
14515
15216
  pipe(gulp_1.default.dest((targetFile) => StylesEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile)));
14516
15217
  }
14517
15218
  /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -14861,7 +15562,7 @@ class PugPreProcessorSpecialist {
14861
15562
  * No simple way to know the capturing group name outside of this file. */
14862
15563
  /^ *(?:include|extends) +((?:\w|-|\.|\/)+) *$/gmu
14863
15564
  ];
14864
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["pug"];
15565
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["pug"]);
14865
15566
  static linterConfigurationFilesNamesWithExtensions = [
14866
15567
  ".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json", "package.json"
14867
15568
  ];
@@ -14948,7 +15649,7 @@ class StylusPreProcessorSpecialist {
14948
15649
  * No simple way to know the capturing group name outside of this file. */
14949
15650
  /^ *@(?:import|require) +['"]((?:\w|-|\.|\/)+?)['"] *;? *$/gmu
14950
15651
  ];
14951
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["styl", "stylus", "css"];
15652
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["styl", "stylus", "css"]);
14952
15653
  }
14953
15654
  exports["default"] = StylusPreProcessorSpecialist;
14954
15655
 
@@ -14976,7 +15677,7 @@ class TypeScriptSpecialist {
14976
15677
  typeScriptFileReadingResult = typescript_1.default.readConfigFile(typeScriptConfigurationFileAbsolutePath, (typeScriptConfigurationFilePath) => typescript_1.default.sys.readFile(typeScriptConfigurationFilePath));
14977
15678
  }
14978
15679
  catch (error) {
14979
- es_extensions_1.Logger.throwErrorAndLog({
15680
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14980
15681
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14981
15682
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14982
15683
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14985,7 +15686,7 @@ class TypeScriptSpecialist {
14985
15686
  });
14986
15687
  }
14987
15688
  if ((0, es_extensions_1.isNotUndefined)(typeScriptFileReadingResult.error)) {
14988
- es_extensions_1.Logger.throwErrorAndLog({
15689
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14989
15690
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14990
15691
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14991
15692
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14995,7 +15696,7 @@ class TypeScriptSpecialist {
14995
15696
  });
14996
15697
  }
14997
15698
  if (!(0, es_extensions_1.isArbitraryObject)(typeScriptFileReadingResult.config) || !("compilerOptions" in typeScriptFileReadingResult.config)) {
14998
- es_extensions_1.Logger.throwErrorAndLog({
15699
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14999
15700
  errorInstance: new es_extensions_1.InvalidConfigError({
15000
15701
  mentionToConfig: `TypeScript (${typeScriptConfigurationFileAbsolutePath})`
15001
15702
  }),
@@ -15018,7 +15719,7 @@ class TypeScriptSpecialist {
15018
15719
  }));
15019
15720
  }
15020
15721
  catch (error) {
15021
- es_extensions_1.Logger.throwErrorAndLog({
15722
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15022
15723
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
15023
15724
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
15024
15725
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -15027,7 +15728,7 @@ class TypeScriptSpecialist {
15027
15728
  });
15028
15729
  }
15029
15730
  if (typeCompilerOptionsConfigurationParsingResult.errors.length > 0) {
15030
- es_extensions_1.Logger.throwErrorAndLog({
15731
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15031
15732
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
15032
15733
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
15033
15734
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -15223,7 +15924,7 @@ class DotYDA_DirectoryManager {
15223
15924
  }
15224
15925
  static getExpectedToBeInitializedSelfSoleInstance() {
15225
15926
  if ((0, es_extensions_1.isNull)(DotYDA_DirectoryManager.selfSoleInstance)) {
15226
- es_extensions_1.Logger.throwErrorAndLog({
15927
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15227
15928
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
15228
15929
  className: "DotYDA_DirectoryManager", initializingMethodName: "unrollDotYDA_Directory"
15229
15930
  }),
@@ -15262,7 +15963,7 @@ class FileNameRevisionPostfixer {
15262
15963
  return;
15263
15964
  }
15264
15965
  if (!(targetFile.contents instanceof Buffer)) {
15265
- es_extensions_1.Logger.throwErrorAndLog({
15966
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15266
15967
  errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
15267
15968
  "Because usually it is the instance of Buffer, explorations are required."),
15268
15969
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -15302,7 +16003,7 @@ class GulpStreamModifier {
15302
16003
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15303
16004
  transform(chunk, _encoding, callback) {
15304
16005
  if (!vinyl_1.default.isVinyl(chunk)) {
15305
- es_extensions_1.Logger.throwErrorAndLog({
16006
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15306
16007
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15307
16008
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15308
16009
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15362,7 +16063,7 @@ class GulpStreamModifier {
15362
16063
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15363
16064
  transform(chunk, _encoding, callback) {
15364
16065
  if (!vinyl_1.default.isVinyl(chunk)) {
15365
- es_extensions_1.Logger.throwErrorAndLog({
16066
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15366
16067
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15367
16068
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15368
16069
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15602,8 +16303,13 @@ class SourceCodeSelectiveReprocessingHelper {
15602
16303
  comparedPath: absolutePathOfChildFile__forwardSlashSeparators,
15603
16304
  alwaysForwardSlashSeparators: true
15604
16305
  });
15605
- (0, es_extensions_1.addMultipleElementsToSet)(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators, Array.from(this.childrenFilesMetadata.get(pathOfChildFileRelativeToConsumingProjectRootDirectory__forwardSlashSeparators)?.parentEntryPointsAbsolutePaths ??
15606
- new Set()));
16306
+ (0, es_extensions_1.addElementsToSet)({
16307
+ targetSet: absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators,
16308
+ newElements: this.childrenFilesMetadata.
16309
+ get(pathOfChildFileRelativeToConsumingProjectRootDirectory__forwardSlashSeparators)?.
16310
+ parentEntryPointsAbsolutePaths ??
16311
+ new Set()
16312
+ });
15607
16313
  }
15608
16314
  return Array.from(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators);
15609
16315
  }
@@ -15850,14 +16556,17 @@ class SourceCodeSelectiveReprocessingHelper {
15850
16556
  * For example, in the Pug preprocessor case, the file "ProductCard.static.pug" could be referred as
15851
16557
  * `include ProductCard.static`. */
15852
16558
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath) ||
15853
- !this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.
15854
- includes(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
16559
+ !(0, es_extensions_1.mergeSets)(this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles, this.childrenFilesResolutionRules.additionalExplicitFileNameExtensionsWithoutLeadingDotsOfChildrenFiles ?? new Set()).has(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
15855
16560
  for (const possibleIntermediatePathOfChildFileWithResolvedAlias of possibleIntermediatePathsOfChildFileWithResolvedAlias) {
15856
- (0, es_extensions_1.addMultipleElementsToSet)(possibleAbsolutePathsOfTargetChildFile__forwardSlashSeparators, this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.map((childFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
15857
- ...path_1.default.isAbsolute(possibleIntermediatePathOfChildFileWithResolvedAlias) ?
15858
- [] : [parentFileDirectoryAbsolutePath__forwardSlashSeparators],
15859
- `${possibleIntermediatePathOfChildFileWithResolvedAlias}.${childFileNameImplicitExtension}`
15860
- ], { alwaysForwardSlashSeparators: true })));
16561
+ (0, es_extensions_1.addElementsToSet)({
16562
+ targetSet: possibleAbsolutePathsOfTargetChildFile__forwardSlashSeparators,
16563
+ newElements: Array.from(this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles).
16564
+ map((childFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
16565
+ ...path_1.default.isAbsolute(possibleIntermediatePathOfChildFileWithResolvedAlias) ?
16566
+ [] : [parentFileDirectoryAbsolutePath__forwardSlashSeparators],
16567
+ `${possibleIntermediatePathOfChildFileWithResolvedAlias}.${childFileNameImplicitExtension}`
16568
+ ], { alwaysForwardSlashSeparators: true }))
16569
+ });
15861
16570
  }
15862
16571
  }
15863
16572
  else {
@@ -16041,7 +16750,7 @@ class SourceCodeSelectiveReprocessingHelper {
16041
16750
  return childrenFilesMetadata;
16042
16751
  }, {})
16043
16752
  };
16044
- fs_1.default.writeFileSync(this.CACHED_METADATA_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(outputData));
16753
+ fs_1.default.writeFileSync(this.CACHED_METADATA_FILE_ABSOLUTE_PATH, JSON.stringify(outputData, null, 2));
16045
16754
  }
16046
16755
  /* ─── Logging ──────────────────────────────────────────────────────────────────────────────────────────────────── */
16047
16756
  logChildrenFilesAndEntryPointsRelationships() {
@@ -16088,7 +16797,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
16088
16797
  class VinylFileClass extends vinyl_1.default {
16089
16798
  static getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetVinylFile) {
16090
16799
  if (!(targetVinylFile instanceof VinylFileClass)) {
16091
- es_extensions_1.Logger.throwErrorAndLog({
16800
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
16092
16801
  errorInstance: new es_extensions_1.InvalidParameterValueError({
16093
16802
  parameterName: "targetVinylFile",
16094
16803
  parameterNumber: 1,
@@ -16185,115 +16894,6 @@ function extractStringifiedContentFromVinylFile(targetFile) {
16185
16894
  }
16186
16895
 
16187
16896
 
16188
- /***/ }),
16189
-
16190
- /***/ "./UtilsIncubator/NodeJS/isSubdirectory.ts":
16191
- /*!*************************************************!*\
16192
- !*** ./UtilsIncubator/NodeJS/isSubdirectory.ts ***!
16193
- \*************************************************/
16194
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16195
-
16196
-
16197
- var __importDefault = (this && this.__importDefault) || function (mod) {
16198
- return (mod && mod.__esModule) ? mod : { "default": mod };
16199
- };
16200
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16201
- exports["default"] = isSubdirectory;
16202
- const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
16203
- function isSubdirectory({ whichPath, ofWhichPath }) {
16204
- const relativePath = path_1.default.relative(ofWhichPath, whichPath);
16205
- return relativePath.length > 0 && !relativePath.startsWith("..") && !path_1.default.isAbsolute(relativePath);
16206
- }
16207
-
16208
-
16209
- /***/ }),
16210
-
16211
- /***/ "./UtilsIncubator/Stopwatch.ts":
16212
- /*!*************************************!*\
16213
- !*** ./UtilsIncubator/Stopwatch.ts ***!
16214
- \*************************************/
16215
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16216
-
16217
-
16218
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16219
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16220
- class Stopwatch {
16221
- activationUnixTimestamp__milliseconds = 0;
16222
- deactivationUnixTimestamp__milliseconds = 0;
16223
- startOrRestart() {
16224
- if (this.activationUnixTimestamp__milliseconds === 0) {
16225
- this.activationUnixTimestamp__milliseconds = Date.now();
16226
- }
16227
- return this;
16228
- }
16229
- stop() {
16230
- this.deactivationUnixTimestamp__milliseconds = Date.now();
16231
- const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
16232
- return {
16233
- seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
16234
- milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
16235
- };
16236
- }
16237
- reset() {
16238
- this.activationUnixTimestamp__milliseconds = 0;
16239
- this.deactivationUnixTimestamp__milliseconds = 0;
16240
- }
16241
- }
16242
- exports["default"] = Stopwatch;
16243
-
16244
-
16245
- /***/ }),
16246
-
16247
- /***/ "./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts":
16248
- /*!*******************************************************************!*\
16249
- !*** ./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts ***!
16250
- \*******************************************************************/
16251
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16252
-
16253
-
16254
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16255
- exports["default"] = addPenultimateFileNameExtension;
16256
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16257
- function addPenultimateFileNameExtension({ targetPath, targetFileNamePenultimateExtensionWithOrWithoutLeadingDot, mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist }) {
16258
- const targetFileNamePenultimateExtensionWithoutLeadingDot = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
16259
- targetString: targetFileNamePenultimateExtensionWithOrWithoutLeadingDot,
16260
- targetCharacter: ".",
16261
- fromFirstPosition: true
16262
- });
16263
- if (!targetPath.includes(".")) {
16264
- const { updatedString: targetPathWihtoutFragment, extractedMatching: targetPathFragmentWithLeadingHash } = (0, es_extensions_1.extractMatchingsWithRegularExpression)(targetPath, /#.+$/u, { mustExpectOneOrZeroMatchings: true });
16265
- return mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist ?
16266
- `${targetPathWihtoutFragment}.${targetFileNamePenultimateExtensionWithoutLeadingDot}` +
16267
- targetPathFragmentWithLeadingHash :
16268
- targetPath;
16269
- }
16270
- const pathDotSeparatedSegments = (0, es_extensions_1.splitString)(targetPath, ".");
16271
- return (0, es_extensions_1.addElementsToArray)({
16272
- targetArray: pathDotSeparatedSegments,
16273
- newElements: [targetFileNamePenultimateExtensionWithoutLeadingDot],
16274
- mutably: true,
16275
- toPosition__numerationFrom1: pathDotSeparatedSegments.length
16276
- }).join(".");
16277
- }
16278
-
16279
-
16280
- /***/ }),
16281
-
16282
- /***/ "./UtilsIncubator/Strings/replaceLinesSeparators.ts":
16283
- /*!**********************************************************!*\
16284
- !*** ./UtilsIncubator/Strings/replaceLinesSeparators.ts ***!
16285
- \**********************************************************/
16286
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16287
-
16288
-
16289
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16290
- exports["default"] = replaceLinesSeparators;
16291
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16292
- function replaceLinesSeparators(targetString, lineSeparators) {
16293
- return (0, es_extensions_1.explodeStringToLines)({ targetString, mustIgnoreCarriageReturn: false }).join(lineSeparators);
16294
- }
16295
-
16296
-
16297
16897
  /***/ }),
16298
16898
 
16299
16899
  /***/ "@yamato-daiwa/es-extensions":