@yamato-daiwa/automation 0.7.0 → 0.8.0-alpha.1

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 (2) hide show
  1. package/EntryPoint.js +1141 -474
  2. package/package.json +11 -10
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.7.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.2","@typescript-eslint/eslint-plugin":"8.38.0","@typescript-eslint/parser":"8.38.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.8.1","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.0","dotenv":"16.5.0","eslint":"9.32.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.8.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"}}');
37
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.8.0-alpha.1","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.1","@yamato-daiwa/es-extensions-nodejs":"1.8.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","webpackbar":"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"}}');
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,
@@ -6465,6 +6886,39 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6465
6886
  type: SupportedECMA_ScriptRuntimesTypes.pug
6466
6887
  };
6467
6888
  }
6889
+ case SupportedECMA_ScriptRuntimesTypes.electronMainProcess: {
6890
+ return {
6891
+ type: SupportedECMA_ScriptRuntimesTypes.electronMainProcess,
6892
+ minimalVersion: {
6893
+ major: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.major,
6894
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor) ? {
6895
+ minor: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor
6896
+ } : null
6897
+ }
6898
+ };
6899
+ }
6900
+ case SupportedECMA_ScriptRuntimesTypes.electronRendererProcess: {
6901
+ return {
6902
+ type: SupportedECMA_ScriptRuntimesTypes.electronRendererProcess,
6903
+ minimalVersion: {
6904
+ major: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.major,
6905
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor) ? {
6906
+ minor: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor
6907
+ } : null
6908
+ }
6909
+ };
6910
+ }
6911
+ case SupportedECMA_ScriptRuntimesTypes.electronPreload: {
6912
+ return {
6913
+ type: SupportedECMA_ScriptRuntimesTypes.electronPreload,
6914
+ minimalVersion: {
6915
+ major: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.major,
6916
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor) ? {
6917
+ minor: entryPointsGroupSettings__rawValid.targetRuntime.minimalVersion.minor
6918
+ } : null
6919
+ }
6920
+ };
6921
+ }
6468
6922
  }
6469
6923
  })(),
6470
6924
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.
@@ -6579,7 +7033,12 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6579
7033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6580
7034
  var ECMA_ScriptLogicProcessingRestrictions;
6581
7035
  (function (ECMA_ScriptLogicProcessingRestrictions) {
6582
- 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
+ ]);
6583
7042
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["js"];
6584
7043
  let SupportedECMA_ScriptRuntimesTypes;
6585
7044
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -6587,6 +7046,9 @@ var ECMA_ScriptLogicProcessingRestrictions;
6587
7046
  SupportedECMA_ScriptRuntimesTypes["webWorker"] = "WEB_WORKER";
6588
7047
  SupportedECMA_ScriptRuntimesTypes["nodeJS"] = "NODEJS";
6589
7048
  SupportedECMA_ScriptRuntimesTypes["pug"] = "PUG";
7049
+ SupportedECMA_ScriptRuntimesTypes["electronMainProcess"] = "ELECTRON_MAIN_PROCESS";
7050
+ SupportedECMA_ScriptRuntimesTypes["electronRendererProcess"] = "ELECTRON_RENDERER_PROCESS";
7051
+ SupportedECMA_ScriptRuntimesTypes["electronPreload"] = "ELECTRON_PRELOAD";
6590
7052
  })(SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions.SupportedECMA_ScriptRuntimesTypes || (ECMA_ScriptLogicProcessingRestrictions.SupportedECMA_ScriptRuntimesTypes = {}));
6591
7053
  })(ECMA_ScriptLogicProcessingRestrictions || (ECMA_ScriptLogicProcessingRestrictions = {}));
6592
7054
  exports["default"] = ECMA_ScriptLogicProcessingRestrictions;
@@ -6608,6 +7070,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6608
7070
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
6609
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"));
6610
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");
6611
7075
  class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
6612
7076
  /* [ Theory ] Below two fields could be even or not. */
6613
7077
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -6617,6 +7081,7 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6617
7081
  TASK_NAME_FOR_LOGGING = "ECMAScript Logic Processing";
6618
7082
  entryPointsGroupsNormalizedSettingsMappedByReferences;
6619
7083
  relevantEntryPointsGroupsSettings;
7084
+ electronSettings;
6620
7085
  loggingSettings;
6621
7086
  localDevelopmentServerOrchestrationSettings;
6622
7087
  sourceCodeProcessingCommonSettings;
@@ -6624,19 +7089,18 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6624
7089
  super(projectBuildingMasterConfigRepresentative);
6625
7090
  this.sourceCodeProcessingCommonSettings = normalizedECMA_ScriptLogicProcessingSettings.common;
6626
7091
  this.relevantEntryPointsGroupsSettings = normalizedECMA_ScriptLogicProcessingSettings.relevantEntryPointsGroups;
7092
+ this.electronSettings = normalizedECMA_ScriptLogicProcessingSettings.electron;
6627
7093
  this.loggingSettings = normalizedECMA_ScriptLogicProcessingSettings.logging;
6628
7094
  this.localDevelopmentServerOrchestrationSettings = normalizedECMA_ScriptLogicProcessingSettings.
6629
7095
  localDevelopmentServerOrchestration;
6630
7096
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6631
- supportedSourceFileNameExtensionsWithoutLeadingDots;
6632
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6633
- supportedSourceFileNameExtensionsWithoutLeadingDots;
7097
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
7098
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedECMA_ScriptLogicProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
6634
7099
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
6635
7100
  `${PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1.default}${entryPointsGroupSettings.ID}`,
6636
7101
  entryPointsGroupSettings
6637
7102
  ]));
6638
7103
  }
6639
- /* ━━━ Logging ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6640
7104
  get mustLogSourceFilesWatcherEvents() {
6641
7105
  return this.loggingSettings.filesWatcherEvents;
6642
7106
  }
@@ -6727,8 +7191,9 @@ const RevisioningSettings__FromFile__RawValid_1 = __importDefault(__webpack_requ
6727
7191
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6728
7192
  var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6729
7193
  (function (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid) {
6730
- /* ━━━ Localization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7194
+ /* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6731
7195
  ECMA_ScriptLogicProcessingSettings__FromFile__RawValid.propertiesSpecification = {
7196
+ /* ┅┅┅ Linting ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6732
7197
  $linting: {
6733
7198
  newName: "linting",
6734
7199
  type: Object,
@@ -6736,6 +7201,7 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6736
7201
  mustTransformNullToUndefined: true,
6737
7202
  properties: LintingSettings__FromFile__RawValid_1.default.propertiesSpecification
6738
7203
  },
7204
+ /* ╍╍╍ Entry Points Group ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
6739
7205
  ...SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid_1.default.generatePropertiesSpecification({
6740
7206
  entryPointsGroupBuildingModeIndependentSpecificSettingsLocalizedPropertiesSpecification: {
6741
7207
  $targetRuntime: {
@@ -6755,8 +7221,16 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6755
7221
  newName: "minimalVersion",
6756
7222
  type: Object,
6757
7223
  undefinedForbiddenIf: {
6758
- predicate: (runtimeConfig) => runtimeConfig.type === SupportedECMA_ScriptRuntimesTypes.nodeJS,
6759
- descriptionForLogging: "Target runtime is NodeJS"
7224
+ predicate: (runtimeConfig) => [
7225
+ SupportedECMA_ScriptRuntimesTypes.nodeJS,
7226
+ SupportedECMA_ScriptRuntimesTypes.electronMainProcess,
7227
+ SupportedECMA_ScriptRuntimesTypes.electronRendererProcess,
7228
+ SupportedECMA_ScriptRuntimesTypes.electronPreload
7229
+ /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions --
7230
+ * Even `runtimeConfig.type` is `undefined` or `null` it still can be safely compared with elements
7231
+ * of enumeration. */
7232
+ ].includes(runtimeConfig.type),
7233
+ descriptionForLogging: "Target runtime is NodeJS or Electron-like"
6760
7234
  },
6761
7235
  isNullForbidden: true,
6762
7236
  properties: {
@@ -6765,14 +7239,16 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6765
7239
  type: Number,
6766
7240
  isUndefinedForbidden: true,
6767
7241
  isNullForbidden: true,
6768
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7242
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7243
+ isNaN_Forbidden: true
6769
7244
  },
6770
7245
  $minor: {
6771
7246
  newName: "minor",
6772
7247
  type: Number,
6773
7248
  isUndefinedForbidden: false,
6774
7249
  isNullForbidden: true,
6775
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7250
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7251
+ isNaN_Forbidden: true
6776
7252
  }
6777
7253
  }
6778
7254
  }
@@ -6882,7 +7358,91 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6882
7358
  minimalCharactersCount: 1
6883
7359
  }
6884
7360
  }
6885
- }),
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 ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6886
7446
  $logging: {
6887
7447
  newName: "logging",
6888
7448
  type: Object,
@@ -6934,52 +7494,6 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6934
7494
  }
6935
7495
  }
6936
7496
  }
6937
- },
6938
- $localDevelopmentServerOrchestration: {
6939
- newName: "localDevelopmentServerOrchestration",
6940
- type: Object,
6941
- isUndefinedForbidden: false,
6942
- mustTransformNullToUndefined: true,
6943
- properties: {
6944
- $targetSingularEntryPointsGroupID: {
6945
- newName: "targetSingularEntryPointsGroupID",
6946
- type: String,
6947
- isUndefinedForbidden: true,
6948
- isNullForbidden: true,
6949
- minimalCharactersCount: 1
6950
- },
6951
- $arguments: {
6952
- newName: "arguments",
6953
- type: Array,
6954
- isUndefinedForbidden: false,
6955
- isNullForbidden: true,
6956
- areUndefinedElementsForbidden: true,
6957
- areNullElementsForbidden: true,
6958
- element: {
6959
- type: String,
6960
- minimalCharactersCount: 1
6961
- }
6962
- },
6963
- $environmentVariables: {
6964
- newName: "environmentVariables",
6965
- type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
6966
- isUndefinedForbidden: false,
6967
- isNullForbidden: true,
6968
- areUndefinedTypeValuesForbidden: true,
6969
- areNullTypeValuesForbidden: true,
6970
- value: {
6971
- type: String,
6972
- minimalCharactersCount: 1
6973
- }
6974
- },
6975
- $environmentVariablesFileRelativePath: {
6976
- newName: "environmentVariablesFileRelativePath",
6977
- type: String,
6978
- isUndefinedForbidden: false,
6979
- isNullForbidden: true,
6980
- minimalCharactersCount: 1
6981
- }
6982
- }
6983
7497
  }
6984
7498
  };
6985
7499
  })(ECMA_ScriptLogicProcessingSettings__FromFile__RawValid || (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid = {}));
@@ -7093,7 +7607,15 @@ class ECMA_ScriptLogicProcessor {
7093
7607
  });
7094
7608
  }
7095
7609
  this.webpackConfigurationsForExistingEntryPoints = webpackConfigurationsForExistingEntryPoints;
7096
- 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("The Webpack function returned the null. Previously it was unknown under which conditions it may occur."),
7614
+ title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7615
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.constructor(...parameters)"
7616
+ });
7617
+ }
7618
+ this.webpackMultiCompiler = webpackMultiCompiler;
7097
7619
  this.entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap =
