@yamato-daiwa/automation 0.3.2 → 0.4.0

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 +866 -696
  2. package/package.json +2 -2
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 {
@@ -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;
@@ -2166,10 +2166,10 @@ exports["default"] = CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION;
2166
2166
 
2167
2167
  /***/ }),
2168
2168
 
2169
- /***/ "./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts":
2170
- /*!**************************************************************************!*\
2171
- !*** ./ProjectBuilding/Common/FilesWatchers/AssetsSourceFilesWatcher.ts ***!
2172
- \**************************************************************************/
2169
+ /***/ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts":
2170
+ /*!********************************************************************************************!*\
2171
+ !*** ./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts ***!
2172
+ \********************************************************************************************/
2173
2173
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2174
2174
 
2175
2175
 
@@ -2177,105 +2177,60 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2177
2177
  return (mod && mod.__esModule) ? mod : { "default": mod };
2178
2178
  };
2179
2179
  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 ──────────────────────────────────────────────────────────────────────────────────────────────── */
2180
+ /* --- Business rules ----------------------------------------------------------------------------------------------- */
2181
+ const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2182
+ /* --- Utils -------------------------------------------------------------------------------------------------------- */
2185
2183
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2186
2184
  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);
2185
+ const mustProvideIncrementalProjectBuilding_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding */ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts"));
2186
+ class ProjectBuildingCommonSettingsNormalizer {
2187
+ static normalize({ commonSettings__fromFile__rawValid, consumingProjectRootDirectoryAbsolutePath, projectBuildingMode, actualSelectiveExecutionID, actualSelectiveExecution }) {
2188
+ const consumingProjectRootDirectoryAbsolutePath__forwardSlashes = es_extensions_nodejs_1.ImprovedPath.
2189
+ replacePathSeparatorsToForwardSlashes(consumingProjectRootDirectoryAbsolutePath);
2190
+ const actualPublicDirectoryRelativePath = commonSettings__fromFile__rawValid.publicDirectoriesRelativePaths?.[projectBuildingMode];
2191
+ let actualPublicDirectoryAbsolutePath;
2192
+ if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
2193
+ actualPublicDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { alwaysForwardSlashSeparators: true });
2214
2194
  }
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);
2195
+ return {
2196
+ projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
2197
+ projectBuildingMode,
2198
+ mustProvideIncrementalBuilding: (0, mustProvideIncrementalProjectBuilding_1.default)(projectBuildingMode),
2199
+ ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecutionID) ? { selectiveExecutionID: actualSelectiveExecutionID } : null,
2200
+ ...(0, es_extensions_1.isNotUndefined)(actualSelectiveExecution) ? {
2201
+ tasksAndSourceFilesSelection: {
2202
+ markupProcessing: actualSelectiveExecution.
2203
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.markupProcessing],
2204
+ stylesProcessing: actualSelectiveExecution.
2205
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.stylesProcessing],
2206
+ ECMA_ScriptLogicProcessing: actualSelectiveExecution.
2207
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.ECMA_ScriptLogicProcessing],
2208
+ imagesProcessing: actualSelectiveExecution.
2209
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.imagesProcessing],
2210
+ fontsProcessing: actualSelectiveExecution.
2211
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.fontsProcessing],
2212
+ audiosProcessing: actualSelectiveExecution.
2213
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.audiosProcessing],
2214
+ plainCopying: actualSelectiveExecution.
2215
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.plainCopying],
2216
+ videosProcessing: actualSelectiveExecution.
2217
+ tasksAndSourceFilesSelection[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.videosProcessing]
2249
2218
  }
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;
2219
+ } : null,
2220
+ browserLiveReloadingSetupID: actualSelectiveExecution?.browserLiveReloadingSetupID,
2221
+ actualPublicDirectoryAbsolutePath
2222
+ };
2268
2223
  }
2269
2224
  }
2270
- exports["default"] = AssetsSourceFilesWatcher;
2225
+ exports["default"] = ProjectBuildingCommonSettingsNormalizer;
2271
2226
 
2272
2227
 
2273
2228
  /***/ }),
2274
2229
 
2275
- /***/ "./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts":
2276
- /*!************************************************************************!*\
2277
- !*** ./ProjectBuilding/Common/FilesWatchers/CodeSourceFilesWatcher.ts ***!
2278
- \************************************************************************/
2230
+ /***/ "./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts":
2231
+ /*!***********************************************************************************************************!*\
2232
+ !*** ./ProjectBuilding/Common/RawConfig/AssetsProcessingSettingsGenericProperties__FromFile__RawValid.ts ***!
2233
+ \***********************************************************************************************************/
2279
2234
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2280
2235
 
2281
2236
 
@@ -2283,508 +2238,146 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2283
2238
  return (mod && mod.__esModule) ? mod : { "default": mod };
2284
2239
  };
2285
2240
  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 ──────────────────────────────────────────────────────────────────────────────────────────────── */
2241
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
2242
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
2243
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
2291
2244
  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);
2372
- }
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);
2245
+ var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2246
+ (function (AssetsProcessingSettingsGenericProperties__FromFile__RawValid) {
2247
+ function getLocalizedPropertiesSpecification({ assetsProcessingSettingsGenericPropertiesLocalization, revisioningPropertiesLocalizedSpecification, entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification, consumingProjectLocalizedPreDefinedBuildingModes }) {
2248
+ return {
2249
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2250
+ newName: "common",
2251
+ preValidationModifications: es_extensions_1.nullToUndefined,
2252
+ type: Object,
2253
+ required: true,
2254
+ properties: {
2255
+ [assetsProcessingSettingsGenericPropertiesLocalization.common.
2256
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds.KEY]: {
2257
+ newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
2258
+ type: Number,
2259
+ required: false,
2260
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
2393
2261
  }
2394
2262
  }
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);
2263
+ },
2264
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.KEY]: {
2265
+ newName: "assetsGroups",
2266
+ preValidationModifications: es_extensions_1.nullToUndefined,
2267
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2268
+ required: true,
2269
+ value: {
2270
+ type: Object,
2271
+ properties: {
2272
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.sourceFilesTopDirectoryRelativePath.KEY]: {
2273
+ newName: "sourceFilesTopDirectoryRelativePath",
2274
+ type: String,
2275
+ required: true,
2276
+ minimalCharactersCount: 1
2277
+ },
2278
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.referenceCustomAliasName.KEY]: {
2279
+ newName: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML",
2280
+ type: String,
2281
+ required: false,
2282
+ minimalCharactersCount: 1
2283
+ },
2284
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.KEY]: {
2285
+ newName: "buildingModeDependent",
2286
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
2287
+ required: true,
2288
+ minimalEntriesCount: 1,
2289
+ keysRenamings: {
2290
+ [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectBuildingModes_1.default.staticPreview,
2291
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectBuildingModes_1.default.localDevelopment,
2292
+ [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectBuildingModes_1.default.testing,
2293
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectBuildingModes_1.default.staging,
2294
+ [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectBuildingModes_1.default.production
2295
+ },
2296
+ value: {
2297
+ type: Object,
2298
+ properties: {
2299
+ ...entryPointsGroupBuildingModeDependentOutputGenericSettingsLocalizedPropertiesSpecification,
2300
+ [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.buildingModeDependent.revisioning.KEY]: {
2301
+ newName: "revisioning",
2302
+ type: Object,
2303
+ required: false,
2304
+ preValidationModifications: es_extensions_1.nullToUndefined,
2305
+ properties: revisioningPropertiesLocalizedSpecification
2306
+ }
2307
+ }
2308
+ }
2309
+ }
2438
2310
  }
2439
2311
  }
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);
2312
+ },
2313
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.KEY]: {
2314
+ newName: "logging",
2315
+ type: Object,
2316
+ required: false,
2317
+ preValidationModifications: es_extensions_1.nullToUndefined,
2318
+ properties: {
2319
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesPaths.KEY]: {
2320
+ newName: "filesPaths",
2321
+ type: Boolean,
2322
+ required: false
2323
+ },
2324
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesCount.KEY]: {
2325
+ newName: "filesCount",
2326
+ type: Boolean,
2327
+ required: false
2328
+ },
2329
+ [assetsProcessingSettingsGenericPropertiesLocalization.logging.filesWatcherEvents.KEY]: {
2330
+ newName: "filesWatcherEvents",
2331
+ type: Boolean,
2332
+ required: false
2449
2333
  }
