@yamato-daiwa/automation 0.4.2 → 0.5.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 +1129 -235
  2. package/package.json +1 -1
package/EntryPoint.js CHANGED
@@ -170,6 +170,7 @@ const AudiosProcessor_1 = __importDefault(__webpack_require__(/*! @AudiosProcess
170
170
  const PlainCopier_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopier */ "./ProjectBuilding/PlainCopying/PlainCopier.ts"));
171
171
  const LocalDevelopmentServerOrchestrator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Subtasks/LocalDevelopmentServerOrchestration/LocalDevelopmentServerOrchestrator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/LocalDevelopmentServerOrchestration/LocalDevelopmentServerOrchestrator.ts"));
172
172
  const BrowserLiveReloader_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloader */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloader.ts"));
173
+ const OutputPackageJSON_Generator_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator.ts"));
173
174
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
174
175
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
175
176
  const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
@@ -214,6 +215,7 @@ class ProjectBuilder {
214
215
  VideosProcessor_1.default.provideVideosProcessingIfMust(masterConfigRepresentative),
215
216
  MarkupProcessor_1.default.provideMarkupProcessingIfMust(masterConfigRepresentative),
216
217
  BrowserLiveReloader_1.default.provideBrowserLiveReloadingIfMust(masterConfigRepresentative),
218
+ OutputPackageJSON_Generator_1.default.generateIfMust(masterConfigRepresentative),
217
219
  gulp_1.default.parallel([
218
220
  FilesMasterWatcher_1.default.watchIfMust(masterConfigRepresentative),
219
221
  LocalDevelopmentServerOrchestrator_1.default.orchestrateIfMust(masterConfigRepresentative)
@@ -2206,12 +2208,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2206
2208
  return (mod && mod.__esModule) ? mod : { "default": mod };
2207
2209
  };
2208
2210
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2209
- /* --- Business rules ----------------------------------------------------------------------------------------------- */
2211
+ const mustProvideIncrementalProjectBuilding_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding */ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts"));
2212
+ /* ─── Raw Valid Settings ─────────────────────────────────────────────────────────────────────────────────────────── */
2210
2213
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2211
- /* --- Utils -------------------------------------------------------------------------------------------------------- */
2214
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
2212
2215
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2213
2216
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2214
- const mustProvideIncrementalProjectBuilding_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding */ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts"));
2215
2217
  class ProjectBuildingCommonSettingsNormalizer {
2216
2218
  static normalize({ commonSettings__fromFile__rawValid, consumingProjectRootDirectoryAbsolutePath, projectBuildingMode, actualSelectiveExecutionID, actualSelectiveExecution }) {
2217
2219
  const consumingProjectRootDirectoryAbsolutePath__forwardSlashes = es_extensions_nodejs_1.ImprovedPath.
@@ -2247,6 +2249,7 @@ class ProjectBuildingCommonSettingsNormalizer {
2247
2249
  }
2248
2250
  } : null,
2249
2251
  browserLiveReloadingSetupID: actualSelectiveExecution?.browserLiveReloadingSetupID,
2252
+ mustGenerateOutputPackageJSON: actualSelectiveExecution?.outputPackageJSON_Generating === true,
2250
2253
  actualPublicDirectoryAbsolutePath
2251
2254
  };
2252
2255
  }
@@ -2392,6 +2395,7 @@ var ProjectBuildingTasksIDsForConfigFile;
2392
2395
  ProjectBuildingTasksIDsForConfigFile["browserLiveReloading"] = "browserLiveReloading";
2393
2396
  ProjectBuildingTasksIDsForConfigFile["plainCopying"] = "plainCopying";
2394
2397
  ProjectBuildingTasksIDsForConfigFile["filesWatching"] = "filesWatching";
2398
+ ProjectBuildingTasksIDsForConfigFile["outputPackageJSON_Generating"] = "outputPackageJSON_Generating";
2395
2399
  })(ProjectBuildingTasksIDsForConfigFile || (exports.ProjectBuildingTasksIDsForConfigFile = ProjectBuildingTasksIDsForConfigFile = {}));
2396
2400
 
2397
2401
 
@@ -2408,10 +2412,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2408
2412
  return (mod && mod.__esModule) ? mod : { "default": mod };
2409
2413
  };
2410
2414
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2411
- /* --- Defaults ----------------------------------------------------------------------------------------------------- */
2415
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
2412
2416
  const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
2413
2417
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2414
- /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
2418
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
2415
2419
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2416
2420
  var ProjectBuildingCommonSettings__FromFile__RawValid;
2417
2421
  (function (ProjectBuildingCommonSettings__FromFile__RawValid) {
@@ -2455,6 +2459,11 @@ var ProjectBuildingCommonSettings__FromFile__RawValid;
2455
2459
  newName: "browserLiveReloadingSetupID",
2456
2460
  type: String,
2457
2461
  required: false
2462
+ },
2463
+ [projectBuildingCommonSettingsLocalization.selectiveExecutions.outputPackageJSON_Generating.KEY]: {
2464
+ newName: "outputPackageJSON_Generating",
2465
+ type: Boolean,
2466
+ required: false
2458
2467
  }
2459
2468
  }
2460
2469
  }
@@ -3939,10 +3948,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3939
3948
  return (mod && mod.__esModule) ? mod : { "default": mod };
3940
3949
  };
3941
3950
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3942
- /* ─── Settings representatives ──────────────────────────────────────────────────────────────────────────────────── */
3951
+ /* ─── Settings Representatives ───────────────────────────────────────────────────────────────────────────────────── */
3943
3952
  const AssetsProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts"));
3944
3953
  const VinylFileClass_1 = __importDefault(__webpack_require__(/*! @Utils/VinylFileClass */ "./Utils/VinylFileClass.ts"));