7098
7620
  entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap;
7099
7621
  if (this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
@@ -7236,7 +7758,10 @@ class ECMA_ScriptLogicProcessor {
7236
7758
  unifiedDirectoriesAliasesAndTheirAbsolutePatsMap.set(directoryAlias, new Set(correspondingDirectoriesAbsolutePaths));
7237
7759
  }
7238
7760
  else {
7239
- (0, es_extensions_1.addMultipleElementsToSet)(alreadyRegisteredCorrespondingDirectoriesAbsolutePaths, correspondingDirectoriesAbsolutePaths);
7761
+ (0, es_extensions_1.addElementsToSet)({
7762
+ targetSet: alreadyRegisteredCorrespondingDirectoriesAbsolutePaths,
7763
+ newElements: correspondingDirectoriesAbsolutePaths
7764
+ });
7240
7765
  }
7241
7766
  }
7242
7767
  }
@@ -7290,6 +7815,97 @@ class ECMA_ScriptSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
7290
7815
  exports["default"] = ECMA_ScriptSourceFilesWatcher;
7291
7816
 
7292
7817
 
7818
+ /***/ }),
7819
+
7820
+ /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/ElectronCoordinator.ts":
7821
+ /*!******************************************************************************************!*\
7822
+ !*** ./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/ElectronCoordinator.ts ***!
7823
+ \******************************************************************************************/
7824
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7825
+
7826
+
7827
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7828
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7829
+ };
7830
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7831
+ /* ─── Files Watchers ─────────────────────────────────────────────────────────────────────────────────────────────── */
7832
+ const ElectronOutputFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Watchers/ElectronOutputFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts"));
7833
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
7834
+ const child_process_1 = __importDefault(__webpack_require__(/*! child_process */ "child_process"));
7835
+ const VoidPromiseReturningFunction_1 = __webpack_require__(/*! @Utils/VoidPromiseReturningFunction */ "./Utils/VoidPromiseReturningFunction.ts");
7836
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7837
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7838
+ class ElectronCoordinator {
7839
+ projectBuildingMasterConfigRepresentative;
7840
+ electronExecutableFileAbsolutePath;
7841
+ activeElectronChildProcess = null;
7842
+ waitingForNextEventWithRelatedFiles = null;
7843
+ static coordinateIfMust(projectBuildingMasterConfigRepresentative) {
7844
+ const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
7845
+ if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative?.electronSettings)) {
7846
+ return VoidPromiseReturningFunction_1.voidPromiseReturningFunction;
7847
+ }
7848
+ const selfInstance = new ElectronCoordinator({ projectBuildingMasterConfigRepresentative });
7849
+ ElectronOutputFilesWatcher_1.default.initialize({
7850
+ electronSettings: ecmaScriptLogicProcessingSettingsRepresentative.electronSettings,
7851
+ loggingSettings: ecmaScriptLogicProcessingSettingsRepresentative.loggingSettings,
7852
+ onAnyEventRelatedWithActualFilesHandler: selfInstance.onAnyEventRelatedWithRelatedFiles.bind(selfInstance)
7853
+ });
7854
+ return selfInstance.createPromisfiedChildProcess.bind(selfInstance);
7855
+ }
7856
+ constructor({ projectBuildingMasterConfigRepresentative }) {
7857
+ this.projectBuildingMasterConfigRepresentative = projectBuildingMasterConfigRepresentative;
7858
+ this.electronExecutableFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7859
+ this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
7860
+ "node_modules",
7861
+ "electron",
7862
+ "cli.js"
7863
+ ], { alwaysForwardSlashSeparators: true });
7864
+ }
7865
+ async createPromisfiedChildProcess() {
7866
+ return new Promise((resolve) => {
7867
+ this.activeElectronChildProcess = this.createElectronChildProcess(resolve);
7868
+ });
7869
+ }
7870
+ createElectronChildProcess(onStartedEventHandler) {
7871
+ /* [ Theory ]
7872
+ * The process killing will not work on Windows with the `exec` method.
7873
+ * https://github.com/nodejs/node/issues/7281 */
7874
+ const childProcess = child_process_1.default.
7875
+ execFile("node", [this.electronExecutableFileAbsolutePath, "."], { encoding: "utf-8" }).
7876
+ on("spawn", () => {
7877
+ onStartedEventHandler?.();
7878
+ });
7879
+ childProcess.stdout?.on("data", (data) => {
7880
+ /* eslint-disable-next-line no-console -- The data should be output as is, preserving the formatting if any. */
7881
+ console.log(data);
7882
+ });
7883
+ childProcess.stderr?.on("data", (data) => {
7884
+ /* eslint-disable-next-line no-console -- The data should be output as is, preserving the formatting if any. */
7885
+ console.error(data);
7886
+ });
7887
+ return childProcess;
7888
+ }
7889
+ onAnyEventRelatedWithRelatedFiles() {
7890
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextEventWithRelatedFiles));
7891
+ es_extensions_1.Logger.logInfo({
7892
+ title: "ElectronCoordinator, Restarting Application",
7893
+ description: "The changes has been detected on or more output files. Restarting the application..."
7894
+ });
7895
+ this.waitingForNextEventWithRelatedFiles = setTimeout(() => {
7896
+ const outdatedChildProcess = this.activeElectronChildProcess;
7897
+ this.activeElectronChildProcess = this.createElectronChildProcess(() => {
7898
+ /* [ Theory ]
7899
+ * The process killing will not work on Windows if the child process has started with the `exec` method.
7900
+ * https://github.com/nodejs/node/issues/7281 */
7901
+ outdatedChildProcess?.kill("SIGKILL");
7902
+ });
7903
+ }, (0, es_extensions_1.secondsToMilliseconds)(1));
7904
+ }
7905
+ }
7906
+ exports["default"] = ElectronCoordinator;
7907
+
7908
+
7293
7909
  /***/ }),
7294
7910
 
7295
7911
  /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/Linting/ECMA_ScriptSourceCodeLinter.ts":