2450
2334
  }
2451
2335
  }
2452
- }
2453
- }
2454
- isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators) {
2455
- return this.settingsRepresentative.isEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
2456
- }
2457
- }
2458
- exports["default"] = CodeSourceFilesWatcher;
2459
-
2460
-
2461
- /***/ }),
2462
-
2463
- /***/ "./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts":
2464
- /*!********************************************************************!*\
2465
- !*** ./ProjectBuilding/Common/FilesWatchers/FilesMasterWatcher.ts ***!
2466
- \********************************************************************/
2467
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2468
-
2469
-
2470
- var __importDefault = (this && this.__importDefault) || function (mod) {
2471
- return (mod && mod.__esModule) ? mod : { "default": mod };
2472
- };
2473
- 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
2336
  };
2506
2337
  }
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;
2338
+ AssetsProcessingSettingsGenericProperties__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
2339
+ })(AssetsProcessingSettingsGenericProperties__FromFile__RawValid || (AssetsProcessingSettingsGenericProperties__FromFile__RawValid = {}));
2340
+ exports["default"] = AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
2548
2341
 
2549
2342
 
2550
2343
  /***/ }),
2551
2344
 
2552
- /***/ "./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts":
2553
- /*!*********************************************************************!*\
2554
- !*** ./ProjectBuilding/Common/FilesWatchers/FilesPassiveWatcher.ts ***!
2555
- \*********************************************************************/
2556
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2345
+ /***/ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts":
2346
+ /*!***********************************************************************************************!*\
2347
+ !*** ./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts ***!
2348
+ \***********************************************************************************************/
2349
+ /***/ ((__unused_webpack_module, exports) => {
2557
2350
 
2558
2351
 
2559
2352
  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;
2353
+ exports.ProjectBuildingTasksIDsForConfigFile = void 0;
2354
+ var ProjectBuildingTasksIDsForConfigFile;
2355
+ (function (ProjectBuildingTasksIDsForConfigFile) {
2356
+ ProjectBuildingTasksIDsForConfigFile["markupProcessing"] = "markupProcessing";
2357
+ ProjectBuildingTasksIDsForConfigFile["stylesProcessing"] = "stylesProcessing";
2358
+ ProjectBuildingTasksIDsForConfigFile["ECMA_ScriptLogicProcessing"] = "ECMA_ScriptLogicProcessing";
2359
+ ProjectBuildingTasksIDsForConfigFile["imagesProcessing"] = "imagesProcessing";
2360
+ ProjectBuildingTasksIDsForConfigFile["fontsProcessing"] = "fontsProcessing";
2361
+ ProjectBuildingTasksIDsForConfigFile["audiosProcessing"] = "audiosProcessing";
2362
+ ProjectBuildingTasksIDsForConfigFile["videosProcessing"] = "videosProcessing";
2363
+ ProjectBuildingTasksIDsForConfigFile["browserLiveReloading"] = "browserLiveReloading";
2364
+ ProjectBuildingTasksIDsForConfigFile["plainCopying"] = "plainCopying";
2365
+ ProjectBuildingTasksIDsForConfigFile["filesWatching"] = "filesWatching";
2366
+ })(ProjectBuildingTasksIDsForConfigFile || (exports.ProjectBuildingTasksIDsForConfigFile = ProjectBuildingTasksIDsForConfigFile = {}));
2577
2367
 
2578
2368
 
2579
2369
  /***/ }),
2580
2370
 
2581
- /***/ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts":
2582
- /*!********************************************************************************************!*\
2583
- !*** ./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts ***!
2584
- \********************************************************************************************/
2585
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2371
+ /***/ "./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts":
2372
+ /*!***********************************************************************************************!*\
2373
+ !*** ./ProjectBuilding/Common/RawConfig/ProjectBuildingCommonSettings__FromFile__RawValid.ts ***!
2374
+ \***********************************************************************************************/
2375
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2586
2376
 
2587
2377
 
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
- };
2378
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2379
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2380
+ };
2788
2381
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2789
2382
  /* --- Defaults ----------------------------------------------------------------------------------------------------- */
2790
2383
  const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
@@ -3533,6 +3126,27 @@ const PROCESSABLE_FILE_REFERENCE_ALIAS_PREFIX = "@";
3533
3126
  exports["default"] = PROCESSABLE_FILE_REFERENCE_ALIAS_PREFIX;
3534
3127
 
3535
3128
 
3129
+ /***/ }),
3130
+
3131
+ /***/ "./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts":
3132
+ /*!**************************************************************************************!*\
3133
+ !*** ./ProjectBuilding/Common/Restrictions/mustProvideIncrementalProjectBuilding.ts ***!
3134
+ \**************************************************************************************/
3135
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3136
+
3137
+
3138
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3139
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3140
+ };
3141
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3142
+ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
3143
+ function mustProvideIncrementalProjectBuilding(consumingProjectBuildingModes) {
3144
+ return consumingProjectBuildingModes === ConsumingProjectBuildingModes_1.default.staticPreview ||
3145
+ consumingProjectBuildingModes === ConsumingProjectBuildingModes_1.default.localDevelopment;
3146
+ }
3147
+ exports["default"] = mustProvideIncrementalProjectBuilding;
3148
+
3149
+
3536
3150
  /***/ }),
