@yamato-daiwa/automation 0.2.0-alpha.1 → 0.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/EntryPoint.js +1680 -667
  2. package/package.json +15 -10
package/EntryPoint.js CHANGED
@@ -70,7 +70,7 @@ const ApplicationConsoleLineInterface_1 = __importDefault(__webpack_require__(/*
70
70
  /* --- Scenarios ---------------------------------------------------------------------------------------------------- */
71
71
  const ProjectBuilder_1 = __importDefault(__webpack_require__(/*! ./ProjectBuilder */ "./ProjectBuilder.ts"));
72
72
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
73
- const PoliteErrorsMessagesBuilder_1 = __importDefault(__webpack_require__(/*! ./Utils/PoliteErrorsMessagesBuilder */ "./Utils/PoliteErrorsMessagesBuilder.ts"));
73
+ const DotYDA_DirectoryManager_1 = __importDefault(__webpack_require__(/*! @Utils/DotYDA_DirectoryManager */ "./Utils/DotYDA_DirectoryManager.ts"));
74
74
  /* --- General utils ------------------------------------------------------------------------------------------------ */
75
75
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
76
76
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
@@ -79,15 +79,16 @@ const yamljs_1 = __importDefault(__webpack_require__(/*! yamljs */ "yamljs"));
79
79
  class EntryPoint {
80
80
  static {
81
81
  es_extensions_1.Logger.setImplementation(es_extensions_nodejs_1.ConsoleApplicationLogger);
82
+ es_extensions_1.PoliteErrorsMessagesBuilder.setDefaultBugTrackerURI("https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues");
82
83
  }
83
84
  static interpretAndExecuteConsoleCommand(rawConsoleCommand) {
85
+ /* [ Theory ] The global constant "__IS_DEVELOPMENT_BUILDING_MODE__" is not available in above static block. */
86
+ es_extensions_1.PoliteErrorsMessagesBuilder.setTechnicalDetailsOnlyModeIf(true);
84
87
  const parsedConsoleCommand = es_extensions_nodejs_1.ConsoleCommandsParser.parse(rawConsoleCommand, ApplicationConsoleLineInterface_1.default.specification);
85
- if (true) {
86
- PoliteErrorsMessagesBuilder_1.default.setTechnicalDetailsOnlyMode();
87
- }
88
+ const consumingProjectRootDirectoryAbsolutePath = process.cwd();
89
+ DotYDA_DirectoryManager_1.default.unrollDotYDA_Directory(consumingProjectRootDirectoryAbsolutePath);
88
90
  switch (parsedConsoleCommand.phrase) {
89
91
  case ApplicationConsoleLineInterface_1.default.CommandPhrases.buildProject: {
90
- const consumingProjectRootDirectoryAbsolutePath = process.cwd();
91
92
  const rawConfigFileAbsolutePath = path_1.default.resolve(consumingProjectRootDirectoryAbsolutePath, CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION_1.default);
92
93
  let rawConfigFromFile;
93
94
  try {
@@ -145,6 +146,7 @@ const ProjectBuilderRawConfigNormalizer_1 = __importDefault(__webpack_require__(
145
146
  const ProjectBuildingMasterConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/ProjectBuildingMasterConfigRepresentative */ "./ProjectBuilding/ProjectBuildingMasterConfigRepresentative.ts"));
146
147
  /* --- Actuators ---------------------------------------------------------------------------------------------------- */
147
148
  const MarkupProcessor_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessor */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessor.ts"));
149
+ const MarkupSourceCodeLinter_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinter */ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinter.ts"));
148
150
  const StylesProcessor_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessor */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessor.ts"));
149
151
  const ECMA_ScriptLogicProcessor_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessor */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessor.ts"));
150
152
  const ImagesProcessor_1 = __importDefault(__webpack_require__(/*! @ImagesProcessing/ImagesProcessor */ "./ProjectBuilding/AssetsProcessing/Images/ImagesProcessor.ts"));
@@ -179,6 +181,7 @@ class ProjectBuilder {
179
181
  const masterConfigRepresentative = new ProjectBuildingMasterConfigRepresentative_1.default(projectBuildingConfig__normalized);
180
182
  const GULP_TASK_NAME = "BUILD_PROJECT";
181
183
  gulp_1.default.task(GULP_TASK_NAME, gulp_1.default.parallel([
184
+ MarkupSourceCodeLinter_1.default.provideMarkupLintingIfMust(masterConfigRepresentative),
182
185
  gulp_1.default.series([
183
186
  gulp_1.default.parallel([
184
187
  StylesProcessor_1.default.provideStylesProcessingIfMust(masterConfigRepresentative),
@@ -416,7 +419,7 @@ class AudiosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
416
419
  }
417
420
  this.audiosProcessingConfigRepresentative.
418
421
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
419
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedAudioFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(processedAudioFile.outputDirectoryAbsolutePath, processedAudioFile.basename));
422
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedAudioFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([processedAudioFile.outputDirectoryAbsolutePath, processedAudioFile.basename], { forwardSlashOnlySeparators: true }));
420
423
  return processedAudioFile;
421
424
  }
422
425
  }
@@ -626,7 +629,7 @@ class FontsProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
626
629
  }
627
630
  this.fontsProcessorConfigRepresentative.
628
631
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
629
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedFontFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(processedFontFile.outputDirectoryAbsolutePath, processedFontFile.basename));
632
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedFontFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([processedFontFile.outputDirectoryAbsolutePath, processedFontFile.basename], { forwardSlashOnlySeparators: true }));
630
633
  return processedFontFile;
631
634
  }
632
635
  }
@@ -844,7 +847,7 @@ class ImagesProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
844
847
  }
845
848
  this.imagesProcessorConfigRepresentative.
846
849
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
847
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedImageFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(processedImageFile.outputDirectoryAbsolutePath, processedImageFile.basename));
850
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedImageFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([processedImageFile.outputDirectoryAbsolutePath, processedImageFile.basename], { forwardSlashOnlySeparators: true }));
848
851
  return processedImageFile;
849
852
  }
850
853
  }
@@ -1053,7 +1056,7 @@ class VideosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1053
1056
  }
1054
1057
  this.videosProcessingConfigRepresentative.
1055
1058
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
1056
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedVideoFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(processedVideoFile.outputDirectoryAbsolutePath, processedVideoFile.basename));
1059
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(processedVideoFile.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([processedVideoFile.outputDirectoryAbsolutePath, processedVideoFile.basename], { forwardSlashOnlySeparators: true }));
1057
1060
  return processedVideoFile;
1058
1061
  }
1059
1062
  }
@@ -1076,6 +1079,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1076
1079
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
1077
1080
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
1078
1081
  const browser_sync_1 = __importDefault(__webpack_require__(/*! browser-sync */ "browser-sync"));
1082
+ /* --- Third-party solutions specialises ---------------------------------------------------------------------------- */
1079
1083
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
1080
1084
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1081
1085
  class BrowserLiveReloader {
@@ -1083,44 +1087,9 @@ class BrowserLiveReloader {
1083
1087
  browserLiveReloadingSettingsRepresentative;
1084
1088
  static provideBrowserLiveReloading(masterConfigRepresentative) {
1085
1089
  const dataHoldingSelfInstance = new BrowserLiveReloader(masterConfigRepresentative);
1086
- const browserLiveReloadingConfigRepresentative = dataHoldingSelfInstance.
1087
- browserLiveReloadingSettingsRepresentative;
1088
1090
  return () => {
1089
- browser_sync_1.default.init({
1090
- watch: true,
1091
- server: {
1092
- baseDir: browserLiveReloadingConfigRepresentative.targetFilesRootDirectoryAbsolutePath,
1093
- index: browserLiveReloadingConfigRepresentative.startingFilenameWithExtension
1094
- },
1095
- browser: "chrome",
1096
- ...(0, es_extensions_1.isNotNull)(browserLiveReloadingConfigRepresentative.customMainPort) ? {
1097
- port: browserLiveReloadingConfigRepresentative.customMainPort
1098
- } : {},
1099
- ...(0, es_extensions_1.isNotNull)(browserLiveReloadingConfigRepresentative.customUserInterfacePort) ? {
1100
- ui: {
1101
- port: browserLiveReloadingConfigRepresentative.customUserInterfacePort
1102
- }
1103
- } : {}
1104
- });
1105
- let waitingForOtherFilesWillBeUpdatedCountdown;
1106
- gulp_1.default.watch(dataHoldingSelfInstance.masterConfigRepresentative.allOutputFilesGlobSelectors).
1107
- on("all", (eventName, fileOrDirectoryPath) => {
1108
- clearTimeout(waitingForOtherFilesWillBeUpdatedCountdown);
1109
- es_extensions_1.Logger.logInfo({
1110
- title: "Output files watcher",
1111
- description: ` Event : ${ChokidarSpecialist_1.default.getEventNameInterpretation(eventName)}` +
1112
- `\n Path : ${fileOrDirectoryPath}\n` +
1113
- "Waiting for status changing of other output files..."
1114
- });
1115
- waitingForOtherFilesWillBeUpdatedCountdown = setTimeout(() => {
1116
- es_extensions_1.Logger.logInfo({
1117
- title: "Browser live reloader",
1118
- description: "Reloading the browser ..."
1119
- });
1120
- browser_sync_1.default.reload();
1121
- }, (0, es_extensions_1.secondsToMilliseconds)(dataHoldingSelfInstance.browserLiveReloadingSettingsRepresentative.
1122
- waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds));
1123
- });
1091
+ dataHoldingSelfInstance.initializeBrowsersync();
1092
+ dataHoldingSelfInstance.initializeOutputFilesWatcher();
1124
1093
  };
1125
1094
  }
1126
1095
  constructor(masterConfigRepresentative) {
@@ -1135,81 +1104,57 @@ class BrowserLiveReloader {
1135
1104
  this.masterConfigRepresentative = masterConfigRepresentative;
1136
1105
  this.browserLiveReloadingSettingsRepresentative = browserLiveReloadingConfigRepresentative;
1137
1106
  }
1138
- }
1139
- exports["default"] = BrowserLiveReloader;
1140
-
1141
-
1142
- /***/ }),
1143
-
1144
- /***/ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer.ts":
1145
- /*!****************************************************************************************!*\
1146
- !*** ./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer.ts ***!
1147
- \****************************************************************************************/
1148
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1149
-
1150
-
1151
- var __importDefault = (this && this.__importDefault) || function (mod) {
1152
- return (mod && mod.__esModule) ? mod : { "default": mod };
1153
- };
1154
- Object.defineProperty(exports, "__esModule", ({ value: true }));
1155
- /* --- Business rules ----------------------------------------------------------------------------------------------- */
1156
- const BrowserLiveReloadingSettings__Default_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__Default */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__Default.ts"));
1157
- /* --- General utils ------------------------------------------------------------------------------------------------ */
1158
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1159
- const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
1160
- class BrowserLiveReloadingSettingsNormalizer {
1161
- static getNormalizedSettings({ browserLiveReloadingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized, hasSelectiveExecutionBeenDeclared, selectedBrowserLiveReloadingSetupID }) {
1162
- let targetBrowserLiveReloadingProfile__rawValid;
1163
- if ((0, es_extensions_1.isNotUndefined)(selectedBrowserLiveReloadingSetupID)) {
1164
- targetBrowserLiveReloadingProfile__rawValid =
1165
- browserLiveReloadingSettings__fromFile__rawValid[selectedBrowserLiveReloadingSetupID];
1166
- if ((0, es_extensions_1.isUndefined)(targetBrowserLiveReloadingProfile__rawValid)) {
1167
- es_extensions_1.Logger.throwErrorAndLog({
1168
- errorInstance: new es_extensions_1.InvalidParameterValueError({
1169
- parameterName: "parametersObject",
1170
- messageSpecificPart: `プロパティ:'selectedBrowserLiveReloadingSetupID'の値:'${selectedBrowserLiveReloadingSetupID}'に該当する` +
1171
- "ブラウザ自動リロードの設定は定義されていない。"
1172
- }),
1173
- occurrenceLocation: "BrowserLiveReloadingSettingsNormalizer.normalize(namedParameters)",
1174
- title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
1175
- });
1176
- }
1177
- }
1178
- else if (!hasSelectiveExecutionBeenDeclared &&
1179
- Object.values(browserLiveReloadingSettings__fromFile__rawValid).length === 1) {
1180
- targetBrowserLiveReloadingProfile__rawValid = Object.values(browserLiveReloadingSettings__fromFile__rawValid)[0];
1181
- }
1182
- else {
1183
- return;
1184
- }
1185
- return {
1186
- targetFilesRootDirectoryAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
1187
- projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
1188
- targetBrowserLiveReloadingProfile__rawValid.targetFilesRootDirectoryRelativePath
1189
- ], { forwardSlashOnlySeparators: true }),
1190
- startingFilenameWithExtension: targetBrowserLiveReloadingProfile__rawValid.customStartingFilenameWithExtension ??
1191
- BrowserLiveReloadingSettings__Default_1.default.startingFilenameWithExtension,
1192
- waitingForTheOtherFilesWillUpdateDuration__seconds: targetBrowserLiveReloadingProfile__rawValid.waitingForTheOtherFilesWillUpdateDuration__seconds ??
1193
- BrowserLiveReloadingSettings__Default_1.default.waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds,
1194
- ...(0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.virtualHost) ? {
1195
- virtualHost: targetBrowserLiveReloadingProfile__rawValid.virtualHost
1196
- } : {},
1197
- ...(0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.ports) ? {
1198
- ports: {
1199
- ...(0, es_extensions_1.isNumber)(targetBrowserLiveReloadingProfile__rawValid.ports.main) ? {
1200
- main: targetBrowserLiveReloadingProfile__rawValid.ports.main
1201
- } : {},
1202
- ...(0, es_extensions_1.isNumber)(targetBrowserLiveReloadingProfile__rawValid.ports.userInterface) ? {
1203
- userInterface: targetBrowserLiveReloadingProfile__rawValid.ports.userInterface
1204
- } : {}
1107
+ initializeBrowsersync() {
1108
+ browser_sync_1.default.init({
1109
+ /* [ Browsersync theory ] Either "server" or "proxy" could be specified but not both. */
1110
+ ...(0, es_extensions_1.isNull)(this.browserLiveReloadingSettingsRepresentative.proxy) ? {
1111
+ server: {
1112
+ baseDir: this.browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath,
1113
+ index: this.browserLiveReloadingSettingsRepresentative.startingFileNameWithExtension
1205
1114
  }
1206
- } : {},
1207
- ignoredFilesAndDirectories: (0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.ignoredFilesAndDirectories) ?
1208
- targetBrowserLiveReloadingProfile__rawValid.ignoredFilesAndDirectories : []
1209
- };
1115
+ } : {
1116
+ proxy: this.browserLiveReloadingSettingsRepresentative.proxy
1117
+ },
1118
+ /* [ Browsersync theory ] When port is undefined, it will be assigned automatically. */
1119
+ ...(0, es_extensions_1.isNotNull)(this.browserLiveReloadingSettingsRepresentative.localServerCustomPort) ? {
1120
+ port: this.browserLiveReloadingSettingsRepresentative.localServerCustomPort
1121
+ } : null,
1122
+ watch: true,
1123
+ ignore: this.browserLiveReloadingSettingsRepresentative.globSelectorsOfFilesAndDirectoriesWhichWillBeIgnored,
1124
+ /* [ Browsersync theory ] When value is empty array, no browsers will be opened. */
1125
+ ...this.browserLiveReloadingSettingsRepresentative.targetBrowsers.length > 0 ? {
1126
+ browser: this.browserLiveReloadingSettingsRepresentative.targetBrowsers
1127
+ } : null,
1128
+ ui: this.browserLiveReloadingSettingsRepresentative.mustEnableBrowsersyncUserInterface ? {
1129
+ /* [ Browsersync theory ] When port is undefined, it will be assigned automatically. */
1130
+ ...(0, es_extensions_1.isNotNull)(this.browserLiveReloadingSettingsRepresentative.browsersyncUserInterfaceCustomPort) ? {
1131
+ port: this.browserLiveReloadingSettingsRepresentative.browsersyncUserInterfaceCustomPort
1132
+ } : null
1133
+ } : false
1134
+ });
1135
+ }
1136
+ initializeOutputFilesWatcher() {
1137
+ let waitingForSubsequentFilesWillBeUpdatedCountdown;
1138
+ gulp_1.default.watch(this.masterConfigRepresentative.allOutputFilesGlobSelectors).
1139
+ on("all", (eventName, fileOrDirectoryPath) => {
1140
+ clearTimeout(waitingForSubsequentFilesWillBeUpdatedCountdown);
1141
+ es_extensions_1.Logger.logInfo({
1142
+ title: "Browser live reloader",
1143
+ description: ` Event : ${ChokidarSpecialist_1.default.getEventNameInterpretation(eventName)}` +
1144
+ `\n Path : ${fileOrDirectoryPath}\n` +
1145
+ "Waiting for the changing of the status of other output files before reload the browser..."
1146
+ });
1147
+ waitingForSubsequentFilesWillBeUpdatedCountdown = setTimeout(() => {
1148
+ es_extensions_1.Logger.logInfo({
1149
+ title: "Browser live reloader",
1150
+ description: "Reloading the browser ..."
1151
+ });
1152
+ browser_sync_1.default.reload();
1153
+ }, (0, es_extensions_1.secondsToMilliseconds)(this.browserLiveReloadingSettingsRepresentative.periodBetweenFileUpdatingAndBrowserReloading__seconds));
1154
+ });
1210
1155
  }
1211
1156
  }
1212
- exports["default"] = BrowserLiveReloadingSettingsNormalizer;
1157
+ exports["default"] = BrowserLiveReloader;
1213
1158
 
1214
1159
 
1215
1160
  /***/ }),
@@ -1218,29 +1163,47 @@ exports["default"] = BrowserLiveReloadingSettingsNormalizer;
1218
1163
  /*!********************************************************************************************!*\
1219
1164
  !*** ./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts ***!
1220
1165
  \********************************************************************************************/