3945
- /* ─── Utils ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
3954
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
3946
3955
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3947
3956
  class AssetVinylFile extends VinylFileClass_1.default {
3948
3957
  sourceAbsolutePath;
@@ -4401,16 +4410,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4401
4410
  return (mod && mod.__esModule) ? mod : { "default": mod };
4402
4411
  };
4403
4412
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4404
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
4413
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
4405
4414
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist.ts"));
4406
4415
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4407
4416
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
4408
4417
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4418
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4409
4419
  class FilesMasterWatcher {
4410
4420
  static passiveWatchers = new Set();
4411
4421
  static watchIfMust(projectBuildingMasterConfigRepresentative) {
4412
4422
  const filesWatchingSettingsRepresentative = projectBuildingMasterConfigRepresentative.filesWatchingSettingsRepresentative;
4413
- if (!filesWatchingSettingsRepresentative.mustProvideFilesWatching) {
4423
+ if ((0, es_extensions_1.isUndefined)(filesWatchingSettingsRepresentative) || !filesWatchingSettingsRepresentative.mustProvideFilesWatching) {
4414
4424
  return (callback) => { callback(); };
4415
4425
  }
4416
4426
  return (callback) => {
@@ -4497,6 +4507,304 @@ class FilesPassiveWatcher {
4497
4507
  exports["default"] = FilesPassiveWatcher;
4498
4508
 
4499
4509
 
4510
+ /***/ }),
4511
+
4512
+ /***/ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer.ts":
4513
+ /*!********************************************************************************************************!*\
4514
+ !*** ./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer.ts ***!
4515
+ \********************************************************************************************************/
4516
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4517
+
4518
+
4519
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4520
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4521
+ };
4522
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4523
+ /* ─── Default Settings ───────────────────────────────────────────────────────────────────────────────────────────── */
4524
+ const OutputPackageJSON_GeneratingSettings__Default_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__Default */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__Default.ts"));
4525
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4526
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4527
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4528
+ class OutputPackageJSON_GeneratingSettingsNormalizer {
4529
+ static normalizeIfThereAreActualOnes({ outputPackageJSON_GeneratingSettings__fromFile__rawValid, commonSettings__normalized }) {
4530
+ if ((0, es_extensions_1.isUndefined)(outputPackageJSON_GeneratingSettings__fromFile__rawValid)) {
4531
+ return null;
4532
+ }
4533
+ if ((0, es_extensions_1.isNotUndefined)(commonSettings__normalized.tasksAndSourceFilesSelection) &&
4534
+ !commonSettings__normalized.mustGenerateOutputPackageJSON) {
4535
+ return null;
4536
+ }
4537
+ const outputPackageJSON_GeneratingSettingsActualForCurrentProjectBuildingMode__fromFile__rawValid = outputPackageJSON_GeneratingSettings__fromFile__rawValid.
4538
+ buildingModeDependent[commonSettings__normalized.projectBuildingMode];
4539
+ if ((0, es_extensions_1.isUndefined)(outputPackageJSON_GeneratingSettingsActualForCurrentProjectBuildingMode__fromFile__rawValid)) {
4540
+ return null;
4541
+ }
4542
+ const extractionFromPackageJSON_OfConsumingProject = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
4543
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([commonSettings__normalized.projectRootDirectoryAbsolutePath, "package.json"], { alwaysForwardSlashSeparators: true }),
4544
+ validDataSpecification: {
4545
+ subtype: es_extensions_1.RawObjectDataProcessor.ObjectSubtypes.fixedKeyAndValuePairsObject,
4546
+ nameForLogging: "PackageJSON_OfConsumingProject",
4547
+ properties: {
4548
+ scripts: {
4549
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4550
+ defaultValue: {},
4551
+ value: {
4552
+ type: String
4553
+ }
4554
+ },
4555
+ dependencies: {
4556
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4557
+ defaultValue: {},
4558
+ value: {
4559
+ type: String
4560
+ }
4561
+ },
4562
+ devDependencies: {
4563
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4564
+ defaultValue: {},
4565
+ value: {
4566
+ type: String
4567
+ }
4568
+ }
4569
+ }
4570
+ },
4571
+ synchronously: true
4572
+ });
4573
+ return {
4574
+ dependencies: Object.entries(extractionFromPackageJSON_OfConsumingProject.dependencies).reduce((packagesIDsAndVersionsCorrespondence, [packageID, packageVersion]) => {
4575
+ if (outputPackageJSON_GeneratingSettings__fromFile__rawValid.inheritedDependencies?.
4576
+ includes(packageID) === true) {
4577
+ packagesIDsAndVersionsCorrespondence[packageID] = packageVersion;
4578
+ }
4579
+ return packagesIDsAndVersionsCorrespondence;
4580
+ }, {}),
4581
+ developmentDependencies: Object.entries(extractionFromPackageJSON_OfConsumingProject.devDependencies).reduce((packagesIDsAndVersionsCorrespondence, [packageID, packageVersion]) => {
4582
+ if (outputPackageJSON_GeneratingSettings__fromFile__rawValid.inheritedDevelopmentDependencies?.
4583
+ includes(packageID) === true) {
4584
+ packagesIDsAndVersionsCorrespondence[packageID] = packageVersion;
4585
+ }
4586
+ return packagesIDsAndVersionsCorrespondence;
4587
+ }, {}),
4588
+ scripts: Object.entries(extractionFromPackageJSON_OfConsumingProject.devDependencies).reduce((npmScript, [command, script]) => {
4589
+ if (outputPackageJSON_GeneratingSettings__fromFile__rawValid.inheritedNPM_Scripts?.
4590
+ includes(command) === true) {
4591
+ npmScript[command] = script;
4592
+ }
4593
+ return npmScript;
4594
+ }, outputPackageJSON_GeneratingSettings__fromFile__rawValid.newNPM_Scripts ?? {}),
4595
+ indentString: outputPackageJSON_GeneratingSettingsActualForCurrentProjectBuildingMode__fromFile__rawValid.indentString ??
4596
+ outputPackageJSON_GeneratingSettings__fromFile__rawValid.indentString ??
4597
+ OutputPackageJSON_GeneratingSettings__Default_1.default.indentString,
4598
+ linesSeparator: outputPackageJSON_GeneratingSettingsActualForCurrentProjectBuildingMode__fromFile__rawValid.linesSeparator ??
4599
+ outputPackageJSON_GeneratingSettings__fromFile__rawValid.linesSeparator ??
4600
+ OutputPackageJSON_GeneratingSettings__Default_1.default.linesSeparator,
4601
+ outputFileAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
4602
+ commonSettings__normalized.projectRootDirectoryAbsolutePath,
4603
+ outputPackageJSON_GeneratingSettingsActualForCurrentProjectBuildingMode__fromFile__rawValid.
4604
+ outputDirectoryRelativePath,
4605
+ "package.json"
4606
+ ], { alwaysForwardSlashSeparators: true })
4607
+ };
4608
+ }
4609
+ }
4610
+ exports["default"] = OutputPackageJSON_GeneratingSettingsNormalizer;
4611
+
4612
+
4613
+ /***/ }),
4614
+
4615
+ /***/ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative.ts":
4616
+ /*!************************************************************************************************************!*\
4617
+ !*** ./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative.ts ***!
4618
+ \************************************************************************************************************/
4619
+ /***/ ((__unused_webpack_module, exports) => {
4620
+
4621
+
4622
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4623
+ class OutputPackageJSON_GeneratingSettingsRepresentative {
4624
+ outputPackageJSON_GeneratingSettings;
4625
+ constructor(outputPackageJSON_GeneratingSettings) {
4626
+ this.outputPackageJSON_GeneratingSettings = outputPackageJSON_GeneratingSettings;
4627
+ }
4628
+ }
4629
+ exports["default"] = OutputPackageJSON_GeneratingSettingsRepresentative;
4630
+
4631
+
4632
+ /***/ }),
4633
+
4634
+ /***/ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__Default.ts":
4635
+ /*!*******************************************************************************************************!*\
4636
+ !*** ./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__Default.ts ***!
4637
+ \*******************************************************************************************************/
4638
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4639
+
4640
+
4641
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4642
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4643
+ };
4644
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4645
+ const os_1 = __importDefault(__webpack_require__(/*! os */ "os"));
4646
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4647
+ const OutputPackageJSON_GeneratingSettings__Normalized = {
4648
+ indentString: " ",
4649
+ linesSeparator: os_1.default.EOL === "\n" ? es_extensions_1.LineSeparators.lineFeed : es_extensions_1.LineSeparators.carriageReturnAndLineFeed
4650
+ };
4651
+ exports["default"] = OutputPackageJSON_GeneratingSettings__Normalized;
4652
+
4653
+
4654
+ /***/ }),
4655
+
4656
+ /***/ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid.ts":
4657
+ /*!******************************************************************************************************************!*\
4658
+ !*** ./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid.ts ***!
4659
+ \******************************************************************************************************************/
4660
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4661
+
4662
+
4663
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4664
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4665
+ };
4666
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4667
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4668
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
4669
+ var OutputPackageJSON_GeneratingSettings__FromFile__RawValid;
4670
+ (function (OutputPackageJSON_GeneratingSettings__FromFile__RawValid) {
4671
+ function getLocalizedPropertiesSpecification({ outputPackageJSON_GeneratingSettingsLocalization, consumingProjectLocalizedPreDefinedBuildingModes }) {
4672
+ return {
4673
+ [outputPackageJSON_GeneratingSettingsLocalization.inheritedDependencies.KEY]: {
4674
+ newName: "inheritedDependencies",
4675
+ type: Array,
4676
+ required: false,
4677
+ minimalElementsCount: 1,
4678
+ element: {
4679
+ type: String,
4680
+ minimalCharactersCount: 1
4681
+ }
4682
+ },
4683
+ [outputPackageJSON_GeneratingSettingsLocalization.inheritedDevelopmentDependencies.KEY]: {
4684
+ newName: "inheritedDevelopmentDependencies",
4685
+ type: Array,
4686
+ required: false,
4687
+ minimalElementsCount: 1,
4688
+ element: {
4689
+ type: String,
4690
+ minimalCharactersCount: 1
4691
+ }
4692
+ },
4693
+ [outputPackageJSON_GeneratingSettingsLocalization.inheritedNPM_Scripts.KEY]: {
4694
+ newName: "inheritedNPM_Scripts",
4695
+ type: Array,
4696
+ required: false,
4697
+ minimalElementsCount: 1,
4698
+ element: {
4699
+ type: String,
4700
+ minimalCharactersCount: 1
4701
+ }
4702
+ },
4703
+ [outputPackageJSON_GeneratingSettingsLocalization.newNPM_Scripts.KEY]: {
4704
+ newName: "newNPM_Scripts",
4705
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4706
+ required: false,
4707
+ preValidationModifications: es_extensions_1.nullToUndefined,
4708
+ minimalEntriesCount: 1,
4709
+ value: {
4710
+ type: String,
4711
+ minimalCharactersCount: 1
4712
+ }
4713
+ },
4714
+ [outputPackageJSON_GeneratingSettingsLocalization.indentString.KEY]: {
4715
+ newName: "indentString",
4716
+ type: String,
4717
+ required: false,
4718
+ minimalCharactersCount: 1
4719
+ },
4720
+ [outputPackageJSON_GeneratingSettingsLocalization.linesSeparator.KEY]: {
4721
+ newName: "linesSeparator",
4722
+ type: String,
4723
+ required: false,
4724
+ allowedAlternatives: Object.values(es_extensions_1.LineSeparators.lineFeed)
4725
+ },
4726
+ [outputPackageJSON_GeneratingSettingsLocalization.buildingModeDependent.KEY]: {
4727
+ newName: "buildingModeDependent",
4728
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4729
+ required: true,
4730
+ allowedKeys: Object.values(ConsumingProjectBuildingModes_1.default),
4731
+ minimalEntriesCount: 1,
4732
+ keysRenamings: {
4733
+ [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectBuildingModes_1.default.staticPreview,
4734
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectBuildingModes_1.default.localDevelopment,
4735
+ [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectBuildingModes_1.default.testing,
4736
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectBuildingModes_1.default.staging,
4737
+ [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectBuildingModes_1.default.production
4738
+ },
4739
+ value: {
4740
+ type: Object,
4741
+ properties: {
4742
+ [outputPackageJSON_GeneratingSettingsLocalization.buildingModeDependent.outputDirectoryRelativePath.KEY]: {
4743
+ newName: "outputDirectoryRelativePath",
4744
+ type: String,
4745
+ required: true,
4746
+ minimalCharactersCount: 1
4747
+ },
4748
+ [outputPackageJSON_GeneratingSettingsLocalization.buildingModeDependent.indentString.KEY]: {
4749
+ newName: "indentString",
4750
+ type: String,
4751
+ required: false,
4752
+ minimalCharactersCount: 1
4753
+ },
4754
+ [outputPackageJSON_GeneratingSettingsLocalization.buildingModeDependent.linesSeparator.KEY]: {
4755
+ newName: "linesSeparator",
4756
+ type: String,
4757
+ required: false,
4758
+ allowedAlternatives: Object.values(es_extensions_1.LineSeparators.lineFeed)
4759
+ }
4760
+ }
4761
+ }
4762
+ }
4763
+ };
4764
+ }
4765
+ OutputPackageJSON_GeneratingSettings__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
4766
+ })(OutputPackageJSON_GeneratingSettings__FromFile__RawValid || (OutputPackageJSON_GeneratingSettings__FromFile__RawValid = {}));
4767
+ exports["default"] = OutputPackageJSON_GeneratingSettings__FromFile__RawValid;
4768
+
4769
+
4770
+ /***/ }),
4771
+
4772
+ /***/ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator.ts":
4773
+ /*!*************************************************************************************!*\
4774
+ !*** ./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_Generator.ts ***!
4775
+ \*************************************************************************************/
4776
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4777
+
4778
+
4779
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4780
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4781
+ };
4782
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4783
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4784
+ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
4785
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4786
+ const replaceLinesSeparators_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Strings/replaceLinesSeparators */ "./UtilsIncubator/Strings/replaceLinesSeparators.ts"));
4787
+ class OutputPackageJSON_Generator {
4788
+ static generateIfMust(projectBuildingMasterConfigRepresentative) {
4789
+ if ((0, es_extensions_1.isUndefined)(projectBuildingMasterConfigRepresentative.outputPackageJSON_GeneratingSettingsRepresentative)) {
4790
+ return async () => Promise.resolve();
4791
+ }
4792
+ const { outputPackageJSON_GeneratingSettingsRepresentative } = projectBuildingMasterConfigRepresentative;
4793
+ return async () => OutputPackageJSON_Generator.generate(outputPackageJSON_GeneratingSettingsRepresentative.outputPackageJSON_GeneratingSettings);
4794
+ }
4795
+ static async generate({ outputFileAbsolutePath, dependencies, developmentDependencies, scripts, indentString, linesSeparator }) {
4796
+ fs_1.default.writeFileSync(outputFileAbsolutePath, (0, replaceLinesSeparators_1.default)(JSON.stringify({
4797
+ private: true,
4798
+ dependencies,
4799
+ devDependencies: developmentDependencies,
4800
+ scripts
4801
+ }, null, indentString), linesSeparator));
4802
+ return Promise.resolve();
4803
+ }
4804
+ }
4805
+ exports["default"] = OutputPackageJSON_Generator;
4806
+
4807
+
4500
4808
  /***/ }),
4501
4809
 
4502
4810
  /***/ "./ProjectBuilding/PlainCopying/PlainCopier.ts":
@@ -5001,7 +5309,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5001
5309
  return (mod && mod.__esModule) ? mod : { "default": mod };
5002
5310
  };
5003
5311
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5004
- /* --- Raw valid config --------------------------------------------------------------------------------------------- */
5312
+ /* ─── Raw Valid Settings ─────────────────────────────────────────────────────────────────────────────────────────── */
5005
5313
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
5006
5314
  const ProjectBuildingCommonSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer */ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts"));
5007
5315
  const MarkupProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts"));
@@ -5014,7 +5322,8 @@ const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_requir
5014
5322
  const PlainCopyingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer */ "./ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer.ts"));
5015
5323
  const FilesWatchingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts"));
5016
5324
  const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts"));
5017
- /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
5325
+ const OutputPackageJSON_GeneratingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsNormalizer.ts"));
5326
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
5018
5327
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5019
5328
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
5020
5329
  class ProjectBuilderRawConfigNormalizer {
@@ -5188,6 +5497,13 @@ class ProjectBuilderRawConfigNormalizer {
5188
5497
  ...(0, es_extensions_1.isNotUndefined)(selectedBrowserLiveReloadingSetupID) ? { selectedBrowserLiveReloadingSetupID } : {}
5189
5498
  })
5190
5499
  };
5500
+ })(),
5501
+ ...(() => {
5502
+ const outputPackageJSON_Generating = OutputPackageJSON_GeneratingSettingsNormalizer_1.default.normalizeIfThereAreActualOnes({
5503
+ outputPackageJSON_GeneratingSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.outputPackageJSON_Generating],
5504
+ commonSettings__normalized
5505
+ });
5506
+ return (0, es_extensions_1.isNotNull)(outputPackageJSON_Generating) ? { outputPackageJSON_Generating } : {};
5191
5507
  })()
5192
5508
  };
5193
5509
  }
@@ -5261,7 +5577,8 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5261
5577
  videosProcessing: "videosProcessing",
5262
5578
  plainCopying: "plainCopying",
5263
5579
  browserLiveReloading: "browserLiveReloading",
5264
- filesWatching: "filesWatching"
5580
+ filesWatching: "filesWatching",
5581
+ outputPackageJSON_Generating: "outputPackageJSON_Generating"
5265
5582
  },
5266
5583
  consumingProjectPreDefinedBuildingModes: {
5267
5584
  staticPreview: "STATIC_PREVIEW",
@@ -5324,7 +5641,8 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5324
5641
  selectiveExecutions: {
5325
5642
  KEY: "selectiveExecutions",
5326
5643
  tasksAndSourceFilesSelection: { KEY: "tasksAndSourceFilesSelection" },
5327
- browserLiveReloadingSetupID: { KEY: "browserLiveReloadingSetupID" }
5644
+ browserLiveReloadingSetupID: { KEY: "browserLiveReloadingSetupID" },
5645
+ outputPackageJSON_Generating: { KEY: "outputPackageJSON_Generating" }
5328
5646
  },
5329
5647
  publicDirectoriesRelativePaths: { KEY: "publicDirectoriesRelativePaths" }
5330
5648
  }
@@ -5676,6 +5994,20 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5676
5994
  browserTabWillBeReloadedSoon: { KEY: "browserTabWillBeReloadedSoon" },
5677
5995
  browsersyncConnection: { KEY: "browsersyncConnection" }
5678
5996
  }
5997
+ },
5998
+ outputPackageJSON_Generating: {
5999
+ inheritedDependencies: { KEY: "inheritedDependencies" },
6000
+ inheritedDevelopmentDependencies: { KEY: "inheritedDevelopmentDependencies" },
6001
+ inheritedNPM_Scripts: { KEY: "inheritedNPM_Scripts" },
6002
+ newNPM_Scripts: { KEY: "newNPM_Scripts" },
6003
+ indentString: { KEY: "indentString" },
6004
+ linesSeparator: { KEY: "linesSeparator" },
6005
+ buildingModeDependent: {
6006
+ KEY: "buildingModeDependent",
6007
+ outputDirectoryRelativePath: { KEY: "outputDirectoryRelativePath" },
6008
+ indentString: { KEY: "indentString" },
6009
+ linesSeparator: { KEY: "linesSeparator" }
6010
+ }
5679
6011
  }
5680
6012
  }
5681
6013
  };
@@ -5710,6 +6042,7 @@ const AudiosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack
5710
6042
  const PlainCopyingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid */ "./ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid.ts"));
5711
6043
  const FilesWatchingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid */ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts"));
5712
6044
  const BrowserLiveReloadingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid.ts"));
6045
+ const OutputPackageJSON_GeneratingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettings__FromFile__RawValid.ts"));
5713
6046
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
5714
6047
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5715
6048
  var ProjectBuildingConfig__FromFile__RawValid;
