@yamato-daiwa/automation 0.3.2 → 0.4.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 +947 -718
  2. package/package.json +13 -13
package/EntryPoint.js CHANGED
@@ -172,7 +172,7 @@ const LocalDevelopmentServerOrchestrator_1 = __importDefault(__webpack_require__
172
172
  const BrowserLiveReloader_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloader */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloader.ts"));
173
173
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
174
174
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
175
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
175
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
176
176
  /* --- General utils ------------------------------------------------------------------------------------------------ */
177
177
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
178
178
  class ProjectBuilder {
@@ -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
  ]));
@@ -536,8 +536,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
536
536
  };
537
537
  Object.defineProperty(exports, "__esModule", ({ value: true }));
538
538
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
539
- const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts"));
540
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
539
+ const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts"));
540
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
541
541
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
542
542
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
543
543
  class AudiosSourceFilesWatcher extends AssetsSourceFilesWatcher_1.default {
@@ -862,8 +862,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
862
862
  };
863
863
  Object.defineProperty(exports, "__esModule", ({ value: true }));
864
864
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
865
- const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts"));
866
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
865
+ const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts"));
866
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
867
867
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
868
868
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
869
869
  class FontsSourceFilesWatcher extends AssetsSourceFilesWatcher_1.default {
@@ -1197,8 +1197,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1197
1197
  };
1198
1198
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1199
1199
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
1200
- const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts"));
1201
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
1200
+ const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts"));
1201
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
1202
1202
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
1203
1203
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1204
1204
  class ImagesSourceFilesWatcher extends AssetsSourceFilesWatcher_1.default {
@@ -1522,8 +1522,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1522
1522
  };
1523
1523
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1524
1524
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
1525
- const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts"));
1526
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
1525
+ const AssetsSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts"));
1526
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
1527
1527
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
1528
1528
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1529
1529
  class VideosSourceFilesWatcher extends AssetsSourceFilesWatcher_1.default {
@@ -1563,8 +1563,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1563
1563
  return (mod && mod.__esModule) ? mod : { "default": mod };
1564
1564
  };
1565
1565
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1566
- const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts"));
1567
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
1566
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
1567
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
1568
1568
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
1569
1569
  class BrowserCoordinatorRelatedFilesWatcher extends FilesPassiveWatcher_1.default {
1570
1570
  onAnyEventRelatedWithActualFilesHandler;
@@ -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
  },
@@ -2166,10 +2195,10 @@ exports["default"] = CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION;
2166
2195
 
2167
2196
  /***/ }),
2168
2197
 
2169
- /***/ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts":
2170
- /*!**************************************************************************!*\
2171
- !*** ./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts ***!
2172
- \**************************************************************************/
2198
+ /***/ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts":
2199
+ /*!********************************************************************************************!*\
2200
+ !*** ./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts ***!
2201
+ \********************************************************************************************/
2173
2202
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2174
2203
 
2175
2204
 
@@ -2177,105 +2206,60 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2177
2206
  return (mod && mod.__esModule) ? mod : { "default": mod };
2178
2207
  };
2179
2208
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2180
- /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
2181
- const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts"));
2182
- /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
2183
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
2184
- /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
2209
+ /* --- Business rules ----------------------------------------------------------------------------------------------- */
2210
+ const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2211
+ /* --- Utils -------------------------------------------------------------------------------------------------------- */
2185
2212
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2186
2213
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2187
- class AssetsSourceFilesWatcher extends FilesPassiveWatcher_1.default {
2188
- onAnyEventRelatedWithActualFiles = {};
2189
- onFileAddedEventHandlers = {};
2190
- onFileUpdatedEventHandlers = {};
2191
- onFileDeletedEventHandlers = {};
2192
- TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
2193
- TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
2194
- LOGGER_BADGE_TEXT;
2195
- constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
2196
- super({
2197
- ID,
2198
- targetFilesGlobSelectors: [
2199
- es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
2200
- basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
2201
- fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
2202
- }),
2203
- ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
2204
- ],
2205
- mustLogEvents
2206
- });
2207
- this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
2208
- this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
2209
- this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Source Files Watcher Report`;
2210
- }
2211
- notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
2212
- for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
2213
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2214
+ const mustProvideIncrementalProjectBuilding_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding */ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts"));
2215
+ class ProjectBuildingCommonSettingsNormalizer {
2216
+ static normalize({ commonSettings__fromFile__rawValid, consumingProjectRootDirectoryAbsolutePath, projectBuildingMode, actualSelectiveExecutionID, actualSelectiveExecution }) {
2217
+ const consumingProjectRootDirectoryAbsolutePath__forwardSlashes = es_extensions_nodejs_1.ImprovedPath.
2218
+ replacePathSeparatorsToForwardSlashes(consumingProjectRootDirectoryAbsolutePath);
2219
+ const actualPublicDirectoryRelativePath = commonSettings__fromFile__rawValid.publicDirectoriesRelativePaths?.[projectBuildingMode];
2220
+ let actualPublicDirectoryAbsolutePath;
2221
+ if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
2222
+ actualPublicDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { alwaysForwardSlashSeparators: true });
2214
2223
  }
2215
- switch (eventName) {
2216
- case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
2217
- es_extensions_1.Logger.logInfo({
2218
- mustOutputIf: this.mustLogEvents,
2219
- badge: { customText: this.LOGGER_BADGE_TEXT },
2220
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} File Added`,
2221
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2222
- });
2223
- for (const handler of Object.values(this.onFileAddedEventHandlers)) {
2224
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2225
- }
2226
- break;
2227
- }
2228
- case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
2229
- es_extensions_1.Logger.logInfo({
2230
- mustOutputIf: this.mustLogEvents,
2231
- badge: { customText: this.LOGGER_BADGE_TEXT },
2232
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Updated`,
2233
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2234
- });
2235
- for (const handler of Object.values(this.onFileUpdatedEventHandlers)) {
2236
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2237
- }
2238
- break;
2239
- }
2240
- case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
2241
- es_extensions_1.Logger.logInfo({
2242
- mustOutputIf: this.mustLogEvents,
2243
- badge: { customText: this.LOGGER_BADGE_TEXT },
2244
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Deleted`,
2245
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2246
- });
2247
- for (const handler of Object.values(this.onFileDeletedEventHandlers)) {
2248
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2224
+ return {
2225
+ projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
2226
+ projectBuildingMode,
2227
+ mustProvideIncrementalBuilding: (0, mustProvideIncrementalProjectBuilding_1.default)(projectBuildingMode),
2228
+ ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecutionID) ? { selectiveExecutionID: actualSelectiveExecutionID } : null,
2229
+ ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecution) ? {
2230
+ tasksAndSourceFilesSelection: {
2231
+ markupProcessing: actualSelectiveExecution.
2232
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.markupProcessing],
2233
+ stylesProcessing: actualSelectiveExecution.
2234
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.stylesProcessing],
2235
+ ECMA_ScriptLogicProcessing: actualSelectiveExecution.
2236
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.ECMA_ScriptLogicProcessing],
2237
+ imagesProcessing: actualSelectiveExecution.
2238
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.imagesProcessing],
2239
+ fontsProcessing: actualSelectiveExecution.
2240
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.fontsProcessing],
2241
+ audiosProcessing: actualSelectiveExecution.
2242
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.audiosProcessing],
2243
+ plainCopying: actualSelectiveExecution.
2244
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.plainCopying],
2245
+ videosProcessing: actualSelectiveExecution.
2246
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.videosProcessing]
2249
2247
  }
2250
- }
2251
- }
2252
- }
2253
- addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
2254
- this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
2255
- return this;
2256
- }
2257
- addOnFileAddedEventHandler({ handlerID, handler }) {
2258
- this.onFileAddedEventHandlers[handlerID] = handler;
2259
- return this;
2260
- }
2261
- addFileUpdatedEventHandler({ handlerID, handler }) {
2262
- this.onFileUpdatedEventHandlers[handlerID] = handler;
2263
- return this;
2264
- }
2265
- addOnFileDeletedEventHandler({ handlerID, handler }) {
2266
- this.onFileDeletedEventHandlers[handlerID] = handler;
2267
- return this;
2248
+ } : null,
2249
+ browserLiveReloadingSetupID: actualSelectiveExecution?.browserLiveReloadingSetupID,
2250
+ actualPublicDirectoryAbsolutePath
2251
+ };
2268
2252
  }
2269
2253
  }
2270
- exports["default"] = AssetsSourceFilesWatcher;
2254
+ exports["default"] = ProjectBuildingCommonSettingsNormalizer;
2271
2255
 
2272
2256
 
2273
2257
  /***/ }),
2274
2258
 
2275
- /***/ "./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts":
2276
- /*!************************************************************************!*\
2277
- !*** ./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts ***!
2278
- \************************************************************************/
2259
+ /***/ "./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts":
2260
+ /*!***********************************************************************************************************!*\
2261
+ !*** ./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts ***!
2262
+ \***********************************************************************************************************/
2279
2263
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2280
2264
 
2281
2265
 
@@ -2283,508 +2267,146 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2283
2267
  return (mod && mod.__esModule) ? mod : { "default": mod };
2284
2268
  };