3537
3151
 
3538
3152
  /***/ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts":
@@ -4200,132 +3814,667 @@ class LinterLikeTaskExecutor extends GulpStreamsBasedTaskExecutor_1.default {
4200
3814
  if ((0, es_extensions_1.isUndefined)(lintingResult) || lintingResult.issues.length === 0) {
4201
3815
  continue;
4202
3816
  }
4203
- issuesFormattedLogs.push(`■ ${fileRelativePath}: ${lintingResult.issues.length} issue(s)` +
4204
- `\n${this.formatIssuesOfSingleFile(lintingResult)}`);
3817
+ issuesFormattedLogs.push(`■ ${fileRelativePath}: ${lintingResult.issues.length} issue(s)` +
3818
+ `\n${this.formatIssuesOfSingleFile(lintingResult)}`);
3819
+ }
3820
+ es_extensions_1.Logger.logErrorLikeMessage({
3821
+ title: `${this.TASK_TITLE_FOR_LOGGING}, issue(s) found`,
3822
+ description: `\n${issuesFormattedLogs.join("\n\n")}`
3823
+ });
3824
+ }
3825
+ }
3826
+ onStreamEnded() {
3827
+ if (this.isFirstGulpPipelinePass) {
3828
+ /* [ Theory ] Some files could be deleted or ignored during YDA has been stopped. */
3829
+ this.sourceFilesCheckingCachedResults.files =
3830
+ this.relativePathsOfFoundFilesMentionedInCache.size > 0 ?
3831
+ Array.from(Object.entries(this.sourceFilesCheckingCachedResults.files)).reduce((actualSourceFilesCheckingResults, [sourceFileRelativePath, cachedLintingResult]) => {
3832
+ if (this.relativePathsOfFoundFilesMentionedInCache.has(sourceFileRelativePath)) {
3833
+ actualSourceFilesCheckingResults[sourceFileRelativePath] = cachedLintingResult;
3834
+ }
3835
+ return actualSourceFilesCheckingResults;
3836
+ }, {}) :
3837
+ this.sourceFilesCheckingCachedResults.files;
3838
+ this.relativePathsOfFoundFilesMentionedInCache.clear();
3839
+ this.isFirstGulpPipelinePass = false;
3840
+ }
3841
+ this.reportCheckingIssuesAndOutputCacheToFile();
3842
+ }
3843
+ reportCheckingIssuesAndOutputCacheToFile() {
3844
+ this.reportCheckingIssues();
3845
+ es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
3846
+ filePath: this.ABSOLUTE_PATH_OF_FILE_WITH_CACHED_RESULTS_OF_SOURCE_FILES_CHECKING,
3847
+ content: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.sourceFilesCheckingCachedResults),
3848
+ synchronously: true
3849
+ });
3850
+ }
3851
+ /* eslint-enable @typescript-eslint/member-ordering */
3852
+ /* eslint-disable @typescript-eslint/member-ordering --
3853
+ * From now, the members has been organized by semantic groups. */
3854
+ /* ━━━ File watcher handlers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3855
+ /* ─── Adding & updating ────────────────────────────────────────────────────────────────────────────────────────── */
3856
+ absolutePathsOfAddedOrUpdatedFiles = new Set();
3857
+ waitingForSubsequentFileWillBeAddedOrUpdatedTimer = null;
3858
+ WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS = 1;
3859
+ onFileHasBeenAddedOrUpdated(targetFileAbsolutePath) {
3860
+ if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3861
+ filePath: targetFileAbsolutePath,
3862
+ globSelectors: this.targetFilesGlobSelectors
3863
+ })) {
3864
+ return;
3865
+ }
3866
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer));
3867
+ this.absolutePathsOfAddedOrUpdatedFiles.add(targetFileAbsolutePath);
3868
+ this.waitingForSubsequentFileWillBeAddedOrUpdatedTimer = setTimeout(() => {
3869
+ this.checkFiles(Array.from(this.absolutePathsOfAddedOrUpdatedFiles))();
3870
+ this.absolutePathsOfAddedOrUpdatedFiles.clear();
3871
+ }, (0, es_extensions_1.secondsToMilliseconds)(this.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_ADDED_OR_UPDATED_PERIOD__SECONDS));
3872
+ }
3873
+ /* ─── Deleting ─────────────────────────────────────────────────────────────────────────────────────────────────── */
3874
+ relativePathsOfFilesToDelete = new Set();
3875
+ waitingForSubsequentFileWillBeDeletedTimer = null;
3876
+ static WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS = 1;
3877
+ onFileHasBeenDeleted(targetFileAbsolutePath) {
3878
+ if (!es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
3879
+ filePath: targetFileAbsolutePath,
3880
+ globSelectors: this.targetFilesGlobSelectors
3881
+ })) {
3882
+ return;
3883
+ }
3884
+ clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForSubsequentFileWillBeDeletedTimer));
3885
+ this.relativePathsOfFilesToDelete.add(es_extensions_nodejs_1.ImprovedPath.computeRelativePath({
3886
+ basePath: this.projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
3887
+ comparedPath: targetFileAbsolutePath,
3888
+ alwaysForwardSlashSeparators: true
3889
+ }));
3890
+ this.waitingForSubsequentFileWillBeDeletedTimer = setTimeout(() => {
3891
+ for (const fileRelativePath of this.relativePathsOfFilesToDelete) {
3892
+ /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete --
3893
+ * The recommended by @typescript-eslint alternative is switching of "cachedLintingResults" to Map.
3894
+ * However, the Map could not be converted to JSON what causes the additional routines with reading and
3895
+ * writing of linting cache file. */
3896
+ delete this.sourceFilesCheckingCachedResults.files[fileRelativePath];
3897
+ }
3898
+ this.reportCheckingIssuesAndOutputCacheToFile();
3899
+ }, (0, es_extensions_1.secondsToMilliseconds)(LinterLikeTaskExecutor.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS));
3900
+ }
3901
+ }
3902
+ exports["default"] = LinterLikeTaskExecutor;
3903
+
3904
+
3905
+ /***/ }),
3906
+
3907
+ /***/ "./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts":
3908
+ /*!*************************************************************!*\
3909
+ !*** ./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts ***!
3910
+ \*************************************************************/
3911
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3912
+
3913
+
3914
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3915
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3916
+ };
3917
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3918
+ /* ─── Settings representatives ──────────────────────────────────────────────────────────────────────────────────── */
3919
+ const AssetsProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts"));
3920
+ const VinylFileClass_1 = __importDefault(__webpack_require__(/*! @Utils/VinylFileClass */ "./Utils/VinylFileClass.ts"));
3921
+ /* ─── Utils ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
3922
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3923
+ class AssetVinylFile extends VinylFileClass_1.default {
3924
+ sourceAbsolutePath;
3925
+ outputDirectoryAbsolutePath;
3926
+ actualAssetsGroupSettings;
3927
+ constructor({ initialPlainVinylFile, actualAssetsGroupSettings }) {
3928
+ super({
3929
+ explicitlySpecifiedPathPart: initialPlainVinylFile.base,
3930
+ path: initialPlainVinylFile.path,
3931
+ contents: Buffer.isBuffer(initialPlainVinylFile.contents) ? initialPlainVinylFile.contents : Buffer.from("")
3932
+ });
3933
+ this.sourceAbsolutePath = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(initialPlainVinylFile.path);
3934
+ this.actualAssetsGroupSettings = actualAssetsGroupSettings;
3935
+ this.outputDirectoryAbsolutePath = AssetsProcessingSettingsRepresentative_1.default.
3936
+ computeRelevantOutputDirectoryAbsolutePathForTargetSourceFile({
3937
+ targetSourceFileAbsolutePath: this.sourceAbsolutePath,
3938
+ relevantAssetsGroupNormalizedSettings: this.actualAssetsGroupSettings
3939
+ });
3940
+ }
3941
+ }
3942
+ exports["default"] = AssetVinylFile;
3943
+
3944
+
3945
+ /***/ }),
3946
+
3947
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts":
3948
+ /*!********************************************************************!*\
3949
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts ***!
3950
+ \********************************************************************/
3951
+ /***/ ((__unused_webpack_module, exports) => {
3952
+
3953
+
3954
+ /* eslint-disable no-inline-comments, @stylistic/no-multi-spaces -- Will comment with which technology each exclusion related. */
3955
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3956
+ exports["default"] = {
3957
+ relativePathsOfExcludeFiles: [
3958
+ "package-lock.json", // NPM
3959
+ "yarn.lock" // Yarn, the third-party package manager
3960
+ ],
3961
+ relativePathsOfExcludeDirectories: [
3962
+ ".git", // Git, the Version Control System (VSC
3963
+ ".github", // GitHub, the Code Sharing Service
3964
+ ".idea", // IntelliJ IDEA, The IDEs Family
3965
+ ".nuxt", // Nuxt.js, the JavaScript framework
3966
+ ".run", // .NET
3967
+ ".vs", // Visual Studio IDE
3968
+ ".vscode", // Visual Studio Code, the Code editor
3969
+ ".yda", // Yamato Daiwa Automation
3970
+ "node_modules" // Node.js
3971
+ ]
3972
+ };
3973
+
3974
+
3975
+ /***/ }),
3976
+
3977
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts":
3978
+ /*!**************************************************************************!*\
3979
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts ***!
3980
+ \**************************************************************************/
3981
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3982
+
3983
+
3984
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3985
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3986
+ };
3987
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3988
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
3989
+ const FilesWatchingRestrictions_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingRestrictions */ "./ProjectBuilding/FilesWatching/FilesWatchingRestrictions.ts"));
3990
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
3991
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3992
+ class FilesWatchingSettingsNormalizer {
3993
+ static normalize({ filesWatchingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized }) {
3994
+ return {
3995
+ excludedFilesGlobSelectors: new Set([
3996
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeFiles,
3997
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeFiles ?? []
3998
+ ].
3999
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorToExcludingOne(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true })))),
4000
+ excludedDirectoriesGlobSelectors: new Set([
4001
+ ...FilesWatchingRestrictions_1.default.relativePathsOfExcludeDirectories,
4002
+ ...filesWatchingSettings__fromFile__rawValid?.relativePathsOfExcludeDirectories ?? []
4003
+ ].
4004
+ map((directoryRelativePath) => es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath, directoryRelativePath], { alwaysForwardSlashSeparators: true }))))
4005
+ };
4006
+ }
4007
+ }
4008
+ exports["default"] = FilesWatchingSettingsNormalizer;
4009
+
4010
+
4011
+ /***/ }),
4012
+
4013
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts":
4014
+ /*!******************************************************************************!*\
4015
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts ***!
4016
+ \******************************************************************************/
4017
+ /***/ ((__unused_webpack_module, exports) => {
4018
+
4019
+
4020
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4021
+ class FilesWatchingSettingsRepresentative {
4022
+ mustProvideFilesWatching;
4023
+ fileWatchingSettings;
4024
+ constructor(fileWatchingSettings, projectBuildingMasterConfigRepresentative) {
4025
+ this.fileWatchingSettings = fileWatchingSettings;
4026
+ this.mustProvideFilesWatching = projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding;
4027
+ }
4028
+ get exclusiveGlobsOfExcludedFilesAndDirectories() {
4029
+ return [
4030
+ ...Array.from(this.fileWatchingSettings.excludedFilesGlobSelectors),
4031
+ ...Array.from(this.fileWatchingSettings.excludedDirectoriesGlobSelectors)
4032
+ ];
4033
+ }
4034
+ }
4035
+ exports["default"] = FilesWatchingSettingsRepresentative;
4036
+
4037
+
4038
+ /***/ }),
4039
+
4040
+ /***/ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts":
4041
+ /*!************************************************************************************!*\
4042
+ !*** ./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts ***!
4043
+ \************************************************************************************/
4044
+ /***/ ((__unused_webpack_module, exports) => {
4045
+
4046
+
4047
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4048
+ var FilesWatchingSettings__FromFile__RawValid;
4049
+ (function (FilesWatchingSettings__FromFile__RawValid) {
4050
+ function getLocalizedPropertiesSpecification(filesWatchingSettingsLocalization) {
4051
+ return {
4052
+ [filesWatchingSettingsLocalization.relativePathsOfExcludeFiles.KEY]: {
4053
+ newName: "relativePathsOfExcludeFiles",
4054
+ type: Array,
4055
+ required: false,
4056
+ element: {
4057
+ type: String,
4058
+ minimalCharactersCount: 1
4059
+ }
4060
+ },
4061
+ [filesWatchingSettingsLocalization.relativePathsOfExcludeDirectories.KEY]: {
4062
+ newName: "relativePathsOfExcludeDirectories",
4063
+ type: Array,
4064
+ required: false,
4065
+ element: {
4066
+ type: String,
4067
+ minimalCharactersCount: 1
4068
+ }
4069
+ }
4070
+ };
4071
+ }
4072
+ FilesWatchingSettings__FromFile__RawValid.getLocalizedPropertiesSpecification = getLocalizedPropertiesSpecification;
4073
+ })(FilesWatchingSettings__FromFile__RawValid || (FilesWatchingSettings__FromFile__RawValid = {}));
4074
+ exports["default"] = FilesWatchingSettings__FromFile__RawValid;
4075
+
4076
+
4077
+ /***/ }),
4078
+
4079
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts":
4080
+ /*!****************************************************************************!*\
4081
+ !*** ./ProjectBuilding/FilesWatching/Watchers/AssetsSourceFilesWatcher.ts ***!
4082
+ \****************************************************************************/
4083
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4084
+
4085
+
4086
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4087
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4088
+ };
4089
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4090
+ /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
4091
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
4092
+ /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
4093
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
4094
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4095
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4096
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4097
+ class AssetsSourceFilesWatcher extends FilesPassiveWatcher_1.default {
4098
+ onAnyEventRelatedWithActualFiles = {};
4099
+ onFileAddedEventHandlers = {};
4100
+ onFileUpdatedEventHandlers = {};
4101
+ onFileDeletedEventHandlers = {};
4102
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
4103
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
4104
+ LOGGER_BADGE_TEXT;
4105
+ constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
4106
+ super({
4107
+ ID,
4108
+ targetFilesGlobSelectors: [
4109
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4110
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4111
+ fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
4112
+ }),
4113
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
4114
+ ],
4115
+ mustLogEvents
4116
+ });
4117
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
4118
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
4119
+ this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Source Files Watcher Report`;
4120
+ }
4121
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
4122
+ for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
4123
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4124
+ }
4125
+ switch (eventName) {
4126
+ case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
4127
+ es_extensions_1.Logger.logInfo({
4128
+ mustOutputIf: this.mustLogEvents,
4129
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4130
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} File Added`,
4131
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4132
+ });
4133
+ for (const handler of Object.values(this.onFileAddedEventHandlers)) {
4134
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4135
+ }
4136
+ break;
4137
+ }
4138
+ case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
4139
+ es_extensions_1.Logger.logInfo({
4140
+ mustOutputIf: this.mustLogEvents,
4141
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4142
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Updated`,
4143
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4144
+ });
4145
+ for (const handler of Object.values(this.onFileUpdatedEventHandlers)) {
4146
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4147
+ }
4148
+ break;
4149
+ }
4150
+ case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
4151
+ es_extensions_1.Logger.logInfo({
4152
+ mustOutputIf: this.mustLogEvents,
4153
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4154
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} File Deleted`,
4155
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4156
+ });
4157
+ for (const handler of Object.values(this.onFileDeletedEventHandlers)) {
4158
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4159
+ }
4160
+ }
4161
+ }
4162
+ }
4163
+ addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
4164
+ this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
4165
+ return this;
4166
+ }
4167
+ addOnFileAddedEventHandler({ handlerID, handler }) {
4168
+ this.onFileAddedEventHandlers[handlerID] = handler;
4169
+ return this;
4170
+ }
4171
+ addFileUpdatedEventHandler({ handlerID, handler }) {
4172
+ this.onFileUpdatedEventHandlers[handlerID] = handler;
4173
+ return this;
4174
+ }
4175
+ addOnFileDeletedEventHandler({ handlerID, handler }) {
4176
+ this.onFileDeletedEventHandlers[handlerID] = handler;
4177
+ return this;
4178
+ }
4179
+ }
4180
+ exports["default"] = AssetsSourceFilesWatcher;
4181
+
4182
+
4183
+ /***/ }),
4184
+
4185
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts":
4186
+ /*!**************************************************************************!*\
4187
+ !*** ./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts ***!
4188
+ \**************************************************************************/
4189
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4190
+
4191
+
4192
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4193
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4194
+ };
4195
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4196
+ /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
4197
+ const FilesPassiveWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts"));
4198
+ /* ─── Related Classes ────────────────────────────────────────────────────────────────────────────────────────────── */
4199
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
4200
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4201
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4202
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4203
+ class CodeSourceFilesWatcher extends FilesPassiveWatcher_1.default {
4204
+ onAnyEventRelatedWithActualFiles = {};
4205
+ onAnyRelatedFileAddedEventHandlers = {};
4206
+ onAnyRelatedFileUpdatedEventHandlers = {};
4207
+ onAnyRelatedFileDeletedEventHandlers = {};
4208
+ onEntryPointFileAddedEventHandlers = {};
4209
+ onEntryPointFileUpdatedEventHandlers = {};
4210
+ onEntryPointFileDeletedEventHandlers = {};
4211
+ onNonEntryPointFileAddedEventHandlers = {};
4212
+ onNonEntryPointFileUpdatedEventHandlers = {};
4213
+ onNonEntryPointFileDeletedEventHandlers = {};
4214
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED;
4215
+ TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE;
4216
+ LOGGER_BADGE_TEXT;
4217
+ constructor({ ID, mustLogEvents, projectBuildingMasterConfigRepresentative, targetFilesNamesExtensionsWithoutLeadingDots, outputFilesGlobSelectors, targetSourceFilesType__singularForm }) {
4218
+ super({
4219
+ ID,
4220
+ targetFilesGlobSelectors: [
4221
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4222
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4223
+ fileNamesExtensions: targetFilesNamesExtensionsWithoutLeadingDots
4224
+ }),
4225
+ ...es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorsToExcludingOnes(outputFilesGlobSelectors)
4226
+ ],
4227
+ mustLogEvents
4228
+ });
4229
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED = (0, es_extensions_1.toUpperCamelCase)(targetSourceFilesType__singularForm);
4230
+ this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE = (0, es_extensions_1.toLowerCamelCase)(targetSourceFilesType__singularForm);
4231
+ this.LOGGER_BADGE_TEXT = `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} source files watcher report`;
4232
+ }
4233
+ addOnAnyEventRelatedWithActualFilesHandler({ handlerID, handler }) {
4234
+ this.onAnyEventRelatedWithActualFiles[handlerID] = handler;
4235
+ return this;
4236
+ }
4237
+ addOnAnyRelatedFileAddedEventHandler({ handlerID, handler }) {
4238
+ this.onAnyRelatedFileAddedEventHandlers[handlerID] = handler;
4239
+ return this;
4240
+ }
4241
+ addOnAnyRelatedFileUpdatedEventHandler({ handlerID, handler }) {
4242
+ this.onAnyRelatedFileUpdatedEventHandlers[handlerID] = handler;
4243
+ return this;
4244
+ }
4245
+ addOnAnyRelatedFileDeletedEventHandler({ handlerID, handler }) {
4246
+ this.onAnyRelatedFileDeletedEventHandlers[handlerID] = handler;
4247
+ return this;
4248
+ }
4249
+ addOnEntryPointFileAddedEventHandler({ handlerID, handler }) {
4250
+ this.onEntryPointFileAddedEventHandlers[handlerID] = handler;
4251
+ return this;
4252
+ }
4253
+ addOnEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
4254
+ this.onEntryPointFileUpdatedEventHandlers[handlerID] = handler;
4255
+ return this;
4256
+ }
4257
+ addOnEntryPointFileDeletedEventHandler({ handlerID, handler }) {
4258
+ this.onEntryPointFileDeletedEventHandlers[handlerID] = handler;
4259
+ return this;
4260
+ }
4261
+ addOnNonEntryPointFileAddedEventHandler({ handlerID, handler }) {
4262
+ this.onNonEntryPointFileAddedEventHandlers[handlerID] = handler;
4263
+ return this;
4264
+ }
4265
+ addOnNonEntryPointFileUpdatedEventHandler({ handlerID, handler }) {
4266
+ this.onNonEntryPointFileUpdatedEventHandlers[handlerID] = handler;
4267
+ return this;
4268
+ }
4269
+ addOnNonEntryPointFileDeletedEventHandler({ handlerID, handler }) {
4270
+ this.onNonEntryPointFileDeletedEventHandlers[handlerID] = handler;
4271
+ return this;
4272
+ }
4273
+ notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName) {
4274
+ const isTargetFileTheEntryPoint = this.isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
4275
+ for (const handler of Object.values(this.onAnyEventRelatedWithActualFiles)) {
4276
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4277
+ }
4278
+ switch (eventName) {
4279
+ case FilesMasterWatcher_1.default.EventsNames.fileAdded: {
4280
+ for (const handler of Object.values(this.onAnyRelatedFileAddedEventHandlers)) {
4281
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4282
+ }
4283
+ if (isTargetFileTheEntryPoint) {
4284
+ es_extensions_1.Logger.logInfo({
4285
+ mustOutputIf: this.mustLogEvents,
4286
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4287
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Entry Point Source File Added`,
4288
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4289
+ });
4290
+ for (const handler of Object.values(this.onEntryPointFileAddedEventHandlers)) {
4291
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4292
+ }
4293
+ }
4294
+ else {
4295
+ es_extensions_1.Logger.logInfo({
4296
+ mustOutputIf: this.mustLogEvents,
4297
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4298
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Partial Source File Added`,
4299
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4300
+ });
4301
+ for (const handler of Object.values(this.onNonEntryPointFileAddedEventHandlers)) {
4302
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4303
+ }
4304
+ }
4305
+ break;
4306
+ }
4307
+ case FilesMasterWatcher_1.default.EventsNames.fileUpdated: {
4308
+ for (const handler of Object.values(this.onAnyRelatedFileUpdatedEventHandlers)) {
4309
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4310
+ }
4311
+ if (isTargetFileTheEntryPoint) {
4312
+ es_extensions_1.Logger.logInfo({
4313
+ mustOutputIf: this.mustLogEvents,
4314
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4315
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Updated`,
4316
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4317
+ });
4318
+ for (const handler of Object.values(this.onEntryPointFileUpdatedEventHandlers)) {
4319
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4320
+ }
4321
+ }
4322
+ else {
4323
+ es_extensions_1.Logger.logInfo({
4324
+ mustOutputIf: this.mustLogEvents,
4325
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4326
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Updated`,
4327
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4328
+ });
4329
+ for (const handler of Object.values(this.onNonEntryPointFileUpdatedEventHandlers)) {
4330
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4331
+ }
4332
+ }
4333
+ break;
4334
+ }
4335
+ case FilesMasterWatcher_1.default.EventsNames.fileDeleted: {
4336
+ for (const handler of Object.values(this.onAnyRelatedFileDeletedEventHandlers)) {
4337
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4338
+ }
4339
+ if (isTargetFileTheEntryPoint) {
4340
+ es_extensions_1.Logger.logInfo({
4341
+ mustOutputIf: this.mustLogEvents,
4342
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4343
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Deleted`,
4344
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4345
+ });
4346
+ for (const handler of Object.values(this.onEntryPointFileDeletedEventHandlers)) {
4347
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4348
+ }
4349
+ }
4350
+ else {
4351
+ es_extensions_1.Logger.logInfo({
4352
+ mustOutputIf: this.mustLogEvents,
4353
+ badge: { customText: this.LOGGER_BADGE_TEXT },
4354
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Deleted`,
4355
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators
4356
+ });
4357
+ for (const handler of Object.values(this.onNonEntryPointFileDeletedEventHandlers)) {
4358
+ handler(targetFileAbsolutePath__forwardSlashesPathSeparators);
4359
+ }
4360
+ }
4205
4361
  }
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
4362
  }
4227
- this.reportCheckingIssuesAndOutputCacheToFile();
4228
4363
  }
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
- });
4364
+ isFileAbsolutePathOfEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators) {
4365
+ return this.settingsRepresentative.isEntryPoint(targetFileAbsolutePath__forwardSlashesPathSeparators);
4236
4366
  }
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;
4367
+ }
4368
+ exports["default"] = CodeSourceFilesWatcher;
4369
+
4370
+
4371
+ /***/ }),
4372
+
4373
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts":
4374
+ /*!**********************************************************************!*\
4375
+ !*** ./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts ***!
4376
+ \**********************************************************************/
4377
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4378
+
4379
+
4380
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4381
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4382
+ };
4383
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
4384
+ /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
4385
+ const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist.ts"));
4386
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4387
+ const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
4388
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
4389
+ class FilesMasterWatcher {
4390
+ static passiveWatchers = new Set();
4391
+ static watchIfMust(projectBuildingMasterConfigRepresentative) {
4392
+ const filesWatchingSettingsRepresentative = projectBuildingMasterConfigRepresentative.filesWatchingSettingsRepresentative;
4393
+ if (!filesWatchingSettingsRepresentative.mustProvideFilesWatching) {
4394
+ return (callback) => { callback(); };
4251
4395
  }
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));
4396
+ return (callback) => {
4397
+ gulp_1.default.
4398
+ watch([
4399
+ es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
4400
+ basicDirectoryPath: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
4401
+ }),
4402
+ ...filesWatchingSettingsRepresentative.exclusiveGlobsOfExcludedFilesAndDirectories
4403
+ ]).
4404
+ on("all", FilesMasterWatcher.onAnyChokidarEvent.bind(this));
4405
+ callback();
4406
+ };
4258
4407
  }
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;
4408
+ static addPassiveWatcher(passiveWatcher) {
4409
+ FilesMasterWatcher.passiveWatchers.add(passiveWatcher);
4410
+ }
4411
+ /* [ Chokidar theory ] While the globs are absolute path based, the second parameter will be the absolute path too. */
4412
+ static onAnyChokidarEvent(chokidarEventName, targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators) {
4413
+ let eventName;
4414
+ switch (chokidarEventName) {
4415
+ case ChokidarSpecialist_1.default.EventsNames.fileAdded: {
4416
+ eventName = FilesMasterWatcher.EventsNames.fileAdded;
4417
+ break;
4418
+ }
4419
+ case ChokidarSpecialist_1.default.EventsNames.fileChanged: {
4420
+ eventName = FilesMasterWatcher.EventsNames.fileUpdated;
4421
+ break;
4422
+ }
4423
+ case ChokidarSpecialist_1.default.EventsNames.fileDeleted: {
4424
+ eventName = FilesMasterWatcher.EventsNames.fileDeleted;
4425
+ break;
4426
+ }
4427
+ default: {
4428
+ return;
4429
+ }
4269
4430
  }
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];
4431
+ const targetFileAbsolutePath__forwardSlashesPathSeparators = es_extensions_nodejs_1.ImprovedPath.
4432
+ replacePathSeparatorsToForwardSlashes(targetFileOrDirectoryAbsolutePath__operationingSystemDependentPathSeparators);
4433
+ for (const passiveWatcher of FilesMasterWatcher.passiveWatchers) {
4434
+ if (passiveWatcher.isRelatedFileAbsolutePath(targetFileAbsolutePath__forwardSlashesPathSeparators)) {
4435
+ passiveWatcher.notifyAboutRelatedFileStateChange(targetFileAbsolutePath__forwardSlashesPathSeparators, eventName);
4283
4436
  }
4284
- this.reportCheckingIssuesAndOutputCacheToFile();
4285
- }, (0, es_extensions_1.secondsToMilliseconds)(LinterLikeTaskExecutor.WAITING_FOR_SUBSEQUENT_FILE_WILL_BE_DELETED_PERIOD__SECONDS));
4437
+ }
4286
4438
  }