@@ -5863,6 +6196,16 @@ var ProjectBuildingConfig__FromFile__RawValid;
5863
6196
  preValidationModifications: es_extensions_1.nullToUndefined,
5864
6197
  properties: BrowserLiveReloadingSettings__FromFile__RawValid_1.default.
5865
6198
  getLocalizedPropertiesSpecification(localization.tasks.browserLiveReloading)
6199
+ },
6200
+ [localization.enumerations.tasksIDs.outputPackageJSON_Generating]: {
6201
+ newName: "outputPackageJSON_Generating",
6202
+ type: Object,
6203
+ required: false,
6204
+ preValidationModifications: es_extensions_1.nullToUndefined,
6205
+ properties: OutputPackageJSON_GeneratingSettings__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification({
6206
+ outputPackageJSON_GeneratingSettingsLocalization: localization.tasks.outputPackageJSON_Generating,
6207
+ consumingProjectLocalizedPreDefinedBuildingModes
6208
+ })
5866
6209
  }
5867
6210
  }
5868
6211
  }
@@ -5900,6 +6243,7 @@ const VideosProcessingSettingsRepresentative_1 = __importDefault(__webpack_requi
5900
6243
  const PlainCopyingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative */ "./ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative.ts"));
5901
6244
  const FilesWatchingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts"));
5902
6245
  const BrowserLiveReloadingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts"));
6246
+ const OutputPackageJSON_GeneratingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative */ "./ProjectBuilding/OutputPackageJSON_Generating/OutputPackageJSON_GeneratingSettingsRepresentative.ts"));
5903
6247
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
5904
6248
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5905
6249
  class ProjectBuildingMasterConfigRepresentative {
@@ -5914,6 +6258,7 @@ class ProjectBuildingMasterConfigRepresentative {
5914
6258
  plainCopyingSettingsRepresentative;
5915
6259
  filesWatchingSettingsRepresentative;
5916
6260
  browserLiveReloadingSettingsRepresentative;
6261
+ outputPackageJSON_GeneratingSettingsRepresentative;
5917
6262
  commonSettings;
5918
6263
  static initializeAndGetInstance(projectBuilderConfig__normalized) {
5919
6264
  if ((0, es_extensions_1.isNotNull)(ProjectBuildingMasterConfigRepresentative.selfSoleInstance)) {
@@ -5960,6 +6305,9 @@ class ProjectBuildingMasterConfigRepresentative {
5960
6305
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.browserLiveReloading)) {
5961
6306
  this.browserLiveReloadingSettingsRepresentative = new BrowserLiveReloadingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.browserLiveReloading);
5962
6307
  }
6308
+ if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.outputPackageJSON_Generating)) {
6309
+ this.outputPackageJSON_GeneratingSettingsRepresentative = new OutputPackageJSON_GeneratingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.outputPackageJSON_Generating);
6310
+ }
5963
6311
  }
5964
6312
  /* === Common settings ============================================================================================ */
5965
6313
  get consumingProjectRootDirectoryAbsolutePath() {
@@ -6055,14 +6403,16 @@ var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1
6055
6403
  const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
6056
6404
  /* ─── Default Settings ───────────────────────────────────────────────────────────────────────────────────────────── */
6057
6405
  const ECMA_ScriptLogicProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingSettings__Default.ts"));
6058
- /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
6406
+ /* ─── Settings Normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
6059
6407
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
6060
6408
  const RevisioningSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/RawSettingsNormalizers/Reusables/RevisioningSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/Reusables/RevisioningSettingsNormalizer.ts"));
6061
- /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
6409
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
6410
+ const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
6062
6411
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6063
6412
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6064
6413
  class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
6065
6414
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = ECMA_ScriptLogicProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
6415
+ cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions = new Map();
6066
6416
  static normalize({ ECMA_ScriptLogicProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
6067
6417
  const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessingRawSettingsNormalizer({
6068
6418
  projectBuildingCommonSettings__normalized: commonSettings__normalized,
@@ -6112,6 +6462,15 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6112
6462
  }
6113
6463
  completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilECMA_ScriptLogicEntryPointsGroupNormalizedSettings(entryPointsGroupGenericSettings__normalized, entryPointsGroupSettings__rawValid) {
6114
6464
  const distributingSettings__rawValid = entryPointsGroupSettings__rawValid.distributing;
6465
+ const typeScriptConfigurationFileRelativePath = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath ??
6466
+ ECMA_ScriptLogicProcessingSettings__Default_1.default.typeScriptConfigurationFileRelativePath);
6467
+ const typeScriptConfigurationFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([this.consumingProjectRootDirectoryAbsolutePath, typeScriptConfigurationFileRelativePath], { alwaysForwardSlashSeparators: true });
6468
+ const typeScriptCompilerOptions = this.cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions.
6469
+ get(typeScriptConfigurationFileRelativePath) ??
6470
+ this.readAndCacheTypeScriptCompilerOptions({
6471
+ typeScriptConfigurationFileAbsolutePath,
6472
+ typeScriptConfigurationFileRelativePath
6473
+ });
6115
6474
  return {
6116
6475
  ...entryPointsGroupGenericSettings__normalized,
6117
6476
  targetRuntime: (() => {
@@ -6150,11 +6509,10 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6150
6509
  associatedMarkupEntryPointsGroupID_ForDynamicModulesLoadingWithoutDevelopmentServer: entryPointsGroupSettings__rawValid.
6151
6510
  associatedMarkupEntryPointsGroupID_ForDynamicModulesLoadingWithoutDevelopmentServer
6152
6511
  } : null,
6153
- typeScriptConfigurationFileAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6154
- this.consumingProjectRootDirectoryAbsolutePath,
6155
- entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath ??
6156
- ECMA_ScriptLogicProcessingSettings__Default_1.default.typeScriptConfigurationFileRelativePath
6157
- ], { alwaysForwardSlashSeparators: true }),
6512
+ typeScriptConfigurationFileAbsolutePath,
6513
+ typeScriptCompilerOptions,
6514
+ directoriesAliasesAndCorrespondingAbsolutePathsMap: ECMA_ScriptLogicProcessingRawSettingsNormalizer.
6515
+ createDirectoriesAliasesAndCorrespondingAbsolutePathsMap(typeScriptConfigurationFileAbsolutePath, typeScriptCompilerOptions),
6158
6516
  revisioning: RevisioningSettingsNormalizer_1.default.normalize({
6159
6517
  revisioningSettings__rawValid: entryPointsGroupSettings__rawValid.
6160
6518
  buildingModeDependent[this.consumingProjectBuildingMode].revisioning,
@@ -6204,6 +6562,24 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6204
6562
  }
6205
6563
  };
6206
6564
  }
6565
+ readAndCacheTypeScriptCompilerOptions({ typeScriptConfigurationFileAbsolutePath, typeScriptConfigurationFileRelativePath }) {
6566
+ const typeScriptCompilerOptions = TypeScriptSpecialist_1.default.
6567
+ readTypeScriptConfigurationFileAndGetCompilerOptions(typeScriptConfigurationFileAbsolutePath);
6568
+ this.cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions.set(typeScriptConfigurationFileRelativePath, typeScriptCompilerOptions);
6569
+ return typeScriptCompilerOptions;
6570
+ }
6571
+ static createDirectoriesAliasesAndCorrespondingAbsolutePathsMap(typeScriptConfigurationFileAbsolutePath, typeScriptCompilerOptions) {
6572
+ /* [ TypeScript theory ] If `baseUrl` has been specified in configuration file, once parsed, it will be the
6573
+ + absolute path herewith forward slashes path separators. */
6574
+ const typeScriptBasicAbsolutePath = typeScriptCompilerOptions.baseUrl ?? typeScriptConfigurationFileAbsolutePath;
6575
+ return new Map(Object.entries(typeScriptCompilerOptions.paths ?? {}).map(([rawAlias, rawPaths]) => [
6576
+ rawAlias.endsWith("/*") ? rawAlias.slice(0, -"/*".length) : rawAlias,
6577
+ rawPaths.map((rawPath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6578
+ typeScriptBasicAbsolutePath,
6579
+ ...rawPath.endsWith("/*") ? [rawPath.slice(0, -"/*".length)] : [rawPath]
6580
+ ], { alwaysForwardSlashSeparators: true }))
6581
+ ]));
6582
+ }
6207
6583
  }
6208
6584
  exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6209
6585
 
@@ -6627,77 +7003,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6627
7003
  };
6628
7004
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6629
7005
  const ECMA_ScriptLogicProcessingSharedState_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingSharedState */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingSharedState.ts"));
7006
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
7007
+ const ECMA_ScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist */ "./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts"));
6630
7008
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
6631
7009
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
6632
7010
  const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/WebpackConfigGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/WebpackConfigGenerator.ts"));
6633
7011
  const ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator.ts"));
6634
7012
  const ECMA_ScriptSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptSourceFilesWatcher.ts"));