2285
2269
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2286
- /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
2287
- const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts"));
2288
- /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
2289
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
2290
- /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
2270
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
2271
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
2272
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
2291
2273
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2292
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2293
- class CodeSourceFilesWatcher extends FilesPassiveWatcher_1.default {
2294
- onAnyEventRelatedWithActualFiles = {};
2295
- onAnyRelatedFileAddedEventHandlers = {};
2296
- onAnyRelatedFileUpdatedEventHandlers = {};
2297
- onAnyRelatedFileDeletedEventHandlers = {};
2298
- onEntryPointFileAddedEventHandlers = {};
2299
- onEntryPointFileUpdatedEventHandlers = {};
2300
- onEntryPointFileDeletedEventHandlers = {};
2301
- onNonEntryPointFileAddedEventHandlers = {};
2302
- onNonEntryPointFileUpdatedEventHandlers = {};
2303
- onNonEntryPointFileDeletedEventHandlers = {};
2304
- TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
2305
- TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
2306
- LOGGER_BADGE_TEXT;
2307
- constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
2308
- super({
2309
- ID,
2310
- targetFilesGlobSelectors: [
2311
- es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
2312
- basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
2313
- fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
2314
- }),
2315
- ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
2316
- ],
2317
- mustLogEvents
2318
- });
2319
- this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
2320
- this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
2321
- this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} source files watcher report`;
2322
- }
2323
- addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
2324
- this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
2325
- return this;
2326
- }
2327
- addOnAnyRelatedFileAddedEventHandler({ handlerID, handler }) {
2328
- this.onAnyRelatedFileAddedEventHandlers[handlerID] = handler;
2329
- return this;
2330
- }
2331
- addOnAnyRelatedFileUpdatedEventHandler({ handlerID, handler }) {
2332
- this.onAnyRelatedFileUpdatedEventHandlers[handlerID] = handler;
2333
- return this;
2334
- }
2335
- addOnAnyRelatedFileDeletedEventHandler({ handlerID, handler }) {
2336
- this.onAnyRelatedFileDeletedEventHandlers[handlerID] = handler;
2337
- return this;
2338
- }
2339
- addOnEntryPointFileAddedEventHandler({ handlerID, handler }) {
2340
- this.onEntryPointFileAddedEventHandlers[handlerID] = handler;
2341
- return this;
2342
- }
2343
- addOnEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
2344
- this.onEntryPointFileUpdatedEventHandlers[handlerID] = handler;
2345
- return this;
2346
- }
2347
- addOnEntryPointFileDeletedEventHandler({ handlerID, handler }) {
2348
- this.onEntryPointFileDeletedEventHandlers[handlerID] = handler;
2349
- return this;
2350
- }
2351
- addOnNonEntryPointFileAddedEventHandler({ handlerID, handler }) {
2352
- this.onNonEntryPointFileAddedEventHandlers[handlerID] = handler;
2353
- return this;
2354
- }
2355
- addOnNonEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
2356
- this.onNonEntryPointFileUpdatedEventHandlers[handlerID] = handler;
2357
- return this;
2358
- }
2359
- addOnNonEntryPointFileDeletedEventHandler({ handlerID, handler }) {
2360
- this.onNonEntryPointFileDeletedEventHandlers[handlerID] = handler;
2361
- return this;
2362
- }
2363
- notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
2364
- const isTargetFileTheEntryPoint = this.isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
2365
- for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
2366
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2367
- }
2368
- switch (eventName) {
2369
- case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
2370
- for (const handler of Object.values(this.onAnyRelatedFileAddedEventHandlers)) {
2371
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2274
+ var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2275
+ (function (AssetsProcessingSettingsGenericProperties__FromFile__RawValid) {
2276
+ function getLocalizedPropertiesSpecification({ assetsProcessingSettingsGenericPropertiesLocalization, revisioningPropertiesLocalizedSpecification, entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification, consumingProjectLocalizedPreDefinedBuildingModes }) {
2277
+ return {
2278
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2279
+ newName: "common",
2280
+ preValidationModifications: es_extensions_1.nullToUndefined,
2281
+ type: Object,
2282
+ required: true,
2283
+ properties: {
2284
+ [assetsProcessingSettingsGenericPropertiesLocalization.common.
2285
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds.KEY]: {
2286
+ newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
2287
+ type: Number,
2288
+ required: false,
2289
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
2290
+ }
2372
2291
  }
2373
- if (isTargetFileTheEntryPoint) {
2374
- es_extensions_1.Logger.logInfo({
2375
- mustOutputIf: this.mustLogEvents,
2376
- badge: { customText: this.LOGGER_BADGE_TEXT },
2377
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Entry Point Source File Added`,
2378
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2379
- });
2380
- for (const handler of Object.values(this.onEntryPointFileAddedEventHandlers)) {
2381
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2382
- }
2383
- }
2384
- else {
2385
- es_extensions_1.Logger.logInfo({
2386
- mustOutputIf: this.mustLogEvents,
2387
- badge: { customText: this.LOGGER_BADGE_TEXT },
2388
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Partial Source File Added`,
2389
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2390
- });
2391
- for (const handler of Object.values(this.onNonEntryPointFileAddedEventHandlers)) {
2392
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2393
- }
2394
- }
2395
- break;
2396
- }
2397
- case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
2398
- for (const handler of Object.values(this.onAnyRelatedFileUpdatedEventHandlers)) {
2399
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2400
- }
2401
- if (isTargetFileTheEntryPoint) {
2402
- es_extensions_1.Logger.logInfo({
2403
- mustOutputIf: this.mustLogEvents,
2404
- badge: { customText: this.LOGGER_BADGE_TEXT },
2405
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Updated`,
2406
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2407
- });
2408
- for (const handler of Object.values(this.onEntryPointFileUpdatedEventHandlers)) {
2409
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2410
- }
2411
- }
2412
- else {
2413
- es_extensions_1.Logger.logInfo({
2414
- mustOutputIf: this.mustLogEvents,
2415
- badge: { customText: this.LOGGER_BADGE_TEXT },
2416
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Updated`,
2417
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2418
- });
2419
- for (const handler of Object.values(this.onNonEntryPointFileUpdatedEventHandlers)) {
2420
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2421
- }
2422
- }
2423
- break;
2424
- }
2425
- case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
2426
- for (const handler of Object.values(this.onAnyRelatedFileDeletedEventHandlers)) {
2427
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2428
- }
2429
- if (isTargetFileTheEntryPoint) {
2430
- es_extensions_1.Logger.logInfo({
2431
- mustOutputIf: this.mustLogEvents,
2432
- badge: { customText: this.LOGGER_BADGE_TEXT },
2433
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Deleted`,
2434
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2435
- });
2436
- for (const handler of Object.values(this.onEntryPointFileDeletedEventHandlers)) {
2437
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2292
+ },
2293
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2294
+ newName: "assetsGroups",
2295
+ preValidationModifications: es_extensions_1.nullToUndefined,
2296
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2297
+ required: true,
2298
+ value: {
2299
+ type: Object,
2300
+ properties: {
2301
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.sourceFilesTopDirectoryRelativePath.KEY]: {
2302
+ newName: "sourceFilesTopDirectoryRelativePath",
2303
+ type: String,
2304
+ required: true,
2305
+ minimalCharactersCount: 1
2306
+ },
2307
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.referenceCustomAliasName.KEY]: {
2308
+ newName: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML",
2309
+ type: String,
2310
+ required: false,
2311
+ minimalCharactersCount: 1
2312
+ },
2313
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.KEY]: {
2314
+ newName: "buildingModeDependent",
2315
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2316
+ required: true,
2317
+ minimalEntriesCount: 1,
2318
+ keysRenamings: {
2319
+ [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectBuildingModes_1.default.staticPreview,
2320
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectBuildingModes_1.default.localDevelopment,
2321
+ [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectBuildingModes_1.default.testing,
2322
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectBuildingModes_1.default.staging,
2323
+ [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectBuildingModes_1.default.production
2324
+ },
2325
+ value: {
2326
+ type: Object,
2327
+ properties: {
2328
+ ...entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification,
2329
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.revisioning.KEY]: {
2330
+ newName: "revisioning",
2331
+ type: Object,
2332
+ required: false,
2333
+ preValidationModifications: es_extensions_1.nullToUndefined,
2334
+ properties: revisioningPropertiesLocalizedSpecification
2335
+ }
2336
+ }
2337
+ }
2338
+ }
2438
2339
  }
2439
2340
  }