4287
4439
  }
4288
- exports["default"] = LinterLikeTaskExecutor;
4440
+ (function (FilesMasterWatcher) {
4441
+ let EventsNames;
4442
+ (function (EventsNames) {
4443
+ EventsNames["fileAdded"] = "FILE_ADDED";
4444
+ EventsNames["fileUpdated"] = "FILE_UPDATED";
4445
+ EventsNames["fileDeleted"] = "FILE_DELETED";
4446
+ })(EventsNames = FilesMasterWatcher.EventsNames || (FilesMasterWatcher.EventsNames = {}));
4447
+ })(FilesMasterWatcher || (FilesMasterWatcher = {}));
4448
+ exports["default"] = FilesMasterWatcher;
4289
4449
 
4290
4450
 
4291
4451
  /***/ }),
4292
4452
 
4293
- /***/ "./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts":
4294
- /*!*************************************************************!*\
4295
- !*** ./ProjectBuilding/Common/VinylFiles/AssetVinylFile.ts ***!
4296
- \*************************************************************/
4297
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4453
+ /***/ "./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts":
4454
+ /*!***********************************************************************!*\
4455
+ !*** ./ProjectBuilding/FilesWatching/Watchers/FilesPassiveWatcher.ts ***!
4456
+ \***********************************************************************/
4457
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4298
4458
 