6635
7013
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
7014
+ const SourceCodeSelectiveReprocessingHelper_1 = __importDefault(__webpack_require__(/*! @Utils/SourceCodeSelectiveReprocessingHelper */ "./Utils/SourceCodeSelectiveReprocessingHelper.ts"));
7015
+ const DotYDA_DirectoryManager_1 = __importDefault(__webpack_require__(/*! @Utils/DotYDA_DirectoryManager */ "./Utils/DotYDA_DirectoryManager.ts"));
6636
7016
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
6637
7017
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7018
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6638
7019
  class ECMA_ScriptLogicProcessor {
7020
+ static ENTRY_POINTS_AND_PARTIAL_FILES_MAPPING_CACHE_FILE_NAME_WITH_EXTENSION = "ECMA_ScriptEntryPointsAndAffiliatedFilesMappingCache.json";
6639
7021
  TASK_NAME_FOR_LOGGING = "ECMAScript logic processing";
6640
7022
  masterConfigRepresentative;
6641
7023
  ECMA_ScriptLogicProcessingConfigRepresentative;
7024
+ absolutePathOfFilesWaitingForReProcessing = new Set();
7025
+ sourceCodeSelectiveReprocessingHelper;
7026
+ subsequentFilesStateChangeTimeout = null;
6642
7027
  static provideLogicProcessingIfMust(projectBuildingMasterConfigRepresentative) {
6643
7028
  const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
6644
7029
  if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
6645
7030
  return (callback) => { callback(); };
6646
7031
  }
6647
7032
  const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessor(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6648
- const webpackConfigurationSets = WebpackConfigGenerator_1.default.
6649
- generateWebpackConfigurationForEachEntryPointsGroup(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6650
- return (callback) => {
7033
+ const webpackConfigurationsForExistingEntryPoints = [];
7034
+ const entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap = new Map();
7035
+ for (const [index, ECMA_ScriptLogicEntryPointsGroupSettings] of Array.from(ecmaScriptLogicProcessingSettingsRepresentative.relevantEntryPointsGroupsSettings.values()).entries()) {
7036
+ const entryPointsSourceFileAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(ECMA_ScriptLogicEntryPointsGroupSettings.sourceFilesGlobSelectors, { alwaysForwardSlashSeparators: true });
7037
+ if (entryPointsSourceFileAbsolutePaths.length === 0) {
7038
+ es_extensions_1.Logger.logWarning({
7039
+ title: "ECMAScript logic Entry Points Not Found",
7040
+ description: `No ECMAScript entry points has been found for group "${ECMA_ScriptLogicEntryPointsGroupSettings.ID}".` +
7041
+ "Please restart the project building once they will be added."
7042
+ });
7043
+ continue;
7044
+ }
7045
+ webpackConfigurationsForExistingEntryPoints.push(WebpackConfigGenerator_1.default.generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({
7046
+ entryPointsSourceFilesAbsolutePaths: entryPointsSourceFileAbsolutePaths,
7047
+ ECMA_ScriptLogicEntryPointsGroupSettings,
7048
+ ECMA_ScriptLogicProcessingConfigRepresentative: ecmaScriptLogicProcessingSettingsRepresentative,
7049
+ masterConfigRepresentative: projectBuildingMasterConfigRepresentative,
7050
+ mustProvideTypeScriptTypeChecking: index === 0
7051
+ }));
7052
+ (0, es_extensions_1.addMultiplePairsToMap)(entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap, entryPointsSourceFileAbsolutePaths.map((entryPointsSourceFileAbsolutePath) => [entryPointsSourceFileAbsolutePath, ECMA_ScriptLogicEntryPointsGroupSettings.ID]));
7053
+ }
7054
+ return (gulpCallback) => {
6651
7055
  try {
6652
7056
  /* [ Webpack theory ] Although there is no `null` hardError is type definitions, the `hardError` could be null. */
6653
- (0, webpack_1.default)(webpackConfigurationSets, (hardError, statistics) => {
6654
- if ((0, es_extensions_1.isNotUndefined)(statistics)) {
6655
- process.stdout.write(`${statistics.toString({ colors: true })}\n`);
6656
- }
6657
- let finalErrorMessageDynamicPart;
6658
- /* [ Webpack theory ] Even there is no hard error braking the build, there are could be the soft errors. */
6659
- const softErrors = (0, es_extensions_1.undefinedToEmptyArray)(statistics?.stats[0]?.compilation.errors);
6660
- if ((0, es_extensions_1.isNeitherUndefinedNorNull)(hardError)) {
6661
- finalErrorMessageDynamicPart = hardError.message;
6662
- }
6663
- else if (softErrors.length > 0) {
6664
- finalErrorMessageDynamicPart = softErrors.toString();
6665
- }
6666
- if ((0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
6667
- es_extensions_1.Logger.logError({
6668
- errorType: "ECMA_ScriptLogicProcessingError",
6669
- title: "ECMAScript logic processing error",
6670
- description: finalErrorMessageDynamicPart,
6671
- occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
6672
- });
6673
- node_notifier_1.default.notify({
6674
- title: "ECMAScript logic processing",
6675
- message: "Error has occurred. Please check the console."
6676
- });
6677
- }
6678
- if (dataHoldingSelfInstance.masterConfigRepresentative.mustProvideIncrementalBuilding) {
6679
- ECMA_ScriptSourceFilesWatcher_1.default.initializeIfRequiredAndGetInstance({
6680
- ecmaScriptLogicProcessingSettingsRepresentative: dataHoldingSelfInstance.
6681
- ECMA_ScriptLogicProcessingConfigRepresentative,
6682
- projectBuildingMasterConfigRepresentative: dataHoldingSelfInstance.masterConfigRepresentative
6683
- });
6684
- }
6685
- /** 〔 納品版のみ理由 〕 開発版で同じ事をすれば、gulpが落ちる */
6686
- if (!dataHoldingSelfInstance.masterConfigRepresentative.mustProvideIncrementalBuilding &&
6687
- (0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
6688
- es_extensions_1.Logger.logError({
6689
- errorType: "ECMA_ScriptLogicProcessingError",
6690
- title: "ECMAScript logic processing error",
6691
- description: "Unable to production build.",
6692
- occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
6693
- });
6694
- callback(new Error(finalErrorMessageDynamicPart));
6695
- }
6696
- else {
6697
- (0, es_extensions_1.addMultiplePairsToMap)(ECMA_ScriptLogicProcessingSharedState_1.default.sourceFilesAbsolutePathsAndOutputFilesActualPathsMap, ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1.default.generate(dataHoldingSelfInstance.ECMA_ScriptLogicProcessingConfigRepresentative));
6698
- callback();
6699
- }
6700
- });
7057
+ (0, webpack_1.default)(webpackConfigurationsForExistingEntryPoints, dataHoldingSelfInstance.generateWebpackCallback(gulpCallback));
6701
7058
  }
6702
7059
  catch (error) {
6703
7060
  /* [ Theory ] Once reached here, the Gulp tasks chain will collapse whatever will callback called to no. */
@@ -6715,6 +7072,103 @@ class ECMA_ScriptLogicProcessor {
6715
7072
  constructor(ecmaScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
6716
7073
  this.ECMA_ScriptLogicProcessingConfigRepresentative = ecmaScriptLogicProcessingConfigRepresentative;
6717
7074
  this.masterConfigRepresentative = masterConfigRepresentative;
7075
+ if (this.masterConfigRepresentative.mustProvideIncrementalBuilding) {
7076
+ this.sourceCodeSelectiveReprocessingHelper = new SourceCodeSelectiveReprocessingHelper_1.default({
7077
+ initialEntryPointsSourceFilesAbsolutePaths: this.ECMA_ScriptLogicProcessingConfigRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths,
7078
+ affiliatedFilesResolutionRules: {
7079
+ affiliatedFilesIncludingDeclarationsPatterns: ECMA_ScriptSpecialist_1.default.partialFilesIncludingDeclarationPatterns,
7080
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7081
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots
7082
+ },
7083
+ directoriesAliasesAndTheirAbsolutePatsMap: new Map(),
7084
+ isEntryPoint: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7085
+ isEntryPoint.
7086
+ bind(this.ECMA_ScriptLogicProcessingConfigRepresentative),
7087
+ logging: {
7088
+ mustEnable: this.ECMA_ScriptLogicProcessingConfigRepresentative.loggingSettings.
7089
+ partialFilesAndParentEntryPointsCorrespondence,
7090
+ targetFilesTypeInSingularForm: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7091
+ TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM
7092
+ },
7093
+ consumingProjectRootDirectoryAbsolutePath: this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
7094
+ cacheFileAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7095
+ DotYDA_DirectoryManager_1.default.OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH,
7096
+ ECMA_ScriptLogicProcessor.ENTRY_POINTS_AND_PARTIAL_FILES_MAPPING_CACHE_FILE_NAME_WITH_EXTENSION
7097
+ ])
7098
+ });
7099
+ ECMA_ScriptSourceFilesWatcher_1.default.
7100
+ initializeIfRequiredAndGetInstance({
7101
+ ecmaScriptLogicProcessingSettingsRepresentative: this.ECMA_ScriptLogicProcessingConfigRepresentative,
7102
+ projectBuildingMasterConfigRepresentative: this.masterConfigRepresentative
7103
+ }).
7104
+ addOnAnyEventRelatedWithActualFilesHandler({
7105
+ handlerID: "ON_ANY_EVENT_WITH_ECMA_SCRIPT_LOGIC_SOURCE_CODE_FILE--BY_ECMA_SCRIPT_LOGIC_PROCESSOR",
7106
+ handler: this.onSourceFilesWatcherEmittedAnyEvent.bind(this)
7107
+ });
7108
+ // TODO
7109
+ // addOnEntryPointFileAddedEventHandler({
7110
+ // handlerID: "ON_MARKUP_ENTRY_POINT_FILE_ADDED--BY_MARKUP_PROCESSOR",
7111
+ // handler: dataHoldingSelfInstance.onEntryPointFileAdded.bind(dataHoldingSelfInstance)
7112
+ // }).
7113
+ // addOnEntryPointFileDeletedEventHandler({
7114
+ // handlerID: "ON_MARKUP_ENTRY_POINT_FILE_DELETED--BY_MARKUP_PROCESSOR",
7115
+ // handler: MarkupProcessor.onEntryPointFileDeleted
7116
+ // });
7117
+ }
7118
+ }
7119
+ /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7120
+ onSourceFilesWatcherEmittedAnyEvent(targetFileAbsolutePath) {
7121
+ this.absolutePathOfFilesWaitingForReProcessing.add(targetFileAbsolutePath);
7122
+ if ((0, es_extensions_1.isNotNull)(this.subsequentFilesStateChangeTimeout)) {
7123
+ clearTimeout(this.subsequentFilesStateChangeTimeout);
7124
+ }
7125
+ this.subsequentFilesStateChangeTimeout = setTimeout(() => {
7126
+ const absolutePathOfEntryPointsWhichMustBeReprocessed = this.sourceCodeSelectiveReprocessingHelper?.getAbsolutePathsOfEntryPointsWhichMustBeProcessed(this.absolutePathOfFilesWaitingForReProcessing) ??
7127
+ [];
7128
+ this.absolutePathOfFilesWaitingForReProcessing.clear();
7129
+ }, (0, es_extensions_1.secondsToMilliseconds)(1));
7130
+ }
7131
+ generateWebpackCallback(gulpCallback) {
7132
+ return (hardError, statistics) => {
7133
+ if ((0, es_extensions_1.isNotUndefined)(statistics)) {
7134
+ process.stdout.write(`${statistics.toString({ colors: true })}\n`);
7135
+ }
7136
+ let finalErrorMessageDynamicPart;
7137
+ /* [ Webpack theory ] Even there is no hard error braking the build, there are could be the soft errors. */
7138
+ const softErrors = (0, es_extensions_1.undefinedToEmptyArray)(statistics?.stats[0]?.compilation.errors);
7139
+ if ((0, es_extensions_1.isNeitherUndefinedNorNull)(hardError)) {
7140
+ finalErrorMessageDynamicPart = hardError.message;
7141
+ }
7142
+ else if (softErrors.length > 0) {
7143
+ finalErrorMessageDynamicPart = softErrors.toString();
7144
+ }
7145
+ if ((0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7146
+ es_extensions_1.Logger.logError({
7147
+ errorType: "ECMA_ScriptLogicProcessingError",
7148
+ title: "ECMAScript logic processing error",
7149
+ description: finalErrorMessageDynamicPart,
7150
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7151
+ });
7152
+ node_notifier_1.default.notify({
7153
+ title: "ECMAScript logic processing",
7154
+ message: "Error has occurred. Please check the console."
7155
+ });
7156
+ }
7157
+ /** 〔 納品版のみ理由 〕 開発版で同じ事をすれば、gulpが落ちる */
7158
+ if (!this.masterConfigRepresentative.mustProvideIncrementalBuilding && (0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7159
+ es_extensions_1.Logger.logError({
7160
+ errorType: "ECMA_ScriptLogicProcessingError",
7161
+ title: "ECMAScript logic processing error",
7162
+ description: "Unable to production build.",
7163
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7164
+ });
7165
+ gulpCallback?.(new Error(finalErrorMessageDynamicPart));
7166
+ }
7167
+ else {
7168
+ (0, es_extensions_1.addMultiplePairsToMap)(ECMA_ScriptLogicProcessingSharedState_1.default.sourceFilesAbsolutePathsAndOutputFilesActualPathsMap, ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1.default.generate(this.ECMA_ScriptLogicProcessingConfigRepresentative));
7169
+ gulpCallback?.();
7170
+ }
7171
+ };
6718
7172
  }
6719
7173
  }
6720
7174
  exports["default"] = ECMA_ScriptLogicProcessor;
@@ -6781,7 +7235,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6781
7235
  const ECMA_ScriptSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptSourceFilesWatcher.ts"));
6782
7236
  /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
6783
7237
  const LinterLikeTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor.ts"));
6784
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
7238
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
6785
7239
  const ESLintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ESLintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/ESLintLinterSpecialist.ts"));
6786
7240
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
6787
7241
  const eslint_1 = __webpack_require__(/*! eslint */ "eslint");
@@ -7030,18 +7484,19 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7030
7484
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7031
7485
  targetArray: sourceCodeExplodedToLines,
7032
7486
  replacements: [
7033
- ...rawIssue.line === rawIssue.endLine ? [
7034
- {
7035
- index: rawIssue.line - 1,
7036
- newElement: (0, es_extensions_1.cropString)({
7037
- targetString: sourceCodeExplodedToLines[rawIssue.line - 1],
7038
- startingCharacterNumber__numerationFrom1: rawIssue.column,
7039
- endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7040
- rawIssue.endColumn : rawIssue.endColumn - 1,
7041
- mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7042
- })
7043
- }
7044
- ] : [
7487
+ ...rawIssue.line === rawIssue.endLine ?
7488
+ [
7489
+ {
7490
+ index: rawIssue.line - 1,
7491
+ newElement: (0, es_extensions_1.cropString)({
7492
+ targetString: sourceCodeExplodedToLines[rawIssue.line - 1],
7493
+ startingCharacterNumber__numerationFrom1: rawIssue.column,
7494
+ endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7495
+ rawIssue.endColumn : rawIssue.endColumn - 1,
7496
+ mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7497
+ })
7498
+ }
7499
+ ] : [
7045
7500
  {
7046
7501
  index: rawIssue.line - 1,
7047
7502
  newElement: (0, es_extensions_1.cropString)({
@@ -7051,16 +7506,19 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7051
7506
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7052
7507
  })
7053
7508
  },
7054
- {
7055
- index: rawIssue.endLine - 1,
7056
- newElement: (0, es_extensions_1.cropString)({
7057
- targetString: sourceCodeExplodedToLines[rawIssue.endLine - 1],
7058
- fromStart: true,
7059
- endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7060
- rawIssue.endColumn : rawIssue.endColumn - 1,
7061
- mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7062
- })
7063
- }
7509
+ ...rawIssue.endColumn > 1 ?
7510
+ [
7511
+ {
7512
+ index: rawIssue.endLine - 1,
7513
+ newElement: (0, es_extensions_1.cropString)({
7514
+ targetString: sourceCodeExplodedToLines[rawIssue.endLine - 1],
7515
+ fromStart: true,
7516
+ endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7517
+ rawIssue.endColumn : rawIssue.endColumn - 1,
7518
+ mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7519
+ })
7520
+ }
7521
+ ] : []
7064
7522
  ]
7065
7523
  ]
7066
7524
  }),
@@ -7289,105 +7747,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7289
7747
  return (mod && mod.__esModule) ? mod : { "default": mod };
7290
7748
  };
7291
7749
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7292
- /* --- Restrictions ------------------------------------------------------------------------------------------------- */
7750
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
7293
7751
  const ECMA_ScriptLogicProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRestrictions.ts"));
7294
7752
  var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1.default.SupportedECMA_ScriptRuntimesTypes;
7295
- /* --- Third-party solutions specialises ---------------------------------------------------------------------------- */
7753
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
7296
7754
  const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/WebpackSpecialist */ "./ThirdPartySolutionsSpecialists/WebpackSpecialist.ts"));
7297
7755
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
7298
- /* --- Applied utils ------------------------------------------------------------------------------------------------ */
7756
+ /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7299
7757
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
7300
7758
  const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
7301
7759
  const fork_ts_checker_webpack_plugin_1 = __importDefault(__webpack_require__(/*! fork-ts-checker-webpack-plugin */ "fork-ts-checker-webpack-plugin"));
7302
7760
  const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
7303
- /* --- General utils ------------------------------------------------------------------------------------------------ */
7304
- const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
7305
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7306
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7307
- class WebpackConfigGenerator {
7308
- ECMA_ScriptLogicProcessingConfigRepresentative;
7309
- masterConfigRepresentative;
7310
- typeScriptConfigurations = {};
7311
- hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided = false;
7312
- static generateWebpackConfigurationForEachEntryPointsGroup(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
7313
- const dataHoldingSelfInstance = new WebpackConfigGenerator(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative);
7314
- const webpackConfigurationForEachEntryPointsGroup = [];
7315
- for (const ECMA_ScriptLogicEntryPointsGroupSettings of dataHoldingSelfInstance.ECMA_ScriptLogicProcessingConfigRepresentative.relevantEntryPointsGroupsSettings.values()) {
7316
- const webpackConfiguration = dataHoldingSelfInstance.
7317
- generateSingleWebpackConfigurationIfAtLeastOneTargetEntryPointFileExists(ECMA_ScriptLogicEntryPointsGroupSettings);
7318
- if ((0, es_extensions_1.isNotNull)(webpackConfiguration)) {
7319
- webpackConfigurationForEachEntryPointsGroup.push(webpackConfiguration);
7320
- dataHoldingSelfInstance.hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided = true;
7321
- }
7322
- }
7323
- return webpackConfigurationForEachEntryPointsGroup;
7324
- }
7325
- static getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({ sourceFilesGlobSelectors, entryPointsGroupID_ForLogging, webpackContext }) {
7326
- /* [ Reference ] https://webpack.js.org/configuration/entry-context/#entry */
7327
- const webpackEntryPoints__objectSyntax = {};
7328
- const targetEntryPointsSourceFilesAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.
7329
- getFilesAbsolutePathsSynchronously(sourceFilesGlobSelectors);
7330
- if (targetEntryPointsSourceFilesAbsolutePaths.length === 0) {
7331
- es_extensions_1.Logger.logWarning({
7332
- title: "Restarting may required",
7333
- description: `No files has been found for the ECMAScript entry points group with id "${entryPointsGroupID_ForLogging}". ` +
7334
- "Please restart the building once these files will be added"
7335
- });
7336
- return null;
7337
- }
7338
- WebpackConfigGenerator.
7339
- checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(targetEntryPointsSourceFilesAbsolutePaths);
7340
- for (const entryPointSourceFileAbsolutePath of targetEntryPointsSourceFilesAbsolutePaths) {
7341
- const targetSourceFilePathRelativeToSourceEntryPointsTopDirectory = es_extensions_nodejs_1.ImprovedPath.
7342
- computeRelativePath({
7343
- comparedPath: entryPointSourceFileAbsolutePath,
7344
- basePath: webpackContext
7345
- });
7346
- const outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory = (0, es_extensions_1.removeAllFileNameExtensions)(targetSourceFilePathRelativeToSourceEntryPointsTopDirectory);
7347
- /* [ Webpack theory ] The key must be the output path without filename extension relative to 'output.path'.
7348
- * The value must the source file path (relative or absolute), for example
7349
- * { 'HikariFrontend/StarterPugTemplate/StarterPugTemplate':
7350
- * 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/HikariFrontend/StarterPugTemplate.ts',
7351
- * 'Minimal': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/Minimal.ts',
7352
- * 'TopPage': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/TopPage.ts'
7353
- * } */
7354
- webpackEntryPoints__objectSyntax[outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory] = entryPointSourceFileAbsolutePath;
7355
- }
7356
- return webpackEntryPoints__objectSyntax;
7357
- }
7358
- constructor(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
7359
- this.ECMA_ScriptLogicProcessingConfigRepresentative = ECMA_ScriptLogicProcessingConfigRepresentative;
7360
- this.masterConfigRepresentative = masterConfigRepresentative;
7361
- }
7362
- generateSingleWebpackConfigurationIfAtLeastOneTargetEntryPointFileExists(entryPointsGroupSettings) {
7761
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7762
+ const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
7763
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7764
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7765
+ /* [ Approach ] Because of serious performance impact, the file watching has been delegated to external watcher. */
7766
+ class WebpackConfigGenerator {
7767
+ static cachedTypeScriptConfigurations = {};
7768
+ /* [ Approach ] Although the parameter is excessive, its properties are been pre-computed externally for other needs,
7769
+ * so no need to compute them again. */
7770
+ static generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({ entryPointsSourceFilesAbsolutePaths, ECMA_ScriptLogicEntryPointsGroupSettings: entryPointsGroupSettings, ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative, mustProvideTypeScriptTypeChecking }) {
7363
7771
  /* [ Reference ] https://webpack.js.org/configuration/entry-context/#context */
7364
7772
  const sourceFilesTopDirectoryAbsolutePath = entryPointsGroupSettings.sourceFilesTopDirectoryAbsolutePath;
7365
7773
  /** @see https://webpack.js.org/configuration/entry-context/#entry */
7366
- const webpackEntryPointsDefinition = WebpackConfigGenerator.getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
7367
- entryPointsGroupID_ForLogging: entryPointsGroupSettings.ID,
7368
- sourceFilesGlobSelectors: entryPointsGroupSettings.sourceFilesGlobSelectors,
7369
- webpackContext: sourceFilesTopDirectoryAbsolutePath
7370
- });
7371
- if ((0, es_extensions_1.isNull)(webpackEntryPointsDefinition)) {
7372
- es_extensions_1.Logger.logWarning({
7373
- title: "Empty entry point group",
7374
- description: `No files has been found for the group '${entryPointsGroupSettings.ID}' of ECMAScript ` +
7375
- "entry points. Please restart the build once new files will be added."
7376
- });
7377
- return null;
7378
- }
7774
+ const webpackEntryPointsDefinition = WebpackConfigGenerator.getWebpackEntryObjectRespectiveToExistingEntryPoints({ entryPointsSourceFilesAbsolutePaths, webpackContext: sourceFilesTopDirectoryAbsolutePath });
7379
7775
  let typeScriptCompilerOptions;
7380
- const cachedTypeScriptCompilerOptions = this.
7381
- typeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath];
7776
+ const cachedTypeScriptCompilerOptions = WebpackConfigGenerator.
7777
+ cachedTypeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath];
7382
7778
  if ((0, es_extensions_1.isUndefined)(cachedTypeScriptCompilerOptions)) {
7383
7779
  typeScriptCompilerOptions = TypeScriptSpecialist_1.default.readTypeScriptConfigurationFileAndGetCompilerOptions(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath);
7384
- this.typeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath] =
7780
+ this.cachedTypeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath] =
7385
7781
  typeScriptCompilerOptions;
7386
7782
  }
7387
7783
  else {
7388
7784
  typeScriptCompilerOptions = cachedTypeScriptCompilerOptions;
7389
7785
  }
7390
- const webpackPublicPath = this.computePublicPathIfPossible(entryPointsGroupSettings);
7786
+ const webpackPublicPath = WebpackConfigGenerator.computePublicPath(entryPointsGroupSettings, masterConfigRepresentative);
7391
7787
  const willBrowserJS_LibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
7392
7788
  entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.browser;
7393
7789
  const willNodeJS_LibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
@@ -7395,6 +7791,7 @@ class WebpackConfigGenerator {
7395
7791
  const willPugLibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
7396
7792
  entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.pug;
7397
7793
  const distributingSettings = entryPointsGroupSettings.distributing;
7794
+ // entryPointsGroupSettings.directoriesAliasesAndCorrespondingAbsolutePathsMap
7398
7795
  return {
7399
7796
  name: entryPointsGroupSettings.ID,
7400
7797
  /* [ Webpack theory ] In this case, path separators must be operating system dependent, otherwise following error
@@ -7463,20 +7860,12 @@ class WebpackConfigGenerator {
7463
7860
  }, {})
7464
7861
  } : null,
7465
7862
  ...willBrowserJS_LibraryBeBuilt ? { experiments: { outputModule: true } } : null,
7466
- mode: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7467
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
7863
+ mode: masterConfigRepresentative.mustProvideIncrementalBuilding ?
7468
7864
  "development" : "production",
7469
- watch: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7470
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
7471
- watchOptions: {
7472
- ignored: ["node_modules"]
7473
- },
7474
7865
  /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
7475
7866
  * faster alternatives including "eval" could cause the errors related with security.
7476
7867
  * See https://stackoverflow.com/a/49100966. */
7477
- devtool: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7478
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
7479
- "cheap-module-source-map" : false,
7868
+ devtool: masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false,
7480
7869
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
7481
7870
  node: {
7482
7871
  __dirname: true,
@@ -7485,7 +7874,7 @@ class WebpackConfigGenerator {
7485
7874
  } : null,
7486
7875
  module: {
7487
7876
  rules: [
7488
- /* --- Logic ---------------------------------------------------------------------------------------------- */
7877
+ /* ━━━ Logic ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7489
7878
  {
7490
7879
  test: /\.tsx?$/u,
7491
7880
  loader: "ts-loader",
@@ -7500,7 +7889,7 @@ class WebpackConfigGenerator {
7500
7889
  test: /\.vue$/u,
7501
7890
  loader: "vue-loader"
7502
7891
  },
7503
- /* --- Data ----------------------------------------------------------------------------------------------- */
7892
+ /* ━━━ Data ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7504
7893
  {
7505
7894
  test: /\.json5$/u,
7506
7895
  loader: "json5-loader"
@@ -7509,7 +7898,7 @@ class WebpackConfigGenerator {
7509
7898
  test: /\.(?:yml|yaml)$/u,
7510
7899
  use: ["yaml-loader"]
7511
7900
  },
7512
- /* --- Markup --------------------------------------------------------------------------------------------- */
7901
+ /* ━━━ Markup ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7513
7902
  {
7514
7903
  test: /\.pug$/u,
7515
7904
  oneOf: [
@@ -7533,7 +7922,7 @@ class WebpackConfigGenerator {
7533
7922
  }
7534
7923
  ]
7535
7924
  },
7536
- /* --- 意匠設計記法 ----------------------------------------------------------------------------------------- */
7925
+ /* ━━━ Styles ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7537
7926
  {
7538
7927
  test: /\.css$/u,
7539
7928
  oneOf: [
@@ -7580,12 +7969,12 @@ class WebpackConfigGenerator {
7580
7969
  ]
7581
7970
  },
7582
7971
  resolve: {
7583
- extensions: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7972
+ extensions: ECMA_ScriptLogicProcessingConfigRepresentative.
7584
7973
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
7585
7974
  map((fileNameExtensionWithoutDot) => `.${fileNameExtensionWithoutDot}`),
7586
7975
  alias: {
7587
- ...WebpackSpecialist_1.default.
7588
- convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
7976
+ //
7977
+ ...WebpackSpecialist_1.default.convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
7589
7978
  typeScriptPathsSettings: typeScriptCompilerOptions.paths,
7590
7979
  typeScriptBasicAbsolutePath: typeScriptCompilerOptions.baseUrl ??
7591
7980
  es_extensions_nodejs_1.ImprovedPath.extractDirectoryFromFilePath({
@@ -7603,16 +7992,16 @@ class WebpackConfigGenerator {
7603
7992
  }
7604
7993
  },
7605
7994
  resolveLoader: WebpackSpecialist_1.default.
7606
- generateLoadersResolvingSettings(this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath),
7995
+ generateLoadersResolvingSettings(masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath),
7607
7996
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
7608
7997
  externals: [(0, webpack_node_externals_1.default)()]
7609
7998
  } : null,
7610
7999
  plugins: [
7611
8000
  new webpack_1.default.DefinePlugin({
7612
- __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
7613
- __IS_TESTING_BUILDING_MODE__: this.masterConfigRepresentative.isTestingBuildingMode,
7614
- __IS_STAGING_BUILDING_MODE__: this.masterConfigRepresentative.isStagingBuildingMode,
7615
- __IS_PRODUCTION_BUILDING_MODE__: this.masterConfigRepresentative.isProductionBuildingMode,
8001
+ __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: masterConfigRepresentative.isLocalDevelopmentBuildingMode,
8002
+ __IS_TESTING_BUILDING_MODE__: masterConfigRepresentative.isTestingBuildingMode,
8003
+ __IS_STAGING_BUILDING_MODE__: masterConfigRepresentative.isStagingBuildingMode,
8004
+ __IS_PRODUCTION_BUILDING_MODE__: masterConfigRepresentative.isProductionBuildingMode,
7616
8005
  /* [ Theory ] Settings for the Vue 3 which must be defined explicitly.
7617
8006
  * https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags */
7618
8007
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.browser ? {
@@ -7621,8 +8010,8 @@ class WebpackConfigGenerator {
7621
8010
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
7622
8011
  } : null
7623
8012
  }),
7624
- ...this.hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided ?
7625
- [] :
8013
+ /* < === Temporary ========================================================================================== */
8014
+ ...mustProvideTypeScriptTypeChecking ?
7626
8015
  [
7627
8016
  new fork_ts_checker_webpack_plugin_1.default({
7628
8017
  typescript: {
@@ -7636,21 +8025,44 @@ class WebpackConfigGenerator {
7636
8025
  }
7637
8026
  }
7638
8027
  })
7639
- ],
8028
+ ] :
8029
+ [],
8030
+ /* === Temporary > ========================================================================================== */
7640
8031
  new vue_loader_1.VueLoaderPlugin()
7641
8032
  ],
7642
8033
  optimization: {
7643
- minimize: this.masterConfigRepresentative.isStagingBuildingMode ||
7644
- this.masterConfigRepresentative.isProductionBuildingMode,
7645
- emitOnErrors: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7646
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode
8034
+ minimize: !masterConfigRepresentative.mustProvideIncrementalBuilding,
8035
+ emitOnErrors: masterConfigRepresentative.mustProvideIncrementalBuilding
7647
8036
  }
7648
8037
  };
7649
8038
  }
8039
+ static getWebpackEntryObjectRespectiveToExistingEntryPoints({ entryPointsSourceFilesAbsolutePaths, webpackContext }) {
8040
+ /* [ Reference ] https://webpack.js.org/configuration/entry-context/#entry */
8041
+ const webpackEntryPoints__objectSyntax = {};
8042
+ WebpackConfigGenerator.
8043
+ checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(entryPointsSourceFilesAbsolutePaths);
8044
+ for (const entryPointSourceFileAbsolutePath of entryPointsSourceFilesAbsolutePaths) {
8045
+ const targetSourceFilePathRelativeToSourceEntryPointsTopDirectory = es_extensions_nodejs_1.ImprovedPath.
8046
+ computeRelativePath({
8047
+ comparedPath: entryPointSourceFileAbsolutePath,
8048
+ basePath: webpackContext
8049
+ });
8050
+ const outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory = (0, es_extensions_1.removeAllFileNameExtensions)(targetSourceFilePathRelativeToSourceEntryPointsTopDirectory);
8051
+ /* [ Webpack theory ] The key must be the output path without filename extension relative to 'output.path'.
8052
+ * The value must the source file path (relative or absolute), for example
8053
+ * { 'HikariFrontend/StarterPugTemplate/StarterPugTemplate':
8054
+ * 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/HikariFrontend/StarterPugTemplate.ts',
8055
+ * 'Minimal': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/Minimal.ts',
8056
+ * 'TopPage': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/TopPage.ts'
8057
+ * } */
8058
+ webpackEntryPoints__objectSyntax[outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory] = entryPointSourceFileAbsolutePath;
8059
+ }
8060
+ return webpackEntryPoints__objectSyntax;
8061
+ }
7650
8062
  /* [ Webpack theory ] 'publicPath' computing
7651
8063
  *
7652
- * 1. For the production building mode, just "/" is enough.
7653
- * For the development building mode, everything must work without development server otherwise the customer
8064
+ * 1. For the production-like building modes, just "/" is enough.
8065
+ * For the incremental building modes, everything must work without development server otherwise the customer
7654
8066
  * could not check the application just by opening the HTML files ("/" will be resolved to the root of current hard drive).
7655
8067
  * The known solution is the relative path: it is required to match the path where Webpack chunks are being outputted
7656
8068
  * and the path where Webpack chunks are being searched (initially it could be different paths).
@@ -7665,12 +8077,10 @@ class WebpackConfigGenerator {
7665
8077
  * 3. Chunks will be searched in
7666
8078
  * [ path at search string of browser ] + publicPath + chunkFilename
7667
8079
  * */
7668
- computePublicPathIfPossible(ECMA_ScriptLogicEntryPointsGroupSettings__normalized) {
7669
- if (!this.masterConfigRepresentative.isStaticPreviewBuildingMode &&
7670
- !this.masterConfigRepresentative.isLocalDevelopmentBuildingMode) {
7671
- return "/";
7672
- }
7673
- return ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID.replace(ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID, "/");
8080
+ static computePublicPath(ECMA_ScriptLogicEntryPointsGroupSettings__normalized, masterConfigRepresentative) {
8081
+ return masterConfigRepresentative.mustProvideIncrementalBuilding ?
8082
+ ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID.replace(ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID, "/") :
8083
+ "/";
7674
8084
  }
7675
8085
  static checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(entryPointsSourceFilesAbsolutePaths) {
7676
8086
  const entryPointsSourceFiles = new Set();
@@ -7823,6 +8233,7 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
7823
8233
  sourceCodeLintingCommonSettings;
7824
8234
  importingFromTypeScriptSettings;
7825
8235
  staticPreviewSettings;
8236
+ routingSettings;
7826
8237
  relevantEntryPointsGroupsSettings;
7827
8238
  loggingSettings;
7828
8239
  mustValidateHTML;
@@ -7834,6 +8245,7 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
7834
8245
  this.sourceCodeLintingCommonSettings = normalizedMarkupProcessingSettings.linting;
7835
8246
  this.importingFromTypeScriptSettings = normalizedMarkupProcessingSettings.importingFromTypeScript;
7836
8247
  this.staticPreviewSettings = normalizedMarkupProcessingSettings.staticPreview;
8248
+ this.routingSettings = normalizedMarkupProcessingSettings.routing;
7837
8249
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
7838
8250
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
7839
8251
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
@@ -8089,6 +8501,35 @@ var MarkupProcessingSettings__FromFile__RawValid;
8089
8501
  }
8090
8502
  }
8091
8503
  },
8504
+ routing: {
8505
+ type: Object,
8506
+ required: false,
8507
+ preValidationModifications: es_extensions_1.nullToUndefined,
8508
+ properties: {
8509
+ $specificationFileRelativePath: {
8510
+ newName: "specificationFileRelativePath",
8511
+ type: String,
8512
+ required: true,
8513
+ minimalCharactersCount: 1
8514
+ },
8515
+ $variable: {
8516
+ newName: "variable",
8517
+ type: String,
8518
+ required: true,
8519
+ minimalCharactersCount: 1
8520
+ },
8521
+ $localizations: {
8522
+ newName: "localizations",
8523
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
8524
+ required: false,
8525
+ preValidationModifications: es_extensions_1.nullToUndefined,
8526
+ value: {
8527
+ type: String,
8528
+ minimalCharactersCount: 1
8529
+ }
8530
+ }
8531
+ }
8532
+ },
8092
8533
  ...SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification({
8093
8534
  sourceCodeProcessingSettingsGenericPropertiesLocalization,
8094
8535
  localizedConsumingProjectLocalizedPreDefinedBuildingModes,
@@ -8335,7 +8776,7 @@ const gulp_if_1 = __importDefault(__webpack_require__(/*! gulp-if */ "gulp-if"))
8335
8776
  const gulp_data_1 = __importDefault(__webpack_require__(/*! gulp-data */ "gulp-data"));
8336
8777
  const gulp_pug_1 = __importDefault(__webpack_require__(/*! gulp-pug */ "gulp-pug"));
8337
8778
  const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-prettify */ "gulp-html-prettify"));
8338
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
8779
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
8339
8780
  const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist.ts"));
8340
8781
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
8341
8782
  const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
@@ -8490,7 +8931,10 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8490
8931
  __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode,
8491
8932
  __IS_TESTING_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isTestingBuildingMode,
8492
8933
  __IS_STAGING_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isStagingBuildingMode,
8493
- __IS_PRODUCTION_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isProductionBuildingMode
8934
+ __IS_PRODUCTION_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isProductionBuildingMode,
8935
+ ...(0, es_extensions_1.isNotUndefined)(this.markupProcessingSettingsRepresentative.routingSettings) ? {
8936
+ [this.markupProcessingSettingsRepresentative.routingSettings.variable]: this.markupProcessingSettingsRepresentative.routingSettings.routes
8937
+ } : null
8494
8938
  },