2440
- else {
2441
- es_extensions_1.Logger.logInfo({
2442
- mustOutputIf: this.mustLogEvents,
2443
- badge: { customText: this.LOGGER_BADGE_TEXT },
2444
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Deleted`,
2445
- description: targetFileAbsolutePath__forwardSlashesPathSeparators
2446
- });
2447
- for (const handler of Object.values(this.onNonEntryPointFileDeletedEventHandlers)) {
2448
- handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
2341
+ },
2342
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.KEY]: {
2343
+ newName: "logging",
2344
+ type: Object,
2345
+ required: false,
2346
+ preValidationModifications: es_extensions_1.nullToUndefined,
2347
+ properties: {
2348
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesPaths.KEY]: {
2349
+ newName: "filesPaths",
2350
+ type: Boolean,
2351
+ required: false
2352
+ },
2353
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesCount.KEY]: {
2354
+ newName: "filesCount",
2355
+ type: Boolean,
2356
+ required: false
2357
+ },
2358
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesWatcherEvents.KEY]: {
2359
+ newName: "filesWatcherEvents",
2360
+ type: Boolean,
2361
+ required: false
2449
2362
  }
2450
2363
  }
2451
2364
  }
2452
- }
2453
- }
2454
- isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators) {
2455
- return this.settingsRepresentative.isEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
2365
+ };
2456
2366
  }
2457
- }
2458
- exports["default"] = CodeSourceFilesWatcher;
2367
+ AssetsProcessingSettingsGenericProperties__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
2368
+ })(AssetsProcessingSettingsGenericProperties__FromFile__RawValid || (AssetsProcessingSettingsGenericProperties__FromFile__RawValid = {}));
2369
+ exports["default"] = AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2459
2370
 
2460
2371
 
2461
2372
  /***/ }),
2462
2373
 
2463
- /***/ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts":
2464
- /*!********************************************************************!*\
2465
- !*** ./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts ***!
2466
- \********************************************************************/
2467
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2374
+ /***/ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts":
2375
+ /*!***********************************************************************************************!*\
2376
+ !*** ./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts ***!
2377
+ \***********************************************************************************************/
2378
+ /***/ ((__unused_webpack_module, exports) => {
2468
2379
 
2469
2380
 
2470
- var __importDefault = (this && this.__importDefault) || function (mod) {
2471
- return (mod && mod.__esModule) ? mod : { "default": mod };
2472
- };
2473
2381
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2474
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
2475
- const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist.ts"));
2476
- /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
2477
- const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2478
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2479
- class FilesMasterWatcher {
2480
- static passiveWatchers = new Set();
2481
- static watchIfMust(projectBuildingMasterConfigRepresentative) {
2482
- if (!projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
2483
- return (callback) => { callback(); };
2484
- }
2485
- return (callback) => {
2486
- gulp_1.default.
2487
- watch([
2488
- es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
2489
- basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
2490
- }),
2491
- ...[
2492
- ".yda",
2493
- "node_modules",
2494
- ".git",
2495
- ".idea",
2496
- ".vs",
2497
- ".vscode",
2498
- ".nuxt"
2499
- ].map((directory) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
2500
- es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath, directory], { alwaysForwardSlashSeparators: true }))
2501
- ], { alwaysForwardSlashSeparators: true }))
2502
- ]).
2503
- on("all", FilesMasterWatcher.onAnyChokidarEvent.bind(this));
2504
- callback();
2505
- };
2506
- }
2507
- static addPassiveWatcher(passiveWatcher) {
2508
- FilesMasterWatcher.passiveWatchers.add(passiveWatcher);
2509
- }
2510
- /* [ Chokidar theory ] While the globs are absolute path based, the second parameter will be the absolute path too. */
2511
- static onAnyChokidarEvent(chokidarEventName, targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators) {
2512
- let eventName;
2513
- switch (chokidarEventName) {
2514
- case ChokidarSpecialist_1.default.EventsNames.fileAdded: {
2515
- eventName = FilesMasterWatcher.EventsNames.fileAdded;
2516
- break;
2517
- }
2518
- case ChokidarSpecialist_1.default.EventsNames.fileChanged: {
2519
- eventName = FilesMasterWatcher.EventsNames.fileUpdated;
2520
- break;
2521
- }
2522
- case ChokidarSpecialist_1.default.EventsNames.fileDeleted: {
2523
- eventName = FilesMasterWatcher.EventsNames.fileDeleted;
2524
- break;
2525
- }
2526
- default: {
2527
- return;
2528
- }
2529
- }
2530
- const targetFileAbsolutePath__forwardSlashesPathSeparators = es_extensions_nodejs_1.ImprovedPath.
2531
- replacePathSeparatorsToForwardSlashes(targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators);
2532
- for (const passiveWatcher of FilesMasterWatcher.passiveWatchers) {
2533
- if (passiveWatcher.isRelatedFileAbsolutePath(targetFileAbsolutePath__forwardSlashesPathSeparators)) {
2534
- passiveWatcher.notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName);
2535
- }
2536
- }
2537
- }
2538
- }
2539
- (function (FilesMasterWatcher) {
2540
- let EventsNames;
2541
- (function (EventsNames) {
2542
- EventsNames["fileAdded"] = "FILE_ADDED";
2543
- EventsNames["fileUpdated"] = "FILE_UPDATED";
2544
- EventsNames["fileDeleted"] = "FILE_DELETED";
2545
- })(EventsNames = FilesMasterWatcher.EventsNames || (FilesMasterWatcher.EventsNames = {}));
2546
- })(FilesMasterWatcher || (FilesMasterWatcher = {}));
2547
- exports["default"] = FilesMasterWatcher;
2382
+ exports.ProjectBuildingTasksIDsForConfigFile = void 0;
2383
+ var ProjectBuildingTasksIDsForConfigFile;
2384
+ (function (ProjectBuildingTasksIDsForConfigFile) {
2385
+ ProjectBuildingTasksIDsForConfigFile["markupProcessing"] = "markupProcessing";
2386
+ ProjectBuildingTasksIDsForConfigFile["stylesProcessing"] = "stylesProcessing";
2387
+ ProjectBuildingTasksIDsForConfigFile["ECMA_ScriptLogicProcessing"] = "ECMA_ScriptLogicProcessing";
2388
+ ProjectBuildingTasksIDsForConfigFile["imagesProcessing"] = "imagesProcessing";
2389
+ ProjectBuildingTasksIDsForConfigFile["fontsProcessing"] = "fontsProcessing";
2390
+ ProjectBuildingTasksIDsForConfigFile["audiosProcessing"] = "audiosProcessing";
2391
+ ProjectBuildingTasksIDsForConfigFile["videosProcessing"] = "videosProcessing";
2392
+ ProjectBuildingTasksIDsForConfigFile["browserLiveReloading"] = "browserLiveReloading";
2393
+ ProjectBuildingTasksIDsForConfigFile["plainCopying"] = "plainCopying";
2394
+ ProjectBuildingTasksIDsForConfigFile["filesWatching"] = "filesWatching";
2395
+ })(ProjectBuildingTasksIDsForConfigFile || (exports.ProjectBuildingTasksIDsForConfigFile = ProjectBuildingTasksIDsForConfigFile = {}));
2548
2396
 
2549
2397
 
2550
2398
  /***/ }),
2551
2399
 
2552
- /***/ "./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts":
2553
- /*!*********************************************************************!*\
2554
- !*** ./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts ***!
2555
- \*********************************************************************/
2556
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2400
+ /***/ "./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts":
2401
+ /*!***********************************************************************************************!*\
2402
+ !*** ./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts ***!
2403
+ \***********************************************************************************************/
2404
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2557
2405
 
2558
2406
 
2559
- Object.defineProperty(exports, "__esModule", ({ value: true }));
2560
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2561
- class FilesPassiveWatcher {
2562
- ID;
2563
- mustLogEvents;
2564
- targetFilesGlobSelectors;
2565
- constructor({ ID, targetFilesGlobSelectors, mustLogEvents }) {
2566
- this.ID = ID;
2567
- this.targetFilesGlobSelectors = targetFilesGlobSelectors;
2568
- this.mustLogEvents = mustLogEvents;
2569
- }
2570
- isRelatedFileAbsolutePath(targetFilePath) {
2571
- return es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
2572
- filePath: targetFilePath, globSelectors: this.targetFilesGlobSelectors
2573
- });
2574
- }
2575
- }
2576
- exports["default"] = FilesPassiveWatcher;
2577
-
2578
-
2579
- /***/ }),
2580
-
2581
- /***/ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts":
2582
- /*!********************************************************************************************!*\
2583
- !*** ./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts ***!
2584
- \********************************************************************************************/
2585
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2586
-
2587
-
2588
- Object.defineProperty(exports, "__esModule", ({ value: true }));
2589
- /* --- Business rules ----------------------------------------------------------------------------------------------- */
2590
- const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2591
- /* --- Utils -------------------------------------------------------------------------------------------------------- */
2592
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2593
- const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2594
- class ProjectBuildingCommonSettingsNormalizer {
2595
- static normalize({ commonSettings__fromFile__rawValid, consumingProjectRootDirectoryAbsolutePath, projectBuildingMode, actualSelectiveExecutionID, actualSelectiveExecution }) {
2596
- const consumingProjectRootDirectoryAbsolutePath__forwardSlashes = es_extensions_nodejs_1.ImprovedPath.
2597
- replacePathSeparatorsToForwardSlashes(consumingProjectRootDirectoryAbsolutePath);
2598
- const actualPublicDirectoryRelativePath = commonSettings__fromFile__rawValid.publicDirectoriesRelativePaths?.[projectBuildingMode];
2599
- let actualPublicDirectoryAbsolutePath;
2600
- if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
2601
- actualPublicDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { alwaysForwardSlashSeparators: true });
2602
- }
2603
- return {
2604
- projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
2605
- projectBuildingMode,
2606
- ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecutionID) ? { selectiveExecutionID: actualSelectiveExecutionID } : null,
2607
- ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecution) ? {
2608
- tasksAndSourceFilesSelection: {
2609
- markupProcessing: actualSelectiveExecution.
2610
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.markupProcessing],
2611
- stylesProcessing: actualSelectiveExecution.
2612
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.stylesProcessing],
2613
- ECMA_ScriptLogicProcessing: actualSelectiveExecution.
2614
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.ECMA_ScriptLogicProcessing],
2615
- imagesProcessing: actualSelectiveExecution.
2616
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.imagesProcessing],
2617
- fontsProcessing: actualSelectiveExecution.
2618
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.fontsProcessing],
2619
- audiosProcessing: actualSelectiveExecution.
2620
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.audiosProcessing],
2621
- plainCopying: actualSelectiveExecution.
2622
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.plainCopying],
2623
- videosProcessing: actualSelectiveExecution.
2624
- tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.videosProcessing]
2625
- }
2626
- } : null,
2627
- browserLiveReloadingSetupID: actualSelectiveExecution?.browserLiveReloadingSetupID,
2628
- actualPublicDirectoryAbsolutePath
2629
- };
2630
- }
2631
- }
2632
- exports["default"] = ProjectBuildingCommonSettingsNormalizer;
2633
-
2634
-
2635
- /***/ }),
2636
-
2637
- /***/ "./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts":
2638
- /*!***********************************************************************************************************!*\
2639
- !*** ./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts ***!
2640
- \***********************************************************************************************************/
2641
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2642
-
2643
-
2644
- var __importDefault = (this && this.__importDefault) || function (mod) {
2645
- return (mod && mod.__esModule) ? mod : { "default": mod };
2646
- };
2647
- Object.defineProperty(exports, "__esModule", ({ value: true }));
2648
- /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
2649
- const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
2650
- /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
2651
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2652
- var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2653
- (function (AssetsProcessingSettingsGenericProperties__FromFile__RawValid) {
2654
- function getLocalizedPropertiesSpecification({ assetsProcessingSettingsGenericPropertiesLocalization, revisioningPropertiesLocalizedSpecification, entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification, consumingProjectLocalizedPreDefinedBuildingModes }) {
2655
- return {
2656
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2657
- newName: "common",
2658
- preValidationModifications: es_extensions_1.nullToUndefined,
2659
- type: Object,
2660
- required: true,
2661
- properties: {
2662
- [assetsProcessingSettingsGenericPropertiesLocalization.common.
2663
- periodBetweenFileUpdatingAndRebuildingStarting__seconds.KEY]: {
2664
- newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
2665
- type: Number,
2666
- required: false,
2667
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
2668
- }
2669
- }
2670
- },
2671
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2672
- newName: "assetsGroups",
2673
- preValidationModifications: es_extensions_1.nullToUndefined,
2674
- type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2675
- required: true,
2676
- value: {
2677
- type: Object,
2678
- properties: {
2679
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.sourceFilesTopDirectoryRelativePath.KEY]: {
2680
- newName: "sourceFilesTopDirectoryRelativePath",
2681
- type: String,
2682
- required: true,
2683
- minimalCharactersCount: 1
2684
- },
2685
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.referenceCustomAliasName.KEY]: {
2686
- newName: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML",
2687
- type: String,
2688
- required: false,
2689
- minimalCharactersCount: 1
2690
- },
2691
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.KEY]: {
2692
- newName: "buildingModeDependent",
2693
- type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2694
- required: true,
2695
- minimalEntriesCount: 1,
2696
- keysRenamings: {
2697
- [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectBuildingModes_1.default.staticPreview,
2698
- [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectBuildingModes_1.default.localDevelopment,
2699
- [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectBuildingModes_1.default.testing,
2700
- [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectBuildingModes_1.default.staging,
2701
- [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectBuildingModes_1.default.production
2702
- },
2703
- value: {
2704
- type: Object,
2705
- properties: {
2706
- ...entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification,
2707
- [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.revisioning.KEY]: {
2708
- newName: "revisioning",
2709
- type: Object,
2710
- required: false,
2711
- preValidationModifications: es_extensions_1.nullToUndefined,
2712
- properties: revisioningPropertiesLocalizedSpecification
2713
- }
2714
- }
2715
- }
2716
- }
2717
- }
2718
- }
2719
- },
2720
- [assetsProcessingSettingsGenericPropertiesLocalization.logging.KEY]: {
2721
- newName: "logging",
2722
- type: Object,
2723
- required: false,
2724
- preValidationModifications: es_extensions_1.nullToUndefined,
2725
- properties: {
2726
- [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesPaths.KEY]: {
2727
- newName: "filesPaths",
2728
- type: Boolean,
2729
- required: false
2730
- },
2731
- [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesCount.KEY]: {
2732
- newName: "filesCount",
2733
- type: Boolean,
2734
- required: false
2735
- },
2736
- [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesWatcherEvents.KEY]: {
2737
- newName: "filesWatcherEvents",
2738
- type: Boolean,
2739
- required: false
2740
- }
2741
- }
2742
- }
2743
- };
2744
- }
2745
- AssetsProcessingSettingsGenericProperties__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
2746
- })(AssetsProcessingSettingsGenericProperties__FromFile__RawValid || (AssetsProcessingSettingsGenericProperties__FromFile__RawValid = {}));
2747
- exports["default"] = AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2748
-
2749
-
2750
- /***/ }),
2751
-
2752
- /***/ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts":
2753
- /*!***********************************************************************************************!*\
2754
- !*** ./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts ***!
2755
- \***********************************************************************************************/
2756
- /***/ ((__unused_webpack_module, exports) => {
2757
-
2758
-
2759
- Object.defineProperty(exports, "__esModule", ({ value: true }));
2760
- exports.ProjectBuildingTasksIDsForConfigFile = void 0;
2761
- var ProjectBuildingTasksIDsForConfigFile;
2762
- (function (ProjectBuildingTasksIDsForConfigFile) {
2763
- ProjectBuildingTasksIDsForConfigFile["markupProcessing"] = "markupProcessing";
2764
- ProjectBuildingTasksIDsForConfigFile["stylesProcessing"] = "stylesProcessing";
2765
- ProjectBuildingTasksIDsForConfigFile["ECMA_ScriptLogicProcessing"] = "ECMA_ScriptLogicProcessing";
2766
- ProjectBuildingTasksIDsForConfigFile["imagesProcessing"] = "imagesProcessing";
2767
- ProjectBuildingTasksIDsForConfigFile["fontsProcessing"] = "fontsProcessing";
2768
- ProjectBuildingTasksIDsForConfigFile["audiosProcessing"] = "audiosProcessing";
2769
- ProjectBuildingTasksIDsForConfigFile["videosProcessing"] = "videosProcessing";
2770
- ProjectBuildingTasksIDsForConfigFile["browserLiveReloading"] = "browserLiveReloading";
2771
- ProjectBuildingTasksIDsForConfigFile["plainCopying"] = "plainCopying";
2772
- ProjectBuildingTasksIDsForConfigFile["filesWatching"] = "filesWatching";
2773
- })(ProjectBuildingTasksIDsForConfigFile || (exports.ProjectBuildingTasksIDsForConfigFile = ProjectBuildingTasksIDsForConfigFile = {}));
2774
-
2775
-
2776
- /***/ }),
2777
-
2778
- /***/ "./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts":
2779
- /*!***********************************************************************************************!*\
2780
- !*** ./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts ***!
2781
- \***********************************************************************************************/
2782
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2783
-
2784
-
2785
- var __importDefault = (this && this.__importDefault) || function (mod) {
2786
- return (mod && mod.__esModule) ? mod : { "default": mod };
2787
- };
2407
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2408
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2409
+ };
2788
2410
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2789
2411
  /* --- Defaults ----------------------------------------------------------------------------------------------------- */
2790
2412
  const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
@@ -3533,6 +3155,27 @@ const PROCESSABLE_FILE_REFERENCE_ALIAS_PREFIX = "@";
3533
3155
  exports["default"] = PROCESSABLE_FILE_REFERENCE_ALIAS_PREFIX;
3534
3156
 
3535
3157
 
3158
+ /***/ }),
3159
+
3160
+ /***/ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts":
3161
+ /*!**************************************************************************************!*\
3162
+ !*** ./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts ***!
3163
+ \**************************************************************************************/
3164
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3165
+
3166
+
3167
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3168
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3169
+ };
3170
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3171
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
3172
+ function mustProvideIncrementalProjectBuilding(consumingProjectBuildingModes) {
3173
+ return consumingProjectBuildingModes === ConsumingProjectBuildingModes_1.default.staticPreview ||
3174
+ consumingProjectBuildingModes === ConsumingProjectBuildingModes_1.default.localDevelopment;
3175
+ }
3176
+ exports["default"] = mustProvideIncrementalProjectBuilding;
3177
+
3178
+
3536
3179
  /***/ }),
3537
3180
 
3538
3181
  /***/ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts":
@@ -4047,7 +3690,7 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4047
3690
  DISPLAYING_LINES_COUNT_AFTER_ISSUED_LINE_IN_CODE_LISTING_OF_REPORT = 1;
4048
3691
  logging;
4049
3692
  isFirstGulpPipelinePass = true;
4050
- relativePathsOfFoundFilesMentionedInCache = new Set();
3693
+ relativePathsOfFoundFilesMentionedInCacheFile = new Set();
4051
3694
  /* ━━━ Constructor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
4052
3695
  constructor(constructorParameter) {
4053
3696
  super(constructorParameter);
@@ -4134,8 +3777,10 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4134
3777
  * The methods are organized according processing order. Most of the methods are instance method, but when `this`
4135
3778
  * is not used, the methods are static. */
4136
3779
  async registerFoundFileMentionedInCache(targetFile) {
4137
- if (this.isFirstGulpPipelinePass && (0, es_extensions_1.isNotUndefined)(this.sourceFilesCheckingCachedResults.files[targetFile.relative])) {
4138
- this.relativePathsOfFoundFilesMentionedInCache.add(es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(targetFile.relative));
3780
+ const targetFileRelativePath__alwaysFrowardSlashesPathSeparators = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(targetFile.relative);
3781
+ if (this.isFirstGulpPipelinePass &&
3782
+ (0, es_extensions_1.isNotUndefined)(this.sourceFilesCheckingCachedResults.files[targetFileRelativePath__alwaysFrowardSlashesPathSeparators])) {
3783
+ this.relativePathsOfFoundFilesMentionedInCacheFile.add(targetFileRelativePath__alwaysFrowardSlashesPathSeparators);
4139
3784
  }
4140
3785
  return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
4141
3786
  }
@@ -4200,132 +3845,663 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4200
3845
  if ((0, es_extensions_1.isUndefined)(lintingResult) || lintingResult.issues.length === 0) {
4201
3846
  continue;
4202
3847
  }
4203
- issuesFormattedLogs.push(`■ ${fileRelativePath}: ${lintingResult.issues.length} issue(s)` +
4204
- `\n${this.formatIssuesOfSingleFile(lintingResult)}`);
3848
+ issuesFormattedLogs.push(`■ ${fileRelativePath}: ${lintingResult.issues.length} issue(s)` +
3849
+ `\n${this.formatIssuesOfSingleFile(lintingResult)}`);
3850
+ }
3851
+ es_extensions_1.Logger.logErrorLikeMessage({
3852
+ title: `${this.TASK_TITLE_FOR_LOGGING}, issue(s) found`,
3853
+ description: `\n${issuesFormattedLogs.join("\n\n")}`
3854
+ });
3855
+ }
3856
+ }
3857
+ onStreamEnded() {
3858
+ if (this.isFirstGulpPipelinePass) {
3859
+ /* [ Theory ] Some files could be deleted or ignored during YDA has been stopped. */
3860
+ this.sourceFilesCheckingCachedResults.files =
3861
+ this.relativePathsOfFoundFilesMentionedInCacheFile.size > 0 ?
3862
+ Array.from(Object.entries(this.sourceFilesCheckingCachedResults.files)).reduce((actualSourceFilesCheckingResults, [sourceFileRelativePath, cachedLintingResult]) => {
3863
+ if (this.relativePathsOfFoundFilesMentionedInCacheFile.has(sourceFileRelativePath)) {
3864
+ actualSourceFilesCheckingResults[sourceFileRelativePath] = cachedLintingResult;
3865
+ }
3866
+ return actualSourceFilesCheckingResults;
3867
+ }, {}) :
3868
+ this.sourceFilesCheckingCachedResults.files;
3869
+ this.relativePathsOfFoundFilesMentionedInCacheFile.clear();
3870
+ this.isFirstGulpPipelinePass = false;
3871
+ }
3872
+ this.reportCheckingIssuesAndOutputCacheToFile();
3873
+ }
3874
+ reportCheckingIssuesAndOutputCacheToFile() {
3875
+ this.reportCheckingIssues();
3876
+ es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
3877
+ filePath: this.ABSOLUTE_PATH_OF_FILE_WITH_CACHED_RESULTS_OF_SOURCE_FILES_CHECKING,
3878
+ content: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.sourceFilesCheckingCachedResults),
3879
+ synchronously: true
3880
+ });
3881
+ }
3882
+ /* eslint-enable @typescript-eslint/member-ordering */
3883
+ /* eslint-disable @typescript-eslint/member-ordering --
3884
+ * From now, the members has been organized by semantic groups. */
3885
+ /* ━━━ File watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3886
+ /* ─── Adding & updating ────────────────────────────────────────────────────────────────────────────────────────── */
3887
+ absolutePathsOfAddedOrUpdatedFiles = new Set();
3888
+ waitingForSubsequentFileWillBeAddedOrUpdatedTimer = null;
3889
+ WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS = 1;
3890
+ onFileHasBeenAddedOrUpdated(targetFileAbsolutePath) {
3891
+ if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3892
+ filePath: targetFileAbsolutePath,
3893
+ globSelectors: this.targetFilesGlobSelectors
3894
+ })) {
3895
+ return;
3896
+ }
3897
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer));
3898
+ this.absolutePathsOfAddedOrUpdatedFiles.add(targetFileAbsolutePath);
3899
+ this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer = setTimeout(() => {
3900
+ this.checkFiles(Array.from(this.absolutePathsOfAddedOrUpdatedFiles))();
3901
+ this.absolutePathsOfAddedOrUpdatedFiles.clear();
3902
+ }, (0, es_extensions_1.secondsToMilliseconds)(this.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS));
3903
+ }
3904
+ /* ─── Deleting ─────────────────────────────────────────────────────────────────────────────────────────────────── */
3905
+ relativePathsOfFilesToDelete = new Set();
3906
+ waitingForSubsequentFileWillBeDeletedTimer = null;
3907
+ static WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS = 1;
3908
+ onFileHasBeenDeleted(targetFileAbsolutePath) {
3909
+ if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3910
+ filePath: targetFileAbsolutePath,
3911
+ globSelectors: this.targetFilesGlobSelectors
3912
+ })) {
3913
+ return;
3914
+ }
3915
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeDeletedTimer));
3916
+ this.relativePathsOfFilesToDelete.add(es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
3917
+ basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
3918
+ comparedPath: targetFileAbsolutePath,
3919
+ alwaysForwardSlashSeparators: true
3920
+ }));
3921
+ this.waitingForSubsequentFileWillBeDeletedTimer = setTimeout(() => {
3922
+ for (const fileRelativePath of this.relativePathsOfFilesToDelete) {
3923
+ /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete --
3924
+ * The recommended by @typescript-eslint alternative is switching of "cachedLintingResults" to Map.
3925
+ * However, the Map could not be converted to JSON what causes the additional routines with reading and
3926
+ * writing of linting cache file. */
3927
+ delete this.sourceFilesCheckingCachedResults.files[fileRelativePath];
3928
+ }
3929
+ this.reportCheckingIssuesAndOutputCacheToFile();
3930
+ }, (0, es_extensions_1.secondsToMilliseconds)(LinterLikeTaskExecutor.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS));
3931
+ }
3932
+ }
3933
+ exports["default"] = LinterLikeTaskExecutor;
3934
+
3935
+
3936
+ /***/ }),
3937
+
3938
+ /***/ "./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts":
3939
+ /*!*************************************************************!*\
3940
+ !*** ./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts ***!
3941
+ \*************************************************************/
3942
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3943
+
3944
+
3945
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3946
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3947
+ };
3948
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3949
+ /* ─── Settings representatives ──────────────────────────────────────────────────────────────────────────────────── */
3950
+ const AssetsProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts"));
3951
+ const VinylFileClass_1 = __importDefault(__webpack_require__(/*! @Utils/VinylFileClass */ "./Utils/VinylFileClass.ts"));
3952
+ /* ─── Utils ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
3953
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3954
+ class AssetVinylFile extends VinylFileClass_1.default {
3955
+ sourceAbsolutePath;
3956
+ outputDirectoryAbsolutePath;
3957
+ actualAssetsGroupSettings;
3958
+ constructor({ initialPlainVinylFile, actualAssetsGroupSettings }) {
3959
+ super({
3960
+ explicitlySpecifiedPathPart: initialPlainVinylFile.base,
3961
+ path: initialPlainVinylFile.path,
3962
+ contents: Buffer.isBuffer(initialPlainVinylFile.contents) ? initialPlainVinylFile.contents : Buffer.from("")
3963
+ });
3964
+ this.sourceAbsolutePath = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(initialPlainVinylFile.path);
3965
+ this.actualAssetsGroupSettings = actualAssetsGroupSettings;
3966
+ this.outputDirectoryAbsolutePath = AssetsProcessingSettingsRepresentative_1.default.
3967
+ computeRelevantOutputDirectoryAbsolutePathForTargetSourceFile({
3968
+ targetSourceFileAbsolutePath: this.sourceAbsolutePath,
3969
+ relevantAssetsGroupNormalizedSettings: this.actualAssetsGroupSettings
3970
+ });
3971
+ }
3972
+ }
3973
+ exports["default"] = AssetVinylFile;
3974
+
3975
+
3976
+ /***/ }),
3977
+
3978
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts":
3979
+ /*!********************************************************************!*\
3980
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts ***!
3981
+ \********************************************************************/
3982
+ /***/ ((__unused_webpack_module, exports) => {
3983
+
3984
+
3985
+ /* eslint-disable no-inline-comments, @stylistic/no-multi-spaces -- Will comment with which technology each exclusion related. */
3986
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3987
+ /* [ Theory ] All directories and files which names started form dot will be ignored by Chokidar. */
3988
+ exports["default"] = {
3989
+ relativePathsOfExcludeFiles: [
3990
+ "package-lock.json", // NPM
3991
+ "yarn.lock" // Yarn, the third-party package manager
3992
+ ],
3993
+ relativePathsOfExcludeDirectories: [
3994
+ "bin", // .NET
3995
+ "node_modules", // Node.js
3996
+ "obj" // .NET
3997
+ ]
3998
+ };
3999
+
4000
+
4001
+ /***/ }),
4002
+
4003
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts":
4004
+ /*!**************************************************************************!*\
4005
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts ***!
4006
+ \**************************************************************************/
4007
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4008
+
4009
+
4010
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4011
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4012
+ };
4013
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4014
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
4015
+ const FilesWatchingRestrictions_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingRestrictions */ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts"));
4016
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4017
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4018
+ class FilesWatchingSettingsNormalizer {
4019
+ static normalize({ filesWatchingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized }) {
4020
+ return {
4021
+ excludedFilesGlobSelectors: new Set([
4022
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeFiles,
4023
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeFiles ?? []
4024
+ ].
4025
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true }))),
4026
+ excludedDirectoriesGlobSelectors: new Set([
4027
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeDirectories,
4028
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeDirectories ?? []
4029
+ ].
4030
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))
4031
+ };
4032
+ }
4033
+ }
4034
+ exports["default"] = FilesWatchingSettingsNormalizer;
4035
+
4036
+
4037
+ /***/ }),
4038
+
4039
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts":
4040
+ /*!******************************************************************************!*\
4041
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts ***!
4042
+ \******************************************************************************/
4043
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4044
+
4045
+
4046
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4047
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
4048
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4049
+ class FilesWatchingSettingsRepresentative {
4050
+ mustProvideFilesWatching;
4051
+ exclusiveGlobsOfExcludedFilesAndDirectories;
4052
+ fileWatchingSettings;
4053
+ constructor(fileWatchingSettings, projectBuildingMasterConfigRepresentative) {
4054
+ this.fileWatchingSettings = fileWatchingSettings;
4055
+ this.mustProvideFilesWatching = projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding;
4056
+ this.exclusiveGlobsOfExcludedFilesAndDirectories = [
4057
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedFilesGlobSelectors)),
4058
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(Array.from(this.fileWatchingSettings.excludedDirectoriesGlobSelectors))
4059
+ ];
4060
+ }
4061
+ }
4062
+ exports["default"] = FilesWatchingSettingsRepresentative;
4063
+
4064
+
4065
+ /***/ }),
4066
+
4067
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts":
4068
+ /*!************************************************************************************!*\
4069
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts ***!
4070
+ \************************************************************************************/
4071
+ /***/ ((__unused_webpack_module, exports) => {
4072
+
4073
+
4074
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4075
+ var FilesWatchingSettings__FromFile__RawValid;
4076
+ (function (FilesWatchingSettings__FromFile__RawValid) {
4077
+ function getLocalizedPropertiesSpecification(filesWatchingSettingsLocalization) {
4078
+ return {
4079
+ [filesWatchingSettingsLocalization.relativePathsOfExcludeFiles.KEY]: {
4080
+ newName: "relativePathsOfExcludeFiles",
4081
+ type: Array,
4082
+ required: false,
4083
+ element: {
4084
+ type: String,
4085
+ minimalCharactersCount: 1
4086
+ }
4087
+ },
4088
+ [filesWatchingSettingsLocalization.relativePathsOfExcludeDirectories.KEY]: {
4089
+ newName: "relativePathsOfExcludeDirectories",
4090
+ type: Array,
4091
+ required: false,
4092
+ element: {
4093
+ type: String,
4094
+ minimalCharactersCount: 1
4095
+ }
4096
+ }
4097
+ };
4098
+ }
4099
+ FilesWatchingSettings__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
4100
+ })(FilesWatchingSettings__FromFile__RawValid || (FilesWatchingSettings__FromFile__RawValid = {}));
4101
+ exports["default"] = FilesWatchingSettings__FromFile__RawValid;
4102
+
4103
+
4104
+ /***/ }),
4105
+
4106
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts":
4107
+ /*!****************************************************************************!*\
4108
+ !*** ./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts ***!
4109
+ \****************************************************************************/
4110
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4111
+
4112
+
4113
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4114
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4115
+ };
4116
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4117
+ /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
4118
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
4119
+ /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
4120
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
4121
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4122
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4123
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4124
+ class AssetsSourceFilesWatcher extends FilesPassiveWatcher_1.default {
4125
+ onAnyEventRelatedWithActualFiles = {};
4126
+ onFileAddedEventHandlers = {};
4127
+ onFileUpdatedEventHandlers = {};
4128
+ onFileDeletedEventHandlers = {};
4129
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
4130
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
4131
+ LOGGER_BADGE_TEXT;
4132
+ constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
4133
+ super({
4134
+ ID,
4135
+ targetFilesGlobSelectors: [
4136
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4137
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4138
+ fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
4139
+ }),
4140
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
4141
+ ],
4142
+ mustLogEvents
4143
+ });
4144
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
4145
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
4146
+ this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Source Files Watcher Report`;
4147
+ }
4148
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
4149
+ for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
4150
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4151
+ }
4152
+ switch (eventName) {
4153
+ case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
4154
+ es_extensions_1.Logger.logInfo({
4155
+ mustOutputIf: this.mustLogEvents,
4156
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4157
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} File Added`,
4158
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4159
+ });
4160
+ for (const handler of Object.values(this.onFileAddedEventHandlers)) {
4161
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4162
+ }
4163
+ break;
4164
+ }
4165
+ case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
4166
+ es_extensions_1.Logger.logInfo({
4167
+ mustOutputIf: this.mustLogEvents,
4168
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4169
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Updated`,
4170
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4171
+ });
4172
+ for (const handler of Object.values(this.onFileUpdatedEventHandlers)) {
4173
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4174
+ }
4175
+ break;
4176
+ }
4177
+ case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
4178
+ es_extensions_1.Logger.logInfo({
4179
+ mustOutputIf: this.mustLogEvents,
4180
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4181
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Deleted`,
4182
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4183
+ });
4184
+ for (const handler of Object.values(this.onFileDeletedEventHandlers)) {
4185
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4186
+ }
4187
+ }
4188
+ }
4189
+ }
4190
+ addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
4191
+ this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
4192
+ return this;
4193
+ }
4194
+ addOnFileAddedEventHandler({ handlerID, handler }) {
4195
+ this.onFileAddedEventHandlers[handlerID] = handler;
4196
+ return this;
4197
+ }
4198
+ addFileUpdatedEventHandler({ handlerID, handler }) {
4199
+ this.onFileUpdatedEventHandlers[handlerID] = handler;
4200
+ return this;
4201
+ }
4202
+ addOnFileDeletedEventHandler({ handlerID, handler }) {
4203
+ this.onFileDeletedEventHandlers[handlerID] = handler;
4204
+ return this;
4205
+ }
4206
+ }
4207
+ exports["default"] = AssetsSourceFilesWatcher;
4208
+
4209
+
4210
+ /***/ }),
4211
+
4212
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts":
4213
+ /*!**************************************************************************!*\
4214
+ !*** ./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts ***!
4215
+ \**************************************************************************/
4216
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4217
+
4218
+
4219
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4220
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4221
+ };
4222
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4223
+ /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
4224
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
4225
+ /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
4226
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
4227
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4228
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4229
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4230
+ class CodeSourceFilesWatcher extends FilesPassiveWatcher_1.default {
4231
+ onAnyEventRelatedWithActualFiles = {};
4232
+ onAnyRelatedFileAddedEventHandlers = {};
4233
+ onAnyRelatedFileUpdatedEventHandlers = {};
4234
+ onAnyRelatedFileDeletedEventHandlers = {};
4235
+ onEntryPointFileAddedEventHandlers = {};
4236
+ onEntryPointFileUpdatedEventHandlers = {};
4237
+ onEntryPointFileDeletedEventHandlers = {};
4238
+ onNonEntryPointFileAddedEventHandlers = {};
4239
+ onNonEntryPointFileUpdatedEventHandlers = {};
4240
+ onNonEntryPointFileDeletedEventHandlers = {};
4241
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
4242
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
4243
+ LOGGER_BADGE_TEXT;
4244
+ constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
4245
+ super({
4246
+ ID,
4247
+ targetFilesGlobSelectors: [
4248
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4249
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4250
+ fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
4251
+ }),
4252
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
4253
+ ],
4254
+ mustLogEvents
4255
+ });
4256
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
4257
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
4258
+ this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} source files watcher report`;
4259
+ }
4260
+ addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
4261
+ this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
4262
+ return this;
4263
+ }
4264
+ addOnAnyRelatedFileAddedEventHandler({ handlerID, handler }) {
4265
+ this.onAnyRelatedFileAddedEventHandlers[handlerID] = handler;
4266
+ return this;
4267
+ }
4268
+ addOnAnyRelatedFileUpdatedEventHandler({ handlerID, handler }) {
4269
+ this.onAnyRelatedFileUpdatedEventHandlers[handlerID] = handler;
4270
+ return this;
4271
+ }
4272
+ addOnAnyRelatedFileDeletedEventHandler({ handlerID, handler }) {
4273
+ this.onAnyRelatedFileDeletedEventHandlers[handlerID] = handler;
4274
+ return this;
4275
+ }
4276
+ addOnEntryPointFileAddedEventHandler({ handlerID, handler }) {
4277
+ this.onEntryPointFileAddedEventHandlers[handlerID] = handler;
4278
+ return this;
4279
+ }
4280
+ addOnEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
4281
+ this.onEntryPointFileUpdatedEventHandlers[handlerID] = handler;
4282
+ return this;
4283
+ }
4284
+ addOnEntryPointFileDeletedEventHandler({ handlerID, handler }) {
4285
+ this.onEntryPointFileDeletedEventHandlers[handlerID] = handler;
4286
+ return this;
4287
+ }
4288
+ addOnNonEntryPointFileAddedEventHandler({ handlerID, handler }) {
4289
+ this.onNonEntryPointFileAddedEventHandlers[handlerID] = handler;
4290
+ return this;
4291
+ }
4292
+ addOnNonEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
4293
+ this.onNonEntryPointFileUpdatedEventHandlers[handlerID] = handler;
4294
+ return this;
4295
+ }
4296
+ addOnNonEntryPointFileDeletedEventHandler({ handlerID, handler }) {
4297
+ this.onNonEntryPointFileDeletedEventHandlers[handlerID] = handler;
4298
+ return this;
4299
+ }
4300
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
4301
+ const isTargetFileTheEntryPoint = this.isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
4302
+ for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
4303
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4304
+ }
4305
+ switch (eventName) {
4306
+ case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
4307
+ for (const handler of Object.values(this.onAnyRelatedFileAddedEventHandlers)) {
4308
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4309
+ }
4310
+ if (isTargetFileTheEntryPoint) {
4311
+ es_extensions_1.Logger.logInfo({
4312
+ mustOutputIf: this.mustLogEvents,
4313
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4314
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Entry Point Source File Added`,
4315
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4316
+ });
4317
+ for (const handler of Object.values(this.onEntryPointFileAddedEventHandlers)) {
4318
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4319
+ }
4320
+ }
4321
+ else {
4322
+ es_extensions_1.Logger.logInfo({
4323
+ mustOutputIf: this.mustLogEvents,
4324
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4325
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Partial Source File Added`,
4326
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4327
+ });
4328
+ for (const handler of Object.values(this.onNonEntryPointFileAddedEventHandlers)) {
4329
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4330
+ }
4331
+ }
4332
+ break;
4333
+ }
4334
+ case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
4335
+ for (const handler of Object.values(this.onAnyRelatedFileUpdatedEventHandlers)) {
4336
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4337
+ }
4338
+ if (isTargetFileTheEntryPoint) {
4339
+ es_extensions_1.Logger.logInfo({
4340
+ mustOutputIf: this.mustLogEvents,
4341
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4342
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Updated`,
4343
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4344
+ });
4345
+ for (const handler of Object.values(this.onEntryPointFileUpdatedEventHandlers)) {
4346
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4347
+ }
4348
+ }
4349
+ else {
4350
+ es_extensions_1.Logger.logInfo({
4351
+ mustOutputIf: this.mustLogEvents,
4352
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4353
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Updated`,
4354
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4355
+ });
4356
+ for (const handler of Object.values(this.onNonEntryPointFileUpdatedEventHandlers)) {
4357
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4358
+ }
4359
+ }
4360
+ break;
4361
+ }
4362
+ case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
4363
+ for (const handler of Object.values(this.onAnyRelatedFileDeletedEventHandlers)) {
4364
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4365
+ }
4366
+ if (isTargetFileTheEntryPoint) {
4367
+ es_extensions_1.Logger.logInfo({
4368
+ mustOutputIf: this.mustLogEvents,
4369
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4370
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Deleted`,
4371
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4372
+ });
4373
+ for (const handler of Object.values(this.onEntryPointFileDeletedEventHandlers)) {
4374
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4375
+ }
4376
+ }
4377
+ else {
4378
+ es_extensions_1.Logger.logInfo({
4379
+ mustOutputIf: this.mustLogEvents,
4380
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4381
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Deleted`,
4382
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4383
+ });
4384
+ for (const handler of Object.values(this.onNonEntryPointFileDeletedEventHandlers)) {
4385
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4386
+ }
4387
+ }
4205
4388
  }