4299
4459
 
4300
- var __importDefault = (this && this.__importDefault) || function (mod) {
4301
- return (mod && mod.__esModule) ? mod : { "default": mod };
4302
- };
4303
4460
  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
4461
  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
4462
+ class FilesPassiveWatcher {
4463
+ ID;
4464
+ mustLogEvents;
4465
+ targetFilesGlobSelectors;
4466
+ constructor({ ID, targetFilesGlobSelectors, mustLogEvents }) {
4467
+ this.ID = ID;
4468
+ this.targetFilesGlobSelectors = targetFilesGlobSelectors;
4469
+ this.mustLogEvents = mustLogEvents;
4470
+ }
4471
+ isRelatedFileAbsolutePath(targetFilePath) {
4472
+ return es_extensions_nodejs_1.ImprovedGlob.isFilePathMatchingWithAllGlobSelectors({
4473
+ filePath: targetFilePath, globSelectors: this.targetFilesGlobSelectors
4325
4474
  });
4326
4475
  }
4327
4476
  }
4328
- exports["default"] = AssetVinylFile;
4477
+ exports["default"] = FilesPassiveWatcher;
4329
4478
 
4330
4479
 
4331
4480
  /***/ }),
@@ -4843,6 +4992,7 @@ const FontsProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require
4843
4992
  const VideosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingRawSettingsNormalizer.ts"));