8495
8939
  filters: {
8496
8940
  html_special_characters_to_html_entities: MarkupProcessor.convertApplicableCharactersToHTML_Entities,
@@ -9513,12 +9957,9 @@ const accessibilityInspectorLocalization__english = {
9513
9957
  generateInspectionOfSingleFilesHasFinishedWithNoIssuesFoundSuccessLog: ({ targetFileRelativePath, secondsElapsed }) => ({
9514
9958
  title: "HTML code accessibility cheking of single file has finished with no issues found",
9515
9959
  description: `The HTML code in file "${targetFileRelativePath}" has no the accessibility issues.\n` +
9516
- `${
9517
- /* eslint-disable-next-line @typescript-eslint/no-useless-template-literals --
9518
- * テンプレートリテラルを無くすと、「+」の前の部分が無くなっていまう。 */
9519
9960
  (0, es_extensions_1.isUndefined)(secondsElapsed) ?
9520
- "(Cached result, no changes in output HTML code since last building)" :
9521
- `${secondsElapsed} seconds taken.`}`
9961
+ "(Cached result, no changes in output HTML code since last building)" :
9962
+ `${secondsElapsed} seconds taken.`
9522
9963
  }),
9523
9964
  generateIssuesFoundInSingleFileErrorLog: ({ targetFileRelativePath, formattedErrorsAndWarnings }) => ({
9524
9965
  title: "HTML accessibility inspection, issue(s) found",
@@ -10170,12 +10611,9 @@ const HTML_ValidatorLocalization__english = {
10170
10611
  generateValidationOfSingleFilesHasFinishedWithNoIssuesFoundSuccessLog: ({ targetFileRelativePath, secondsElapsed }) => ({
10171
10612
  title: "HTML validation of single file has finished with no issues found",
10172
10613
  description: `File "${targetFileRelativePath}" is fully obeying to W3C rules and recommendations.\n` +
10173
- `${
10174
- /* eslint-disable-next-line @typescript-eslint/no-useless-template-literals --
10175
- * テンプレートリテラルを無くすと、「+」の前の部分が無くなっていまう。 */
10176
10614
  (0, es_extensions_1.isUndefined)(secondsElapsed) ?
10177
- "(Cached result, no changes in output HTML code since last building)" :
10178
- `${secondsElapsed} seconds taken.`}`
10615
+ "(Cached result, no changes in output HTML code since last building)" :
10616
+ `${secondsElapsed} seconds taken.`
10179
10617
  }),
10180
10618
  generateIssuesFoundInSingleFileErrorLog: ({ targetFileRelativePath, formattedErrorsAndWarnings }) => ({
10181
10619
  title: "HTML validation, issue(s) found",
@@ -11141,6 +11579,7 @@ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*!
11141
11579
  const MarkupProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettings__Default.ts"));
11142
11580
  /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
11143
11581
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
11582
+ const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
11144
11583
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
11145
11584
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
11146
11585
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
@@ -11178,6 +11617,16 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
11178
11617
  normalizeStaticPreviewStateDependentPageVariationsSpecification(),
11179
11618
  importsFromStaticDataFiles: dataHoldingSelfInstance.normalizeImportsFromStaticDataFiles()
11180
11619
  },
11620
+ ...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.routing) ? {
11621
+ routing: {
11622
+ variable: markupProcessingSettings__fromFile__rawValid.routing.variable,
11623
+ routes: RoutingSettingsNormalizer_1.default.normalize({
11624
+ routingSettings__fromFile__rawValid: markupProcessingSettings__fromFile__rawValid.routing,
11625
+ projectRootDirectoryAbsolutePath: commonSettings__normalized.projectRootDirectoryAbsolutePath,
11626
+ absolutePathsOfSectioningToCache: new Set() // TODO Replace mock
11627
+ })
11628
+ }
11629
+ } : null,
11181
11630
  relevantEntryPointsGroups: dataHoldingSelfInstance.createNormalizedEntryPointsGroupsSettings(markupProcessingSettings__fromFile__rawValid.entryPointsGroups, dataHoldingSelfInstance.
11182
11631
  completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings.
11183
11632
  bind(dataHoldingSelfInstance)),
@@ -11537,6 +11986,403 @@ const markupProcessingRawSettingsNormalizerLocalization__english = {
11537
11986
  exports["default"] = markupProcessingRawSettingsNormalizerLocalization__english;
11538
11987
 
11539
11988
 
11989
+ /***/ }),
11990
+
11991
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts":
11992
+ /*!********************************************************************************************************!*\
11993
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts ***!
11994
+ \********************************************************************************************************/
11995
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11996
+
11997
+
11998
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
11999
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12000
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12001
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
12002
+ class RoutingSettingsNormalizer {
12003
+ static routingPathSegments = [];
12004
+ static projectRootDirectoryAbsolutePath;
12005
+ static cachedAbsolutePathsOfSectioning = new Set();
12006
+ static normalize({ routingSettings__fromFile__rawValid, projectRootDirectoryAbsolutePath, absolutePathsOfSectioningToCache }) {
12007
+ RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning = absolutePathsOfSectioningToCache;
12008
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath = projectRootDirectoryAbsolutePath;
12009
+ const rawRouting = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12010
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12011
+ projectRootDirectoryAbsolutePath, routingSettings__fromFile__rawValid.specificationFileRelativePath
12012
+ ]),
12013
+ synchronously: true,
12014
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12015
+ });
12016
+ const rawLocalizations = {};
12017
+ for (const [locale, localizationFileRelativePath] of Object.entries(routingSettings__fromFile__rawValid.localizations ?? {})) {
12018
+ const routingLocalizationFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectRootDirectoryAbsolutePath, localizationFileRelativePath], { alwaysForwardSlashSeparators: true });
12019
+ const routingLocalization = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12020
+ filePath: routingLocalizationFileAbsolutePath,
12021
+ synchronously: true,
12022
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12023
+ });
12024
+ if (!(0, es_extensions_1.isArbitraryObject)(routingLocalization)) {
12025
+ es_extensions_1.Logger.throwErrorAndLog({
12026
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12027
+ customMessage: `Malformed routing localization at "${routingLocalizationFileAbsolutePath}".`
12028
+ }),
12029
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12030
+ occurrenceLocation: "RoutingSettingsNormalizer.normalize(compoundParameter)"
12031
+ });
12032
+ }
12033
+ rawLocalizations[locale] = routingLocalization;
12034
+ }
12035
+ if (Object.entries(rawLocalizations).length === 0) {
12036
+ return RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12037
+ rawRoutingOfSpecificDepthLevel: rawRouting,
12038
+ outputWorkpiece: {}
12039
+ });
12040
+ }
12041
+ const normalizedRoutingWorkpiece = {};
12042
+ for (const locale of Object.keys(rawLocalizations)) {
12043
+ normalizedRoutingWorkpiece[locale] = {};
12044
+ RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12045
+ rawRoutingOfSpecificDepthLevel: rawRouting,
12046
+ outputWorkpiece: normalizedRoutingWorkpiece[locale],
12047
+ localization: {
12048
+ locale,
12049
+ strings: rawLocalizations[locale]
12050
+ }
12051
+ });
12052
+ }
12053
+ RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning = new Set();
12054
+ return normalizedRoutingWorkpiece;
12055
+ }
12056
+ static normalizeDepthLevelWiseRecursively({ rawRoutingOfSpecificDepthLevel, outputWorkpiece, localization }) {
12057
+ if (!(0, es_extensions_1.isArbitraryObject)(rawRoutingOfSpecificDepthLevel)) {
12058
+ es_extensions_1.Logger.throwErrorAndLog({
12059
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12060
+ customMessage: [
12061
+ "Malformed routing",
12062
+ RoutingSettingsNormalizer.routingPathSegments.length > 0 ?
12063
+ [` at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}"`] : [],
12064
+ ". ",
12065
+ `Must be an object while ${typeof rawRoutingOfSpecificDepthLevel} found.`
12066
+ ].join(" ")
12067
+ }),
12068
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12069
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12070
+ });
12071
+ }
12072
+ RoutingSettingsNormalizer.routingPathSegments.push(RoutingSettingsNormalizer.routingPathSegments.length === 0 ? "" : "$children");
12073
+ for (const [routeKey, rawRoute] of Object.entries(rawRoutingOfSpecificDepthLevel)) {
12074
+ RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = routeKey;
12075
+ if (!(0, es_extensions_1.isArbitraryObject)(rawRoute)) {
12076
+ es_extensions_1.Logger.throwErrorAndLog({
12077
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12078
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
12079
+ `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawRoute)} found.`
12080
+ }),
12081
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12082
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12083
+ });
12084
+ }
12085
+ const routeURI = RoutingSettingsNormalizer.normalizeURI_IfExists(rawRoute.$URI, localization);
12086
+ outputWorkpiece[routeKey] = {
12087
+ $heading: RoutingSettingsNormalizer.normalizeHeading(rawRoute.$heading, localization),
12088
+ ...(0, es_extensions_1.isNotNull)(routeURI) ? { $URI: routeURI } : null,
12089
+ ...(0, es_extensions_1.isArbitraryObject)(rawRoute.$children) ? {
12090
+ $children: RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12091
+ rawRoutingOfSpecificDepthLevel: rawRoute.$children,
12092
+ outputWorkpiece: {},
12093
+ localization
12094
+ })
12095
+ } : null,
12096
+ // TODO ========================================================================================================
12097
+ ...(0, es_extensions_1.isArbitraryObject)(rawRoute.$sectioning) ? {
12098
+ $sectioning: RoutingSettingsNormalizer.normalizeSectioning(rawRoute.$sectioning, routeURI, localization)
12099
+ } : null
12100
+ };
12101
+ }
12102
+ RoutingSettingsNormalizer.routingPathSegments.pop();
12103
+ return outputWorkpiece;
12104
+ }
12105
+ static normalizeURI_IfExists(rawURI, localization) {
12106
+ if ((0, es_extensions_1.isEitherUndefinedOrNull)(rawURI)) {
12107
+ return null;
12108
+ }
12109
+ if (!(0, es_extensions_1.isString)(rawURI)) {
12110
+ es_extensions_1.Logger.throwErrorAndLog({
12111
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12112
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12113
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawURI)} found.`
12114
+ }),
12115
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12116
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12117
+ });
12118
+ }
12119
+ let URI_Workpiece = rawURI;
12120
+ if (URI_Workpiece.startsWith("`")) {
12121
+ if ((0, es_extensions_1.isUndefined)(localization)) {
12122
+ es_extensions_1.Logger.throwErrorAndLog({
12123
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12124
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12125
+ "The specified URI has been wrapped to backticks while no localization specified."
12126
+ }),
12127
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12128
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12129
+ });
12130
+ }
12131
+ URI_Workpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12132
+ targetString: URI_Workpiece,
12133
+ targetCharacter: "`",
12134
+ fromFirstPosition: true
12135
+ });
12136
+ URI_Workpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12137
+ targetString: URI_Workpiece,
12138
+ targetCharacter: "`",
12139
+ fromLastPosition: true
12140
+ });
12141
+ if (URI_Workpiece.includes("${")) {
12142
+ URI_Workpiece = (0, es_extensions_1.replaceMatchesWithRegularExpressionToDynamicValue)({
12143
+ targetString: URI_Workpiece,
12144
+ regularExpressionWithCapturingGroups: /(?<interpolation>\$\{\s*(?<variable>(?:\w|\.)+)\s*\})/gum,
12145
+ replacer(matching) {
12146
+ const variableSubstitution = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, matching.namedCapturingGroups.variable);
12147
+ if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution)) {
12148
+ return null;
12149
+ }
12150
+ return String(variableSubstitution);
12151
+ }
12152
+ });
12153
+ }
12154
+ if (URI_Workpiece.includes("$")) {
12155
+ const localeDependentURI = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, URI_Workpiece);
12156
+ if (!(0, es_extensions_1.isString)(localeDependentURI)) {
12157
+ es_extensions_1.Logger.throwErrorAndLog({
12158
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12159
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12160
+ "The specified URI is including backticks while no localization specified."
12161
+ }),
12162
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12163
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12164
+ });
12165
+ }
12166
+ return localeDependentURI;
12167
+ }
12168
+ }
12169
+ return URI_Workpiece;
12170
+ }
12171
+ static normalizeHeading(rawHeading, localization) {
12172
+ if (!(0, es_extensions_1.isString)(rawHeading)) {
12173
+ es_extensions_1.Logger.throwErrorAndLog({
12174
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12175
+ customMessage: [
12176
+ `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
12177
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawHeading)} found.`
12178
+ ].join(" ")
12179
+ }),
12180
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12181
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12182
+ });
12183
+ }
12184
+ let headingWorkpiece = rawHeading;
12185
+ if (headingWorkpiece.startsWith("`")) {
12186
+ if ((0, es_extensions_1.isEitherUndefinedOrNull)(localization)) {
12187
+ es_extensions_1.Logger.throwErrorAndLog({
12188
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12189
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".` +
12190
+ "The specified URI is including backticks while no localization specified."
12191
+ }),
12192
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12193
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12194
+ });
12195
+ }
12196
+ headingWorkpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12197
+ targetString: headingWorkpiece,
12198
+ targetCharacter: "`",
12199
+ fromFirstPosition: true
12200
+ });
12201
+ headingWorkpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12202
+ targetString: headingWorkpiece,
12203
+ targetCharacter: "`",
12204
+ fromLastPosition: true
12205
+ });
12206
+ const localizedHeading = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, headingWorkpiece);
12207
+ if (!(0, es_extensions_1.isString)(localizedHeading)) {
12208
+ es_extensions_1.Logger.throwErrorAndLog({
12209
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12210
+ customMessage: [
12211
+ `Malformed localized heading at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
12212
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(localizedHeading)} found.`
12213
+ ].join(" ")
12214
+ }),
12215
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12216
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12217
+ });
12218
+ }
12219
+ return localizedHeading;
12220
+ }
12221
+ return headingWorkpiece;
12222
+ }
12223
+ // TODO ==============================================================================================================
12224
+ /* ━━━ Sectioning ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
12225
+ static normalizeSectioning(rawSectioningSpecification, parentRouteURI, localization) {
12226
+ RoutingSettingsNormalizer.routingPathSegments.push("$sectioning");
12227
+ if (!(0, es_extensions_1.isNonEmptyString)(rawSectioningSpecification.$specificationFileRelativePath)) {
12228
+ es_extensions_1.Logger.throwErrorAndLog({
12229
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12230
+ customMessage: [
12231
+ `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12232
+ "The \"$sectioning.$specificationFileRelativePath\" must be defined with the valid file path relative " +
12233
+ "to project top directory."
12234
+ ].join(" ")
12235
+ }),
12236
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12237
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12238
+ });
12239
+ }
12240
+ const rawSectioning = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12241
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12242
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath,
12243
+ rawSectioningSpecification.$specificationFileRelativePath
12244
+ ]),
12245
+ synchronously: true,
12246
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12247
+ });
12248
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectioning)) {
12249
+ es_extensions_1.Logger.throwErrorAndLog({
12250
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12251
+ customMessage: [
12252
+ `Malformed sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}".`,
12253
+ `Must be an object while ${typeof rawSectioning} found.`
12254
+ ].join(" ")
12255
+ }),
12256
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12257
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12258
+ });
12259
+ }
12260
+ if (!(0, es_extensions_1.isString)(parentRouteURI)) {
12261
+ es_extensions_1.Logger.throwErrorAndLog({
12262
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12263
+ customMessage: `The sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}" has been defined while ` +
12264
+ "the $URI of the parent route has not been." +
12265
+ "It must be defined to compute the URI for each section."
12266
+ }),
12267
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12268
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12269
+ });
12270
+ }
12271
+ if ((0, es_extensions_1.isArbitraryObject)(rawSectioningSpecification.$localizations)) {
12272
+ if ((0, es_extensions_1.isUndefined)(localization)) {
12273
+ throw new Error("未処理エラー1");
12274
+ }
12275
+ const targetLocalizationFileRelativePath = rawSectioningSpecification.$localizations[localization.locale];
12276
+ RoutingSettingsNormalizer.routingPathSegments.push("$localizations", localization.locale);
12277
+ if (!(0, es_extensions_1.isString)(targetLocalizationFileRelativePath)) {
12278
+ es_extensions_1.Logger.throwErrorAndLog({
12279
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12280
+ customMessage: "Invalid path to sectioning localization at " +
12281
+ `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
12282
+ `Must be the string with file path relative to project root directory, ${typeof es_extensions_1.isString} found.`
12283
+ }),
12284
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12285
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12286
+ });
12287
+ }
12288
+ const sectioningRawLocalization = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12289
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12290
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath, targetLocalizationFileRelativePath
12291
+ ]),
12292
+ synchronously: true,
12293
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12294
+ });
12295
+ if (!(0, es_extensions_1.isArbitraryObject)(sectioningRawLocalization)) {
12296
+ es_extensions_1.Logger.throwErrorAndLog({
12297
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12298
+ customMessage: `Malformed sectioning localization at "${targetLocalizationFileRelativePath}".`
12299
+ }),
12300
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12301
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12302
+ });
12303
+ }
12304
+ const normalizedLocalizedSectioning = RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12305
+ rawSectioningOfSpecificDepthLevel: rawSectioning,
12306
+ outputWorkpiece: {},
12307
+ localization: {
12308
+ locale: localization.locale,
12309
+ strings: sectioningRawLocalization
12310
+ },
12311
+ parentRouteURI
12312
+ });
12313
+ RoutingSettingsNormalizer.routingPathSegments.pop();
12314
+ return normalizedLocalizedSectioning;
12315
+ }
12316
+ return RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12317
+ rawSectioningOfSpecificDepthLevel: rawSectioning,
12318
+ outputWorkpiece: {},
12319
+ parentRouteURI
12320
+ });
12321
+ }
12322
+ static normalizeSectioningDepthLevelRecursively({ rawSectioningOfSpecificDepthLevel, outputWorkpiece, localization, parentRouteURI }) {
12323
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningOfSpecificDepthLevel)) {
12324
+ es_extensions_1.Logger.throwErrorAndLog({
12325
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12326
+ customMessage: [
12327
+ "Malformed routing",
12328
+ RoutingSettingsNormalizer.routingPathSegments.length > 0 ?
12329
+ [` at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`] :
12330
+ ["."],
12331
+ `Must be an object while ${typeof rawSectioningOfSpecificDepthLevel} found.`
12332
+ ].join(" ")
12333
+ }),
12334
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12335
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12336
+ });
12337
+ }
12338
+ RoutingSettingsNormalizer.routingPathSegments.push("");
12339
+ for (const [sectionKey, rawSectionMetadata] of Object.entries(rawSectioningOfSpecificDepthLevel)) {
12340
+ RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = sectionKey;
12341
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectionMetadata)) {
12342
+ es_extensions_1.Logger.throwErrorAndLog({
12343
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12344
+ customMessage: [
12345
+ `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12346
+ `Must be an object while ${typeof rawSectionMetadata} found.`
12347
+ ].join(" ")
12348
+ }),
12349
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12350
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively(compoundParameter)"
12351
+ });
12352
+ }
12353
+ if (!(0, es_extensions_1.isString)(rawSectionMetadata.$anchor)) {
12354
+ es_extensions_1.Logger.throwErrorAndLog({
12355
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12356
+ customMessage: [
12357
+ `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12358
+ `The property "$anchor" must be defined with string while ${typeof rawSectionMetadata} found.`
12359
+ ].join(" ")
12360
+ }),
12361
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12362
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively(compoundParameter)"
12363
+ });
12364
+ }
12365
+ const normalizedSectionMetadata = {
12366
+ $heading: RoutingSettingsNormalizer.normalizeHeading(rawSectionMetadata.$heading, localization),
12367
+ $anchor: rawSectionMetadata.$anchor,
12368
+ $URI: `${parentRouteURI}#${rawSectionMetadata.$anchor}`,
12369
+ ...(0, es_extensions_1.isArbitraryObject)(rawSectionMetadata.$children) ? {
12370
+ $children: RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12371
+ rawSectioningOfSpecificDepthLevel: rawSectionMetadata.$children,
12372
+ outputWorkpiece: {},
12373
+ localization,
12374
+ parentRouteURI
12375
+ })
12376
+ } : null
12377
+ };
12378
+ outputWorkpiece[sectionKey] = normalizedSectionMetadata;
12379
+ }
12380
+ return outputWorkpiece;
12381
+ }
12382
+ }
12383
+ exports["default"] = RoutingSettingsNormalizer;
12384
+
12385
+
11540
12386
  /***/ }),