4206
- es_extensions_1.Logger.logErrorLikeMessage({
4207
- title: `${this.TASK_TITLE_FOR_LOGGING}, issue(s) found`,
4208
- description: `\n${issuesFormattedLogs.join("\n\n")}`
4209
- });
4210
- }
4211
- }
4212
- onStreamEnded() {
4213
- if (this.isFirstGulpPipelinePass) {
4214
- /* [ Theory ] Some files could be deleted or ignored during YDA has been stopped. */
4215
- this.sourceFilesCheckingCachedResults.files =
4216
- this.relativePathsOfFoundFilesMentionedInCache.size > 0 ?
4217
- Array.from(Object.entries(this.sourceFilesCheckingCachedResults.files)).reduce((actualSourceFilesCheckingResults, [sourceFileRelativePath, cachedLintingResult]) => {
4218
- if (this.relativePathsOfFoundFilesMentionedInCache.has(sourceFileRelativePath)) {
4219
- actualSourceFilesCheckingResults[sourceFileRelativePath] = cachedLintingResult;
4220
- }
4221
- return actualSourceFilesCheckingResults;
4222
- }, {}) :
4223
- this.sourceFilesCheckingCachedResults.files;
4224
- this.relativePathsOfFoundFilesMentionedInCache.clear();
4225
- this.isFirstGulpPipelinePass = false;
4226
4389
  }
4227
- this.reportCheckingIssuesAndOutputCacheToFile();
4228
4390
  }