4844
4993
  const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingRawSettingsNormalizer.ts"));
4845
4994
  const PlainCopyingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer */ "./ProjectBuilding/PlainCopying/PlainCopyingRawSettingsNormalizer.ts"));
4995
+ const FilesWatchingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsNormalizer.ts"));
4846
4996
  const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts"));
4847
4997
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
4848
4998
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5000,6 +5150,10 @@ class ProjectBuilderRawConfigNormalizer {
5000
5150
  })
5001
5151
  };
5002
5152
  })(),
5153
+ filesWatching: FilesWatchingSettingsNormalizer_1.default.normalize({
5154
+ filesWatchingSettings__fromFile__rawValid: projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.filesWatching],
5155
+ projectBuilderCommonSettings__normalized: commonSettings__normalized
5156
+ }),
5003
5157
  ...(() => {
5004
5158
  const browserLiveReloadingSettings__fromFile__rawValid = projectBuildingConfig__fromFile__rawValid[ProjectBuildingTasksIDsForConfigFile_1.ProjectBuildingTasksIDsForConfigFile.browserLiveReloading];
5005
5159
  if ((0, es_extensions_1.isUndefined)(browserLiveReloadingSettings__fromFile__rawValid)) {
@@ -5461,6 +5615,10 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
5461
5615
  outputDirectoryPathTransformations: { KEY: "outputDirectoryPathTransformations" }
5462
5616
  }
5463
5617
  },
5618
+ filesWatching: {
5619
+ relativePathsOfExcludeFiles: { KEY: "relativePathsOfExcludeFiles" },
5620
+ relativePathsOfExcludeDirectories: { KEY: "relativePathsOfExcludeDirectories" }
5621
+ },
5464
5622
  browserLiveReloading: {
5465
5623
  setups: {
5466
5624
  KEY: "setups",
@@ -5520,6 +5678,7 @@ const FontsProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_
5520
5678
  const VideosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettings__FromFile__RawValid.ts"));
5521
5679
  const AudiosProcessingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettings__FromFile__RawValid */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettings__FromFile__RawValid.ts"));
5522
5680
  const PlainCopyingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid */ "./ProjectBuilding/PlainCopying/PlainCopyingSettings__FromFile__RawValid.ts"));
5681
+ const FilesWatchingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid */ "./ProjectBuilding/FilesWatching/FilesWatchingSettings__FromFile__RawValid.ts"));
5523
5682
  const BrowserLiveReloadingSettings__FromFile__RawValid_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__FromFile__RawValid.ts"));