11541
12387
 
11542
12388
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/CompiledTypeScriptImporterForPug.ts":
@@ -11565,6 +12411,7 @@ const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_S
11565
12411
  const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/WebpackSpecialist */ "./ThirdPartySolutionsSpecialists/WebpackSpecialist.ts"));
11566
12412
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
11567
12413
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
12414
+ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
11568
12415
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
11569
12416
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
11570
12417
  class CompiledInlineTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.default {
@@ -11608,23 +12455,22 @@ class CompiledInlineTypeScriptImporterForPug extends GulpStreamsBasedTaskExecuto
11608
12455
  }
11609
12456
  })
11610
12457
  });
11611
- /** @see https://webpack.js.org/configuration/entry-context/#entry */
11612
- const webpackEntryPointDefinition = WebpackConfigGenerator_1.default.getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
11613
- entryPointsGroupID_ForLogging: "IMPORTS_FOR_PUG",
11614
- sourceFilesGlobSelectors: [compiledTypeScriptImportingSettings.sourceFileAbsolutePath],
11615
- webpackContext: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
11616
- });
11617
- if ((0, es_extensions_1.isNull)(webpackEntryPointDefinition)) {
12458
+ if (!fs_1.default.existsSync(compiledTypeScriptImportingSettings.sourceFileAbsolutePath)) {
11618
12459
  es_extensions_1.Logger.throwErrorAndLog({
11619
12460
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
11620
12461
  customMessage: `The TypeScript file "${compiledTypeScriptImportingSettings.sourceFileAbsolutePath}" for ` +
11621
- "the exporting to Pug was not found. " +
12462
+ "the exporting to Pug was found. " +
11622
12463
  "Please create this file and provide some exports from it."
11623
12464
  }),
11624
12465
  title: es_extensions_nodejs_1.FileNotFoundError.localization.defaultTitle,
11625
12466
  occurrenceLocation: "compiledInlineTypeScriptImporterForPug.constructor(...parameters)"
11626
12467
  });