4229
- reportCheckingIssuesAndOutputCacheToFile() {
4230
- this.reportCheckingIssues();
4231
- es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
4232
- filePath: this.ABSOLUTE_PATH_OF_FILE_WITH_CACHED_RESULTS_OF_SOURCE_FILES_CHECKING,
4233
- content: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.sourceFilesCheckingCachedResults),
4234
- synchronously: true
4235
- });
4391
+ isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators) {
4392
+ return this.settingsRepresentative.isEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
4236
4393
  }
4237
- /* eslint-enable @typescript-eslint/member-ordering */
4238
- /* eslint-disable @typescript-eslint/member-ordering --
4239
- * From now, the members has been organized by semantic groups. */
4240
- /* ━━━ File watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
4241
- /* ─── Adding & updating ────────────────────────────────────────────────────────────────────────────────────────── */
4242
- absolutePathsOfAddedOrUpdatedFiles = new Set();
4243
- waitingForSubsequentFileWillBeAddedOrUpdatedTimer = null;
4244
- WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS = 1;
4245
- onFileHasBeenAddedOrUpdated(targetFileAbsolutePath) {
4246
- if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
4247
- filePath: targetFileAbsolutePath,
4248
- globSelectors: this.targetFilesGlobSelectors
4249
- })) {
4250
- return;
4394
+ }
4395
+ exports["default"] = CodeSourceFilesWatcher;
4396
+
4397
+
4398
+ /***/ }),
4399
+
4400
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts":
4401
+ /*!**********************************************************************!*\
4402
+ !*** ./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts ***!
4403
+ \**********************************************************************/
4404
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4405
+
4406
+
4407
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4408
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4409
+ };
4410
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4411
+ /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
4412
+ const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist.ts"));
4413
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4414
+ const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
4415
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4416
+ class FilesMasterWatcher {
4417
+ static passiveWatchers = new Set();
4418
+ static watchIfMust(projectBuildingMasterConfigRepresentative) {
4419
+ const filesWatchingSettingsRepresentative = projectBuildingMasterConfigRepresentative.filesWatchingSettingsRepresentative;
4420
+ if (!filesWatchingSettingsRepresentative.mustProvideFilesWatching) {
4421
+ return (callback) => { callback(); };
4251
4422
  }
4252
- clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer));
4253
- this.absolutePathsOfAddedOrUpdatedFiles.add(targetFileAbsolutePath);
4254
- this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer = setTimeout(() => {
4255
- this.checkFiles(Array.from(this.absolutePathsOfAddedOrUpdatedFiles))();
4256
- this.absolutePathsOfAddedOrUpdatedFiles.clear();
4257
- }, (0, es_extensions_1.secondsToMilliseconds)(this.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS));
4423
+ return (callback) => {
4424
+ gulp_1.default.
4425
+ watch([
4426
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4427
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
4428
+ }),
4429
+ ...filesWatchingSettingsRepresentative.exclusiveGlobsOfExcludedFilesAndDirectories
4430
+ ]).
4431
+ on("all", FilesMasterWatcher.onAnyChokidarEvent.bind(this));
4432
+ callback();
4433
+ };
4258
4434
  }