5524
5683
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
5525
5684
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5660,6 +5819,13 @@ var ProjectBuildingConfig__FromFile__RawValid;
5660
5819
  outputDirectoryPathTransformationsPropertiesLocalizedSpecification
5661
5820
  })
5662
5821
  },
5822
+ [localization.enumerations.tasksIDs.filesWatching]: {
5823
+ newName: "filesWatching",
5824
+ type: Object,
5825
+ required: false,
5826
+ preValidationModifications: es_extensions_1.nullToUndefined,
5827
+ properties: FilesWatchingSettings__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification(localization.tasks.filesWatching)
5828
+ },
5663
5829
  [localization.enumerations.tasksIDs.browserLiveReloading]: {
5664
5830
  newName: "browserLiveReloading",
5665
5831
  type: Object,
@@ -5702,6 +5868,7 @@ const FontsProcessingSettingsRepresentative_1 = __importDefault(__webpack_requir
5702
5868
  const AudiosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingSettingsRepresentative.ts"));
5703
5869
  const VideosProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingSettingsRepresentative */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingSettingsRepresentative.ts"));
5704
5870
  const PlainCopyingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative */ "./ProjectBuilding/PlainCopying/PlainCopyingSettingsRepresentative.ts"));
5871
+ const FilesWatchingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative */ "./ProjectBuilding/FilesWatching/FilesWatchingSettingsRepresentative.ts"));
5705
5872
  const BrowserLiveReloadingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts"));
