@yamato-daiwa/automation 0.8.0-alpha.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 +1056 -466
  2. package/package.json +4 -3
package/EntryPoint.js CHANGED
@@ -34,7 +34,7 @@ function revisionHash(data) {
34
34
  \***********************/
35
35
  /***/ ((module) => {
36
36
 
37
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.8.0-alpha.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=20.0.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@stylistic/eslint-plugin":"5.2.3","@typescript-eslint/eslint-plugin":"8.39.0","@typescript-eslint/parser":"8.39.0","@vue/compiler-sfc":"3.5.18","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.0-rc.1","@yamato-daiwa/es-extensions-nodejs":"1.8.0-rc.1","@yamato-daiwa/style_guides":"0.9.0","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.0","dotenv":"17.2.1","eslint":"9.33.0","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.21.3","eslint-plugin-react":"7.37.5","eslint-plugin-vue":"9.33.0","eslint-plugin-vue-pug":"0.6.2","gulp":"4.0.2","gulp-data":"1.3.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"10.0.0","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","htmlnano":"2.1.2","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.5","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.0","probe-image-size":"7.2.3","pug-lint":"2.7.0","pug3-ast-loader":"0.0.0","puppeteer":"24.10.0","require-from-string":"2.0.2","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"4.0.0","stylus":"0.63.0","stylus-loader":"8.1.1","ts-loader":"9.5.2","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.0.5","webpack":"5.101.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.1"},"devDependencies":{"@types/browser-sync":"2.29.0","@types/cssnano":"5.0.0","@types/gulp":"4.0.17","@types/gulp-if":"3.0.5","@types/gulp-imagemin":"7.0.3","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.37","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.38","@types/gulp-stylus":"2.7.8","@types/js-beautify":"1.14.3","@types/node":"22.15.30","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.5","@types/pug":"2.0.10","@types/require-from-string":"1.2.3","@types/vnu-jar":"17.11.2","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.9.2","webpack-cli":"6.0.1"},"scripts":{"Incremental Development Building":"webpack --mode development","Production Building":"webpack --mode production","Linting":"eslint Source"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"homepage":"https://automation.yamato-daiwa.com/","funding":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation?sponsor=1","bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
37
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.8.0-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,
@@ -6612,7 +7033,12 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6612
7033
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6613
7034
  var ECMA_ScriptLogicProcessingRestrictions;
6614
7035
  (function (ECMA_ScriptLogicProcessingRestrictions) {
6615
- ECMA_ScriptLogicProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["js", "mjs", "ts", "tsx", "jsx"];
7036
+ ECMA_ScriptLogicProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
7037
+ "js", "mjs", "ts", "mts"
7038
+ ]);
7039
+ ECMA_ScriptLogicProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([
7040
+ "jsx", "tsx", "vue"
7041
+ ]);
6616
7042
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["js"];
6617
7043
  let SupportedECMA_ScriptRuntimesTypes;
6618
7044
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -6644,6 +7070,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6644
7070
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
6645
7071
  const PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX */ "./ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX.ts"));
6646
7072
  const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/SourceCodeProcessingConfigRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/SourceCodeProcessingConfigRepresentative.ts"));
7073
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
7074
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6647
7075
  class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
6648
7076
  /* [ Theory ] Below two fields could be even or not. */
6649
7077
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -6653,6 +7081,7 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6653
7081
  TASK_NAME_FOR_LOGGING = "ECMAScript Logic Processing";
6654
7082
  entryPointsGroupsNormalizedSettingsMappedByReferences;
6655
7083
  relevantEntryPointsGroupsSettings;
7084
+ electronSettings;
6656
7085
  loggingSettings;
6657
7086
  localDevelopmentServerOrchestrationSettings;
6658
7087
  sourceCodeProcessingCommonSettings;
@@ -6660,19 +7089,18 @@ class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcess
6660
7089
  super(projectBuildingMasterConfigRepresentative);
6661
7090
  this.sourceCodeProcessingCommonSettings = normalizedECMA_ScriptLogicProcessingSettings.common;
6662
7091
  this.relevantEntryPointsGroupsSettings = normalizedECMA_ScriptLogicProcessingSettings.relevantEntryPointsGroups;
7092
+ this.electronSettings = normalizedECMA_ScriptLogicProcessingSettings.electron;
6663
7093
  this.loggingSettings = normalizedECMA_ScriptLogicProcessingSettings.logging;
6664
7094
  this.localDevelopmentServerOrchestrationSettings = normalizedECMA_ScriptLogicProcessingSettings.
6665
7095
  localDevelopmentServerOrchestration;
6666
7096
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6667
- supportedSourceFileNameExtensionsWithoutLeadingDots;
6668
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedECMA_ScriptLogicProcessingSettings.common.
6669
- supportedSourceFileNameExtensionsWithoutLeadingDots;
7097
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
7098
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedECMA_ScriptLogicProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
6670
7099
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
6671
7100
  `${PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1.default}${entryPointsGroupSettings.ID}`,
6672
7101
  entryPointsGroupSettings
6673
7102
  ]));
6674
7103
  }
6675
- /* ━━━ Logging ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6676
7104
  get mustLogSourceFilesWatcherEvents() {
6677
7105
  return this.loggingSettings.filesWatcherEvents;
6678
7106
  }
@@ -6763,8 +7191,9 @@ const RevisioningSettings__FromFile__RawValid_1 = __importDefault(__webpack_requ
6763
7191
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6764
7192
  var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6765
7193
  (function (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid) {
6766
- /* ━━━ Localization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7194
+ /* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
6767
7195
  ECMA_ScriptLogicProcessingSettings__FromFile__RawValid.propertiesSpecification = {
7196
+ /* ┅┅┅ Linting ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6768
7197
  $linting: {
6769
7198
  newName: "linting",
6770
7199
  type: Object,
@@ -6772,6 +7201,7 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6772
7201
  mustTransformNullToUndefined: true,
6773
7202
  properties: LintingSettings__FromFile__RawValid_1.default.propertiesSpecification
6774
7203
  },
7204
+ /* ╍╍╍ Entry Points Group ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
6775
7205
  ...SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid_1.default.generatePropertiesSpecification({
6776
7206
  entryPointsGroupBuildingModeIndependentSpecificSettingsLocalizedPropertiesSpecification: {
6777
7207
  $targetRuntime: {
@@ -6809,14 +7239,16 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6809
7239
  type: Number,
6810
7240
  isUndefinedForbidden: true,
6811
7241
  isNullForbidden: true,
6812
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7242
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7243
+ isNaN_Forbidden: true
6813
7244
  },
6814
7245
  $minor: {
6815
7246
  newName: "minor",
6816
7247
  type: Number,
6817
7248
  isUndefinedForbidden: false,
6818
7249
  isNullForbidden: true,
6819
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
7250
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
7251
+ isNaN_Forbidden: true
6820
7252
  }
6821
7253
  }
6822
7254
  }
@@ -6926,7 +7358,91 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6926
7358
  minimalCharactersCount: 1
6927
7359
  }
6928
7360
  }
6929
- }),
7361
+ }),
7362
+ /* ┅┅┅ Local Development Server Orchestration ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7363
+ $localDevelopmentServerOrchestration: {
7364
+ newName: "localDevelopmentServerOrchestration",
7365
+ type: Object,
7366
+ isUndefinedForbidden: false,
7367
+ mustTransformNullToUndefined: true,
7368
+ properties: {
7369
+ $targetSingularEntryPointsGroupID: {
7370
+ newName: "targetSingularEntryPointsGroupID",
7371
+ type: String,
7372
+ isUndefinedForbidden: true,
7373
+ isNullForbidden: true,
7374
+ minimalCharactersCount: 1
7375
+ },
7376
+ $arguments: {
7377
+ newName: "arguments",
7378
+ type: Array,
7379
+ isUndefinedForbidden: false,
7380
+ isNullForbidden: true,
7381
+ areUndefinedElementsForbidden: true,
7382
+ areNullElementsForbidden: true,
7383
+ element: {
7384
+ type: String,
7385
+ minimalCharactersCount: 1
7386
+ }
7387
+ },
7388
+ $environmentVariables: {
7389
+ newName: "environmentVariables",
7390
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
7391
+ isUndefinedForbidden: false,
7392
+ isNullForbidden: true,
7393
+ areUndefinedTypeValuesForbidden: true,
7394
+ areNullTypeValuesForbidden: true,
7395
+ value: {
7396
+ type: String,
7397
+ minimalCharactersCount: 1
7398
+ }
7399
+ },
7400
+ $environmentVariablesFileRelativePath: {
7401
+ newName: "environmentVariablesFileRelativePath",
7402
+ type: String,
7403
+ isUndefinedForbidden: false,
7404
+ isNullForbidden: true,
7405
+ minimalCharactersCount: 1
7406
+ }
7407
+ }
7408
+ },
7409
+ /* ┅┅┅ Electron ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7410
+ $electron: {
7411
+ newName: "electron",
7412
+ type: Object,
7413
+ isUndefinedForbidden: false,
7414
+ mustTransformNullToUndefined: true,
7415
+ properties: {
7416
+ $hotReloadingForLocalDevelopmentMode: {
7417
+ newName: "hotReloadingForLocalDevelopmentMode",
7418
+ type: Object,
7419
+ isUndefinedForbidden: true,
7420
+ mustTransformNullToUndefined: true,
7421
+ properties: {
7422
+ $rootDirectoryRelativePath: {
7423
+ newName: "rootDirectoryRelativePath",
7424
+ type: String,
7425
+ isUndefinedForbidden: true,
7426
+ isNullForbidden: true,
7427
+ minimalCharactersCount: 1
7428
+ },
7429
+ $ignoredFilesAndDirectoriesRelativePaths: {
7430
+ newName: "ignoredFilesAndDirectoriesRelativePaths",
7431
+ type: Array,
7432
+ isUndefinedForbidden: false,
7433
+ mustTransformNullToUndefined: true,
7434
+ areUndefinedElementsForbidden: true,
7435
+ areNullElementsForbidden: true,
7436
+ element: {
7437
+ type: String,
7438
+ minimalCharactersCount: 1
7439
+ }
7440
+ }
7441
+ }
7442
+ }
7443
+ }
7444
+ },
7445
+ /* ┅┅┅ Logging ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
6930
7446
  $logging: {
6931
7447
  newName: "logging",
6932
7448
  type: Object,
@@ -6978,52 +7494,6 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6978
7494
  }
6979
7495
  }
6980
7496
  }
6981
- },
6982
- $localDevelopmentServerOrchestration: {
6983
- newName: "localDevelopmentServerOrchestration",
6984
- type: Object,
6985
- isUndefinedForbidden: false,
6986
- mustTransformNullToUndefined: true,
6987
- properties: {
6988
- $targetSingularEntryPointsGroupID: {
6989
- newName: "targetSingularEntryPointsGroupID",
6990
- type: String,
6991
- isUndefinedForbidden: true,
6992
- isNullForbidden: true,
6993
- minimalCharactersCount: 1
6994
- },
6995
- $arguments: {
6996
- newName: "arguments",
6997
- type: Array,
6998
- isUndefinedForbidden: false,
6999
- isNullForbidden: true,
7000
- areUndefinedElementsForbidden: true,
7001
- areNullElementsForbidden: true,
7002
- element: {
7003
- type: String,
7004
- minimalCharactersCount: 1
7005
- }
7006
- },
7007
- $environmentVariables: {
7008
- newName: "environmentVariables",
7009
- type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
7010
- isUndefinedForbidden: false,
7011
- isNullForbidden: true,
7012
- areUndefinedTypeValuesForbidden: true,
7013
- areNullTypeValuesForbidden: true,
7014
- value: {
7015
- type: String,
7016
- minimalCharactersCount: 1
7017
- }
7018
- },
7019
- $environmentVariablesFileRelativePath: {
7020
- newName: "environmentVariablesFileRelativePath",
7021
- type: String,
7022
- isUndefinedForbidden: false,
7023
- isNullForbidden: true,
7024
- minimalCharactersCount: 1
7025
- }
7026
- }
7027
7497
  }
7028
7498
  };
7029
7499
  })(ECMA_ScriptLogicProcessingSettings__FromFile__RawValid || (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid = {}));
@@ -7137,7 +7607,15 @@ class ECMA_ScriptLogicProcessor {
7137
7607
  });
7138
7608
  }
7139
7609
  this.webpackConfigurationsForExistingEntryPoints = webpackConfigurationsForExistingEntryPoints;
7140
- this.webpackMultiCompiler = (0, webpack_1.default)(this.webpackConfigurationsForExistingEntryPoints);
7610
+ const webpackMultiCompiler = (0, webpack_1.default)(this.webpackConfigurationsForExistingEntryPoints);
7611
+ if ((0, es_extensions_1.isNull)(webpackMultiCompiler)) {
7612
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7613
+ errorInstance: new es_extensions_1.UnexpectedEventError("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;
7141
7619
  this.entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap =
7142
7620
  entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap;
7143
7621
  if (this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
@@ -7280,7 +7758,10 @@ class ECMA_ScriptLogicProcessor {
7280
7758
  unifiedDirectoriesAliasesAndTheirAbsolutePatsMap.set(directoryAlias, new Set(correspondingDirectoriesAbsolutePaths));
7281
7759
  }
7282
7760
  else {
7283
- (0, es_extensions_1.addMultipleElementsToSet)(alreadyRegisteredCorrespondingDirectoriesAbsolutePaths, correspondingDirectoriesAbsolutePaths);
7761
+ (0, es_extensions_1.addElementsToSet)({
7762
+ targetSet: alreadyRegisteredCorrespondingDirectoriesAbsolutePaths,
7763
+ newElements: correspondingDirectoriesAbsolutePaths
7764
+ });
7284
7765
  }
7285
7766
  }
7286
7767
  }
@@ -7334,6 +7815,97 @@ class ECMA_ScriptSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
7334
7815
  exports["default"] = ECMA_ScriptSourceFilesWatcher;
7335
7816
 
7336
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
+
7337
7909
  /***/ }),