4259
- /* ─── Deleting ─────────────────────────────────────────────────────────────────────────────────────────────────── */
4260
- relativePathsOfFilesToDelete = new Set();
4261
- waitingForSubsequentFileWillBeDeletedTimer = null;
4262
- static WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS = 1;
4263
- onFileHasBeenDeleted(targetFileAbsolutePath) {
4264
- if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
4265
- filePath: targetFileAbsolutePath,
4266
- globSelectors: this.targetFilesGlobSelectors
4267
- })) {
4268
- return;
4435
+ static addPassiveWatcher(passiveWatcher) {
4436
+ FilesMasterWatcher.passiveWatchers.add(passiveWatcher);
4437
+ }
4438
+ /* [ Chokidar theory ] While the globs are absolute path based, the second parameter will be the absolute path too. */
4439
+ static onAnyChokidarEvent(chokidarEventName, targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators) {
4440
+ let eventName;
4441
+ switch (chokidarEventName) {
4442
+ case ChokidarSpecialist_1.default.EventsNames.fileAdded: {
4443
+ eventName = FilesMasterWatcher.EventsNames.fileAdded;
4444
+ break;
4445
+ }
4446
+ case ChokidarSpecialist_1.default.EventsNames.fileChanged: {
4447
+ eventName = FilesMasterWatcher.EventsNames.fileUpdated;
4448
+ break;
4449
+ }
4450
+ case ChokidarSpecialist_1.default.EventsNames.fileDeleted: {
4451
+ eventName = FilesMasterWatcher.EventsNames.fileDeleted;
4452
+ break;
4453
+ }
4454
+ default: {
4455
+ return;
4456
+ }
4269
4457
  }
4270
- clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeDeletedTimer));
4271
- this.relativePathsOfFilesToDelete.add(es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
4272
- basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4273
- comparedPath: targetFileAbsolutePath,
4274
- alwaysForwardSlashSeparators: true
4275
- }));
4276
- this.waitingForSubsequentFileWillBeDeletedTimer = setTimeout(() => {
4277
- for (const fileRelativePath of this.relativePathsOfFilesToDelete) {
4278
- /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete --
4279
- * The recommended by @typescript-eslint alternative is switching of "cachedLintingResults" to Map.
4280
- * However, the Map could not be converted to JSON what causes the additional routines with reading and
4281
- * writing of linting cache file. */
4282
- delete this.sourceFilesCheckingCachedResults.files[fileRelativePath];
4458
+ const targetFileAbsolutePath__forwardSlashesPathSeparators = es_extensions_nodejs_1.ImprovedPath.
4459
+ replacePathSeparatorsToForwardSlashes(targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators);
4460
+ for (const passiveWatcher of FilesMasterWatcher.passiveWatchers) {
4461
+ if (passiveWatcher.isRelatedFileAbsolutePath(targetFileAbsolutePath__forwardSlashesPathSeparators)) {
4462
+ passiveWatcher.notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName);
4283
4463
  }
4284
- this.reportCheckingIssuesAndOutputCacheToFile();
4285
- }, (0, es_extensions_1.secondsToMilliseconds)(LinterLikeTaskExecutor.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS));
4464
+ }
4286
4465
  }
