@yamato-daiwa/automation 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/EntryPoint.js +292 -147
  2. package/README.md +0 -3
  3. package/package.json +35 -35
package/EntryPoint.js CHANGED
@@ -213,10 +213,10 @@ class ProjectBuilder {
213
213
  AudiosProcessor_1.default.provideAudiosProcessingIfMust(masterConfigRepresentative),
214
214
  VideosProcessor_1.default.provideVideosProcessingIfMust(masterConfigRepresentative),
215
215
  MarkupProcessor_1.default.provideMarkupProcessingIfMust(masterConfigRepresentative),
216
+ BrowserLiveReloader_1.default.provideBrowserLiveReloadingIfMust(masterConfigRepresentative),
216
217
  gulp_1.default.parallel([
217
218
  FilesMasterWatcher_1.default.watchIfMust(masterConfigRepresentative),
218
- LocalDevelopmentServerOrchestrator_1.default.orchestrateIfMust(masterConfigRepresentative),
219
- BrowserLiveReloader_1.default.provideBrowserLiveReloadingIfMust(masterConfigRepresentative)
219
+ LocalDevelopmentServerOrchestrator_1.default.orchestrateIfMust(masterConfigRepresentative)
220
220
  ])
221
221
  ])
222
222
  ]));
@@ -1131,7 +1131,7 @@ class ImagesProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1131
1131
  super({
1132
1132
  projectBuildingMasterConfigRepresentative,
1133
1133
  associatedAssetsProcessingSettingsRepresentative: imagesProcessingSettingsRepresentative,
1134
- taskTitleForLogging: "Images processing",
1134
+ taskTitleForLogging: "Images Processing",
1135
1135
  waitingForSubsequentFilesWillSavedPeriod__seconds: imagesProcessingSettingsRepresentative.assetsProcessingCommonSettings.
1136
1136
  periodBetweenFileUpdatingAndRebuildingStarting__seconds
1137
1137
  });
@@ -1621,13 +1621,14 @@ class BrowserLiveReloader {
1621
1621
  return (callback) => { callback(); };
1622
1622
  }
1623
1623
  const dataHoldingSelfInstance = new BrowserLiveReloader(browserLiveReloadingConfigRepresentative);
1624
- return () => {
1624
+ return (callback) => {
1625
1625
  BrowserCoordinatorRelatedFilesWatcher_1.default.initialize({
1626
1626
  onAnyEventRelatedWithActualFilesHandler: dataHoldingSelfInstance.onAnyChangeInRelatedFiles.
1627
1627
  bind(dataHoldingSelfInstance),
1628
1628
  browserLiveReloadingSettingsRepresentative: browserLiveReloadingConfigRepresentative
1629
1629
  });
1630
1630
  dataHoldingSelfInstance.initializeBrowsersync();
1631
+ callback();
1631
1632
  };
1632
1633
  }