7338
7910
 
7339
7911
  /***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/Linting/ECMA_ScriptSourceCodeLinter.ts":
@@ -7399,7 +7971,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7399
7971
  constructor({ ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative }) {
7400
7972
  super({
7401
7973
  projectBuildingMasterConfigRepresentative,
7402
- taskTitleForLogging: "ECMAScript logic processing / ECMAScript logic source code linting",
7974
+ taskTitleForLogging: "ECMAScript Logic Processing / ECMAScript Logic Source Code Linting",
7403
7975
  sourceFilesCachedCheckingResults: {
7404
7976
  fileNameWithExtension: "ECMA_ScriptLintingCache.json",
7405
7977
  contentSpecification: {
@@ -7464,24 +8036,28 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7464
8036
  startingLineNumber__numerationFrom1: {
7465
8037
  type: Number,
7466
8038
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8039
+ isNaN_Forbidden: true,
7467
8040
  isUndefinedForbidden: false,
7468
8041
  isNullForbidden: true
7469
8042
  },
7470
8043
  endingLineNumber__numerationFrom1: {
7471
8044
  type: Number,
7472
8045
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8046
+ isNaN_Forbidden: true,
7473
8047
  isUndefinedForbidden: false,
7474
8048
  isNullForbidden: true
7475
8049
  },
7476
8050
  startingColumnNumber__numerationFrom1: {
7477
8051
  type: Number,
7478
8052
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8053
+ isNaN_Forbidden: true,
7479
8054
  isUndefinedForbidden: false,
7480
8055
  isNullForbidden: true
7481
8056
  },
7482
8057
  endingColumnNumber__numerationFrom1: {
7483
8058
  type: Number,
7484
8059
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
8060
+ isNaN_Forbidden: true,
7485
8061
  isUndefinedForbidden: false,
7486
8062
  isNullForbidden: true
7487
8063
  }
@@ -7543,7 +8119,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7543
8119
  map((issue) => this.normalizeLintingIssues(issue, sourceCode));
7544
8120
  }
7545
8121
  catch (error) {
7546
- es_extensions_1.Logger.throwErrorAndLog({
8122
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7547
8123
  errorType: "ECMA_ScriptSourceCodeLinter",
7548
8124
  title: ECMA_ScriptSourceCodeLinter.localization.lintingFailedErrorLog.title,
7549
8125
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -7590,6 +8166,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7590
8166
  (0, es_extensions_1.isNeitherUndefinedNorNull)(rawIssue.endColumn)) {
7591
8167
  /* [ Maintainability ] Keep these variables for easier debugging. */
7592
8168
  codeFragmentBeforeHighlighting = (0, es_extensions_1.cropArray)({
8169
+ fromStart: true,
7593
8170
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7594
8171
  targetArray: sourceCodeExplodedToLines,
7595
8172
  index: rawIssue.line - 1,
@@ -7606,11 +8183,12 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7606
8183
  targetNumber: rawIssue.line - this.DISPLAYING_LINES_COUNT_BEFORE_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7607
8184
  minimalValue: 1
7608
8185
  }),
7609
- endingElementNumber__numerationFrom1: rawIssue.line,
8186
+ endingElementNumber__numerationFrom1__including: rawIssue.line,
7610
8187
  mutably: false,
7611
8188
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7612
8189
  }).join("\n");
7613
8190
  highlightedCodeFragment = (0, es_extensions_1.cropArray)({
8191
+ fromStart: true,
7614
8192
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7615
8193
  targetArray: sourceCodeExplodedToLines,
7616
8194
  replacements: [
@@ -7653,12 +8231,13 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7653
8231
  ]
7654
8232
  }),
7655
8233
  startingElementNumber__numerationFrom1: rawIssue.line,
7656
- endingElementNumber__numerationFrom1: rawIssue.endLine,
8234
+ endingElementNumber__numerationFrom1__including: rawIssue.endLine,
7657
8235
  mutably: false,
7658
8236
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: true
7659
8237
  }).join("\n");
7660
8238
  const lastLineOfHighlightedCodeFragment = sourceCodeExplodedToLines[rawIssue.endLine - 1];
7661
8239
  codeFragmentAfterHighlighting = (0, es_extensions_1.cropArray)({
8240
+ fromStart: true,
7662
8241
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7663
8242
  targetArray: sourceCodeExplodedToLines,
7664
8243
  index: rawIssue.endLine - 1,
@@ -7672,7 +8251,7 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7672
8251
  })
7673
8252
  }),
7674
8253
  startingElementNumber__numerationFrom1: rawIssue.endLine,