4287
4466
  }
4288
- exports["default"] = LinterLikeTaskExecutor;
4467
+ (function (FilesMasterWatcher) {
4468
+ let EventsNames;
4469
+ (function (EventsNames) {
4470
+ EventsNames["fileAdded"] = "FILE_ADDED";
4471
+ EventsNames["fileUpdated"] = "FILE_UPDATED";
4472
+ EventsNames["fileDeleted"] = "FILE_DELETED";
4473
+ })(EventsNames = FilesMasterWatcher.EventsNames || (FilesMasterWatcher.EventsNames = {}));
4474
+ })(FilesMasterWatcher || (FilesMasterWatcher = {}));
4475
+ exports["default"] = FilesMasterWatcher;
4289
4476
 
4290
4477
 
4291
4478
  /***/ }),
4292
4479
 
4293
- /***/ "./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts":
4294
- /*!*************************************************************!*\
4295
- !*** ./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts ***!
4296
- \*************************************************************/
4297
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4480
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts":
4481
+ /*!***********************************************************************!*\
4482
+ !*** ./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts ***!
4483
+ \***********************************************************************/
4484
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4298
4485
 
4299
4486
 
4300
- var __importDefault = (this && this.__importDefault) || function (mod) {
4301
- return (mod && mod.__esModule) ? mod : { "default": mod };
4302
- };
4303
4487
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4304
- /* ─── Settings representatives ──────────────────────────────────────────────────────────────────────────────────── */
4305
- const AssetsProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts"));
4306
- const VinylFileClass_1 = __importDefault(__webpack_require__(/*! @Utils/VinylFileClass */ "./Utils/VinylFileClass.ts"));
4307
- /* ─── Utils ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
4308
4488
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4309
- class AssetVinylFile extends VinylFileClass_1.default {
4310
- sourceAbsolutePath;
4311
- outputDirectoryAbsolutePath;
4312
- actualAssetsGroupSettings;
4313
- constructor({ initialPlainVinylFile, actualAssetsGroupSettings }) {
4314
- super({
4315
- explicitlySpecifiedPathPart: initialPlainVinylFile.base,
4316
- path: initialPlainVinylFile.path,
4317
- contents: Buffer.isBuffer(initialPlainVinylFile.contents) ? initialPlainVinylFile.contents : Buffer.from("")
4318
- });
4319
- this.sourceAbsolutePath = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(initialPlainVinylFile.path);
4320
- this.actualAssetsGroupSettings = actualAssetsGroupSettings;
4321
- this.outputDirectoryAbsolutePath = AssetsProcessingSettingsRepresentative_1.default.
4322
- computeRelevantOutputDirectoryAbsolutePathForTargetSourceFile({
4323
- targetSourceFileAbsolutePath: this.sourceAbsolutePath,
4324
- relevantAssetsGroupNormalizedSettings: this.actualAssetsGroupSettings
4489
+ class FilesPassiveWatcher {
4490
+ ID;
4491
+ mustLogEvents;
4492
+ targetFilesGlobSelectors;
4493
+ constructor({ ID, targetFilesGlobSelectors, mustLogEvents }) {
4494
+ this.ID = ID;
4495
+ this.targetFilesGlobSelectors = targetFilesGlobSelectors;
4496
+ this.mustLogEvents = mustLogEvents;
4497
+ }
4498
+ isRelatedFileAbsolutePath(targetFilePath) {
4499
+ return es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
4500
+ filePath: targetFilePath, globSelectors: this.targetFilesGlobSelectors
4325
4501
  });
4326
4502
  }
4327
4503
  }
4328
- exports["default"] = AssetVinylFile;
4504
+ exports["default"] = FilesPassiveWatcher;
4329
4505
 
4330
4506
 
4331
4507
  /***/ }),
@@ -4843,6 +5019,7 @@ const FontsProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require
4843
5019
  const VideosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingRawSettingsNormalizer.ts"));
4844
5020
  const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingRawSettingsNormalizer.ts"));
4845
5021
  const PlainCopyingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer */ "./ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer.ts"));
5022
+ const FilesWatchingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts"));
4846
5023
  const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts"));
4847
5024
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
4848
5025
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5000,6 +5177,10 @@ class ProjectBuilderRawConfigNormalizer {
5000
5177
  })
5001
5178
  };
5002
5179
  })(),
5180
+ filesWatching: FilesWatchingSettingsNormalizer_1.default.normalize({
5181
+ filesWatchingSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.filesWatching],
5182
+ projectBuilderCommonSettings__normalized: commonSettings__normalized
5183
+ }),
5003
5184
  ...(() => {
5004
5185
  const browserLiveReloadingSettings__fromFile__rawValid = projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.browserLiveReloading];
5005
5186
  if ((0, es_extensions_1.isUndefined)(browserLiveReloadingSettings__fromFile__rawValid)) {
@@ -5173,6 +5354,11 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5173
5354
  KEY: "staticPreview",
5174
5355
  stateDependentPagesVariationsSpecificationFileRelativePath: {
5175
5356
  KEY: "stateDependentPagesVariationsSpecificationFileRelativePath"
5357
+ },
5358
+ importsFromStaticDataFiles: {
5359
+ KEY: "importsFromStaticDataFiles",
5360
+ importedVariableName: { KEY: "importedVariableName" },
5361
+ fileRelativePath: { KEY: "fileRelativePath" }
5176
5362
  }
5177
5363
  },
5178
5364
  linting: {
@@ -5461,6 +5647,10 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5461
5647
  outputDirectoryPathTransformations: { KEY: "outputDirectoryPathTransformations" }
5462
5648
  }
5463
5649
  },