1633
1634
  static addOnURI_ChangedEventHandler(onURI_ChangedEventHandler) {
@@ -1647,7 +1648,12 @@ class BrowserLiveReloader {
1647
1648
  } : {
1648
1649
  proxy: this.browserLiveReloadingSettingsRepresentative.proxy
1649
1650
  },
1650
- https: this.browserLiveReloadingSettingsRepresentative.mustUseHTTPS,
1651
+ ...(0, es_extensions_1.isNotNull)(this.browserLiveReloadingSettingsRepresentative.HTTPS) ? {
1652
+ https: {
1653
+ key: this.browserLiveReloadingSettingsRepresentative.HTTPS.keyAbsolutePath,
1654
+ cert: this.browserLiveReloadingSettingsRepresentative.HTTPS.certificateAbsolutePath
1655
+ }
1656
+ } : null,
1651
1657
  cors: this.browserLiveReloadingSettingsRepresentative.mustUseCORS,
1652
1658
  /* [ Browsersync theory ] When port is undefined, it will be assigned automatically. */
1653
1659
  ...(0, es_extensions_1.isNotNull)(this.browserLiveReloadingSettingsRepresentative.localServerCustomPort) ? {
@@ -1754,8 +1760,8 @@ class BrowserLiveReloadingSettingsRepresentative {
1754
1760
  get globSelectorsOfFilesAndDirectoriesWhichWillBeIgnored() {
1755
1761
  return [...this.browserLiveReloadingSettings.setup.localServer.ignoredFilesAndDirectoriesRelativePaths];
1756
1762
  }
1757
- get mustUseHTTPS() {
1758
- return this.browserLiveReloadingSettings.setup.localServer.mustUseHTTPS;
1763
+ get HTTPS() {
1764
+ return this.browserLiveReloadingSettings.setup.localServer.HTTPS ?? null;
1759
1765
  }
1760
1766
  get mustUseCORS() {
1761
1767
  return this.browserLiveReloadingSettings.setup.localServer.mustUseCORS;
@@ -1883,10 +1889,23 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1883
1889
  required: false,
1884
1890
  minimalCharactersCount: 1
1885
1891
  },
1886
- [browserLiveReloadingSettingsLocalization.setups.localServer.useHTTPS.KEY]: {
1887
- newName: "useHTTPS",
1888
- type: Boolean,
1889
- required: false
1892
+ [browserLiveReloadingSettingsLocalization.setups.localServer.HTTPS.KEY]: {
1893
+ newName: "HTTPS",
1894
+ type: Object,
1895
+ required: false,
1896
+ preValidationModifications: es_extensions_1.nullToUndefined,
1897
+ properties: {
1898
+ [browserLiveReloadingSettingsLocalization.setups.localServer.HTTPS.SSL_KeyRelativePath.KEY]: {
1899
+ type: String,
1900
+ required: true,
1901
+ minimalCharactersCount: 1
1902
+ },
1903
+ [browserLiveReloadingSettingsLocalization.setups.localServer.HTTPS.SSL_CertificateRelativePath.KEY]: {
1904
+ type: String,
1905
+ required: true,
1906
+ minimalCharactersCount: 1
1907
+ }
1908
+ }
1890
1909
  },
1891
1910
  [browserLiveReloadingSettingsLocalization.setups.localServer.useCORS.KEY]: {
1892
1911
  newName: "useCORS",
@@ -2049,8 +2068,18 @@ class BrowserLiveReloadingSettingsNormalizer {
2049
2068
  } : null,
2050
2069
  startingFileNameWithExtension: actualBrowserLiveReloadingSetup__rawValid.localServer.customStartingFileNameWithExtension ??
2051
2070
  BrowserLiveReloadingSettings__Default_1.default.setup.localServer.startingFileNameWithExtension,
2052
- mustUseHTTPS: actualBrowserLiveReloadingSetup__rawValid.localServer.useHTTPS === true ?
2053
- true : BrowserLiveReloadingSettings__Default_1.default.setup.localServer.HTTPS_Usage,
2071
+ ...(0, es_extensions_1.isNotUndefined)(actualBrowserLiveReloadingSetup__rawValid.localServer.HTTPS) ? {
2072
+ HTTPS: {
2073
+ keyAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
2074
+ projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
2075
+ actualBrowserLiveReloadingSetup__rawValid.localServer.HTTPS.SSL_KeyRelativePath
2076
+ ], { alwaysForwardSlashSeparators: true }),
2077
+ certificateAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
2078
+ projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
2079
+ actualBrowserLiveReloadingSetup__rawValid.localServer.HTTPS.SSL_CertificateRelativePath
2080
+ ], { alwaysForwardSlashSeparators: true })
2081
+ }
2082
+ } : null,
2054
2083
  mustUseCORS: actualBrowserLiveReloadingSetup__rawValid.localServer.useCORS === true ?
2055
2084
  true : BrowserLiveReloadingSettings__Default_1.default.setup.localServer.CORS_Usage
2056
2085
  },
@@ -3271,8 +3300,7 @@ const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_req
3271
3300
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
3272
3301
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3273
3302
  class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
3274
- cachedRelevantEntryPointsSourceFilesAbsolutePaths = [];
3275
- /* ━━━ Static helpers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3303
+ /* ━━━ Static Helpers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3276
3304
  static computeRelevantOutputDirectoryAbsolutePathForTargetSourceFile(targetSourceFileAbsolutePath, relevantEntryPointsGroupSettings) {
3277
3305
  let outputDirectoryAbsolutePathForTargetSourceFile = relevantEntryPointsGroupSettings.isSingeEntryPointGroup ?
3278
3306
  relevantEntryPointsGroupSettings.outputFilesTopDirectoryAbsolutePath :
@@ -3348,15 +3376,6 @@ class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCode
3348
3376
  get hasAtLeastOneRelevantEntryPointsGroup() {
3349
3377
  return this.relevantEntryPointsGroupsSettings.size > 0;
3350
3378
  }
3351
- get relevantEntryPointsSourceFilesAbsolutePaths() {
3352
- if (this.cachedRelevantEntryPointsSourceFilesAbsolutePaths.length > 0) {
3353
- return this.cachedRelevantEntryPointsSourceFilesAbsolutePaths;
3354
- }
3355
- this.relevantEntryPointsGroupsSettings.forEach((entryPointsGroupNormalizedSettings) => {
3356
- this.cachedRelevantEntryPointsSourceFilesAbsolutePaths.push(...es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(entryPointsGroupNormalizedSettings.sourceFilesGlobSelectors));
3357
- });
3358
- return this.cachedRelevantEntryPointsSourceFilesAbsolutePaths;
3359
- }
3360
3379
  }
3361
3380
  exports["default"] = GulpStreamBasedSourceCodeProcessingConfigRepresentative;
3362
3381
 
@@ -3427,6 +3446,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
3427
3446
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3428
3447
  class SourceCodeProcessingConfigRepresentative {
3429
3448
  projectBuildingMasterConfigRepresentative;
3449
+ cachedInitialRelevantEntryPointsSourceFilesAbsolutePaths;
3430
3450
  constructor(projectBuildingMasterConfigRepresentative) {
3431
3451
  this.projectBuildingMasterConfigRepresentative = projectBuildingMasterConfigRepresentative;
3432
3452
  }
@@ -3448,15 +3468,12 @@ class SourceCodeProcessingConfigRepresentative {
3448
3468
  ], { alwaysForwardSlashSeparators: true });
3449
3469
  }
3450
3470
  return Array.from(this.relevantEntryPointsGroupsSettings.values()).
3451
- some((entryPointGroupSettings) => {
3452
- if (entryPointGroupSettings.isSingeEntryPointGroup) {
3453
- return targetFileAbsolutePath === entryPointGroupSettings.sourceFilesGlobSelectors[0];
3454
- }
3455
- return es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3471
+ some((entryPointGroupSettings) => (entryPointGroupSettings.isSingeEntryPointGroup ?
3472
+ targetFileAbsolutePath === entryPointGroupSettings.sourceFilesGlobSelectors[0] :
3473
+ es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3456
3474
  filePath: targetFileAbsolutePath,
3457
3475
  globSelectors: entryPointGroupSettings.sourceFilesGlobSelectors
3458
- });
3459
- });
3476
+ })));
3460
3477
  }
3461
3478
  get actualOutputFilesGlobSelectors() {
3462
3479
  return Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupNormalizedSettings) => es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
@@ -3465,6 +3482,11 @@ class SourceCodeProcessingConfigRepresentative {
3465
3482
  fileNamesExtensions: this.sourceCodeProcessingCommonSettings.supportedOutputFileNameExtensionsWithoutLeadingDots
3466
3483
  }));
3467
3484
  }
3485
+ get initialRelevantEntryPointsSourceFilesAbsolutePaths() {
3486
+ return this.cachedInitialRelevantEntryPointsSourceFilesAbsolutePaths ?? (this.cachedInitialRelevantEntryPointsSourceFilesAbsolutePaths =
3487
+ Array.from(this.relevantEntryPointsGroupsSettings.values()).
3488
+ flatMap((entryPointsGroupNormalizedSettings) => es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(entryPointsGroupNormalizedSettings.sourceFilesGlobSelectors)));
3489
+ }
3468
3490
  }
3469
3491
  exports["default"] = SourceCodeProcessingConfigRepresentative;
3470
3492
 
@@ -3661,7 +3683,7 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
3661
3683
  DISPLAYING_LINES_COUNT_AFTER_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT = 1;
3662
3684
  logging;
3663
3685
  isFirstGulpPipelinePass = true;
3664
- relativePathsOfFoundFilesMentionedInCache = new Set();
3686
+ relativePathsOfFoundFilesMentionedInCacheFile = new Set();
3665
3687
  /* ━━━ Constructor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3666
3688
  constructor(constructorParameter) {
3667
3689
  super(constructorParameter);
@@ -3748,8 +3770,10 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
3748
3770
  * The methods are organized according processing order. Most of the methods are instance method, but when `this`
3749
3771
  * is not used, the methods are static. */
3750
3772
  async registerFoundFileMentionedInCache(targetFile) {
3751
- if (this.isFirstGulpPipelinePass && (0, es_extensions_1.isNotUndefined)(this.sourceFilesCheckingCachedResults.files[targetFile.relative])) {
3752
- this.relativePathsOfFoundFilesMentionedInCache.add(es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(targetFile.relative));
3773
+ const targetFileRelativePath__alwaysFrowardSlashesPathSeparators = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(targetFile.relative);
3774
+ if (this.isFirstGulpPipelinePass &&
3775
+ (0, es_extensions_1.isNotUndefined)(this.sourceFilesCheckingCachedResults.files[targetFileRelativePath__alwaysFrowardSlashesPathSeparators])) {
3776
+ this.relativePathsOfFoundFilesMentionedInCacheFile.add(targetFileRelativePath__alwaysFrowardSlashesPathSeparators);
3753
3777
  }
3754
3778
  return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
3755
3779
  }
@@ -3827,15 +3851,15 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
3827
3851
  if (this.isFirstGulpPipelinePass) {
3828
3852
  /* [ Theory ] Some files could be deleted or ignored during YDA has been stopped. */
3829
3853
  this.sourceFilesCheckingCachedResults.files =
3830
- this.relativePathsOfFoundFilesMentionedInCache.size > 0 ?
3854
+ this.relativePathsOfFoundFilesMentionedInCacheFile.size > 0 ?
3831
3855
  Array.from(Object.entries(this.sourceFilesCheckingCachedResults.files)).reduce((actualSourceFilesCheckingResults, [sourceFileRelativePath, cachedLintingResult]) => {
3832
- if (this.relativePathsOfFoundFilesMentionedInCache.has(sourceFileRelativePath)) {
3856
+ if (this.relativePathsOfFoundFilesMentionedInCacheFile.has(sourceFileRelativePath)) {
3833
3857
  actualSourceFilesCheckingResults[sourceFileRelativePath] = cachedLintingResult;
3834
3858
  }
3835
3859
  return actualSourceFilesCheckingResults;
3836
3860
  }, {}) :
3837
3861
  this.sourceFilesCheckingCachedResults.files;
3838
- this.relativePathsOfFoundFilesMentionedInCache.clear();
3862
+ this.relativePathsOfFoundFilesMentionedInCacheFile.clear();
3839
3863
  this.isFirstGulpPipelinePass = false;
3840
3864
  }
3841
3865
  this.reportCheckingIssuesAndOutputCacheToFile();
@@ -3953,21 +3977,16 @@ exports["default"] = AssetVinylFile;
3953
3977
 
3954
3978
  /* eslint-disable no-inline-comments, @stylistic/no-multi-spaces -- Will comment with which technology each exclusion related. */
3955
3979
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3980
+ /* [ Theory ] All directories and files which names started form dot will be ignored by Chokidar. */
3956
3981
  exports["default"] = {
3957
3982
  relativePathsOfExcludeFiles: [
3958
3983
  "package-lock.json", // NPM
3959
3984
  "yarn.lock" // Yarn, the third-party package manager
3960
3985
  ],
3961
3986
  relativePathsOfExcludeDirectories: [
3962
- ".git", // Git, the Version Control System (VSC
3963
- ".github", // GitHub, the Code Sharing Service
3964
- ".idea", // IntelliJ IDEA, The IDEs Family
3965
- ".nuxt", // Nuxt.js, the JavaScript framework
3966
- ".run", // .NET
3967
- ".vs", // Visual Studio IDE
3968
- ".vscode", // Visual Studio Code, the Code editor
3969
- ".yda", // Yamato Daiwa Automation
3970
- "node_modules" // Node.js
3987
+ "bin", // .NET
3988
+ "node_modules", // Node.js
3989
+ "obj" // .NET
3971
3990
  ]
3972
3991
  };
3973
3992
 
@@ -3996,12 +4015,12 @@ class FilesWatchingSettingsNormalizer {
3996
4015
  ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeFiles,
3997
4016
  ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeFiles ?? []
3998
4017
  ].
3999
- map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorToExcludingOne(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))),
4018
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true }))),
4000
4019
  excludedDirectoriesGlobSelectors: new Set([
4001
4020
  ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeDirectories,
4002
4021
  ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeDirectories ?? []
4003
4022
  ].
4004
- map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true }))))
4023
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))
4005
4024
  };
4006
4025
  }
4007
4026
  }
@@ -4014,21 +4033,22 @@ exports["default"] = FilesWatchingSettingsNormalizer;
4014
4033
  /*!******************************************************************************!*\
4015
4034
  !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts ***!
4016
4035
  \******************************************************************************/
4017
- /***/ ((__unused_webpack_module, exports) => {
4036
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4018
4037
 
4019
4038
 
4020
4039
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4040
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4041
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4021
4042
  class FilesWatchingSettingsRepresentative {
4022
4043
  mustProvideFilesWatching;
4044
+ exclusiveGlobsOfExcludedFilesAndDirectories;
4023
4045
  fileWatchingSettings;
4024
4046
  constructor(fileWatchingSettings, projectBuildingMasterConfigRepresentative) {
4025
4047
  this.fileWatchingSettings = fileWatchingSettings;
4026
4048
  this.mustProvideFilesWatching = projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding;
4027
- }
4028
- get exclusiveGlobsOfExcludedFilesAndDirectories() {
4029
- return [
4030
- ...Array.from(this.fileWatchingSettings.excludedFilesGlobSelectors),
4031
- ...Array.from(this.fileWatchingSettings.excludedDirectoriesGlobSelectors)
4049
+ this.exclusiveGlobsOfExcludedFilesAndDirectories = [
4050
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedFilesGlobSelectors)),
4051
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedDirectoriesGlobSelectors))
4032
4052
  ];
4033
4053
  }
4034
4054
  }
@@ -5327,6 +5347,11 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5327
5347
  KEY: "staticPreview",
5328
5348
  stateDependentPagesVariationsSpecificationFileRelativePath: {
5329
5349
  KEY: "stateDependentPagesVariationsSpecificationFileRelativePath"
5350
+ },
5351
+ importsFromStaticDataFiles: {
5352
+ KEY: "importsFromStaticDataFiles",
5353
+ importedVariableName: { KEY: "importedVariableName" },
5354
+ fileRelativePath: { KEY: "fileRelativePath" }
5330
5355
  }