7675
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMaximalValue)({
8254
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMaximalValue)({
7676
8255
  targetNumber: rawIssue.endLine + this.DISPLAYING_LINES_COUNT_AFTER_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT,
7677
8256
  maximalValue: sourceCodeExplodedToLines.length
7678
8257
  }),
@@ -7798,7 +8377,7 @@ class TypeScriptTypesChecker {
7798
8377
  vueTSC_ExecutableFileAbsolutePath;
7799
8378
  projectBuildingMasterConfigRepresentative;
7800
8379
  ecmaScriptLogicProcessingSettingsRepresentative;
7801
- waitingForNextWithRelatedFiles = null;
8380
+ waitingForNextEventWithRelatedFiles = null;
7802
8381
  static provideCheckingIfMust(projectBuildingMasterConfigRepresentative) {
7803
8382
  const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
7804
8383
  if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
@@ -7820,13 +8399,13 @@ class TypeScriptTypesChecker {
7820
8399
  }).
7821
8400
  addOnAnyEventRelatedWithActualFilesHandler({
7822
8401
  handlerID: "ON_ANY_EVENT_RELATED_WITH_ACTUAL_FILES_HANDLER--BY_TYPE_SCRIPT_TYPES_CHECKER",
7823
- handler: this.onAnyEventRelatedWithActualFiles.bind(this)
8402
+ handler: this.onAnyEventRelatedWithRelatedFiles.bind(this)
7824
8403
  });
7825
8404
  }
7826
8405
  const vueTSC_ExecutableFileAbsolutePath = TypeScriptTypesChecker.
7827
8406
  getAbsolutePathOfExistingVueTSC_ExecutableFile__alwaysForwardSlashesPathSeparators(projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath);
7828
8407
  if ((0, es_extensions_1.isNull)(vueTSC_ExecutableFileAbsolutePath)) {
7829
- es_extensions_1.Logger.throwErrorAndLog({
8408
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7830
8409
  errorInstance: new es_extensions_1.UnexpectedEventError("File to \"vue-tsc\" executable not found"),
7831
8410
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7832
8411
  occurrenceLocation: "TypeScriptTypesChecker.constructor(compoundParameter)"
@@ -7834,9 +8413,9 @@ class TypeScriptTypesChecker {
7834
8413
  }
7835
8414
  this.vueTSC_ExecutableFileAbsolutePath = vueTSC_ExecutableFileAbsolutePath;
7836
8415
  }
7837
- onAnyEventRelatedWithActualFiles() {
7838
- clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextWithRelatedFiles));
7839
- this.waitingForNextWithRelatedFiles = setTimeout(() => {
8416
+ onAnyEventRelatedWithRelatedFiles() {
8417
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextEventWithRelatedFiles));
8418
+ this.waitingForNextEventWithRelatedFiles = setTimeout(() => {
7840
8419
  this.checkTypes().catch(es_extensions_1.Logger.logPromiseError);
7841
8420
  }, (0, es_extensions_1.secondsToMilliseconds)(TypeScriptTypesChecker.WAITING_FOR_NEXT_EVENT_WITH_RELATED_FILES__SECONDS));
7842
8421
  }
@@ -7844,6 +8423,21 @@ class TypeScriptTypesChecker {
7844
8423
  return new Promise((resolve, reject) => {
7845
8424
  child_process_1.default.exec(`node ${this.vueTSC_ExecutableFileAbsolutePath} --noEmit`, { encoding: "utf-8" }, (error, stdout) => {
7846
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
+ }
7847
8441
  es_extensions_1.Logger.logErrorLikeMessage({
7848
8442
  title: "TypeScript Type Checking, Error(s) Detected",
7849
8443
  description: "The source code is including the TypeScript error(s).\n" +
@@ -7876,7 +8470,8 @@ class TypeScriptTypesChecker {
7876
8470
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7877
8471
  consumingProjectRootDirectoryAbsolutePath,
7878
8472
  "node_modules",
7879
- ".bin",
8473
+ "vue-tsc",
8474
+ "bin",
7880
8475
  "vue-tsc.js"
7881
8476
  ], { alwaysForwardSlashSeparators: true }),
7882
8477
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
@@ -7949,7 +8544,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7949
8544
  ], { alwaysForwardSlashSeparators: true });
7950
8545
  const targetOutputFileSearchResults = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously([targetOutputFileGlobSelector]);
7951
8546
  if (targetOutputFileSearchResults.length === 0) {
7952
- es_extensions_1.Logger.throwErrorAndLog({
8547
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7953
8548
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが見つけられなかった。`),
7954
8549
  occurrenceLocation: "ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator" +
7955
8550
  ".getEntryPointsOutputFileActualAbsolutePath(...parameters)",
@@ -7957,7 +8552,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
7957
8552
  });
7958
8553
  }
7959
8554
  else if (targetOutputFileSearchResults.length > 1) {
7960
- es_extensions_1.Logger.throwErrorAndLog({
8555
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
7961
8556
  errorInstance: new es_extensions_1.AlgorithmMismatchError(`入点源ファイル:${sourceFileAbsolutePath}に該当している出力ファイルが複数件が発見された:\n` +
7962
8557
  `${(0, es_extensions_1.stringifyAndFormatArbitraryValue)(targetOutputFileSearchResults)}\n` +
7963
8558
  "前の構成は自動的に削除されなかった場合、再構成する前に手動で削除して下さい。"),
@@ -8016,6 +8611,7 @@ const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartyS
8016
8611
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
8017
8612
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
8018
8613
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
8614
+ const webpackbar_1 = __importDefault(__webpack_require__(/*! webpackbar */ "webpackbar"));
8019
8615
  const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
8020
8616
  const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
8021
8617
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
@@ -8072,7 +8668,7 @@ class WebpackConfigGenerator {
8072
8668
  `node${entryPointsGroupSettings.targetRuntime.minimalVersion.major}`,
8073
8669
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.targetRuntime.minimalVersion.minor) ?
8074
8670
  [`.${entryPointsGroupSettings.targetRuntime.minimalVersion.minor}`] : []
8075
- ];
8671
+ ].join("");
8076
8672
  }
8077
8673
  case SupportedECMA_ScriptRuntimesTypes.electronMainProcess: {
8078
8674
  return [
@@ -8127,7 +8723,7 @@ class WebpackConfigGenerator {
8127
8723
  case SupportedECMA_ScriptRuntimesTypes.pug:
8128
8724
  return "umd";
8129
8725
  case SupportedECMA_ScriptRuntimesTypes.webWorker: {
8130
- es_extensions_1.Logger.throwErrorAndLog({
8726
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8131
8727
  errorInstance: new es_extensions_1.UnexpectedEventError("The web worker could not be the library, while the computing of 'output.library.type' has been " +
8132
8728
  "requested"),
8133
8729
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8157,7 +8753,18 @@ class WebpackConfigGenerator {
8157
8753
  /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
8158
8754
  * faster alternatives including "eval" could cause the errors related with security.
8159
8755
  * See https://stackoverflow.com/a/49100966. */
8160
- 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
+ })(),
8161
8768
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
8162
8769
  node: {
8163
8770
  __dirname: true,
@@ -8207,7 +8814,7 @@ class WebpackConfigGenerator {
8207
8814
  options: { mode: "compile" }
8208
8815
  },
8209
8816
  {
8210
- test: /\.ydfr\.pug$/u,
8817
+ test: /\.ydur\.pug$/u,
8211
8818
  loader: "pug3-ast-loader"
8212
8819
  },
8213
8820
  {
@@ -8263,8 +8870,8 @@ class WebpackConfigGenerator {
8263
8870
  ]
8264
8871
  },
8265
8872
  resolve: {
8266
- extensions: ECMA_ScriptLogicProcessingConfigRepresentative.
8267
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
8873
+ extensions: Array.
8874
+ from(ECMA_ScriptLogicProcessingConfigRepresentative.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots).
8268
8875
  map((fileNameExtensionWithoutDot) => `.${fileNameExtensionWithoutDot}`),
8269
8876
  alias: {
8270
8877
  ...WebpackSpecialist_1.default.convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
@@ -8303,7 +8910,12 @@ class WebpackConfigGenerator {
8303
8910
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
8304
8911
  } : null
8305
8912
  }),
8306
- 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
+ })
8307
8919
  ],
8308
8920
  optimization: {
8309
8921
  minimize: !masterConfigRepresentative.mustProvideIncrementalBuilding,
@@ -8362,7 +8974,7 @@ class WebpackConfigGenerator {
8362
8974
  for (const entryPointSourceFileAbsolutePath of entryPointsSourceFilesAbsolutePaths) {
8363
8975
  const filePathWithoutFilenameExtension = (0, es_extensions_1.removeAllFileNameExtensions)(entryPointSourceFileAbsolutePath);
8364
8976
  if (entryPointsSourceFiles.has(filePathWithoutFilenameExtension)) {
8365
- es_extensions_1.Logger.throwErrorAndLog({
8977
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
8366
8978
  errorType: "IncompatibleFilesError",
8367
8979
  description: "Incompatible files",
8368
8980
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -8379,6 +8991,49 @@ class WebpackConfigGenerator {
8379
8991
  exports["default"] = WebpackConfigGenerator;
8380
8992
 
8381
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
+
8382
9037
  /***/ }),
8383
9038
 
8384
9039
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupEntryPointVinylFile.ts":
@@ -8484,10 +9139,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8484
9139
  return (mod && mod.__esModule) ? mod : { "default": mod };
8485
9140
  };
8486
9141
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8487
- 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"));
8488
9143
  var MarkupProcessingRestrictions;
8489
9144
  (function (MarkupProcessingRestrictions) {
8490
- MarkupProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["pug"];
9145
+ MarkupProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set(["pug"]);
9146
+ MarkupProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
8491
9147
  MarkupProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["html"];
8492
9148
  let OutputFormats;
8493
9149
  (function (OutputFormats) {
@@ -8574,9 +9230,8 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
8574
9230
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
8575
9231
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
8576
9232
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8577
- supportedSourceFileNameExtensionsWithoutLeadingDots;
8578
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
8579
- supportedSourceFileNameExtensionsWithoutLeadingDots;
9233
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
9234
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedMarkupProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
8580
9235
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedMarkupProcessingSettings.common.
8581
9236
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
8582
9237
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -9035,6 +9690,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
9035
9690
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
9036
9691
  type: Number,
9037
9692
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
9693
+ isNaN_Forbidden: true,
9038
9694
  isUndefinedForbidden: false,
9039
9695
  isNullForbidden: true
9040
9696
  },
@@ -9635,7 +10291,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9635
10291
  constructor(markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
9636
10292
  super({
9637
10293
  projectBuildingMasterConfigRepresentative,
9638
- taskTitleForLogging: "Markup processing"
10294
+ taskTitleForLogging: "Markup Processing"
9639
10295
  });
9640
10296
  this.logging = {
9641
10297
  pathsOfFilesWillBeProcessed: markupProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -9663,7 +10319,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9663
10319
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9664
10320
  onStreamStartedEventHandler: MarkupProcessor.managePageVariations
9665
10321
  })).
9666
- pipe(this.logProcessedFilesIfMust()).
10322
+ pipe(super.logInputFilesIfMust()).
9667
10323
  pipe((0, gulp_data_1.default)((vinylFile) => ({
9668
10324
  ...vinylFile.pageStateDependentVariationData ?? null,
9669
10325
  ...vinylFile.localizationData ?? null,
@@ -9694,6 +10350,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
9694
10350
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
9695
10351
  onStreamStartedEventHandler: this.onOutputHTML_FileReady.bind(this)
9696
10352
  })).
10353
+ pipe(super.logOutputFilesIfMust()).
9697
10354
  pipe(gulp_1.default.dest((targetFile) => MarkupEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile))).
9698
10355
  on("end", this.onStreamEnded.bind(this));
9699
10356
  }
@@ -9937,7 +10594,7 @@ const puppeteer_1 = __importDefault(__webpack_require__(/*! puppeteer */ "puppet
9937
10594
  /* ─── Generals utils ────────────────────────────────────────────────────────────────────────────────────────────── */
9938
10595
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
9939
10596
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9940
- const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
10597
+ const Stopwatch_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions/Stopwatch */ "./Incubators/@yamato-daiwa/es-extensions/Stopwatch.ts"));
9941
10598
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
9942
10599
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
9943
10600
  const node_html_parser_1 = __webpack_require__(/*! node-html-parser */ "node-html-parser");
@@ -10162,7 +10819,7 @@ class AccessibilityInspector {
10162
10819
  title: AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog.title,
10163
10820
  description: `\n${accessibilityIssuesLogForEachFile.join("\n")}`
10164
10821
  });
10165
- es_extensions_1.Logger.throwErrorAndLog({
10822
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10166
10823
  errorType: "AccessibilityIssuesFoundError",
10167
10824
  ...AccessibilityInspector.localization.issuesFoundInOneOrMultipleFilesErrorLog,
10168
10825
  occurrenceLocation: "AccessibilityInspector.reportCachedValidationsResultsAndFinalize"
@@ -10396,9 +11053,10 @@ class AccessibilityInspector {
10396
11053
  const numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1 = numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 + highlightedCodeFragment.length;
10397
11054
  /* [ Maintainability ] Keep these variables for easy debugging. */
10398
11055
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11056
+ fromStart: true,
10399
11057
  targetArray: rawHTML_CodeSplitToLines,
10400
11058
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10401
- endingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
11059
+ endingElementNumber__numerationFrom1__including: lineNumberOfActualCodeFragment__numerationFrom1 - 1,
10402
11060
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10403
11061
  mutably: false
10404
11062
  }).join("\n")}\n` +
@@ -10415,9 +11073,10 @@ class AccessibilityInspector {
10415
11073
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
10416
11074
  })}\n` +
10417
11075
  (0, es_extensions_1.cropArray)({
11076
+ fromStart: true,
10418
11077
  targetArray: rawHTML_CodeSplitToLines,
10419
11078
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
10420
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11079
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
10421
11080
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
10422
11081
  mutably: false
10423
11082
  }).join("\n");
@@ -10545,7 +11204,7 @@ class AccessibilityInspector {
10545
11204
  accumulatingValue[filePathRelativeToConsumingProjectRootDirectory] = cachedInspectionRawResultsForSpecificFile;
10546
11205
  return accumulatingValue;
10547
11206
  }, {});
10548
- 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));
10549
11208
  }
10550
11209
  /* ─── Routines ─────────────────────────────────────────────────────────────────────────────────────────────────── */
10551
11210
  static async initializeAsynchronousRequirements({ cachedInspectionsResultsDirectoryAbsolutePath, cachedInspectionResultsFileAbsolutePath }) {
@@ -10585,7 +11244,7 @@ class AccessibilityInspector {
10585
11244
  }
10586
11245
  static async getInstanceOnceReady() {
10587
11246
  if (!AccessibilityInspector.hasInitializationStarted) {
10588
- es_extensions_1.Logger.throwErrorAndLog({
11247
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10589
11248
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
10590
11249
  className: "AccessibilityInspector",
10591
11250
  initializingMethodName: "beginInitialization"
@@ -10595,7 +11254,7 @@ class AccessibilityInspector {
10595
11254
  });
10596
11255
  }
10597
11256
  if (AccessibilityInspector.hasInitializationFailed) {
10598
- es_extensions_1.Logger.throwErrorAndLog({
11257
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
10599
11258
  errorType: "InitializationFailedError",
10600
11259
  description: "The initialization has failed thus the accessibility checking could not be executed.",
10601
11260
  title: "Initialization failed",
@@ -10716,7 +11375,7 @@ const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */
10716
11375
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
10717
11376
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
10718
11377
  const nanoid_1 = __webpack_require__(/*! nanoid */ "nanoid");
10719
- 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"));
10720
11379
  class HTML_Validator {
10721
11380
  /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
10722
11381
  static selfSingleInstance = null;
@@ -10762,19 +11421,22 @@ class HTML_Validator {
10762
11421
  type: Number,
10763
11422
  isUndefinedForbidden: false,
10764
11423
  isNullForbidden: true,
10765
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11424
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11425
+ isNaN_Forbidden: true
10766
11426
  },
10767
11427
  lastColumn: {
10768
11428
  type: Number,
10769
11429
  isUndefinedForbidden: false,
10770
11430
  isNullForbidden: true,
10771
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11431
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11432
+ isNaN_Forbidden: true
10772
11433
  },
10773
11434
  firstColumn: {
10774
11435
  type: Number,
10775
11436
  isUndefinedForbidden: false,
10776
11437
  isNullForbidden: true,
10777
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11438
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11439
+ isNaN_Forbidden: true
10778
11440
  },
10779
11441
  subType: {
10780
11442
  type: String,
@@ -10798,13 +11460,15 @@ class HTML_Validator {
10798
11460
  isUndefinedForbidden: false,
10799
11461
  isNullForbidden: true,
10800
11462
  /* [ Theory ] The 0 is rare but possible (at least was possible for May 2025). */
10801
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
11463
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11464
+ isNaN_Forbidden: true
10802
11465
  },
10803
11466
  hiliteLength: {
10804
11467
  type: Number,
10805
11468
  isUndefinedForbidden: false,
10806
11469
  isNullForbidden: true,
10807
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11470
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11471
+ isNaN_Forbidden: true
10808
11472
  }
10809
11473
  }
10810
11474
  }
@@ -10862,18 +11526,21 @@ class HTML_Validator {
10862
11526
  lineNumber__numerationFrom1: {
10863
11527
  type: Number,
10864
11528
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
11529
+ isNaN_Forbidden: true,
10865
11530
  isUndefinedForbidden: true,
10866
11531
  isNullForbidden: true
10867
11532
  },
10868
11533
  startingColumnNumber__numerationFrom1: {
10869
11534
  type: Number,
10870
11535
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11536
+ isNaN_Forbidden: true,
10871
11537
  isUndefinedForbidden: true,
10872
11538
  isNullForbidden: true
10873
11539
  },
10874
11540
  endingColumnNumber__numerationFrom1: {
10875
11541
  type: Number,
10876
11542
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
11543
+ isNaN_Forbidden: true,
10877
11544
  isUndefinedForbidden: true,
10878
11545
  isNullForbidden: true
10879
11546
  },
@@ -11163,9 +11830,10 @@ class HTML_Validator {
11163
11830
  const numberOfStartingColumnOfHighlightedCodeFragment__numerationFrom1 = firstColumn ?? numberOfEndingColumnOfHighlightedCodeFragment__numerationFrom1;
11164
11831
  /* [ Maintainability ] Keep these variables for easier debugging. */
11165
11832
  const codeFragmentBeforeHighlighting = `${(0, es_extensions_1.cropArray)({
11833
+ fromStart: true,
11166
11834
  targetArray: HTML_CodeSplitToLines,
11167
11835
  startingElementNumber__numerationFrom1: numberOfStartingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11168
- endingElementNumber__numerationFrom1: (0, es_extensions_1.limitMinimalValue)({
11836
+ endingElementNumber__numerationFrom1__including: (0, es_extensions_1.limitMinimalValue)({
11169
11837
  targetNumber: lineNumberOfActualCodeFragment__numerationFrom1 - 1, minimalValue: 1
11170
11838
  }),
11171
11839
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
@@ -11192,9 +11860,10 @@ class HTML_Validator {
11192
11860
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: false
11193
11861
  })}\n` +
11194
11862
  (0, es_extensions_1.cropArray)({
11863
+ fromStart: true,
11195
11864
  targetArray: HTML_CodeSplitToLines,
11196
11865
  startingElementNumber__numerationFrom1: lineNumberOfActualCodeFragment__numerationFrom1 + 1,
11197
- endingElementNumber__numerationFrom1: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11866
+ endingElementNumber__numerationFrom1__including: numberOfEndingLineWhichWillBeExtractedFromCodeListingForLogging__numerationFrom1,
11198
11867
  mustThrowErrorIfSpecifiedElementsNumbersAreOutOfRange: false,
11199
11868
  mutably: false
11200
11869
  }).join("\n");
@@ -11337,8 +12006,8 @@ class HTML_Validator {
11337
12006
  return es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
11338
12007
  parentDirectoryAbsolutePath,
11339
12008
  [
11340
- `${HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART}.`,
11341
- ...(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],
11342
12011
  `${(0, es_extensions_1.toLowerCamelCase)(consumingProjectBuildingMode)}.json`
11343
12012
  ].join(".")
11344
12013
  ]);
@@ -11351,7 +12020,7 @@ class HTML_Validator {
11351
12020
  return accumulatingValue;
11352
12021
  }, {});
11353
12022
  es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
11354
- filePath: this.absolutePathOfParentDirectoryOfCachedValidationsResultsFile,
12023
+ filePath: this.absolutePathOfCachedValidationsResultsFile,
11355
12024
  content: JSON.stringify(cachedValidationsResultsFileContent, null, 2),
11356
12025
  synchronously: true
11357
12026
  });
@@ -11359,7 +12028,7 @@ class HTML_Validator {
11359
12028
  /* ━━━ Routines ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
11360
12029
  static getExpectedToBeInitializedSelfSingleInstance() {
11361
12030
  return HTML_Validator.selfSingleInstance ??
11362
- es_extensions_1.Logger.throwErrorAndLog({
12031
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
11363
12032
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
11364
12033
  className: "HTML_Validator",
11365
12034
  initializingMethodName: "initialize"
@@ -12196,8 +12865,8 @@ class ResourcesPointersResolverForHTML {
12196
12865
  });
12197
12866
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile) ||
12198
12867
  !supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
12199
- includes(explicitlySpecifiedLastFileNameExtensionWithoutDotOfSourceFile)) {
12200
- 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)({
12201
12870
  targetPath: sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension,
12202
12871
  targetFileNameExtensionWithOrWithoutLeadingDot: supportedStylesheetFileNameExtensionWithoutLeadingDot,
12203
12872
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
@@ -12322,7 +12991,8 @@ class CodeListingPugFilter {
12322
12991
  type: Number,
12323
12992
  isUndefinedForbidden: false,
12324
12993
  isNullForbidden: true,
12325
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
12994
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
12995
+ isNaN_Forbidden: true
12326
12996
  },
12327
12997
  indentationString: {
12328
12998
  type: String,
@@ -12338,7 +13008,7 @@ class CodeListingPugFilter {
12338
13008
  static apply(sourcePugCode, rawOptions) {
12339
13009
  const rawOptionsProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawOptions, CodeListingPugFilter.optionsSpecification);
12340
13010
  if (rawOptionsProcessingResult.isRawDataInvalid) {
12341
- es_extensions_1.Logger.throwErrorAndLog({
13011
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12342
13012
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12343
13013
  customMessage: "One or more invalid options found for \"CodeListing\" pug filer.\n" +
12344
13014
  es_extensions_1.RawObjectDataProcessor.formatValidationErrorsList(rawOptionsProcessingResult.validationErrorsMessages)
@@ -12392,13 +13062,13 @@ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_re
12392
13062
  const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
12393
13063
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12394
13064
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12395
- const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/NodeJS/isSubdirectory */ "./UtilsIncubator/NodeJS/isSubdirectory.ts"));
13065
+ const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory */ "./Incubators/@yamato-daiwa/es-extensions-nodejs/isSubdirectory.ts"));
12396
13066
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
12397
13067
  /* ─── Localization ───────────────────────────────────────────────────────────────────────────────────────────────── */
12398
13068
  const MarkupProcessingRawSettingsNormalizerLocalization_english_1 = __importDefault(__webpack_require__(/*! ./MarkupProcessingRawSettingsNormalizerLocalization.english */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts"));
12399
13069
  class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
12400
13070
  static localization = MarkupProcessingRawSettingsNormalizerLocalization_english_1.default;
12401
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
13071
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
12402
13072
  markupProcessingSettings__fromFile__rawValid;
12403
13073
  unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths;
12404
13074
  commonStringResources;
@@ -12412,7 +13082,8 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12412
13082
  });
12413
13083
  return {
12414
13084
  common: {
12415
- supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
13085
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
13086
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: MarkupProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
12416
13087
  supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
12417
13088
  mustResolveResourcesReferencesToAbsolutePath: dataHoldingSelfInstance.
12418
13089
  computeMustResolveResourcesReferencesToAbsolutePathPropertyValue(),
@@ -12553,7 +13224,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12553
13224
  });
12554
13225
  }
12555
13226
  catch (error) {
12556
- es_extensions_1.Logger.throwErrorAndLog({
13227
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12557
13228
  errorInstance: new es_extensions_1.FileReadingFailedError({
12558
13229
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12559
13230
  generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage({
@@ -12590,7 +13261,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12590
13261
  mustAppendDuplicateEvenIfTargetLastFileNameExtensionAlreadyPresentsAtSpecifiedPath: false
12591
13262
  });
12592
13263
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData)) {
12593
- es_extensions_1.Logger.throwErrorAndLog({
13264
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12594
13265
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12595
13266
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12596
13267
  generateInvalidValueOfStaticPreviewStateDependentPagesVariationsSpecificationAssociativeArrayMessage({
@@ -12606,7 +13277,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12606
13277
  });
12607
13278
  }
12608
13279
  if (!(0, es_extensions_1.isNonEmptyString)(stateDependentPageVariationsData.$stateObjectTypeVariableName)) {
12609
- es_extensions_1.Logger.throwErrorAndLog({
13280
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12610
13281
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12611
13282
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableNameMessage({
12612
13283
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12620,7 +13291,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12620
13291
  });
12621
13292
  }
12622
13293
  if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData.$stateDependentVariations)) {
12623
- es_extensions_1.Logger.throwErrorAndLog({
13294
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12624
13295
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12625
13296
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.
12626
13297
  generateInvalidPageStateDependentVariationsSpecificationMessage({
@@ -12639,7 +13310,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12639
13310
  for (const [fineNamePostfix, stateData] of Object.entries(stateDependentPageVariationsData.$stateDependentVariations)) {
12640
13311
  const derivedFileAbsolutePath = `${(0, es_extensions_1.removeAllFileNameExtensions)(markupSourceFileFileAbsolutePath)}${fineNamePostfix}.pug`;
12641
13312
  if (!(0, es_extensions_1.isArbitraryObject)(stateData)) {
12642
- es_extensions_1.Logger.throwErrorAndLog({
13313
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12643
13314
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12644
13315
  customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableMessage({
12645
13316
  targetMarkupFileRelativePath: markupEntryPointSourceFileRelativePath,
@@ -12676,7 +13347,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12676
13347
  });
12677
13348
  }
12678
13349
  catch (error) {
12679
- es_extensions_1.Logger.throwErrorAndLog({
13350
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12680
13351
  errorInstance: new es_extensions_1.FileReadingFailedError({
12681
13352
  filePath: importFromStaticDataFile.fileRelativePath
12682
13353
  }),
@@ -12813,7 +13484,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12813
13484
  excludedFilesPathsRelativeToSourcesFilesTopDirectory?.
12814
13485
  map((excludedFilePathRelativeRelativeToSourcesFileTopDirectory) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceFilesTopDirectoryAbsolutePath, excludedFilePathRelativeRelativeToSourcesFileTopDirectory], { alwaysForwardSlashSeparators: true })) ??
12815
13486
  []).
12816
- concat(Array.from((0, es_extensions_1.removeMultipleElementsFromSetByPredicate)({
13487
+ concat(Array.from((0, es_extensions_1.removeSetElementsByPredicates)({
12817
13488
  targetSet: this.unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths,
12818
13489
  predicate: (commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath) => (0, isSubdirectory_1.default)({
12819
13490
  whichPath: commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath,
@@ -12832,7 +13503,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12832
13503
  });
12833
13504
  }
12834
13505
  catch (error) {
12835
- es_extensions_1.Logger.throwErrorAndLog({
13506
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12836
13507
  errorInstance: new es_extensions_1.FileReadingFailedError({
12837
13508
  customMessage: `Unable to read the file with string resources at "${stringResourcesFileAbsolutePath}".`
12838
13509
  }),
@@ -12843,7 +13514,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
12843
13514
  });
12844
13515
  }
12845
13516
  if (!(0, es_extensions_1.isArbitraryObject)(stringResources)) {
12846
- es_extensions_1.Logger.throwErrorAndLog({
13517
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12847
13518
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12848
13519
  customMessage: `The content of string resources files "${stringResourcesFileAbsolutePath}" is not an object.`
12849
13520
  }),
@@ -12986,7 +13657,7 @@ class RoutingSettingsNormalizer {
12986
13657
  schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12987
13658
  });
12988
13659
  if (!(0, es_extensions_1.isArbitraryObject)(routingLocalization)) {
12989
- es_extensions_1.Logger.throwErrorAndLog({
13660
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
12990
13661
  errorInstance: new es_extensions_1.InvalidExternalDataError({
12991
13662
  customMessage: `Malformed routing localization at "${routingLocalizationFileAbsolutePath}".`
12992
13663
  }),
@@ -13019,7 +13690,7 @@ class RoutingSettingsNormalizer {
13019
13690
  }
13020
13691
  static normalizeDepthLevelWiseRecursively({ rawRoutingOfSpecificDepthLevel, outputWorkpiece, localization }) {
13021
13692
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoutingOfSpecificDepthLevel)) {
13022
- es_extensions_1.Logger.throwErrorAndLog({
13693
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13023
13694
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13024
13695
  customMessage: [
13025
13696
  "Malformed routing",
@@ -13037,7 +13708,7 @@ class RoutingSettingsNormalizer {
13037
13708
  for (const [routeKey, rawRoute] of Object.entries(rawRoutingOfSpecificDepthLevel)) {
13038
13709
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = routeKey;
13039
13710
  if (!(0, es_extensions_1.isArbitraryObject)(rawRoute)) {
13040
- es_extensions_1.Logger.throwErrorAndLog({
13711
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13041
13712
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13042
13713
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13043
13714
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawRoute)} found.`
@@ -13070,7 +13741,7 @@ class RoutingSettingsNormalizer {
13070
13741
  return null;
13071
13742
  }
13072
13743
  if (!(0, es_extensions_1.isString)(rawURI)) {
13073
- es_extensions_1.Logger.throwErrorAndLog({
13744
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13074
13745
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13075
13746
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13076
13747
  `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawURI)} found.`
@@ -13082,7 +13753,7 @@ class RoutingSettingsNormalizer {
13082
13753
  let URI_Workpiece = rawURI;
13083
13754
  if (URI_Workpiece.startsWith("`")) {
13084
13755
  if ((0, es_extensions_1.isUndefined)(localization)) {
13085
- es_extensions_1.Logger.throwErrorAndLog({
13756
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13086
13757
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13087
13758
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13088
13759
  "The specified URI has been wrapped to backticks while no localization specified."
@@ -13107,7 +13778,7 @@ class RoutingSettingsNormalizer {
13107
13778
  regularExpressionWithCapturingGroups: /(?<interpolation>\$\{\s*(?<variable>(?:\w|\.)+)\s*\})/gum,
13108
13779
  replacer(matching) {
13109
13780
  const variableSubstitution = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, matching.namedCapturingGroups.variable);
13110
- if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution)) {
13781
+ if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution, { mustConsiderNaN_AsNumber: false })) {
13111
13782
  return null;
13112
13783
  }
13113
13784
  return String(variableSubstitution);
@@ -13117,7 +13788,7 @@ class RoutingSettingsNormalizer {
13117
13788
  if (URI_Workpiece.includes("$")) {
13118
13789
  const localeDependentURI = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, URI_Workpiece);
13119
13790
  if (!(0, es_extensions_1.isString)(localeDependentURI)) {
13120
- es_extensions_1.Logger.throwErrorAndLog({
13791
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13121
13792
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13122
13793
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
13123
13794
  "The specified URI is including backticks while no localization specified."
@@ -13133,7 +13804,7 @@ class RoutingSettingsNormalizer {
13133
13804
  }
13134
13805
  static normalizeHeading(rawHeading, localization) {
13135
13806
  if (!(0, es_extensions_1.isString)(rawHeading)) {
13136
- es_extensions_1.Logger.throwErrorAndLog({
13807
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13137
13808
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13138
13809
  customMessage: [
13139
13810
  `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13147,7 +13818,7 @@ class RoutingSettingsNormalizer {
13147
13818
  let headingWorkpiece = rawHeading;
13148
13819
  if (headingWorkpiece.startsWith("`")) {
13149
13820
  if ((0, es_extensions_1.isEitherUndefinedOrNull)(localization)) {
13150
- es_extensions_1.Logger.throwErrorAndLog({
13821
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13151
13822
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13152
13823
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".` +
13153
13824
  "The specified URI is including backticks while no localization specified."
@@ -13168,7 +13839,7 @@ class RoutingSettingsNormalizer {
13168
13839
  });
13169
13840
  const localizedHeading = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, headingWorkpiece);
13170
13841
  if (!(0, es_extensions_1.isString)(localizedHeading)) {
13171
- es_extensions_1.Logger.throwErrorAndLog({
13842
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13172
13843
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13173
13844
  customMessage: [
13174
13845
  `Malformed localized heading at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
@@ -13187,7 +13858,7 @@ class RoutingSettingsNormalizer {
13187
13858
  static normalizeSectioning(rawSectioningSpecification, parentRouteURI, localization) {
13188
13859
  RoutingSettingsNormalizer.routingPathSegments.push("$sectioning");
13189
13860
  if (!(0, es_extensions_1.isString)(parentRouteURI)) {
13190
- es_extensions_1.Logger.throwErrorAndLog({
13861
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13191
13862
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13192
13863
  customMessage: `The sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}" has been defined ` +
13193
13864
  "while the $URI of the parent route has not been. " +
@@ -13198,7 +13869,7 @@ class RoutingSettingsNormalizer {
13198
13869
  });
13199
13870
  }
13200
13871
  if (!(0, es_extensions_1.isNonEmptyString)(rawSectioningSpecification.$specificationFileRelativePath)) {
13201
- es_extensions_1.Logger.throwErrorAndLog({
13872
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13202
13873
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13203
13874
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.` +
13204
13875
  "$specificationFileRelativePath\"." +
@@ -13225,7 +13896,7 @@ class RoutingSettingsNormalizer {
13225
13896
  });
13226
13897
  }
13227
13898
  catch (error) {
13228
- es_extensions_1.Logger.throwErrorAndLog({
13899
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13229
13900
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13230
13901
  customMessage: "The error has occurred during the reading of sectioning file at " +
13231
13902
  `"${rawSectioningSpecification.$specificationFileRelativePath}".`
@@ -13237,7 +13908,7 @@ class RoutingSettingsNormalizer {
13237
13908
  }
13238
13909
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(rawSectioningSchemaFileAbsolutePath);
13239
13910
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningSchema)) {
13240
- es_extensions_1.Logger.throwErrorAndLog({
13911
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13241
13912
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13242
13913
  customMessage: `Malformed sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}". ` +
13243
13914
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningSchema)} found.`
@@ -13248,7 +13919,7 @@ class RoutingSettingsNormalizer {
13248
13919
  }
13249
13920
  if ((0, es_extensions_1.isArbitraryObject)(rawSectioningSpecification.$localizations)) {
13250
13921
  if ((0, es_extensions_1.isUndefined)(localization)) {
13251
- es_extensions_1.Logger.throwErrorAndLog({
13922
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13252
13923
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13253
13924
  customMessage: "The $localizations has been specified for sectioning " +
13254
13925
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}", but common localizations for ` +
@@ -13262,7 +13933,7 @@ class RoutingSettingsNormalizer {
13262
13933
  const targetLocalizationFileRelativePath = rawSectioningSpecification.$localizations[localization.locale];
13263
13934
  RoutingSettingsNormalizer.routingPathSegments.push("$localizations", localization.locale);
13264
13935
  if (!(0, es_extensions_1.isString)(targetLocalizationFileRelativePath)) {
13265
- es_extensions_1.Logger.throwErrorAndLog({
13936
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13266
13937
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13267
13938
  customMessage: "Invalid path to sectioning localization at " +
13268
13939
  `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
@@ -13283,7 +13954,7 @@ class RoutingSettingsNormalizer {
13283
13954
  });
13284
13955
  }
13285
13956
  catch (error) {
13286
- es_extensions_1.Logger.throwErrorAndLog({
13957
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13287
13958
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: targetLocalizationFileAbsolutePath }),
13288
13959
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
13289
13960
  occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(...parameters)",
@@ -13292,7 +13963,7 @@ class RoutingSettingsNormalizer {
13292
13963
  }
13293
13964
  RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning.add(targetLocalizationFileAbsolutePath);
13294
13965
  if (!(0, es_extensions_1.isArbitraryObject)(sectioningRawLocalization)) {
13295
- es_extensions_1.Logger.throwErrorAndLog({
13966
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13296
13967
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13297
13968
  customMessage: `Malformed sectioning localization at "${targetLocalizationFileAbsolutePath}".`
13298
13969
  }),
@@ -13321,7 +13992,7 @@ class RoutingSettingsNormalizer {
13321
13992
  }
13322
13993
  static normalizeSectioningDepthLevelRecursively({ rawSectioningOfSpecificDepthLevel, outputWorkpiece, localization, parentRouteURI }) {
13323
13994
  if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningOfSpecificDepthLevel)) {
13324
- es_extensions_1.Logger.throwErrorAndLog({
13995
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13325
13996
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13326
13997
  customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13327
13998
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawSectioningOfSpecificDepthLevel)} found.`
@@ -13339,7 +14010,7 @@ class RoutingSettingsNormalizer {
13339
14010
  for (const [sectionKey, sectionRawMetadata] of Object.entries(rawSectioningOfSpecificDepthLevel)) {
13340
14011
  RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = sectionKey;
13341
14012
  if (!(0, es_extensions_1.isArbitraryObject)(sectionRawMetadata)) {
13342
- es_extensions_1.Logger.throwErrorAndLog({
14013
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13343
14014
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13344
14015
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".` +
13345
14016
  `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(sectionRawMetadata)} found.`
@@ -13349,7 +14020,7 @@ class RoutingSettingsNormalizer {
13349
14020
  });
13350
14021
  }
13351
14022
  if (!(0, es_extensions_1.isString)(sectionRawMetadata.$anchor)) {
13352
- es_extensions_1.Logger.throwErrorAndLog({
14023
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13353
14024
  errorInstance: new es_extensions_1.InvalidExternalDataError({
13354
14025
  customMessage: `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
13355
14026
  `The property "$anchor" must be defined with string while ${typeof sectionRawMetadata} found.`
@@ -13453,7 +14124,7 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13453
14124
  })
13454
14125
  });
13455
14126
  if (!fs_1.default.existsSync(compiledTypeScriptImportingSettings.sourceFileAbsolutePath)) {
13456
- es_extensions_1.Logger.throwErrorAndLog({
14127
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13457
14128
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
13458
14129
  customMessage: `The TypeScript file "${compiledTypeScriptImportingSettings.sourceFileAbsolutePath}" for ` +
13459
14130
  "the exporting to Pug was found. " +
@@ -13486,10 +14157,11 @@ class CompiledTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.de
13486
14157
  return gulp_1.default.
13487
14158
  src(this.typeScriptSourceFileAbsolutePath).
13488
14159
  pipe(super.handleErrorIfItWillOccur()).
13489
- pipe(super.logProcessedFilesIfMust()).
14160
+ pipe(super.logInputFilesIfMust()).
13490
14161
  pipe((0, webpack_stream_1.default)(this.webpackConfiguration,
13491
14162
  /* @ts-ignore: TS2345 The null as second argument is obeying to README of "webpack-stream" package. */
13492
14163
  null, this.onBuildHasCompleted.bind(this))).
14164
+ pipe(super.logOutputFilesIfMust()).
13493
14165
  pipe(GulpStreamModifier_1.default.modify({
13494
14166
  onStreamStartedEventCommonHandler: async (vinylFile) => {
13495
14167
  const outputJavaScriptCode = (0, extractStringifiedContentFromVinylFile_1.default)(vinylFile);
@@ -13657,7 +14329,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13657
14329
  pugLintConfig = config_file_1.default.load();
13658
14330
  }
13659
14331
  catch (error) {
13660
- es_extensions_1.Logger.throwErrorAndLog({
14332
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13661
14333
  errorInstance: new es_extensions_1.InvalidConfigError({
13662
14334
  customMessage: "Invalid puglint config."
13663
14335
  }),
@@ -13709,7 +14381,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13709
14381
  constructor({ markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative, pugLintConfig }) {
13710
14382
  super({
13711
14383
  projectBuildingMasterConfigRepresentative,
13712
- taskTitleForLogging: "Markup processing / Markup source code linting",
14384
+ taskTitleForLogging: "Markup Processing / Markup Source Code Linting",
13713
14385
  sourceFilesCachedCheckingResults: {
13714
14386
  fileNameWithExtension: "MarkupLintingCache.json",
13715
14387
  contentSpecification: {
@@ -13755,13 +14427,15 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13755
14427
  type: Number,
13756
14428
  isUndefinedForbidden: true,
13757
14429
  isNullForbidden: true,
13758
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14430
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14431
+ isNaN_Forbidden: true
13759
14432
  },
13760
14433
  columnNumber: {
13761
14434
  type: Number,
13762
14435
  isUndefinedForbidden: false,
13763
14436
  isNullForbidden: true,
13764
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero
14437
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveIntegerOrZero,
14438
+ isNaN_Forbidden: true
13765
14439
  }
13766
14440
  }
13767
14441
  }
@@ -13805,7 +14479,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13805
14479
  this.pugLintInstance.configure(this.pugLintConfig);
13806
14480
  }
13807
14481
  catch (error) {
13808
- es_extensions_1.Logger.throwErrorAndLog({
14482
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13809
14483
  errorInstance: new es_extensions_1.InvalidConfigError({
13810
14484
  customMessage: MarkupSourceCodeLinter.localization.pugLintConfigurationIsInvalid.description
13811
14485
  }),
@@ -13831,7 +14505,7 @@ class MarkupSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
13831
14505
  }));
13832
14506
  }
13833
14507
  catch (error) {
13834
- es_extensions_1.Logger.throwErrorAndLog({
14508
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
13835
14509
  errorType: "MarkupLintingError",
13836
14510
  title: MarkupSourceCodeLinter.localization.lintingFailedErrorLog.title,
13837
14511
  description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
@@ -14009,7 +14683,7 @@ const RevisioningSettingsNormalizer_1 = __importDefault(__webpack_require__(/*!
14009
14683
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14010
14684
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
14011
14685
  class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
14012
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
14686
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
14013
14687
  static normalize({ stylesProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
14014
14688
  const dataHoldingSelfInstance = new StylesProcessingRawSettingsNormalizer({
14015
14689
  projectBuildingCommonSettings__normalized: commonSettings__normalized,
@@ -14019,7 +14693,8 @@ class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
14019
14693
  });
14020
14694
  return {
14021
14695
  common: {
14022
- supportedSourceFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots,
14696
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots,
14697
+ supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles: StylesProcessingRestrictions_1.default.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles,
14023
14698
  supportedOutputFileNameExtensionsWithoutLeadingDots: StylesProcessingRestrictions_1.default.supportedOutputFilesNamesExtensionsWithoutLeadingDots,
14024
14699
  secondsBetweenFileUpdatingAndStartingOfRebuilding: stylesProcessingSettings__fromFile__rawValid.
14025
14700
  common?.
@@ -14095,7 +14770,10 @@ exports["default"] = StylesProcessingRawSettingsNormalizer;
14095
14770
  Object.defineProperty(exports, "__esModule", ({ value: true }));
14096
14771
  var StylesProcessingRestrictions;
14097
14772
  (function (StylesProcessingRestrictions) {
14098
- StylesProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["styl", "stylus"];
14773
+ StylesProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
14774
+ "styl", "stylus"
14775
+ ]);
14776
+ StylesProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([]);
14099
14777
  StylesProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["css"];
14100
14778
  })(StylesProcessingRestrictions || (StylesProcessingRestrictions = {}));
14101
14779
  exports["default"] = StylesProcessingRestrictions;
@@ -14117,6 +14795,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
14117
14795
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
14118
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"));
14119
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");
14120
14800
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
14121
14801
  /* [ Theory ] Below two fields could be even or not. */
14122
14802
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
@@ -14137,9 +14817,8 @@ class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
14137
14817
  this.relevantEntryPointsGroupsSettings = normalizedStylesProcessingSettings.relevantEntryPointsGroups;
14138
14818
  this.loggingSettings = normalizedStylesProcessingSettings.logging;
14139
14819
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14140
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14141
- this.actualFileNameExtensionsWithoutLeadingDots = normalizedStylesProcessingSettings.common.
14142
- supportedSourceFileNameExtensionsWithoutLeadingDots;
14820
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
14821
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedStylesProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
14143
14822
  this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedStylesProcessingSettings.common.
14144
14823
  secondsBetweenFileUpdatingAndStartingOfRebuilding;
14145
14824
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
@@ -14253,6 +14932,7 @@ var StylesProcessingSettings__FromFile__RawValid;
14253
14932
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
14254
14933
  type: Number,
14255
14934
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
14935
+ isNaN_Forbidden: true,
14256
14936
  isUndefinedForbidden: false,
14257
14937
  isNullForbidden: true
14258
14938
  },
@@ -14457,7 +15137,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14457
15137
  constructor(stylesProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
14458
15138
  super({
14459
15139
  projectBuildingMasterConfigRepresentative,
14460
- taskTitleForLogging: "Styles processing"
15140
+ taskTitleForLogging: "Styles Processing"
14461
15141
  });
14462
15142
  this.logging = {
14463
15143
  pathsOfFilesWillBeProcessed: stylesProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -14474,13 +15154,13 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14474
15154
  }
14475
15155
  return () => gulp_1.default.
14476
15156
  src(entryPointsSourceFilesAbsolutePaths).
14477
- pipe(this.handleErrorIfItWillOccur()).
15157
+ pipe(super.handleErrorIfItWillOccur()).
14478
15158
  pipe(GulpStreamModifier_1.default.modify({
14479
15159
  onStreamStartedEventCommonHandler: this.replacePlainVinylFileWithStylesEntryPointVinylFile.bind(this)
14480
15160
  })).
14481
15161
  pipe((0, gulp_if_1.default)(this.projectBuildingMasterConfigRepresentative.isStaticPreviewBuildingMode ||
14482
15162
  this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
14483
- pipe(this.logProcessedFilesIfMust()).
15163
+ pipe(this.logInputFilesIfMust()).
14484
15164
  pipe((0, gulp_stylus_1.default)({
14485
15165
  /* [ Theory ] Allows to "@include XXX.css" which is critical for third-party libraries' usage. */
14486
15166
  "include css": true
@@ -14512,6 +15192,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
14512
15192
  pipe(GulpStreamModifier_1.default.modifyForSingleVinylFileSubtype({
14513
15193
  onStreamStartedEventHandler: this.onOutputCSS_FileReady.bind(this)
14514
15194
  })).
15195
+ pipe(super.logOutputFilesIfMust()).
14515
15196
  pipe(gulp_1.default.dest((targetFile) => StylesEntryPointVinylFile_1.default.getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetFile)));
14516
15197
  }
14517
15198
  /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@@ -14861,7 +15542,7 @@ class PugPreProcessorSpecialist {
14861
15542
  * No simple way to know the capturing group name outside of this file. */
14862
15543
  /^ *(?:include|extends) +((?:\w|-|\.|\/)+) *$/gmu
14863
15544
  ];
14864
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["pug"];
15545
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["pug"]);
14865
15546
  static linterConfigurationFilesNamesWithExtensions = [
14866
15547
  ".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json", "package.json"
14867
15548
  ];
@@ -14948,7 +15629,7 @@ class StylusPreProcessorSpecialist {
14948
15629
  * No simple way to know the capturing group name outside of this file. */
14949
15630
  /^ *@(?:import|require) +['"]((?:\w|-|\.|\/)+?)['"] *;? *$/gmu
14950
15631
  ];
14951
- static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["styl", "stylus", "css"];
15632
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = new Set(["styl", "stylus", "css"]);
14952
15633
  }
14953
15634
  exports["default"] = StylusPreProcessorSpecialist;
14954
15635
 
@@ -14976,7 +15657,7 @@ class TypeScriptSpecialist {
14976
15657
  typeScriptFileReadingResult = typescript_1.default.readConfigFile(typeScriptConfigurationFileAbsolutePath, (typeScriptConfigurationFilePath) => typescript_1.default.sys.readFile(typeScriptConfigurationFilePath));
14977
15658
  }
14978
15659
  catch (error) {
14979
- es_extensions_1.Logger.throwErrorAndLog({
15660
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14980
15661
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14981
15662
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14982
15663
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14985,7 +15666,7 @@ class TypeScriptSpecialist {
14985
15666
  });
14986
15667
  }
14987
15668
  if ((0, es_extensions_1.isNotUndefined)(typeScriptFileReadingResult.error)) {
14988
- es_extensions_1.Logger.throwErrorAndLog({
15669
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14989
15670
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
14990
15671
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
14991
15672
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -14995,7 +15676,7 @@ class TypeScriptSpecialist {
14995
15676
  });
14996
15677
  }
14997
15678
  if (!(0, es_extensions_1.isArbitraryObject)(typeScriptFileReadingResult.config) || !("compilerOptions" in typeScriptFileReadingResult.config)) {
14998
- es_extensions_1.Logger.throwErrorAndLog({
15679
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
14999
15680
  errorInstance: new es_extensions_1.InvalidConfigError({
15000
15681
  mentionToConfig: `TypeScript (${typeScriptConfigurationFileAbsolutePath})`
15001
15682
  }),
@@ -15018,7 +15699,7 @@ class TypeScriptSpecialist {
15018
15699
  }));
15019
15700
  }
15020
15701
  catch (error) {
15021
- es_extensions_1.Logger.throwErrorAndLog({
15702
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15022
15703
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
15023
15704
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
15024
15705
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -15027,7 +15708,7 @@ class TypeScriptSpecialist {
15027
15708
  });
15028
15709
  }
15029
15710
  if (typeCompilerOptionsConfigurationParsingResult.errors.length > 0) {
15030
- es_extensions_1.Logger.throwErrorAndLog({
15711
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15031
15712
  errorInstance: new es_extensions_1.FileReadingFailedError({ filePath: typeScriptConfigurationFileAbsolutePath }),
15032
15713
  title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
15033
15714
  occurrenceLocation: "TypeScriptSpecialist.readTypeScriptConfigurationFileAndGetCompilerOptions" +
@@ -15223,7 +15904,7 @@ class DotYDA_DirectoryManager {
15223
15904
  }
15224
15905
  static getExpectedToBeInitializedSelfSoleInstance() {
15225
15906
  if ((0, es_extensions_1.isNull)(DotYDA_DirectoryManager.selfSoleInstance)) {
15226
- es_extensions_1.Logger.throwErrorAndLog({
15907
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15227
15908
  errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
15228
15909
  className: "DotYDA_DirectoryManager", initializingMethodName: "unrollDotYDA_Directory"
15229
15910
  }),
@@ -15262,7 +15943,7 @@ class FileNameRevisionPostfixer {
15262
15943
  return;
15263
15944
  }
15264
15945
  if (!(targetFile.contents instanceof Buffer)) {
15265
- es_extensions_1.Logger.throwErrorAndLog({
15946
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15266
15947
  errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
15267
15948
  "Because usually it is the instance of Buffer, explorations are required."),
15268
15949
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
@@ -15302,7 +15983,7 @@ class GulpStreamModifier {
15302
15983
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15303
15984
  transform(chunk, _encoding, callback) {
15304
15985
  if (!vinyl_1.default.isVinyl(chunk)) {
15305
- es_extensions_1.Logger.throwErrorAndLog({
15986
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15306
15987
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15307
15988
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15308
15989
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15362,7 +16043,7 @@ class GulpStreamModifier {
15362
16043
  /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
15363
16044
  transform(chunk, _encoding, callback) {
15364
16045
  if (!vinyl_1.default.isVinyl(chunk)) {
15365
- es_extensions_1.Logger.throwErrorAndLog({
16046
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
15366
16047
  errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
15367
16048
  technicalDetails: "The \"chunk\" parameter is not an instance of Vinyl file",
15368
16049
  politeExplanation: "According official TypeScript types definitions, the second parameter of native " +
@@ -15602,8 +16283,13 @@ class SourceCodeSelectiveReprocessingHelper {
15602
16283
  comparedPath: absolutePathOfChildFile__forwardSlashSeparators,
15603
16284
  alwaysForwardSlashSeparators: true
15604
16285
  });
15605
- (0, es_extensions_1.addMultipleElementsToSet)(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators, Array.from(this.childrenFilesMetadata.get(pathOfChildFileRelativeToConsumingProjectRootDirectory__forwardSlashSeparators)?.parentEntryPointsAbsolutePaths ??
15606
- 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
+ });
15607
16293
  }
15608
16294
  return Array.from(absolutePathsOfEntryPointsWhichMustBeProcessed__forwardSlashSeparators);
15609
16295
  }
@@ -15850,14 +16536,17 @@ class SourceCodeSelectiveReprocessingHelper {
15850
16536
  * For example, in the Pug preprocessor case, the file "ProductCard.static.pug" could be referred as
15851
16537
  * `include ProductCard.static`. */
15852
16538
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath) ||
15853
- !this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.
15854
- includes(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
16539
+ !(0, es_extensions_1.mergeSets)(this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles, this.childrenFilesResolutionRules.additionalExplicitFileNameExtensionsWithoutLeadingDotsOfChildrenFiles ?? new Set()).has(explicitlySpecifiedLastFileNameExtensionInChildrenFileRawPath)) {
15855
16540
  for (const possibleIntermediatePathOfChildFileWithResolvedAlias of possibleIntermediatePathsOfChildFileWithResolvedAlias) {
15856
- (0, es_extensions_1.addMultipleElementsToSet)(possibleAbsolutePathsOfTargetChildFile__forwardSlashSeparators, this.childrenFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles.map((childFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
15857
- ...path_1.default.isAbsolute(possibleIntermediatePathOfChildFileWithResolvedAlias) ?
15858
- [] : [parentFileDirectoryAbsolutePath__forwardSlashSeparators],
15859
- `${possibleIntermediatePathOfChildFileWithResolvedAlias}.${childFileNameImplicitExtension}`
15860
- ], { alwaysForwardSlashSeparators: true })));
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
+ });
15861
16550
  }
15862
16551
  }
15863
16552
  else {
@@ -16041,7 +16730,7 @@ class SourceCodeSelectiveReprocessingHelper {
16041
16730
  return childrenFilesMetadata;
16042
16731
  }, {})
16043
16732
  };
16044
- 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));
16045
16734
  }
16046
16735
  /* ─── Logging ──────────────────────────────────────────────────────────────────────────────────────────────────── */
16047
16736
  logChildrenFilesAndEntryPointsRelationships() {
@@ -16088,7 +16777,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
16088
16777
  class VinylFileClass extends vinyl_1.default {
16089
16778
  static getOutputDirectoryAbsolutePathOfExpectedToBeSelfInstance(targetVinylFile) {
16090
16779
  if (!(targetVinylFile instanceof VinylFileClass)) {
16091
- es_extensions_1.Logger.throwErrorAndLog({
16780
+ es_extensions_1.Logger.throwErrorWithFormattedMessage({
16092
16781
  errorInstance: new es_extensions_1.InvalidParameterValueError({
16093
16782
  parameterName: "targetVinylFile",
16094
16783
  parameterNumber: 1,
@@ -16185,115 +16874,6 @@ function extractStringifiedContentFromVinylFile(targetFile) {
16185
16874
  }
16186
16875
 
16187
16876
 
16188
- /***/ }),
16189
-
16190
- /***/ "./UtilsIncubator/NodeJS/isSubdirectory.ts":
16191
- /*!*************************************************!*\
16192
- !*** ./UtilsIncubator/NodeJS/isSubdirectory.ts ***!
16193
- \*************************************************/
16194
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16195
-
16196
-
16197
- var __importDefault = (this && this.__importDefault) || function (mod) {
16198
- return (mod && mod.__esModule) ? mod : { "default": mod };
16199
- };
16200
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16201
- exports["default"] = isSubdirectory;
16202
- const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
16203
- function isSubdirectory({ whichPath, ofWhichPath }) {
16204
- const relativePath = path_1.default.relative(ofWhichPath, whichPath);
16205
- return relativePath.length > 0 && !relativePath.startsWith("..") && !path_1.default.isAbsolute(relativePath);
16206
- }
16207
-
16208
-
16209
- /***/ }),
16210
-
16211
- /***/ "./UtilsIncubator/Stopwatch.ts":
16212
- /*!*************************************!*\
16213
- !*** ./UtilsIncubator/Stopwatch.ts ***!
16214
- \*************************************/
16215
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16216
-
16217
-
16218
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16219
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16220
- class Stopwatch {
16221
- activationUnixTimestamp__milliseconds = 0;
16222
- deactivationUnixTimestamp__milliseconds = 0;
16223
- startOrRestart() {
16224
- if (this.activationUnixTimestamp__milliseconds === 0) {
16225
- this.activationUnixTimestamp__milliseconds = Date.now();
16226
- }
16227
- return this;
16228
- }
16229
- stop() {
16230
- this.deactivationUnixTimestamp__milliseconds = Date.now();
16231
- const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
16232
- return {
16233
- seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
16234
- milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
16235
- };
16236
- }
16237
- reset() {
16238
- this.activationUnixTimestamp__milliseconds = 0;
16239
- this.deactivationUnixTimestamp__milliseconds = 0;
16240
- }
16241
- }
16242
- exports["default"] = Stopwatch;
16243
-
16244
-
16245
- /***/ }),
16246
-
16247
- /***/ "./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts":
16248
- /*!*******************************************************************!*\
16249
- !*** ./UtilsIncubator/Strings/addPenultimateFileNameExtension.ts ***!
16250
- \*******************************************************************/
16251
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16252
-
16253
-
16254
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16255
- exports["default"] = addPenultimateFileNameExtension;
16256
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16257
- function addPenultimateFileNameExtension({ targetPath, targetFileNamePenultimateExtensionWithOrWithoutLeadingDot, mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist }) {
16258
- const targetFileNamePenultimateExtensionWithoutLeadingDot = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
16259
- targetString: targetFileNamePenultimateExtensionWithOrWithoutLeadingDot,
16260
- targetCharacter: ".",
16261
- fromFirstPosition: true
16262
- });
16263
- if (!targetPath.includes(".")) {
16264
- const { updatedString: targetPathWihtoutFragment, extractedMatching: targetPathFragmentWithLeadingHash } = (0, es_extensions_1.extractMatchingsWithRegularExpression)(targetPath, /#.+$/u, { mustExpectOneOrZeroMatchings: true });
16265
- return mustAppendDuplicateEvenIfTargetPenultimateFileNameExtensionAlreadyExist ?
16266
- `${targetPathWihtoutFragment}.${targetFileNamePenultimateExtensionWithoutLeadingDot}` +
16267
- targetPathFragmentWithLeadingHash :
16268
- targetPath;
16269
- }
16270
- const pathDotSeparatedSegments = (0, es_extensions_1.splitString)(targetPath, ".");
16271
- return (0, es_extensions_1.addElementsToArray)({
16272
- targetArray: pathDotSeparatedSegments,
16273
- newElements: [targetFileNamePenultimateExtensionWithoutLeadingDot],
16274
- mutably: true,
16275
- toPosition__numerationFrom1: pathDotSeparatedSegments.length
16276
- }).join(".");
16277
- }
16278
-
16279
-
16280
- /***/ }),
16281
-
16282
- /***/ "./UtilsIncubator/Strings/replaceLinesSeparators.ts":
16283
- /*!**********************************************************!*\
16284
- !*** ./UtilsIncubator/Strings/replaceLinesSeparators.ts ***!
16285
- \**********************************************************/
16286
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16287
-
16288
-
16289
- Object.defineProperty(exports, "__esModule", ({ value: true }));
16290
- exports["default"] = replaceLinesSeparators;
16291
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
16292
- function replaceLinesSeparators(targetString, lineSeparators) {
16293
- return (0, es_extensions_1.explodeStringToLines)({ targetString, mustIgnoreCarriageReturn: false }).join(lineSeparators);
16294
- }
16295
-
16296
-
16297
16877
  /***/ }),
16298
16878
 
16299
16879
  /***/ "@yamato-daiwa/es-extensions":
@@ -16744,6 +17324,16 @@ module.exports = require("webpack-node-externals");
16744
17324
 
16745
17325
  module.exports = require("webpack-stream");
16746
17326
 
17327
+ /***/ }),
17328
+
17329
+ /***/ "webpackbar":
17330
+ /*!*****************************!*\
17331
+ !*** external "webpackbar" ***!
17332
+ \*****************************/
17333
+ /***/ ((module) => {
17334
+
17335
+ module.exports = require("webpackbar");
17336
+
16747
17337
  /***/ })
16748
17338
 
16749
17339
  /******/ });