@@ -7355,7 +7971,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7355
7971
  constructor({ ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative }) {
7356
7972
  super({
7357
7973
  projectBuildingMasterConfigRepresentative,
7358
- taskTitleForLogging: "ECMAScript logic processing / ECMAScript logic source code linting",
7974
+ taskTitleForLogging: "ECMAScript Logic Processing / ECMAScript Logic Source Code Linting",
7359
7975
  sourceFilesCachedCheckingResults: {
7360
7976
  fileNameWithExtension: "ECMA_ScriptLintingCache.json",
7361
7977
  contentSpecification: {
@@ -7420,24 +8036,28 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7420
8036
  startingLineNumber__numerationFrom1: {
7421
8037
  type: Number,
7422
8038
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8039
+ isNaN_Forbidden: true,
7423
8040
  isUndefinedForbidden: false,
7424
8041
  isNullForbidden: true
7425
8042
  },
7426
8043
  endingLineNumber__numerationFrom1: {
7427
8044
  type: Number,
7428
8045
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8046
+ isNaN_Forbidden: true,
7429
8047
  isUndefinedForbidden: false,
7430
8048
  isNullForbidden: true
7431
8049
  },
7432
8050
  startingColumnNumber__numerationFrom1: {
7433
8051
  type: Number,
7434
8052
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8053
+ isNaN_Forbidden: true,
7435
8054
  isUndefinedForbidden: false,
7436
8055
  isNullForbidden: true
7437
8056
  },
7438
8057
  endingColumnNumber__numerationFrom1: {
7439
8058
  type: Number,
7440
8059
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8060
+ isNaN_Forbidden: true,
7441
8061
  isUndefinedForbidden: false,
7442
8062
  isNullForbidden: true
7443
8063
  }
@@ -7499,7 +8119,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7499
8119
  map((issue) => this.normalizeLintingIssues(issue, sourceCode));
7500
8120
  }
7501
8121
  catch (error) {
7502
- es_extensions_1.Logger.throwErrorAndLog({
8122
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7503
8123
  errorType: "ECMA_ScriptSourceCodeLinter",
7504
8124
  title: ECMA_ScriptSourceCodeLinter.localization.lintingFailedErrorLog.title,
7505
8125
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -7546,6 +8166,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7546
8166
  (0, es_extensions_1.isNeitherUndefinedNorNull)(rawIssue.endColumn)) {
7547
8167
  /* [ Maintainability ] Keep these variables for easier debugging. */
7548
8168
  codeFragmentBeforeHighlighting = (0, es_extensions_1.cropArray)({
8169
+ fromStart: true,
7549
8170
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7550
8171
  targetArray: sourceCodeExplodedToLines,
7551
8172
  index: rawIssue.line - 1,
@@ -7562,11 +8183,12 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7562
8183
  targetNumber: rawIssue.line - this.DISPLAYING_LINES_COUNT_BEFORE_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7563
8184
  minimalValue: 1
7564
8185
  }),
7565
- endingElementNumber__numerationFrom1: rawIssue.line,
8186
+ endingElementNumber__numerationFrom1__including: rawIssue.line,
7566
8187
  mutably: false,
7567
8188
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7568
8189
  }).join("\n");
7569
8190
  highlightedCodeFragment = (0, es_extensions_1.cropArray)({
8191
+ fromStart: true,
7570
8192
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7571
8193
  targetArray: sourceCodeExplodedToLines,
7572
8194
  replacements: [
@@ -7609,12 +8231,13 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7609
8231
  ]
7610
8232
  }),
7611
8233
  startingElementNumber__numerationFrom1: rawIssue.line,
7612
- endingElementNumber__numerationFrom1: rawIssue.endLine,
8234
+ endingElementNumber__numerationFrom1__including: rawIssue.endLine,
7613
8235
  mutably: false,
7614
8236
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7615
8237
  }).join("\n");
7616
8238
  const lastLineOfHighlightedCodeFragment = sourceCodeExplodedToLines[rawIssue.endLine - 1];
7617
8239
  codeFragmentAfterHighlighting = (0, es_extensions_1.cropArray)({
8240
+ fromStart: true,
7618
8241
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7619
8242
  targetArray: sourceCodeExplodedToLines,
7620
8243
  index: rawIssue.endLine - 1,
@@ -7628,7 +8251,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7628
8251
  })
7629
8252
  }),
7630
8253
  startingElementNumber__numerationFrom1: rawIssue.endLine,
7631
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMaximalValue)({
8254
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMaximalValue)({
7632
8255
  targetNumber: rawIssue.endLine + this.DISPLAYING_LINES_COUNT_AFTER_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7633
8256
  maximalValue: sourceCodeExplodedToLines.length
7634
8257
  }),
@@ -7754,7 +8377,7 @@ class TypeScriptTypesChecker {
7754
8377
  vueTSC_ExecutableFileAbsolutePath;
7755
8378
  projectBuildingMasterConfigRepresentative;
7756
8379
  ecmaScriptLogicProcessingSettingsRepresentative;
7757
- waitingForNextWithRelatedFiles = null;
8380
+ waitingForNextEventWithRelatedFiles = null;
7758
8381
  static provideCheckingIfMust(projectBuildingMasterConfigRepresentative) {
7759
8382
  const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
7760
8383
  if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
@@ -7776,13 +8399,13 @@ class TypeScriptTypesChecker {
7776
8399
  }).
7777
8400
  addOnAnyEventRelatedWithActualFilesHandler({
7778
8401
  handlerID: "ON_ANY_EVENT_RELATED_WITH_ACTUAL_FILES_HANDLER--BY_TYPE_SCRIPT_TYPES_CHECKER",
7779
- handler: this.onAnyEventRelatedWithActualFiles.bind(this)
8402
+ handler: this.onAnyEventRelatedWithRelatedFiles.bind(this)
7780
8403
  });
7781
8404
  }
7782
8405
  const vueTSC_ExecutableFileAbsolutePath = TypeScriptTypesChecker.
7783
8406
  getAbsolutePathOfExistingVueTSC_ExecutableFile__alwaysForwardSlashesPathSeparators(projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath);
7784
8407
  if ((0, es_extensions_1.isNull)(vueTSC_ExecutableFileAbsolutePath)) {
7785
- es_extensions_1.Logger.throwErrorAndLog({
8408
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7786
8409
  errorInstance: new es_extensions_1.UnexpectedEventError("File to \"vue-tsc\" executable not found"),
7787
8410
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7788
8411
  occurrenceLocation: "TypeScriptTypesChecker.constructor(compoundParameter)"
@@ -7790,9 +8413,9 @@ class TypeScriptTypesChecker {
7790
8413
  }
7791
8414
  this.vueTSC_ExecutableFileAbsolutePath = vueTSC_ExecutableFileAbsolutePath;
7792
8415
  }
7793
- onAnyEventRelatedWithActualFiles() {
7794
- clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextWithRelatedFiles));
7795
- this.waitingForNextWithRelatedFiles = setTimeout(() => {
8416
+ onAnyEventRelatedWithRelatedFiles() {
8417
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextEventWithRelatedFiles));
8418
+ this.waitingForNextEventWithRelatedFiles = setTimeout(() => {
7796
8419
  this.checkTypes().catch(es_extensions_1.Logger.logPromiseError);
7797
8420
  }, (0, es_extensions_1.secondsToMilliseconds)(TypeScriptTypesChecker.WAITING_FOR_NEXT_EVENT_WITH_RELATED_FILES__SECONDS));
7798
8421
  }
@@ -7800,6 +8423,21 @@ class TypeScriptTypesChecker {
7800
8423
  return new Promise((resolve, reject) => {
7801
8424
  child_process_1.default.exec(`node ${this.vueTSC_ExecutableFileAbsolutePath} --noEmit`, { encoding: "utf-8" }, (error, stdout) => {
7802
8425
  if ((0, es_extensions_1.isNotNull)(error)) {
8426
+ if (error.message.includes("Cannot find module")) {
8427
+ es_extensions_1.Logger.logError({
8428
+ errorType: "TypeScriptTypeCheckingError",
8429
+ title: "TypeScript Types Checking Failed",
8430
+ description: "The reference to unexisting module has terminated the TypeScript types checking",
8431
+ occurrenceLocation: "typeScriptTypesChecker.checkTypes",
8432
+ caughtError: error
8433
+ });
8434
+ if (this.projectBuildingMasterConfigRepresentative.isProductionLikeBuildingMode) {
8435
+ reject(error);
8436
+ return;
8437
+ }
8438
+ resolve();
8439
+ return;
8440
+ }
7803
8441
  es_extensions_1.Logger.logErrorLikeMessage({
7804
8442
  title: "TypeScript Type Checking, Error(s) Detected",
7805
8443
  description: "The source code is including the TypeScript error(s).\n" +
@@ -7832,7 +8470,8 @@ class TypeScriptTypesChecker {
7832
8470
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7833
8471
  consumingProjectRootDirectoryAbsolutePath,
7834
8472
  "node_modules",
7835
- ".bin",
8473
+ "vue-tsc",
8474
+ "bin",
7836
8475
  "vue-tsc.js"
7837
8476
  ], { alwaysForwardSlashSeparators: true }),
7838
8477
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
@@ -7905,7 +8544,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7905
8544
  ], { alwaysForwardSlashSeparators: true });
7906
8545
  const targetOutputFileSearchResults = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously([targetOutputFileGlobSelector]);
7907
8546
  if (targetOutputFileSearchResults.length === 0) {
7908
- es_extensions_1.Logger.throwErrorAndLog({
8547
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7909
8548
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが見つけられなかった。`),
7910
8549
  occurrenceLocation: "ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator" +
7911
8550
  ".getEntryPointsOutputFileActualAbsolutePath(...parameters)",
@@ -7913,7 +8552,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7913
8552
  });
7914
8553
  }
7915
8554
  else if (targetOutputFileSearchResults.length > 1) {
7916
- es_extensions_1.Logger.throwErrorAndLog({
8555
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7917
8556
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが複数件が発見された:\n` +
7918
8557
  `${(0, es_extensions_1.stringifyAndFormatArbitraryValue)(targetOutputFileSearchResults)}\n` +
7919
8558
  "前の構成は自動的に削除されなかった場合、再構成する前に手動で削除して下さい。"),
@@ -7972,13 +8611,14 @@ const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartyS
7972
8611
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
7973
8612
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7974
8613
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
8614
+ const webpackbar_1 = __importDefault(__webpack_require__(/*! webpackbar */ "webpackbar"));
7975
8615
  const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
7976
8616
  const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
7977
8617
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7978
8618
  const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
7979
8619
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7980
8620
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7981
- /* [ Approach ] Because of serious performance impact, the file watching has been delegated to external watcher. */
8621
+ /* [ Approach ] Because of the serious performance impact, the file watching has been delegated to an external watcher. */
7982
8622
  class WebpackConfigGenerator {
7983
8623
  static cachedTypeScriptConfigurations = {};
7984
8624
  /* [ Approach ] Although the parameter is excessive, its properties are been pre-computed externally for other needs,
@@ -8009,8 +8649,9 @@ class WebpackConfigGenerator {
8009
8649
  const distributingSettings = entryPointsGroupSettings.distributing;
8010
8650
  return {
8011
8651
  name: entryPointsGroupSettings.ID,
8012
- /* [ Webpack theory ] In this case, path separators must be operating system dependent, otherwise following error
8013
- * will be thrown: `configuration[0].context: The provided value "D:/OSPanel/../01_Open" is not an absolute path!` */
8652
+ /* [ Webpack theory ] In this case, path separators must be operating-system-dependent; otherwise the following
8653
+ * error will be thrown: `configuration[0].context: The provided value "D:/OSPanel/../01_Open" is not an
8654
+ * absolute path!` */
8014
8655
  context: path_1.default.normalize(sourceFilesTopDirectoryAbsolutePath),
8015
8656
  /* [ Reference ] https://webpack.js.org/configuration/target/ */
8016
8657
  target: (() => {
@@ -8023,8 +8664,35 @@ class WebpackConfigGenerator {
8023
8664
  return "webworker";
8024
8665
  }
8025
8666
  case SupportedECMA_ScriptRuntimesTypes.nodeJS: {
8026
- return `node${entryPointsGroupSettings.targetRuntime.minimalVersion.major}` +
8027
- (0, es_extensions_1.insertSubstringIf)(`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`, (0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor));
8667
+ return [
8668
+ `node${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8669
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8670
+ [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : []
8671
+ ].join("");
8672
+ }
8673
+ case SupportedECMA_ScriptRuntimesTypes.electronMainProcess: {
8674
+ return [
8675
+ `electron${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8676
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8677
+ [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : [],
8678
+ "-main"
8679
+ ].join("");
8680
+ }
8681
+ case SupportedECMA_ScriptRuntimesTypes.electronRendererProcess: {
8682
+ return [
8683
+ `electron${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8684
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8685
+ [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : [],
8686
+ "-renderer"
8687
+ ].join("");
8688
+ }
8689
+ case SupportedECMA_ScriptRuntimesTypes.electronPreload: {
8690
+ return [
8691
+ `electron${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8692
+ ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8693
+ [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : [],
8694
+ "-preload"
8695
+ ].join("");
8028
8696
  }
8029
8697
  }
8030
8698
  })(),
@@ -8045,12 +8713,17 @@ class WebpackConfigGenerator {
8045
8713
  type: (() => {
8046
8714
  switch (entryPointsGroupSettings.targetRuntime.type) {
8047
8715
  case SupportedECMA_ScriptRuntimesTypes.browser:
8716
+ case SupportedECMA_ScriptRuntimesTypes.electronRendererProcess:
8717
+ case SupportedECMA_ScriptRuntimesTypes.electronPreload:
8048
8718
  return entryPointsGroupSettings.distributing.exposingOfExportsFromEntryPoints.mustAssignToWindowObject ?
8049
8719
  "window" : "module";
8050
- case SupportedECMA_ScriptRuntimesTypes.nodeJS: return "commonjs";
8051
- case SupportedECMA_ScriptRuntimesTypes.pug: return "umd";
8720
+ case SupportedECMA_ScriptRuntimesTypes.nodeJS:
8721
+ case SupportedECMA_ScriptRuntimesTypes.electronMainProcess:
8722
+ return "commonjs";
8723
+ case SupportedECMA_ScriptRuntimesTypes.pug:
8724
+ return "umd";
8052
8725
  case SupportedECMA_ScriptRuntimesTypes.webWorker: {
8053
- es_extensions_1.Logger.throwErrorAndLog({
8726
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8054
8727
  errorInstance: new es_extensions_1.UnexpectedEventError("The web worker could not be the library, while the computing of 'output.library.type' has been " +
8055
8728
  "requested"),
8056
8729
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8080,7 +8753,18 @@ class WebpackConfigGenerator {
8080
8753
  /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
8081
8754
  * faster alternatives including "eval" could cause the errors related with security.
8082
8755
  * See https://stackoverflow.com/a/49100966. */
8083
- devtool: masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false,
8756
+ devtool: (() => {
8757
+ /* eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check --
8758
+ * Currently no sourcemap demanded for non-browser-like environments;
8759
+ * */
8760
+ switch (entryPointsGroupSettings.targetRuntime.type) {
8761
+ case SupportedECMA_ScriptRuntimesTypes.browser:
8762
+ case SupportedECMA_ScriptRuntimesTypes.electronRendererProcess:
8763
+ case SupportedECMA_ScriptRuntimesTypes.electronPreload:
8764
+ return masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false;
8765
+ default: return false;
8766
+ }
8767
+ })(),
8084
8768
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
8085
8769
  node: {
8086
8770
  __dirname: true,
@@ -8130,7 +8814,7 @@ class WebpackConfigGenerator {
8130
8814
  options: { mode: "compile" }
8131
8815
  },
8132
8816
  {
8133
- test: /\.ydfr\.pug$/u,
8817
+ test: /\.ydur\.pug$/u,
8134
8818
  loader: "pug3-ast-loader"
8135
8819
  },
8136
8820
  {
@@ -8186,8 +8870,8 @@ class WebpackConfigGenerator {
8186
8870
  ]
8187
8871
  },
8188
8872
  resolve: {
8189
- extensions: ECMA_ScriptLogicProcessingConfigRepresentative.
8190
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
8873
+ extensions: Array.
8874
+ from(ECMA_ScriptLogicProcessingConfigRepresentative.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).
8191
8875
  map((fileNameExtensionWithoutDot) => `.${fileNameExtensionWithoutDot}`),
8192
8876
  alias: {
8193
8877
  ...WebpackSpecialist_1.default.convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
@@ -8226,7 +8910,12 @@ class WebpackConfigGenerator {
8226
8910
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
8227
8911
  } : null
8228
8912
  }),
8229
- new vue_loader_1.VueLoaderPlugin()
8913
+ new vue_loader_1.VueLoaderPlugin(),
8914
+ new webpackbar_1.default({
8915
+ name: entryPointsGroupSettings.ID,
8916
+ profile: true,
8917
+ fancy: false
8918
+ })
8230
8919
  ],
8231
8920
  optimization: {
8232
8921
  minimize: !masterConfigRepresentative.mustProvideIncrementalBuilding,
@@ -8285,7 +8974,7 @@ class WebpackConfigGenerator {
8285
8974
  for (const entryPointSourceFileAbsolutePath of entryPointsSourceFilesAbsolutePaths) {
8286
8975
  const filePathWithoutFilenameExtension = (0, es_extensions_1.removeAllFileNameExtensions)(entryPointSourceFileAbsolutePath);
8287
8976
  if (entryPointsSourceFiles.has(filePathWithoutFilenameExtension)) {
8288
- es_extensions_1.Logger.throwErrorAndLog({
8977
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8289
8978
  errorType: "IncompatibleFilesError",
8290
8979
  description: "Incompatible files",
8291
8980
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8302,6 +8991,49 @@ class WebpackConfigGenerator {
8302
8991
  exports["default"] = WebpackConfigGenerator;
8303
8992
 
8304
8993
 
8994
+ /***/ }),
8995
+
8996
+ /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts":
8997
+ /*!*************************************************************************************************!*\
8998
+ !*** ./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Watchers/ElectronOutputFilesWatcher.ts ***!
8999
+ \*************************************************************************************************/
9000
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9001
+
9002
+
9003
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9004
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9005
+ };
9006
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9007
+ /* ─── Files Watchers ─────────────────────────────────────────────────────────────────────────────────────────────── */
9008
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
9009
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
9010
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
9011
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9012
+ class ElectronFilesWatcher extends FilesPassiveWatcher_1.default {
9013
+ onAnyEventRelatedWithActualFilesHandler;
9014
+ static initialize(initializationRequirements) {
9015
+ FilesMasterWatcher_1.default.addPassiveWatcher(new ElectronFilesWatcher(initializationRequirements));
9016
+ }
9017
+ constructor({ electronSettings, loggingSettings, onAnyEventRelatedWithActualFilesHandler }) {
9018
+ super({
9019
+ ID: "BROWSER_COORDINATOR_RELATED_FILES_WATCHER",
9020
+ targetFilesGlobSelectors: [
9021
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
9022
+ basicDirectoryPath: electronSettings.hotReloadingForLocalDevelopmentMode.rootDirectoryAbsolutePath
9023
+ }),
9024
+ ...electronSettings.hotReloadingForLocalDevelopmentMode.ignoredFilesAndDirectoriesAbsolutePaths.map((excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory) => es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory))
9025
+ ],
9026
+ mustLogEvents: loggingSettings.filesWatcherEvents
9027
+ });
9028
+ this.onAnyEventRelatedWithActualFilesHandler = onAnyEventRelatedWithActualFilesHandler;
9029
+ }
9030
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
9031
+ this.onAnyEventRelatedWithActualFilesHandler(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName);
9032
+ }
9033
+ }
9034
+ exports["default"] = ElectronFilesWatcher;
9035
+
9036
+
8305
9037
  /***/ }),
8306
9038
 
8307
9039
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupEntryPointVinylFile.ts":
@@ -8407,10 +9139,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8407
9139
  return (mod && mod.__esModule) ? mod : { "default": mod };
8408
9140
  };
8409
9141
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8410
- const addPenultimateFileNameExtension_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Strings/addPenultimateFileNameExtension */ "./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts"));
9142
+ const addPenultimateFileNameExtension_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension */ "./Incubators/@yamato-daiwa/es-extensions/Strings/addPenultimateFileNameExtension.ts"));
8411
9143
  var MarkupProcessingRestrictions;
8412
9144
  (function (MarkupProcessingRestrictions) {
8413
- MarkupProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["pug"];
9145
+ MarkupProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set(["pug"]);
9146
+ MarkupProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
8414
9147
  MarkupProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["html"];
8415
9148
  let OutputFormats;
8416
9149
  (function (OutputFormats) {
@@ -8497,9 +9230,8 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
8497
9230
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
8498
9231
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
8499
9232
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8500
- supportedSourceFileNameExtensionsWithoutLeadingDots;
8501
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8502
- supportedSourceFileNameExtensionsWithoutLeadingDots;
9233
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
9234
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedMarkupProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
8503
9235
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedMarkupProcessingSettings.common.
8504
9236
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
8505
9237
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -8958,6 +9690,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
8958
9690
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
8959
9691
  type: Number,
8960
9692
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
9693
+ isNaN_Forbidden: true,
8961
9694
  isUndefinedForbidden: false,
8962
9695
  isNullForbidden: true
8963
9696
  },
@@ -9558,7 +10291,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9558
10291
  constructor(markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
9559
10292
  super({
9560
10293
  projectBuildingMasterConfigRepresentative,
9561
- taskTitleForLogging: "Markup processing"
10294
+ taskTitleForLogging: "Markup Processing"
9562
10295
  });
9563
10296
  this.logging = {
9564
10297
  pathsOfFilesWillBeProcessed: markupProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -9586,7 +10319,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9586
10319
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9587
10320
  onStreamStartedEventHandler: MarkupProcessor.managePageVariations
9588
10321
  })).
9589
- pipe(this.logProcessedFilesIfMust()).
10322
+ pipe(super.logInputFilesIfMust()).
9590
10323
  pipe((0, gulp_data_1.default)((vinylFile) => ({
9591
10324
  ...vinylFile.pageStateDependentVariationData ?? null,
9592
10325
  ...vinylFile.localizationData ?? null,
@@ -9617,6 +10350,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9617
10350
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9618
10351
  onStreamStartedEventHandler: this.onOutputHTML_FileReady.bind(this)
9619
10352
  })).
10353
+ pipe(super.logOutputFilesIfMust()).
9620
10354
  pipe(gulp_1.default.dest((targetFile) => MarkupEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile))).
9621
10355
  on("end", this.onStreamEnded.bind(this));
9622
10356
  }
@@ -9860,7 +10594,7 @@ const puppeteer_1 = __importDefault(__webpack_require__(/*! puppeteer */ "puppet
9860
10594
  /* ─── Generals utils ────────────────────────────────────────────────────────────────────────────────────────────── */
9861
10595
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
9862
10596
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9863
- const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
10597
+ const Stopwatch_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Stopwatch */ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts"));
9864
10598
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
9865
10599
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
9866
10600
  const node_html_parser_1 = __webpack_require__(/*! node-html-parser */ "node-html-parser");
@@ -10085,7 +10819,7 @@ class AccessibilityInspector {
10085
10819
  title: AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog.title,
10086
10820
  description: `\n${accessibilityIssuesLogForEachFile.join("\n")}`
10087
10821
  });
10088
- es_extensions_1.Logger.throwErrorAndLog({
10822
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10089
10823
  errorType: "AccessibilityIssuesFoundError",
10090
10824
  ...AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog,
10091
10825
  occurrenceLocation: "AccessibilityInspector.reportCachedValidationsResultsAndFinalize"
@@ -10319,9 +11053,10 @@ class AccessibilityInspector {
10319
11053
  const numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1 = numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 + highlightedCodeFragment.length;
10320
11054
  /* [ Maintainability ] Keep these variables for easy debugging. */
10321
11055
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11056
+ fromStart: true,
10322
11057
  targetArray: rawHTML_CodeSplitToLines,
10323
11058
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10324
- endingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
11059
+ endingElementNumber__numerationFrom1__including: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
10325
11060
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10326
11061
  mutably: false
10327
11062
  }).join("\n")}\n` +
@@ -10338,9 +11073,10 @@ class AccessibilityInspector {
10338
11073
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
10339
11074
  })}\n` +
10340
11075
  (0, es_extensions_1.cropArray)({
11076
+ fromStart: true,
10341
11077
  targetArray: rawHTML_CodeSplitToLines,
10342
11078
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
10343
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11079
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10344
11080
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10345
11081
  mutably: false
10346
11082
  }).join("\n");
@@ -10468,7 +11204,7 @@ class AccessibilityInspector {
10468
11204
  accumulatingValue[filePathRelativeToConsumingProjectRootDirectory] = cachedInspectionRawResultsForSpecificFile;
10469
11205
  return accumulatingValue;
10470
11206
  }, {});
10471
- fs_1.default.writeFileSync(this.CACHED_INSPECTIONS_RESULTS_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(cachedInspectionsResultsFileContent));
11207
+ fs_1.default.writeFileSync(this.CACHED_INSPECTIONS_RESULTS_FILE_ABSOLUTE_PATH, JSON.stringify(cachedInspectionsResultsFileContent, null, 2));
10472
11208
  }
10473
11209
  /* ─── Routines ─────────────────────────────────────────────────────────────────────────────────────────────────── */
10474
11210
  static async initializeAsynchronousRequirements({ cachedInspectionsResultsDirectoryAbsolutePath, cachedInspectionResultsFileAbsolutePath }) {
@@ -10508,7 +11244,7 @@ class AccessibilityInspector {
10508
11244
  }
10509
11245
  static async getInstanceOnceReady() {
10510
11246
  if (!AccessibilityInspector.hasInitializationStarted) {
10511
- es_extensions_1.Logger.throwErrorAndLog({
11247
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10512
11248
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
10513
11249
  className: "AccessibilityInspector",
10514
11250
  initializingMethodName: "beginInitialization"
@@ -10518,7 +11254,7 @@ class AccessibilityInspector {
10518
11254
  });
10519
11255
  }
10520
11256
  if (AccessibilityInspector.hasInitializationFailed) {
10521
- es_extensions_1.Logger.throwErrorAndLog({
11257
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10522
11258
  errorType: "InitializationFailedError",
10523
11259
  description: "The initialization has failed thus the accessibility checking could not be executed.",
10524
11260
  title: "Initialization failed",
@@ -10639,7 +11375,7 @@ const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */
10639
11375
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
10640
11376
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
10641
11377
  const nanoid_1 = __webpack_require__(/*! nanoid */ "nanoid");
10642
- const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
11378
+ const Stopwatch_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Stopwatch */ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts"));
10643
11379
  class HTML_Validator {
10644
11380
  /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
10645
11381
  static selfSingleInstance = null;
@@ -10685,19 +11421,22 @@ class HTML_Validator {
10685
11421
  type: Number,
10686
11422
  isUndefinedForbidden: false,
10687
11423
  isNullForbidden: true,
10688
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11424
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11425
+ isNaN_Forbidden: true
10689
11426
  },
10690
11427
  lastColumn: {
10691
11428
  type: Number,
10692
11429
  isUndefinedForbidden: false,
10693
11430
  isNullForbidden: true,
10694
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11431
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11432
+ isNaN_Forbidden: true
10695
11433
  },
10696
11434
  firstColumn: {
10697
11435
  type: Number,
10698
11436
  isUndefinedForbidden: false,
10699
11437
  isNullForbidden: true,
10700
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11438
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11439
+ isNaN_Forbidden: true
10701
11440
  },
10702
11441
  subType: {
10703
11442
  type: String,
@@ -10721,13 +11460,15 @@ class HTML_Validator {
10721
11460
  isUndefinedForbidden: false,
10722
11461
  isNullForbidden: true,
10723
11462
  /* [ Theory ] The 0 is rare but possible (at least was possible for May 2025). */
10724
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
11463
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11464
+ isNaN_Forbidden: true
10725
11465
  },
10726
11466
  hiliteLength: {
10727
11467
  type: Number,
10728
11468
  isUndefinedForbidden: false,
10729
11469
  isNullForbidden: true,
10730
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11470
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11471
+ isNaN_Forbidden: true
10731
11472
  }
10732
11473
  }
10733
11474
  }
@@ -10785,18 +11526,21 @@ class HTML_Validator {
10785
11526
  lineNumber__numerationFrom1: {
10786
11527
  type: Number,
10787
11528
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11529
+ isNaN_Forbidden: true,
10788
11530
  isUndefinedForbidden: true,
10789
11531
  isNullForbidden: true
10790
11532
  },
10791
11533
  startingColumnNumber__numerationFrom1: {
10792
11534
  type: Number,
10793
11535
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11536
+ isNaN_Forbidden: true,
10794
11537
  isUndefinedForbidden: true,
10795
11538
  isNullForbidden: true
10796
11539
  },
10797
11540
  endingColumnNumber__numerationFrom1: {
10798
11541
  type: Number,
10799
11542
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11543
+ isNaN_Forbidden: true,
10800
11544
  isUndefinedForbidden: true,
10801
11545
  isNullForbidden: true
10802
11546
  },
@@ -11086,9 +11830,10 @@ class HTML_Validator {
11086
11830
  const numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 = firstColumn ?? numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1;
11087
11831
  /* [ Maintainability ] Keep these variables for easier debugging. */
11088
11832
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11833
+ fromStart: true,
11089
11834
  targetArray: HTML_CodeSplitToLines,
11090
11835
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11091
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMinimalValue)({
11836
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMinimalValue)({
11092
11837
  targetNumber: lineNumberOfActualCodeFragment__numerationFrom1 - 1, minimalValue: 1
11093
11838
  }),
11094
11839
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
@@ -11115,9 +11860,10 @@ class HTML_Validator {
11115
11860
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
11116
11861
  })}\n` +
11117
11862
  (0, es_extensions_1.cropArray)({
11863
+ fromStart: true,
11118
11864
  targetArray: HTML_CodeSplitToLines,
11119
11865
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
11120
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11866
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11121
11867
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
11122
11868
  mutably: false
11123
11869
  }).join("\n");
@@ -11260,8 +12006,8 @@ class HTML_Validator {
11260
12006
  return es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
11261
12007
  parentDirectoryAbsolutePath,
11262
12008
  [
11263
- `${HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART}.`,
11264
- ...(0, es_extensions_1.isUndefined)(projectBuildingSelectiveExecutionID) ? [] : [`${projectBuildingSelectiveExecutionID}.`],
12009
+ HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART,
12010
+ ...(0, es_extensions_1.isUndefined)(projectBuildingSelectiveExecutionID) ? [] : [projectBuildingSelectiveExecutionID],
11265
12011
  `${(0, es_extensions_1.toLowerCamelCase)(consumingProjectBuildingMode)}.json`
11266
12012
  ].join(".")
11267
12013
  ]);
@@ -11274,7 +12020,7 @@ class HTML_Validator {
11274
12020
  return accumulatingValue;
11275
12021
  }, {});
11276
12022
  es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
11277
- filePath: this.absolutePathOfParentDirectoryOfCachedValidationsResultsFile,
12023
+ filePath: this.absolutePathOfCachedValidationsResultsFile,
11278
12024
  content: JSON.stringify(cachedValidationsResultsFileContent, null, 2),
11279
12025
  synchronously: true
11280
12026
  });
@@ -11282,7 +12028,7 @@ class HTML_Validator {
11282
12028
  /* ━━━ Routines ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
11283
12029
  static getExpectedToBeInitializedSelfSingleInstance() {
11284
12030
  return HTML_Validator.selfSingleInstance ??
11285
- es_extensions_1.Logger.throwErrorAndLog({
12031
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
11286
12032
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
11287
12033
  className: "HTML_Validator",
11288
12034
  initializingMethodName: "initialize"
@@ -12119,8 +12865,8 @@ class ResourcesPointersResolverForHTML {
12119
12865
  });
12120
12866
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile) ||
12121
12867
  !supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
12122
- includes(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
12123
- const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
12868
+ has(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
12869
+ const possibleAbsolutePathsOfTargetSourceFileWithoutFragment = Array.from(supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).map((supportedStylesheetFileNameExtensionWithoutLeadingDot) => (0, es_extensions_1.getURI_PartWithoutFragment)((0, es_extensions_1.appendLastFileNameExtension)({
12124
12870
  targetPath: sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension,
12125
12871
  targetFileNameExtensionWithOrWithoutLeadingDot: supportedStylesheetFileNameExtensionWithoutLeadingDot,
12126
12872
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
@@ -12245,7 +12991,8 @@ class CodeListingPugFilter {
12245
12991
  type: Number,
12246
12992
  isUndefinedForbidden: false,
12247
12993
  isNullForbidden: true,
12248
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
12994
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
12995
+ isNaN_Forbidden: true
12249
12996
  },
12250
12997
  indentationString: {
12251
12998
  type: String,
@@ -12261,7 +13008,7 @@ class CodeListingPugFilter {
12261
13008
  static apply(sourcePugCode, rawOptions) {
12262
13009
  const rawOptionsProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawOptions, CodeListingPugFilter.optionsSpecification);
12263
13010
  if (rawOptionsProcessingResult.isRawDataInvalid) {
12264
- es_extensions_1.Logger.throwErrorAndLog({
13011
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12265
13012
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12266
13013
  customMessage: "One or more invalid options found for \"CodeListing\" pug filer.\n" +
12267
13014
  es_extensions_1.RawObjectDataProcessor.formatValidationErrorsList(rawOptionsProcessingResult.validationErrorsMessages)
@@ -12315,13 +13062,13 @@ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_re
12315
13062
  const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
12316
13063
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12317
13064
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12318
- const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/NodeJS/isSubdirectory */ "./UtilsIncubator/NodeJS/isSubdirectory.ts"));
13065
+ const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory */ "./Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory.ts"));
12319
13066
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
12320
13067
  /* ─── Localization ───────────────────────────────────────────────────────────────────────────────────────────────── */
12321
13068
  const MarkupProcessingRawSettingsNormalizerLocalization_english_1 = __importDefault(__webpack_require__(/*! ./MarkupProcessingRawSettingsNormalizerLocalization.english */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts"));
12322
13069
  class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
12323
13070
  static localization = MarkupProcessingRawSettingsNormalizerLocalization_english_1.default;
12324
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
13071
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
12325
13072
  markupProcessingSettings__fromFile__rawValid;
12326
13073
  unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths;
12327
13074
  commonStringResources;
@@ -12335,7 +13082,8 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12335
13082
  });
12336
13083
  return {
12337
13084
  common: {
12338
- supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
13085
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
13086
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: MarkupProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
12339
13087
  supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
12340
13088
  mustResolveResourcesReferencesToAbsolutePath: dataHoldingSelfInstance.
12341
13089
  computeMustResolveResourcesReferencesToAbsolutePathPropertyValue(),
@@ -12476,7 +13224,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12476
13224
  });
12477
13225
  }
12478
13226
  catch (error) {
12479
- es_extensions_1.Logger.throwErrorAndLog({
13227
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12480
13228
  errorInstance: new es_extensions_1.FileReadingFailedError({
12481
13229
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12482
13230
  generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage({
@@ -12513,7 +13261,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12513
13261
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
12514
13262
  });
12515
13263
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData)) {
12516
- es_extensions_1.Logger.throwErrorAndLog({
13264
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12517
13265
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12518
13266
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12519
13267
  generateInvalidValueOfStaticPreviewStateDependentPagesVariationsSpecificationAssociativeArrayMessage({
@@ -12529,7 +13277,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12529
13277
  });
12530
13278
  }
12531
13279
  if (!(0, es_extensions_1.isNonEmptyString)(stateDependentPageVariationsData.$stateObjectTypeVariableName)) {
12532
- es_extensions_1.Logger.throwErrorAndLog({
13280
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12533
13281
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12534
13282
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableNameMessage({
12535
13283
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12543,7 +13291,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12543
13291
  });
12544
13292
  }
12545
13293
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData.$stateDependentVariations)) {
12546
- es_extensions_1.Logger.throwErrorAndLog({
13294
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12547
13295
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12548
13296
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12549
13297
  generateInvalidPageStateDependentVariationsSpecificationMessage({
@@ -12562,7 +13310,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12562
13310
  for (const [fineNamePostfix, stateData] of Object.entries(stateDependentPageVariationsData.$stateDependentVariations)) {
12563
13311
  const derivedFileAbsolutePath = `${(0, es_extensions_1.removeAllFileNameExtensions)(markupSourceFileFileAbsolutePath)}${fineNamePostfix}.pug`;
12564
13312
  if (!(0, es_extensions_1.isArbitraryObject)(stateData)) {
12565
- es_extensions_1.Logger.throwErrorAndLog({
13313
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12566
13314
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12567
13315
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableMessage({
12568
13316
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12599,7 +13347,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12599
13347
  });
12600
13348
  }
12601
13349
  catch (error) {
12602
- es_extensions_1.Logger.throwErrorAndLog({
13350
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12603
13351
  errorInstance: new es_extensions_1.FileReadingFailedError({
12604
13352
  filePath: importFromStaticDataFile.fileRelativePath
12605
13353
  }),
@@ -12736,7 +13484,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12736
13484
  excludedFilesPathsRelativeToSourcesFilesTopDirectory?.
12737
13485
  map((excludedFilePathRelativeRelativeToSourcesFileTopDirectory) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceFilesTopDirectoryAbsolutePath, excludedFilePathRelativeRelativeToSourcesFileTopDirectory], { alwaysForwardSlashSeparators: true })) ??
12738
13486
  []).
12739
- concat(Array.from((0, es_extensions_1.removeMultipleElementsFromSetByPredicate)({
13487
+ concat(Array.from((0, es_extensions_1.removeSetElementsByPredicates)({
12740
13488
  targetSet: this.unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths,
12741
13489
  predicate: (commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath) => (0, isSubdirectory_1.default)({
12742
13490
  whichPath: commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath,
@@ -12755,7 +13503,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12755
13503
  });
12756
13504
  }
12757
13505
  catch (error) {
12758
- es_extensions_1.Logger.throwErrorAndLog({
13506
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12759
13507
  errorInstance: new es_extensions_1.FileReadingFailedError({
12760
13508
  customMessage: `Unable to read the file with string resources at "${stringResourcesFileAbsolutePath}".`
12761
13509
  }),
@@ -12766,7 +13514,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12766
13514
  });
12767
13515
  }
12768
13516
  if (!(0, es_extensions_1.isArbitraryObject)(stringResources)) {
12769
- es_extensions_1.Logger.throwErrorAndLog({
13517
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12770
13518
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12771
13519
  customMessage: `The content of string resources files "${stringResourcesFileAbsolutePath}" is not an object.`
12772
13520
  }),
@@ -12909,7 +13657,7 @@ class RoutingSettingsNormalizer {
12909
13657
  schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12910
13658
  });
12911
13659
  if (!(0, es_extensions_1.isArbitraryObject)(routingLocalization)) {
12912
- es_extensions_1.Logger.throwErrorAndLog({
13660
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12913
13661
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12914
13662
  customMessage: `Malformed routing localization at "${routingLocalizationFileAbsolutePath}".`
12915
13663
  }),
@@ -12942,7 +13690,7 @@ class RoutingSettingsNormalizer {
12942
13690
  }
12943
13691
  static normalizeDepthLevelWiseRecursively({ rawRoutingOfSpecificDepthLevel, outputWorkpiece, localization }) {
12944
13692
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoutingOfSpecificDepthLevel)) {
12945
- es_extensions_1.Logger.throwErrorAndLog({
13693
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12946
13694
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12947
13695
  customMessage: [
12948
13696
  "Malformed routing",
@@ -12960,7 +13708,7 @@ class RoutingSettingsNormalizer {
12960
13708
  for (const [routeKey, rawRoute] of Object.entries(rawRoutingOfSpecificDepthLevel)) {
12961
13709
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = routeKey;
12962
13710
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoute)) {
12963
- es_extensions_1.Logger.throwErrorAndLog({
13711
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12964
13712
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12965
13713
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
12966
13714
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawRoute)} found.`
@@ -12993,7 +13741,7 @@ class RoutingSettingsNormalizer {
12993
13741
  return null;
12994
13742
  }
12995
13743
  if (!(0, es_extensions_1.isString)(rawURI)) {
12996
- es_extensions_1.Logger.throwErrorAndLog({
13744
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12997
13745
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12998
13746
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12999
13747
  `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawURI)} found.`
@@ -13005,7 +13753,7 @@ class RoutingSettingsNormalizer {
13005
13753
  let URI_Workpiece = rawURI;
13006
13754
  if (URI_Workpiece.startsWith("`")) {
13007
13755
  if ((0, es_extensions_1.isUndefined)(localization)) {
13008
- es_extensions_1.Logger.throwErrorAndLog({
13756
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13009
13757
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13010
13758
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13011
13759
  "The specified URI has been wrapped to backticks while no localization specified."
@@ -13030,7 +13778,7 @@ class RoutingSettingsNormalizer {
13030
13778
  regularExpressionWithCapturingGroups: /(?<interpolation>\$\{\s*(?<variable>(?:\w|\.)+)\s*\})/gum,
13031
13779
  replacer(matching) {
13032
13780
  const variableSubstitution = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, matching.namedCapturingGroups.variable);
13033
- if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution)) {
13781
+ if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution, { mustConsiderNaN_AsNumber: false })) {
13034
13782
  return null;
13035
13783
  }
13036
13784
  return String(variableSubstitution);
@@ -13040,7 +13788,7 @@ class RoutingSettingsNormalizer {
13040
13788
  if (URI_Workpiece.includes("$")) {
13041
13789
  const localeDependentURI = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, URI_Workpiece);
13042
13790
  if (!(0, es_extensions_1.isString)(localeDependentURI)) {
13043
- es_extensions_1.Logger.throwErrorAndLog({
13791
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13044
13792
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13045
13793
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13046
13794
  "The specified URI is including backticks while no localization specified."
@@ -13056,7 +13804,7 @@ class RoutingSettingsNormalizer {
13056
13804
  }
13057
13805
  static normalizeHeading(rawHeading, localization) {
13058
13806
  if (!(0, es_extensions_1.isString)(rawHeading)) {
13059
- es_extensions_1.Logger.throwErrorAndLog({
13807
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13060
13808
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13061
13809
  customMessage: [
13062
13810
  `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13070,7 +13818,7 @@ class RoutingSettingsNormalizer {
13070
13818
  let headingWorkpiece = rawHeading;
13071
13819
  if (headingWorkpiece.startsWith("`")) {
13072
13820
  if ((0, es_extensions_1.isEitherUndefinedOrNull)(localization)) {
13073
- es_extensions_1.Logger.throwErrorAndLog({
13821
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13074
13822
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13075
13823
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".` +
13076
13824
  "The specified URI is including backticks while no localization specified."
@@ -13091,7 +13839,7 @@ class RoutingSettingsNormalizer {
13091
13839
  });
13092
13840
  const localizedHeading = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, headingWorkpiece);
13093
13841
  if (!(0, es_extensions_1.isString)(localizedHeading)) {
13094
- es_extensions_1.Logger.throwErrorAndLog({
13842
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13095
13843
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13096
13844
  customMessage: [
13097
13845
  `Malformed localized heading at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13110,7 +13858,7 @@ class RoutingSettingsNormalizer {
13110
13858
  static normalizeSectioning(rawSectioningSpecification, parentRouteURI, localization) {
13111
13859
  RoutingSettingsNormalizer.routingPathSegments.push("$sectioning");
13112
13860
  if (!(0, es_extensions_1.isString)(parentRouteURI)) {
13113
- es_extensions_1.Logger.throwErrorAndLog({
13861
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13114
13862
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13115
13863
  customMessage: `The sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}" has been defined ` +
13116
13864
  "while the $URI of the parent route has not been. " +
@@ -13121,7 +13869,7 @@ class RoutingSettingsNormalizer {
13121
13869
  });
13122
13870
  }
13123
13871
  if (!(0, es_extensions_1.isNonEmptyString)(rawSectioningSpecification.$specificationFileRelativePath)) {
13124
- es_extensions_1.Logger.throwErrorAndLog({
13872
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13125
13873
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13126
13874
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.` +
13127
13875
  "$specificationFileRelativePath\"." +
@@ -13148,7 +13896,7 @@ class RoutingSettingsNormalizer {
13148
13896
  });
13149
13897
  }
13150
13898
  catch (error) {
13151
- es_extensions_1.Logger.throwErrorAndLog({
13899
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13152
13900
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13153
13901
  customMessage: "The error has occurred during the reading of sectioning file at " +
13154
13902
  `"${rawSectioningSpecification.$specificationFileRelativePath}".`
@@ -13160,7 +13908,7 @@ class RoutingSettingsNormalizer {
13160
13908
  }
13161
13909
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(rawSectioningSchemaFileAbsolutePath);
13162
13910
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningSchema)) {
13163
- es_extensions_1.Logger.throwErrorAndLog({
13911
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13164
13912
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13165
13913
  customMessage: `Malformed sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}". ` +
13166
13914
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningSchema)} found.`
@@ -13171,7 +13919,7 @@ class RoutingSettingsNormalizer {
13171
13919
  }
13172
13920
  if ((0, es_extensions_1.isArbitraryObject)(rawSectioningSpecification.$localizations)) {
13173
13921
  if ((0, es_extensions_1.isUndefined)(localization)) {
13174
- es_extensions_1.Logger.throwErrorAndLog({
13922
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13175
13923
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13176
13924
  customMessage: "The $localizations has been specified for sectioning " +
13177
13925
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}", but common localizations for ` +
@@ -13185,7 +13933,7 @@ class RoutingSettingsNormalizer {
13185
13933
  const targetLocalizationFileRelativePath = rawSectioningSpecification.$localizations[localization.locale];
13186
13934
  RoutingSettingsNormalizer.routingPathSegments.push("$localizations", localization.locale);
13187
13935
  if (!(0, es_extensions_1.isString)(targetLocalizationFileRelativePath)) {
13188
- es_extensions_1.Logger.throwErrorAndLog({
13936
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13189
13937
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13190
13938
  customMessage: "Invalid path to sectioning localization at " +
13191
13939
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
@@ -13206,7 +13954,7 @@ class RoutingSettingsNormalizer {
13206
13954
  });
13207
13955
  }
13208
13956
  catch (error) {
13209
- es_extensions_1.Logger.throwErrorAndLog({
13957
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13210
13958
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: targetLocalizationFileAbsolutePath }),
13211
13959
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
13212
13960
  occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(...parameters)",
@@ -13215,7 +13963,7 @@ class RoutingSettingsNormalizer {
13215
13963
  }
13216
13964
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(targetLocalizationFileAbsolutePath);
13217
13965
  if (!(0, es_extensions_1.isArbitraryObject)(sectioningRawLocalization)) {
13218
- es_extensions_1.Logger.throwErrorAndLog({
13966
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13219
13967
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13220
13968
  customMessage: `Malformed sectioning localization at "${targetLocalizationFileAbsolutePath}".`
13221
13969
  }),
@@ -13244,7 +13992,7 @@ class RoutingSettingsNormalizer {
13244
13992
  }
13245
13993
  static normalizeSectioningDepthLevelRecursively({ rawSectioningOfSpecificDepthLevel, outputWorkpiece, localization, parentRouteURI }) {
13246
13994
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningOfSpecificDepthLevel)) {
13247
- es_extensions_1.Logger.throwErrorAndLog({
13995
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13248
13996
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13249
13997
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13250
13998
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningOfSpecificDepthLevel)} found.`
@@ -13262,7 +14010,7 @@ class RoutingSettingsNormalizer {
13262
14010
  for (const [sectionKey, sectionRawMetadata] of Object.entries(rawSectioningOfSpecificDepthLevel)) {
13263
14011
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = sectionKey;
13264
14012
  if (!(0, es_extensions_1.isArbitraryObject)(sectionRawMetadata)) {
13265
- es_extensions_1.Logger.throwErrorAndLog({
14013
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13266
14014
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13267
14015
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".` +
13268
14016
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(sectionRawMetadata)} found.`
@@ -13272,7 +14020,7 @@ class RoutingSettingsNormalizer {
13272
14020
  });
13273
14021
  }
13274
14022
  if (!(0, es_extensions_1.isString)(sectionRawMetadata.$anchor)) {
13275
- es_extensions_1.Logger.throwErrorAndLog({
14023
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13276
14024
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13277
14025
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13278
14026
  `The property "$anchor" must be defined with string while ${typeof sectionRawMetadata} found.`
@@ -13376,7 +14124,7 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13376
14124
  })
13377
14125
  });
13378
14126
  if (!fs_1.default.existsSync(compiledTypeScriptImportingSettings.sourceFileAbsolutePath)) {
13379
- es_extensions_1.Logger.throwErrorAndLog({
14127
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13380
14128
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
13381
14129
  customMessage: `The TypeScript file "${compiledTypeScriptImportingSettings.sourceFileAbsolutePath}" for ` +
13382
14130
  "the exporting to Pug was found. " +
@@ -13409,10 +14157,11 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13409
14157
  return gulp_1.default.
13410
14158
  src(this.typeScriptSourceFileAbsolutePath).
13411
14159
  pipe(super.handleErrorIfItWillOccur()).
13412
- pipe(super.logProcessedFilesIfMust()).
14160
+ pipe(super.logInputFilesIfMust()).
13413
14161
  pipe((0, webpack_stream_1.default)(this.webpackConfiguration,
13414
14162
  /* @ts-ignore: TS2345 The null as second argument is obeying to README of "webpack-stream" package. */
13415
14163
  null, this.onBuildHasCompleted.bind(this))).
14164
+ pipe(super.logOutputFilesIfMust()).
13416
14165
  pipe(GulpStreamModifier_1.default.modify({
13417
14166
  onStreamStartedEventCommonHandler: async (vinylFile) => {
13418
14167
  const outputJavaScriptCode = (0, extractStringifiedContentFromVinylFile_1.default)(vinylFile);
@@ -13580,7 +14329,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13580
14329
  pugLintConfig = config_file_1.default.load();
13581
14330
  }
13582
14331
  catch (error) {
13583
- es_extensions_1.Logger.throwErrorAndLog({
14332
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13584
14333
  errorInstance: new es_extensions_1.InvalidConfigError({
13585
14334
  customMessage: "Invalid puglint config."
13586
14335
  }),
@@ -13632,7 +14381,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13632
14381
  constructor({ markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative, pugLintConfig }) {
13633
14382
  super({
13634
14383
  projectBuildingMasterConfigRepresentative,
13635
- taskTitleForLogging: "Markup processing / Markup source code linting",
14384
+ taskTitleForLogging: "Markup Processing / Markup Source Code Linting",
13636
14385
  sourceFilesCachedCheckingResults: {
13637
14386
  fileNameWithExtension: "MarkupLintingCache.json",
13638
14387
  contentSpecification: {
@@ -13678,13 +14427,15 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13678
14427
  type: Number,
13679
14428
  isUndefinedForbidden: true,
13680
14429
  isNullForbidden: true,
13681
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14430
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14431
+ isNaN_Forbidden: true
13682
14432
  },
13683
14433
  columnNumber: {
13684
14434
  type: Number,
13685
14435
  isUndefinedForbidden: false,
13686
14436
  isNullForbidden: true,
13687
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14437
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14438
+ isNaN_Forbidden: true
13688
14439
  }
13689
14440
  }
13690
14441
  }
@@ -13728,7 +14479,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13728
14479
  this.pugLintInstance.configure(this.pugLintConfig);
13729
14480
  }
13730
14481
  catch (error) {
13731
- es_extensions_1.Logger.throwErrorAndLog({
14482
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13732
14483
  errorInstance: new es_extensions_1.InvalidConfigError({
13733
14484
  customMessage: MarkupSourceCodeLinter.localization.pugLintConfigurationIsInvalid.description
13734
14485
  }),
@@ -13754,7 +14505,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13754
14505
  }));
13755
14506
  }
13756
14507
  catch (error) {
13757
- es_extensions_1.Logger.throwErrorAndLog({
14508
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13758
14509
  errorType: "MarkupLintingError",
13759
14510
  title: MarkupSourceCodeLinter.localization.lintingFailedErrorLog.title,
13760
14511
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -13932,7 +14683,7 @@ const RevisioningSettingsNormalizer_1 = __importDefault(__webpack_require__(/*!
13932
14683
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
13933
14684
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
13934
14685
  class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
13935
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
14686
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
13936
14687
  static normalize({ stylesProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
13937
14688
  const dataHoldingSelfInstance = new StylesProcessingRawSettingsNormalizer({
13938
14689
  projectBuildingCommonSettings__normalized: commonSettings__normalized,
@@ -13942,7 +14693,8 @@ class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
13942
14693
  });
13943
14694
  return {
13944
14695
  common: {
13945
- supportedSourceFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
14696
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
14697
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: StylesProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
13946
14698
  supportedOutputFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
13947
14699
  secondsBetweenFileUpdatingAndStartingOfRebuilding: stylesProcessingSettings__fromFile__rawValid.
13948
14700
  common?.
@@ -14018,7 +14770,10 @@ exports["default"] = StylesProcessingRawSettingsNormalizer;
14018
14770
  Object.defineProperty(exports, "__esModule", ({ value: true }));
14019
14771
  var StylesProcessingRestrictions;
14020
14772
  (function (StylesProcessingRestrictions) {
14021
- StylesProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["styl", "stylus"];
14773
+ StylesProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
14774
+ "styl", "stylus"
14775
+ ]);
14776
+ StylesProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
14022
14777
  StylesProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["css"];
14023
14778
  })(StylesProcessingRestrictions || (StylesProcessingRestrictions = {}));
14024
14779
  exports["default"] = StylesProcessingRestrictions;
@@ -14040,6 +14795,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
14040
14795
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
14041
14796
  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"));
14042
14797
  const GulpStreamBasedSourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative.ts"));
14798
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
14799
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14043
14800
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
14044
14801
  /* [ Theory ] Below two fields could be even or not. */
14045
14802
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -14060,9 +14817,8 @@ class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
14060
14817
  this.relevantEntryPointsGroupsSettings = normalizedStylesProcessingSettings.relevantEntryPointsGroups;
14061
14818
  this.loggingSettings = normalizedStylesProcessingSettings.logging;
14062
14819
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14063
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14064
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14065
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14820
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
14821
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedStylesProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
14066
14822
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedStylesProcessingSettings.common.
14067
14823
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
14068
14824
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -14176,6 +14932,7 @@ var StylesProcessingSettings__FromFile__RawValid;
14176
14932
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
14177
14933
  type: Number,
14178
14934
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
14935
+ isNaN_Forbidden: true,
14179
14936
  isUndefinedForbidden: false,
14180
14937
  isNullForbidden: true
14181
14938
  },
@@ -14380,7 +15137,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14380
15137
  constructor(stylesProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
14381
15138
  super({
14382
15139
  projectBuildingMasterConfigRepresentative,
14383
- taskTitleForLogging: "Styles processing"
15140
+ taskTitleForLogging: "Styles Processing"
14384
15141
  });
14385
15142
  this.logging = {
14386
15143
  pathsOfFilesWillBeProcessed: stylesProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -14397,13 +15154,13 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14397
15154
  }
14398
15155
  return () => gulp_1.default.
14399
15156
  src(entryPointsSourceFilesAbsolutePaths).
14400
- pipe(this.handleErrorIfItWillOccur()).
15157
+ pipe(super.handleErrorIfItWillOccur()).
14401
15158
  pipe(GulpStreamModifier_1.default.modify({
14402
15159
  onStreamStartedEventCommonHandler: this.replacePlainVinylFileWithStylesEntryPointVinylFile.bind(this)
14403
15160
  })).
14404
15161
  pipe((0, gulp_if_1.default)(this.projectBuildingMasterConfigRepresentative.isStaticPreviewBuildingMode ||
14405
15162
  this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
14406
- pipe(this.logProcessedFilesIfMust()).
15163
+ pipe(this.logInputFilesIfMust()).
14407
15164
  pipe((0, gulp_stylus_1.default)({
14408
15165
  /* [ Theory ] Allows to "@include XXX.css" which is critical for third-party libraries' usage. */
14409
15166
  "include css": true
@@ -14435,6 +15192,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14435
15192
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
14436
15193
  onStreamStartedEventHandler: this.onOutputCSS_FileReady.bind(this)
14437
15194
  })).
15195
+ pipe(super.logOutputFilesIfMust()).
14438
15196
  pipe(gulp_1.default.dest((targetFile) => StylesEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile)));
14439
15197
  }
14440
15198
  /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -14784,7 +15542,7 @@ class PugPreProcessorSpecialist {
14784
15542
  * No simple way to know the capturing group name outside of this file. */
14785
15543
  /^ *(?:include|extends) +((?:\w|-|\.|\/)+) *$/gmu
14786
15544
  ];
14787
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["pug"];
15545
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["pug"]);
14788
15546
  static linterConfigurationFilesNamesWithExtensions = [
14789
15547
  ".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json", "package.json"
14790
15548
  ];
@@ -14871,7 +15629,7 @@ class StylusPreProcessorSpecialist {
14871
15629
  * No simple way to know the capturing group name outside of this file. */
14872
15630
  /^ *@(?:import|require) +['"]((?:\w|-|\.|\/)+?)['"] *;? *$/gmu
14873
15631
  ];
14874
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["styl", "stylus", "css"];
15632
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["styl", "stylus", "css"]);
14875
15633
  }
14876
15634
  exports["default"] = StylusPreProcessorSpecialist;
14877
15635
 
@@ -14899,7 +15657,7 @@ class TypeScriptSpecialist {
14899
15657
  typeScriptFileReadingResult = typescript_1.default.readConfigFile(typeScriptConfigurationFileAbsolutePath, (typeScriptConfigurationFilePath) => typescript_1.default.sys.readFile(typeScriptConfigurationFilePath));
14900
15658
  }
14901
15659
  catch (error) {
14902
- es_extensions_1.Logger.throwErrorAndLog({
15660
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14903
15661
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14904
15662
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14905
15663
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14908,7 +15666,7 @@ class TypeScriptSpecialist {
14908
15666
  });
14909
15667
  }
14910
15668
  if ((0, es_extensions_1.isNotUndefined)(typeScriptFileReadingResult.error)) {
14911
- es_extensions_1.Logger.throwErrorAndLog({
15669
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14912
15670
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14913
15671
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14914
15672
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14918,7 +15676,7 @@ class TypeScriptSpecialist {
14918
15676
  });
14919
15677
  }
14920
15678
  if (!(0, es_extensions_1.isArbitraryObject)(typeScriptFileReadingResult.config) || !("compilerOptions" in typeScriptFileReadingResult.config)) {
14921
- es_extensions_1.Logger.throwErrorAndLog({
15679
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14922
15680
  errorInstance: new es_extensions_1.InvalidConfigError({
14923
15681
  mentionToConfig: `TypeScript (${typeScriptConfigurationFileAbsolutePath})`
14924
15682
  }),
@@ -14941,7 +15699,7 @@ class TypeScriptSpecialist {
14941
15699
  }));
14942
15700
  }
14943
15701
  catch (error) {
14944
- es_extensions_1.Logger.throwErrorAndLog({
15702
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14945
15703
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14946
15704
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14947
15705
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14950,7 +15708,7 @@ class TypeScriptSpecialist {
14950
15708
  });
14951
15709
  }
14952
15710
  if (typeCompilerOptionsConfigurationParsingResult.errors.length > 0) {
14953
- es_extensions_1.Logger.throwErrorAndLog({
15711
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14954
15712
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14955
15713
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14956
15714
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -15146,7 +15904,7 @@ class DotYDA_DirectoryManager {
15146
15904
  }
15147
15905
  static getExpectedToBeInitializedSelfSoleInstance() {
15148
15906
  if ((0, es_extensions_1.isNull)(DotYDA_DirectoryManager.selfSoleInstance)) {
15149
- es_extensions_1.Logger.throwErrorAndLog({
15907
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15150
15908
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
15151
15909
  className: "DotYDA_DirectoryManager", initializingMethodName: "unrollDotYDA_Directory"
15152
15910
  }),
@@ -15185,7 +15943,7 @@ class FileNameRevisionPostfixer {
15185
15943
  return;
15186
15944
  }
15187
15945
  if (!(targetFile.contents instanceof Buffer)) {
15188
- es_extensions_1.Logger.throwErrorAndLog({
15946
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15189
15947
  errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
15190
15948
  "Because usually it is the instance of Buffer, explorations are required."),
15191
15949
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -15225,7 +15983,7 @@ class GulpStreamModifier {
15225
15983
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15226
15984
  transform(chunk, _encoding, callback) {
15227
15985
  if (!vinyl_1.default.isVinyl(chunk)) {
15228
- es_extensions_1.Logger.throwErrorAndLog({
15986
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15229
15987
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15230
15988
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15231
15989
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15285,7 +16043,7 @@ class GulpStreamModifier {
15285
16043
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15286
16044
  transform(chunk, _encoding, callback) {
15287
16045
  if (!vinyl_1.default.isVinyl(chunk)) {
15288
- es_extensions_1.Logger.throwErrorAndLog({
16046
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15289
16047
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15290
16048
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15291
16049
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15525,8 +16283,13 @@ class SourceCodeSelectiveReprocessingHelper {
15525
16283
  comparedPath: absolutePathOfChildFile__forwardSlashSeparators,
15526
16284
  alwaysForwardSlashSeparators: true
15527
16285
  });
15528
- (0, es_extensions_1.addMultipleElementsToSet)(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators, Array.from(this.childrenFilesMetadata.get(pathOfChildFileRelativeToConsumingProjectRootDirectory__forwardSlashSeparators)?.parentEntryPointsAbsolutePaths ??
15529
- new Set()));
16286
+ (0, es_extensions_1.addElementsToSet)({
16287
+ targetSet: absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators,
16288
+ newElements: this.childrenFilesMetadata.
16289
+ get(pathOfChildFileRelativeToConsumingProjectRootDirectory__forwardSlashSeparators)?.
16290
+ parentEntryPointsAbsolutePaths ??
16291
+ new Set()
16292
+ });
15530
16293
  }
15531
16294
  return Array.from(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators);
15532
16295
  }
@@ -15773,14 +16536,17 @@ class SourceCodeSelectiveReprocessingHelper {
15773
16536
  * For example, in the Pug preprocessor case, the file "ProductCard.static.pug" could be referred as
15774
16537
  * `include ProductCard.static`. */
15775
16538
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath) ||
15776
- !this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.
15777
- includes(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
16539
+ !(0, es_extensions_1.mergeSets)(this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles, this.childrenFilesResolutionRules.additionalExplicitFileNameExtensionsWithoutLeadingDotsOfChildrenFiles ?? new Set()).has(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
15778
16540
  for (const possibleIntermediatePathOfChildFileWithResolvedAlias of possibleIntermediatePathsOfChildFileWithResolvedAlias) {
15779
- (0, es_extensions_1.addMultipleElementsToSet)(possibleAbsolutePathsOfTargetChildFile__forwardSlashSeparators, this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.map((childFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
15780
- ...path_1.default.isAbsolute(possibleIntermediatePathOfChildFileWithResolvedAlias) ?
15781
- [] : [parentFileDirectoryAbsolutePath__forwardSlashSeparators],
15782
- `${possibleIntermediatePathOfChildFileWithResolvedAlias}.${childFileNameImplicitExtension}`
15783
- ], { alwaysForwardSlashSeparators: true })));
16541
+ (0, es_extensions_1.addElementsToSet)({
16542
+ targetSet: possibleAbsolutePathsOfTargetChildFile__forwardSlashSeparators,
16543
+ newElements: Array.from(this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles).
16544
+ map((childFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
16545
+ ...path_1.default.isAbsolute(possibleIntermediatePathOfChildFileWithResolvedAlias) ?
16546
+ [] : [parentFileDirectoryAbsolutePath__forwardSlashSeparators],
16547
+ `${possibleIntermediatePathOfChildFileWithResolvedAlias}.${childFileNameImplicitExtension}`
16548
+ ], { alwaysForwardSlashSeparators: true }))
16549
+ });
15784
16550
  }
15785
16551
  }
15786
16552
  else {
@@ -15964,7 +16730,7 @@ class SourceCodeSelectiveReprocessingHelper {
15964
16730
  return childrenFilesMetadata;
15965
16731
  }, {})
15966
16732
  };
15967
- fs_1.default.writeFileSync(this.CACHED_METADATA_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(outputData));
16733
+ fs_1.default.writeFileSync(this.CACHED_METADATA_FILE_ABSOLUTE_PATH, JSON.stringify(outputData, null, 2));
15968
16734
  }
15969
16735
  /* ─── Logging ──────────────────────────────────────────────────────────────────────────────────────────────────── */
15970
16736
  logChildrenFilesAndEntryPointsRelationships() {
@@ -16011,7 +16777,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
16011
16777
  class VinylFileClass extends vinyl_1.default {
16012
16778
  static getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetVinylFile) {
16013
16779
  if (!(targetVinylFile instanceof VinylFileClass)) {
16014
- es_extensions_1.Logger.throwErrorAndLog({
16780
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
16015
16781
  errorInstance: new es_extensions_1.InvalidParameterValueError({
16016
16782
  parameterName: "targetVinylFile",
16017
16783
  parameterNumber: 1,
@@ -16108,115 +16874,6 @@ function extractStringifiedContentFromVinylFile(targetFile) {
16108
16874
  }
16109
16875
 
16110
16876
 
16111
- /***/ }),
16112
-
16113
- /***/ "./UtilsIncubator/NodeJS/isSubdirectory.ts":
16114
- /*!*************************************************!*\
16115
- !*** ./UtilsIncubator/NodeJS/isSubdirectory.ts ***!
16116
- \*************************************************/
16117
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16118
-
16119
-
16120
- var __importDefault = (this && this.__importDefault) || function (mod) {
16121
- return (mod && mod.__esModule) ? mod : { "default": mod };
16122
- };
16123
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16124
- exports["default"] = isSubdirectory;
16125
- const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
16126
- function isSubdirectory({ whichPath, ofWhichPath }) {
16127
- const relativePath = path_1.default.relative(ofWhichPath, whichPath);
16128
- return relativePath.length > 0 && !relativePath.startsWith("..") && !path_1.default.isAbsolute(relativePath);
16129
- }
16130
-
16131
-
16132
- /***/ }),
16133
-
16134
- /***/ "./UtilsIncubator/Stopwatch.ts":
16135
- /*!*************************************!*\
16136
- !*** ./UtilsIncubator/Stopwatch.ts ***!
16137
- \*************************************/
16138
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16139
-
16140
-
16141
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16142
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16143
- class Stopwatch {
16144
- activationUnixTimestamp__milliseconds = 0;
16145
- deactivationUnixTimestamp__milliseconds = 0;
16146
- startOrRestart() {
16147
- if (this.activationUnixTimestamp__milliseconds === 0) {
16148
- this.activationUnixTimestamp__milliseconds = Date.now();
16149
- }
16150
- return this;
16151
- }
16152
- stop() {
16153
- this.deactivationUnixTimestamp__milliseconds = Date.now();
16154
- const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
16155
- return {
16156
- seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
16157
- milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
16158
- };
16159
- }
16160
- reset() {
16161
- this.activationUnixTimestamp__milliseconds = 0;
16162
- this.deactivationUnixTimestamp__milliseconds = 0;
16163
- }
16164
- }
16165
- exports["default"] = Stopwatch;
16166
-
16167
-
16168
- /***/ }),
16169
-
16170
- /***/ "./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts":
16171
- /*!*******************************************************************!*\
16172
- !*** ./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts ***!
16173
- \*******************************************************************/
16174
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16175
-
16176
-
16177
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16178
- exports["default"] = addPenultimateFileNameExtension;
16179
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16180
- function addPenultimateFileNameExtension({ targetPath, targetFileNamePenultimateExtensionWithOrWithoutLeadingDot, mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist }) {
16181
- const targetFileNamePenultimateExtensionWithoutLeadingDot = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
16182
- targetString: targetFileNamePenultimateExtensionWithOrWithoutLeadingDot,
16183
- targetCharacter: ".",
16184
- fromFirstPosition: true
16185
- });
16186
- if (!targetPath.includes(".")) {
16187
- const { updatedString: targetPathWihtoutFragment, extractedMatching: targetPathFragmentWithLeadingHash } = (0, es_extensions_1.extractMatchingsWithRegularExpression)(targetPath, /#.+$/u, { mustExpectOneOrZeroMatchings: true });
16188
- return mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist ?
16189
- `${targetPathWihtoutFragment}.${targetFileNamePenultimateExtensionWithoutLeadingDot}` +
16190
- targetPathFragmentWithLeadingHash :
16191
- targetPath;
16192
- }
16193
- const pathDotSeparatedSegments = (0, es_extensions_1.splitString)(targetPath, ".");
16194
- return (0, es_extensions_1.addElementsToArray)({
16195
- targetArray: pathDotSeparatedSegments,
16196
- newElements: [targetFileNamePenultimateExtensionWithoutLeadingDot],
16197
- mutably: true,
16198
- toPosition__numerationFrom1: pathDotSeparatedSegments.length
16199
- }).join(".");
16200
- }
16201
-
16202
-
16203
- /***/ }),
16204
-
16205
- /***/ "./UtilsIncubator/Strings/replaceLinesSeparators.ts":
16206
- /*!**********************************************************!*\
16207
- !*** ./UtilsIncubator/Strings/replaceLinesSeparators.ts ***!
16208
- \**********************************************************/
16209
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16210
-
16211
-
16212
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16213
- exports["default"] = replaceLinesSeparators;
16214
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16215
- function replaceLinesSeparators(targetString, lineSeparators) {
16216
- return (0, es_extensions_1.explodeStringToLines)({ targetString, mustIgnoreCarriageReturn: false }).join(lineSeparators);
16217
- }
16218
-
16219
-
16220
16877
  /***/ }),
16221
16878
 
16222
16879
  /***/ "@yamato-daiwa/es-extensions":
@@ -16667,6 +17324,16 @@ module.exports = require("webpack-node-externals");
16667
17324
 
16668
17325
  module.exports = require("webpack-stream");
16669
17326
 
17327
+ /***/ }),
17328
+
17329
+ /***/ "webpackbar":
17330
+ /*!*****************************!*\
17331
+ !*** external "webpackbar" ***!
17332
+ \*****************************/
17333
+ /***/ ((module) => {
17334
+
17335
+ module.exports = require("webpackbar");
17336
+
16670
17337
  /***/ })
16671
17338
 
16672
17339
  /******/ });