11627
12468
  }
12469
+ /** @see https://webpack.js.org/configuration/entry-context/#entry */
12470
+ const webpackEntryPointDefinition = WebpackConfigGenerator_1.default.getWebpackEntryObjectRespectiveToExistingEntryPoints({
12471
+ entryPointsSourceFilesAbsolutePaths: [compiledTypeScriptImportingSettings.sourceFileAbsolutePath],
12472
+ webpackContext: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
12473
+ });
11628
12474
  this.webpackConfiguration = CompiledInlineTypeScriptImporterForPug.
11629
12475
  getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
11630
12476
  webpackEntryPointDefinition,
@@ -11737,7 +12583,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
11737
12583
  const MarkupSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupSourceFilesWatcher.ts"));
11738
12584
  /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
11739
12585
  const LinterLikeTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor.ts"));
11740
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
12586
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
11741
12587
  const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist.ts"));
11742
12588
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
11743
12589
  const pug_lint_1 = __importDefault(__webpack_require__(/*! pug-lint */ "pug-lint"));
@@ -12094,7 +12940,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
12094
12940
  const StylesProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRestrictions.ts"));
12095
12941
  /* ─── Default Settings ───────────────────────────────────────────────────────────────────────────────────────────── */
12096
12942
  const StylesProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingSettings__Default.ts"));