5650
+ filesWatching: {
5651
+ relativePathsOfExcludeFiles: { KEY: "relativePathsOfExcludeFiles" },
5652
+ relativePathsOfExcludeDirectories: { KEY: "relativePathsOfExcludeDirectories" }
5653
+ },
5464
5654
  browserLiveReloading: {
5465
5655
  setups: {
5466
5656
  KEY: "setups",
@@ -5470,7 +5660,11 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5470
5660
  ignoredFilesAndDirectoriesRelativePaths: { KEY: "ignoredFilesAndDirectoriesRelativePaths" },
5471
5661
  customPort: { KEY: "customPort" },
5472
5662
  customStartingFileNameWithExtension: { KEY: "customStartingFileNameWithExtension" },
5473
- useHTTPS: { KEY: "useHTTPS" },
5663
+ HTTPS: {
5664
+ KEY: "HTTPS",
5665
+ SSL_KeyRelativePath: { KEY: "SSL_KeyRelativePath" },
5666
+ SSL_CertificateRelativePath: { KEY: "SSL_CertificateRelativePath" }
5667
+ },
5474
5668
  useCORS: { KEY: "useCORS" }
5475
5669
  },
5476
5670
  proxy: { KEY: "proxy" },
@@ -5520,6 +5714,7 @@ const FontsProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_
5520
5714
  const VideosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettings__FromFile__RawValid.ts"));
5521
5715
  const AudiosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettings__FromFile__RawValid.ts"));
5522
5716
  const PlainCopyingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid */ "./ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid.ts"));
5717
+ const FilesWatchingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid */ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts"));
5523
5718
  const BrowserLiveReloadingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid.ts"));
5524
5719
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
5525
5720
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5660,6 +5855,13 @@ var ProjectBuildingConfig__FromFile__RawValid;
5660
5855
  outputDirectoryPathTransformationsPropertiesLocalizedSpecification
5661
5856
  })
5662
5857
  },
5858
+ [localization.enumerations.tasksIDs.filesWatching]: {
5859
+ newName: "filesWatching",
5860
+ type: Object,
5861
+ required: false,
5862
+ preValidationModifications: es_extensions_1.nullToUndefined,
5863
+ properties: FilesWatchingSettings__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification(localization.tasks.filesWatching)
5864
+ },
5663
5865
  [localization.enumerations.tasksIDs.browserLiveReloading]: {
5664
5866
  newName: "browserLiveReloading",
5665
5867
  type: Object,
@@ -5702,6 +5904,7 @@ const FontsProcessingSettingsRepresentative_1 = __importDefault(__webpack_requir
5702
5904
  const AudiosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettingsRepresentative.ts"));
5703
5905
  const VideosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettingsRepresentative.ts"));
5704
5906
  const PlainCopyingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative */ "./ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative.ts"));
5907
+ const FilesWatchingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts"));
5705
5908
  const BrowserLiveReloadingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts"));
5706
5909
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
5707
5910
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5715,6 +5918,7 @@ class ProjectBuildingMasterConfigRepresentative {
5715
5918
  audiosProcessingSettingsRepresentative;
5716
5919
  videosProcessingSettingsRepresentative;
5717
5920
  plainCopyingSettingsRepresentative;
5921
+ filesWatchingSettingsRepresentative;
5718
5922
  browserLiveReloadingSettingsRepresentative;
5719
5923
  commonSettings;
5720
5924
  static initializeAndGetInstance(projectBuilderConfig__normalized) {
@@ -5757,6 +5961,8 @@ class ProjectBuildingMasterConfigRepresentative {
5757
5961
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.plainCopying)) {
5758
5962
  this.plainCopyingSettingsRepresentative = new PlainCopyingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.plainCopying);
5759
5963
  }
5964
+ this.filesWatchingSettingsRepresentative =
5965
+ new FilesWatchingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.filesWatching, this);
5760
5966
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.browserLiveReloading)) {
5761
5967
  this.browserLiveReloadingSettingsRepresentative = new BrowserLiveReloadingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.browserLiveReloading);
5762
5968
  }
@@ -5830,7 +6036,7 @@ class ProjectBuildingMasterConfigRepresentative {
5830
6036
  /* eslint-enable @stylistic/brace-style */
5831
6037
  /* --- Other ------------------------------------------------------------------------------------------------------ */
5832
6038
  get mustProvideIncrementalBuilding() {
5833
- return this.isStaticPreviewBuildingMode || this.isLocalDevelopmentBuildingMode;
6039
+ return this.commonSettings.mustProvideIncrementalBuilding;
5834
6040
  }
5835
6041
  }
5836
6042
  exports["default"] = ProjectBuildingMasterConfigRepresentative;
@@ -6525,8 +6731,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6525
6731
  };
6526
6732
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6527
6733
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
6528
- const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts"));
6529
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
6734
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
6735
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
6530
6736
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
6531
6737
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6532
6738
  class ECMA_ScriptSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -7839,6 +8045,29 @@ var MarkupProcessingSettings__FromFile__RawValid;
7839
8045
  type: String,
7840
8046
  required: false,
7841
8047
  minimalCharactersCount: 1
8048
+ },
8049
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.KEY]: {
8050
+ newName: "importsFromStaticDataFiles",
8051
+ preValidationModifications: es_extensions_1.nullToUndefined,
8052
+ type: Array,
8053
+ required: false,
8054
+ element: {
8055
+ type: Object,
8056
+ properties: {
8057
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.importedVariableName.KEY]: {
8058
+ newName: "importedVariableName",
8059
+ type: String,
8060
+ required: true,
8061
+ minimalCharactersCount: 1
8062
+ },
8063
+ [markupProcessingPropertiesLocalization.staticPreview.importsFromStaticDataFiles.fileRelativePath.KEY]: {
8064
+ newName: "fileRelativePath",
8065
+ type: String,
8066
+ required: true,
8067
+ minimalCharactersCount: 1
8068
+ }
8069
+ }
8070
+ }
7842
8071
  }
7843
8072
  }
7844
8073
  },
@@ -8524,8 +8753,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8524
8753
  };
8525
8754
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8526
8755
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
8527
- const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts"));
8528
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
8756
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
8757
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
8529
8758
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
8530
8759
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
8531
8760
  class MarkupSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -10092,7 +10321,7 @@ class ImagesAspectRatioAffixer {
10092
10321
  return null;
10093
10322
  }
10094
10323
  /* [ Fiddle ] https://regex101.com/r/vvGR6t/1 */
10095
- const imagePathSearchingResults = /background(?:-image)?\s*:\s*url\(["'](?<URI>[^"']+)["']/gu.exec(styleAttributeValue);
10324
+ const imagePathSearchingResults = (/background(?:-image)?\s*:\s*url\(["'](?<URI>[^"']+)["']/gu).exec(styleAttributeValue);
10096
10325
  return (0, es_extensions_1.isNotNull)(imagePathSearchingResults) ? imagePathSearchingResults[1] : null;
10097
10326
  }
10098
10327
  }
@@ -12317,8 +12546,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12317
12546
  };
12318
12547
  Object.defineProperty(exports, "__esModule", ({ value: true }));
12319
12548
  /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
12320
- const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher */ "./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts"));
12321
- const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher */ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts"));
12549
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
12550
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
12322
12551
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12323
12552
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12324
12553
  class StylesSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -12452,7 +12681,7 @@ class ESLintLinterSpecialist {
12452
12681
  return fs_1.default.
12453
12682
  readFileSync(path_1.default.join(process.cwd(), ESLintLinterSpecialist.IGNORING_DIRECTIVES_DEFAULT_FILE_NAME_WITH_EXTENSION), "utf8").
12454
12683
  split(/\r?\n/u).
12455
- filter((line) => /\w/u.test(line)).
12684
+ filter((line) => (/\w/u).test(line)).
12456
12685
  filter((line) => !(mustSkipNodeModulesDirectory && line.includes("node_modules"))).
12457
12686
  map((relativePathBasedGlob) => (path_1.default.parse(relativePathBasedGlob).ext.length === 0 ?
12458
12687
  es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath, relativePathBasedGlob], { alwaysForwardSlashSeparators: true })) :
@@ -12503,7 +12732,7 @@ class PugPreProcessorSpecialist {
12503
12732
  /* [ Theory ] Basically, "extends" declaration must be the first line of the Pug file but the unbuffered comment (`-//`)
12504
12733
  * is the only exception. */
12505
12734
  static isSourceCodeIncludingExtendingDeclaration(sourceCode) {
12506
- return /^extends/gmu.test(sourceCode);
12735
+ return (/^extends/gmu).test(sourceCode);
12507
12736
  }
12508
12737
  static isSourceCodeLineIncludingExtendingDeclaration(sourceCodeLine) {
12509
12738
  return sourceCodeLine.startsWith("extends");
@@ -12517,7 +12746,7 @@ class PugPreProcessorSpecialist {
12517
12746
  let endLineIndex;
12518
12747
  let currentlyIteratedLineIndex = startLineIndex + 1;
12519
12748
  for (const sourceCodeLine of sourceCodeLines.slice(currentlyIteratedLineIndex)) {
12520
- if (/^(?: +|\t)?block/u.test(sourceCodeLine)) {
12749
+ if ((/^(?: +|\t)?block/u).test(sourceCodeLine)) {
12521
12750
  endLineIndex = currentlyIteratedLineIndex;
12522
12751
  break;
12523
12752
  }
@@ -14112,7 +14341,7 @@ function revisionHash(data) {
14112
14341
  \***********************/
14113
14342
  /***/ ((module) => {
14114
14343
 
14115
- module.exports = JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.3.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.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":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
14344
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.4.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.7.0","@typescript-eslint/parser":"7.7.0","@vue/compiler-sfc":"3.4.24","@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.2","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.25.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.91.0","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":"20.12.7","@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":"2.5.3","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.1.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"}}');
14116
14345
 
14117
14346
  /***/ })
14118
14347