5331
5356
  },
5332
5357
  linting: {
@@ -5480,6 +5505,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5480
5505
  KEY: "logging",
5481
5506
  filesPaths: { KEY: "filesPaths" },
5482
5507
  filesCount: { KEY: "filesCount" },
5508
+ partialFilesAndParentEntryPointsCorrespondence: { KEY: "partialFilesAndParentEntryPointsCorrespondence" },
5483
5509
  filesWatcherEvents: { KEY: "filesWatcherEvents" },
5484
5510
  linting: {
5485
5511
  KEY: "linting",
@@ -5628,7 +5654,11 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5628
5654
  ignoredFilesAndDirectoriesRelativePaths: { KEY: "ignoredFilesAndDirectoriesRelativePaths" },
5629
5655
  customPort: { KEY: "customPort" },
5630
5656
  customStartingFileNameWithExtension: { KEY: "customStartingFileNameWithExtension" },
5631
- useHTTPS: { KEY: "useHTTPS" },
5657
+ HTTPS: {
5658
+ KEY: "HTTPS",
5659
+ SSL_KeyRelativePath: { KEY: "SSL_KeyRelativePath" },
5660
+ SSL_CertificateRelativePath: { KEY: "SSL_CertificateRelativePath" }
5661
+ },
5632
5662
  useCORS: { KEY: "useCORS" }
5633
5663
  },
5634
5664
  proxy: { KEY: "proxy" },
@@ -6067,6 +6097,8 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6067
6097
  ECMA_ScriptLogicProcessingSettings__Default_1.default.logging.filesPaths,
6068
6098
  filesCount: ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.logging?.filesCount ??
6069
6099
  ECMA_ScriptLogicProcessingSettings__Default_1.default.logging.filesCount,
6100
+ partialFilesAndParentEntryPointsCorrespondence: ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.logging?.filesWatcherEvents ??
6101
+ ECMA_ScriptLogicProcessingSettings__Default_1.default.logging.partialFilesAndParentEntryPointsCorrespondence,
6070
6102
  filesWatcherEvents: ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.logging?.filesWatcherEvents ??
6071
6103
  ECMA_ScriptLogicProcessingSettings__Default_1.default.logging.filesWatcherEvents,
6072
6104
  linting: {
@@ -6188,7 +6220,7 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6188
6220
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6189
6221
  var ECMA_ScriptLogicProcessingRestrictions;
6190
6222
  (function (ECMA_ScriptLogicProcessingRestrictions) {
6191
- ECMA_ScriptLogicProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["js", "mjs", "jsx", "ts", "tsx"];
6223
+ ECMA_ScriptLogicProcessingRestrictions.supportedSourceFilesNamesExtensionsWithoutLeadingDots = ["js", "mjs", "ts", "tsx", "jsx"];
6192
6224
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFilesNamesExtensionsWithoutLeadingDots = ["js"];
6193
6225
  let SupportedECMA_ScriptRuntimesTypes;
6194
6226
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -6301,6 +6333,7 @@ const ECMA_ScriptLogicProcessingSettings__Default = {
6301
6333
  logging: {
6302
6334
  filesPaths: true,
6303
6335
  filesCount: false,
6336
+ partialFilesAndParentEntryPointsCorrespondence: false,
6304
6337
  filesWatcherEvents: true,
6305
6338
  linting: {
6306
6339
  starting: true,
@@ -6497,6 +6530,11 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
6497
6530
  type: Boolean,
6498
6531
  required: false
6499
6532
  },
6533
+ [ECMA_ScriptProcessingPropertiesLocalization.logging.partialFilesAndParentEntryPointsCorrespondence.KEY]: {
6534
+ newName: "partialFilesAndParentEntryPointsCorrespondence",
6535
+ type: Boolean,
6536
+ required: false
6537
+ },
6500
6538
  [ECMA_ScriptProcessingPropertiesLocalization.logging.filesWatcherEvents.KEY]: {
6501
6539
  newName: "filesWatcherEvents",
6502
6540
  type: Boolean,
@@ -6601,13 +6639,14 @@ class ECMA_ScriptLogicProcessor {
6601
6639
  TASK_NAME_FOR_LOGGING = "ECMAScript logic processing";
6602
6640
  masterConfigRepresentative;
6603
6641
  ECMA_ScriptLogicProcessingConfigRepresentative;
6604
- static provideLogicProcessingIfMust(masterConfigRepresentative) {
6605
- if ((0, es_extensions_1.isUndefined)(masterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative)) {
6642
+ static provideLogicProcessingIfMust(projectBuildingMasterConfigRepresentative) {
6643
+ const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
6644
+ if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
6606
6645
  return (callback) => { callback(); };
6607
6646
  }
6608
- const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessor(masterConfigRepresentative, masterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative);
6647
+ const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessor(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6609
6648
  const webpackConfigurationSets = WebpackConfigGenerator_1.default.
6610
- generateWebpackConfigurationForEachEntryPointsGroup(masterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative, masterConfigRepresentative);
6649
+ generateWebpackConfigurationForEachEntryPointsGroup(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6611
6650
  return (callback) => {
6612
6651
  try {
6613
6652
  /* [ Webpack theory ] Although there is no `null` hardError is type definitions, the `hardError` could be null. */
@@ -6673,9 +6712,9 @@ class ECMA_ScriptLogicProcessor {
6673
6712
  }
6674
6713
  };
6675
6714
  }
6676
- constructor(masterConfigRepresentative, ecmaScriptLogicProcessingConfigRepresentative) {
6677
- this.masterConfigRepresentative = masterConfigRepresentative;
6715
+ constructor(ecmaScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
6678
6716
  this.ECMA_ScriptLogicProcessingConfigRepresentative = ecmaScriptLogicProcessingConfigRepresentative;
6717
+ this.masterConfigRepresentative = masterConfigRepresentative;
6679
6718
  }
6680
6719
  }
6681
6720
  exports["default"] = ECMA_ScriptLogicProcessor;
@@ -7429,9 +7468,15 @@ class WebpackConfigGenerator {
7429
7468
  "development" : "production",
7430
7469
  watch: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7431
7470
  this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
7471
+ watchOptions: {
7472
+ ignored: ["node_modules"]
7473
+ },
7474
+ /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
7475
+ * faster alternatives including "eval" could cause the errors related with security.
7476
+ * See https://stackoverflow.com/a/49100966. */
7432
7477
  devtool: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7433
7478
  this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
7434
- "eval" : false,
7479
+ "cheap-module-source-map" : false,
7435
7480
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
7436
7481
  node: {
7437
7482
  __dirname: true,
@@ -7470,12 +7515,21 @@ class WebpackConfigGenerator {
7470
7515
  oneOf: [
7471
7516
  {
7472
7517
  resourceQuery: /^\?vue/u,
7473
- use: ["pug-plain-loader"]
7518
+ loader: "@webdiscus/pug-loader",
7519
+ options: { mode: "html" }
7474
7520
  },
7475
7521
  {
7522
+ test: /\.renderer\.pug$/u,
7476
7523
  loader: "@webdiscus/pug-loader",
7477
- /* [ Third-party API ] The "render" method compiles the file content and allow to import it as HTML string. */
7478
- options: { method: "render" }
7524
+ options: { mode: "compile" }
7525
+ },
7526
+ {
7527
+ test: /\.ydfr\.pug$/u,
7528
+ loader: "pug3-ast-loader"
7529
+ },
7530
+ {
7531
+ loader: "@webdiscus/pug-loader",
7532
+ options: { mode: "render" }
7479
7533
  }
7480
7534
  ]
7481
7535
  },
@@ -8009,6 +8063,29 @@ var MarkupProcessingSettings__FromFile__RawValid;
8009
8063
  type: String,
8010
8064
  required: false,
8011
8065
  minimalCharactersCount: 1
8066
+ },
8067
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.KEY]: {
8068
+ newName: "importsFromStaticDataFiles",
8069
+ preValidationModifications: es_extensions_1.nullToUndefined,
8070
+ type: Array,
8071
+ required: false,
8072
+ element: {
8073
+ type: Object,
8074
+ properties: {
8075
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.importedVariableName.KEY]: {
8076
+ newName: "importedVariableName",
8077
+ type: String,
8078
+ required: true,
8079
+ minimalCharactersCount: 1
8080
+ },
8081
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.fileRelativePath.KEY]: {
8082
+ newName: "fileRelativePath",
8083
+ type: String,
8084
+ required: true,
8085
+ minimalCharactersCount: 1
8086
+ }
8087
+ }
8088
+ }
8012
8089
  }
8013
8090
  }
8014
8091
  },
@@ -8272,6 +8349,7 @@ const ResourcesReferencesResolverForHTML_1 = __importDefault(__webpack_require__
8272
8349
  const AccessibilityInspector_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/AccessibilityInspector/AccessibilityInspector */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/AccessibilityInspector/AccessibilityInspector.ts"));
8273
8350
  const ImagesAspectRatioAffixer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/ImagesAspectRatioAffixer */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/ImagesAspectRatioAffixer.ts"));
8274
8351
  const SpacesNormalizerForCJK_Text_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/SpacesNormalizerForCJK_Text */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/SpacesNormalizerForCJK_Text.ts"));
8352
+ const CodeListingPugFilter_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/PugFilters/CodeListingPugFilter */ "./ProjectBuilding/SourceCodeProcessing/Markup/PugFilters/CodeListingPugFilter.ts"));
8275
8353
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
8276
8354
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
8277
8355
  const node_html_parser_1 = __webpack_require__(/*! node-html-parser */ "node-html-parser");
@@ -8319,13 +8397,12 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8319
8397
  }
8320
8398
  if (projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
8321
8399
  dataHoldingSelfInstance.sourceCodeSelectiveReprocessingHelper = new SourceCodeSelectiveReprocessingHelper_1.default({
8322
- entryPointsSourceFilesAbsolutePaths: markupProcessingSettingsRepresentative.relevantEntryPointsSourceFilesAbsolutePaths,
8400
+ initialEntryPointsSourceFilesAbsolutePaths: markupProcessingSettingsRepresentative.
8401
+ initialRelevantEntryPointsSourceFilesAbsolutePaths,
8323
8402
  affiliatedFilesResolutionRules: {
8324
- supportedAffiliatedFilesNamesExtensionsWithoutLeadingDots: PugPreProcessorSpecialist_1.default.
8325
- supportedEntryPointsFileNamesExtensionsWithoutLeadingDots,
8326
8403
  affiliatedFilesIncludingDeclarationsPatterns: PugPreProcessorSpecialist_1.default.partialFilesIncludingDeclarationPatterns,
8327
- implicitAffiliatedFilesNamesExtensionsWithoutLeadingDots: PugPreProcessorSpecialist_1.default.
8328
- implicitFileNamesExtensionsWithoutPrependedDotsOfPartials
8404
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles: PugPreProcessorSpecialist_1.default.
8405
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials
8329
8406
  },
8330
8407
  isEntryPoint: markupProcessingSettingsRepresentative.isEntryPoint.bind(markupProcessingSettingsRepresentative),
8331
8408
  logging: {
@@ -8357,7 +8434,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8357
8434
  handler: MarkupProcessor.onEntryPointFileDeleted
8358
8435
  });
8359
8436
  }
8360
- return dataHoldingSelfInstance.processEntryPoints(markupProcessingSettingsRepresentative.relevantEntryPointsSourceFilesAbsolutePaths);
8437
+ return dataHoldingSelfInstance.processEntryPoints(markupProcessingSettingsRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths);
8361
8438
  }
8362
8439
  constructor(markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
8363
8440
  super({
@@ -8416,7 +8493,8 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8416
8493
  __IS_PRODUCTION_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isProductionBuildingMode
8417
8494
  },
8418
8495
  filters: {
8419
- html_special_characters_to_html_entities: MarkupProcessor.escapeHTML_Entities
8496
+ html_special_characters_to_html_entities: MarkupProcessor.convertApplicableCharactersToHTML_Entities,
8497
+ "code_listing--yda": CodeListingPugFilter_1.default.apply
8420
8498
  }
8421
8499
  })).
8422
8500
  pipe((0, gulp_if_1.default)((markupFile) => markupFile instanceof MarkupEntryPointVinylFile_1.default &&
@@ -8515,7 +8593,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8515
8593
  }
8516
8594
  /* [ Theory ] The ampersand must be escaped first, otherwise the ampersand from which HTML other entities begins
8517
8595
  * will be escaped too. */
8518
- static escapeHTML_Entities(pugCode) {
8596
+ static convertApplicableCharactersToHTML_Entities(pugCode) {
8519
8597
  return pugCode.
8520
8598
  replace(/&/gu, "&").
8521
8599
  replace(/</gu, "&lt;").
@@ -8645,7 +8723,7 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8645
8723
  }
8646
8724
  /* ━━━ Helpers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
8647
8725
  initializeSourceAndOutputFilesAbsolutePathsCorrespondenceMap() {
8648
- for (const markupSourceFileAbsolutePath of es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(this.markupProcessingSettingsRepresentative.relevantEntryPointsSourceFilesAbsolutePaths, { alwaysForwardSlashSeparators: true })) {
8726
+ for (const markupSourceFileAbsolutePath of es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(this.markupProcessingSettingsRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths, { alwaysForwardSlashSeparators: true })) {
8649
8727
  const markupEntryPointsGroupSettingsActualForCurrentFile = this.markupProcessingSettingsRepresentative.
8650
8728
  getExpectedToExistEntryPointsGroupSettingsRelevantForSpecifiedSourceFileAbsolutePath(markupSourceFileAbsolutePath);
8651
8729
  const outputFileNameWithLastExtensionWithLeadingDot = this.markupProcessingSettingsRepresentative.
@@ -9360,7 +9438,7 @@ class AccessibilityInspector {
9360
9438
  }
9361
9439
  return null;
9362
9440
  }),
9363
- puppeteer_1.default.launch({ headless: "new" })
9441
+ puppeteer_1.default.launch()
9364
9442
  ]);
9365
9443
  return {
9366
9444
  ...(0, es_extensions_1.isNotNull)(cachedInspectionsResults) ? { cachedInspectionsResults } : null,
@@ -10186,8 +10264,8 @@ class ImagesAspectRatioAffixer {
10186
10264
  mustOutputIf: true,
10187
10265
  errorType: es_extensions_1.UnexpectedEventError.NAME,
10188
10266
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
10189
- description: `No image with path "${imageRawPath}" specified in output HTML code has been found.` +
10190
- "In must be investigated.",
10267
+ description: `No image with path "${imageRawPath}" specified in output HTML code has been found. ` +
10268
+ "It must be investigated.",
10191
10269
  occurrenceLocation: "ImagesAspectRatioAffixer.affix(compoundParameter)",
10192
10270
  caughtError: error
10193
10271
  });
@@ -10262,7 +10340,7 @@ class ImagesAspectRatioAffixer {
10262
10340
  return null;
10263
10341
  }
10264
10342
  /* [ Fiddle ] https://regex101.com/r/vvGR6t/1 */
10265
- const imagePathSearchingResults = /background(?:-image)?\s*:\s*url\(["'](?<URI>[^"']+)["']/gu.exec(styleAttributeValue);
10343
+ const imagePathSearchingResults = (/background(?:-image)?\s*:\s*url\(["'](?<URI>[^"']+)["']/gu).exec(styleAttributeValue);
10266
10344
  return (0, es_extensions_1.isNotNull)(imagePathSearchingResults) ? imagePathSearchingResults[1] : null;
10267
10345
  }
10268
10346
  }
@@ -10355,8 +10433,8 @@ class ResourcesReferencesResolverForHTML {
10355
10433
  resolveStylesheetsAliasedPaths().
10356
10434
  resolveScriptsPathsAliases().
10357
10435
  resolveImagesAliasedPaths().
10358
- resolveVideosPathsAliases().
10359
- resolveAudiosPathsAliases().
10436
+ resolveVideosAliasedPaths().
10437
+ resolveAudiosAliasedPaths().
10360
10438
  rootHTML_Element;
10361
10439
  }
10362
10440
  constructor({ rootHTML_Element, projectBuildingMasterConfigRepresentative, markupProcessingSettingsRepresentative, absolutePathOfOutputDirectoryForTargetHTML_File }) {
@@ -10714,7 +10792,7 @@ class ResourcesReferencesResolverForHTML {
10714
10792
  ResourcesReferencesResolverForHTML.
10715
10793
  aliasedURIsAndOutputImagesFilesAbsolutePathsCorrespondenceMap.
10716
10794
  set(targetHTML_ElementAttributeValue, resolvedAbsolutePath);
10717
- targetHTML_Element.setAttribute(targetHTML_ElementAttributeName, targetHTML_ElementAttributeValue);
10795
+ targetHTML_Element.setAttribute(targetHTML_ElementAttributeName, this.buildResourceFileFinalPath(resolvedAbsolutePath));
10718
10796
  return;
10719
10797
  }
10720
10798
  const imagesProcessingSettingsRepresentative = this.projectBuildingMasterConfigRepresentative.imagesProcessingSettingsRepresentative;
@@ -10739,7 +10817,7 @@ class ResourcesReferencesResolverForHTML {
10739
10817
  targetHTML_Element.setAttribute(targetHTML_ElementAttributeName, this.buildResourceFileFinalPath(resolvedAbsolutePath));
10740
10818
  }
10741
10819
  /* ─── Videos ──────────────────────────────────────────────────────────────────────────────────────────────────── */
10742
- resolveVideosPathsAliases() {
10820
+ resolveVideosAliasedPaths() {
10743
10821
  const videosProcessingSettingsRepresentative = this.projectBuildingMasterConfigRepresentative.videosProcessingSettingsRepresentative;
10744
10822
  if ((0, es_extensions_1.isUndefined)(this.plainCopyingSettingsRepresentative) && (0, es_extensions_1.isUndefined)(videosProcessingSettingsRepresentative)) {
10745
10823
  return this;
@@ -10798,7 +10876,7 @@ class ResourcesReferencesResolverForHTML {
10798
10876
  return this;
10799
10877
  }
10800
10878
  /* ─── Audios ──────────────────────────────────────────────────────────────────────────────────────────────────── */
10801
- resolveAudiosPathsAliases() {
10879
+ resolveAudiosAliasedPaths() {
10802
10880
  const audiosProcessingSettingsRepresentative = this.projectBuildingMasterConfigRepresentative.audiosProcessingSettingsRepresentative;
10803
10881
  if ((0, es_extensions_1.isUndefined)(this.plainCopyingSettingsRepresentative) && (0, es_extensions_1.isUndefined)(audiosProcessingSettingsRepresentative)) {
10804
10882
  return this;
@@ -10973,6 +11051,76 @@ class SpacesNormalizerForCJK_Text {
10973
11051
  exports["default"] = SpacesNormalizerForCJK_Text;
10974
11052
 
10975
11053
 
11054
+ /***/ }),
11055
+
11056
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/PugFilters/CodeListingPugFilter.ts":
11057
+ /*!****************************************************************************************!*\
11058
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/PugFilters/CodeListingPugFilter.ts ***!
11059
+ \****************************************************************************************/
11060
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11061
+
11062
+
11063
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
11064
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
11065
+ class CodeListingPugFilter {
11066
+ static optionsSpecification = {
11067
+ subtype: es_extensions_1.RawObjectDataProcessor.ObjectSubtypes.fixedKeyAndValuePairsObject,
11068
+ nameForLogging: "CodeListingPugFilerOptions",
11069
+ properties: {
11070
+ mustAppendEmptyLine: {
11071
+ type: Boolean,
11072
+ defaultValue: false
11073
+ },
11074
+ indentationMultiplier: {
11075
+ preValidationModifications: es_extensions_1.convertPotentialStringToIntegerIfPossible,
11076
+ type: Number,
11077
+ required: false,
11078
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
11079
+ },
11080
+ indentationString: {
11081
+ type: String,
11082
+ requiredIf: {
11083
+ predicate: (rawOptions) => (0, es_extensions_1.isNotUndefined)(rawOptions.indentationMultiplier),
11084
+ descriptionForLogging: "\"indentationMultiplier\" has been specified"
11085
+ },
11086
+ minimalCharactersCount: 1
11087
+ }
11088
+ }
11089
+ };
11090
+ static apply(sourcePugCode, rawOptions) {
11091
+ const rawOptionsProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawOptions, CodeListingPugFilter.optionsSpecification);
11092
+ if (rawOptionsProcessingResult.rawDataIsInvalid) {
11093
+ es_extensions_1.Logger.throwErrorAndLog({
11094
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
11095
+ customMessage: "One or more invalid options found for \"CodeListing\" pug filer.\n" +
11096
+ es_extensions_1.RawObjectDataProcessor.formatValidationErrorsList(rawOptionsProcessingResult.validationErrorsMessages)
11097
+ }),
11098
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
11099
+ occurrenceLocation: "CodeListingPugFilter.apply(sourcePugCode, rawOptions)"
11100
+ });
11101
+ }
11102
+ const { mustAppendEmptyLine, indentationString, indentationMultiplier } = rawOptionsProcessingResult.processedData;
11103
+ const lineSeparator = (0, es_extensions_1.getLineSeparatorType)(sourcePugCode);
11104
+ let outputCodeWorkpiece = sourcePugCode;
11105
+ if ((0, es_extensions_1.isNotUndefined)(indentationString) && (0, es_extensions_1.isNotUndefined)(indentationMultiplier)) {
11106
+ outputCodeWorkpiece = (0, es_extensions_1.explodeStringToLines)({ targetString: outputCodeWorkpiece, mustIgnoreCarriageReturn: true }).
11107
+ map((sourceCodeLine) => `${indentationString.repeat(indentationMultiplier - 1)}${sourceCodeLine}`).
11108
+ join(lineSeparator);
11109
+ }
11110
+ return [
11111
+ ...mustAppendEmptyLine ? [lineSeparator] : [],
11112
+ outputCodeWorkpiece.
11113
+ replace(/&(?!#?[a-z0-9]+;)/gu, "&amp;").
11114
+ replace(/</gu, "&lt;").
11115
+ replace(/>/gu, "&gt;").
11116
+ replace(/"/gu, "&quot;").
11117
+ replace(/'/gu, "&apos;")
11118
+ ].join("");
11119
+ }
11120
+ }
11121
+ exports["default"] = CodeListingPugFilter;
11122
+
11123
+
10976
11124
  /***/ }),
10977
11125
 
10978
11126
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts":
@@ -12317,13 +12465,12 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
12317
12465
  const dataHoldingSelfInstance = new StylesProcessor(stylesProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
12318
12466
  if (projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
12319
12467
  dataHoldingSelfInstance.sourceCodeSelectiveReprocessingHelper = new SourceCodeSelectiveReprocessingHelper_1.default({
12320
- entryPointsSourceFilesAbsolutePaths: stylesProcessingSettingsRepresentative.relevantEntryPointsSourceFilesAbsolutePaths,
12468
+ initialEntryPointsSourceFilesAbsolutePaths: stylesProcessingSettingsRepresentative.
12469
+ initialRelevantEntryPointsSourceFilesAbsolutePaths,
12321
12470
  affiliatedFilesResolutionRules: {
12322
- supportedAffiliatedFilesNamesExtensionsWithoutLeadingDots: StylusPreProcessorSpecialist_1.default.
12323
- supportedEntryPointsFileNamesExtensionsWithoutLeadingDots,
12324
12471
  affiliatedFilesIncludingDeclarationsPatterns: StylusPreProcessorSpecialist_1.default.partialFilesIncludingDeclarationPatterns,
12325
- implicitAffiliatedFilesNamesExtensionsWithoutLeadingDots: StylusPreProcessorSpecialist_1.default.
12326
- implicitFileNamesExtensionsWithoutPrependedDotsOfPartials
12472
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles: StylusPreProcessorSpecialist_1.default.
12473
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials
12327
12474
  },
12328
12475
  isEntryPoint: stylesProcessingSettingsRepresentative.isEntryPoint.bind(stylesProcessingSettingsRepresentative),
12329
12476
  logging: {
@@ -12355,7 +12502,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
12355
12502
  handler: StylesProcessor.onEntryPointFileDeleted
12356
12503
  });
12357
12504
  }
12358
- return dataHoldingSelfInstance.processEntryPoints(stylesProcessingSettingsRepresentative.relevantEntryPointsSourceFilesAbsolutePaths);
12505
+ return dataHoldingSelfInstance.processEntryPoints(stylesProcessingSettingsRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths);
12359
12506
  }
12360
12507
  constructor(stylesProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
12361
12508
  super({
@@ -12622,7 +12769,7 @@ class ESLintLinterSpecialist {
12622
12769
  return fs_1.default.
12623
12770
  readFileSync(path_1.default.join(process.cwd(), ESLintLinterSpecialist.IGNORING_DIRECTIVES_DEFAULT_FILE_NAME_WITH_EXTENSION), "utf8").
12624
12771
  split(/\r?\n/u).
12625
- filter((line) => /\w/u.test(line)).
12772
+ filter((line) => (/\w/u).test(line)).
12626
12773
  filter((line) => !(mustSkipNodeModulesDirectory && line.includes("node_modules"))).
12627
12774
  map((relativePathBasedGlob) => (path_1.default.parse(relativePathBasedGlob).ext.length === 0 ?
12628
12775
  es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath, relativePathBasedGlob], { alwaysForwardSlashSeparators: true })) :
@@ -12644,14 +12791,13 @@ exports["default"] = ESLintLinterSpecialist;
12644
12791
  Object.defineProperty(exports, "__esModule", ({ value: true }));
12645
12792
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12646
12793
  class PugPreProcessorSpecialist {
12647
- static supportedEntryPointsFileNamesExtensionsWithoutLeadingDots = ["pug"];
12648
12794
  /* [ Fiddle ] https://regex101.com/r/uqO9CT/4 */
12649
12795
  static partialFilesIncludingDeclarationPatterns = [
12650
12796
  /* eslint-disable-next-line prefer-named-capture-group --
12651
12797
  * No simple way to know the capturing group name outside of this file. */
12652
12798
  /^ *(?:include|extends) +((?:\w|-|\.|\/)+) *$/gmu
12653
12799
  ];
12654
- static implicitFileNamesExtensionsWithoutPrependedDotsOfPartials = ["pug"];
12800
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["pug"];
12655
12801
  static linterConfigurationFilesNamesWithExtensions = [
12656
12802
  ".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json", "package.json"
12657
12803
  ];
@@ -12673,7 +12819,7 @@ class PugPreProcessorSpecialist {
12673
12819
  /* [ Theory ] Basically, "extends" declaration must be the first line of the Pug file but the unbuffered comment (`-//`)
12674
12820
  * is the only exception. */
12675
12821
  static isSourceCodeIncludingExtendingDeclaration(sourceCode) {
12676
- return /^extends/gmu.test(sourceCode);
12822
+ return (/^extends/gmu).test(sourceCode);
12677
12823
  }
12678
12824
  static isSourceCodeLineIncludingExtendingDeclaration(sourceCodeLine) {
12679
12825
  return sourceCodeLine.startsWith("extends");
@@ -12687,7 +12833,7 @@ class PugPreProcessorSpecialist {
12687
12833
  let endLineIndex;
12688
12834
  let currentlyIteratedLineIndex = startLineIndex + 1;
12689
12835
  for (const sourceCodeLine of sourceCodeLines.slice(currentlyIteratedLineIndex)) {
12690
- if (/^(?: +|\t)?block/u.test(sourceCodeLine)) {
12836
+ if ((/^(?: +|\t)?block/u).test(sourceCodeLine)) {
12691
12837
  endLineIndex = currentlyIteratedLineIndex;
12692
12838
  break;
12693
12839
  }
@@ -12735,14 +12881,13 @@ exports["default"] = StlintLinterSpecialist;
12735
12881
 
12736
12882
  Object.defineProperty(exports, "__esModule", ({ value: true }));
12737
12883
  class StylusPreProcessorSpecialist {
12738
- static supportedEntryPointsFileNamesExtensionsWithoutLeadingDots = ["styl", "stylus"];
12739
12884
  /* [ Fiddle ] https://regex101.com/r/KDM184/3 */
12740
12885
  static partialFilesIncludingDeclarationPatterns = [
12741
12886
  /* eslint-disable-next-line prefer-named-capture-group --
12742
12887
  * No simple way to know the capturing group name outside of this file. */
12743
12888
  /^ *@(?:import|require) +['"]((?:\w|-|\.|\/)+?)['"] *;? *$/gmu
12744
12889
  ];
12745
- static implicitFileNamesExtensionsWithoutPrependedDotsOfPartials = ["styl", "stylus", "css"];
12890
+ static implicitFilesNamesExtensionsWithoutLeadingDotsOfPartials = ["styl", "stylus", "css"];
12746
12891
  }
12747
12892
  exports["default"] = StylusPreProcessorSpecialist;
12748
12893
 
@@ -13326,39 +13471,37 @@ class SourceCodeSelectiveReprocessingHelper {
13326
13471
  }
13327
13472
  }
13328
13473
  };
13329
- entryPointsAbsolutePaths;
13330
13474
  entryPointsMetadata = new Map();
13331
13475
  isEntryPoint;
13332
13476
  affiliatedFilesMetadata = new Map();
13333
13477
  affiliatedFilesResolutionRules;
13478
+ absolutePathsOfAffiliatedFilesWhichHasBeenScannedDuringCurrentPass = new Set();
13334
13479
  CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH;
13335
13480
  CACHED_METADATA_FILE_ABSOLUTE_PATH;
13336
- absolutePathsOfAffiliatedFilesWhichHasBeenScannedDuringCurrentPass = new Set();
13337
13481
  TARGET_FILES_TYPE_IN_SINGULAR_FORM;
13338
13482
  constructor(initializationProperties) {
13339
- this.entryPointsAbsolutePaths = new Set(initializationProperties.entryPointsSourceFilesAbsolutePaths.map((entryPointFileAbsolutePath__potentiallyWithOperationingSystemDependentPathSeparators) => es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(entryPointFileAbsolutePath__potentiallyWithOperationingSystemDependentPathSeparators)));
13340
13483
  this.isEntryPoint = initializationProperties.isEntryPoint;
13341
13484
  this.affiliatedFilesResolutionRules = initializationProperties.affiliatedFilesResolutionRules;
13342
13485
  this.CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH = initializationProperties.consumingProjectRootDirectoryAbsolutePath;
13343
13486
  this.CACHED_METADATA_FILE_ABSOLUTE_PATH = initializationProperties.cacheFileAbsolutePath;
13344
13487
  this.TARGET_FILES_TYPE_IN_SINGULAR_FORM = initializationProperties.logging.targetFilesTypeInSingularForm;
13345
- this.generateInitialMetadataMaps();
13488
+ this.generateInitialMetadataMaps(new Set(initializationProperties.initialEntryPointsSourceFilesAbsolutePaths.map((entryPointFileAbsolutePath__potentiallyWithOperationingSystemDependentPathSeparators) => es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(entryPointFileAbsolutePath__potentiallyWithOperationingSystemDependentPathSeparators))));
13346
13489
  if (initializationProperties.logging.mustEnable) {
13347
13490
  this.logAffiliatedFilesAndEntryPointsRelationships();
13348
13491
  }
13349
13492
  this.cacheFilesMetadataMapsToFile();
13350
13493
  }
13351
- getAbsolutePathsOfEntryPointsWhichMustBeProcessed(changedFilesAbsolutePaths) {
13494
+ getAbsolutePathsOfEntryPointsWhichMustBeProcessed(absolutePathsOfFilesWithChangesStatus) {
13352
13495
  const absolutePathsOfEntryPointsWhichMustBeProcessed = new Set();
13353
- for (const changedFileAbsolutePath of changedFilesAbsolutePaths) {
13354
- if (this.isEntryPoint(changedFileAbsolutePath)) {
13355
- if (fs_1.default.existsSync(changedFileAbsolutePath)) {
13356
- absolutePathsOfEntryPointsWhichMustBeProcessed.add(changedFileAbsolutePath);
13496
+ for (const absolutePathOfFileWithChangesStatus of absolutePathsOfFilesWithChangesStatus) {
13497
+ if (this.isEntryPoint(absolutePathOfFileWithChangesStatus)) {
13498
+ if (fs_1.default.existsSync(absolutePathOfFileWithChangesStatus)) {
13499
+ absolutePathsOfEntryPointsWhichMustBeProcessed.add(absolutePathOfFileWithChangesStatus);
13357
13500
  }
13358
13501
  else {
13359
13502
  this.entryPointsMetadata.delete(es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
13360
13503
  basePath: this.CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH,
13361
- comparedPath: changedFileAbsolutePath,
13504
+ comparedPath: absolutePathOfFileWithChangesStatus,
13362
13505
  alwaysForwardSlashSeparators: true
13363
13506
  }));
13364
13507
  }
@@ -13366,10 +13509,10 @@ class SourceCodeSelectiveReprocessingHelper {
13366
13509
  else {
13367
13510
  const targetAffiliatedFileRelativePath = es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
13368
13511
  basePath: this.CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH,
13369
- comparedPath: changedFileAbsolutePath,
13512
+ comparedPath: absolutePathOfFileWithChangesStatus,
13370
13513
  alwaysForwardSlashSeparators: true
13371
13514
  });
13372
- if (fs_1.default.existsSync(changedFileAbsolutePath)) {
13515
+ if (fs_1.default.existsSync(absolutePathOfFileWithChangesStatus)) {
13373
13516
  (0, es_extensions_1.addMultipleElementsToSet)(absolutePathsOfEntryPointsWhichMustBeProcessed, Array.from(this.affiliatedFilesMetadata.get(targetAffiliatedFileRelativePath)?.parentEntryPointsAbsolutePaths ?? []));
13374
13517
  }
13375
13518
  else {
@@ -13379,11 +13522,11 @@ class SourceCodeSelectiveReprocessingHelper {
13379
13522
  }
13380
13523
  return Array.from(absolutePathsOfEntryPointsWhichMustBeProcessed);
13381
13524
  }
13382
- /* === First mapping since last YDA launch ======================================================================== */
13525
+ /* ━━━ First Mapping Since Last YDA Launch ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
13383
13526
  /* [ Theory ] The cached metadata from previous YDA launches could be. */
13384
- generateInitialMetadataMaps() {
13385
- this.extractCacheFromFileIfItExists();
13386
- for (const entryPointFileAbsolutePath of this.entryPointsAbsolutePaths) {
13527
+ generateInitialMetadataMaps(initialEntryPointsAbsolutePaths) {
13528
+ this.extractCacheFromFileAndApplyIfItExists();
13529
+ for (const entryPointFileAbsolutePath of initialEntryPointsAbsolutePaths) {
13387
13530
  const entryPointDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.extractDirectoryFromFilePath({
13388
13531
  targetPath: entryPointFileAbsolutePath,
13389
13532
  alwaysForwardSlashSeparators: true,
@@ -13408,10 +13551,11 @@ class SourceCodeSelectiveReprocessingHelper {
13408
13551
  continue;
13409
13552
  }
13410
13553
  es_extensions_1.Logger.logError({
13554
+ mustOutputIf: true || 0,
13411
13555
  errorType: "FileStatisticsRetrievingFailedError",
13412
- title: "File statistics retrieving failed error",
13413
- description: "Unable to retrieve the statistics of file " +
13414
- `"${entryPointFilePathRelativeToConsumingProjectRootDirectory}". This file will not be mapped.`,
13556
+ title: "File Statistics Retrieving Failed Error",
13557
+ description: `Unable to retrieve the statistics of file "${entryPointFilePathRelativeToConsumingProjectRootDirectory}". ` +
13558
+ "This file will not be mapped.",
13415
13559
  occurrenceLocation: "sourceCodeSelectiveReprocessingHelper.generateInitialMetadataMaps()",
13416
13560
  caughtError: error
13417
13561
  });
@@ -13419,8 +13563,7 @@ class SourceCodeSelectiveReprocessingHelper {
13419
13563
  }
13420
13564
  const cachedMetadataOfCurrentEntryPoint = this.entryPointsMetadata.get(entryPointFilePathRelativeToConsumingProjectRootDirectory);
13421
13565
  let absolutePathsOfDirectExistingAffiliatedFilesOfCurrentEntryPoint;
13422
- if ((0, es_extensions_1.isNotUndefined)(cachedMetadataOfCurrentEntryPoint) &&
13423
- cachedMetadataOfCurrentEntryPoint.modificationDate__ISO8601 === entryPointModificationDateTime__ISO8601) {
13566
+ if (cachedMetadataOfCurrentEntryPoint?.modificationDate__ISO8601 === entryPointModificationDateTime__ISO8601) {
13424
13567
  /* [ Theory ] Although the entry point file is existing and has not changed since last mapping, its affiliated
13425
13568
  * files could be added or deleted. */
13426
13569
  absolutePathsOfDirectExistingAffiliatedFilesOfCurrentEntryPoint = new Set();
@@ -13453,7 +13596,7 @@ class SourceCodeSelectiveReprocessingHelper {
13453
13596
  badge: { customText: "Debug" },
13454
13597
  title: "SourceCodeSelectiveReprocessingHelper, entry point has been analyzed.",
13455
13598
  description: `The metadata of entry point "${entryPointFilePathRelativeToConsumingProjectRootDirectory}" ` +
13456
- `has been updated and now it is:\n${(0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.entryPointsMetadata)}\n`
13599
+ `has been is:\n${(0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.entryPointsMetadata)}\n`
13457
13600
  });
13458
13601
  for (const absolutePathOfDirectExistingAffiliatedFileOfCurrentEntryPoint of absolutePathsOfDirectExistingAffiliatedFilesOfCurrentEntryPoint) {
13459
13602
  this.updateMetadataMapForExistingAffiliatedFile({
@@ -13466,7 +13609,7 @@ class SourceCodeSelectiveReprocessingHelper {
13466
13609
  }
13467
13610
  this.absolutePathsOfAffiliatedFilesWhichHasBeenScannedDuringCurrentPass.clear();
13468
13611
  }
13469
- extractCacheFromFileIfItExists() {
13612
+ extractCacheFromFileAndApplyIfItExists() {
13470
13613
  let cachedRawMetadata;
13471
13614
  try {
13472
13615
  cachedRawMetadata = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
@@ -13476,12 +13619,13 @@ class SourceCodeSelectiveReprocessingHelper {
13476
13619
  });
13477
13620
  }
13478
13621
  catch (error) {
13479
- if (!(error instanceof es_extensions_nodejs_1.FileNotFoundError) && true) {
13622
+ if (!(error instanceof es_extensions_nodejs_1.FileNotFoundError)) {
13480
13623
  es_extensions_1.Logger.logError({
13624
+ mustOutputIf: true || 0,
13481
13625
  errorType: "CachedDataRetrievingFailure",
13482
- title: "Cached data retrieving failure",
13626
+ title: "Cached Data Retrieving Failure",
13483
13627
  description: `Unable to read the existing cache file "${this.CACHED_METADATA_FILE_ABSOLUTE_PATH}".`,
13484
- occurrenceLocation: "sourceCodeSelectiveReprocessingHelper.extractCacheFromFileIfItExists()",
13628
+ occurrenceLocation: "sourceCodeSelectiveReprocessingHelper.extractCacheFromFileAndApplyIfItExists()",
13485
13629
  caughtError: error
13486
13630
  });
13487
13631
  }
@@ -13508,38 +13652,38 @@ class SourceCodeSelectiveReprocessingHelper {
13508
13652
  fileContent = fs_1.default.readFileSync(targetFileAbsolutePath, "utf-8");
13509
13653
  }
13510
13654
  catch (error) {
13511
- if ((0, es_extensions_nodejs_1.isErrnoException)(error) && error.code === "ENOENT" && true) {
13655
+ if ((0, es_extensions_nodejs_1.isErrnoException)(error) && error.code === "ENOENT") {
13512
13656
  es_extensions_1.Logger.logError({
13657
+ mustOutputIf: true || 0,
13513
13658
  errorType: es_extensions_1.UnexpectedEventError.NAME,
13514
13659
  title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
13515
13660
  description: `The existence of the file "${targetFileAbsolutePath}" has been confirmed one moment ago ` +
13516
13661
  "but suddenly disappeared during reading. Skipping this file.",
13517
13662
  occurrenceLocation: "sourceCodeSelectiveReprocessingHelper." +
13518
- "getAbsolutePathsOfExistingAffiliatedFilesOfExistingUpdatedTargetOne(compoundObject)",
13663
+ "getAbsolutePathsOfExistingAffiliatedFilesOfExistingUpdatedTargetOne(compoundParameter)",
13519
13664
  caughtError: error
13520
13665
  });
13521
13666
  return absolutePathsOfExistingAffiliatedFilesOfTargetOne;
13522
13667
  }
13523
- if (true) {
13524
- es_extensions_1.Logger.logError({
13525
- errorType: es_extensions_1.FileReadingFailedError.NAME,
13526
- title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
13527
- description: es_extensions_1.FileReadingFailedError.localization.generateDescription({ filePath: targetFileAbsolutePath }),
13528
- occurrenceLocation: "sourceCodeSelectiveReprocessingHelper." +
13529
- "getAbsolutePathsOfExistingAffiliatedFilesOfExistingUpdatedTargetOne(compoundObject)",
13530
- caughtError: error
13531
- });
13532
- }
13668
+ es_extensions_1.Logger.logError({
13669
+ mustOutputIf: true || 0,
13670
+ errorType: es_extensions_1.FileReadingFailedError.NAME,
13671
+ title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
13672
+ description: es_extensions_1.FileReadingFailedError.localization.generateDescription({ filePath: targetFileAbsolutePath }),
13673
+ occurrenceLocation: "sourceCodeSelectiveReprocessingHelper." +
13674
+ "getAbsolutePathsOfExistingAffiliatedFilesOfExistingUpdatedTargetOne(compoundParameter)",
13675
+ caughtError: error
13676
+ });
13533
13677
  return absolutePathsOfExistingAffiliatedFilesOfTargetOne;
13534
13678
  }
13535
13679
  for (const fileIncludingDeclarationPattern of this.affiliatedFilesResolutionRules.affiliatedFilesIncludingDeclarationsPatterns) {
13536
- /* [ Theory ] Same file could be included for the multiple times. Occasionally it is even meaningful,
13537
- * but we are not need the duplicated here. */
13680
+ /* [ Theory ] Same file could be included for the multiple times.
13681
+ * Occasionally it is even meaningful, but we are not need the duplicated here. */
13538
13682
  const affiliatedFilesRawPaths = new Set(Array.from(fileContent.matchAll(fileIncludingDeclarationPattern)).
13539
13683
  map((regularExpressionMatchingData) => regularExpressionMatchingData[1]).
13540
13684
  filter((affiliatedFileRawPath) => (0, es_extensions_1.isNonEmptyString)(affiliatedFileRawPath)));
13541
13685
  for (const affiliatedFileRawPath of affiliatedFilesRawPaths) {
13542
- const affiliatedFileNormalizedPath = this.computedAbsolutePathOfAffiliatedFileIfItExists({
13686
+ const affiliatedFileNormalizedPath = this.computeAbsolutePathOfAffiliatedFileIfItExists({
13543
13687
  affiliatedFileRawPath,
13544
13688
  parentFileDirectoryAbsolutePath: targetFileDirectoryAbsolutePath
13545
13689
  });
@@ -13652,16 +13796,17 @@ class SourceCodeSelectiveReprocessingHelper {
13652
13796
  });
13653
13797
  }
13654
13798
  }
13655
- computedAbsolutePathOfAffiliatedFileIfItExists({ affiliatedFileRawPath, parentFileDirectoryAbsolutePath }) {
13799
+ computeAbsolutePathOfAffiliatedFileIfItExists({ affiliatedFileRawPath, parentFileDirectoryAbsolutePath }) {
13656
13800
  const possibleAbsolutePathsOfTargetAffiliatedFile = new Set();
13657
13801
  const explicitlySpecifiedLastFileNameExtensionInAffiliatedFileRawPath = (0, es_extensions_1.extractLastExtensionOfFileName)({ targetPath: affiliatedFileRawPath, withLeadingDot: false });
13658
- /* [ Approach ] The second condition is aimed for the processing of paths with multiple files names extensions.
13802
+ /* [ Approach ]
13803
+ * The second condition is aimed to the processing of paths with multiple files names extensions.
13659
13804
  * For example, in the Pug preprocessor case, the file "ProductCard.static.pug" could be referred as
13660
- * `include ../ProductCard.static`. */
13805
+ * `include ProductCard.static`. */
13661
13806
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedLastFileNameExtensionInAffiliatedFileRawPath) ||
13662
- !this.affiliatedFilesResolutionRules.supportedAffiliatedFilesNamesExtensionsWithoutLeadingDots.
13807
+ !this.affiliatedFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles.
13663
13808
  includes(explicitlySpecifiedLastFileNameExtensionInAffiliatedFileRawPath)) {
13664
- (0, es_extensions_1.addMultipleElementsToSet)(possibleAbsolutePathsOfTargetAffiliatedFile, (this.affiliatedFilesResolutionRules.implicitAffiliatedFilesNamesExtensionsWithoutLeadingDots ?? []).map((affiliatedFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([parentFileDirectoryAbsolutePath, `${affiliatedFileRawPath}.${affiliatedFileNameImplicitExtension}`], { alwaysForwardSlashSeparators: true })));
13809
+ (0, es_extensions_1.addMultipleElementsToSet)(possibleAbsolutePathsOfTargetAffiliatedFile, this.affiliatedFilesResolutionRules.implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles.map((affiliatedFileNameImplicitExtension) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([parentFileDirectoryAbsolutePath, `${affiliatedFileRawPath}.${affiliatedFileNameImplicitExtension}`], { alwaysForwardSlashSeparators: true })));
13665
13810
  }
13666
13811
  else {
13667
13812
  possibleAbsolutePathsOfTargetAffiliatedFile.add(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([parentFileDirectoryAbsolutePath, affiliatedFileRawPath], { alwaysForwardSlashSeparators: true }));
@@ -13680,7 +13825,7 @@ class SourceCodeSelectiveReprocessingHelper {
13680
13825
  description: `The error occurred during the checking of the file ${possibleAbsolutePathOfTargetAffiliatedFile}` +
13681
13826
  "for existence.",
13682
13827
  occurrenceLocation: "sourceCodeSelectiveReprocessingHelper." +
13683
- "computedAbsolutePathOfAffiliatedFileIfItExists(compoundParameter)",
13828
+ "computeAbsolutePathOfAffiliatedFileIfItExists(compoundParameter)",
13684
13829
  caughtError: error
13685
13830
  });
13686
13831
  }
@@ -13731,7 +13876,7 @@ class SourceCodeSelectiveReprocessingHelper {
13731
13876
  fs_1.default.writeFileSync(this.CACHED_METADATA_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(outputData));
13732
13877
  }
13733
13878
  /* === Incremental remapping ====================================================================================== */
13734
- /* === Logging ==================================================================================================== */
13879
+ /* ━━━ Logging ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
13735
13880
  logAffiliatedFilesAndEntryPointsRelationships() {
13736
13881
  let accumulatingString = "";
13737
13882
  for (const [affiliatedFileRelativePath, affiliatedFileMetadata] of this.affiliatedFilesMetadata.entries()) {
@@ -13745,7 +13890,7 @@ class SourceCodeSelectiveReprocessingHelper {
13745
13890
  }
13746
13891
  }
13747
13892
  es_extensions_1.Logger.logInfo({
13748
- title: `${this.TARGET_FILES_TYPE_IN_SINGULAR_FORM} affiliated files and respective parent entry points relationships`,
13893
+ title: `${this.TARGET_FILES_TYPE_IN_SINGULAR_FORM} Affiliated Files and Respective Parent Entry Points Relationships`,
13749
13894
  description: accumulatingString.length > 0 ? accumulatingString : "No existing affiliated files has been found."
13750
13895
  });
13751
13896
  }
@@ -14282,7 +14427,7 @@ function revisionHash(data) {
14282
14427
  \***********************/
14283
14428
  /***/ ((module) => {
14284
14429
 
14285
- module.exports = JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.4.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.0","@typescript-eslint/eslint-plugin":"7.4.0","@typescript-eslint/parser":"7.4.0","@vue/compiler-sfc":"3.4.21","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-alpha.10","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.6","@yamato-daiwa/style_guides":"0.2.0","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"6.11.0","cssnano":"6.1.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.1","eslint-plugin-vue":"9.24.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":"9.0.1","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":"6.2.3","probe-image-size":"7.2.3","pug-lint":"2.7.0","pug-plain-loader":"1.1.0","puppeteer":"21.0.0","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"3.3.4","stylus":"0.63.0","stylus-loader":"8.0.0","ts-loader":"9.4.4","vinyl":"2.2.1","vue-loader":"17.3.1","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.88.2","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.0"},"devDependencies":{"@types/browser-sync":"2.26.3","@types/cssnano":"5.0.0","@types/gulp":"4.0.10","@types/gulp-html-prettify":"0.0.2","@types/gulp-if":"0.0.34","@types/gulp-imagemin":"8.0.1","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.33","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.36","@types/gulp-stylus":"2.7.8","@types/node":"18.13.0","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.3","@types/pug":"2.0.9","@types/webpack-node-externals":"2.5.3","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.1.0","ts-node":"10.9.2","typescript":"5.4.3","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"}}');
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"}}');
14286
14431
 
14287
14432
  /***/ })
14288
14433
 
package/README.md CHANGED
@@ -98,9 +98,6 @@ npm i @yamato-daiwa/automation -D -E
98
98
  <dt>pug-lint</dt>
99
99
  <dd>Used to providing linting of Pug source code</dd>
100
100
 
101
- <dt>pug-plain-loader</dt>
102
- <dd>Used to providing of the Pug source code language for Vue templates in Single File Components</dd>
103
-
104
101
  <dt>puppeteer</dt>
105
102
  <dd>
106
103
  Used for the accessibility inspection of the HTML code.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamato-daiwa/automation",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.",
5
5
  "keywords": [
6
6
  "build",
@@ -19,23 +19,23 @@
19
19
  "EntryPoint.js"
20
20
  ],
21
21
  "dependencies": {
22
- "@stylistic/eslint-plugin": "1.7.0",
23
- "@typescript-eslint/eslint-plugin": "7.4.0",
24
- "@typescript-eslint/parser": "7.4.0",
25
- "@vue/compiler-sfc": "3.4.21",
22
+ "@stylistic/eslint-plugin": "1.7.2",
23
+ "@typescript-eslint/eslint-plugin": "7.12.0",
24
+ "@typescript-eslint/parser": "7.12.0",
25
+ "@vue/compiler-sfc": "3.4.27",
26
26
  "@webdiscus/pug-loader": "2.11.0",
27
- "@yamato-daiwa/es-extensions": "1.7.0-alpha.10",
28
- "@yamato-daiwa/es-extensions-nodejs": "1.7.0-alpha.6",
29
- "@yamato-daiwa/style_guides": "0.2.0",
27
+ "@yamato-daiwa/es-extensions": "1.7.0-rc.2",
28
+ "@yamato-daiwa/es-extensions-nodejs": "1.7.0-alpha.10",
29
+ "@yamato-daiwa/style_guides": "0.2.7",
30
30
  "autoprefixer": "10.4.19",
31
31
  "browser-sync": "3.0.2",
32
- "css-loader": "6.11.0",
33
- "cssnano": "6.1.2",
32
+ "css-loader": "7.1.2",
33
+ "cssnano": "7.0.2",
34
34
  "eslint": "8.57.0",
35
35
  "eslint-plugin-import": "2.29.1",
36
36
  "eslint-plugin-node": "11.1.0",
37
- "eslint-plugin-react": "7.34.1",
38
- "eslint-plugin-vue": "9.24.0",
37
+ "eslint-plugin-react": "7.34.2",
38
+ "eslint-plugin-vue": "9.26.0",
39
39
  "eslint-plugin-vue-pug": "0.6.2",
40
40
  "fork-ts-checker-webpack-plugin": "7.3.0",
41
41
  "gulp": "4.0.2",
@@ -45,7 +45,7 @@
45
45
  "gulp-imagemin": "7.1.0",
46
46
  "gulp-nodemon": "2.5.0",
47
47
  "gulp-plumber": "1.2.1",
48
- "gulp-postcss": "9.0.1",
48
+ "gulp-postcss": "10.0.0",
49
49
  "gulp-pug": "5.0.0",
50
50
  "gulp-sourcemaps": "3.0.0",
51
51
  "gulp-stylus": "3.0.1",
@@ -53,50 +53,50 @@
53
53
  "json5-loader": "4.0.1",
54
54
  "node-html-parser": "6.1.13",
55
55
  "node-notifier": "10.0.1",
56
- "pa11y": "6.2.3",
56
+ "pa11y": "8.0.0",
57
57
  "probe-image-size": "7.2.3",
58
+ "pug3-ast-loader": "0.0.0",
58
59
  "pug-lint": "2.7.0",
59
- "pug-plain-loader": "1.1.0",
60
- "puppeteer": "21.0.0",
60
+ "puppeteer": "22.10.0",
61
61
  "rev-hash": "4.1.0",
62
62
  "stlint": "1.0.65",
63
63
  "stream-combiner2": "1.1.1",
64
- "style-loader": "3.3.4",
64
+ "style-loader": "4.0.0",
65
65
  "stylus": "0.63.0",
66
- "stylus-loader": "8.0.0",
67
- "ts-loader": "9.4.4",
66
+ "stylus-loader": "8.1.0",
67
+ "ts-loader": "9.5.1",
68
68
  "vinyl": "2.2.1",
69
- "vue-loader": "17.3.1",
69
+ "vue-loader": "17.4.2",
70
70
  "vue-style-loader": "4.1.3",
71
71
  "w3c-html-validator": "0.8.1",
72
- "webpack": "5.88.2",
72
+ "webpack": "5.91.0",
73
73
  "webpack-node-externals": "3.0.0",
74
74
  "webpack-stream": "7.0.0",
75
75
  "worker-loader": "3.0.8",
76
- "yaml-loader": "0.8.0"
76
+ "yaml-loader": "0.8.1"
77
77
  },
78
78
  "devDependencies": {
79
- "@types/browser-sync": "2.26.3",
79
+ "@types/browser-sync": "2.29.0",
80
80
  "@types/cssnano": "5.0.0",
81
- "@types/gulp": "4.0.10",
82
- "@types/gulp-html-prettify": "0.0.2",
83
- "@types/gulp-if": "0.0.34",
84
- "@types/gulp-imagemin": "8.0.1",
81
+ "@types/gulp": "4.0.17",
82
+ "@types/gulp-html-prettify": "0.0.5",
83
+ "@types/gulp-if": "3.0.4",
84
+ "@types/gulp-imagemin": "8.0.6",
85
85
  "@types/gulp-nodemon": "0.0.37",
86
- "@types/gulp-plumber": "0.0.33",
86
+ "@types/gulp-plumber": "0.0.37",
87
87
  "@types/gulp-postcss": "8.0.6",
88
- "@types/gulp-sourcemaps": "0.0.36",
88
+ "@types/gulp-sourcemaps": "0.0.38",
89
89
  "@types/gulp-stylus": "2.7.8",
90
- "@types/node": "18.13.0",
90
+ "@types/node": "20.14.2",
91
91
  "@types/node-notifier": "8.0.5",
92
92
  "@types/pa11y": "5.3.7",
93
- "@types/probe-image-size": "7.2.3",
94
- "@types/pug": "2.0.9",
95
- "@types/webpack-node-externals": "2.5.3",
93
+ "@types/probe-image-size": "7.2.4",
94
+ "@types/pug": "2.0.10",
95
+ "@types/webpack-node-externals": "3.0.4",
96
96
  "@types/webpack-stream": "3.2.15",
97
- "eslint-webpack-plugin": "4.1.0",
97
+ "eslint-webpack-plugin": "4.2.0",
98
98
  "ts-node": "10.9.2",
99
- "typescript": "5.4.3",
99
+ "typescript": "5.4.5",
100
100
  "webpack-cli": "5.1.4"
101
101
  },
102
102
  "scripts": {