12097
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
12943
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
12098
12944
  const StlintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StlintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/StlintLinterSpecialist.ts"));
12099
12945
  /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
12100
12946
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
@@ -12437,7 +13283,7 @@ const gulp_stylus_1 = __importDefault(__webpack_require__(/*! gulp-stylus */ "gu
12437
13283
  const gulp_postcss_1 = __importDefault(__webpack_require__(/*! gulp-postcss */ "gulp-postcss"));
12438
13284
  const autoprefixer_1 = __importDefault(__webpack_require__(/*! autoprefixer */ "autoprefixer"));
12439
13285
  const cssnano_1 = __importDefault(__webpack_require__(/*! cssnano */ "cssnano"));
12440
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
13286
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
12441
13287
  const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist.ts"));
12442
13288
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
12443
13289
  const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
@@ -12742,6 +13588,27 @@ const ChokidarSpecialistLocalization__English = {
12742
13588
  exports["default"] = ChokidarSpecialistLocalization__English;
12743
13589
 
12744
13590
 
13591
+ /***/ }),
13592
+
13593
+ /***/ "./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts":
13594
+ /*!*****************************************************************!*\
13595
+ !*** ./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts ***!
13596
+ \*****************************************************************/
13597
+ /***/ ((__unused_webpack_module, exports) => {
13598
+
13599
+
13600
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
13601
+ class ECMA_ScriptSpecialist {
13602
+ /* [ Fiddle ] https://regex101.com/r/4X0mYk/6 */
13603
+ static partialFilesIncludingDeclarationPatterns = [
13604
+ /* eslint-disable-next-line prefer-named-capture-group --
13605
+ * No simple way to know the capturing group name outside of this file. */
13606
+ /from\s+["']((?:\w|-|\.|\/|:)+)["']/gmu
13607
+ ];
13608
+ }
13609
+ exports["default"] = ECMA_ScriptSpecialist;
13610
+
13611
+
12745
13612
  /***/ }),
12746
13613
 
12747
13614
  /***/ "./ThirdPartySolutionsSpecialists/ESLintLinterSpecialist.ts":
@@ -13124,6 +13991,23 @@ class Stopwatch {
13124
13991
  exports["default"] = Stopwatch;
13125
13992
 
13126
13993
 
13994
+ /***/ }),
13995
+
13996
+ /***/ "./UtilsIncubator/Strings/replaceLinesSeparators.ts":
13997
+ /*!**********************************************************!*\
13998
+ !*** ./UtilsIncubator/Strings/replaceLinesSeparators.ts ***!
13999
+ \**********************************************************/
14000
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14001
+
14002
+
14003
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
14004
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14005
+ function replaceLinesSeparators(targetString, lineSeparators) {
14006
+ return (0, es_extensions_1.explodeStringToLines)({ targetString, mustIgnoreCarriageReturn: false }).join(lineSeparators);
14007
+ }
14008
+ exports["default"] = replaceLinesSeparators;
14009
+
14010
+
13127
14011
  /***/ }),
13128
14012
 
13129
14013
  /***/ "./Utils/DotYDA_DirectoryManager.ts":
@@ -14375,6 +15259,16 @@ module.exports = require("node:util");
14375
15259
 
14376
15260
  /***/ }),
14377
15261
 
15262
+ /***/ "os":
15263
+ /*!*********************!*\
15264
+ !*** external "os" ***!
15265
+ \*********************/
15266
+ /***/ ((module) => {
15267
+
15268
+ module.exports = require("os");
15269
+
15270
+ /***/ }),
15271
+
14378
15272
  /***/ "path":
14379
15273
  /*!***********************!*\
14380
15274
  !*** external "path" ***!
@@ -14427,7 +15321,7 @@ function revisionHash(data) {
14427
15321
  \***********************/
14428
15322
  /***/ ((module) => {
14429
15323
 
14430
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.4.2","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":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.2","@typescript-eslint/eslint-plugin":"7.12.0","@typescript-eslint/parser":"7.12.0","@vue/compiler-sfc":"3.4.27","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-rc.2","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.10","@yamato-daiwa/style_guides":"0.2.7","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"7.1.2","cssnano":"7.0.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.2","eslint-plugin-vue":"9.26.0","eslint-plugin-vue-pug":"0.6.2","fork-ts-checker-webpack-plugin":"7.3.0","gulp":"4.0.2","gulp-data":"1.3.1","gulp-html-prettify":"0.0.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","imagemin-pngquant":"9.0.2","json5-loader":"4.0.1","node-html-parser":"6.1.13","node-notifier":"10.0.1","pa11y":"8.0.0","probe-image-size":"7.2.3","pug3-ast-loader":"0.0.0","pug-lint":"2.7.0","puppeteer":"22.10.0","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.0","ts-loader":"9.5.1","vinyl":"2.2.1","vue-loader":"17.4.2","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.91.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-html-prettify":"0.0.5","@types/gulp-if":"3.0.4","@types/gulp-imagemin":"8.0.6","@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/node":"20.14.2","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.4","@types/pug":"2.0.10","@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.4.5","webpack-cli":"5.1.4"},"scripts":{"Incremental development building":"webpack --mode development","Production building":"webpack --mode production","Linting":"eslint Source","Tree diagram of source files generating":"tree Source /f"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
15324
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.5.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":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.2","@typescript-eslint/eslint-plugin":"7.12.0","@typescript-eslint/parser":"7.12.0","@vue/compiler-sfc":"3.4.27","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-rc.2","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.10","@yamato-daiwa/style_guides":"0.2.7","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"7.1.2","cssnano":"7.0.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.2","eslint-plugin-vue":"9.26.0","eslint-plugin-vue-pug":"0.6.2","fork-ts-checker-webpack-plugin":"7.3.0","gulp":"4.0.2","gulp-data":"1.3.1","gulp-html-prettify":"0.0.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","imagemin-pngquant":"9.0.2","json5-loader":"4.0.1","node-html-parser":"6.1.13","node-notifier":"10.0.1","pa11y":"8.0.0","probe-image-size":"7.2.3","pug3-ast-loader":"0.0.0","pug-lint":"2.7.0","puppeteer":"22.10.0","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.0","ts-loader":"9.5.1","vinyl":"2.2.1","vue-loader":"17.4.2","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.91.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-html-prettify":"0.0.5","@types/gulp-if":"3.0.4","@types/gulp-imagemin":"8.0.6","@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/node":"20.14.2","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.4","@types/pug":"2.0.10","@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.4.5","webpack-cli":"5.1.4"},"scripts":{"Incremental development building":"webpack --mode development","Production building":"webpack --mode production","Linting":"eslint Source","Tree diagram of source files generating":"tree Source /f"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
14431
15325
 
14432
15326
  /***/ })
14433
15327