1221
- /***/ ((__unused_webpack_module, exports) => {
1166
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1222
1167
 
1223
1168
 
1224
1169
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1170
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
1171
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1225
1172
  class BrowserLiveReloadingSettingsRepresentative {
1226
1173
  browserLiveReloadingSettings;
1227
1174
  constructor(browserLiveReloadingSettings) {
1228
1175
  this.browserLiveReloadingSettings = browserLiveReloadingSettings;
1229
1176
  }
1230
- get startingFilenameWithExtension() {
1231
- return this.browserLiveReloadingSettings.startingFilenameWithExtension;
1232
- }
1233
1177
  get targetFilesRootDirectoryAbsolutePath() {
1234
- return this.browserLiveReloadingSettings.targetFilesRootDirectoryAbsolutePath;
1178
+ return this.browserLiveReloadingSettings.localServer.rootDirectoryAbsolutePath;
1179
+ }
1180
+ get startingFileNameWithExtension() {
1181
+ return this.browserLiveReloadingSettings.localServer.startingFileNameWithExtension;
1182
+ }
1183
+ get localServerCustomPort() {
1184
+ return this.browserLiveReloadingSettings.localServer.port ?? null;
1185
+ }
1186
+ get globSelectorsOfFilesAndDirectoriesWhichWillBeIgnored() {
1187
+ return [...this.browserLiveReloadingSettings.localServer.ignoredFilesAndDirectoriesRelativePaths];
1235
1188
  }
1236
- get waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds() {
1237
- return this.browserLiveReloadingSettings.waitingForTheOtherFilesWillUpdateDuration__seconds;
1189
+ get mustUseHTTPS() {
1190
+ return this.browserLiveReloadingSettings.localServer.mustUseHTTPS;
1238
1191
  }
1239
- get customMainPort() {
1240
- return this.browserLiveReloadingSettings.ports?.main ?? null;
1192
+ get targetBrowsers() {
1193
+ return (0, es_extensions_1.isNotUndefined)(this.browserLiveReloadingSettings.targetBrowsers) ?
1194
+ [...this.browserLiveReloadingSettings.targetBrowsers] : [];
1241
1195
  }
1242
- get customUserInterfacePort() {
1243
- return this.browserLiveReloadingSettings.ports?.userInterface ?? null;
1196
+ get proxy() {
1197
+ return this.browserLiveReloadingSettings.proxy ?? null;
1198
+ }
1199
+ get periodBetweenFileUpdatingAndBrowserReloading__seconds() {
1200
+ return this.browserLiveReloadingSettings.periodBetweenFileUpdatingAndBrowserReloading__seconds;
1201
+ }
1202
+ get mustEnableBrowsersyncUserInterface() {
1203
+ return this.browserLiveReloadingSettings.browserSyncUserInterface.enabled;
1204
+ }
1205
+ get browsersyncUserInterfaceCustomPort() {
1206
+ return this.browserLiveReloadingSettings.browserSyncUserInterface.customPort ?? null;
1244
1207
  }
1245
1208
  }
1246
1209
  exports["default"] = BrowserLiveReloadingSettingsRepresentative;
@@ -1256,11 +1219,17 @@ exports["default"] = BrowserLiveReloadingSettingsRepresentative;
1256
1219
 
1257
1220
 
1258
1221
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1259
- exports["default"] = {
1260
- startingFilenameWithExtension: "index.html",
1261
- waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds: 0.5,
1262
- useHTTPS: true
1222
+ const BrowserLiveReloadingSettings__Default = {
1223
+ localServer: {
1224
+ startingFileNameWithExtension: "index.html",
1225
+ HTTPS_Usage: false
1226
+ },
1227
+ browserSyncUserInterface: {
1228
+ enabled: true
1229
+ },
1230
+ periodBetweenFileUpdatingAndBrowserReloading__seconds: 0.5
1263
1231
  };
1232
+ exports["default"] = BrowserLiveReloadingSettings__Default;
1264
1233
 
1265
1234
 
1266
1235
  /***/ }),
@@ -1273,6 +1242,7 @@ exports["default"] = {
1273
1242
 
1274
1243
 
1275
1244
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1245
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
1276
1246
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1277
1247
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
1278
1248
  * The merging of type/interface and namespace is completely valid TypeScript,
@@ -1282,64 +1252,97 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1282
1252
  (function (BrowserLiveReloadingSettings__FromFile__RawValid) {
1283
1253
  function getLocalizedPropertiesSpecification(browserLiveReloadingSettingsLocalization) {
1284
1254
  return {
1285
- [browserLiveReloadingSettingsLocalization.targetFilesRootDirectoryRelativePath.KEY]: {
1286
- newName: "targetFilesRootDirectoryRelativePath",
1287
- type: String,
1255
+ [browserLiveReloadingSettingsLocalization.localServer.KEY]: {
1256
+ newName: "localServer",
1257
+ type: Object,
1288
1258
  required: true,
1289
- minimalCharactersCount: 1
1259
+ properties: {
1260
+ [browserLiveReloadingSettingsLocalization.localServer.rootDirectoryRelativePath.KEY]: {
1261
+ newName: "rootDirectoryRelativePath",
1262
+ type: String,
1263
+ required: true,
1264
+ minimalCharactersCount: 1
1265
+ },
1266
+ [browserLiveReloadingSettingsLocalization.localServer.ignoredFilesAndDirectoriesRelativePaths.KEY]: {
1267
+ newName: "ignoredFilesAndDirectoriesRelativePaths",
1268
+ type: Array,
1269
+ required: false,
1270
+ preValidationModifications: es_extensions_1.nullToUndefined,
1271
+ element: {
1272
+ type: String,
1273
+ minimalCharactersCount: 1
1274
+ }
1275
+ },
1276
+ [browserLiveReloadingSettingsLocalization.localServer.customPort.KEY]: {
1277
+ newName: "customPort",
1278
+ type: Number,
1279
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger,
1280
+ required: false,
1281
+ maximalValue: 65536
1282
+ },
1283
+ [browserLiveReloadingSettingsLocalization.localServer.customStartingFileNameWithExtension.KEY]: {
1284
+ newName: "customStartingFileNameWithExtension",
1285
+ type: String,
1286
+ required: false,
1287
+ minimalCharactersCount: 1
1288
+ },
1289
+ [browserLiveReloadingSettingsLocalization.localServer.useHTTPS.KEY]: {
1290
+ newName: "useHTTPS",
1291
+ type: Boolean,
1292
+ required: false
1293
+ }
1294
+ }
1290
1295
  },
1291
- [browserLiveReloadingSettingsLocalization.customStartingFilenameWithExtension.KEY]: {
1292
- newName: "customStartingFilenameWithExtension",
1296
+ [browserLiveReloadingSettingsLocalization.proxy.KEY]: {
1297
+ newName: "proxy",
1293
1298
  type: String,
1294
1299
  required: false,
1295
1300
  minimalCharactersCount: 1
1296
1301
  },
1297
- [browserLiveReloadingSettingsLocalization.waitingForTheOtherFilesWillUpdateDuration__seconds.KEY]: {
1298
- newName: "waitingForTheOtherFilesWillUpdateDuration__seconds",
1299
- type: Number,
1300
- required: false,
1301
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.anyRealNumber
1302
- },
1303
- [browserLiveReloadingSettingsLocalization.useHTTPS.KEY]: {
1304
- newName: "useHTTPS",
1305
- type: Boolean,
1306
- required: false
1307
- },
1308
- [browserLiveReloadingSettingsLocalization.virtualHost.KEY]: {
1309
- newName: "virtualHost",
1310
- type: String,
1302
+ [browserLiveReloadingSettingsLocalization.openInBrowsers.KEY]: {
1303
+ newName: "openInBrowsers",
1304
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.oneOf,
1311
1305
  required: false,
1312
- minimalCharactersCount: 1
1306
+ alternatives: [
1307
+ {
1308
+ type: Array,
1309
+ minimalElementsCount: 1,
1310
+ element: {
1311
+ type: String,
1312
+ minimalCharactersCount: 1
1313
+ }
1314
+ },
1315
+ {
1316
+ type: String,
1317
+ minimalCharactersCount: 1
1318
+ }
1319
+ ]
1313
1320
  },
1314
- [browserLiveReloadingSettingsLocalization.ports.KEY]: {
1315
- newName: "ports",
1321
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.KEY]: {
1322
+ newName: "browserSyncUserInterface",
1316
1323
  type: Object,
1317
- preValidationModifications: es_extensions_1.nullToUndefined,
1318
1324
  required: false,
1325
+ preValidationModifications: es_extensions_1.nullToUndefined,
1319
1326
  properties: {
1320
- [browserLiveReloadingSettingsLocalization.ports.main.KEY]: {
1321
- newName: "main",
1327
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.customPort.KEY]: {
1328
+ newName: "customPort",
1322
1329
  type: Number,
1330
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger,
1323
1331
  required: false,
1324
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
1332
+ maximalValue: 65536
1325
1333
  },
1326
- [browserLiveReloadingSettingsLocalization.ports.userInterface.KEY]: {
1327
- newName: "userInterface",
1328
- type: Number,
1329
- required: false,
1330
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
1334
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.disable.KEY]: {
1335
+ newName: "disable",
1336
+ type: Boolean,
1337
+ required: false
1331
1338
  }
1332
1339
  }
1333
1340
  },
1334
- [browserLiveReloadingSettingsLocalization.ignoredFilesAndDirectories.KEY]: {
1335
- newName: "ignoreFilesAndDirectories",
1336
- type: Array,
1337
- preValidationModifications: es_extensions_1.nullToUndefined,
1341
+ [browserLiveReloadingSettingsLocalization.periodBetweenFileUpdatingAndBrowserReloading__seconds.KEY]: {
1342
+ newName: "periodBetweenFileUpdatingAndBrowserReloading__seconds",
1343
+ type: Number,
1338
1344
  required: false,
1339
- element: {
1340
- type: String,
1341
- minimalCharactersCount: 1
1342
- }
1345
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.anyRealNumber
1343
1346
  }
1344
1347
  };
1345
1348
  }
@@ -1348,6 +1351,141 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1348
1351
  exports["default"] = BrowserLiveReloadingSettings__FromFile__RawValid;
1349
1352
 
1350
1353
 
1354
+ /***/ }),
1355
+
1356
+ /***/ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts":
1357
+ /*!**************************************************************************************************************!*\
1358
+ !*** ./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts ***!
1359
+ \**************************************************************************************************************/
1360
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1361
+
1362
+
1363
+ var __importDefault = (this && this.__importDefault) || function (mod) {
1364
+ return (mod && mod.__esModule) ? mod : { "default": mod };
1365
+ };
1366
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1367
+ /* --- Default configuration ---------------------------------------------------------------------------------------- */
1368
+ const BrowserLiveReloadingSettings__Default_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__Default */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__Default.ts"));
1369
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
1370
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1371
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
1372
+ /* --- Localization ------------------------------------------------------------------------------------------------- */
1373
+ const BrowserLiveReloadingSettingsNormalizerLocalization_english_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizerLocalization.english */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizerLocalization.english.ts"));
1374
+ class BrowserLiveReloadingSettingsNormalizer {
1375
+ static localization = BrowserLiveReloadingSettingsNormalizerLocalization_english_1.default;
1376
+ static normalize({ browserLiveReloadingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized, hasSelectiveExecutionBeenDeclared, selectedBrowserLiveReloadingSetupID }) {
1377
+ let actualBrowserLiveReloadingSetup__rawValid;
1378
+ if ((0, es_extensions_1.isNotUndefined)(selectedBrowserLiveReloadingSetupID)) {
1379
+ actualBrowserLiveReloadingSetup__rawValid =
1380
+ browserLiveReloadingSettings__fromFile__rawValid[selectedBrowserLiveReloadingSetupID];
1381
+ if ((0, es_extensions_1.isUndefined)(actualBrowserLiveReloadingSetup__rawValid)) {
1382
+ es_extensions_1.Logger.throwErrorAndLog({
1383
+ errorInstance: new es_extensions_1.InvalidParameterValueError({
1384
+ customMessage: BrowserLiveReloadingSettingsNormalizer.localization.
1385
+ generateUndefinedBrowserLiveReloadingSetupID_Message({
1386
+ selectedBrowserLiveReloadingSetupID,
1387
+ stringifiedAvailableBrowserLiveReloadingSetupsIDs: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(Object.keys(browserLiveReloadingSettings__fromFile__rawValid))
1388
+ })
1389
+ }),
1390
+ occurrenceLocation: "BrowserLiveReloadingSettingsNormalizer.normalize(namedParameters)",
1391
+ title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
1392
+ });
1393
+ }
1394
+ }
1395
+ else if (!hasSelectiveExecutionBeenDeclared &&
1396
+ Object.values(browserLiveReloadingSettings__fromFile__rawValid).length === 1) {
1397
+ actualBrowserLiveReloadingSetup__rawValid = Object.values(browserLiveReloadingSettings__fromFile__rawValid)[0];
1398
+ }
1399
+ else {
1400
+ return;
1401
+ }
1402
+ return {
1403
+ localServer: {
1404
+ rootDirectoryAbsolutePath: ImprovedPath_1.default.joinPathSegments([
1405
+ projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
1406
+ actualBrowserLiveReloadingSetup__rawValid.localServer.rootDirectoryRelativePath
1407
+ ], { forwardSlashOnlySeparators: true }),
1408
+ ignoredFilesAndDirectoriesRelativePaths: (() => {
1409
+ const ignoredFilesAndDirectoriesRelativePaths = actualBrowserLiveReloadingSetup__rawValid.localServer.ignoredFilesAndDirectoriesRelativePaths;
1410
+ if (Array.isArray(ignoredFilesAndDirectoriesRelativePaths)) {
1411
+ return ignoredFilesAndDirectoriesRelativePaths;
1412
+ }
1413
+ else if ((0, es_extensions_1.isString)(ignoredFilesAndDirectoriesRelativePaths)) {
1414
+ return [ignoredFilesAndDirectoriesRelativePaths];
1415
+ }
1416
+ return [];
1417
+ })(),
1418
+ ...(0, es_extensions_1.isNotUndefined)(actualBrowserLiveReloadingSetup__rawValid.localServer.customPort) ? {
1419
+ port: actualBrowserLiveReloadingSetup__rawValid.localServer.customPort
1420
+ } : null,
1421
+ startingFileNameWithExtension: actualBrowserLiveReloadingSetup__rawValid.localServer.customStartingFileNameWithExtension ??
1422
+ BrowserLiveReloadingSettings__Default_1.default.localServer.startingFileNameWithExtension,
1423
+ mustUseHTTPS: actualBrowserLiveReloadingSetup__rawValid.localServer.useHTTPS === true ?
1424
+ true : BrowserLiveReloadingSettings__Default_1.default.localServer.HTTPS_Usage
1425
+ },
1426
+ ...(0, es_extensions_1.isNotUndefined)(actualBrowserLiveReloadingSetup__rawValid.proxy) ? {
1427
+ proxy: actualBrowserLiveReloadingSetup__rawValid.proxy
1428
+ } : {},
1429
+ ...(() => {
1430
+ if ((0, es_extensions_1.isUndefined)(actualBrowserLiveReloadingSetup__rawValid.openInBrowsers)) {
1431
+ return {};
1432
+ }
1433
+ return {
1434
+ targetBrowsers: Array.isArray(actualBrowserLiveReloadingSetup__rawValid.openInBrowsers) ?
1435
+ actualBrowserLiveReloadingSetup__rawValid.openInBrowsers :
1436
+ [actualBrowserLiveReloadingSetup__rawValid.openInBrowsers]
1437
+ };
1438
+ })(),
1439
+ browserSyncUserInterface: {
1440
+ enabled: BrowserLiveReloadingSettings__Default_1.default.browserSyncUserInterface.enabled,
1441
+ ...(() => {
1442
+ if ((0, es_extensions_1.isUndefined)(actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface) ||
1443
+ (0, es_extensions_1.isUndefined)(actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface.customPort)) {
1444
+ return {};
1445
+ }
1446
+ return {
1447
+ port: actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface.customPort
1448
+ };
1449
+ })()
1450
+ },
1451
+ ...(() => {
1452
+ if (!(0, es_extensions_1.isNonEmptyArbitraryObject)(actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface)) {
1453
+ return {};
1454
+ }
1455
+ return {
1456
+ browserSyncUserInterface: {
1457
+ ...(0, es_extensions_1.isNotUndefined)(actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface.customPort) ?
1458
+ { port: actualBrowserLiveReloadingSetup__rawValid.browserSyncUserInterface.customPort } : null,
1459
+ enabled: BrowserLiveReloadingSettings__Default_1.default.browserSyncUserInterface.enabled
1460
+ }
1461
+ };
1462
+ })(),
1463
+ periodBetweenFileUpdatingAndBrowserReloading__seconds: actualBrowserLiveReloadingSetup__rawValid.periodBetweenFileUpdatingAndBrowserReloading__seconds ??
1464
+ BrowserLiveReloadingSettings__Default_1.default.periodBetweenFileUpdatingAndBrowserReloading__seconds
1465
+ };
1466
+ }
1467
+ }
1468
+ exports["default"] = BrowserLiveReloadingSettingsNormalizer;
1469
+
1470
+
1471
+ /***/ }),
1472
+
1473
+ /***/ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizerLocalization.english.ts":
1474
+ /*!**********************************************************************************************************************************!*\
1475
+ !*** ./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizerLocalization.english.ts ***!
1476
+ \**********************************************************************************************************************************/
1477
+ /***/ ((__unused_webpack_module, exports) => {
1478
+
1479
+
1480
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1481
+ const BrowserLiveReloadingSettingsNormalizerLocalization__English = {
1482
+ generateUndefinedBrowserLiveReloadingSetupID_Message: (namedParameters) => `The specified browser setup ID '${namedParameters.selectedBrowserLiveReloadingSetupID}' is not defined ` +
1483
+ "in configuration file. Below setups IDs has been defined:\n" +
1484
+ `${namedParameters.stringifiedAvailableBrowserLiveReloadingSetupsIDs}`
1485
+ };
1486
+ exports["default"] = BrowserLiveReloadingSettingsNormalizerLocalization__English;
1487
+
1488
+
1351
1489
  /***/ }),
1352
1490
 
1353
1491
  /***/ "./ProjectBuilding/Common/Defaults/AssetsProcessingGenericSettings__Default.ts":
@@ -1410,7 +1548,7 @@ class ProjectBuildingCommonSettingsNormalizer {
1410
1548
  const actualPublicDirectoryRelativePath = commonSettings__fromFile__rawValid.publicDirectoriesRelativePaths?.[projectBuildingMode];
1411
1549
  let actualPublicDirectoryAbsolutePath;
1412
1550
  if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
1413
- actualPublicDirectoryAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { forwardSlashOnlySeparators: true });
1551
+ actualPublicDirectoryAbsolutePath = ImprovedPath_1.default.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { forwardSlashOnlySeparators: true });
1414
1552
  }
1415
1553
  return {
1416
1554
  projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
@@ -1684,8 +1822,8 @@ var LintingCommonSettings__FromFile__RawValid;
1684
1822
  required: false,
1685
1823
  minimalCharactersCount: 1
1686
1824
  },
1687
- [lintingCommonSettingsLocalization.disableCompletely.KEY]: {
1688
- newName: "disableCompletely",
1825
+ [lintingCommonSettingsLocalization.enabled.KEY]: {
1826
+ newName: "enabled",
1689
1827
  type: Boolean,
1690
1828
  required: false
1691
1829
  }
@@ -1884,12 +2022,12 @@ class AssetsProcessingRawSettingsNormalizer {
1884
2022
  if ((0, es_extensions_1.isUndefined)(assetsGroupSettings__buildingModeDependent__rawValid)) {
1885
2023
  continue;
1886
2024
  }
1887
- const currentAssetsGroupSourceFilesDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.buildAbsolutePath([
2025
+ const currentAssetsGroupSourceFilesDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.joinPathSegments([
1888
2026
  this.consumingProjectRootDirectoryAbsolutePath,
1889
2027
  assetsGroupSettings__rawValid.sourceFilesTopDirectoryRelativePath
1890
2028
  ], { forwardSlashOnlySeparators: true }));
1891
2029
  const aliasForPathsResolution = assetsGroupSettings__rawValid.sourceFilesTopDirectoryPathAliasForReferencingFromHTML ?? `@${groupID}`;
1892
- const outputFilesBaseDirectoryAbsolutePathActualForCurrentProjectBuildingMode = ImprovedPath_1.default.buildAbsolutePath([
2030
+ const outputFilesBaseDirectoryAbsolutePathActualForCurrentProjectBuildingMode = ImprovedPath_1.default.joinPathSegments([
1893
2031
  this.consumingProjectRootDirectoryAbsolutePath,
1894
2032
  assetsGroupSettings__buildingModeDependent__rawValid.outputTopDirectoryRelativePath
1895
2033
  ], { forwardSlashOnlySeparators: true });
@@ -1975,7 +2113,7 @@ class SourceCodeProcessingRawSettingsNormalizer {
1975
2113
  let isSingeEntryPointGroup;
1976
2114
  if ("singleEntryPointRelativePath" in entryPointsGroupSettings__rawValid) {
1977
2115
  isSingeEntryPointGroup = true;
1978
- const absolutePathOfSingleEntryPointOfGroup = ImprovedPath_1.default.buildAbsolutePath([
2116
+ const absolutePathOfSingleEntryPointOfGroup = ImprovedPath_1.default.joinPathSegments([
1979
2117
  this.consumingProjectRootDirectoryAbsolutePath,
1980
2118
  entryPointsGroupSettings__rawValid.singleEntryPointRelativePath
1981
2119
  ], { forwardSlashOnlySeparators: true });
@@ -1984,7 +2122,7 @@ class SourceCodeProcessingRawSettingsNormalizer {
1984
2122
  }
1985
2123
  else {
1986
2124
  isSingeEntryPointGroup = false;
1987
- entryPointsGroupSourceFilesTopDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.buildAbsolutePath([
2125
+ entryPointsGroupSourceFilesTopDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.joinPathSegments([
1988
2126
  this.consumingProjectRootDirectoryAbsolutePath,
1989
2127
  entryPointsGroupSettings__rawValid.topDirectoryRelativePath
1990
2128
  ], { forwardSlashOnlySeparators: true }));
@@ -1993,7 +2131,7 @@ class SourceCodeProcessingRawSettingsNormalizer {
1993
2131
  partialsRecognition: entryPointsGroupSettings__rawValid.partialsRecognition
1994
2132
  }));
1995
2133
  }
1996
- const entryPointsOutputFilesActualBaseDirectoryAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([
2134
+ const entryPointsOutputFilesActualBaseDirectoryAbsolutePath = ImprovedPath_1.default.joinPathSegments([
1997
2135
  this.consumingProjectRootDirectoryAbsolutePath,
1998
2136
  entryPointsGroupSettings__buildingModeDependent__rawValid.outputTopDirectoryRelativePath
1999
2137
  ], { forwardSlashOnlySeparators: true });
@@ -2127,7 +2265,7 @@ class AssetsProcessingSettingsRepresentative {
2127
2265
  prefixOfAliasOfTopDirectoryOfEntryPointsGroup = "@";
2128
2266
  masterConfigRepresentative;
2129
2267
  static computeActualOutputDirectoryAbsolutePathForTargetSourceFile({ targetSourceFileAbsolutePath, respectiveAssetsGroupNormalizedSettings }) {
2130
- let outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.buildAbsolutePath([
2268
+ let outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments([
2131
2269
  respectiveAssetsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
2132
2270
  ImprovedPath_1.default.computeRelativePath({
2133
2271
  basePath: respectiveAssetsGroupNormalizedSettings.sourceFilesTopDirectoryAbsolutePath,
@@ -2150,7 +2288,7 @@ class AssetsProcessingSettingsRepresentative {
2150
2288
  mutably: true
2151
2289
  });
2152
2290
  });
2153
- outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments(...outputDirectoryAbsolutePathForCurrentSourceFile__explodedToSegments);
2291
+ outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments(outputDirectoryAbsolutePathForCurrentSourceFile__explodedToSegments, { forwardSlashOnlySeparators: true });
2154
2292
  }
2155
2293
  return outputDirectoryAbsolutePathForCurrentSourceFile;
2156
2294
  }
@@ -2226,7 +2364,7 @@ const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_req
2226
2364
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2227
2365
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
2228
2366
  const ImprovedGlob_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedGlob */ "./UtilsIncubator/ImprovedGlob.ts"));
2229
- const PartialsFilesMapper_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/PartialsFilesMapper */ "./UtilsIncubator/PartialsFilesMapper.ts"));
2367
+ const PartialsFilesMapper_1 = __importDefault(__webpack_require__(/*! @Utils/PartialsFilesMapper */ "./Utils/PartialsFilesMapper.ts"));
2230
2368
  class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
2231
2369
  static #localization = GulpStreamBasedSourceCodeProcessingConfigRepresentative.getDefaultLocalization();
2232
2370
  partialFilesAndEntryPointsRelationsMap = new Map();
@@ -2236,7 +2374,7 @@ class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCode
2236
2374
  if (respectiveEntryPointsGroupSettings.isSingeEntryPointGroup) {
2237
2375
  return respectiveEntryPointsGroupSettings.outputFilesTopDirectoryAbsolutePath;
2238
2376
  }
2239
- return ImprovedPath_1.default.buildAbsolutePath([
2377
+ return ImprovedPath_1.default.joinPathSegments([
2240
2378
  respectiveEntryPointsGroupSettings.outputFilesTopDirectoryAbsolutePath,
2241
2379
  ImprovedPath_1.default.computeRelativePath({
2242
2380
  basePath: respectiveEntryPointsGroupSettings.sourceFilesTopDirectoryAbsolutePath,
@@ -2357,7 +2495,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2357
2495
  };
2358
2496
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2359
2497
  /* --- Task executors ----------------------------------------------------------------------------------------------- */
2360
- const GulpStreamsBasedTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts"));
2498
+ const GulpStreamsBasedTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts"));
2361
2499
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
2362
2500
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2363
2501
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
@@ -2418,7 +2556,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2418
2556
  };
2419
2557
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2420
2558
  /* --- Task executors ----------------------------------------------------------------------------------------------- */
2421
- const GulpStreamsBasedTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts"));
2559
+ const GulpStreamsBasedTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts"));
2422
2560
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
2423
2561
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2424
2562
  /* --- General utils ------------------------------------------------------------------------------------------------ */
@@ -2526,10 +2664,10 @@ exports["default"] = GulpStreamsBasedSourceCodeProcessor;
2526
2664
 
2527
2665
  /***/ }),
2528
2666
 
2529
- /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts":
2530
- /*!*******************************************************************************!*\
2531
- !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts ***!
2532
- \*******************************************************************************/
2667
+ /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts":
2668
+ /*!************************************************************************************************!*\
2669
+ !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts ***!
2670
+ \************************************************************************************************/
2533
2671
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2534
2672
 
2535
2673
 
@@ -2537,27 +2675,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2537
2675
  return (mod && mod.__esModule) ? mod : { "default": mod };
2538
2676
  };
2539
2677
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2540
- /* --- Task executors ----------------------------------------------------------------------------------------------- */
2541
- const TaskExecutor_1 = __importDefault(__webpack_require__(/*! ./TaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts"));
2542
2678
  const gulp_debug_1 = __importDefault(__webpack_require__(/*! gulp-debug */ "gulp-debug"));
2543
2679
  const gulp_plumber_1 = __importDefault(__webpack_require__(/*! gulp-plumber */ "gulp-plumber"));
2544
2680
  /* --- General utils ------------------------------------------------------------------------------------------------ */
2545
2681
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2546
2682
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
2547
- class GulpStreamsBasedTaskExecutor extends TaskExecutor_1.default {
2548
- printProcessedFilesPathsAndQuantity() {
2549
- return (0, gulp_debug_1.default)({ title: `Task ${this.TASK_NAME_FOR_LOGGING}: ` });
2683
+ class GulpStreamsBasedTaskExecutor {
2684
+ masterConfigRepresentative;
2685
+ constructor(masterConfigRepresentative) {
2686
+ this.masterConfigRepresentative = masterConfigRepresentative;
2550
2687
  }
2551
- handleErrorIfItWillOccur() {
2688
+ printProcessedFilesPathsAndQuantity(namedParameters = {}) {
2689
+ return (0, gulp_debug_1.default)({
2690
+ title: `Task '${this.TASK_NAME_FOR_LOGGING}` +
2691
+ `${(0, es_extensions_1.insertSubstring)(namedParameters.subtaskName, { modifier: (subtaskName) => ` / ${subtaskName}` })}':`
2692
+ });
2693
+ }
2694
+ handleErrorIfItWillOccur(namedParameters = {}) {
2552
2695
  return (0, gulp_plumber_1.default)({
2553
2696
  errorHandler: (error) => {
2554
- const ERROR_MESSAGE_TITLE = `${this.TASK_NAME_FOR_LOGGING}, error occurred`;
2697
+ const ERROR_MESSAGE_TITLE = `Task '${this.TASK_NAME_FOR_LOGGING}` +
2698
+ `${(0, es_extensions_1.insertSubstring)(namedParameters.subtaskName, { modifier: (subtaskName) => ` / ${subtaskName}` })}', error occurred`;
2555
2699
  es_extensions_1.Logger.logErrorLikeMessage({
2556
2700
  title: ERROR_MESSAGE_TITLE,
2557
2701
  description: error.message
2558
2702
  });
2559
2703
  node_notifier_1.default.notify({
2560
- title: `Task ${this.TASK_NAME_FOR_LOGGING}, error occurred`,
2704
+ title: ERROR_MESSAGE_TITLE,
2561
2705
  message: "Please check your terminal for the details."
2562
2706
  });
2563
2707
  }
@@ -2569,29 +2713,10 @@ exports["default"] = GulpStreamsBasedTaskExecutor;
2569
2713
 
2570
2714
  /***/ }),
2571
2715
 
2572
- /***/ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts":
2573
- /*!***************************************************************!*\
2574
- !*** ./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts ***!
2575
- \***************************************************************/
2576
- /***/ ((__unused_webpack_module, exports) => {
2577
-
2578
-
2579
- Object.defineProperty(exports, "__esModule", ({ value: true }));
2580
- class TaskExecutor {
2581
- masterConfigRepresentative;
2582
- constructor(masterConfigRepresentative) {
2583
- this.masterConfigRepresentative = masterConfigRepresentative;
2584
- }
2585
- }
2586
- exports["default"] = TaskExecutor;
2587
-
2588
-
2589
- /***/ }),
2590
-
2591
- /***/ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts":
2592
- /*!*********************************************************************************!*\
2593
- !*** ./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts ***!
2594
- \*********************************************************************************/
2716
+ /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter.ts":
2717
+ /*!*********************************************************************************************************************!*\
2718
+ !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter.ts ***!
2719
+ \*********************************************************************************************************************/
2595
2720
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2596
2721
 
2597
2722
 
@@ -2599,30 +2724,107 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2599
2724
  return (mod && mod.__esModule) ? mod : { "default": mod };
2600
2725
  };
2601
2726
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2602
- /* --- Default settings --------------------------------------------------------------------------------------------- */
2603
- const ProjectBuildingDebuggingSettings__Default_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default */ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts"));
2604
- class ProjectBuildingDebuggingSettingsNormalizer {
2605
- static normalize(projectBuildingDebuggingSettings__fromFile__rawValid) {
2606
- return {
2607
- enabled: projectBuildingDebuggingSettings__fromFile__rawValid?.enabled ??
2608
- ProjectBuildingDebuggingSettings__Default_1.default.enabled,
2609
- partials: {
2610
- partialFilesAndParentEntryPointCorrespondence: projectBuildingDebuggingSettings__fromFile__rawValid?.partials?.partialFilesAndParentEntryPointAccordance ??
2611
- ProjectBuildingDebuggingSettings__Default_1.default.partials.partialFilesAndParentEntryPointCorrespondence
2612
- }
2613
- };
2614
- }
2615
- }
2616
- exports["default"] = ProjectBuildingDebuggingSettingsNormalizer;
2617
-
2618
-
2619
- /***/ }),
2620
-
2621
- /***/ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts":
2622
- /*!********************************************************************************!*\
2623
- !*** ./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts ***!
2624
- \********************************************************************************/
2625
- /***/ ((__unused_webpack_module, exports) => {
2727
+ /* --- Task executors ----------------------------------------------------------------------------------------------- */
2728
+ const GulpStreamsBasedTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts"));
2729
+ /* --- Applied utils ------------------------------------------------------------------------------------------------ */
2730
+ const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2731
+ /* --- Third-party solutions specialises ---------------------------------------------------------------------------- */
2732
+ const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
2733
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2734
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
2735
+ class GulpStreamsBasedSourceCodeLinter extends GulpStreamsBasedTaskExecutor_1.default {
2736
+ sourceFilesActiveWatcher = null;
2737
+ queueToProcessingOfAbsolutePathsOfFilesWhichStatusHasChanged = new Set();
2738
+ initializeOrUpdateSourceFilesWatcher() {
2739
+ // TODO Наверное следует переименовать это переменную, потому что это не Duration
2740
+ let waitingForOtherFilesWillBeSavedDuration;
2741
+ this.sourceFilesActiveWatcher = gulp_1.default.watch(this.targetFilesGlobSelectors).
2742
+ on("all", (eventName, fileOrDirectoryPath) => {
2743
+ es_extensions_1.Logger.logInfo({
2744
+ // TODO Localization + Markupの置き換え Пока что у каждого таски или сабтаска вотчер свой, потому наверно
2745
+ // следует назначить поле "владелец".
2746
+ title: "Markup files watcher",
2747
+ description: ` Event : ${ChokidarSpecialist_1.default.getEventNameInterpretation(eventName)}` +
2748
+ `\n File path : ${fileOrDirectoryPath}`
2749
+ });
2750
+ if (eventName === ChokidarSpecialist_1.default.EventsNames.directoryAdded ||
2751
+ eventName === ChokidarSpecialist_1.default.EventsNames.directoryDeleted) {
2752
+ return;
2753
+ }
2754
+ // TODO Необходимо добавить прослушиватель файлов на удаление и, собственно, убрать данные о нём из кэша.
2755
+ clearTimeout(waitingForOtherFilesWillBeSavedDuration);
2756
+ // TODO Localization + Markupの置き換え Пока что у каждого таски или сабтаска вотчер свой, потому наверно
2757
+ // следует назначить поле "владелец".
2758
+ es_extensions_1.Logger.logInfo({
2759
+ title: "Markup files watcher",
2760
+ description: "Waiting for the saving of same type files..."
2761
+ });
2762
+ /* [ Theory ] Chokidar does not understand the backslashes path separators. */
2763
+ this.queueToProcessingOfAbsolutePathsOfFilesWhichStatusHasChanged.
2764
+ add(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(fileOrDirectoryPath));
2765
+ waitingForOtherFilesWillBeSavedDuration = setTimeout(this.onFilesSetReadyToLinting.bind(this), (0, es_extensions_1.secondsToMilliseconds)(1000) // TODO 置き開ける
2766
+ );
2767
+ });
2768
+ }
2769
+ onFilesSetReadyToLinting() {
2770
+ if (this.queueToProcessingOfAbsolutePathsOfFilesWhichStatusHasChanged.size > 0) {
2771
+ this.lint(Array.from(this.queueToProcessingOfAbsolutePathsOfFilesWhichStatusHasChanged))();
2772
+ this.queueToProcessingOfAbsolutePathsOfFilesWhichStatusHasChanged.clear();
2773
+ }
2774
+ /* [ Theory ]
2775
+ * Even if to assign
2776
+ * <code> this.sourceFilesActiveWatcher = null </code>
2777
+ * whe watcher is still existing. To utilize it, it's required to close it.
2778
+ * <code> this.sourceFilesActiveWatcher.close() </code>
2779
+ * But if to close it, the Gulp pipeline will stop. To prevent it, before the utilization it's required to reassign
2780
+ * the old watcher.
2781
+ */
2782
+ let outdatedMarkupFilesWatcher = this.sourceFilesActiveWatcher;
2783
+ this.initializeOrUpdateSourceFilesWatcher();
2784
+ outdatedMarkupFilesWatcher?.close();
2785
+ outdatedMarkupFilesWatcher = null;
2786
+ }
2787
+ }
2788
+ exports["default"] = GulpStreamsBasedSourceCodeLinter;
2789
+
2790
+
2791
+ /***/ }),
2792
+
2793
+ /***/ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts":
2794
+ /*!*********************************************************************************!*\
2795
+ !*** ./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts ***!
2796
+ \*********************************************************************************/
2797
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2798
+
2799
+
2800
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2801
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2802
+ };
2803
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2804
+ /* --- Default settings --------------------------------------------------------------------------------------------- */
2805
+ const ProjectBuildingDebuggingSettings__Default_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default */ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts"));
2806
+ class ProjectBuildingDebuggingSettingsNormalizer {
2807
+ static normalize(projectBuildingDebuggingSettings__fromFile__rawValid) {
2808
+ return {
2809
+ enabled: projectBuildingDebuggingSettings__fromFile__rawValid?.enabled ??
2810
+ ProjectBuildingDebuggingSettings__Default_1.default.enabled,
2811
+ partials: {
2812
+ partialFilesAndParentEntryPointCorrespondence: projectBuildingDebuggingSettings__fromFile__rawValid?.partials?.partialFilesAndParentEntryPointAccordance ??
2813
+ ProjectBuildingDebuggingSettings__Default_1.default.partials.partialFilesAndParentEntryPointCorrespondence
2814
+ }
2815
+ };
2816
+ }
2817
+ }
2818
+ exports["default"] = ProjectBuildingDebuggingSettingsNormalizer;
2819
+
2820
+
2821
+ /***/ }),
2822
+
2823
+ /***/ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts":
2824
+ /*!********************************************************************************!*\
2825
+ !*** ./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettings__Default.ts ***!
2826
+ \********************************************************************************/
2827
+ /***/ ((__unused_webpack_module, exports) => {
2626
2828
 
2627
2829
 
2628
2830
  Object.defineProperty(exports, "__esModule", ({ value: true }));
@@ -2695,17 +2897,17 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
2695
2897
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2696
2898
  const ProjectBuildingCommonSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer */ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts"));
2697
2899
  const ProjectBuildingDebuggingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! ./Debugging/ProjectBuildingDebuggingSettingsNormalizer */ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts"));
2698
- const MarkupProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRawSettingsNormalizer.ts"));
2900
+ const MarkupProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts"));
2699
2901
  const StylesProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts"));
2700
2902
  const ECMA_ScriptLogicProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRawSettingsNormalizer.ts"));
2701
2903
  const ImagesProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ImagesProcessing/ImagesProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Images/ImagesProcessingRawSettingsNormalizer.ts"));
2702
2904
  const FontsProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @FontsProcessing/FontsProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Fonts/FontsProcessingRawSettingsNormalizer.ts"));
2703
2905
  const VideosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingRawSettingsNormalizer.ts"));
2704
2906
  const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingRawSettingsNormalizer.ts"));
2705
- const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer.ts"));
2907
+ const BrowserLiveReloadingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer */ "./ProjectBuilding/BrowserLiveReloading/RawSettingsNormalizer/BrowserLiveReloadingSettingsNormalizer.ts"));
2706
2908
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
2707
2909
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2708
- const InvalidConsoleCommandError_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Logging/Errors/InvalidConsoleCommandError */ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandError.ts"));
2910
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
2709
2911
  class ProjectBuilderRawConfigNormalizer {
2710
2912
  static localization = ProjectBuilderRawConfigNormalizer.getDefaultLocalization();
2711
2913
  static normalize({ consumingProjectRootDirectoryAbsolutePath, projectBuildingConfig__fromFile__rawValid, projectBuildingConfig__fromConsole }) {
@@ -2860,7 +3062,7 @@ class ProjectBuilderRawConfigNormalizer {
2860
3062
  }
2861
3063
  const selectedBrowserLiveReloadingSetupID = actualSelectiveExecution?.browserLiveReloadingSetupID;
2862
3064
  return {
2863
- browserLiveReloading: BrowserLiveReloadingSettingsNormalizer_1.default.getNormalizedSettings({
3065
+ browserLiveReloading: BrowserLiveReloadingSettingsNormalizer_1.default.normalize({
2864
3066
  browserLiveReloadingSettings__fromFile__rawValid,
2865
3067
  projectBuilderCommonSettings__normalized: commonSettings__normalized,
2866
3068
  hasSelectiveExecutionBeenDeclared: (0, es_extensions_1.isNotUndefined)(actualSelectiveExecution),
@@ -2879,7 +3081,7 @@ class ProjectBuilderRawConfigNormalizer {
2879
3081
  if ((0, es_extensions_1.isNotUndefined)(projectBuildingConfig__fromConsole.selectiveExecutionID)) {
2880
3082
  if ((0, es_extensions_1.isUndefined)(selectiveExecutions)) {
2881
3083
  es_extensions_1.Logger.throwErrorAndLog({
2882
- errorInstance: new InvalidConsoleCommandError_1.default({
3084
+ errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
2883
3085
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
2884
3086
  generateNoSelectiveExecutionsHasBeenDefinedErrorMessage({
2885
3087
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
@@ -2892,7 +3094,7 @@ class ProjectBuilderRawConfigNormalizer {
2892
3094
  actualSelectiveExecution = selectiveExecutions[projectBuildingConfig__fromConsole.selectiveExecutionID];
2893
3095
  if ((0, es_extensions_1.isUndefined)(actualSelectiveExecution)) {
2894
3096
  es_extensions_1.Logger.throwErrorAndLog({
2895
- errorInstance: new InvalidConsoleCommandError_1.default({
3097
+ errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
2896
3098
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
2897
3099
  generateUndefinedSelectiveExecutionID_ErrorMessage({
2898
3100
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
@@ -2969,7 +3171,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2969
3171
  },
2970
3172
  lintingCommonSettings: {
2971
3173
  presetFileRelativePath: { KEY: "presetFileRelativePath" },
2972
- disableCompletely: { KEY: "disableCompletely" }
3174
+ enabled: { KEY: "enabled" }
2973
3175
  }
2974
3176
  },
2975
3177
  commonSettings: {
@@ -2987,17 +3189,32 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2987
3189
  markupProcessing: {
2988
3190
  common: {
2989
3191
  KEY: "common",
2990
- waitingForSubsequentFilesWillBeSavedPeriod__seconds: { KEY: "waitingForSubsequentFilesWillBeSavedPeriod__seconds" }
3192
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds: {
3193
+ KEY: "periodBetweenFileUpdatingAndRebuildingStarting__seconds"
3194
+ }
3195
+ },
3196
+ staticPreview: {
3197
+ KEY: "staticPreview",
3198
+ stateDependentPagesVariationsSpecificationFileRelativePath: {
3199
+ KEY: "stateDependentPagesVariationsSpecificationFileRelativePath"
3200
+ },
3201
+ importsFromStaticDataFiles: {
3202
+ KEY: "importsFromStaticDataFiles",
3203
+ importedVariableName: { KEY: "importedVariableName" },
3204
+ fileRelativePath: { KEY: "fileRelativePath" }
3205
+ },
3206
+ importsFromCompiledTypeScript: {
3207
+ KEY: "importsFromCompiledTypeScript",
3208
+ importedNamespace: { KEY: "importedNamespace" },
3209
+ sourceFileRelativePath: { KEY: "sourceFileRelativePath" },
3210
+ outputDirectoryRelativePath: { KEY: "outputDirectoryRelativePath" }
3211
+ }
2991
3212
  },
2992
3213
  linting: {
2993
3214
  KEY: "linting"
2994
3215
  },
2995
3216
  entryPointsGroups: {
2996
3217
  KEY: "entryPointsGroups",
2997
- linting: {
2998
- KEY: "linting",
2999
- disable: { KEY: "disable" }
3000
- },
3001
3218
  HTML_Validation: {
3002
3219
  KEY: "HTML_Validation",
3003
3220
  disable: { KEY: "disable" }
@@ -3160,17 +3377,22 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3160
3377
  }
3161
3378
  },
3162
3379
  browserLiveReloading: {
3163
- targetFilesRootDirectoryRelativePath: { KEY: "targetFilesRootDirectoryRelativePath" },
3164
- customStartingFilenameWithExtension: { KEY: "customStartingFilenameWithExtension" },
3165
- waitingForTheOtherFilesWillUpdateDuration__seconds: { KEY: "waitingForTheOtherFilesWillUpdateDuration__seconds" },
3166
- useHTTPS: { KEY: "useHTTPS" },
3167
- virtualHost: { KEY: "virtualHost" },
3168
- ports: {
3169
- KEY: "ports",
3170
- main: { KEY: "main" },
3171
- userInterface: { KEY: "userInterface" }
3380
+ localServer: {
3381
+ KEY: "localServer",
3382
+ rootDirectoryRelativePath: { KEY: "rootDirectoryRelativePath" },
3383
+ ignoredFilesAndDirectoriesRelativePaths: { KEY: "ignoredFilesAndDirectoriesRelativePaths" },
3384
+ customPort: { KEY: "customPort" },
3385
+ customStartingFileNameWithExtension: { KEY: "customStartingFileNameWithExtension" },
3386
+ useHTTPS: { KEY: "useHTTPS" }
3172
3387
  },
3173
- ignoredFilesAndDirectories: { KEY: "ignoredFilesAndDirectories" }
3388
+ proxy: { KEY: "proxy" },
3389
+ openInBrowsers: { KEY: "openInBrowsers" },
3390
+ browserSyncUserInterface: {
3391
+ KEY: "browserSyncUserInterface",
3392
+ customPort: { KEY: "customPort" },
3393
+ disable: { KEY: "disable" }
3394
+ },
3395
+ periodBetweenFileUpdatingAndBrowserReloading__seconds: { KEY: "periodBetweenFileUpdatingAndBrowserReloading__seconds" }
3174
3396
  }
3175
3397
  },
3176
3398
  debugging: {
@@ -3558,14 +3780,14 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
3558
3780
  directoriesAliasesAbsolutePaths: (() => {
3559
3781
  const directoriesAliasesAbsolutePaths = {};
3560
3782
  for (const [directoryAlias, directoryAliasRelativePath] of Object.entries(ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.common?.directoriesRelativePathsAliases ?? {})) {
3561
- directoriesAliasesAbsolutePaths[directoryAlias] = ImprovedPath_1.default.buildAbsolutePath([commonSettings__normalized.projectRootDirectoryAbsolutePath, directoryAliasRelativePath], { forwardSlashOnlySeparators: true });
3783
+ directoriesAliasesAbsolutePaths[directoryAlias] = ImprovedPath_1.default.joinPathSegments([commonSettings__normalized.projectRootDirectoryAbsolutePath, directoryAliasRelativePath], { forwardSlashOnlySeparators: true });
3562
3784
  }
3563
3785
  return directoriesAliasesAbsolutePaths;
3564
3786
  })()
3565
3787
  },
3566
3788
  linting: {
3567
3789
  ...(0, es_extensions_1.isNotUndefined)(lintingSettings__fromFile__rawValid.presetFileRelativePath) ? {
3568
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
3790
+ presetFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
3569
3791
  dataHoldingSelfInstance.consumingProjectRootDirectoryAbsolutePath,
3570
3792
  lintingSettings__fromFile__rawValid.presetFileRelativePath
3571
3793
  ], { forwardSlashOnlySeparators: true })
@@ -3624,7 +3846,7 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
3624
3846
  associatedMarkupEntryPointsGroupID_ForModulesDynamicLoadingWithoutDevelopmentServer
3625
3847
  } : null,
3626
3848
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath) ? {
3627
- typeScriptConfigurationFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
3849
+ typeScriptConfigurationFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
3628
3850
  this.consumingProjectRootDirectoryAbsolutePath,
3629
3851
  entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath
3630
3852
  ], { forwardSlashOnlySeparators: true })
@@ -3673,7 +3895,7 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
3673
3895
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3674
3896
  var ECMA_ScriptLogicProcessingRestrictions;
3675
3897
  (function (ECMA_ScriptLogicProcessingRestrictions) {
3676
- ECMA_ScriptLogicProcessingRestrictions.supportedSourceFileNameExtensionsWithoutLeadingDots = ["mjs", "js", "ts"];
3898
+ ECMA_ScriptLogicProcessingRestrictions.supportedSourceFileNameExtensionsWithoutLeadingDots = ["mjs", "js", "jsx", "ts", "tsx"];
3677
3899
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFileNameExtensionsWithoutLeadingDots = ["js"];
3678
3900
  let SupportedECMA_ScriptRuntimesTypes;
3679
3901
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -3961,6 +4183,7 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
3961
4183
  newName: "buildingModeDependent",
3962
4184
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
3963
4185
  required: true,
4186
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
3964
4187
  minimalEntriesCount: 1,
3965
4188
  keysRenamings: {
3966
4189
  [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
@@ -4025,15 +4248,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4025
4248
  };
4026
4249
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4027
4250
  /* --- Applied utils ------------------------------------------------------------------------------------------------- */
4028
- const TaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/TaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts"));
4029
4251
  const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/WebpackConfigGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/WebpackConfigGenerator.ts"));
4030
4252
  const ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator.ts"));
4031
4253
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
4032
4254
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
4033
4255
  /* --- General Utils ------------------------------------------------------------------------------------------------ */
4034
4256
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4035
- class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4257
+ class ECMA_ScriptLogicProcessor {
4036
4258
  TASK_NAME_FOR_LOGGING = "ECMAScript logic processing";
4259
+ masterConfigRepresentative;
4037
4260
  ECMA_ScriptLogicProcessingConfigRepresentative;
4038
4261
  static provideLogicProcessingIfMust(masterConfigRepresentative) {
4039
4262
  if ((0, es_extensions_1.isUndefined)(masterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative)) {
@@ -4066,7 +4289,7 @@ class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4066
4289
  occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(masterConfigRepresentative)"
4067
4290
  });
4068
4291
  node_notifier_1.default.notify({
4069
- title: dataHoldingSelfInstance.TASK_NAME_FOR_LOGGING,
4292
+ title: "ECMAScript logic processing",
4070
4293
  message: "Error has occurred. Please check the console."
4071
4294
  });
4072
4295
  }
@@ -4103,7 +4326,7 @@ class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4103
4326
  };
4104
4327
  }
4105
4328
  constructor(masterConfigRepresentative, ecmaScriptLogicProcessingConfigRepresentative) {
4106
- super(masterConfigRepresentative);
4329
+ this.masterConfigRepresentative = masterConfigRepresentative;
4107
4330
  this.ECMA_ScriptLogicProcessingConfigRepresentative = ecmaScriptLogicProcessingConfigRepresentative;
4108
4331
  }
4109
4332
  }
@@ -4142,7 +4365,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
4142
4365
  static getEntryPointsOutputFileActualAbsolutePath(sourceFileAbsolutePath, entryPointsGroupNormalizedSettings) {
4143
4366
  let correspondingOutputFileAbsolutePath;
4144
4367
  if (entryPointsGroupNormalizedSettings.revisioning.mustExecute) {
4145
- const targetOutputFileGlobSelector = ImprovedPath_1.default.buildAbsolutePath([
4368
+ const targetOutputFileGlobSelector = ImprovedPath_1.default.joinPathSegments([
4146
4369
  entryPointsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
4147
4370
  `${ImprovedPath_1.default.extractFileNameWithoutExtensionFromPath(sourceFileAbsolutePath)}**.js`
4148
4371
  ], { forwardSlashOnlySeparators: true });
@@ -4168,7 +4391,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
4168
4391
  correspondingOutputFileAbsolutePath = targetOutputFileSearchResults[0];
4169
4392
  }
4170
4393
  else {
4171
- correspondingOutputFileAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([
4394
+ correspondingOutputFileAbsolutePath = ImprovedPath_1.default.joinPathSegments([
4172
4395
  entryPointsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
4173
4396
  ImprovedPath_1.default.computeRelativePath({
4174
4397
  comparedPath: ImprovedPath_1.default.extractDirectoryFromFilePath(sourceFileAbsolutePath),
@@ -4336,7 +4559,7 @@ class WebpackConfigGenerator {
4336
4559
  rules: [
4337
4560
  /* --- Logic ---------------------------------------------------------------------------------------------- */
4338
4561
  {
4339
- test: /\.ts$/u,
4562
+ test: /\.tsx?$/u,
4340
4563
  loader: "ts-loader",
4341
4564
  options: {
4342
4565
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath) ? {
@@ -4444,9 +4667,9 @@ class WebpackConfigGenerator {
4444
4667
  resolveLoader: {
4445
4668
  modules: [
4446
4669
  /* [ Theory ] Actual for normal usage via "npm install" */
4447
- ImprovedPath_1.default.buildAbsolutePath([this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath, "node_modules"], { forwardSlashOnlySeparators: true }),
4670
+ ImprovedPath_1.default.joinPathSegments([this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath, "node_modules"], { forwardSlashOnlySeparators: true }),
4448
4671
  /* [ Theory ] Actual for "npm-link" usage. */
4449
- ImprovedPath_1.default.buildAbsolutePath([__dirname, "node_modules"], { forwardSlashOnlySeparators: true })
4672
+ ImprovedPath_1.default.joinPathSegments([__dirname, "node_modules"], { forwardSlashOnlySeparators: true })
4450
4673
  ]
4451
4674
  },
4452
4675
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
@@ -4465,7 +4688,7 @@ class WebpackConfigGenerator {
4465
4688
  if ((0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath)) {
4466
4689
  return entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath;
4467
4690
  }
4468
- return ImprovedPath_1.default.buildAbsolutePath([
4691
+ return ImprovedPath_1.default.joinPathSegments([
4469
4692
  this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4470
4693
  "tsconfig.json"
4471
4694
  ], { forwardSlashOnlySeparators: true });
@@ -4480,7 +4703,7 @@ class WebpackConfigGenerator {
4480
4703
  }),
4481
4704
  new vue_loader_1.VueLoaderPlugin(),
4482
4705
  new eslint_webpack_plugin_1.default({
4483
- extensions: ["js", "ts", "vue"],
4706
+ extensions: ["js", "ts", "jsx", "tsx", "vue"],
4484
4707
  failOnError: this.masterConfigRepresentative.isStagingBuildingMode ||
4485
4708
  this.masterConfigRepresentative.isProductionBuildingMode,
4486
4709
  failOnWarning: this.masterConfigRepresentative.isStagingBuildingMode ||
@@ -4577,105 +4800,6 @@ class WebpackConfigGenerator {
4577
4800
  exports["default"] = WebpackConfigGenerator;
4578
4801
 
4579
4802
 
4580
- /***/ }),
4581
-
4582
- /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRawSettingsNormalizer.ts":
4583
- /*!**********************************************************************************************!*\
4584
- !*** ./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRawSettingsNormalizer.ts ***!
4585
- \**********************************************************************************************/
4586
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4587
-
4588
-
4589
- var __importDefault = (this && this.__importDefault) || function (mod) {
4590
- return (mod && mod.__esModule) ? mod : { "default": mod };
4591
- };
4592
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4593
- /* --- Restrictions ------------------------------------------------------------------------------------------------- */
4594
- const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4595
- /* --- Default settings --------------------------------------------------------------------------------------------- */
4596
- const MarkupProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettings__Default.ts"));
4597
- const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
4598
- /* --- Utils -------------------------------------------------------------------------------------------------------- */
4599
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4600
- const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
4601
- class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
4602
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.
4603
- supportedSourceFileNameExtensionsWithoutDots;
4604
- lintingCommonSettings;
4605
- static normalize({ markupProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
4606
- const lintingCommonSettings = (0, es_extensions_1.isUndefined)(markupProcessingSettings__fromFile__rawValid.linting) ?
4607
- { isCompletelyDisabled: !MarkupProcessingSettings__Default_1.default.linting.mustExecute } :
4608
- {
4609
- isCompletelyDisabled: markupProcessingSettings__fromFile__rawValid.linting.disableCompletely === true ?
4610
- true : !MarkupProcessingSettings__Default_1.default.linting.mustExecute,
4611
- ...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath) ? {
4612
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
4613
- commonSettings__normalized.projectRootDirectoryAbsolutePath,
4614
- markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath
4615
- ], { forwardSlashOnlySeparators: true })
4616
- } : null
4617
- };
4618
- const dataHoldingSelfInstance = new MarkupProcessingRawSettingsNormalizer({
4619
- consumingProjectBuildingMode: commonSettings__normalized.projectBuildingMode,
4620
- consumingProjectRootDirectoryAbsolutePath: commonSettings__normalized.projectRootDirectoryAbsolutePath,
4621
- ...(0, es_extensions_1.isNotUndefined)(commonSettings__normalized.tasksAndSourceFilesSelection) ? {
4622
- entryPointsGroupsIDsSelection: commonSettings__normalized.tasksAndSourceFilesSelection.markupProcessing
4623
- } : {},
4624
- markupProcessingSettings__fromFile__rawValid,
4625
- lintingCommonSettings
4626
- });
4627
- return {
4628
- common: {
4629
- supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFileNameExtensionsWithoutDots,
4630
- supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFileNameExtensionsWithoutDots,
4631
- waitingForSubsequentFilesWillBeSavedPeriod__seconds: markupProcessingSettings__fromFile__rawValid.common?.waitingForSubsequentFilesWillBeSavedPeriod__seconds ??
4632
- MarkupProcessingSettings__Default_1.default.waitingForOtherFilesWillBeSavedPeriod__seconds
4633
- },
4634
- linting: lintingCommonSettings,
4635
- relevantEntryPointsGroups: dataHoldingSelfInstance.createNormalizedEntryPointsGroupsSettings(markupProcessingSettings__fromFile__rawValid.entryPointsGroups, dataHoldingSelfInstance.
4636
- completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings.
4637
- bind(dataHoldingSelfInstance))
4638
- };
4639
- }
4640
- constructor(namedParameters) {
4641
- super(namedParameters);
4642
- this.lintingCommonSettings = namedParameters.lintingCommonSettings;
4643
- }
4644
- completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings(entryPointsGroupGenericSettings__normalized, entryPointsGroupSettings__rawValid) {
4645
- return {
4646
- ...entryPointsGroupGenericSettings__normalized,
4647
- HTML_Validation: {
4648
- mustExecute: entryPointsGroupSettings__rawValid.HTML_Validation?.disable === true ? false :
4649
- MarkupProcessingSettings__Default_1.default.HTML_Validation.mustExecute
4650
- },
4651
- linting: {
4652
- mustExecute: (() => {
4653
- if (this.lintingCommonSettings.isCompletelyDisabled) {
4654
- return false;
4655
- }
4656
- if ((0, es_extensions_1.isUndefined)(entryPointsGroupSettings__rawValid.linting)) {
4657
- return MarkupProcessingSettings__Default_1.default.linting.mustExecute;
4658
- }
4659
- if ((0, es_extensions_1.isBoolean)(entryPointsGroupSettings__rawValid.linting.disable)) {
4660
- return !entryPointsGroupSettings__rawValid.linting.disable;
4661
- }
4662
- return MarkupProcessingSettings__Default_1.default.linting.mustExecute;
4663
- })()
4664
- },
4665
- accessibilityInspection: {
4666
- mustExecute: entryPointsGroupSettings__rawValid.accessibilityInspection?.disable === true ? false :
4667
- MarkupProcessingSettings__Default_1.default.accessibilityInspection.mustExecute,
4668
- standard: entryPointsGroupSettings__rawValid.accessibilityInspection?.standard ??
4669
- MarkupProcessingSettings__Default_1.default.accessibilityInspection.standard
4670
- },
4671
- mustConvertToHandlebarsOnNonStaticPreviewModes: entryPointsGroupSettings__rawValid.
4672
- convertToHandlebarsOnNonStaticPreviewModes ?? false
4673
- };
4674
- }
4675
- }
4676
- exports["default"] = MarkupProcessingRawSettingsNormalizer;
4677
-
4678
-
4679
4803
  /***/ }),
4680
4804
 
4681
4805
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts":
@@ -4718,10 +4842,12 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
4718
4842
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
4719
4843
  TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "Markup";
4720
4844
  TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "Markup";
4845
+ TASK_NAME_FOR_LOGGING = "Markup processing";
4721
4846
  prefixOfEntryPointsGroupReference = "@";
4722
4847
  waitingForTheOtherFilesWillBeSavedPeriod__seconds;
4723
4848
  entryPointsGroupsNormalizedSettingsMappedByReferences;
4724
4849
  sourceCodeLintingCommonSettings;
4850
+ staticPreviewSettings;
4725
4851
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap = new Map();
4726
4852
  relevantEntryPointsGroupsSettings;
4727
4853
  sourceCodeProcessingCommonSettings;
@@ -4729,17 +4855,27 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
4729
4855
  super(projectBuildingMasterConfigRepresentative);
4730
4856
  this.sourceCodeProcessingCommonSettings = normalizedMarkupProcessingSettings.common;
4731
4857
  this.sourceCodeLintingCommonSettings = normalizedMarkupProcessingSettings.linting;
4858
+ this.staticPreviewSettings = normalizedMarkupProcessingSettings.staticPreview;
4732
4859
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
4733
4860
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
4734
4861
  supportedSourceFileNameExtensionsWithoutLeadingDots;
4735
4862
  this.waitingForTheOtherFilesWillBeSavedPeriod__seconds = normalizedMarkupProcessingSettings.common.
4736
- waitingForSubsequentFilesWillBeSavedPeriod__seconds;
4863
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds;
4737
4864
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
4738
4865
  `${this.prefixOfEntryPointsGroupReference}${entryPointsGroupSettings.ID}`,
4739
4866
  entryPointsGroupSettings
4740
4867
  ]));
4741
4868
  super.initializeOrUpdatePartialFilesAndEntryPointsRelationsMap();
4742
4869
  }
4870
+ /* === Static preview ============================================================================================= */
4871
+ /* --- State dependent variations --------------------------------------------------------------------------------- */
4872
+ getEntryPointStateDependentVariations(targetFileAbsolutePath) {
4873
+ return this.staticPreviewSettings.stateDependentPagesVariationsSpecification[targetFileAbsolutePath] ?? null;
4874
+ }
4875
+ /* --- Imports from TypeScript ------------------------------------------------------------------------------------ */
4876
+ get importedTypeScriptSourceFilesAbsolutePaths() {
4877
+ return this.staticPreviewSettings.compiledTypeScriptImporting.map((importFromCompiledTypeScript) => importFromCompiledTypeScript.sourceFileAbsolutePath);
4878
+ }
4743
4879
  }
4744
4880
  exports["default"] = MarkupProcessingSettingsRepresentative;
4745
4881
 
@@ -4759,10 +4895,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4759
4895
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4760
4896
  const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4761
4897
  const MarkupProcessingSettings__Default = {
4762
- waitingForOtherFilesWillBeSavedPeriod__seconds: 1,
4898
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds: 1,
4763
4899
  linting: {
4764
- mustExecute: true,
4765
- isDisabledForEntryPointGroups: false
4900
+ mustExecute: true
4766
4901
  },
4767
4902
  HTML_Validation: {
4768
4903
  mustExecute: true
@@ -4791,7 +4926,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
4791
4926
  /* --- Restrictions ------------------------------------------------------------------------------------------------- */
4792
4927
  const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4793
4928
  const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
4794
- /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
4929
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
4795
4930
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4796
4931
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
4797
4932
  * The merging of type/interface and namespace is completely valid TypeScript,
@@ -4807,14 +4942,80 @@ var MarkupProcessingSettings__FromFile__RawValid;
4807
4942
  type: Object,
4808
4943
  required: false,
4809
4944
  properties: {
4810
- [markupProcessingLocalization.common.waitingForSubsequentFilesWillBeSavedPeriod__seconds.KEY]: {
4811
- newName: "waitingForSubsequentFilesWillBeSavedPeriod__seconds",
4945
+ [markupProcessingLocalization.common.periodBetweenFileUpdatingAndRebuildingStarting__seconds.KEY]: {
4946
+ newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
4812
4947
  type: Number,
4813
4948
  required: false,
4814
4949
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
4815
4950
  }
4816
4951
  }
4817
4952
  },
4953
+ [markupProcessingLocalization.staticPreview.KEY]: {
4954
+ newName: "staticPreview",
4955
+ preValidationModifications: es_extensions_1.nullToUndefined,
4956
+ type: Object,
4957
+ required: false,
4958
+ properties: {
4959
+ [markupProcessingLocalization.staticPreview.stateDependentPagesVariationsSpecificationFileRelativePath.KEY]: {
4960
+ newName: "stateDependentPagesVariationsSpecificationFileRelativePath",
4961
+ type: String,
4962
+ required: false,
4963
+ minimalCharactersCount: 1
4964
+ },
4965
+ [markupProcessingLocalization.staticPreview.importsFromStaticDataFiles.KEY]: {
4966
+ newName: "importsFromStaticDataFiles",
4967
+ type: Array,
4968
+ required: false,
4969
+ minimalElementsCount: 1,
4970
+ element: {
4971
+ type: Object,
4972
+ properties: {
4973
+ importedVariableName: {
4974
+ newName: "importedVariableName",
4975
+ type: String,
4976
+ required: true,
4977
+ minimalCharactersCount: 1
4978
+ },
4979
+ fileRelativePath: {
4980
+ newName: "fileRelativePath",
4981
+ type: String,
4982
+ required: true,
4983
+ minimalCharactersCount: 1
4984
+ }
4985
+ }
4986
+ }
4987
+ },
4988
+ [markupProcessingLocalization.staticPreview.importsFromCompiledTypeScript.KEY]: {
4989
+ newName: "importsFromCompiledTypeScript",
4990
+ type: Array,
4991
+ required: false,
4992
+ minimalElementsCount: 1,
4993
+ element: {
4994
+ type: Object,
4995
+ properties: {
4996
+ importedNamespace: {
4997
+ newName: "importedNamespace",
4998
+ type: String,
4999
+ required: true,
5000
+ minimalCharactersCount: 1
5001
+ },
5002
+ sourceFileRelativePath: {
5003
+ newName: "sourceFileRelativePath",
5004
+ type: String,
5005
+ required: true,
5006
+ minimalCharactersCount: 1
5007
+ },
5008
+ outputDirectoryRelativePath: {
5009
+ newName: "outputDirectoryRelativePath",
5010
+ type: String,
5011
+ required: true,
5012
+ minimalCharactersCount: 1
5013
+ }
5014
+ }
5015
+ }
5016
+ }
5017
+ }
5018
+ },
4818
5019
  [markupProcessingLocalization.linting.KEY]: {
4819
5020
  newName: "linting",
4820
5021
  preValidationModifications: es_extensions_1.nullToUndefined,
@@ -4831,19 +5032,6 @@ var MarkupProcessingSettings__FromFile__RawValid;
4831
5032
  type: Object,
4832
5033
  properties: {
4833
5034
  ...sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification,
4834
- [markupProcessingLocalization.entryPointsGroups.linting.KEY]: {
4835
- newName: "linting",
4836
- preValidationModifications: es_extensions_1.nullToUndefined,
4837
- type: Object,
4838
- required: false,
4839
- properties: {
4840
- [markupProcessingLocalization.entryPointsGroups.linting.disable.KEY]: {
4841
- newName: "disable",
4842
- type: Boolean,
4843
- required: false
4844
- }
4845
- }
4846
- },
4847
5035
  [markupProcessingLocalization.entryPointsGroups.HTML_Validation.KEY]: {
4848
5036
  newName: "HTML_Validation",
4849
5037
  preValidationModifications: es_extensions_1.nullToUndefined,
@@ -4885,6 +5073,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
4885
5073
  newName: "buildingModeDependent",
4886
5074
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4887
5075
  required: true,
5076
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
4888
5077
  minimalEntriesCount: 1,
4889
5078
  keysRenamings: {
4890
5079
  [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
@@ -4933,6 +5122,7 @@ const MarkupProcessingSettingsRepresentative_1 = __importDefault(__webpack_requi
4933
5122
  const GulpStreamsBasedSourceCodeProcessor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedSourceCodeProcessor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedSourceCodeProcessor.ts"));
4934
5123
  /* --- Gulp plugins ------------------------------------------------------------------------------------------------- */
4935
5124
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
5125
+ const gulp_data_1 = __importDefault(__webpack_require__(/*! gulp-data */ "gulp-data"));
4936
5126
  const gulp_pug_1 = __importDefault(__webpack_require__(/*! gulp-pug */ "gulp-pug"));
4937
5127
  const gulp_intercept_1 = __importDefault(__webpack_require__(/*! gulp-intercept */ "gulp-intercept"));
4938
5128
  const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-prettify */ "gulp-html-prettify"));
@@ -4940,10 +5130,12 @@ const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-p
4940
5130
  const ResourcesReferencesResolverForHTML_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/ResourcesReferencesResolverForHTML/ResourcesReferencesResolverForHTML */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/ResourcesReferencesResolverForHTML/ResourcesReferencesResolverForHTML.ts"));
4941
5131
  const HTML_Validator_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/HTML_Validator/HTML_Validator */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/HTML_Validator/HTML_Validator.ts"));
4942
5132
  const AccessibilityInspector_1 = __importDefault(__webpack_require__(/*! ./Plugins/AccessibilityInspector/AccessibilityInspector */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/AccessibilityInspector/AccessibilityInspector.ts"));
4943
- const removeExtraSpacesFromJapaneseText_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/removeExtraSpacesFromJapaneseText */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts"));
5133
+ // import removeExtraSpacesFromJapaneseText from "@MarkupProcessing/Plugins/removeExtraSpacesFromJapaneseText";
4944
5134
  const stream_1 = __webpack_require__(/*! stream */ "stream");
5135
+ const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
4945
5136
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
4946
5137
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5138
+ const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
4947
5139
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
4948
5140
  class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4949
5141
  TASK_NAME_FOR_LOGGING = "Markup processing";
@@ -4977,6 +5169,28 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4977
5169
  pipe(super.printProcessedFilesPathsAndQuantity()).
4978
5170
  pipe(super.handleErrorIfItWillOccur()).
4979
5171
  pipe((0, gulp_intercept_1.default)(this.addActualSourceCodeProcessingSettingsToVinylFile.bind(this))).
5172
+ pipe(GulpStreamModifier_1.default.modify({
5173
+ onStreamStartedEventCommonHandler: async (vinylFile, addNewFileToStream) => {
5174
+ const entryPointStateDependentVariations = this.markupProcessingConfigRepresentative.
5175
+ getEntryPointStateDependentVariations(String(vinylFile.sourceAbsolutePath));
5176
+ if ((0, es_extensions_1.isNull)(entryPointStateDependentVariations)) {
5177
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
5178
+ }
5179
+ /* [ Approach ] This empty object delivers the user from checking for non-null of state variable. */
5180
+ vinylFile.pugData = { [entryPointStateDependentVariations.stateVariableName]: {} };
5181
+ for (const [derivedFileAbsolutePath, stateDependentData] of Object.entries(entryPointStateDependentVariations.derivedPagesAndStatesMap)) {
5182
+ const stateDependentMarkupVinylFileVariation = vinylFile.clone();
5183
+ stateDependentMarkupVinylFileVariation.path = path_1.default.normalize(derivedFileAbsolutePath);
5184
+ stateDependentMarkupVinylFileVariation.sourceAbsolutePath = derivedFileAbsolutePath;
5185
+ stateDependentMarkupVinylFileVariation.pugData = {
5186
+ [entryPointStateDependentVariations.stateVariableName]: stateDependentData
5187
+ };
5188
+ addNewFileToStream(stateDependentMarkupVinylFileVariation);
5189
+ }
5190
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
5191
+ }
5192
+ })).
5193
+ pipe((0, gulp_data_1.default)((vinylFile) => vinylFile.pugData)).
4980
5194
  pipe((0, gulp_pug_1.default)({
4981
5195
  locals: {
4982
5196
  __IS_STATIC_PREVIEW_BUILDING_MODE__: this.masterConfigRepresentative.isStaticPreviewBuildingMode,
@@ -4988,7 +5202,7 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4988
5202
  })).
4989
5203
  pipe((0, gulp_intercept_1.default)(this.onRawOutputCode.bind(this))).
4990
5204
  pipe((0, gulp_html_prettify_1.default)({ indent_char: " ", indent_size: 2 })).
4991
- pipe((0, gulp_intercept_1.default)(removeExtraSpacesFromJapaneseText_1.default)).
5205
+ // pipe(gulpIntercept(removeExtraSpacesFromJapaneseText)).
4992
5206
  pipe((0, gulp_intercept_1.default)(this.onPostProcessedCode.bind(this))).
4993
5207
  pipe(gulp_1.default.dest((targetFileInFinalState) => targetFileInFinalState.outputDirectoryAbsolutePath));
4994
5208
  }
@@ -5011,7 +5225,7 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
5011
5225
  const compiledHTML_File = _compiledHTML_File;
5012
5226
  this.markupProcessingConfigRepresentative.
5013
5227
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap.
5014
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledHTML_File.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(compiledHTML_File.outputDirectoryAbsolutePath, compiledHTML_File.basename));
5228
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledHTML_File.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([compiledHTML_File.outputDirectoryAbsolutePath, compiledHTML_File.basename], { forwardSlashOnlySeparators: true }));
5015
5229
  if (compiledHTML_File.processingSettings.mustConvertToHandlebarsOnNonStaticPreviewModes &&
5016
5230
  !this.masterConfigRepresentative.isStaticPreviewBuildingMode) {
5017
5231
  compiledHTML_File.extname = ".hbs";
@@ -5663,7 +5877,7 @@ class ResourcesReferencesResolverForHTML {
5663
5877
  }));
5664
5878
  return null;
5665
5879
  }
5666
- const sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension = ImprovedPath_1.default.joinPathSegments(sourceFilesTopDirectoryAbsolutePathOfCurrentAlias, ...segmentsOfPickedPath.slice(1));
5880
+ const sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension = ImprovedPath_1.default.joinPathSegments([sourceFilesTopDirectoryAbsolutePathOfCurrentAlias, ...segmentsOfPickedPath.slice(1)], { forwardSlashOnlySeparators: true });
5667
5881
  const explicitlySpecifiedSourceFilenameExtension = ImprovedPath_1.default.
5668
5882
  extractLastFilenameExtensionWithoutFirstDot(sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension);
5669
5883
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedSourceFilenameExtension)) {
@@ -5719,10 +5933,10 @@ exports["default"] = ResourcesReferencesResolverForHTML;
5719
5933
 
5720
5934
  /***/ }),
5721
5935
 
5722
- /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts":
5723
- /*!**************************************************************************************************!*\
5724
- !*** ./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts ***!
5725
- \**************************************************************************************************/
5936
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts":
5937
+ /*!********************************************************************************************************************!*\
5938
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts ***!
5939
+ \********************************************************************************************************************/
5726
5940
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5727
5941
 
5728
5942
 
@@ -5730,26 +5944,594 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5730
5944
  return (mod && mod.__esModule) ? mod : { "default": mod };
5731
5945
  };
5732
5946
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5733
- const getExpectedToBeNonNullStringifiedContentOfVinylFile_1 = __importDefault(__webpack_require__(/*! @Utils/getExpectedToBeNonNullStringifiedContentOfVinylFile */ "./Utils/getExpectedToBeNonNullStringifiedContentOfVinylFile.ts"));
5734
- const cheerio_1 = __importDefault(__webpack_require__(/*! cheerio */ "cheerio"));
5735
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5736
- function removeExtraSpacesFromJapaneseText(compiledHTML_File) {
5737
- const $HTML_FileContentCheerioCapturing = cheerio_1.default.
5738
- load((0, getExpectedToBeNonNullStringifiedContentOfVinylFile_1.default)(compiledHTML_File), { decodeEntities: false });
5739
- for (const targetElement of Array.from($HTML_FileContentCheerioCapturing("p"))) {
5740
- const $TargetElement = $HTML_FileContentCheerioCapturing(targetElement);
5741
- const targetElementHTML = $TargetElement.html();
5742
- if ((0, es_extensions_1.isNull)(targetElementHTML)) {
5743
- continue;
5744
- }
5745
- $TargetElement.html(targetElementHTML.replaceAll(/(?<characterBeforeSpace>[^\x20-\x7e]) (?<characterAfterSpace>[^\x20-\x7e])/gu, "$<characterBeforeSpace>$<characterAfterSpace>"));
5746
- }
5747
- compiledHTML_File.contents = Buffer.from($HTML_FileContentCheerioCapturing.html({ decodeEntities: false }));
5748
- return compiledHTML_File;
5749
- }
5750
- exports["default"] = removeExtraSpacesFromJapaneseText;
5751
-
5752
-
5947
+ /* --- Restrictions ------------------------------------------------------------------------------------------------- */
5948
+ const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
5949
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
5950
+ /* --- Default settings --------------------------------------------------------------------------------------------- */
5951
+ const MarkupProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettings__Default.ts"));
5952
+ /* --- Settings normalizers ----------------------------------------------------------------------------------------- */
5953
+ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
5954
+ /* --- Utils -------------------------------------------------------------------------------------------------------- */
5955
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5956
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
5957
+ const yamljs_1 = __importDefault(__webpack_require__(/*! yamljs */ "yamljs"));
5958
+ /* --- Localization ------------------------------------------------------------------------------------------------- */
5959
+ const MarkupProcessingRawSettingsNormalizerLocalization_english_1 = __importDefault(__webpack_require__(/*! ./MarkupProcessingRawSettingsNormalizerLocalization.english */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts"));
5960
+ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
5961
+ static localization = MarkupProcessingRawSettingsNormalizerLocalization_english_1.default;
5962
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.
5963
+ supportedSourceFileNameExtensionsWithoutDots;
5964
+ markupProcessingSettings__fromFile__rawValid;
5965
+ static normalize({ markupProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
5966
+ const dataHoldingSelfInstance = new MarkupProcessingRawSettingsNormalizer({
5967
+ consumingProjectBuildingMode: commonSettings__normalized.projectBuildingMode,
5968
+ consumingProjectRootDirectoryAbsolutePath: commonSettings__normalized.projectRootDirectoryAbsolutePath,
5969
+ ...(0, es_extensions_1.isNotUndefined)(commonSettings__normalized.tasksAndSourceFilesSelection) ? {
5970
+ entryPointsGroupsIDsSelection: commonSettings__normalized.tasksAndSourceFilesSelection.markupProcessing
5971
+ } : null,
5972
+ markupProcessingSettings__fromFile__rawValid
5973
+ });
5974
+ return {
5975
+ common: {
5976
+ supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFileNameExtensionsWithoutDots,
5977
+ supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFileNameExtensionsWithoutDots,
5978
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds: markupProcessingSettings__fromFile__rawValid.common?.periodBetweenFileUpdatingAndRebuildingStarting__seconds ??
5979
+ MarkupProcessingSettings__Default_1.default.periodBetweenFileUpdatingAndRebuildingStarting__seconds
5980
+ },
5981
+ linting: dataHoldingSelfInstance.normalizeLintingSettings(),
5982
+ staticPreview: {
5983
+ stateDependentPagesVariationsSpecification: dataHoldingSelfInstance.
5984
+ prepareStaticPreviewStateDependentPageVariationsData(),
5985
+ importsFromStaticDataFiles: dataHoldingSelfInstance.prepareImportsFromStaticDataFile(),
5986
+ compiledTypeScriptImporting: (() => (markupProcessingSettings__fromFile__rawValid.staticPreview?.importsFromCompiledTypeScript ?? []).map((importFromCompiledTypescript) => ({
5987
+ sourceFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
5988
+ commonSettings__normalized.projectRootDirectoryAbsolutePath,
5989
+ importFromCompiledTypescript.sourceFileRelativePath
5990
+ ], { forwardSlashOnlySeparators: true }),
5991
+ exportedNamespace: importFromCompiledTypescript.importedNamespace,
5992
+ outputDirectoryAbsolutePath: ImprovedPath_1.default.joinPathSegments([
5993
+ commonSettings__normalized.projectRootDirectoryAbsolutePath,
5994
+ importFromCompiledTypescript.outputDirectoryRelativePath
5995
+ ], { forwardSlashOnlySeparators: true })
5996
+ })))()
5997
+ },
5998
+ relevantEntryPointsGroups: dataHoldingSelfInstance.createNormalizedEntryPointsGroupsSettings(markupProcessingSettings__fromFile__rawValid.entryPointsGroups, MarkupProcessingRawSettingsNormalizer.
5999
+ completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings)
6000
+ };
6001
+ }
6002
+ constructor(namedParameters) {
6003
+ super(namedParameters);
6004
+ this.markupProcessingSettings__fromFile__rawValid = namedParameters.markupProcessingSettings__fromFile__rawValid;
6005
+ }
6006
+ normalizeLintingSettings() {
6007
+ return (0, es_extensions_1.isNotUndefined)(this.markupProcessingSettings__fromFile__rawValid.linting) ?
6008
+ {
6009
+ mustExecute: this.markupProcessingSettings__fromFile__rawValid.linting.enable === true ?
6010
+ true : MarkupProcessingSettings__Default_1.default.linting.mustExecute,
6011
+ ...(0, es_extensions_1.isNotUndefined)(this.markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath) ? {
6012
+ presetFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
6013
+ this.consumingProjectRootDirectoryAbsolutePath,
6014
+ this.markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath
6015
+ ], { forwardSlashOnlySeparators: true })
6016
+ } : null
6017
+ } :
6018
+ { mustExecute: MarkupProcessingSettings__Default_1.default.linting.mustExecute };
6019
+ }
6020
+ prepareStaticPreviewStateDependentPageVariationsData() {
6021
+ const staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath = this.markupProcessingSettings__fromFile__rawValid.staticPreview?.
6022
+ stateDependentPagesVariationsSpecificationFileRelativePath;
6023
+ if ((0, es_extensions_1.isUndefined)(staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath) ||
6024
+ this.consumingProjectBuildingMode !== ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview) {
6025
+ return {};
6026
+ }
6027
+ const staticPreviewStateDependentPagesVariationsSpecificationFileAbsolutePath = ImprovedPath_1.default.joinPathSegments([this.consumingProjectRootDirectoryAbsolutePath, staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath], { forwardSlashOnlySeparators: true });
6028
+ /* [ Approach ] Currently, the `RawObjectDataProcessor` thus `ObjectDataFilesProcessor` are ignoring and not keep the
6029
+ * data which validation rules has not been specified. In this case, the state variable is such data. */
6030
+ let rawData;
6031
+ try {
6032
+ rawData = yamljs_1.default.load(staticPreviewStateDependentPagesVariationsSpecificationFileAbsolutePath);
6033
+ }
6034
+ catch (error) {
6035
+ es_extensions_1.Logger.throwErrorAndLog({
6036
+ errorInstance: new es_extensions_1.FileReadingFailedError({
6037
+ customMessage: MarkupProcessingRawSettingsNormalizer.localization.
6038
+ generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage({
6039
+ staticPreviewStateDependentPagesVariationsSpecificationFileAbsolutePath
6040
+ })
6041
+ }),
6042
+ title: es_extensions_1.FileReadingFailedError.localization.defaultTitle,
6043
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6044
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)",
6045
+ wrappableError: error
6046
+ });
6047
+ }
6048
+ if (!(0, es_extensions_1.isArbitraryObject)(rawData)) {
6049
+ es_extensions_1.Logger.logError({
6050
+ errorType: es_extensions_1.InvalidExternalDataError.NAME,
6051
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6052
+ description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage(MarkupProcessingRawSettingsNormalizer.localization.
6053
+ generateStaticPreviewStateDependentPagesVariationsSpecificationIsNotTheObjectErrorLog({
6054
+ staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath,
6055
+ stringifiedRawData: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(rawData),
6056
+ rawDataActualType: typeof rawData
6057
+ })),
6058
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6059
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)"
6060
+ });
6061
+ return {};
6062
+ }
6063
+ const staticPreviewStateDependentPageVariationsData = {};
6064
+ for (const [markupSourceFileRelativePath__possiblyWithoutExtension, stateDependentPageVariationsData] of Object.entries(rawData)) {
6065
+ const markupSourceFileRelativePath = ImprovedPath_1.default.addFileNameExtensionIfNotPresent({
6066
+ targetFilePath: markupSourceFileRelativePath__possiblyWithoutExtension, fileNameExtension: "pug"
6067
+ });
6068
+ if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData)) {
6069
+ es_extensions_1.Logger.throwErrorAndLog({
6070
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
6071
+ customMessage: MarkupProcessingRawSettingsNormalizer.localization.
6072
+ generateInvalidValueOfStaticPreviewStateDependentPagesVariationsSpecificationAssociativeArrayMessage({
6073
+ staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath,
6074
+ invalidEntryKey: markupSourceFileRelativePath,
6075
+ invalidEntryValueType: typeof stateDependentPageVariationsData,
6076
+ invalidEntryStringifiedValue: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(stateDependentPageVariationsData)
6077
+ })
6078
+ }),
6079
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6080
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6081
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)"
6082
+ });
6083
+ }
6084
+ if (!(0, es_extensions_1.isNonEmptyString)(stateDependentPageVariationsData.stateObjectTypeVariableName)) {
6085
+ es_extensions_1.Logger.throwErrorAndLog({
6086
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
6087
+ customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableNameMessage({
6088
+ targetMarkupFileRelativePath: markupSourceFileRelativePath,
6089
+ stringifiedValueOfSpecifiedVariableNameProperty: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(stateDependentPageVariationsData.stateObjectTypeVariableName),
6090
+ specifiedTypeOfVariableNameProperty: typeof stateDependentPageVariationsData.stateObjectTypeVariableName
6091
+ })
6092
+ }),
6093
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6094
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6095
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)"
6096
+ });
6097
+ }
6098
+ if (!(0, es_extensions_1.isArbitraryObject)(stateDependentPageVariationsData.variations)) {
6099
+ es_extensions_1.Logger.throwErrorAndLog({
6100
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
6101
+ customMessage: MarkupProcessingRawSettingsNormalizer.localization.
6102
+ generateInvalidPageStateDependentVariationsSpecificationMessage({
6103
+ targetMarkupFileRelativePath: markupSourceFileRelativePath,
6104
+ actualType: typeof stateDependentPageVariationsData.variations,
6105
+ actualStringifiedValue: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(stateDependentPageVariationsData.variations)
6106
+ })
6107
+ }),
6108
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6109
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6110
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)"
6111
+ });
6112
+ }
6113
+ const markupSourceFileFileAbsolutePath = ImprovedPath_1.default.joinPathSegments([this.consumingProjectRootDirectoryAbsolutePath, markupSourceFileRelativePath], { forwardSlashOnlySeparators: true });
6114
+ const derivedPagesAndStatesMap = {};
6115
+ for (const [postfix, state] of Object.entries(stateDependentPageVariationsData.variations)) {
6116
+ const derivedFileAbsolutePath = `${ImprovedPath_1.default.removeFilenameExtensionFromPath(markupSourceFileFileAbsolutePath)}${postfix}.pug`;
6117
+ if (!(0, es_extensions_1.isArbitraryObject)(state)) {
6118
+ es_extensions_1.Logger.throwErrorAndLog({
6119
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
6120
+ customMessage: MarkupProcessingRawSettingsNormalizer.localization.generateInvalidPageStateVariableMessage({
6121
+ targetMarkupFileRelativePath: markupSourceFileRelativePath,
6122
+ actualStringifiedValue: (0, es_extensions_1.stringifyAndFormatArbitraryValue)(state),
6123
+ actualType: typeof state
6124
+ })
6125
+ }),
6126
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6127
+ occurrenceLocation: "MarkupProcessingRawSettingsNormalizer." +
6128
+ "prepareStaticPreviewStateDependentPageVariationsData(namedParameters)"
6129
+ });
6130
+ }
6131
+ derivedPagesAndStatesMap[derivedFileAbsolutePath] = state;
6132
+ }
6133
+ staticPreviewStateDependentPageVariationsData[markupSourceFileFileAbsolutePath] = {
6134
+ stateVariableName: stateDependentPageVariationsData.stateObjectTypeVariableName,
6135
+ derivedPagesAndStatesMap
6136
+ };
6137
+ }
6138
+ return staticPreviewStateDependentPageVariationsData;
6139
+ }
6140
+ prepareImportsFromStaticDataFile() {
6141
+ const importsFromStaticDataFiles = {};
6142
+ // for (
6143
+ // const importFromStaticDataFile of
6144
+ // this.markupProcessingSettings__fromFile__rawValid.staticPreview?.importsFromStaticDataFiles ?? []
6145
+ // ) {
6146
+ //
6147
+ // }
6148
+ return importsFromStaticDataFiles;
6149
+ }
6150
+ static completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings(entryPointsGroupGenericSettings__normalized, entryPointsGroupSettings__rawValid) {
6151
+ return {
6152
+ ...entryPointsGroupGenericSettings__normalized,
6153
+ HTML_Validation: {
6154
+ mustExecute: entryPointsGroupSettings__rawValid.HTML_Validation?.disable === true ? false :
6155
+ MarkupProcessingSettings__Default_1.default.HTML_Validation.mustExecute
6156
+ },
6157
+ accessibilityInspection: {
6158
+ mustExecute: entryPointsGroupSettings__rawValid.accessibilityInspection?.disable === true ? false :
6159
+ MarkupProcessingSettings__Default_1.default.accessibilityInspection.mustExecute,
6160
+ standard: entryPointsGroupSettings__rawValid.accessibilityInspection?.standard ??
6161
+ MarkupProcessingSettings__Default_1.default.accessibilityInspection.standard
6162
+ },
6163
+ mustConvertToHandlebarsOnNonStaticPreviewModes: entryPointsGroupSettings__rawValid.
6164
+ convertToHandlebarsOnNonStaticPreviewModes ?? false
6165
+ };
6166
+ }
6167
+ }
6168
+ exports["default"] = MarkupProcessingRawSettingsNormalizer;
6169
+
6170
+
6171
+ /***/ }),
6172
+
6173
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts":
6174
+ /*!****************************************************************************************************************************************!*\
6175
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizerLocalization.english.ts ***!
6176
+ \****************************************************************************************************************************************/
6177
+ /***/ ((__unused_webpack_module, exports) => {
6178
+
6179
+
6180
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6181
+ const MarkupProcessingRawSettingsNormalizerLocalization__English = {
6182
+ generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage: (namedParameters) => "Failed to read the static preview state dependent pages variations specification file at " +
6183
+ `'${namedParameters.staticPreviewStateDependentPagesVariationsSpecificationFileAbsolutePath}'.`,
6184
+ generateStaticPreviewStateDependentPagesVariationsSpecificationIsNotTheObjectErrorLog: (namedParameters) => ({
6185
+ technicalDetails: "The parsed YAML from static preview state dependent pages variations specification file " +
6186
+ "'[ ProjectDirectory ]" +
6187
+ `${namedParameters.staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath}'` +
6188
+ `is not an ECMAScript 'object' and actually has type '${namedParameters.rawDataActualType}' and value:` +
6189
+ `${namedParameters.stringifiedRawData}\n This data will be ignored.`,
6190
+ politeExplanation: "Reading and parsing of static preview state dependent pages variations specification file, " +
6191
+ "we are expected it will has the object type as parsed YAML, the superset of JSON. Contrary to expectations, " +
6192
+ `it has the '${namedParameters.stringifiedRawData}' type. We need to investigate it. ` +
6193
+ "We will keep the YDA running however we are sorry, but currently we are unable to inject above data " +
6194
+ "to Pug files."
6195
+ }),
6196
+ generateInvalidValueOfStaticPreviewStateDependentPagesVariationsSpecificationAssociativeArrayMessage: (namedParameters) => "The static preview state dependent pages variations specification file " +
6197
+ `${namedParameters.staticPreviewStateDependentPagesVariationsSpecificationFileRelativePath}` +
6198
+ "is including the associative array with invalid value. The value respective to key " +
6199
+ `'${namedParameters.invalidEntryKey}' must be the object with 'stateObjectTypeVariableName' and 'variations' ` +
6200
+ `properties while actually has type ${namedParameters.invalidEntryValueType} ` +
6201
+ `and value ${namedParameters.invalidEntryStringifiedValue}`,
6202
+ generateInvalidPageStateVariableNameMessage: (namedParameters) => "Invalid page state variable name ('stateObjectTypeVariableName') has been specified for the markup file " +
6203
+ `'${namedParameters.targetMarkupFileRelativePath}' in static preview state dependent pages variations ` +
6204
+ "specification file. This variable name must the non-empty string while actually has type " +
6205
+ `'${namedParameters.specifiedTypeOfVariableNameProperty}' and value:\n ` +
6206
+ `${namedParameters.stringifiedValueOfSpecifiedVariableNameProperty}`,
6207
+ generateInvalidPageStateDependentVariationsSpecificationMessage: (namedParameters) => "Invalid state dependent page variations has been specified for the markup file " +
6208
+ `'${namedParameters.targetMarkupFileRelativePath}'. It must be the associative array like object while ` +
6209
+ `actually has type '${namedParameters.actualType}' and value: ${namedParameters.actualStringifiedValue}`,
6210
+ generateInvalidPageStateVariableMessage: (namedParameters) => "Invalid page state variable has been specified for the markup file " +
6211
+ `'${namedParameters.targetMarkupFileRelativePath}'. It must be the object while actually has type ` +
6212
+ `'${namedParameters.actualType}' and value: ${namedParameters.actualStringifiedValue}`
6213
+ };
6214
+ exports["default"] = MarkupProcessingRawSettingsNormalizerLocalization__English;
6215
+
6216
+
6217
+ /***/ }),
6218
+
6219
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinter.ts":
6220
+ /*!***************************************************************************************************************!*\
6221
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinter.ts ***!
6222
+ \***************************************************************************************************************/
6223
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6224
+
6225
+
6226
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6227
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6228
+ };
6229
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6230
+ /* --- Abstractions ------------------------------------------------------------------------------------------------- */
6231
+ const GulpStreamsBasedSourceCodeLinter_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter.ts"));
6232
+ /* --- Applied utils ------------------------------------------------------------------------------------------------ */
6233
+ const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
6234
+ const pug_lint_1 = __importDefault(__webpack_require__(/*! pug-lint */ "pug-lint"));
6235
+ const config_file_1 = __importDefault(__webpack_require__(/*! pug-lint/lib/config-file */ "pug-lint/lib/config-file"));
6236
+ const gulp_if_1 = __importDefault(__webpack_require__(/*! gulp-if */ "gulp-if"));
6237
+ const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
6238
+ const createImmediatelyEndingEmptyStream_1 = __importDefault(__webpack_require__(/*! @Utils/createImmediatelyEndingEmptyStream */ "./Utils/createImmediatelyEndingEmptyStream.ts"));
6239
+ const stream_combiner2_1 = __webpack_require__(/*! stream-combiner2 */ "stream-combiner2");
6240
+ const DotYDA_DirectoryManager_1 = __importDefault(__webpack_require__(/*! @Utils/DotYDA_DirectoryManager */ "./Utils/DotYDA_DirectoryManager.ts"));
6241
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
6242
+ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
6243
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
6244
+ const ImprovedGlob_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedGlob */ "./UtilsIncubator/ImprovedGlob.ts"));
6245
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6246
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6247
+ const extractSubstring_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/extractSubstring */ "./UtilsIncubator/extractSubstring.ts"));
6248
+ /* --- Localization ------------------------------------------------------------------------------------------------- */
6249
+ const MarkupSourceCodeLinterLocalization_english_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinterLocalization.english */ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinterLocalization.english.ts"));
6250
+ class MarkupSourceCodeLinter extends GulpStreamsBasedSourceCodeLinter_1.default {
6251
+ static localization = MarkupSourceCodeLinterLocalization_english_1.default;
6252
+ static LINTING_OPTIMIZATIONS_FILE_NAME_WITH_EXTENSION = "MarkupLintingCache.json";
6253
+ static cachedLintingResultsFileContentSpecification = {
6254
+ subtype: es_extensions_1.RawObjectDataProcessor.ObjectSubtypes.associativeArray,
6255
+ nameForLogging: "CachedLintingResultsFileContent",
6256
+ value: {
6257
+ type: Object,
6258
+ properties: {
6259
+ issues: {
6260
+ type: Array,
6261
+ required: true,
6262
+ element: {
6263
+ type: Object,
6264
+ properties: {
6265
+ code: {
6266
+ type: String,
6267
+ required: true,
6268
+ minimalCharactersCount: 1
6269
+ },
6270
+ message: {
6271
+ type: String,
6272
+ required: true,
6273
+ minimalCharactersCount: 1
6274
+ },
6275
+ sourceListing: {
6276
+ type: String,
6277
+ required: true
6278
+ },
6279
+ lineNumber: {
6280
+ type: Number,
6281
+ required: true,
6282
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
6283
+ },
6284
+ columnNumber: {
6285
+ type: Number,
6286
+ required: false,
6287
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
6288
+ }
6289
+ }
6290
+ }
6291
+ },
6292
+ modificationDatetime__ISO_8601: {
6293
+ type: String,
6294
+ required: true,
6295
+ minimalCharactersCount: 1
6296
+ }
6297
+ }
6298
+ }
6299
+ };
6300
+ static DISPLAYING_LINES_COUNT_BEFORE_ISSUE_IN_CODE_LISTING = 2;
6301
+ static DISPLAYING_LINES_COUNT_AFTER_ISSUE_IN_CODE_LISTING = 1;
6302
+ targetFilesGlobSelectors;
6303
+ TASK_NAME_FOR_LOGGING;
6304
+ SUBTASK_NAME_FOR_LOGGING = "Markup linting";
6305
+ pugLintInstance = new pug_lint_1.default();
6306
+ pugLintConfig;
6307
+ CACHED_LINTING_RESULTS_FILE_ABSOLUTE_PATH;
6308
+ cachedLintingResults;
6309
+ static provideMarkupLintingIfMust(masterConfigRepresentative) {
6310
+ const markupProcessingSettingsRepresentative = masterConfigRepresentative.markupProcessingSettingsRepresentative;
6311
+ if ((0, es_extensions_1.isUndefined)(markupProcessingSettingsRepresentative)) {
6312
+ return (0, createImmediatelyEndingEmptyStream_1.default)();
6313
+ }
6314
+ const pugLintConfig = config_file_1.default.load();
6315
+ if ((0, es_extensions_1.isUndefined)(pugLintConfig)) {
6316
+ es_extensions_1.Logger.logError({
6317
+ errorType: es_extensions_1.ConfigFileNotFoundError.NAME,
6318
+ title: MarkupSourceCodeLinter.localization.pugLintFileNotFoundErrorLog.title,
6319
+ description: es_extensions_1.ConfigFileNotFoundError.localization.generateDescription({
6320
+ targetTechnologyName: "pug-lint",
6321
+ configFilePathOrMultipleOfThem: [".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json", "package.json[pugLintConfig]"],
6322
+ messageSpecificPart: MarkupSourceCodeLinter.localization.pugLintFileNotFoundErrorLog.
6323
+ pugLintConfigurationFileRequirementExplanation
6324
+ }),
6325
+ occurrenceLocation: "MarkupSourceCodeLinter.provideMarkupLintingIfMust(masterConfigRepresentative)"
6326
+ });
6327
+ return (0, createImmediatelyEndingEmptyStream_1.default)();
6328
+ }
6329
+ const dataHoldingSelfInstance = new MarkupSourceCodeLinter({
6330
+ masterConfigRepresentative,
6331
+ markupProcessingSettingsRepresentative,
6332
+ pugLintConfig
6333
+ });
6334
+ return dataHoldingSelfInstance.lint(dataHoldingSelfInstance.targetFilesGlobSelectors);
6335
+ }
6336
+ constructor({ masterConfigRepresentative, markupProcessingSettingsRepresentative, pugLintConfig }) {
6337
+ super(masterConfigRepresentative);
6338
+ this.CACHED_LINTING_RESULTS_FILE_ABSOLUTE_PATH = ImprovedPath_1.default.joinPathSegments([
6339
+ DotYDA_DirectoryManager_1.default.OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH,
6340
+ MarkupSourceCodeLinter.LINTING_OPTIMIZATIONS_FILE_NAME_WITH_EXTENSION
6341
+ ], { forwardSlashOnlySeparators: true });
6342
+ if (fs_1.default.existsSync(this.CACHED_LINTING_RESULTS_FILE_ABSOLUTE_PATH)) {
6343
+ try {
6344
+ this.cachedLintingResults = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
6345
+ filePath: this.CACHED_LINTING_RESULTS_FILE_ABSOLUTE_PATH,
6346
+ validDataSpecification: MarkupSourceCodeLinter.cachedLintingResultsFileContentSpecification
6347
+ });
6348
+ }
6349
+ catch (error) {
6350
+ es_extensions_1.Logger.logError({
6351
+ errorType: es_extensions_1.InvalidExternalDataError.NAME,
6352
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
6353
+ description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
6354
+ technicalDetails: es_extensions_1.InvalidExternalDataError.localization.generateDescription({
6355
+ mentionToExpectedData: MarkupSourceCodeLinter.cachedLintingResultsFileContentSpecification.nameForLogging
6356
+ }),
6357
+ politeExplanation: MarkupSourceCodeLinter.localization.invalidCachedLintingResultsDataErrorLog.politeExplanation
6358
+ }),
6359
+ occurrenceLocation: "MarkupSourceCodeLinter.provideMarkupProcessingIfMust(masterConfigRepresentative)",
6360
+ caughtError: error
6361
+ });
6362
+ this.cachedLintingResults = {};
6363
+ }
6364
+ }
6365
+ else {
6366
+ this.cachedLintingResults = {};
6367
+ }
6368
+ this.targetFilesGlobSelectors = [
6369
+ ImprovedGlob_1.default.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
6370
+ basicDirectoryPath: masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
6371
+ fileNamesExtensions: ["pug"]
6372
+ }),
6373
+ ...(0, es_extensions_1.isNonEmptyArray)(pugLintConfig.excludeFiles) ? pugLintConfig.excludeFiles.map((globSelector) => ImprovedGlob_1.default.buildAbsolutePathBasedGlob({
6374
+ isExclusive: true,
6375
+ basicDirectoryPath: masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
6376
+ relativePathBasedGlob: globSelector
6377
+ })) : []
6378
+ ];
6379
+ this.pugLintConfig = pugLintConfig;
6380
+ this.pugLintInstance.configure(this.pugLintConfig);
6381
+ this.TASK_NAME_FOR_LOGGING = markupProcessingSettingsRepresentative.TASK_NAME_FOR_LOGGING;
6382
+ }
6383
+ lint(globSelectorOrAbsolutePathsOfTargetFiles) {
6384
+ if (globSelectorOrAbsolutePathsOfTargetFiles.length === 0) {
6385
+ return (0, createImmediatelyEndingEmptyStream_1.default)();
6386
+ }
6387
+ return () => gulp_1.default.
6388
+ /* [ Theory ] No need to read the file immediately - maybe it has not changed since last modification thus linting
6389
+ results could be cached. */
6390
+ src(globSelectorOrAbsolutePathsOfTargetFiles, { read: false }).
6391
+ pipe(super.printProcessedFilesPathsAndQuantity({ subtaskName: this.SUBTASK_NAME_FOR_LOGGING })).
6392
+ pipe(super.handleErrorIfItWillOccur()).
6393
+ pipe((0, gulp_if_1.default)((markupSourceFile) => this.hasLintingResultsBeenCachedForSpecificMarkupSourceFile(markupSourceFile), GulpStreamModifier_1.default.modify({
6394
+ onStreamStartedEventCommonHandler: async (markupSourceFile) => {
6395
+ markupSourceFile.lintingResults = this.cachedLintingResults[markupSourceFile.path]?.issues;
6396
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
6397
+ }
6398
+ }), (0, stream_combiner2_1.obj)(GulpStreamModifier_1.default.modify({
6399
+ async onStreamStartedEventCommonHandler(file) {
6400
+ file.contents = fs_1.default.readFileSync(file.path);
6401
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
6402
+ }
6403
+ }), GulpStreamModifier_1.default.modify({
6404
+ onStreamStartedEventCommonHandler: async (file) => {
6405
+ let lintingIssues;
6406
+ try {
6407
+ lintingIssues = this.pugLintInstance.checkFile(file.path).
6408
+ map((error) => ({
6409
+ code: error.code,
6410
+ message: error.msg,
6411
+ sourceListing: error.src,
6412
+ lineNumber: error.line,
6413
+ columnNumber: error.column
6414
+ }));
6415
+ }
6416
+ catch (error) {
6417
+ es_extensions_1.Logger.throwErrorAndLog({
6418
+ errorType: "MarkupLintingError",
6419
+ title: MarkupSourceCodeLinter.localization.pugLintingFailedErrorLog.title,
6420
+ description: es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
6421
+ technicalDetails: MarkupSourceCodeLinter.localization.pugLintingFailedErrorLog.technicalDetails,
6422
+ politeExplanation: MarkupSourceCodeLinter.localization.pugLintingFailedErrorLog.politeExplanation
6423
+ }),
6424
+ occurrenceLocation: "markupSourceCodeLinter.lint()",
6425
+ wrappableError: error
6426
+ });
6427
+ }
6428
+ file.lintingIssues = lintingIssues;
6429
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
6430
+ }
6431
+ }), GulpStreamModifier_1.default.modify({
6432
+ onStreamStartedEventCommonHandler: async (file) => {
6433
+ this.cachedLintingResults[ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(file.relative)] = {
6434
+ issues: file.lintingIssues,
6435
+ modificationDatetime__ISO_8601: file.stat?.mtime.toJSON() ?? new Date().toISOString()
6436
+ };
6437
+ return Promise.resolve(GulpStreamModifier_1.default.CompletionSignals.PASSING_ON);
6438
+ }
6439
+ })))).
6440
+ on("end", () => {
6441
+ const atLeastOneLintingIssueFound = Object.values(this.cachedLintingResults).some((lintingResult) => (0, es_extensions_1.isNotUndefined)(lintingResult) && lintingResult.issues.length > 0);
6442
+ if (atLeastOneLintingIssueFound) {
6443
+ const issuesFormattedLogs = [];
6444
+ for (const [fileRelativePath, lintingResult] of Object.entries(this.cachedLintingResults)) {
6445
+ if ((0, es_extensions_1.isUndefined)(lintingResult) || lintingResult.issues.length === 0) {
6446
+ continue;
6447
+ }
6448
+ issuesFormattedLogs.push(`■ ${fileRelativePath}: ${lintingResult.issues.length} issue(s)` +
6449
+ `\n${MarkupSourceCodeLinter.formatIssuesOfSingleFile(lintingResult)}`);
6450
+ }
6451
+ es_extensions_1.Logger.logErrorLikeMessage({
6452
+ title: "Markup linting, issue(s) found",
6453
+ description: `\n${issuesFormattedLogs.join("\n\n")}`
6454
+ });
6455
+ }
6456
+ fs_1.default.writeFileSync(this.CACHED_LINTING_RESULTS_FILE_ABSOLUTE_PATH, (0, es_extensions_1.stringifyAndFormatArbitraryValue)(this.cachedLintingResults));
6457
+ });
6458
+ }
6459
+ hasLintingResultsBeenCachedForSpecificMarkupSourceFile(targetMarkupSourceFile) {
6460
+ return this.cachedLintingResults[ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(targetMarkupSourceFile.relative)]?.
6461
+ modificationDatetime__ISO_8601 === targetMarkupSourceFile.stat?.mtime.toJSON();
6462
+ }
6463
+ static formatIssuesOfSingleFile(lintingResult) {
6464
+ return lintingResult.issues.map((issue) => "------------------------------------------------------------------------------------------------------\n" +
6465
+ `${MarkupSourceCodeLinter.createExtractionFromCodeListingWithHighlightedIssueLine(issue)}\n` +
6466
+ "------------------------------------------------------------------------------------------------------\n" +
6467
+ `${issue.message}\n` +
6468
+ `at line ${issue.lineNumber}` +
6469
+ `${(0, es_extensions_1.insertSubstring)(issue.columnNumber, {
6470
+ modifier: (stringifiedColumnNumber) => `, column ${stringifiedColumnNumber}`
6471
+ })}`).join("\n\n");
6472
+ }
6473
+ static createExtractionFromCodeListingWithHighlightedIssueLine(issue) {
6474
+ const sourceCodeListingExplodedToLines = issue.sourceListing.split("\n");
6475
+ if ((0, es_extensions_1.isUndefined)(issue.columnNumber)) {
6476
+ sourceCodeListingExplodedToLines[issue.lineNumber - 1] =
6477
+ es_extensions_1.Logger.highlightText(sourceCodeListingExplodedToLines[issue.lineNumber - 1]);
6478
+ }
6479
+ else {
6480
+ const targetCodeLine = sourceCodeListingExplodedToLines[issue.lineNumber - 1];
6481
+ const codeFragmentPartWhichMustBeHighlighted = (0, extractSubstring_1.default)(targetCodeLine, {
6482
+ startingSymbolNumber__numerationFrom1: issue.columnNumber,
6483
+ lastSymbolNumber__numerationFrom0: targetCodeLine.length - 1
6484
+ });
6485
+ sourceCodeListingExplodedToLines[issue.lineNumber - 1] = targetCodeLine.replace(codeFragmentPartWhichMustBeHighlighted, es_extensions_1.Logger.highlightText(codeFragmentPartWhichMustBeHighlighted));
6486
+ }
6487
+ let firstLineWhichBeExtractedFromCodeListingForLogging = issue.lineNumber - 1 -
6488
+ MarkupSourceCodeLinter.DISPLAYING_LINES_COUNT_BEFORE_ISSUE_IN_CODE_LISTING;
6489
+ if (firstLineWhichBeExtractedFromCodeListingForLogging < 0) {
6490
+ firstLineWhichBeExtractedFromCodeListingForLogging = 0;
6491
+ }
6492
+ let lastLineWhichBeExtractedFromCodeListingForLogging = issue.lineNumber +
6493
+ MarkupSourceCodeLinter.DISPLAYING_LINES_COUNT_AFTER_ISSUE_IN_CODE_LISTING;
6494
+ if (lastLineWhichBeExtractedFromCodeListingForLogging > sourceCodeListingExplodedToLines.length) {
6495
+ lastLineWhichBeExtractedFromCodeListingForLogging = sourceCodeListingExplodedToLines.length;
6496
+ }
6497
+ const partialListing = sourceCodeListingExplodedToLines.slice(firstLineWhichBeExtractedFromCodeListingForLogging, lastLineWhichBeExtractedFromCodeListingForLogging);
6498
+ return partialListing.join("\n");
6499
+ }
6500
+ }
6501
+ exports["default"] = MarkupSourceCodeLinter;
6502
+
6503
+
6504
+ /***/ }),
6505
+
6506
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinterLocalization.english.ts":
6507
+ /*!***********************************************************************************************************************************!*\
6508
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/MarkupSourceCodeLinter/MarkupSourceCodeLinterLocalization.english.ts ***!
6509
+ \***********************************************************************************************************************************/
6510
+ /***/ ((__unused_webpack_module, exports) => {
6511
+
6512
+
6513
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6514
+ const markupSourceCodeLinterLocalization__english = {
6515
+ pugLintFileNotFoundErrorLog: {
6516
+ title: "'pug-lint' configuration file not found",
6517
+ pugLintConfigurationFileRequirementExplanation: "Intended to be used for high quality web/native development, " +
6518
+ "the markup source code linting is enabled by default. If you can not use it for some reason, disable it."
6519
+ },
6520
+ invalidCachedLintingResultsDataErrorLog: {
6521
+ politeExplanation: "The error occurred during the parsing of the file with previous (cached) markup linting results. " +
6522
+ "Of course the YDA developers has took care about written data matching with expected scheme, however this bug " +
6523
+ "occurrence means that some combination of conditions was not taken into account."
6524
+ },
6525
+ pugLintingFailedErrorLog: {
6526
+ title: "Markup linting error",
6527
+ technicalDetails: "The error occurred during execution of 'pugLintInstance.checkFile(filePath)'",
6528
+ politeExplanation: "The Pug linter has thrown the error under unknown for YDA developers combination " +
6529
+ " of conditions."
6530
+ }
6531
+ };
6532
+ exports["default"] = markupSourceCodeLinterLocalization__english;
6533
+
6534
+
5753
6535
  /***/ }),
5754
6536
 
5755
6537
  /***/ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts":
@@ -5787,7 +6569,7 @@ class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
5787
6569
  isCompletelyDisabled: stylesProcessingSettings__fromFile__rawValid.linting.disableCompletely === true ?
5788
6570
  true : !StylesProcessingSettings__Default_1.default.linting.mustExecute,
5789
6571
  ...(0, es_extensions_1.isNotUndefined)(stylesProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath) ? {
5790
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
6572
+ presetFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
5791
6573
  commonSettings__normalized.projectRootDirectoryAbsolutePath,
5792
6574
  StlintLinterSpecialist_1.default.DEFAULT_CONFIG_FILE_NAME_WITH_EXTENSION
5793
6575
  ], { forwardSlashOnlySeparators: true })
@@ -5888,7 +6670,6 @@ const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @
5888
6670
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
5889
6671
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5890
6672
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
5891
- const PoliteErrorsMessagesBuilder_1 = __importDefault(__webpack_require__(/*! @Utils/PoliteErrorsMessagesBuilder */ "./Utils/PoliteErrorsMessagesBuilder.ts"));
5892
6673
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
5893
6674
  static #localization = {
5894
6675
  targetFilesType: {
@@ -5936,7 +6717,7 @@ class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
5936
6717
  extractLastFilenameExtensionWithoutFirstDot(targetFilePath);
5937
6718
  if ((0, es_extensions_1.isNull)(filenameExtensionOfTargetFile)) {
5938
6719
  es_extensions_1.Logger.throwErrorAndLog({
5939
- errorInstance: new es_extensions_1.UnexpectedEventError(PoliteErrorsMessagesBuilder_1.default.buildMessage({
6720
+ errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
5940
6721
  technicalDetails: StylesProcessingSettingsRepresentative.#localization.errorsMessagesData.
5941
6722
  unableToDecideMustFileBePrecessedByStylusPreProcessorBecauseFileNameExtensionIsMissing.
5942
6723
  generateTechnicalDetails({ filePath: targetFilePath }),
@@ -6087,6 +6868,7 @@ var StylesProcessingSettings__FromFile__RawValid;
6087
6868
  preValidationModifications: es_extensions_1.nullToUndefined,
6088
6869
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
6089
6870
  required: true,
6871
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
6090
6872
  minimalEntriesCount: 1,
6091
6873
  keysRenamings: {
6092
6874
  [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
@@ -6188,7 +6970,7 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6188
6970
  pipe((0, gulp_if_1.default)(this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
6189
6971
  this.masterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
6190
6972
  pipe((0, gulp_if_1.default)((file) => file.mustBeProcessedByStylus, (0, gulp_stylus_1.default)({
6191
- /* [ Theory ] Allows to "@include XXX.css" which is critical for third-party libraries usage. */
6973
+ /* [ Theory ] Allows to "@include XXX.css" which is critical for third-party libraries' usage. */
6192
6974
  "include css": true
6193
6975
  }))).
6194
6976
  pipe((0, gulp_postcss_1.default)(() => ({
@@ -6233,7 +7015,7 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6233
7015
  }
6234
7016
  this.stylesProcessingConfigRepresentative.
6235
7017
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap.
6236
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledStylesheet.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(compiledStylesheet.outputDirectoryAbsolutePath, compiledStylesheet.basename));
7018
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledStylesheet.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([compiledStylesheet.outputDirectoryAbsolutePath, compiledStylesheet.basename], { forwardSlashOnlySeparators: true }));
6237
7019
  return compiledStylesheet;
6238
7020
  }
6239
7021
  }
@@ -6265,11 +7047,11 @@ var ChokidarSpecialist;
6265
7047
  })(EventsNames = ChokidarSpecialist.EventsNames || (ChokidarSpecialist.EventsNames = {}));
6266
7048
  function getEventNameInterpretation(eventName) {
6267
7049
  switch (eventName) {
6268
- case EventsNames.fileAdded: return "File added";
6269
- case EventsNames.fileChanged: return "File changed";
6270
- case EventsNames.fileDeleted: return "File deleted";
6271
- case EventsNames.directoryAdded: return "Directory added";
6272
- case EventsNames.directoryDeleted: return "Directory deleted";
7050
+ case EventsNames.fileAdded: return "File has been added";
7051
+ case EventsNames.fileChanged: return "File has changed";
7052
+ case EventsNames.fileDeleted: return "File has been deleted";
7053
+ case EventsNames.directoryAdded: return "Directory has been added";
7054
+ case EventsNames.directoryDeleted: return "Directory has been deleted";
6273
7055
  case EventsNames.errorOccurred: return "Error occurred";
6274
7056
  case EventsNames.initialScanComplete: return "Initial scan complete";
6275
7057
  default: return eventName;
@@ -6416,6 +7198,7 @@ class ImprovedGlob {
6416
7198
  es_extensions_1.Logger.throwErrorAndLog({
6417
7199
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6418
7200
  parameterName: "parametersObject.filesNamesPrefixes",
7201
+ parameterNumber: 1,
6419
7202
  messageSpecificPart: "If must be define at leas element of 'filesNamesPrefixes'."
6420
7203
  }),
6421
7204
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6426,6 +7209,7 @@ class ImprovedGlob {
6426
7209
  es_extensions_1.Logger.throwErrorAndLog({
6427
7210
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6428
7211
  parameterName: "parametersObject.filesNamesExtensions",
7212
+ parameterNumber: 1,
6429
7213
  messageSpecificPart: "If must be define at leas element of 'filesNamesExtensions'."
6430
7214
  }),
6431
7215
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6443,6 +7227,7 @@ class ImprovedGlob {
6443
7227
  es_extensions_1.Logger.throwErrorAndLog({
6444
7228
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6445
7229
  parameterName: "parametersObject.subdirectoriesPrefixes",
7230
+ parameterNumber: 1,
6446
7231
  messageSpecificPart: "If must be define at leas element of 'subdirectoriesPrefixes'."
6447
7232
  }),
6448
7233
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6462,6 +7247,7 @@ class ImprovedGlob {
6462
7247
  es_extensions_1.Logger.throwErrorAndLog({
6463
7248
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6464
7249
  parameterName: "parametersObject.subdirectoriesNames",
7250
+ parameterNumber: 1,
6465
7251
  messageSpecificPart: "If must be define at leas element of 'subdirectoriesNames'."
6466
7252
  }),
6467
7253
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6481,6 +7267,12 @@ class ImprovedGlob {
6481
7267
  static createMultipleFilenameExtensionsGlobPostfix(fileNamesExtensions) {
6482
7268
  return `.@(${fileNamesExtensions.join("|").replace(/\./gu, "")})`;
6483
7269
  }
7270
+ static buildAbsolutePathBasedGlob(namedParameters) {
7271
+ // TODO Parameters validation
7272
+ return `${(0, es_extensions_1.insertSubstringIf)("!", namedParameters.isExclusive === true)}` +
7273
+ `${(0, removeSlashes_1.default)(namedParameters.basicDirectoryPath, { leading: false, trailing: true })}/` +
7274
+ `${(0, removeSlashes_1.default)(namedParameters.relativePathBasedGlob, { leading: true, trailing: true })}`;
7275
+ }
6484
7276
  static isExcludingGlobSelector(globSelector) {
6485
7277
  if (globSelector.length === 0) {
6486
7278
  return false;
@@ -6507,11 +7299,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6507
7299
  const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
6508
7300
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6509
7301
  class ImprovedPath {
6510
- static buildAbsolutePath(pathSegments, options) {
6511
- return options?.forwardSlashOnlySeparators === true ?
6512
- (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.resolve(...pathSegments)) :
6513
- path_1.default.resolve(...pathSegments);
6514
- }
6515
7302
  static parsePath(targetPath, options) {
6516
7303
  const parsedPath = path_1.default.parse(targetPath);
6517
7304
  const root = options?.forwardSlashOnlySeparators === true ?
@@ -6640,8 +7427,10 @@ class ImprovedPath {
6640
7427
  static computeRelativePath(parametersObject) {
6641
7428
  return (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.relative(parametersObject.basePath, parametersObject.comparedPath));
6642
7429
  }
6643
- static joinPathSegments(...pathSegments) {
6644
- return (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.join(...pathSegments));
7430
+ static joinPathSegments(pathSegments, options) {
7431
+ return options?.forwardSlashOnlySeparators === true ?
7432
+ (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.join(...pathSegments)) :
7433
+ path_1.default.join(...pathSegments);
6645
7434
  }
6646
7435
  static splitPathToSegments(targetPath) {
6647
7436
  return path_1.default.normalize(targetPath).split(path_1.default.sep);
@@ -6687,7 +7476,7 @@ class ImprovedPath {
6687
7476
  predicate: (pathSegment) => targetPathSegments.includes(pathSegment),
6688
7477
  mutably: true
6689
7478
  });
6690
- return ImprovedPath.joinPathSegments(...targetPath__splitToSegments);
7479
+ return ImprovedPath.joinPathSegments(targetPath__splitToSegments, { forwardSlashOnlySeparators: true });
6691
7480
  }
6692
7481
  static isFilenameExtensionIs(targetFilePath, _filenameExtensions) {
6693
7482
  let filenameExtensions;
@@ -6712,74 +7501,398 @@ class ImprovedPath {
6712
7501
  static getCurrentWorkDirectory() {
6713
7502
  return (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(process.cwd());
6714
7503
  }
6715
- }
6716
- exports["default"] = ImprovedPath;
6717
-
6718
-
6719
- /***/ }),
6720
-
6721
- /***/ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandError.ts":
6722
- /*!*********************************************************************!*\
6723
- !*** ./UtilsIncubator/Logging/Errors/InvalidConsoleCommandError.ts ***!
6724
- \*********************************************************************/
6725
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6726
-
6727
-
6728
- var __importDefault = (this && this.__importDefault) || function (mod) {
6729
- return (mod && mod.__esModule) ? mod : { "default": mod };
6730
- };
6731
- Object.defineProperty(exports, "__esModule", ({ value: true }));
6732
- const InvalidConsoleCommandErrorLocalization__English_1 = __importDefault(__webpack_require__(/*! ./InvalidConsoleCommandErrorLocalization__English */ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts"));
6733
- class InvalidConsoleCommandError extends Error {
6734
- static NAME = "InvalidConsoleCommandError";
6735
- static get DEFAULT_TITLE() {
6736
- return InvalidConsoleCommandError.localization.defaultTitle;
6737
- }
6738
- static localization = InvalidConsoleCommandErrorLocalization__English_1.default;
6739
- constructor(namedParameters) {
6740
- super();
6741
- this.name = InvalidConsoleCommandError.NAME;
6742
- if ("customMessage" in namedParameters) {
6743
- this.message = namedParameters.customMessage;
6744
- }
6745
- else {
6746
- this.message = InvalidConsoleCommandError.localization.generateDescription(namedParameters);
6747
- }
7504
+ static addFileNameExtensionIfNotPresent({ targetFilePath, fileNameExtension }) {
7505
+ return ImprovedPath.hasFilenameExtension(targetFilePath) ?
7506
+ targetFilePath :
7507
+ `${targetFilePath}.${(0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
7508
+ targetString: fileNameExtension,
7509
+ fromFirstPosition: true,
7510
+ targetCharacter: "."
7511
+ })}`;
6748
7512
  }
6749
7513
  }
6750
- exports["default"] = InvalidConsoleCommandError;
7514
+ exports["default"] = ImprovedPath;
6751
7515
 
6752
7516
 
6753
7517
  /***/ }),
6754
7518
 
6755
- /***/ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts":
6756
- /*!******************************************************************************************!*\
6757
- !*** ./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts ***!
6758
- \******************************************************************************************/
7519
+ /***/ "./UtilsIncubator/Stopwatch.ts":
7520
+ /*!*************************************!*\
7521
+ !*** ./UtilsIncubator/Stopwatch.ts ***!
7522
+ \*************************************/
6759
7523
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6760
7524
 
6761
7525
 
6762
7526
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6763
7527
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6764
- const InvalidConsoleCommandErrorLocalization__English = {
6765
- defaultTitle: "Invalid console command",
6766
- generateDescription: (parametersObject) => `Invalid console command for the application '${parametersObject.applicationName}'` +
6767
- `${(0, es_extensions_1.insertSubstring)(parametersObject.messageSpecificPart, {
6768
- modifier: (messageSpecificPart) => `\n${messageSpecificPart}`
6769
- })}`
6770
- };
6771
- exports["default"] = InvalidConsoleCommandErrorLocalization__English;
6772
-
6773
-
6774
- /***/ }),
6775
-
6776
- /***/ "./UtilsIncubator/PartialsFilesMapper.ts":
6777
- /*!***********************************************!*\
6778
- !*** ./UtilsIncubator/PartialsFilesMapper.ts ***!
6779
- \***********************************************/
6780
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6781
-
6782
-
7528
+ class Stopwatch {
7529
+ activationUnixTimestamp__milliseconds = 0;
7530
+ deactivationUnixTimestamp__milliseconds = 0;
7531
+ startOrRestart() {
7532
+ if (this.activationUnixTimestamp__milliseconds === 0) {
7533
+ this.activationUnixTimestamp__milliseconds = Date.now();
7534
+ }
7535
+ return this;
7536
+ }
7537
+ stop() {
7538
+ this.deactivationUnixTimestamp__milliseconds = Date.now();
7539
+ const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
7540
+ return {
7541
+ seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
7542
+ milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
7543
+ };
7544
+ }
7545
+ reset() {
7546
+ this.activationUnixTimestamp__milliseconds = 0;
7547
+ this.deactivationUnixTimestamp__milliseconds = 0;
7548
+ }
7549
+ }
7550
+ exports["default"] = Stopwatch;
7551
+
7552
+
7553
+ /***/ }),
7554
+
7555
+ /***/ "./UtilsIncubator/extractSubstring.ts":
7556
+ /*!********************************************!*\
7557
+ !*** ./UtilsIncubator/extractSubstring.ts ***!
7558
+ \********************************************/
7559
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7560
+
7561
+
7562
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7563
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7564
+ function extractSubstring(targetString, options) {
7565
+ let startingSymbolNumber__numerationFrom0;
7566
+ if ("startingSymbolNumber__numerationFrom0" in options) {
7567
+ if (options.fromEnd === true) {
7568
+ if (!Number.isInteger(options.startingSymbolNumber__numerationFrom0)) {
7569
+ es_extensions_1.Logger.throwErrorAndLog({
7570
+ errorInstance: new es_extensions_1.InvalidParameterValueError({
7571
+ customMessage: "'options.startingSymbolNumber__numerationFrom0'は整数であるべきが、実際の値は" +
7572
+ `${options.startingSymbolNumber__numerationFrom0}と成っている。`
7573
+ }),
7574
+ occurrenceLocation: "extractSubstring(targetString, options)",
7575
+ title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
7576
+ });
7577
+ }
7578
+ // TODO (1) должно быть целым числом (проверено), большим -1 и не больше чем length-1
7579
+ startingSymbolNumber__numerationFrom0 = targetString.length - options.startingSymbolNumber__numerationFrom0;
7580
+ }
7581
+ else {
7582
+ // TODO (1)
7583
+ startingSymbolNumber__numerationFrom0 = options.startingSymbolNumber__numerationFrom0;
7584
+ }
7585
+ }
7586
+ else if (options.fromEnd === true) {
7587
+ // TODO (2) должно быть целым числом больше 0 и не больше чем length
7588
+ startingSymbolNumber__numerationFrom0 = targetString.length - options.startingSymbolNumber__numerationFrom1 - 1;
7589
+ }
7590
+ else {
7591
+ // TODO (2)
7592
+ startingSymbolNumber__numerationFrom0 = options.startingSymbolNumber__numerationFrom1 - 1;
7593
+ }
7594
+ let lastSymbolNumber__numerationFrom1;
7595
+ if ("lastSymbolNumber__numerationFrom1" in options) {
7596
+ if (options.fromEnd === true) {
7597
+ // TODO (3) должно быть целым числом, большим -1 и не больше чем length-1, при этом бОльшим
7598
+ // startingSymbolNumber__numerationFrom0 хотя бы на 1, причем когда больше на 1 подстрока будет пустой
7599
+ lastSymbolNumber__numerationFrom1 = targetString.length - options.lastSymbolNumber__numerationFrom1;
7600
+ }
7601
+ else {
7602
+ // TODO (3)
7603
+ lastSymbolNumber__numerationFrom1 = options.lastSymbolNumber__numerationFrom1;
7604
+ }
7605
+ }
7606
+ else if ("lastSymbolNumber__numerationFrom0" in options) {
7607
+ if (options.fromEnd === true) {
7608
+ // TODO (4) должно быть целым числом, большим -1 и не больше чем length-1, при этом бОльшим либо равным
7609
+ // startingSymbolNumber__numerationFrom0, причем когда они равны подстрока будет пустой
7610
+ lastSymbolNumber__numerationFrom1 = targetString.length - options.lastSymbolNumber__numerationFrom0 - 1;
7611
+ }
7612
+ else {
7613
+ // TODO (4)
7614
+ lastSymbolNumber__numerationFrom1 = options.lastSymbolNumber__numerationFrom0 + 1;
7615
+ }
7616
+ }
7617
+ else if (options.fromEnd === true) {
7618
+ lastSymbolNumber__numerationFrom1 = startingSymbolNumber__numerationFrom0 - options.substringLength;
7619
+ }
7620
+ else {
7621
+ lastSymbolNumber__numerationFrom1 = startingSymbolNumber__numerationFrom0 + options.substringLength;
7622
+ }
7623
+ return Array.from(targetString).
7624
+ slice(startingSymbolNumber__numerationFrom0, lastSymbolNumber__numerationFrom1).
7625
+ join("");
7626
+ }
7627
+ exports["default"] = extractSubstring;
7628
+
7629
+
7630
+ /***/ }),
7631
+
7632
+ /***/ "./UtilsIncubator/removeSlashes.ts":
7633
+ /*!*****************************************!*\
7634
+ !*** ./UtilsIncubator/removeSlashes.ts ***!
7635
+ \*****************************************/
7636
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7637
+
7638
+
7639
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7640
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7641
+ function removeSlashes(targetString, options) {
7642
+ let transformingWorkpiece = targetString;
7643
+ if (options.leading && transformingWorkpiece.startsWith("/")) {
7644
+ transformingWorkpiece = (0, es_extensions_1.removeNthCharacter)(transformingWorkpiece, {
7645
+ targetCharacterNumber: 0,
7646
+ numerationFrom: 0
7647
+ });
7648
+ }
7649
+ if (options.trailing && transformingWorkpiece.endsWith("/")) {
7650
+ transformingWorkpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
7651
+ targetString: transformingWorkpiece,
7652
+ targetCharacter: "/",
7653
+ fromLastPosition: true
7654
+ });
7655
+ }
7656
+ return transformingWorkpiece;
7657
+ }
7658
+ exports["default"] = removeSlashes;
7659
+
7660
+
7661
+ /***/ }),
7662
+
7663
+ /***/ "./Utils/DotYDA_DirectoryManager.ts":
7664
+ /*!******************************************!*\
7665
+ !*** ./Utils/DotYDA_DirectoryManager.ts ***!
7666
+ \******************************************/
7667
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7668
+
7669
+
7670
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7671
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7672
+ };
7673
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7674
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
7675
+ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
7676
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7677
+ class DotYDA_DirectoryManager {
7678
+ static DOT_YDA_DIRECTORY_NAME = ".yda";
7679
+ static TEMPORARY_FILES_SUBDIRECTORY_NAME = "Temporary";
7680
+ static OPTIMIZATION_FILES_SUBDIRECTORY_NAME = "Optimizations";
7681
+ static GIT_IGNORE_FILE_NAME = ".gitignore";
7682
+ static selfSoleInstance = null;
7683
+ #DOT_YDA_DIRECTORY_ABSOLUTE_PATH;
7684
+ #TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH;
7685
+ #OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH;
7686
+ #GIT_IGNORE_FILE_ABSOLUTE_PATH;
7687
+ CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH;
7688
+ static unrollDotYDA_Directory(consumingProjectRootDirectoryAbsolutePath) {
7689
+ if ((0, es_extensions_1.isNotNull)(DotYDA_DirectoryManager.selfSoleInstance)) {
7690
+ es_extensions_1.Logger.throwErrorAndLog({
7691
+ errorInstance: new es_extensions_1.ClassRedundantSubsequentInitializationError({ className: "DotYDA_DirectoryManager" }),
7692
+ title: es_extensions_1.ClassRedundantSubsequentInitializationError.localization.defaultTitle,
7693
+ occurrenceLocation: "DotYDA_DirectoryManager.unrollDotYDA_Directory(consumingProjectRootDirectoryAbsolutePath)"
7694
+ });
7695
+ }
7696
+ const selfSoleInstance = new DotYDA_DirectoryManager(consumingProjectRootDirectoryAbsolutePath);
7697
+ if (!fs_1.default.existsSync(selfSoleInstance.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH)) {
7698
+ fs_1.default.mkdirSync(selfSoleInstance.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH);
7699
+ }
7700
+ if (!fs_1.default.existsSync(selfSoleInstance.#TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH)) {
7701
+ fs_1.default.mkdirSync(selfSoleInstance.#TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH);
7702
+ }
7703
+ if (!fs_1.default.existsSync(selfSoleInstance.#OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH)) {
7704
+ fs_1.default.mkdirSync(selfSoleInstance.#OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH);
7705
+ }
7706
+ if (!fs_1.default.existsSync(selfSoleInstance.#GIT_IGNORE_FILE_ABSOLUTE_PATH)) {
7707
+ fs_1.default.writeFileSync(selfSoleInstance.#GIT_IGNORE_FILE_ABSOLUTE_PATH, `/${DotYDA_DirectoryManager.TEMPORARY_FILES_SUBDIRECTORY_NAME}/`);
7708
+ }
7709
+ DotYDA_DirectoryManager.selfSoleInstance = selfSoleInstance;
7710
+ }
7711
+ constructor(consumingProjectRootDirectoryAbsolutePath) {
7712
+ this.CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH = consumingProjectRootDirectoryAbsolutePath;
7713
+ this.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH = ImprovedPath_1.default.joinPathSegments([this.CONSUMING_PROJECT_ROOT_DIRECTORY_ABSOLUTE_PATH, DotYDA_DirectoryManager.DOT_YDA_DIRECTORY_NAME], { forwardSlashOnlySeparators: true });
7714
+ this.#TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH = ImprovedPath_1.default.joinPathSegments([this.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH, DotYDA_DirectoryManager.TEMPORARY_FILES_SUBDIRECTORY_NAME], { forwardSlashOnlySeparators: true });
7715
+ this.#OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH = ImprovedPath_1.default.joinPathSegments([this.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH, DotYDA_DirectoryManager.OPTIMIZATION_FILES_SUBDIRECTORY_NAME], { forwardSlashOnlySeparators: true });
7716
+ this.#GIT_IGNORE_FILE_ABSOLUTE_PATH = ImprovedPath_1.default.joinPathSegments([this.#DOT_YDA_DIRECTORY_ABSOLUTE_PATH, DotYDA_DirectoryManager.GIT_IGNORE_FILE_NAME], { forwardSlashOnlySeparators: true });
7717
+ }
7718
+ static get DOT_YDA_DIRECTORY_ABSOLUTE_PATH() {
7719
+ return DotYDA_DirectoryManager.getExpectedToBeInitializedSelfSoleInstance().#DOT_YDA_DIRECTORY_ABSOLUTE_PATH;
7720
+ }
7721
+ static get TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH() {
7722
+ return DotYDA_DirectoryManager.getExpectedToBeInitializedSelfSoleInstance().#TEMPORARY_FILES_DIRECTORY_ABSOLUTE_PATH;
7723
+ }
7724
+ static get OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH() {
7725
+ return DotYDA_DirectoryManager.getExpectedToBeInitializedSelfSoleInstance().#OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH;
7726
+ }
7727
+ static getExpectedToBeInitializedSelfSoleInstance() {
7728
+ if ((0, es_extensions_1.isNull)(DotYDA_DirectoryManager.selfSoleInstance)) {
7729
+ es_extensions_1.Logger.throwErrorAndLog({
7730
+ errorInstance: new es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError({
7731
+ className: "DotYDA_DirectoryManager", initializingMethodName: "unrollDotYDA_Directory"
7732
+ }),
7733
+ title: es_extensions_1.ClassRequiredInitializationHasNotBeenExecutedError.localization.defaultTitle,
7734
+ occurrenceLocation: "DotYDA_DirectoryManager.getExpectedToBeInitializedSelfSoleInstance()"
7735
+ });
7736
+ }
7737
+ return DotYDA_DirectoryManager.selfSoleInstance;
7738
+ }
7739
+ }
7740
+ exports["default"] = DotYDA_DirectoryManager;
7741
+
7742
+
7743
+ /***/ }),
7744
+
7745
+ /***/ "./Utils/FileNameRevisionPostfixer.ts":
7746
+ /*!********************************************!*\
7747
+ !*** ./Utils/FileNameRevisionPostfixer.ts ***!
7748
+ \********************************************/
7749
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7750
+
7751
+
7752
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7753
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7754
+ };
7755
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7756
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7757
+ const rev_hash_1 = __importDefault(__webpack_require__(/*! rev-hash */ "../node_modules/rev-hash/index.js"));
7758
+ class FileNameRevisionPostfixer {
7759
+ static appendPostfixIfPossible(targetFile, options) {
7760
+ if ((0, es_extensions_1.isNull)(targetFile.contents)) {
7761
+ es_extensions_1.Logger.logWarning({
7762
+ title: "Unable to add revision hash",
7763
+ description: `The 'content' property of Target Vinyl file '${targetFile.path}' is null.`
7764
+ });
7765
+ return;
7766
+ }
7767
+ if (!(targetFile.contents instanceof Buffer)) {
7768
+ es_extensions_1.Logger.throwErrorAndLog({
7769
+ errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
7770
+ "Because usually it is the instance of Buffer, explorations are required."),
7771
+ title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7772
+ occurrenceLocation: "FileNameRevisionPostfixer.appendPostfixIfPossible(targetFile, options)",
7773
+ additionalData: targetFile
7774
+ });
7775
+ }
7776
+ targetFile.stem = `${targetFile.stem}${options.contentHashPostfixSeparator}` +
7777
+ `${(0, rev_hash_1.default)(targetFile.contents)}`;
7778
+ }
7779
+ }
7780
+ exports["default"] = FileNameRevisionPostfixer;
7781
+
7782
+
7783
+ /***/ }),
7784
+
7785
+ /***/ "./Utils/GulpStreamModifier.ts":
7786
+ /*!*************************************!*\
7787
+ !*** ./Utils/GulpStreamModifier.ts ***!
7788
+ \*************************************/
7789
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7790
+
7791
+
7792
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7793
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7794
+ };
7795
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7796
+ const stream_1 = __importDefault(__webpack_require__(/*! stream */ "stream"));
7797
+ const vinyl_1 = __importDefault(__webpack_require__(/*! vinyl */ "vinyl"));
7798
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7799
+ class GulpStreamModifier {
7800
+ static modify(namedParameters) {
7801
+ return new stream_1.default.Transform({
7802
+ objectMode: true,
7803
+ /* eslint-disable-next-line max-params -- The limitation of "Stream" native library */
7804
+ transform(chunk, _encoding, callback) {
7805
+ if (!vinyl_1.default.isVinyl(chunk)) {
7806
+ es_extensions_1.Logger.throwErrorAndLog({
7807
+ errorInstance: new es_extensions_1.UnexpectedEventError("Target chunk is not the instance of Vinyl file. Investigations required."),
7808
+ title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7809
+ occurrenceLocation: "GulpStreamModifier.modify(namedParameters)"
7810
+ });
7811
+ }
7812
+ const addNewFilesToStream = (newFiles) => {
7813
+ for (const newFile of Array.isArray(newFiles) ? newFiles : [newFiles]) {
7814
+ this.push(newFile);
7815
+ }
7816
+ };
7817
+ const targetFile = chunk;
7818
+ let hasSpecificHandlerForCurrentVinylFileInheritor = false;
7819
+ for (const [ClassExtendedFromVinylFile, handler] of namedParameters.onStreamStartedEventHandlersForSpecificFileTypes ?? new Map()) {
7820
+ if (namedParameters instanceof ClassExtendedFromVinylFile) {
7821
+ hasSpecificHandlerForCurrentVinylFileInheritor = true;
7822
+ handler(targetFile, addNewFilesToStream).
7823
+ then((completionSignal) => {
7824
+ switch (completionSignal) {
7825
+ case GulpStreamModifier.CompletionSignals.PASSING_ON: {
7826
+ callback(null, targetFile);
7827
+ break;
7828
+ }
7829
+ case GulpStreamModifier.CompletionSignals.REMOVING_FILE_FROM_STREAM: {
7830
+ callback();
7831
+ break;
7832
+ }
7833
+ }
7834
+ }).
7835
+ catch((error) => { callback(error); });
7836
+ }
7837
+ }
7838
+ if (!hasSpecificHandlerForCurrentVinylFileInheritor) {
7839
+ if ((0, es_extensions_1.isUndefined)(namedParameters.onStreamStartedEventCommonHandler)) {
7840
+ callback(null, targetFile);
7841
+ return;
7842
+ }
7843
+ namedParameters.onStreamStartedEventCommonHandler(targetFile, addNewFilesToStream).
7844
+ then((completionSignal) => {
7845
+ switch (completionSignal) {
7846
+ case GulpStreamModifier.CompletionSignals.PASSING_ON: {
7847
+ callback(null, targetFile);
7848
+ break;
7849
+ }
7850
+ case GulpStreamModifier.CompletionSignals.REMOVING_FILE_FROM_STREAM: {
7851
+ callback();
7852
+ break;
7853
+ }
7854
+ }
7855
+ }).
7856
+ catch((error) => { callback(error); });
7857
+ }
7858
+ },
7859
+ flush(callback) {
7860
+ if ((0, es_extensions_1.isUndefined)(namedParameters.onStreamEndedEventHandler)) {
7861
+ callback();
7862
+ return;
7863
+ }
7864
+ const addNewFilesToStream = (newFiles) => {
7865
+ for (const newFile of Array.isArray(newFiles) ? newFiles : [newFiles]) {
7866
+ this.push(newFile);
7867
+ }
7868
+ };
7869
+ namedParameters.
7870
+ onStreamEndedEventHandler(addNewFilesToStream).
7871
+ then(() => { callback(); }).
7872
+ catch((error) => { callback(error); });
7873
+ }
7874
+ });
7875
+ }
7876
+ }
7877
+ (function (GulpStreamModifier) {
7878
+ let CompletionSignals;
7879
+ (function (CompletionSignals) {
7880
+ CompletionSignals["PASSING_ON"] = "PASSING_ON";
7881
+ CompletionSignals["REMOVING_FILE_FROM_STREAM"] = "REMOVING_FILE_FROM_STREAM";
7882
+ })(CompletionSignals = GulpStreamModifier.CompletionSignals || (GulpStreamModifier.CompletionSignals = {}));
7883
+ })(GulpStreamModifier || (GulpStreamModifier = {}));
7884
+ exports["default"] = GulpStreamModifier;
7885
+
7886
+
7887
+ /***/ }),
7888
+
7889
+ /***/ "./Utils/PartialsFilesMapper.ts":
7890
+ /*!**************************************!*\
7891
+ !*** ./Utils/PartialsFilesMapper.ts ***!
7892
+ \**************************************/
7893
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7894
+
7895
+
6783
7896
  var __importDefault = (this && this.__importDefault) || function (mod) {
6784
7897
  return (mod && mod.__esModule) ? mod : { "default": mod };
6785
7898
  };
@@ -6789,7 +7902,7 @@ const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @Thi
6789
7902
  const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist.ts"));
6790
7903
  /* --- General utils ---------------------------------------------------------------------------------------------- */
6791
7904
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
6792
- const ImprovedPath_1 = __importDefault(__webpack_require__(/*! ./ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
7905
+ const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
6793
7906
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6794
7907
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6795
7908
  const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
@@ -6931,13 +8044,13 @@ class PartialsFilesMapper {
6931
8044
  const possibleAbsolutePathsOfTargetPartialFile = [];
6932
8045
  const filenameExtensionOfTargetPartialFile__notNullIfExplicitlySpecified = ImprovedPath_1.default.extractLastFilenameExtensionWithoutFirstDot(targetPartialFilePathRelativeToParentFileDirectory);
6933
8046
  if ((0, es_extensions_1.isNull)(filenameExtensionOfTargetPartialFile__notNullIfExplicitlySpecified)) {
6934
- possibleAbsolutePathsOfTargetPartialFile.push(...implicitFilenameExtensionsOfPartialsForCurrentFileType.map((partialFileImplicitFilenameExtension) => ImprovedPath_1.default.buildAbsolutePath([
8047
+ possibleAbsolutePathsOfTargetPartialFile.push(...implicitFilenameExtensionsOfPartialsForCurrentFileType.map((partialFileImplicitFilenameExtension) => ImprovedPath_1.default.joinPathSegments([
6935
8048
  directoryAbsolutePathOfParentOfTargetPartialFile,
6936
8049
  `${targetPartialFilePathRelativeToParentFileDirectory}.${partialFileImplicitFilenameExtension}`
6937
8050
  ], { forwardSlashOnlySeparators: true })));
6938
8051
  }
6939
8052
  else {
6940
- possibleAbsolutePathsOfTargetPartialFile.push(ImprovedPath_1.default.buildAbsolutePath([directoryAbsolutePathOfParentOfTargetPartialFile, targetPartialFilePathRelativeToParentFileDirectory], { forwardSlashOnlySeparators: true }));
8053
+ possibleAbsolutePathsOfTargetPartialFile.push(ImprovedPath_1.default.joinPathSegments([directoryAbsolutePathOfParentOfTargetPartialFile, targetPartialFilePathRelativeToParentFileDirectory], { forwardSlashOnlySeparators: true }));
6941
8054
  }
6942
8055
  for (const possibleAbsolutePathOfTargetPartialFile of possibleAbsolutePathsOfTargetPartialFile) {
6943
8056
  if (fs_1.default.existsSync(possibleAbsolutePathOfTargetPartialFile)) {
@@ -6990,170 +8103,19 @@ exports["default"] = PartialsFilesMapper;
6990
8103
 
6991
8104
  /***/ }),
6992
8105
 
6993
- /***/ "./UtilsIncubator/Stopwatch.ts":
6994
- /*!*************************************!*\
6995
- !*** ./UtilsIncubator/Stopwatch.ts ***!
6996
- \*************************************/
8106
+ /***/ "./Utils/createImmediatelyEndingEmptyStream.ts":
8107
+ /*!*****************************************************!*\
8108
+ !*** ./Utils/createImmediatelyEndingEmptyStream.ts ***!
8109
+ \*****************************************************/
6997
8110
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6998
8111
 
6999
8112
 
7000
8113
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7001
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7002
- class Stopwatch {
7003
- activationUnixTimestamp__milliseconds = 0;
7004
- deactivationUnixTimestamp__milliseconds = 0;
7005
- startOrRestart() {
7006
- if (this.activationUnixTimestamp__milliseconds === 0) {
7007
- this.activationUnixTimestamp__milliseconds = Date.now();
7008
- }
7009
- return this;
7010
- }
7011
- stop() {
7012
- this.deactivationUnixTimestamp__milliseconds = Date.now();
7013
- const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
7014
- return {
7015
- seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
7016
- milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
7017
- };
7018
- }
7019
- reset() {
7020
- this.activationUnixTimestamp__milliseconds = 0;
7021
- this.deactivationUnixTimestamp__milliseconds = 0;
7022
- }
7023
- }
7024
- exports["default"] = Stopwatch;
7025
-
7026
-
7027
- /***/ }),
7028
-
7029
- /***/ "./UtilsIncubator/removeSlashes.ts":
7030
- /*!*****************************************!*\
7031
- !*** ./UtilsIncubator/removeSlashes.ts ***!
7032
- \*****************************************/
7033
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7034
-
7035
-
7036
- var __importDefault = (this && this.__importDefault) || function (mod) {
7037
- return (mod && mod.__esModule) ? mod : { "default": mod };
7038
- };
7039
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7040
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7041
- const removeSpecificCharacterInLastPosition_1 = __importDefault(__webpack_require__(/*! ./removeSpecificCharacterInLastPosition */ "./UtilsIncubator/removeSpecificCharacterInLastPosition.ts"));
7042
- function removeSlashes(targetString, options) {
7043
- let transformingWorkpiece = targetString;
7044
- if (options.leading && transformingWorkpiece.startsWith("/")) {
7045
- transformingWorkpiece = (0, es_extensions_1.removeNthCharacter)(transformingWorkpiece, {
7046
- targetCharacterNumber: 0,
7047
- numerationFrom: 0
7048
- });
7049
- }
7050
- if (options.trailing && transformingWorkpiece.endsWith("/")) {
7051
- transformingWorkpiece = (0, removeSpecificCharacterInLastPosition_1.default)(transformingWorkpiece, "/");
7052
- }
7053
- return transformingWorkpiece;
7054
- }
7055
- exports["default"] = removeSlashes;
7056
-
7057
-
7058
- /***/ }),
7059
-
7060
- /***/ "./UtilsIncubator/removeSpecificCharacterInLastPosition.ts":
7061
- /*!*****************************************************************!*\
7062
- !*** ./UtilsIncubator/removeSpecificCharacterInLastPosition.ts ***!
7063
- \*****************************************************************/
7064
- /***/ ((__unused_webpack_module, exports) => {
7065
-
7066
-
7067
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7068
- function removeSpecificCharacterInLastPosition(targetString, targetCharacter) {
7069
- return targetString.endsWith(targetCharacter) ? targetString.slice(0, -1) : targetString;
7070
- }
7071
- exports["default"] = removeSpecificCharacterInLastPosition;
7072
-
7073
-
7074
- /***/ }),
7075
-
7076
- /***/ "./Utils/FileNameRevisionPostfixer.ts":
7077
- /*!********************************************!*\
7078
- !*** ./Utils/FileNameRevisionPostfixer.ts ***!
7079
- \********************************************/
7080
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7081
-
7082
-
7083
- var __importDefault = (this && this.__importDefault) || function (mod) {
7084
- return (mod && mod.__esModule) ? mod : { "default": mod };
7085
- };
7086
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7087
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7088
- const rev_hash_1 = __importDefault(__webpack_require__(/*! rev-hash */ "../node_modules/rev-hash/index.js"));
7089
- class FileNameRevisionPostfixer {
7090
- static appendPostfixIfPossible(targetFile, options) {
7091
- if ((0, es_extensions_1.isNull)(targetFile.contents)) {
7092
- es_extensions_1.Logger.logWarning({
7093
- title: "Unable to add revision hash",
7094
- description: `The 'content' property of Target Vinyl file '${targetFile.path}' is null.`
7095
- });
7096
- return;
7097
- }
7098
- if (!(targetFile.contents instanceof Buffer)) {
7099
- es_extensions_1.Logger.throwErrorAndLog({
7100
- errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
7101
- "Because usually it is the instance of Buffer, explorations are required."),
7102
- title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7103
- occurrenceLocation: "FileNameRevisionPostfixer.appendPostfixIfPossible(targetFile, options)",
7104
- additionalData: targetFile
7105
- });
7106
- }
7107
- targetFile.stem = `${targetFile.stem}${options.contentHashPostfixSeparator}` +
7108
- `${(0, rev_hash_1.default)(targetFile.contents)}`;
7109
- }
7110
- }
7111
- exports["default"] = FileNameRevisionPostfixer;
7112
-
7113
-
7114
- /***/ }),
7115
-
7116
- /***/ "./Utils/PoliteErrorsMessagesBuilder.ts":
7117
- /*!**********************************************!*\
7118
- !*** ./Utils/PoliteErrorsMessagesBuilder.ts ***!
7119
- \**********************************************/
7120
- /***/ ((__unused_webpack_module, exports) => {
7121
-
7122
-
7123
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7124
- class PoliteErrorsMessagesBuilder {
7125
- static isTechnicalsDetailOnlyMode = false;
7126
- static localization = PoliteErrorsMessagesBuilder.getDefaultLocalization();
7127
- static buildMessage(parametersObject) {
7128
- return PoliteErrorsMessagesBuilder.localization.buildMessage({
7129
- ...parametersObject,
7130
- isTechnicalDetailOnlyMode: PoliteErrorsMessagesBuilder.isTechnicalsDetailOnlyMode
7131
- });
7132
- }
7133
- static setLocalization(newLocalization) {
7134
- this.localization = newLocalization;
7135
- }
7136
- static setTechnicalDetailsOnlyMode() {
7137
- PoliteErrorsMessagesBuilder.isTechnicalsDetailOnlyMode = true;
7138
- }
7139
- static getDefaultLocalization() {
7140
- return {
7141
- buildMessage({ technicalDetails, politeExplanation, isTechnicalDetailOnlyMode }) {
7142
- if (isTechnicalDetailOnlyMode) {
7143
- return technicalDetails;
7144
- }
7145
- return "We are sorry, but it is a bug. We apologize for any inconvenience. 🙇‍♂️\n" +
7146
- "Please consider the opening issue on official GitHub repository: " +
7147
- "https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation \n" +
7148
- "--- What happened? -----------------------------------------------------------------------------------\n" +
7149
- `${politeExplanation}` +
7150
- "--- Technical information --------------------------------------------------------------------------- \n" +
7151
- `${technicalDetails}`;
7152
- }
7153
- };
7154
- }
8114
+ const stream_1 = __webpack_require__(/*! stream */ "stream");
8115
+ function createImmediatelyEndingEmptyStream() {
8116
+ return () => new stream_1.PassThrough().end();
7155
8117
  }
7156
- exports["default"] = PoliteErrorsMessagesBuilder;
8118
+ exports["default"] = createImmediatelyEndingEmptyStream;
7157
8119
 
7158
8120
 
7159
8121
  /***/ }),
@@ -7167,6 +8129,7 @@ exports["default"] = PoliteErrorsMessagesBuilder;
7167
8129
 
7168
8130
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7169
8131
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
8132
+ // TODO 今の内に修正
7170
8133
  function getExpectedToBeNonNullStringifiedContentOfVinylFile(targetFile) {
7171
8134
  if (targetFile.contents === null) {
7172
8135
  es_extensions_1.Logger.throwErrorAndLog({
@@ -7334,6 +8297,16 @@ module.exports = require("gulp");
7334
8297
 
7335
8298
  /***/ }),
7336
8299
 
8300
+ /***/ "gulp-data":
8301
+ /*!****************************!*\
8302
+ !*** external "gulp-data" ***!
8303
+ \****************************/
8304
+ /***/ ((module) => {
8305
+
8306
+ module.exports = require("gulp-data");
8307
+
8308
+ /***/ }),
8309
+
7337
8310
  /***/ "gulp-debug":
7338
8311
  /*!*****************************!*\
7339
8312
  !*** external "gulp-debug" ***!
@@ -7474,6 +8447,46 @@ module.exports = require("node-notifier");
7474
8447
 
7475
8448
  /***/ }),
7476
8449
 
8450
+ /***/ "pug-lint":
8451
+ /*!***************************!*\
8452
+ !*** external "pug-lint" ***!
8453
+ \***************************/
8454
+ /***/ ((module) => {
8455
+
8456
+ module.exports = require("pug-lint");
8457
+
8458
+ /***/ }),
8459
+
8460
+ /***/ "pug-lint/lib/config-file":
8461
+ /*!*******************************************!*\
8462
+ !*** external "pug-lint/lib/config-file" ***!
8463
+ \*******************************************/
8464
+ /***/ ((module) => {
8465
+
8466
+ module.exports = require("pug-lint/lib/config-file");
8467
+
8468
+ /***/ }),
8469
+
8470
+ /***/ "stream-combiner2":
8471
+ /*!***********************************!*\
8472
+ !*** external "stream-combiner2" ***!
8473
+ \***********************************/
8474
+ /***/ ((module) => {
8475
+
8476
+ module.exports = require("stream-combiner2");
8477
+
8478
+ /***/ }),
8479
+
8480
+ /***/ "vinyl":
8481
+ /*!************************!*\
8482
+ !*** external "vinyl" ***!
8483
+ \************************/
8484
+ /***/ ((module) => {
8485
+
8486
+ module.exports = require("vinyl");
8487
+
8488
+ /***/ }),
8489
+
7477
8490
  /***/ "vue-loader":
7478
8491
  /*!*****************************!*\
7479
8492
  !*** external "vue-loader" ***!