5706
5873
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
5707
5874
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -5715,6 +5882,7 @@ class ProjectBuildingMasterConfigRepresentative {
5715
5882
  audiosProcessingSettingsRepresentative;
5716
5883
  videosProcessingSettingsRepresentative;
5717
5884
  plainCopyingSettingsRepresentative;
5885
+ filesWatchingSettingsRepresentative;
5718
5886
  browserLiveReloadingSettingsRepresentative;
5719
5887
  commonSettings;
5720
5888
  static initializeAndGetInstance(projectBuilderConfig__normalized) {
@@ -5757,6 +5925,8 @@ class ProjectBuildingMasterConfigRepresentative {
5757
5925
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.plainCopying)) {
5758
5926
  this.plainCopyingSettingsRepresentative = new PlainCopyingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.plainCopying);
5759
5927
  }
5928
+ this.filesWatchingSettingsRepresentative =
5929
+ new FilesWatchingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.filesWatching, this);
5760
5930
  if ((0, es_extensions_1.isNotUndefined)(projectBuilderNormalizedConfig.browserLiveReloading)) {
5761
5931
  this.browserLiveReloadingSettingsRepresentative = new BrowserLiveReloadingSettingsRepresentative_1.default(projectBuilderNormalizedConfig.browserLiveReloading);
5762
5932
  }
@@ -5830,7 +6000,7 @@ class ProjectBuildingMasterConfigRepresentative {
5830
6000
  /* eslint-enable @stylistic/brace-style */
5831
6001
  /* --- Other ------------------------------------------------------------------------------------------------------ */
5832
6002
  get mustProvideIncrementalBuilding() {
5833
- return this.isStaticPreviewBuildingMode || this.isLocalDevelopmentBuildingMode;
6003
+ return this.commonSettings.mustProvideIncrementalBuilding;
5834
6004
  }
5835
6005
  }
5836
6006
  exports["default"] = ProjectBuildingMasterConfigRepresentative;
@@ -6525,8 +6695,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6525
6695
  };
6526
6696
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6527
6697
  /* ─── 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"));
6698
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
6699
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
6530
6700
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
6531
6701
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6532
6702
  class ECMA_ScriptSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -8524,8 +8694,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8524
8694
  };
8525
8695
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8526
8696
  /* ─── 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"));
8697
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
8698
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
8529
8699
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
8530
8700
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
8531
8701
  class MarkupSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -12317,8 +12487,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12317
12487
  };
12318
12488
  Object.defineProperty(exports, "__esModule", ({ value: true }));
12319
12489
  /* ─── 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"));
12490
+ const CodeSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher */ "./ProjectBuilding/FilesWatching/Watchers/CodeSourceFilesWatcher.ts"));
12491
+ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher */ "./ProjectBuilding/FilesWatching/Watchers/FilesMasterWatcher.ts"));
12322
12492
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12323
12493
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12324
12494
  class StylesSourceFilesWatcher extends CodeSourceFilesWatcher_1.default {
@@ -14112,7 +14282,7 @@ function revisionHash(data) {
14112
14282
  \***********************/
14113
14283
  /***/ ((module) => {
14114
14284
 
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"}}');
14285
+ module.exports = JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.4.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.0","@typescript-eslint/eslint-plugin":"7.4.0","@typescript-eslint/parser":"7.4.0","@vue/compiler-sfc":"3.4.21","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-alpha.10","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.6","@yamato-daiwa/style_guides":"0.2.0","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"6.11.0","cssnano":"6.1.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.1","eslint-plugin-vue":"9.24.0","eslint-plugin-vue-pug":"0.6.2","fork-ts-checker-webpack-plugin":"7.3.0","gulp":"4.0.2","gulp-data":"1.3.1","gulp-html-prettify":"0.0.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"9.0.1","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","imagemin-pngquant":"9.0.2","json5-loader":"4.0.1","node-html-parser":"6.1.13","node-notifier":"10.0.1","pa11y":"6.2.3","probe-image-size":"7.2.3","pug-lint":"2.7.0","pug-plain-loader":"1.1.0","puppeteer":"21.0.0","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"3.3.4","stylus":"0.63.0","stylus-loader":"8.0.0","ts-loader":"9.4.4","vinyl":"2.2.1","vue-loader":"17.3.1","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.88.2","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.0"},"devDependencies":{"@types/browser-sync":"2.26.3","@types/cssnano":"5.0.0","@types/gulp":"4.0.10","@types/gulp-html-prettify":"0.0.2","@types/gulp-if":"0.0.34","@types/gulp-imagemin":"8.0.1","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.33","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.36","@types/gulp-stylus":"2.7.8","@types/node":"18.13.0","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.3","@types/pug":"2.0.9","@types/webpack-node-externals":"2.5.3","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.1.0","ts-node":"10.9.2","typescript":"5.4.3","webpack-cli":"5.1.4"},"scripts":{"Incremental development building":"webpack --mode development","Production building":"webpack --mode production","Linting":"eslint Source","Tree diagram of source files generating":"tree Source /f"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
14116
14286
 
14117
14287
  /***/ })
14118
14288