@yamato-daiwa/automation 0.2.0-alpha.0 → 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 +1785 -754
  2. package/package.json +15 -10
package/EntryPoint.js CHANGED
@@ -6,10 +6,14 @@
6
6
  /*!********************************************!*\
7
7
  !*** ./ApplicationConsoleLineInterface.ts ***!
8
8
  \********************************************/
9
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
10
10
 
11
11
 
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
12
15
  Object.defineProperty(exports, "__esModule", ({ value: true }));
16
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
13
17
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
14
18
  var ApplicationConsoleLineInterface;
15
19
  (function (ApplicationConsoleLineInterface) {
@@ -26,7 +30,8 @@ var ApplicationConsoleLineInterface;
26
30
  newName: "projectBuildingMode",
27
31
  type: es_extensions_nodejs_1.ConsoleCommandsParser.ParametersTypes.string,
28
32
  required: true,
29
- shortcut: "m"
33
+ shortcut: "m",
34
+ allowedAlternatives: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default)
30
35
  },
31
36
  configurationFile: {
32
37
  newName: "customConfigurationFileName__possiblyWithoutExtension",
@@ -65,7 +70,7 @@ const ApplicationConsoleLineInterface_1 = __importDefault(__webpack_require__(/*
65
70
  /* --- Scenarios ---------------------------------------------------------------------------------------------------- */
66
71
  const ProjectBuilder_1 = __importDefault(__webpack_require__(/*! ./ProjectBuilder */ "./ProjectBuilder.ts"));
67
72
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
68
- 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"));
69
74
  /* --- General utils ------------------------------------------------------------------------------------------------ */
70
75
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
71
76
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
@@ -74,15 +79,16 @@ const yamljs_1 = __importDefault(__webpack_require__(/*! yamljs */ "yamljs"));
74
79
  class EntryPoint {
75
80
  static {
76
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");
77
83
  }
78
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);
79
87
  const parsedConsoleCommand = es_extensions_nodejs_1.ConsoleCommandsParser.parse(rawConsoleCommand, ApplicationConsoleLineInterface_1.default.specification);
80
- if (true) {
81
- PoliteErrorsMessagesBuilder_1.default.setTechnicalDetailsOnlyMode();
82
- }
88
+ const consumingProjectRootDirectoryAbsolutePath = process.cwd();
89
+ DotYDA_DirectoryManager_1.default.unrollDotYDA_Directory(consumingProjectRootDirectoryAbsolutePath);
83
90
  switch (parsedConsoleCommand.phrase) {
84
91
  case ApplicationConsoleLineInterface_1.default.CommandPhrases.buildProject: {
85
- const consumingProjectRootDirectoryAbsolutePath = process.cwd();
86
92
  const rawConfigFileAbsolutePath = path_1.default.resolve(consumingProjectRootDirectoryAbsolutePath, CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION_1.default);
87
93
  let rawConfigFromFile;
88
94
  try {
@@ -140,6 +146,7 @@ const ProjectBuilderRawConfigNormalizer_1 = __importDefault(__webpack_require__(
140
146
  const ProjectBuildingMasterConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/ProjectBuildingMasterConfigRepresentative */ "./ProjectBuilding/ProjectBuildingMasterConfigRepresentative.ts"));
141
147
  /* --- Actuators ---------------------------------------------------------------------------------------------------- */
142
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"));
143
150
  const StylesProcessor_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessor */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessor.ts"));
144
151
  const ECMA_ScriptLogicProcessor_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessor */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessor.ts"));
145
152
  const ImagesProcessor_1 = __importDefault(__webpack_require__(/*! @ImagesProcessing/ImagesProcessor */ "./ProjectBuilding/AssetsProcessing/Images/ImagesProcessor.ts"));
@@ -174,6 +181,7 @@ class ProjectBuilder {
174
181
  const masterConfigRepresentative = new ProjectBuildingMasterConfigRepresentative_1.default(projectBuildingConfig__normalized);
175
182
  const GULP_TASK_NAME = "BUILD_PROJECT";
176
183
  gulp_1.default.task(GULP_TASK_NAME, gulp_1.default.parallel([
184
+ MarkupSourceCodeLinter_1.default.provideMarkupLintingIfMust(masterConfigRepresentative),
177
185
  gulp_1.default.series([
178
186
  gulp_1.default.parallel([
179
187
  StylesProcessor_1.default.provideStylesProcessingIfMust(masterConfigRepresentative),
@@ -411,7 +419,7 @@ class AudiosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
411
419
  }
412
420
  this.audiosProcessingConfigRepresentative.
413
421
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
414
- 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 }));
415
423
  return processedAudioFile;
416
424
  }
417
425
  }
@@ -621,7 +629,7 @@ class FontsProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
621
629
  }
622
630
  this.fontsProcessorConfigRepresentative.
623
631
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
624
- 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 }));
625
633
  return processedFontFile;
626
634
  }
627
635
  }
@@ -839,7 +847,7 @@ class ImagesProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
839
847
  }
840
848
  this.imagesProcessorConfigRepresentative.
841
849
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
842
- 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 }));
843
851
  return processedImageFile;
844
852
  }
845
853
  }
@@ -1048,7 +1056,7 @@ class VideosProcessor extends GulpStreamsBasedAssetsProcessor_1.default {
1048
1056
  }
1049
1057
  this.videosProcessingConfigRepresentative.
1050
1058
  sourceFilesAbsolutePathsAndOutputFilesActualPathsMap.
1051
- 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 }));
1052
1060
  return processedVideoFile;
1053
1061
  }
1054
1062
  }
@@ -1071,6 +1079,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
1071
1079
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
1072
1080
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
1073
1081
  const browser_sync_1 = __importDefault(__webpack_require__(/*! browser-sync */ "browser-sync"));
1082
+ /* --- Third-party solutions specialises ---------------------------------------------------------------------------- */
1074
1083
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
1075
1084
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1076
1085
  class BrowserLiveReloader {
@@ -1078,44 +1087,9 @@ class BrowserLiveReloader {
1078
1087
  browserLiveReloadingSettingsRepresentative;
1079
1088
  static provideBrowserLiveReloading(masterConfigRepresentative) {
1080
1089
  const dataHoldingSelfInstance = new BrowserLiveReloader(masterConfigRepresentative);
1081
- const browserLiveReloadingConfigRepresentative = dataHoldingSelfInstance.
1082
- browserLiveReloadingSettingsRepresentative;
1083
1090
  return () => {
1084
- browser_sync_1.default.init({
1085
- watch: true,
1086
- server: {
1087
- baseDir: browserLiveReloadingConfigRepresentative.targetFilesRootDirectoryAbsolutePath,
1088
- index: browserLiveReloadingConfigRepresentative.startingFilenameWithExtension
1089
- },
1090
- browser: "chrome",
1091
- ...(0, es_extensions_1.isNotNull)(browserLiveReloadingConfigRepresentative.customMainPort) ? {
1092
- port: browserLiveReloadingConfigRepresentative.customMainPort
1093
- } : {},
1094
- ...(0, es_extensions_1.isNotNull)(browserLiveReloadingConfigRepresentative.customUserInterfacePort) ? {
1095
- ui: {
1096
- port: browserLiveReloadingConfigRepresentative.customUserInterfacePort
1097
- }
1098
- } : {}
1099
- });
1100
- let waitingForOtherFilesWillBeUpdatedCountdown;
1101
- gulp_1.default.watch(dataHoldingSelfInstance.masterConfigRepresentative.allOutputFilesGlobSelectors).
1102
- on("all", (eventName, fileOrDirectoryPath) => {
1103
- clearTimeout(waitingForOtherFilesWillBeUpdatedCountdown);
1104
- es_extensions_1.Logger.logInfo({
1105
- title: "Output files watcher",
1106
- description: ` Event : ${ChokidarSpecialist_1.default.getEventNameInterpretation(eventName)}` +
1107
- `\n Path : ${fileOrDirectoryPath}\n` +
1108
- "Waiting for status changing of other output files..."
1109
- });
1110
- waitingForOtherFilesWillBeUpdatedCountdown = setTimeout(() => {
1111
- es_extensions_1.Logger.logInfo({
1112
- title: "Browser live reloader",
1113
- description: "Reloading the browser ..."
1114
- });
1115
- browser_sync_1.default.reload();
1116
- }, (0, es_extensions_1.secondsToMilliseconds)(dataHoldingSelfInstance.browserLiveReloadingSettingsRepresentative.
1117
- waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds));
1118
- });
1091
+ dataHoldingSelfInstance.initializeBrowsersync();
1092
+ dataHoldingSelfInstance.initializeOutputFilesWatcher();
1119
1093
  };
1120
1094
  }
1121
1095
  constructor(masterConfigRepresentative) {
@@ -1130,81 +1104,57 @@ class BrowserLiveReloader {
1130
1104
  this.masterConfigRepresentative = masterConfigRepresentative;
1131
1105
  this.browserLiveReloadingSettingsRepresentative = browserLiveReloadingConfigRepresentative;
1132
1106
  }
1133
- }
1134
- exports["default"] = BrowserLiveReloader;
1135
-
1136
-
1137
- /***/ }),
1138
-
1139
- /***/ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer.ts":
1140
- /*!****************************************************************************************!*\
1141
- !*** ./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsNormalizer.ts ***!
1142
- \****************************************************************************************/
1143
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1144
-
1145
-
1146
- var __importDefault = (this && this.__importDefault) || function (mod) {
1147
- return (mod && mod.__esModule) ? mod : { "default": mod };
1148
- };
1149
- Object.defineProperty(exports, "__esModule", ({ value: true }));
1150
- /* --- Business rules ----------------------------------------------------------------------------------------------- */
1151
- const BrowserLiveReloadingSettings__Default_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloadingSettings__Default */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettings__Default.ts"));
1152
- /* --- General utils ------------------------------------------------------------------------------------------------ */
1153
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1154
- const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
1155
- class BrowserLiveReloadingSettingsNormalizer {
1156
- static getNormalizedSettings({ browserLiveReloadingSettings__fromFile__rawValid, projectBuilderCommonSettings__normalized, hasSelectiveExecutionBeenDeclared, selectedBrowserLiveReloadingSetupID }) {
1157
- let targetBrowserLiveReloadingProfile__rawValid;
1158
- if ((0, es_extensions_1.isNotUndefined)(selectedBrowserLiveReloadingSetupID)) {
1159
- targetBrowserLiveReloadingProfile__rawValid =
1160
- browserLiveReloadingSettings__fromFile__rawValid[selectedBrowserLiveReloadingSetupID];
1161
- if ((0, es_extensions_1.isUndefined)(targetBrowserLiveReloadingProfile__rawValid)) {
1162
- es_extensions_1.Logger.throwErrorAndLog({
1163
- errorInstance: new es_extensions_1.InvalidParameterValueError({
1164
- parameterName: "parametersObject",
1165
- messageSpecificPart: `プロパティ:'selectedBrowserLiveReloadingSetupID'の値:'${selectedBrowserLiveReloadingSetupID}'に該当する` +
1166
- "ブラウザ自動リロードの設定は定義されていない。"
1167
- }),
1168
- occurrenceLocation: "BrowserLiveReloadingSettingsNormalizer.normalize(namedParameters)",
1169
- title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle
1170
- });
1171
- }
1172
- }
1173
- else if (!hasSelectiveExecutionBeenDeclared &&
1174
- Object.values(browserLiveReloadingSettings__fromFile__rawValid).length === 1) {
1175
- targetBrowserLiveReloadingProfile__rawValid = Object.values(browserLiveReloadingSettings__fromFile__rawValid)[0];
1176
- }
1177
- else {
1178
- return;
1179
- }
1180
- return {
1181
- targetFilesRootDirectoryAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
1182
- projectBuilderCommonSettings__normalized.projectRootDirectoryAbsolutePath,
1183
- targetBrowserLiveReloadingProfile__rawValid.targetFilesRootDirectoryRelativePath
1184
- ], { forwardSlashOnlySeparators: true }),
1185
- startingFilenameWithExtension: targetBrowserLiveReloadingProfile__rawValid.customStartingFilenameWithExtension ??
1186
- BrowserLiveReloadingSettings__Default_1.default.startingFilenameWithExtension,
1187
- waitingForTheOtherFilesWillUpdateDuration__seconds: targetBrowserLiveReloadingProfile__rawValid.waitingForTheOtherFilesWillUpdateDuration__seconds ??
1188
- BrowserLiveReloadingSettings__Default_1.default.waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds,
1189
- ...(0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.virtualHost) ? {
1190
- virtualHost: targetBrowserLiveReloadingProfile__rawValid.virtualHost
1191
- } : {},
1192
- ...(0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.ports) ? {
1193
- ports: {
1194
- ...(0, es_extensions_1.isNumber)(targetBrowserLiveReloadingProfile__rawValid.ports.main) ? {
1195
- main: targetBrowserLiveReloadingProfile__rawValid.ports.main
1196
- } : {},
1197
- ...(0, es_extensions_1.isNumber)(targetBrowserLiveReloadingProfile__rawValid.ports.userInterface) ? {
1198
- userInterface: targetBrowserLiveReloadingProfile__rawValid.ports.userInterface
1199
- } : {}
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
1200
1114
  }
1201
- } : {},
1202
- ignoredFilesAndDirectories: (0, es_extensions_1.isNotUndefined)(targetBrowserLiveReloadingProfile__rawValid.ignoredFilesAndDirectories) ?
1203
- targetBrowserLiveReloadingProfile__rawValid.ignoredFilesAndDirectories : []
1204
- };
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
+ });
1205
1155
  }
1206
1156
  }
1207
- exports["default"] = BrowserLiveReloadingSettingsNormalizer;
1157
+ exports["default"] = BrowserLiveReloader;
1208
1158
 
1209
1159
 
1210
1160
  /***/ }),
@@ -1213,29 +1163,47 @@ exports["default"] = BrowserLiveReloadingSettingsNormalizer;
1213
1163
  /*!********************************************************************************************!*\
1214
1164
  !*** ./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloadingSettingsRepresentative.ts ***!
1215
1165
  \********************************************************************************************/
1216
- /***/ ((__unused_webpack_module, exports) => {
1166
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1217
1167
 
1218
1168
 
1219
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");
1220
1172
  class BrowserLiveReloadingSettingsRepresentative {
1221
1173
  browserLiveReloadingSettings;
1222
1174
  constructor(browserLiveReloadingSettings) {
1223
1175
  this.browserLiveReloadingSettings = browserLiveReloadingSettings;
1224
1176
  }
1225
- get startingFilenameWithExtension() {
1226
- return this.browserLiveReloadingSettings.startingFilenameWithExtension;
1227
- }
1228
1177
  get targetFilesRootDirectoryAbsolutePath() {
1229
- 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;
1230
1185
  }
1231
- get waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds() {
1232
- return this.browserLiveReloadingSettings.waitingForTheOtherFilesWillUpdateDuration__seconds;
1186
+ get globSelectorsOfFilesAndDirectoriesWhichWillBeIgnored() {
1187
+ return [...this.browserLiveReloadingSettings.localServer.ignoredFilesAndDirectoriesRelativePaths];
1233
1188
  }
1234
- get customMainPort() {
1235
- return this.browserLiveReloadingSettings.ports?.main ?? null;
1189
+ get mustUseHTTPS() {
1190
+ return this.browserLiveReloadingSettings.localServer.mustUseHTTPS;
1236
1191
  }
1237
- get customUserInterfacePort() {
1238
- return this.browserLiveReloadingSettings.ports?.userInterface ?? null;
1192
+ get targetBrowsers() {
1193
+ return (0, es_extensions_1.isNotUndefined)(this.browserLiveReloadingSettings.targetBrowsers) ?
1194
+ [...this.browserLiveReloadingSettings.targetBrowsers] : [];
1195
+ }
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;
1239
1207
  }
1240
1208
  }
1241
1209
  exports["default"] = BrowserLiveReloadingSettingsRepresentative;
@@ -1251,11 +1219,17 @@ exports["default"] = BrowserLiveReloadingSettingsRepresentative;
1251
1219
 
1252
1220
 
1253
1221
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1254
- exports["default"] = {
1255
- startingFilenameWithExtension: "index.html",
1256
- waitingDurationForSubsequentFilesWillBeUpdatedBeforeBrowserReloading__seconds: 0.5,
1257
- 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
1258
1231
  };
1232
+ exports["default"] = BrowserLiveReloadingSettings__Default;
1259
1233
 
1260
1234
 
1261
1235
  /***/ }),
@@ -1268,6 +1242,7 @@ exports["default"] = {
1268
1242
 
1269
1243
 
1270
1244
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1245
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
1271
1246
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1272
1247
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
1273
1248
  * The merging of type/interface and namespace is completely valid TypeScript,
@@ -1277,64 +1252,97 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1277
1252
  (function (BrowserLiveReloadingSettings__FromFile__RawValid) {
1278
1253
  function getLocalizedPropertiesSpecification(browserLiveReloadingSettingsLocalization) {
1279
1254
  return {
1280
- [browserLiveReloadingSettingsLocalization.targetFilesRootDirectoryRelativePath.KEY]: {
1281
- newName: "targetFilesRootDirectoryRelativePath",
1282
- type: String,
1255
+ [browserLiveReloadingSettingsLocalization.localServer.KEY]: {
1256
+ newName: "localServer",
1257
+ type: Object,
1283
1258
  required: true,
1284
- 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
+ }
1285
1295
  },
1286
- [browserLiveReloadingSettingsLocalization.customStartingFilenameWithExtension.KEY]: {
1287
- newName: "customStartingFilenameWithExtension",
1296
+ [browserLiveReloadingSettingsLocalization.proxy.KEY]: {
1297
+ newName: "proxy",
1288
1298
  type: String,
1289
1299
  required: false,
1290
1300
  minimalCharactersCount: 1
1291
1301
  },
1292
- [browserLiveReloadingSettingsLocalization.waitingForTheOtherFilesWillUpdateDuration__seconds.KEY]: {
1293
- newName: "waitingForTheOtherFilesWillUpdateDuration__seconds",
1294
- type: Number,
1295
- required: false,
1296
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.anyRealNumber
1297
- },
1298
- [browserLiveReloadingSettingsLocalization.useHTTPS.KEY]: {
1299
- newName: "useHTTPS",
1300
- type: Boolean,
1301
- required: false
1302
- },
1303
- [browserLiveReloadingSettingsLocalization.virtualHost.KEY]: {
1304
- newName: "virtualHost",
1305
- type: String,
1302
+ [browserLiveReloadingSettingsLocalization.openInBrowsers.KEY]: {
1303
+ newName: "openInBrowsers",
1304
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.oneOf,
1306
1305
  required: false,
1307
- 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
+ ]
1308
1320
  },
1309
- [browserLiveReloadingSettingsLocalization.ports.KEY]: {
1310
- newName: "ports",
1321
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.KEY]: {
1322
+ newName: "browserSyncUserInterface",
1311
1323
  type: Object,
1312
- preValidationModifications: es_extensions_1.nullToUndefined,
1313
1324
  required: false,
1325
+ preValidationModifications: es_extensions_1.nullToUndefined,
1314
1326
  properties: {
1315
- [browserLiveReloadingSettingsLocalization.ports.main.KEY]: {
1316
- newName: "main",
1327
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.customPort.KEY]: {
1328
+ newName: "customPort",
1317
1329
  type: Number,
1330
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger,
1318
1331
  required: false,
1319
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
1332
+ maximalValue: 65536
1320
1333
  },
1321
- [browserLiveReloadingSettingsLocalization.ports.userInterface.KEY]: {
1322
- newName: "userInterface",
1323
- type: Number,
1324
- required: false,
1325
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.nonNegativeInteger
1334
+ [browserLiveReloadingSettingsLocalization.browserSyncUserInterface.disable.KEY]: {
1335
+ newName: "disable",
1336
+ type: Boolean,
1337
+ required: false
1326
1338
  }
1327
1339
  }
1328
1340
  },
1329
- [browserLiveReloadingSettingsLocalization.ignoredFilesAndDirectories.KEY]: {
1330
- newName: "ignoreFilesAndDirectories",
1331
- type: Array,
1332
- preValidationModifications: es_extensions_1.nullToUndefined,
1341
+ [browserLiveReloadingSettingsLocalization.periodBetweenFileUpdatingAndBrowserReloading__seconds.KEY]: {
1342
+ newName: "periodBetweenFileUpdatingAndBrowserReloading__seconds",
1343
+ type: Number,
1333
1344
  required: false,
1334
- element: {
1335
- type: String,
1336
- minimalCharactersCount: 1
1337
- }
1345
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.anyRealNumber
1338
1346
  }
1339
1347
  };
1340
1348
  }
@@ -1343,6 +1351,141 @@ var BrowserLiveReloadingSettings__FromFile__RawValid;
1343
1351
  exports["default"] = BrowserLiveReloadingSettings__FromFile__RawValid;
1344
1352
 
1345
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
+
1346
1489
  /***/ }),
1347
1490
 
1348
1491
  /***/ "./ProjectBuilding/Common/Defaults/AssetsProcessingGenericSettings__Default.ts":
@@ -1356,11 +1499,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1356
1499
  return (mod && mod.__esModule) ? mod : { "default": mod };
1357
1500
  };
1358
1501
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1359
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
1502
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
1360
1503
  exports["default"] = {
1361
1504
  revisioning: {
1362
1505
  mustExecute: (projectBuildingMode__possiblyCustom) => projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview &&
1363
- projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.development,
1506
+ projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
1364
1507
  contentHashPostfixSeparator: "--"
1365
1508
  }
1366
1509
  };
@@ -1380,27 +1523,6 @@ const CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION = "yda.config.yaml";
1380
1523
  exports["default"] = CONFIG_FILE_DEFAULT_NAME_WITH_EXTENSION;
1381
1524
 
1382
1525
 
1383
- /***/ }),
1384
-
1385
- /***/ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts":
1386
- /*!************************************************************************************!*\
1387
- !*** ./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts ***!
1388
- \************************************************************************************/
1389
- /***/ ((__unused_webpack_module, exports) => {
1390
-
1391
-
1392
- Object.defineProperty(exports, "__esModule", ({ value: true }));
1393
- var ConsumingProjectPreDefinedBuildingModes;
1394
- (function (ConsumingProjectPreDefinedBuildingModes) {
1395
- ConsumingProjectPreDefinedBuildingModes["staticPreview"] = "STATIC_PREVIEW";
1396
- ConsumingProjectPreDefinedBuildingModes["development"] = "DEVELOPMENT";
1397
- ConsumingProjectPreDefinedBuildingModes["testing"] = "TESTING";
1398
- ConsumingProjectPreDefinedBuildingModes["staging"] = "STAGING";
1399
- ConsumingProjectPreDefinedBuildingModes["production"] = "PRODUCTION";
1400
- })(ConsumingProjectPreDefinedBuildingModes || (ConsumingProjectPreDefinedBuildingModes = {}));
1401
- exports["default"] = ConsumingProjectPreDefinedBuildingModes;
1402
-
1403
-
1404
1526
  /***/ }),
1405
1527
 
1406
1528
  /***/ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts":
@@ -1426,7 +1548,7 @@ class ProjectBuildingCommonSettingsNormalizer {
1426
1548
  const actualPublicDirectoryRelativePath = commonSettings__fromFile__rawValid.publicDirectoriesRelativePaths?.[projectBuildingMode];
1427
1549
  let actualPublicDirectoryAbsolutePath;
1428
1550
  if ((0, es_extensions_1.isNotUndefined)(actualPublicDirectoryRelativePath)) {
1429
- actualPublicDirectoryAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { forwardSlashOnlySeparators: true });
1551
+ actualPublicDirectoryAbsolutePath = ImprovedPath_1.default.joinPathSegments([consumingProjectRootDirectoryAbsolutePath__forwardSlashes, actualPublicDirectoryRelativePath], { forwardSlashOnlySeparators: true });
1430
1552
  }
1431
1553
  return {
1432
1554
  projectRootDirectoryAbsolutePath: consumingProjectRootDirectoryAbsolutePath__forwardSlashes,
@@ -1471,7 +1593,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1471
1593
  };
1472
1594
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1473
1595
  /* --- Enumerations ----------------------------------------------------------------------------------------------- */
1474
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
1596
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
1475
1597
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
1476
1598
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1477
1599
  var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
@@ -1506,16 +1628,17 @@ var AssetsProcessingSettingsGenericProperties__FromFile__RawValid;
1506
1628
  minimalEntriesCount: 1,
1507
1629
  keysRenamings: {
1508
1630
  [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
1509
- [consumingProjectLocalizedPreDefinedBuildingModes.development]: ConsumingProjectPreDefinedBuildingModes_1.default.development,
1631
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
1510
1632
  [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectPreDefinedBuildingModes_1.default.testing,
1633
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectPreDefinedBuildingModes_1.default.staging,
1511
1634
  [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectPreDefinedBuildingModes_1.default.production
1512
1635
  },
1513
1636
  value: {
1514
1637
  type: Object,
1515
1638
  properties: {
1516
1639
  [assetsProcessingSettingsGenericPropertiesLocalization.assetsGroups.
1517
- buildingModeDependent.outputBaseDirectoryRelativePath.KEY]: {
1518
- newName: "outputBaseDirectoryRelativePath",
1640
+ buildingModeDependent.outputTopDirectoryRelativePath.KEY]: {
1641
+ newName: "outputTopDirectoryRelativePath",
1519
1642
  type: String,
1520
1643
  required: true
1521
1644
  },
@@ -1605,7 +1728,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1605
1728
  };
1606
1729
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1607
1730
  /* --- Defaults ----------------------------------------------------------------------------------------------------- */
1608
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
1731
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
1609
1732
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
1610
1733
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
1611
1734
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
@@ -1699,8 +1822,8 @@ var LintingCommonSettings__FromFile__RawValid;
1699
1822
  required: false,
1700
1823
  minimalCharactersCount: 1
1701
1824
  },
1702
- [lintingCommonSettingsLocalization.disableCompletely.KEY]: {
1703
- newName: "disableCompletely",
1825
+ [lintingCommonSettingsLocalization.enabled.KEY]: {
1826
+ newName: "enabled",
1704
1827
  type: Boolean,
1705
1828
  required: false
1706
1829
  }
@@ -1757,16 +1880,16 @@ exports["default"] = RevisioningSettings__FromFile__RawValid;
1757
1880
 
1758
1881
 
1759
1882
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1883
+ /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
1760
1884
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
1761
1885
  var SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid;
1762
1886
  (function (SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid) {
1763
1887
  function getLocalizedPropertiesSpecification(sourceCodeProcessingSettingsGenericPropertiesLocalization) {
1764
1888
  return {
1765
- [sourceCodeProcessingSettingsGenericPropertiesLocalization.
1766
- entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath.KEY]: {
1767
- newName: "entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath",
1889
+ [sourceCodeProcessingSettingsGenericPropertiesLocalization.topDirectoryRelativePath.KEY]: {
1890
+ newName: "topDirectoryRelativePath",
1768
1891
  type: String,
1769
- required: true,
1892
+ required: false,
1770
1893
  minimalCharactersCount: 1
1771
1894
  },
1772
1895
  [sourceCodeProcessingSettingsGenericPropertiesLocalization.partialsRecognition.KEY]: {
@@ -1838,6 +1961,21 @@ var SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid;
1838
1961
  ]
1839
1962
  }
1840
1963
  }
1964
+ },
1965
+ [sourceCodeProcessingSettingsGenericPropertiesLocalization.singleEntryPointRelativePath.KEY]: {
1966
+ newName: "singleEntryPointRelativePath",
1967
+ type: String,
1968
+ requiredIf: {
1969
+ predicate(rawObjectOfCurrentDepthLevel) {
1970
+ if (!(0, es_extensions_1.isArbitraryObject)(rawObjectOfCurrentDepthLevel)) {
1971
+ return false;
1972
+ }
1973
+ return !(0, es_extensions_1.isNonEmptyString)(rawObjectOfCurrentDepthLevel.topDirectoryRelativePath);
1974
+ },
1975
+ descriptionForLogging: sourceCodeProcessingSettingsGenericPropertiesLocalization.singleEntryPointRelativePath.
1976
+ REQUIREMENT_CONDITION_DESCRIPTION
1977
+ },
1978
+ minimalCharactersCount: 1
1841
1979
  }
1842
1980
  };
1843
1981
  }
@@ -1884,14 +2022,14 @@ 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
- assetsGroupSettings__buildingModeDependent__rawValid.outputBaseDirectoryRelativePath
2032
+ assetsGroupSettings__buildingModeDependent__rawValid.outputTopDirectoryRelativePath
1895
2033
  ], { forwardSlashOnlySeparators: true });
1896
2034
  const assetsManagementGroupNormalizedSettingsGenericProperties = {
1897
2035
  ID: groupID,
@@ -1972,28 +2110,30 @@ class SourceCodeProcessingRawSettingsNormalizer {
1972
2110
  }
1973
2111
  let entryPointsGroupSourceFilesTopDirectoryAbsolutePath;
1974
2112
  const currentEntryPointsGroupSourceFilesGlobSelectors = [];
1975
- const isSingeEntryPointGroup = ImprovedPath_1.default.hasFilenameExtension(entryPointsGroupSettings__rawValid.entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath);
1976
- if (isSingeEntryPointGroup) {
1977
- const absolutePathOfSingleEntryPointOfGroup = ImprovedPath_1.default.buildAbsolutePath([
2113
+ let isSingeEntryPointGroup;
2114
+ if ("singleEntryPointRelativePath" in entryPointsGroupSettings__rawValid) {
2115
+ isSingeEntryPointGroup = true;
2116
+ const absolutePathOfSingleEntryPointOfGroup = ImprovedPath_1.default.joinPathSegments([
1978
2117
  this.consumingProjectRootDirectoryAbsolutePath,
1979
- entryPointsGroupSettings__rawValid.entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath
2118
+ entryPointsGroupSettings__rawValid.singleEntryPointRelativePath
1980
2119
  ], { forwardSlashOnlySeparators: true });
1981
2120
  currentEntryPointsGroupSourceFilesGlobSelectors.push(absolutePathOfSingleEntryPointOfGroup);
1982
2121
  entryPointsGroupSourceFilesTopDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(absolutePathOfSingleEntryPointOfGroup);
1983
2122
  }
1984
2123
  else {
1985
- entryPointsGroupSourceFilesTopDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.buildAbsolutePath([
2124
+ isSingeEntryPointGroup = false;
2125
+ entryPointsGroupSourceFilesTopDirectoryAbsolutePath = ImprovedPath_1.default.extractDirectoryFromFilePath(ImprovedPath_1.default.joinPathSegments([
1986
2126
  this.consumingProjectRootDirectoryAbsolutePath,
1987
- entryPointsGroupSettings__rawValid.entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath
2127
+ entryPointsGroupSettings__rawValid.topDirectoryRelativePath
1988
2128
  ], { forwardSlashOnlySeparators: true }));
1989
2129
  currentEntryPointsGroupSourceFilesGlobSelectors.push(...this.getSourceFilesGlobSelectorsForMultipleEntryPointsGroup({
1990
- entryPointsGroupSettings__rawValid,
1991
- entryPointsSourceFilesDirectoryAbsolutePath: entryPointsGroupSourceFilesTopDirectoryAbsolutePath
2130
+ entryPointsSourceFilesDirectoryAbsolutePath: entryPointsGroupSourceFilesTopDirectoryAbsolutePath,
2131
+ partialsRecognition: entryPointsGroupSettings__rawValid.partialsRecognition
1992
2132
  }));
1993
2133
  }
1994
- const entryPointsOutputFilesActualBaseDirectoryAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([
2134
+ const entryPointsOutputFilesActualBaseDirectoryAbsolutePath = ImprovedPath_1.default.joinPathSegments([
1995
2135
  this.consumingProjectRootDirectoryAbsolutePath,
1996
- entryPointsGroupSettings__buildingModeDependent__rawValid.outputBaseDirectoryRelativePath
2136
+ entryPointsGroupSettings__buildingModeDependent__rawValid.outputTopDirectoryRelativePath
1997
2137
  ], { forwardSlashOnlySeparators: true });
1998
2138
  const entryPointsGroupNormalizedSettings__commonPropertiesOnly = {
1999
2139
  ID: groupID,
@@ -2010,18 +2150,18 @@ class SourceCodeProcessingRawSettingsNormalizer {
2010
2150
  * Generating of single glob with arbitrary conditions set is very difficult and it's not a fact that it's even possible.
2011
2151
  * More rational approach is generate the array of globs consisting on main exclusive glob and exclusions.
2012
2152
  * */
2013
- getSourceFilesGlobSelectorsForMultipleEntryPointsGroup({ entryPointsGroupSettings__rawValid, entryPointsSourceFilesDirectoryAbsolutePath }) {
2153
+ getSourceFilesGlobSelectorsForMultipleEntryPointsGroup({ entryPointsSourceFilesDirectoryAbsolutePath, partialsRecognition }) {
2014
2154
  const sourceFilesGlobSelectorsForMultipleEntryPointsGroup = [];
2015
2155
  /* [ Specification ] If 'partialsRecognition' has not been specified, all files with filename extensions
2016
2156
  * 'this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots' below 'entryPointsSourceFilesDirectoryAbsolutePath'
2017
2157
  * are being considered as entry points. */
2018
- if ((0, es_extensions_1.isUndefined)(entryPointsGroupSettings__rawValid.partialsRecognition)) {
2158
+ if ((0, es_extensions_1.isUndefined)(partialsRecognition)) {
2019
2159
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(ImprovedGlob_1.default.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
2020
2160
  basicDirectoryPath: entryPointsSourceFilesDirectoryAbsolutePath,
2021
2161
  fileNamesExtensions: this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots
2022
2162
  }));
2023
2163
  }
2024
- else if (entryPointsGroupSettings__rawValid.partialsRecognition.excludeAllSubdirectories === true) {
2164
+ else if (partialsRecognition.excludeAllSubdirectories === true) {
2025
2165
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(ImprovedGlob_1.default.buildAllFilesInCurrentDirectoryButNotBelowGlobSelector({
2026
2166
  basicDirectoryPath: entryPointsSourceFilesDirectoryAbsolutePath,
2027
2167
  fileNamesExtensions: this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots
@@ -2034,11 +2174,11 @@ class SourceCodeProcessingRawSettingsNormalizer {
2034
2174
  });
2035
2175
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(inclusiveMainGlobSelector);
2036
2176
  let prefixesOfFilesWhichMustBeExcluded;
2037
- if (Array.isArray(entryPointsGroupSettings__rawValid.partialsRecognition.excludeFilesWithPrefixes)) {
2038
- prefixesOfFilesWhichMustBeExcluded = entryPointsGroupSettings__rawValid.partialsRecognition.excludeFilesWithPrefixes;
2177
+ if (Array.isArray(partialsRecognition.excludeFilesWithPrefixes)) {
2178
+ prefixesOfFilesWhichMustBeExcluded = partialsRecognition.excludeFilesWithPrefixes;
2039
2179
  }
2040
- else if ((0, es_extensions_1.isString)(entryPointsGroupSettings__rawValid.partialsRecognition.excludeFilesWithPrefixes)) {
2041
- prefixesOfFilesWhichMustBeExcluded = [entryPointsGroupSettings__rawValid.partialsRecognition.excludeFilesWithPrefixes];
2180
+ else if ((0, es_extensions_1.isString)(partialsRecognition.excludeFilesWithPrefixes)) {
2181
+ prefixesOfFilesWhichMustBeExcluded = [partialsRecognition.excludeFilesWithPrefixes];
2042
2182
  }
2043
2183
  if ((0, es_extensions_1.isNotUndefined)(prefixesOfFilesWhichMustBeExcluded)) {
2044
2184
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(ImprovedGlob_1.default.buildExcludingOfFilesWithSpecificPrefixesGlobSelector({
@@ -2048,14 +2188,11 @@ class SourceCodeProcessingRawSettingsNormalizer {
2048
2188
  }));
2049
2189
  }
2050
2190
  let prefixesOfSubdirectoriesInWhichFilesMustBeExcluded;
2051
- if (Array.isArray(entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithPrefixes)) {
2052
- prefixesOfSubdirectoriesInWhichFilesMustBeExcluded = entryPointsGroupSettings__rawValid.
2053
- partialsRecognition.excludeSubdirectoriesWithPrefixes;
2191
+ if (Array.isArray(partialsRecognition.excludeSubdirectoriesWithPrefixes)) {
2192
+ prefixesOfSubdirectoriesInWhichFilesMustBeExcluded = partialsRecognition.excludeSubdirectoriesWithPrefixes;
2054
2193
  }
2055
- else if ((0, es_extensions_1.isString)(entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithPrefixes)) {
2056
- prefixesOfSubdirectoriesInWhichFilesMustBeExcluded = [
2057
- entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithPrefixes
2058
- ];
2194
+ else if ((0, es_extensions_1.isString)(partialsRecognition.excludeSubdirectoriesWithPrefixes)) {
2195
+ prefixesOfSubdirectoriesInWhichFilesMustBeExcluded = [partialsRecognition.excludeSubdirectoriesWithPrefixes];
2059
2196
  }
2060
2197
  if ((0, es_extensions_1.isNotUndefined)(prefixesOfSubdirectoriesInWhichFilesMustBeExcluded)) {
2061
2198
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(ImprovedGlob_1.default.buildExcludingOfFilesInSubdirectoriesWithSpecificPrefixesGlobSelector({
@@ -2065,14 +2202,11 @@ class SourceCodeProcessingRawSettingsNormalizer {
2065
2202
  }));
2066
2203
  }
2067
2204
  let namesOfSubdirectoriesInWhichFilesMustBeExcluded;
2068
- if (Array.isArray(entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithNames)) {
2069
- namesOfSubdirectoriesInWhichFilesMustBeExcluded = entryPointsGroupSettings__rawValid.
2070
- partialsRecognition.excludeSubdirectoriesWithNames;
2205
+ if (Array.isArray(partialsRecognition.excludeSubdirectoriesWithNames)) {
2206
+ namesOfSubdirectoriesInWhichFilesMustBeExcluded = partialsRecognition.excludeSubdirectoriesWithNames;
2071
2207
  }
2072
- else if ((0, es_extensions_1.isString)(entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithNames)) {
2073
- namesOfSubdirectoriesInWhichFilesMustBeExcluded = [
2074
- entryPointsGroupSettings__rawValid.partialsRecognition.excludeSubdirectoriesWithNames
2075
- ];
2208
+ else if ((0, es_extensions_1.isString)(partialsRecognition.excludeSubdirectoriesWithNames)) {
2209
+ namesOfSubdirectoriesInWhichFilesMustBeExcluded = [partialsRecognition.excludeSubdirectoriesWithNames];
2076
2210
  }
2077
2211
  if ((0, es_extensions_1.isNotUndefined)(namesOfSubdirectoriesInWhichFilesMustBeExcluded)) {
2078
2212
  sourceFilesGlobSelectorsForMultipleEntryPointsGroup.push(ImprovedGlob_1.default.buildExcludingOfFilesInSpecificSubdirectoriesGlobSelector({
@@ -2088,6 +2222,27 @@ class SourceCodeProcessingRawSettingsNormalizer {
2088
2222
  exports["default"] = SourceCodeProcessingRawSettingsNormalizer;
2089
2223
 
2090
2224
 
2225
+ /***/ }),
2226
+
2227
+ /***/ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts":
2228
+ /*!****************************************************************************************!*\
2229
+ !*** ./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts ***!
2230
+ \****************************************************************************************/
2231
+ /***/ ((__unused_webpack_module, exports) => {
2232
+
2233
+
2234
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2235
+ var ConsumingProjectPreDefinedBuildingModes;
2236
+ (function (ConsumingProjectPreDefinedBuildingModes) {
2237
+ ConsumingProjectPreDefinedBuildingModes["staticPreview"] = "STATIC_PREVIEW";
2238
+ ConsumingProjectPreDefinedBuildingModes["localDevelopment"] = "LOCAL_DEVELOPMENT";
2239
+ ConsumingProjectPreDefinedBuildingModes["testing"] = "TESTING";
2240
+ ConsumingProjectPreDefinedBuildingModes["staging"] = "STAGING";
2241
+ ConsumingProjectPreDefinedBuildingModes["production"] = "PRODUCTION";
2242
+ })(ConsumingProjectPreDefinedBuildingModes || (ConsumingProjectPreDefinedBuildingModes = {}));
2243
+ exports["default"] = ConsumingProjectPreDefinedBuildingModes;
2244
+
2245
+
2091
2246
  /***/ }),
2092
2247
 
2093
2248
  /***/ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts":
@@ -2110,7 +2265,7 @@ class AssetsProcessingSettingsRepresentative {
2110
2265
  prefixOfAliasOfTopDirectoryOfEntryPointsGroup = "@";
2111
2266
  masterConfigRepresentative;
2112
2267
  static computeActualOutputDirectoryAbsolutePathForTargetSourceFile({ targetSourceFileAbsolutePath, respectiveAssetsGroupNormalizedSettings }) {
2113
- let outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.buildAbsolutePath([
2268
+ let outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments([
2114
2269
  respectiveAssetsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
2115
2270
  ImprovedPath_1.default.computeRelativePath({
2116
2271
  basePath: respectiveAssetsGroupNormalizedSettings.sourceFilesTopDirectoryAbsolutePath,
@@ -2133,7 +2288,7 @@ class AssetsProcessingSettingsRepresentative {
2133
2288
  mutably: true
2134
2289
  });
2135
2290
  });
2136
- outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments(...outputDirectoryAbsolutePathForCurrentSourceFile__explodedToSegments);
2291
+ outputDirectoryAbsolutePathForCurrentSourceFile = ImprovedPath_1.default.joinPathSegments(outputDirectoryAbsolutePathForCurrentSourceFile__explodedToSegments, { forwardSlashOnlySeparators: true });
2137
2292
  }
2138
2293
  return outputDirectoryAbsolutePathForCurrentSourceFile;
2139
2294
  }
@@ -2209,7 +2364,7 @@ const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_req
2209
2364
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2210
2365
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
2211
2366
  const ImprovedGlob_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedGlob */ "./UtilsIncubator/ImprovedGlob.ts"));
2212
- const PartialsFilesMapper_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/PartialsFilesMapper */ "./UtilsIncubator/PartialsFilesMapper.ts"));
2367
+ const PartialsFilesMapper_1 = __importDefault(__webpack_require__(/*! @Utils/PartialsFilesMapper */ "./Utils/PartialsFilesMapper.ts"));
2213
2368
  class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
2214
2369
  static #localization = GulpStreamBasedSourceCodeProcessingConfigRepresentative.getDefaultLocalization();
2215
2370
  partialFilesAndEntryPointsRelationsMap = new Map();
@@ -2219,7 +2374,7 @@ class GulpStreamBasedSourceCodeProcessingConfigRepresentative extends SourceCode
2219
2374
  if (respectiveEntryPointsGroupSettings.isSingeEntryPointGroup) {
2220
2375
  return respectiveEntryPointsGroupSettings.outputFilesTopDirectoryAbsolutePath;
2221
2376
  }
2222
- return ImprovedPath_1.default.buildAbsolutePath([
2377
+ return ImprovedPath_1.default.joinPathSegments([
2223
2378
  respectiveEntryPointsGroupSettings.outputFilesTopDirectoryAbsolutePath,
2224
2379
  ImprovedPath_1.default.computeRelativePath({
2225
2380
  basePath: respectiveEntryPointsGroupSettings.sourceFilesTopDirectoryAbsolutePath,
@@ -2340,7 +2495,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2340
2495
  };
2341
2496
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2342
2497
  /* --- Task executors ----------------------------------------------------------------------------------------------- */
2343
- 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"));
2344
2499
  /* --- Applied utils ------------------------------------------------------------------------------------------------ */
2345
2500
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2346
2501
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
@@ -2401,7 +2556,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2401
2556
  };
2402
2557
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2403
2558
  /* --- Task executors ----------------------------------------------------------------------------------------------- */
2404
- 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"));
2405
2560
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/ChokidarSpecialist.ts"));
2406
2561
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
2407
2562
  /* --- General utils ------------------------------------------------------------------------------------------------ */
@@ -2509,10 +2664,10 @@ exports["default"] = GulpStreamsBasedSourceCodeProcessor;
2509
2664
 
2510
2665
  /***/ }),
2511
2666
 
2512
- /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts":
2513
- /*!*******************************************************************************!*\
2514
- !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedTaskExecutor.ts ***!
2515
- \*******************************************************************************/
2667
+ /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts":
2668
+ /*!************************************************************************************************!*\
2669
+ !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/GulpStreamsBasedTaskExecutor.ts ***!
2670
+ \************************************************************************************************/
2516
2671
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2517
2672
 
2518
2673
 
@@ -2520,27 +2675,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
2520
2675
  return (mod && mod.__esModule) ? mod : { "default": mod };
2521
2676
  };
2522
2677
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2523
- /* --- Task executors ----------------------------------------------------------------------------------------------- */
2524
- const TaskExecutor_1 = __importDefault(__webpack_require__(/*! ./TaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts"));
2525
2678
  const gulp_debug_1 = __importDefault(__webpack_require__(/*! gulp-debug */ "gulp-debug"));
2526
2679
  const gulp_plumber_1 = __importDefault(__webpack_require__(/*! gulp-plumber */ "gulp-plumber"));
2527
2680
  /* --- General utils ------------------------------------------------------------------------------------------------ */
2528
2681
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2529
2682
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
2530
- class GulpStreamsBasedTaskExecutor extends TaskExecutor_1.default {
2531
- printProcessedFilesPathsAndQuantity() {
2532
- 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;
2687
+ }
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
+ });
2533
2693
  }
2534
- handleErrorIfItWillOccur() {
2694
+ handleErrorIfItWillOccur(namedParameters = {}) {
2535
2695
  return (0, gulp_plumber_1.default)({
2536
2696
  errorHandler: (error) => {
2537
- 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`;
2538
2699
  es_extensions_1.Logger.logErrorLikeMessage({
2539
2700
  title: ERROR_MESSAGE_TITLE,
2540
2701
  description: error.message
2541
2702
  });
2542
2703
  node_notifier_1.default.notify({
2543
- title: `Task ${this.TASK_NAME_FOR_LOGGING}, error occurred`,
2704
+ title: ERROR_MESSAGE_TITLE,
2544
2705
  message: "Please check your terminal for the details."
2545
2706
  });
2546
2707
  }
@@ -2552,21 +2713,79 @@ exports["default"] = GulpStreamsBasedTaskExecutor;
2552
2713
 
2553
2714
  /***/ }),
2554
2715
 
2555
- /***/ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts":
2556
- /*!***************************************************************!*\
2557
- !*** ./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts ***!
2558
- \***************************************************************/
2559
- /***/ ((__unused_webpack_module, exports) => {
2716
+ /***/ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter.ts":
2717
+ /*!*********************************************************************************************************************!*\
2718
+ !*** ./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/SourceCodeLinter/GulpStreamsBasedSourceCodeLinter.ts ***!
2719
+ \*********************************************************************************************************************/
2720
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2560
2721
 
2561
2722
 
2723
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2724
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2725
+ };
2562
2726
  Object.defineProperty(exports, "__esModule", ({ value: true }));
2563
- class TaskExecutor {
2564
- masterConfigRepresentative;
2565
- constructor(masterConfigRepresentative) {
2566
- this.masterConfigRepresentative = masterConfigRepresentative;
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;
2567
2786
  }
2568
2787
  }
2569
- exports["default"] = TaskExecutor;
2788
+ exports["default"] = GulpStreamsBasedSourceCodeLinter;
2570
2789
 
2571
2790
 
2572
2791
  /***/ }),
@@ -2678,17 +2897,17 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
2678
2897
  const ProjectBuildingTasksIDsForConfigFile_1 = __webpack_require__(/*! @ProjectBuilding:Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile */ "./ProjectBuilding/Common/RawConfig/Enumerations/ProjectBuildingTasksIDsForConfigFile.ts");
2679
2898
  const ProjectBuildingCommonSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer */ "./ProjectBuilding/Common/NormalizedConfig/ProjectBuildingCommonSettingsNormalizer.ts"));
2680
2899
  const ProjectBuildingDebuggingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! ./Debugging/ProjectBuildingDebuggingSettingsNormalizer */ "./ProjectBuilding/Debugging/ProjectBuildingDebuggingSettingsNormalizer.ts"));
2681
- 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"));
2682
2901
  const StylesProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts"));
2683
2902
  const ECMA_ScriptLogicProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRawSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRawSettingsNormalizer.ts"));
2684
2903
  const ImagesProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ImagesProcessing/ImagesProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Images/ImagesProcessingRawSettingsNormalizer.ts"));
2685
2904
  const FontsProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @FontsProcessing/FontsProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Fonts/FontsProcessingRawSettingsNormalizer.ts"));
2686
2905
  const VideosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @VideosProcessing/VideosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Videos/VideosProcessingRawSettingsNormalizer.ts"));
2687
2906
  const AudiosProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @AudiosProcessing/AudiosProcessingRawSettingsNormalizer */ "./ProjectBuilding/AssetsProcessing/Audios/AudiosProcessingRawSettingsNormalizer.ts"));
2688
- 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"));
2689
2908
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
2690
2909
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
2691
- 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");
2692
2911
  class ProjectBuilderRawConfigNormalizer {
2693
2912
  static localization = ProjectBuilderRawConfigNormalizer.getDefaultLocalization();
2694
2913
  static normalize({ consumingProjectRootDirectoryAbsolutePath, projectBuildingConfig__fromFile__rawValid, projectBuildingConfig__fromConsole }) {
@@ -2843,7 +3062,7 @@ class ProjectBuilderRawConfigNormalizer {
2843
3062
  }
2844
3063
  const selectedBrowserLiveReloadingSetupID = actualSelectiveExecution?.browserLiveReloadingSetupID;
2845
3064
  return {
2846
- browserLiveReloading: BrowserLiveReloadingSettingsNormalizer_1.default.getNormalizedSettings({
3065
+ browserLiveReloading: BrowserLiveReloadingSettingsNormalizer_1.default.normalize({
2847
3066
  browserLiveReloadingSettings__fromFile__rawValid,
2848
3067
  projectBuilderCommonSettings__normalized: commonSettings__normalized,
2849
3068
  hasSelectiveExecutionBeenDeclared: (0, es_extensions_1.isNotUndefined)(actualSelectiveExecution),
@@ -2862,7 +3081,7 @@ class ProjectBuilderRawConfigNormalizer {
2862
3081
  if ((0, es_extensions_1.isNotUndefined)(projectBuildingConfig__fromConsole.selectiveExecutionID)) {
2863
3082
  if ((0, es_extensions_1.isUndefined)(selectiveExecutions)) {
2864
3083
  es_extensions_1.Logger.throwErrorAndLog({
2865
- errorInstance: new InvalidConsoleCommandError_1.default({
3084
+ errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
2866
3085
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
2867
3086
  generateNoSelectiveExecutionsHasBeenDefinedErrorMessage({
2868
3087
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
@@ -2875,7 +3094,7 @@ class ProjectBuilderRawConfigNormalizer {
2875
3094
  actualSelectiveExecution = selectiveExecutions[projectBuildingConfig__fromConsole.selectiveExecutionID];
2876
3095
  if ((0, es_extensions_1.isUndefined)(actualSelectiveExecution)) {
2877
3096
  es_extensions_1.Logger.throwErrorAndLog({
2878
- errorInstance: new InvalidConsoleCommandError_1.default({
3097
+ errorInstance: new es_extensions_nodejs_1.InvalidConsoleCommandError({
2879
3098
  customMessage: ProjectBuilderRawConfigNormalizer.localization.
2880
3099
  generateUndefinedSelectiveExecutionID_ErrorMessage({
2881
3100
  specifiedInConsoleCommandSelectiveExecutionID: projectBuildingConfig__fromConsole.selectiveExecutionID
@@ -2925,7 +3144,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2925
3144
  },
2926
3145
  consumingProjectPreDefinedBuildingModes: {
2927
3146
  staticPreview: "STATIC_PREVIEW",
2928
- development: "DEVELOPMENT",
3147
+ localDevelopment: "LOCAL_DEVELOPMENT",
2929
3148
  testing: "TESTING",
2930
3149
  staging: "STAGING",
2931
3150
  production: "PRODUCTION"
@@ -2933,15 +3152,17 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2933
3152
  },
2934
3153
  reusables: {
2935
3154
  sourceCodeProcessingGenericProperties: {
2936
- entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath: {
2937
- KEY: "entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath"
2938
- },
3155
+ topDirectoryRelativePath: { KEY: "topDirectoryRelativePath" },
2939
3156
  partialsRecognition: {
2940
3157
  KEY: "partialsRecognition",
2941
3158
  excludeAllSubdirectories: { KEY: "excludeAllSubdirectories" },
2942
3159
  excludeSubdirectoriesWithNames: { KEY: "excludeSubdirectoriesWithNames" },
2943
3160
  excludeSubdirectoriesWithPrefixes: { KEY: "excludeSubdirectoriesWithPrefixes" },
2944
3161
  excludeFilesWithPrefixes: { KEY: "excludeFilesWithPrefixes" }
3162
+ },
3163
+ singleEntryPointRelativePath: {
3164
+ KEY: "singleEntryPointRelativePath",
3165
+ REQUIREMENT_CONDITION_DESCRIPTION: "'topDirectoryRelativePath' is not defined"
2945
3166
  }
2946
3167
  },
2947
3168
  revisioning: {
@@ -2950,7 +3171,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2950
3171
  },
2951
3172
  lintingCommonSettings: {
2952
3173
  presetFileRelativePath: { KEY: "presetFileRelativePath" },
2953
- disableCompletely: { KEY: "disableCompletely" }
3174
+ enabled: { KEY: "enabled" }
2954
3175
  }
2955
3176
  },
2956
3177
  commonSettings: {
@@ -2968,17 +3189,32 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2968
3189
  markupProcessing: {
2969
3190
  common: {
2970
3191
  KEY: "common",
2971
- 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
+ }
2972
3212
  },
2973
3213
  linting: {
2974
3214
  KEY: "linting"
2975
3215
  },
2976
3216
  entryPointsGroups: {
2977
3217
  KEY: "entryPointsGroups",
2978
- linting: {
2979
- KEY: "linting",
2980
- disable: { KEY: "disable" }
2981
- },
2982
3218
  HTML_Validation: {
2983
3219
  KEY: "HTML_Validation",
2984
3220
  disable: { KEY: "disable" }
@@ -2988,10 +3224,10 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
2988
3224
  standard: { KEY: "standard" },
2989
3225
  disable: { KEY: "disable" }
2990
3226
  },
2991
- convertToHandlebarsInNonStaticPreviewModes: { KEY: "convertToHandlebarsInNonStaticPreviewModes" },
3227
+ convertToHandlebarsOnNonStaticPreviewModes: { KEY: "convertToHandlebarsOnNonStaticPreviewModes" },
2992
3228
  buildingModeDependent: {
2993
3229
  KEY: "buildingModeDependent",
2994
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" }
3230
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" }
2995
3231
  }
2996
3232
  }
2997
3233
  },
@@ -3014,7 +3250,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3014
3250
  },
3015
3251
  buildingModeDependent: {
3016
3252
  KEY: "buildingModeDependent",
3017
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3253
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3018
3254
  revisioning: { KEY: "revisioning" }
3019
3255
  }
3020
3256
  }
@@ -3065,7 +3301,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3065
3301
  },
3066
3302
  buildingModeDependent: {
3067
3303
  KEY: "buildingModeDependent",
3068
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3304
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3069
3305
  revisioning: { KEY: "revisioning" },
3070
3306
  dynamicallyLoadedFilesSubdirectory: { KEY: "dynamicallyLoadedFilesSubdirectory" },
3071
3307
  dynamicallyLoadedFilesNamesTemplate: { KEY: "dynamicallyLoadedFilesNamesTemplate" }
@@ -3079,7 +3315,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3079
3315
  sourceFilesTopDirectoryPathAliasForReferencingFromHTML: { KEY: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML" },
3080
3316
  buildingModeDependent: {
3081
3317
  KEY: "buildingModeDependent",
3082
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3318
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3083
3319
  revisioning: { KEY: "revisioning" },
3084
3320
  outputPathTransformations: {
3085
3321
  KEY: "outputPathTransformations",
@@ -3096,7 +3332,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3096
3332
  sourceFilesTopDirectoryPathAliasForReferencingFromHTML: { KEY: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML" },
3097
3333
  buildingModeDependent: {
3098
3334
  KEY: "buildingModeDependent",
3099
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3335
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3100
3336
  revisioning: { KEY: "revisioning" },
3101
3337
  outputPathTransformations: {
3102
3338
  KEY: "outputPathTransformations",
@@ -3113,7 +3349,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3113
3349
  sourceFilesTopDirectoryPathAliasForReferencingFromHTML: { KEY: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML" },
3114
3350
  buildingModeDependent: {
3115
3351
  KEY: "buildingModeDependent",
3116
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3352
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3117
3353
  revisioning: { KEY: "revisioning" },
3118
3354
  outputPathTransformations: {
3119
3355
  KEY: "outputPathTransformations",
@@ -3130,7 +3366,7 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3130
3366
  sourceFilesTopDirectoryPathAliasForReferencingFromHTML: { KEY: "sourceFilesTopDirectoryPathAliasForReferencingFromHTML" },
3131
3367
  buildingModeDependent: {
3132
3368
  KEY: "buildingModeDependent",
3133
- outputBaseDirectoryRelativePath: { KEY: "outputBaseDirectoryRelativePath" },
3369
+ outputTopDirectoryRelativePath: { KEY: "outputTopDirectoryRelativePath" },
3134
3370
  revisioning: { KEY: "revisioning" },
3135
3371
  outputPathTransformations: {
3136
3372
  KEY: "outputPathTransformations",
@@ -3141,17 +3377,22 @@ const ProjectBuildingConfigFromFileDefaultLocalization = {
3141
3377
  }
3142
3378
  },
3143
3379
  browserLiveReloading: {
3144
- targetFilesRootDirectoryRelativePath: { KEY: "targetFilesRootDirectoryRelativePath" },
3145
- customStartingFilenameWithExtension: { KEY: "customStartingFilenameWithExtension" },
3146
- waitingForTheOtherFilesWillUpdateDuration__seconds: { KEY: "waitingForTheOtherFilesWillUpdateDuration__seconds" },
3147
- useHTTPS: { KEY: "useHTTPS" },
3148
- virtualHost: { KEY: "virtualHost" },
3149
- ports: {
3150
- KEY: "ports",
3151
- main: { KEY: "main" },
3152
- 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" }
3153
3387
  },
3154
- 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" }
3155
3396
  }
3156
3397
  },
3157
3398
  debugging: {
@@ -3263,7 +3504,6 @@ var ProjectBuildingConfig__FromFile__RawValid;
3263
3504
  required: false,
3264
3505
  properties: ECMA_ScriptLogicProcessingSettings__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification({
3265
3506
  ECMA_ScriptProcessingLocalization: localization.tasks.ECMA_ScriptLogicProcessing,
3266
- sourceCodeProcessingSettingsGenericPropertiesLocalization: localization.reusables.sourceCodeProcessingGenericProperties,
3267
3507
  sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification,
3268
3508
  consumingProjectLocalizedPreDefinedBuildingModes,
3269
3509
  revisioningPropertiesLocalizedSpecification,
@@ -3357,7 +3597,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3357
3597
  };
3358
3598
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3359
3599
  /* --- Business rules ----------------------------------------------------------------------------------------------- */
3360
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
3600
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
3361
3601
  /* --- Settings representatives --------------------------------------------------------------------------------------- */
3362
3602
  const MarkupProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettingsRepresentative */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettingsRepresentative.ts"));
3363
3603
  const StylesProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingSettingsRepresentative */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingSettingsRepresentative.ts"));
@@ -3434,8 +3674,8 @@ class ProjectBuildingMasterConfigRepresentative {
3434
3674
  get isStaticPreviewBuildingMode() {
3435
3675
  return this.commonSettings.projectBuildingMode === ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview;
3436
3676
  }
3437
- get isDevelopmentBuildingMode() {
3438
- return this.commonSettings.projectBuildingMode === ConsumingProjectPreDefinedBuildingModes_1.default.development;
3677
+ get isLocalDevelopmentBuildingMode() {
3678
+ return this.commonSettings.projectBuildingMode === ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment;
3439
3679
  }
3440
3680
  get isTestingBuildingMode() {
3441
3681
  return this.commonSettings.projectBuildingMode === ConsumingProjectPreDefinedBuildingModes_1.default.testing;
@@ -3475,7 +3715,7 @@ class ProjectBuildingMasterConfigRepresentative {
3475
3715
  }
3476
3716
  get mustProvideBrowserLiveReloading() {
3477
3717
  return (0, es_extensions_1.isNotUndefined)(this.browserLiveReloadingSettingsRepresentative) &&
3478
- (this.isStaticPreviewBuildingMode || this.isDevelopmentBuildingMode);
3718
+ (this.isStaticPreviewBuildingMode || this.isLocalDevelopmentBuildingMode);
3479
3719
  }
3480
3720
  /* --- Debugging -------------------------------------------------------------------------------------------------- */
3481
3721
  get mustDebugEntryPointsAndPartialFiles() {
@@ -3540,14 +3780,14 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
3540
3780
  directoriesAliasesAbsolutePaths: (() => {
3541
3781
  const directoriesAliasesAbsolutePaths = {};
3542
3782
  for (const [directoryAlias, directoryAliasRelativePath] of Object.entries(ECMA_ScriptLogicProcessingSettings__fromFile__rawValid.common?.directoriesRelativePathsAliases ?? {})) {
3543
- 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 });
3544
3784
  }
3545
3785
  return directoriesAliasesAbsolutePaths;
3546
3786
  })()
3547
3787
  },
3548
3788
  linting: {
3549
3789
  ...(0, es_extensions_1.isNotUndefined)(lintingSettings__fromFile__rawValid.presetFileRelativePath) ? {
3550
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
3790
+ presetFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
3551
3791
  dataHoldingSelfInstance.consumingProjectRootDirectoryAbsolutePath,
3552
3792
  lintingSettings__fromFile__rawValid.presetFileRelativePath
3553
3793
  ], { forwardSlashOnlySeparators: true })
@@ -3606,7 +3846,7 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
3606
3846
  associatedMarkupEntryPointsGroupID_ForModulesDynamicLoadingWithoutDevelopmentServer
3607
3847
  } : null,
3608
3848
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath) ? {
3609
- typeScriptConfigurationFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
3849
+ typeScriptConfigurationFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
3610
3850
  this.consumingProjectRootDirectoryAbsolutePath,
3611
3851
  entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath
3612
3852
  ], { forwardSlashOnlySeparators: true })
@@ -3655,7 +3895,7 @@ exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
3655
3895
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3656
3896
  var ECMA_ScriptLogicProcessingRestrictions;
3657
3897
  (function (ECMA_ScriptLogicProcessingRestrictions) {
3658
- ECMA_ScriptLogicProcessingRestrictions.supportedSourceFileNameExtensionsWithoutLeadingDots = ["mjs", "js", "ts"];
3898
+ ECMA_ScriptLogicProcessingRestrictions.supportedSourceFileNameExtensionsWithoutLeadingDots = ["mjs", "js", "jsx", "ts", "tsx"];
3659
3899
  ECMA_ScriptLogicProcessingRestrictions.supportedOutputFileNameExtensionsWithoutLeadingDots = ["js"];
3660
3900
  let SupportedECMA_ScriptRuntimesTypes;
3661
3901
  (function (SupportedECMA_ScriptRuntimesTypes) {
@@ -3733,7 +3973,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3733
3973
  return (mod && mod.__esModule) ? mod : { "default": mod };
3734
3974
  };
3735
3975
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3736
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
3976
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
3737
3977
  const ECMA_ScriptLogicProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRestrictions.ts"));
3738
3978
  var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1.default.SupportedECMA_ScriptRuntimesTypes;
3739
3979
  exports["default"] = {
@@ -3746,7 +3986,7 @@ exports["default"] = {
3746
3986
  if (namedParameters.targetRuntimeType === SupportedECMA_ScriptRuntimesTypes.browser ||
3747
3987
  namedParameters.targetRuntimeType === SupportedECMA_ScriptRuntimesTypes.webWorker) {
3748
3988
  return namedParameters.consumingProjectBuildingMode !== ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview &&
3749
- namedParameters.consumingProjectBuildingMode !== ConsumingProjectPreDefinedBuildingModes_1.default.development;
3989
+ namedParameters.consumingProjectBuildingMode !== ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment;
3750
3990
  }
3751
3991
  return false;
3752
3992
  },
@@ -3785,7 +4025,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
3785
4025
  const ECMA_ScriptLogicProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRestrictions.ts"));
3786
4026
  var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1.default.SupportedECMA_ScriptRuntimesTypes;
3787
4027
  /* --- Default settings --------------------------------------------------------------------------------------------- */
3788
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
4028
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
3789
4029
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
3790
4030
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
3791
4031
  * The merging of type/interface and namespace is completely valid TypeScript,
@@ -3793,7 +4033,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
3793
4033
  * https://github.com/eslint/eslint/issues/15504 */
3794
4034
  var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
3795
4035
  (function (ECMA_ScriptLogicProcessingSettings__FromFile__RawValid) {
3796
- function getLocalizedPropertiesSpecification({ ECMA_ScriptProcessingLocalization, sourceCodeProcessingSettingsGenericPropertiesLocalization, sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification, consumingProjectLocalizedPreDefinedBuildingModes, revisioningPropertiesLocalizedSpecification, lintingCommonSettingsLocalizedPropertiesSpecification }) {
4036
+ function getLocalizedPropertiesSpecification({ ECMA_ScriptProcessingLocalization, sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification, consumingProjectLocalizedPreDefinedBuildingModes, revisioningPropertiesLocalizedSpecification, lintingCommonSettingsLocalizedPropertiesSpecification }) {
3797
4037
  return {
3798
4038
  [ECMA_ScriptProcessingLocalization.common.KEY]: {
3799
4039
  newName: "common",
@@ -3826,9 +4066,7 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
3826
4066
  value: {
3827
4067
  type: Object,
3828
4068
  properties: {
3829
- [sourceCodeProcessingSettingsGenericPropertiesLocalization.
3830
- entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath.KEY]: sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification[sourceCodeProcessingSettingsGenericPropertiesLocalization.
3831
- entryPointsSourceFilesTopDirectoryOrSingleFileRelativePath.KEY],
4069
+ ...sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification,
3832
4070
  [ECMA_ScriptProcessingLocalization.entryPointsGroups.targetRuntime.KEY]: {
3833
4071
  newName: "targetRuntime",
3834
4072
  type: Object,
@@ -3945,19 +4183,21 @@ var ECMA_ScriptLogicProcessingSettings__FromFile__RawValid;
3945
4183
  newName: "buildingModeDependent",
3946
4184
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
3947
4185
  required: true,
4186
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
3948
4187
  minimalEntriesCount: 1,
3949
4188
  keysRenamings: {
3950
4189
  [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
3951
- [consumingProjectLocalizedPreDefinedBuildingModes.development]: ConsumingProjectPreDefinedBuildingModes_1.default.development,
4190
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
3952
4191
  [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectPreDefinedBuildingModes_1.default.testing,
4192
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectPreDefinedBuildingModes_1.default.staging,
3953
4193
  [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectPreDefinedBuildingModes_1.default.production
3954
4194
  },
3955
4195
  value: {
3956
4196
  type: Object,
3957
4197
  properties: {
3958
4198
  [ECMA_ScriptProcessingLocalization.entryPointsGroups.
3959
- buildingModeDependent.outputBaseDirectoryRelativePath.KEY]: {
3960
- newName: "outputBaseDirectoryRelativePath",
4199
+ buildingModeDependent.outputTopDirectoryRelativePath.KEY]: {
4200
+ newName: "outputTopDirectoryRelativePath",
3961
4201
  type: String,
3962
4202
  required: true
3963
4203
  },
@@ -4008,15 +4248,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4008
4248
  };
4009
4249
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4010
4250
  /* --- Applied utils ------------------------------------------------------------------------------------------------- */
4011
- const TaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/TaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/TaskExecutor.ts"));
4012
4251
  const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/WebpackConfigGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/WebpackConfigGenerator.ts"));
4013
4252
  const ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator.ts"));
4014
4253
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
4015
4254
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
4016
4255
  /* --- General Utils ------------------------------------------------------------------------------------------------ */
4017
4256
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4018
- class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4257
+ class ECMA_ScriptLogicProcessor {
4019
4258
  TASK_NAME_FOR_LOGGING = "ECMAScript logic processing";
4259
+ masterConfigRepresentative;
4020
4260
  ECMA_ScriptLogicProcessingConfigRepresentative;
4021
4261
  static provideLogicProcessingIfMust(masterConfigRepresentative) {
4022
4262
  if ((0, es_extensions_1.isUndefined)(masterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative)) {
@@ -4049,7 +4289,7 @@ class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4049
4289
  occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(masterConfigRepresentative)"
4050
4290
  });
4051
4291
  node_notifier_1.default.notify({
4052
- title: dataHoldingSelfInstance.TASK_NAME_FOR_LOGGING,
4292
+ title: "ECMAScript logic processing",
4053
4293
  message: "Error has occurred. Please check the console."
4054
4294
  });
4055
4295
  }
@@ -4086,7 +4326,7 @@ class ECMA_ScriptLogicProcessor extends TaskExecutor_1.default {
4086
4326
  };
4087
4327
  }
4088
4328
  constructor(masterConfigRepresentative, ecmaScriptLogicProcessingConfigRepresentative) {
4089
- super(masterConfigRepresentative);
4329
+ this.masterConfigRepresentative = masterConfigRepresentative;
4090
4330
  this.ECMA_ScriptLogicProcessingConfigRepresentative = ecmaScriptLogicProcessingConfigRepresentative;
4091
4331
  }
4092
4332
  }
@@ -4125,7 +4365,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
4125
4365
  static getEntryPointsOutputFileActualAbsolutePath(sourceFileAbsolutePath, entryPointsGroupNormalizedSettings) {
4126
4366
  let correspondingOutputFileAbsolutePath;
4127
4367
  if (entryPointsGroupNormalizedSettings.revisioning.mustExecute) {
4128
- const targetOutputFileGlobSelector = ImprovedPath_1.default.buildAbsolutePath([
4368
+ const targetOutputFileGlobSelector = ImprovedPath_1.default.joinPathSegments([
4129
4369
  entryPointsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
4130
4370
  `${ImprovedPath_1.default.extractFileNameWithoutExtensionFromPath(sourceFileAbsolutePath)}**.js`
4131
4371
  ], { forwardSlashOnlySeparators: true });
@@ -4151,7 +4391,7 @@ class ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPat
4151
4391
  correspondingOutputFileAbsolutePath = targetOutputFileSearchResults[0];
4152
4392
  }
4153
4393
  else {
4154
- correspondingOutputFileAbsolutePath = ImprovedPath_1.default.buildAbsolutePath([
4394
+ correspondingOutputFileAbsolutePath = ImprovedPath_1.default.joinPathSegments([
4155
4395
  entryPointsGroupNormalizedSettings.outputFilesTopDirectoryAbsolutePath,
4156
4396
  ImprovedPath_1.default.computeRelativePath({
4157
4397
  comparedPath: ImprovedPath_1.default.extractDirectoryFromFilePath(sourceFileAbsolutePath),
@@ -4302,12 +4542,12 @@ class WebpackConfigGenerator {
4302
4542
  },
4303
4543
  ...willBrowserJS_LibraryBeBuilt ? { experiments: { outputModule: true } } : null,
4304
4544
  mode: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
4305
- this.masterConfigRepresentative.isDevelopmentBuildingMode ?
4545
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
4306
4546
  "development" : "production",
4307
4547
  watch: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
4308
- this.masterConfigRepresentative.isDevelopmentBuildingMode,
4548
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
4309
4549
  devtool: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
4310
- this.masterConfigRepresentative.isDevelopmentBuildingMode ?
4550
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
4311
4551
  "eval" : false,
4312
4552
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
4313
4553
  node: {
@@ -4319,7 +4559,7 @@ class WebpackConfigGenerator {
4319
4559
  rules: [
4320
4560
  /* --- Logic ---------------------------------------------------------------------------------------------- */
4321
4561
  {
4322
- test: /\.ts$/u,
4562
+ test: /\.tsx?$/u,
4323
4563
  loader: "ts-loader",
4324
4564
  options: {
4325
4565
  ...(0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath) ? {
@@ -4427,9 +4667,9 @@ class WebpackConfigGenerator {
4427
4667
  resolveLoader: {
4428
4668
  modules: [
4429
4669
  /* [ Theory ] Actual for normal usage via "npm install" */
4430
- ImprovedPath_1.default.buildAbsolutePath([this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath, "node_modules"], { forwardSlashOnlySeparators: true }),
4670
+ ImprovedPath_1.default.joinPathSegments([this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath, "node_modules"], { forwardSlashOnlySeparators: true }),
4431
4671
  /* [ Theory ] Actual for "npm-link" usage. */
4432
- ImprovedPath_1.default.buildAbsolutePath([__dirname, "node_modules"], { forwardSlashOnlySeparators: true })
4672
+ ImprovedPath_1.default.joinPathSegments([__dirname, "node_modules"], { forwardSlashOnlySeparators: true })
4433
4673
  ]
4434
4674
  },
4435
4675
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
@@ -4448,7 +4688,7 @@ class WebpackConfigGenerator {
4448
4688
  if ((0, es_extensions_1.isNotUndefined)(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath)) {
4449
4689
  return entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath;
4450
4690
  }
4451
- return ImprovedPath_1.default.buildAbsolutePath([
4691
+ return ImprovedPath_1.default.joinPathSegments([
4452
4692
  this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
4453
4693
  "tsconfig.json"
4454
4694
  ], { forwardSlashOnlySeparators: true });
@@ -4463,7 +4703,7 @@ class WebpackConfigGenerator {
4463
4703
  }),
4464
4704
  new vue_loader_1.VueLoaderPlugin(),
4465
4705
  new eslint_webpack_plugin_1.default({
4466
- extensions: ["js", "ts", "vue"],
4706
+ extensions: ["js", "ts", "jsx", "tsx", "vue"],
4467
4707
  failOnError: this.masterConfigRepresentative.isStagingBuildingMode ||
4468
4708
  this.masterConfigRepresentative.isProductionBuildingMode,
4469
4709
  failOnWarning: this.masterConfigRepresentative.isStagingBuildingMode ||
@@ -4474,7 +4714,7 @@ class WebpackConfigGenerator {
4474
4714
  minimize: this.masterConfigRepresentative.isStagingBuildingMode ||
4475
4715
  this.masterConfigRepresentative.isProductionBuildingMode,
4476
4716
  emitOnErrors: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
4477
- this.masterConfigRepresentative.isDevelopmentBuildingMode
4717
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode
4478
4718
  }
4479
4719
  };
4480
4720
  }
@@ -4498,7 +4738,7 @@ class WebpackConfigGenerator {
4498
4738
  * */
4499
4739
  computePublicPathIfPossible(ECMA_ScriptLogicEntryPointsGroupSettings__normalized) {
4500
4740
  if (!this.masterConfigRepresentative.isStaticPreviewBuildingMode &&
4501
- !this.masterConfigRepresentative.isDevelopmentBuildingMode) {
4741
+ !this.masterConfigRepresentative.isLocalDevelopmentBuildingMode) {
4502
4742
  return "/";
4503
4743
  }
4504
4744
  return ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID.replace(ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID, "/");
@@ -4560,105 +4800,6 @@ class WebpackConfigGenerator {
4560
4800
  exports["default"] = WebpackConfigGenerator;
4561
4801
 
4562
4802
 
4563
- /***/ }),
4564
-
4565
- /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRawSettingsNormalizer.ts":
4566
- /*!**********************************************************************************************!*\
4567
- !*** ./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRawSettingsNormalizer.ts ***!
4568
- \**********************************************************************************************/
4569
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
4570
-
4571
-
4572
- var __importDefault = (this && this.__importDefault) || function (mod) {
4573
- return (mod && mod.__esModule) ? mod : { "default": mod };
4574
- };
4575
- Object.defineProperty(exports, "__esModule", ({ value: true }));
4576
- /* --- Restrictions ------------------------------------------------------------------------------------------------- */
4577
- const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4578
- /* --- Default settings --------------------------------------------------------------------------------------------- */
4579
- const MarkupProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettings__Default.ts"));
4580
- const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
4581
- /* --- Utils -------------------------------------------------------------------------------------------------------- */
4582
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4583
- const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
4584
- class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
4585
- supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = MarkupProcessingRestrictions_1.default.
4586
- supportedSourceFileNameExtensionsWithoutDots;
4587
- lintingCommonSettings;
4588
- static normalize({ markupProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
4589
- const lintingCommonSettings = (0, es_extensions_1.isUndefined)(markupProcessingSettings__fromFile__rawValid.linting) ?
4590
- { isCompletelyDisabled: !MarkupProcessingSettings__Default_1.default.linting.mustExecute } :
4591
- {
4592
- isCompletelyDisabled: markupProcessingSettings__fromFile__rawValid.linting.disableCompletely === true ?
4593
- true : !MarkupProcessingSettings__Default_1.default.linting.mustExecute,
4594
- ...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath) ? {
4595
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
4596
- commonSettings__normalized.projectRootDirectoryAbsolutePath,
4597
- markupProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath
4598
- ], { forwardSlashOnlySeparators: true })
4599
- } : null
4600
- };
4601
- const dataHoldingSelfInstance = new MarkupProcessingRawSettingsNormalizer({
4602
- consumingProjectBuildingMode: commonSettings__normalized.projectBuildingMode,
4603
- consumingProjectRootDirectoryAbsolutePath: commonSettings__normalized.projectRootDirectoryAbsolutePath,
4604
- ...(0, es_extensions_1.isNotUndefined)(commonSettings__normalized.tasksAndSourceFilesSelection) ? {
4605
- entryPointsGroupsIDsSelection: commonSettings__normalized.tasksAndSourceFilesSelection.markupProcessing
4606
- } : {},
4607
- markupProcessingSettings__fromFile__rawValid,
4608
- lintingCommonSettings
4609
- });
4610
- return {
4611
- common: {
4612
- supportedSourceFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedSourceFileNameExtensionsWithoutDots,
4613
- supportedOutputFileNameExtensionsWithoutLeadingDots: MarkupProcessingRestrictions_1.default.supportedOutputFileNameExtensionsWithoutDots,
4614
- waitingForSubsequentFilesWillBeSavedPeriod__seconds: markupProcessingSettings__fromFile__rawValid.common?.waitingForSubsequentFilesWillBeSavedPeriod__seconds ??
4615
- MarkupProcessingSettings__Default_1.default.waitingForOtherFilesWillBeSavedPeriod__seconds
4616
- },
4617
- linting: lintingCommonSettings,
4618
- relevantEntryPointsGroups: dataHoldingSelfInstance.createNormalizedEntryPointsGroupsSettings(markupProcessingSettings__fromFile__rawValid.entryPointsGroups, dataHoldingSelfInstance.
4619
- completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings.
4620
- bind(dataHoldingSelfInstance))
4621
- };
4622
- }
4623
- constructor(namedParameters) {
4624
- super(namedParameters);
4625
- this.lintingCommonSettings = namedParameters.lintingCommonSettings;
4626
- }
4627
- completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings(entryPointsGroupGenericSettings__normalized, entryPointsGroupSettings__rawValid) {
4628
- return {
4629
- ...entryPointsGroupGenericSettings__normalized,
4630
- HTML_Validation: {
4631
- mustExecute: entryPointsGroupSettings__rawValid.HTML_Validation?.disable === true ? false :
4632
- MarkupProcessingSettings__Default_1.default.HTML_Validation.mustExecute
4633
- },
4634
- linting: {
4635
- mustExecute: (() => {
4636
- if (this.lintingCommonSettings.isCompletelyDisabled) {
4637
- return false;
4638
- }
4639
- if ((0, es_extensions_1.isUndefined)(entryPointsGroupSettings__rawValid.linting)) {
4640
- return MarkupProcessingSettings__Default_1.default.linting.mustExecute;
4641
- }
4642
- if ((0, es_extensions_1.isBoolean)(entryPointsGroupSettings__rawValid.linting.disable)) {
4643
- return !entryPointsGroupSettings__rawValid.linting.disable;
4644
- }
4645
- return MarkupProcessingSettings__Default_1.default.linting.mustExecute;
4646
- })()
4647
- },
4648
- accessibilityInspection: {
4649
- mustExecute: entryPointsGroupSettings__rawValid.accessibilityInspection?.disable === true ? false :
4650
- MarkupProcessingSettings__Default_1.default.accessibilityInspection.mustExecute,
4651
- standard: entryPointsGroupSettings__rawValid.accessibilityInspection?.standard ??
4652
- MarkupProcessingSettings__Default_1.default.accessibilityInspection.standard
4653
- },
4654
- mustConvertToHandlebarsInNonStaticPreviewModes: entryPointsGroupSettings__rawValid.
4655
- convertToHandlebarsInNonStaticPreviewModes ?? false
4656
- };
4657
- }
4658
- }
4659
- exports["default"] = MarkupProcessingRawSettingsNormalizer;
4660
-
4661
-
4662
4803
  /***/ }),
4663
4804
 
4664
4805
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts":
@@ -4701,10 +4842,12 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
4701
4842
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
4702
4843
  TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "Markup";
4703
4844
  TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "Markup";
4845
+ TASK_NAME_FOR_LOGGING = "Markup processing";
4704
4846
  prefixOfEntryPointsGroupReference = "@";
4705
4847
  waitingForTheOtherFilesWillBeSavedPeriod__seconds;
4706
4848
  entryPointsGroupsNormalizedSettingsMappedByReferences;
4707
4849
  sourceCodeLintingCommonSettings;
4850
+ staticPreviewSettings;
4708
4851
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap = new Map();
4709
4852
  relevantEntryPointsGroupsSettings;
4710
4853
  sourceCodeProcessingCommonSettings;
@@ -4712,17 +4855,27 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
4712
4855
  super(projectBuildingMasterConfigRepresentative);
4713
4856
  this.sourceCodeProcessingCommonSettings = normalizedMarkupProcessingSettings.common;
4714
4857
  this.sourceCodeLintingCommonSettings = normalizedMarkupProcessingSettings.linting;
4858
+ this.staticPreviewSettings = normalizedMarkupProcessingSettings.staticPreview;
4715
4859
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
4716
4860
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
4717
4861
  supportedSourceFileNameExtensionsWithoutLeadingDots;
4718
4862
  this.waitingForTheOtherFilesWillBeSavedPeriod__seconds = normalizedMarkupProcessingSettings.common.
4719
- waitingForSubsequentFilesWillBeSavedPeriod__seconds;
4863
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds;
4720
4864
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
4721
4865
  `${this.prefixOfEntryPointsGroupReference}${entryPointsGroupSettings.ID}`,
4722
4866
  entryPointsGroupSettings
4723
4867
  ]));
4724
4868
  super.initializeOrUpdatePartialFilesAndEntryPointsRelationsMap();
4725
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
+ }
4726
4879
  }
4727
4880
  exports["default"] = MarkupProcessingSettingsRepresentative;
4728
4881
 
@@ -4742,10 +4895,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4742
4895
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4743
4896
  const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4744
4897
  const MarkupProcessingSettings__Default = {
4745
- waitingForOtherFilesWillBeSavedPeriod__seconds: 1,
4898
+ periodBetweenFileUpdatingAndRebuildingStarting__seconds: 1,
4746
4899
  linting: {
4747
- mustExecute: true,
4748
- isDisabledForEntryPointGroups: false
4900
+ mustExecute: true
4749
4901
  },
4750
4902
  HTML_Validation: {
4751
4903
  mustExecute: true
@@ -4771,11 +4923,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4771
4923
  return (mod && mod.__esModule) ? mod : { "default": mod };
4772
4924
  };
4773
4925
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4774
- /* --- Enumerations ------------------------------------------------------------------------------------------------- */
4775
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
4776
4926
  /* --- Restrictions ------------------------------------------------------------------------------------------------- */
4777
4927
  const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
4778
- /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
4928
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
4929
+ /* --- General utils ------------------------------------------------------------------------------------------------ */
4779
4930
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
4780
4931
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
4781
4932
  * The merging of type/interface and namespace is completely valid TypeScript,
@@ -4791,14 +4942,80 @@ var MarkupProcessingSettings__FromFile__RawValid;
4791
4942
  type: Object,
4792
4943
  required: false,
4793
4944
  properties: {
4794
- [markupProcessingLocalization.common.waitingForSubsequentFilesWillBeSavedPeriod__seconds.KEY]: {
4795
- newName: "waitingForSubsequentFilesWillBeSavedPeriod__seconds",
4945
+ [markupProcessingLocalization.common.periodBetweenFileUpdatingAndRebuildingStarting__seconds.KEY]: {
4946
+ newName: "periodBetweenFileUpdatingAndRebuildingStarting__seconds",
4796
4947
  type: Number,
4797
4948
  required: false,
4798
4949
  numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber
4799
4950
  }
4800
4951
  }
4801
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
+ },
4802
5019
  [markupProcessingLocalization.linting.KEY]: {
4803
5020
  newName: "linting",
4804
5021
  preValidationModifications: es_extensions_1.nullToUndefined,
@@ -4815,19 +5032,6 @@ var MarkupProcessingSettings__FromFile__RawValid;
4815
5032
  type: Object,
4816
5033
  properties: {
4817
5034
  ...sourceCodeProcessingSettingsGenericPropertiesLocalizedSpecification,
4818
- [markupProcessingLocalization.entryPointsGroups.linting.KEY]: {
4819
- newName: "linting",
4820
- preValidationModifications: es_extensions_1.nullToUndefined,
4821
- type: Object,
4822
- required: false,
4823
- properties: {
4824
- [markupProcessingLocalization.entryPointsGroups.linting.disable.KEY]: {
4825
- newName: "disable",
4826
- type: Boolean,
4827
- required: false
4828
- }
4829
- }
4830
- },
4831
5035
  [markupProcessingLocalization.entryPointsGroups.HTML_Validation.KEY]: {
4832
5036
  newName: "HTML_Validation",
4833
5037
  preValidationModifications: es_extensions_1.nullToUndefined,
@@ -4860,8 +5064,8 @@ var MarkupProcessingSettings__FromFile__RawValid;
4860
5064
  }
4861
5065
  }
4862
5066
  },
4863
- [markupProcessingLocalization.entryPointsGroups.convertToHandlebarsInNonStaticPreviewModes.KEY]: {
4864
- newName: "convertToHandlebarsInNonStaticPreviewModes",
5067
+ [markupProcessingLocalization.entryPointsGroups.convertToHandlebarsOnNonStaticPreviewModes.KEY]: {
5068
+ newName: "convertToHandlebarsOnNonStaticPreviewModes",
4865
5069
  type: Boolean,
4866
5070
  required: false
4867
5071
  },
@@ -4869,18 +5073,20 @@ var MarkupProcessingSettings__FromFile__RawValid;
4869
5073
  newName: "buildingModeDependent",
4870
5074
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
4871
5075
  required: true,
5076
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
4872
5077
  minimalEntriesCount: 1,
4873
5078
  keysRenamings: {
4874
5079
  [consumingProjectLocalizedPreDefinedBuildingModes.staticPreview]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
4875
- [consumingProjectLocalizedPreDefinedBuildingModes.development]: ConsumingProjectPreDefinedBuildingModes_1.default.development,
5080
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
4876
5081
  [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectPreDefinedBuildingModes_1.default.testing,
5082
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectPreDefinedBuildingModes_1.default.staging,
4877
5083
  [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectPreDefinedBuildingModes_1.default.production
4878
5084
  },
4879
5085
  value: {
4880
5086
  type: Object,
4881
5087
  properties: {
4882
- [markupProcessingLocalization.entryPointsGroups.buildingModeDependent.outputBaseDirectoryRelativePath.KEY]: {
4883
- newName: "outputBaseDirectoryRelativePath",
5088
+ [markupProcessingLocalization.entryPointsGroups.buildingModeDependent.outputTopDirectoryRelativePath.KEY]: {
5089
+ newName: "outputTopDirectoryRelativePath",
4884
5090
  type: String,
4885
5091
  required: true
4886
5092
  }
@@ -4916,6 +5122,7 @@ const MarkupProcessingSettingsRepresentative_1 = __importDefault(__webpack_requi
4916
5122
  const GulpStreamsBasedSourceCodeProcessor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedSourceCodeProcessor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBasedSourceCodeProcessor.ts"));
4917
5123
  /* --- Gulp plugins ------------------------------------------------------------------------------------------------- */
4918
5124
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
5125
+ const gulp_data_1 = __importDefault(__webpack_require__(/*! gulp-data */ "gulp-data"));
4919
5126
  const gulp_pug_1 = __importDefault(__webpack_require__(/*! gulp-pug */ "gulp-pug"));
4920
5127
  const gulp_intercept_1 = __importDefault(__webpack_require__(/*! gulp-intercept */ "gulp-intercept"));
4921
5128
  const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-prettify */ "gulp-html-prettify"));
@@ -4923,10 +5130,12 @@ const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-p
4923
5130
  const ResourcesReferencesResolverForHTML_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/ResourcesReferencesResolverForHTML/ResourcesReferencesResolverForHTML */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/ResourcesReferencesResolverForHTML/ResourcesReferencesResolverForHTML.ts"));
4924
5131
  const HTML_Validator_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/HTML_Validator/HTML_Validator */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/HTML_Validator/HTML_Validator.ts"));
4925
5132
  const AccessibilityInspector_1 = __importDefault(__webpack_require__(/*! ./Plugins/AccessibilityInspector/AccessibilityInspector */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/AccessibilityInspector/AccessibilityInspector.ts"));
4926
- const removeExtraSpacesFromJapaneseText_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Plugins/removeExtraSpacesFromJapaneseText */ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts"));
5133
+ // import removeExtraSpacesFromJapaneseText from "@MarkupProcessing/Plugins/removeExtraSpacesFromJapaneseText";
4927
5134
  const stream_1 = __webpack_require__(/*! stream */ "stream");
5135
+ const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
4928
5136
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
4929
5137
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5138
+ const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
4930
5139
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
4931
5140
  class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4932
5141
  TASK_NAME_FOR_LOGGING = "Markup processing";
@@ -4938,7 +5147,7 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4938
5147
  }
4939
5148
  const dataHoldingSelfInstance = new MarkupProcessor(masterConfigRepresentative, markupProcessingSettingsRepresentative);
4940
5149
  if (masterConfigRepresentative.isStaticPreviewBuildingMode ||
4941
- masterConfigRepresentative.isDevelopmentBuildingMode) {
5150
+ masterConfigRepresentative.isLocalDevelopmentBuildingMode) {
4942
5151
  dataHoldingSelfInstance.initializeSourceFilesDirectoriesWhichAlwaysWillBeBeingWatchedGlobSelectors();
4943
5152
  dataHoldingSelfInstance.initializeOrUpdateWatchedSourceFilesGlobSelectors();
4944
5153
  dataHoldingSelfInstance.initializeOrUpdateSourceFilesWatcher();
@@ -4960,10 +5169,32 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4960
5169
  pipe(super.printProcessedFilesPathsAndQuantity()).
4961
5170
  pipe(super.handleErrorIfItWillOccur()).
4962
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)).
4963
5194
  pipe((0, gulp_pug_1.default)({
4964
5195
  locals: {
4965
5196
  __IS_STATIC_PREVIEW_BUILDING_MODE__: this.masterConfigRepresentative.isStaticPreviewBuildingMode,
4966
- __IS_DEVELOPMENT_BUILDING_MODE__: this.masterConfigRepresentative.isDevelopmentBuildingMode,
5197
+ __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
4967
5198
  __IS_TESTING_BUILDING_MODE__: this.masterConfigRepresentative.isTestingBuildingMode,
4968
5199
  __IS_STAGING_BUILDING_MODE__: this.masterConfigRepresentative.isStagingBuildingMode,
4969
5200
  __IS_PRODUCTION_BUILDING_MODE__: this.masterConfigRepresentative.isProductionBuildingMode
@@ -4971,7 +5202,7 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4971
5202
  })).
4972
5203
  pipe((0, gulp_intercept_1.default)(this.onRawOutputCode.bind(this))).
4973
5204
  pipe((0, gulp_html_prettify_1.default)({ indent_char: " ", indent_size: 2 })).
4974
- pipe((0, gulp_intercept_1.default)(removeExtraSpacesFromJapaneseText_1.default)).
5205
+ // pipe(gulpIntercept(removeExtraSpacesFromJapaneseText)).
4975
5206
  pipe((0, gulp_intercept_1.default)(this.onPostProcessedCode.bind(this))).
4976
5207
  pipe(gulp_1.default.dest((targetFileInFinalState) => targetFileInFinalState.outputDirectoryAbsolutePath));
4977
5208
  }
@@ -4994,8 +5225,8 @@ class MarkupProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
4994
5225
  const compiledHTML_File = _compiledHTML_File;
4995
5226
  this.markupProcessingConfigRepresentative.
4996
5227
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap.
4997
- set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledHTML_File.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments(compiledHTML_File.outputDirectoryAbsolutePath, compiledHTML_File.basename));
4998
- if (compiledHTML_File.processingSettings.mustConvertToHandlebarsInNonStaticPreviewModes &&
5228
+ set(ImprovedPath_1.default.replacePathSeparatorsToForwardSlashes(compiledHTML_File.sourceAbsolutePath), ImprovedPath_1.default.joinPathSegments([compiledHTML_File.outputDirectoryAbsolutePath, compiledHTML_File.basename], { forwardSlashOnlySeparators: true }));
5229
+ if (compiledHTML_File.processingSettings.mustConvertToHandlebarsOnNonStaticPreviewModes &&
4999
5230
  !this.masterConfigRepresentative.isStaticPreviewBuildingMode) {
5000
5231
  compiledHTML_File.extname = ".hbs";
5001
5232
  }
@@ -5646,7 +5877,7 @@ class ResourcesReferencesResolverForHTML {
5646
5877
  }));
5647
5878
  return null;
5648
5879
  }
5649
- const sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension = ImprovedPath_1.default.joinPathSegments(sourceFilesTopDirectoryAbsolutePathOfCurrentAlias, ...segmentsOfPickedPath.slice(1));
5880
+ const sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension = ImprovedPath_1.default.joinPathSegments([sourceFilesTopDirectoryAbsolutePathOfCurrentAlias, ...segmentsOfPickedPath.slice(1)], { forwardSlashOnlySeparators: true });
5650
5881
  const explicitlySpecifiedSourceFilenameExtension = ImprovedPath_1.default.
5651
5882
  extractLastFilenameExtensionWithoutFirstDot(sourceFileComputedAbsolutePathPossiblyWithoutFileNameExtension);
5652
5883
  if ((0, es_extensions_1.isNull)(explicitlySpecifiedSourceFilenameExtension)) {
@@ -5702,43 +5933,10 @@ exports["default"] = ResourcesReferencesResolverForHTML;
5702
5933
 
5703
5934
  /***/ }),
5704
5935
 
5705
- /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts":
5706
- /*!**************************************************************************************************!*\
5707
- !*** ./ProjectBuilding/SourceCodeProcessing/Markup/Plugins/removeExtraSpacesFromJapaneseText.ts ***!
5708
- \**************************************************************************************************/
5709
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5710
-
5711
-
5712
- var __importDefault = (this && this.__importDefault) || function (mod) {
5713
- return (mod && mod.__esModule) ? mod : { "default": mod };
5714
- };
5715
- Object.defineProperty(exports, "__esModule", ({ value: true }));
5716
- const getExpectedToBeNonNullStringifiedContentOfVinylFile_1 = __importDefault(__webpack_require__(/*! @Utils/getExpectedToBeNonNullStringifiedContentOfVinylFile */ "./Utils/getExpectedToBeNonNullStringifiedContentOfVinylFile.ts"));
5717
- const cheerio_1 = __importDefault(__webpack_require__(/*! cheerio */ "cheerio"));
5718
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5719
- function removeExtraSpacesFromJapaneseText(compiledHTML_File) {
5720
- const $HTML_FileContentCheerioCapturing = cheerio_1.default.
5721
- load((0, getExpectedToBeNonNullStringifiedContentOfVinylFile_1.default)(compiledHTML_File), { decodeEntities: false });
5722
- for (const targetElement of Array.from($HTML_FileContentCheerioCapturing("p"))) {
5723
- const $TargetElement = $HTML_FileContentCheerioCapturing(targetElement);
5724
- const targetElementHTML = $TargetElement.html();
5725
- if ((0, es_extensions_1.isNull)(targetElementHTML)) {
5726
- continue;
5727
- }
5728
- $TargetElement.html(targetElementHTML.replaceAll(/(?<characterBeforeSpace>[^\x20-\x7e]) (?<characterAfterSpace>[^\x20-\x7e])/gu, "$<characterBeforeSpace>$<characterAfterSpace>"));
5729
- }
5730
- compiledHTML_File.contents = Buffer.from($HTML_FileContentCheerioCapturing.html({ decodeEntities: false }));
5731
- return compiledHTML_File;
5732
- }
5733
- exports["default"] = removeExtraSpacesFromJapaneseText;
5734
-
5735
-
5736
- /***/ }),
5737
-
5738
- /***/ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts":
5739
- /*!**********************************************************************************************!*\
5740
- !*** ./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts ***!
5741
- \**********************************************************************************************/
5936
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts":
5937
+ /*!********************************************************************************************************************!*\
5938
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/MarkupProcessingRawSettingsNormalizer.ts ***!
5939
+ \********************************************************************************************************************/
5742
5940
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5743
5941
 
5744
5942
 
@@ -5747,14 +5945,615 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5747
5945
  };
5748
5946
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5749
5947
  /* --- Restrictions ------------------------------------------------------------------------------------------------- */
5750
- const StylesProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRestrictions.ts"));
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"));
5751
5950
  /* --- Default settings --------------------------------------------------------------------------------------------- */
5752
- const StylesProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingSettings__Default.ts"));
5753
- /* --- Third-party solution specialists ----------------------------------------------------------------------------- */
5754
- const StlintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StlintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/StlintLinterSpecialist.ts"));
5755
- /* --- Applied auxiliaries ------------------------------------------------------------------------------------------ */
5756
- const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
5757
- /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
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
+
6535
+ /***/ }),
6536
+
6537
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts":
6538
+ /*!**********************************************************************************************!*\
6539
+ !*** ./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRawSettingsNormalizer.ts ***!
6540
+ \**********************************************************************************************/
6541
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6542
+
6543
+
6544
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6545
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6546
+ };
6547
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
6548
+ /* --- Restrictions ------------------------------------------------------------------------------------------------- */
6549
+ const StylesProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRestrictions.ts"));
6550
+ /* --- Default settings --------------------------------------------------------------------------------------------- */
6551
+ const StylesProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingSettings__Default.ts"));
6552
+ /* --- Third-party solution specialists ----------------------------------------------------------------------------- */
6553
+ const StlintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StlintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/StlintLinterSpecialist.ts"));
6554
+ /* --- Applied auxiliaries ------------------------------------------------------------------------------------------ */
6555
+ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
6556
+ /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
5758
6557
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5759
6558
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
5760
6559
  class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
@@ -5770,7 +6569,7 @@ class StylesProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
5770
6569
  isCompletelyDisabled: stylesProcessingSettings__fromFile__rawValid.linting.disableCompletely === true ?
5771
6570
  true : !StylesProcessingSettings__Default_1.default.linting.mustExecute,
5772
6571
  ...(0, es_extensions_1.isNotUndefined)(stylesProcessingSettings__fromFile__rawValid.linting.presetFileRelativePath) ? {
5773
- presetFileAbsolutePath: ImprovedPath_1.default.buildAbsolutePath([
6572
+ presetFileAbsolutePath: ImprovedPath_1.default.joinPathSegments([
5774
6573
  commonSettings__normalized.projectRootDirectoryAbsolutePath,
5775
6574
  StlintLinterSpecialist_1.default.DEFAULT_CONFIG_FILE_NAME_WITH_EXTENSION
5776
6575
  ], { forwardSlashOnlySeparators: true })
@@ -5871,7 +6670,6 @@ const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @
5871
6670
  /* --- Auxiliaries -------------------------------------------------------------------------------------------------- */
5872
6671
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
5873
6672
  const ImprovedPath_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/ImprovedPath/ImprovedPath */ "./UtilsIncubator/ImprovedPath/ImprovedPath.ts"));
5874
- const PoliteErrorsMessagesBuilder_1 = __importDefault(__webpack_require__(/*! @Utils/PoliteErrorsMessagesBuilder */ "./Utils/PoliteErrorsMessagesBuilder.ts"));
5875
6673
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
5876
6674
  static #localization = {
5877
6675
  targetFilesType: {
@@ -5919,7 +6717,7 @@ class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
5919
6717
  extractLastFilenameExtensionWithoutFirstDot(targetFilePath);
5920
6718
  if ((0, es_extensions_1.isNull)(filenameExtensionOfTargetFile)) {
5921
6719
  es_extensions_1.Logger.throwErrorAndLog({
5922
- errorInstance: new es_extensions_1.UnexpectedEventError(PoliteErrorsMessagesBuilder_1.default.buildMessage({
6720
+ errorInstance: new es_extensions_1.UnexpectedEventError(es_extensions_1.PoliteErrorsMessagesBuilder.buildMessage({
5923
6721
  technicalDetails: StylesProcessingSettingsRepresentative.#localization.errorsMessagesData.
5924
6722
  unableToDecideMustFileBePrecessedByStylusPreProcessorBecauseFileNameExtensionIsMissing.
5925
6723
  generateTechnicalDetails({ filePath: targetFilePath }),
@@ -5975,13 +6773,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5975
6773
  return (mod && mod.__esModule) ? mod : { "default": mod };
5976
6774
  };
5977
6775
  Object.defineProperty(exports, "__esModule", ({ value: true }));
5978
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
6776
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
5979
6777
  exports["default"] = {
5980
6778
  waitingForSubsequentFilesWillBeSavedPeriod__seconds: 1,
5981
6779
  filePathAliasNotation: "@",
5982
6780
  revisioning: {
5983
6781
  mustExecute: (projectBuildingMode__possiblyCustom) => projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview &&
5984
- projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.development,
6782
+ projectBuildingMode__possiblyCustom !== ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
5985
6783
  contentHashPostfixSeparator: "--"
5986
6784
  },
5987
6785
  linting: {
@@ -6004,8 +6802,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6004
6802
  return (mod && mod.__esModule) ? mod : { "default": mod };
6005
6803
  };
6006
6804
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6007
- /* --- Enumerations ------------------------------------------------------------------------------------------------- */
6008
- const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Defaults/ConsumingProjectPreDefinedBuildingModes.ts"));
6805
+ /* --- Restrictions ------------------------------------------------------------------------------------------------- */
6806
+ const ConsumingProjectPreDefinedBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectPreDefinedBuildingModes.ts"));
6009
6807
  /* --- General auxiliaries ------------------------------------------------------------------------------------------ */
6010
6808
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6011
6809
  /* eslint-disable-next-line @typescript-eslint/no-redeclare --
@@ -6070,18 +6868,20 @@ var StylesProcessingSettings__FromFile__RawValid;
6070
6868
  preValidationModifications: es_extensions_1.nullToUndefined,
6071
6869
  type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
6072
6870
  required: true,
6871
+ allowedKeys: Object.values(ConsumingProjectPreDefinedBuildingModes_1.default),
6073
6872
  minimalEntriesCount: 1,
6074
6873
  keysRenamings: {
6075
- [consumingProjectLocalizedPreDefinedBuildingModes.development]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
6076
- [consumingProjectLocalizedPreDefinedBuildingModes.development]: ConsumingProjectPreDefinedBuildingModes_1.default.development,
6874
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.staticPreview,
6875
+ [consumingProjectLocalizedPreDefinedBuildingModes.localDevelopment]: ConsumingProjectPreDefinedBuildingModes_1.default.localDevelopment,
6077
6876
  [consumingProjectLocalizedPreDefinedBuildingModes.testing]: ConsumingProjectPreDefinedBuildingModes_1.default.testing,
6877
+ [consumingProjectLocalizedPreDefinedBuildingModes.staging]: ConsumingProjectPreDefinedBuildingModes_1.default.staging,
6078
6878
  [consumingProjectLocalizedPreDefinedBuildingModes.production]: ConsumingProjectPreDefinedBuildingModes_1.default.production
6079
6879
  },
6080
6880
  value: {
6081
6881
  type: Object,
6082
6882
  properties: {
6083
- [stylesProcessingLocalization.entryPointsGroups.buildingModeDependent.outputBaseDirectoryRelativePath.KEY]: {
6084
- newName: "outputBaseDirectoryRelativePath",
6883
+ [stylesProcessingLocalization.entryPointsGroups.buildingModeDependent.outputTopDirectoryRelativePath.KEY]: {
6884
+ newName: "outputTopDirectoryRelativePath",
6085
6885
  type: String,
6086
6886
  required: true
6087
6887
  },
@@ -6145,7 +6945,7 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6145
6945
  return () => new stream_1.PassThrough().end();
6146
6946
  }
6147
6947
  const dataHoldingSelfInstance = new StylesProcessor(masterConfigRepresentative, stylesProcessingSettingsRepresentative);
6148
- if (masterConfigRepresentative.isStaticPreviewBuildingMode || masterConfigRepresentative.isDevelopmentBuildingMode) {
6948
+ if (masterConfigRepresentative.isStaticPreviewBuildingMode || masterConfigRepresentative.isLocalDevelopmentBuildingMode) {
6149
6949
  dataHoldingSelfInstance.initializeSourceFilesDirectoriesWhichAlwaysWillBeBeingWatchedGlobSelectors();
6150
6950
  dataHoldingSelfInstance.initializeOrUpdateWatchedSourceFilesGlobSelectors();
6151
6951
  dataHoldingSelfInstance.initializeOrUpdateSourceFilesWatcher();
@@ -6168,9 +6968,9 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6168
6968
  pipe(super.handleErrorIfItWillOccur()).
6169
6969
  pipe((0, gulp_intercept_1.default)(this.addActualSourceCodeProcessingSettingsToVinylFile.bind(this))).
6170
6970
  pipe((0, gulp_if_1.default)(this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
6171
- this.masterConfigRepresentative.isDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
6971
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.init())).
6172
6972
  pipe((0, gulp_if_1.default)((file) => file.mustBeProcessedByStylus, (0, gulp_stylus_1.default)({
6173
- /* [ 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. */
6174
6974
  "include css": true
6175
6975
  }))).
6176
6976
  pipe((0, gulp_postcss_1.default)(() => ({
@@ -6181,16 +6981,16 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6181
6981
  "default",
6182
6982
  {
6183
6983
  normalizeWhitespace: !this.masterConfigRepresentative.isStaticPreviewBuildingMode &&
6184
- !this.masterConfigRepresentative.isDevelopmentBuildingMode,
6984
+ !this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
6185
6985
  discardComments: !this.masterConfigRepresentative.isStaticPreviewBuildingMode &&
6186
- !this.masterConfigRepresentative.isDevelopmentBuildingMode
6986
+ !this.masterConfigRepresentative.isLocalDevelopmentBuildingMode
6187
6987
  }
6188
6988
  ]
6189
6989
  })
6190
6990
  ]
6191
6991
  }))).
6192
6992
  pipe((0, gulp_if_1.default)(this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
6193
- this.masterConfigRepresentative.isDevelopmentBuildingMode, gulp_sourcemaps_1.default.write())).
6993
+ this.masterConfigRepresentative.isLocalDevelopmentBuildingMode, gulp_sourcemaps_1.default.write())).
6194
6994
  pipe((0, gulp_intercept_1.default)(this.onPostProcessedCode.bind(this))).
6195
6995
  pipe(gulp_1.default.dest((targetFileInFinalState) => targetFileInFinalState.outputDirectoryAbsolutePath));
6196
6996
  }
@@ -6215,7 +7015,7 @@ class StylesProcessor extends GulpStreamsBasedSourceCodeProcessor_1.default {
6215
7015
  }
6216
7016
  this.stylesProcessingConfigRepresentative.
6217
7017
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap.
6218
- 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 }));
6219
7019
  return compiledStylesheet;
6220
7020
  }
6221
7021
  }
@@ -6247,11 +7047,11 @@ var ChokidarSpecialist;
6247
7047
  })(EventsNames = ChokidarSpecialist.EventsNames || (ChokidarSpecialist.EventsNames = {}));
6248
7048
  function getEventNameInterpretation(eventName) {
6249
7049
  switch (eventName) {
6250
- case EventsNames.fileAdded: return "File added";
6251
- case EventsNames.fileChanged: return "File changed";
6252
- case EventsNames.fileDeleted: return "File deleted";
6253
- case EventsNames.directoryAdded: return "Directory added";
6254
- 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";
6255
7055
  case EventsNames.errorOccurred: return "Error occurred";
6256
7056
  case EventsNames.initialScanComplete: return "Initial scan complete";
6257
7057
  default: return eventName;
@@ -6398,6 +7198,7 @@ class ImprovedGlob {
6398
7198
  es_extensions_1.Logger.throwErrorAndLog({
6399
7199
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6400
7200
  parameterName: "parametersObject.filesNamesPrefixes",
7201
+ parameterNumber: 1,
6401
7202
  messageSpecificPart: "If must be define at leas element of 'filesNamesPrefixes'."
6402
7203
  }),
6403
7204
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6408,6 +7209,7 @@ class ImprovedGlob {
6408
7209
  es_extensions_1.Logger.throwErrorAndLog({
6409
7210
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6410
7211
  parameterName: "parametersObject.filesNamesExtensions",
7212
+ parameterNumber: 1,
6411
7213
  messageSpecificPart: "If must be define at leas element of 'filesNamesExtensions'."
6412
7214
  }),
6413
7215
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6425,6 +7227,7 @@ class ImprovedGlob {
6425
7227
  es_extensions_1.Logger.throwErrorAndLog({
6426
7228
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6427
7229
  parameterName: "parametersObject.subdirectoriesPrefixes",
7230
+ parameterNumber: 1,
6428
7231
  messageSpecificPart: "If must be define at leas element of 'subdirectoriesPrefixes'."
6429
7232
  }),
6430
7233
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6444,6 +7247,7 @@ class ImprovedGlob {
6444
7247
  es_extensions_1.Logger.throwErrorAndLog({
6445
7248
  errorInstance: new es_extensions_1.InvalidParameterValueError({
6446
7249
  parameterName: "parametersObject.subdirectoriesNames",
7250
+ parameterNumber: 1,
6447
7251
  messageSpecificPart: "If must be define at leas element of 'subdirectoriesNames'."
6448
7252
  }),
6449
7253
  title: es_extensions_1.InvalidParameterValueError.localization.defaultTitle,
@@ -6463,6 +7267,12 @@ class ImprovedGlob {
6463
7267
  static createMultipleFilenameExtensionsGlobPostfix(fileNamesExtensions) {
6464
7268
  return `.@(${fileNamesExtensions.join("|").replace(/\./gu, "")})`;
6465
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
+ }
6466
7276
  static isExcludingGlobSelector(globSelector) {
6467
7277
  if (globSelector.length === 0) {
6468
7278
  return false;
@@ -6489,11 +7299,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6489
7299
  const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
6490
7300
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6491
7301
  class ImprovedPath {
6492
- static buildAbsolutePath(pathSegments, options) {
6493
- return options?.forwardSlashOnlySeparators === true ?
6494
- (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.resolve(...pathSegments)) :
6495
- path_1.default.resolve(...pathSegments);
6496
- }
6497
7302
  static parsePath(targetPath, options) {
6498
7303
  const parsedPath = path_1.default.parse(targetPath);
6499
7304
  const root = options?.forwardSlashOnlySeparators === true ?
@@ -6622,8 +7427,10 @@ class ImprovedPath {
6622
7427
  static computeRelativePath(parametersObject) {
6623
7428
  return (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(path_1.default.relative(parametersObject.basePath, parametersObject.comparedPath));
6624
7429
  }
6625
- static joinPathSegments(...pathSegments) {
6626
- 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);
6627
7434
  }
6628
7435
  static splitPathToSegments(targetPath) {
6629
7436
  return path_1.default.normalize(targetPath).split(path_1.default.sep);
@@ -6669,7 +7476,7 @@ class ImprovedPath {
6669
7476
  predicate: (pathSegment) => targetPathSegments.includes(pathSegment),
6670
7477
  mutably: true
6671
7478
  });
6672
- return ImprovedPath.joinPathSegments(...targetPath__splitToSegments);
7479
+ return ImprovedPath.joinPathSegments(targetPath__splitToSegments, { forwardSlashOnlySeparators: true });
6673
7480
  }
6674
7481
  static isFilenameExtensionIs(targetFilePath, _filenameExtensions) {
6675
7482
  let filenameExtensions;
@@ -6694,71 +7501,395 @@ class ImprovedPath {
6694
7501
  static getCurrentWorkDirectory() {
6695
7502
  return (0, es_extensions_1.replaceDoubleBackslashesWithForwardSlashes)(process.cwd());
6696
7503
  }
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
+ })}`;
7512
+ }
6697
7513
  }
6698
7514
  exports["default"] = ImprovedPath;
6699
7515
 
6700
7516
 
6701
7517
  /***/ }),
6702
7518
 
6703
- /***/ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandError.ts":
6704
- /*!*********************************************************************!*\
6705
- !*** ./UtilsIncubator/Logging/Errors/InvalidConsoleCommandError.ts ***!
6706
- \*********************************************************************/
6707
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7519
+ /***/ "./UtilsIncubator/Stopwatch.ts":
7520
+ /*!*************************************!*\
7521
+ !*** ./UtilsIncubator/Stopwatch.ts ***!
7522
+ \*************************************/
7523
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6708
7524
 
6709
7525
 
6710
- var __importDefault = (this && this.__importDefault) || function (mod) {
6711
- return (mod && mod.__esModule) ? mod : { "default": mod };
6712
- };
6713
7526
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6714
- const InvalidConsoleCommandErrorLocalization__English_1 = __importDefault(__webpack_require__(/*! ./InvalidConsoleCommandErrorLocalization__English */ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts"));
6715
- class InvalidConsoleCommandError extends Error {
6716
- static NAME = "InvalidConsoleCommandError";
6717
- static get DEFAULT_TITLE() {
6718
- return InvalidConsoleCommandError.localization.defaultTitle;
6719
- }
6720
- static localization = InvalidConsoleCommandErrorLocalization__English_1.default;
6721
- constructor(namedParameters) {
6722
- super();
6723
- this.name = InvalidConsoleCommandError.NAME;
6724
- if ("customMessage" in namedParameters) {
6725
- this.message = namedParameters.customMessage;
6726
- }
6727
- else {
6728
- this.message = InvalidConsoleCommandError.localization.generateDescription(namedParameters);
6729
- }
6730
- }
6731
- }
6732
- exports["default"] = InvalidConsoleCommandError;
6733
-
7527
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
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
+
6734
7552
 
6735
7553
  /***/ }),
6736
7554
 
6737
- /***/ "./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts":
6738
- /*!******************************************************************************************!*\
6739
- !*** ./UtilsIncubator/Logging/Errors/InvalidConsoleCommandErrorLocalization__English.ts ***!
6740
- \******************************************************************************************/
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
+ \*****************************************/
6741
7636
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6742
7637
 
6743
7638
 
6744
7639
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6745
7640
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6746
- const InvalidConsoleCommandErrorLocalization__English = {
6747
- defaultTitle: "Invalid console command",
6748
- generateDescription: (parametersObject) => `Invalid console command for the application '${parametersObject.applicationName}'` +
6749
- `${(0, es_extensions_1.insertSubstring)(parametersObject.messageSpecificPart, {
6750
- modifier: (messageSpecificPart) => `\n${messageSpecificPart}`
6751
- })}`
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 };
6752
7672
  };
6753
- exports["default"] = InvalidConsoleCommandErrorLocalization__English;
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;
6754
7741
 
6755
7742
 
6756
7743
  /***/ }),
6757
7744
 
6758
- /***/ "./UtilsIncubator/PartialsFilesMapper.ts":
6759
- /*!***********************************************!*\
6760
- !*** ./UtilsIncubator/PartialsFilesMapper.ts ***!
6761
- \***********************************************/
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
+ \**************************************/
6762
7893
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
6763
7894
 
6764
7895
 
@@ -6771,7 +7902,7 @@ const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @Thi
6771
7902
  const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist.ts"));
6772
7903
  /* --- General utils ---------------------------------------------------------------------------------------------- */
6773
7904
  const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
6774
- 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"));
6775
7906
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6776
7907
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6777
7908
  const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
@@ -6913,13 +8044,13 @@ class PartialsFilesMapper {
6913
8044
  const possibleAbsolutePathsOfTargetPartialFile = [];
6914
8045
  const filenameExtensionOfTargetPartialFile__notNullIfExplicitlySpecified = ImprovedPath_1.default.extractLastFilenameExtensionWithoutFirstDot(targetPartialFilePathRelativeToParentFileDirectory);
6915
8046
  if ((0, es_extensions_1.isNull)(filenameExtensionOfTargetPartialFile__notNullIfExplicitlySpecified)) {
6916
- possibleAbsolutePathsOfTargetPartialFile.push(...implicitFilenameExtensionsOfPartialsForCurrentFileType.map((partialFileImplicitFilenameExtension) => ImprovedPath_1.default.buildAbsolutePath([
8047
+ possibleAbsolutePathsOfTargetPartialFile.push(...implicitFilenameExtensionsOfPartialsForCurrentFileType.map((partialFileImplicitFilenameExtension) => ImprovedPath_1.default.joinPathSegments([
6917
8048
  directoryAbsolutePathOfParentOfTargetPartialFile,
6918
8049
  `${targetPartialFilePathRelativeToParentFileDirectory}.${partialFileImplicitFilenameExtension}`
6919
8050
  ], { forwardSlashOnlySeparators: true })));
6920
8051
  }
6921
8052
  else {
6922
- possibleAbsolutePathsOfTargetPartialFile.push(ImprovedPath_1.default.buildAbsolutePath([directoryAbsolutePathOfParentOfTargetPartialFile, targetPartialFilePathRelativeToParentFileDirectory], { forwardSlashOnlySeparators: true }));
8053
+ possibleAbsolutePathsOfTargetPartialFile.push(ImprovedPath_1.default.joinPathSegments([directoryAbsolutePathOfParentOfTargetPartialFile, targetPartialFilePathRelativeToParentFileDirectory], { forwardSlashOnlySeparators: true }));
6923
8054
  }
6924
8055
  for (const possibleAbsolutePathOfTargetPartialFile of possibleAbsolutePathsOfTargetPartialFile) {
6925
8056
  if (fs_1.default.existsSync(possibleAbsolutePathOfTargetPartialFile)) {
@@ -6972,170 +8103,19 @@ exports["default"] = PartialsFilesMapper;
6972
8103
 
6973
8104
  /***/ }),
6974
8105
 
6975
- /***/ "./UtilsIncubator/Stopwatch.ts":
6976
- /*!*************************************!*\
6977
- !*** ./UtilsIncubator/Stopwatch.ts ***!
6978
- \*************************************/
8106
+ /***/ "./Utils/createImmediatelyEndingEmptyStream.ts":
8107
+ /*!*****************************************************!*\
8108
+ !*** ./Utils/createImmediatelyEndingEmptyStream.ts ***!
8109
+ \*****************************************************/
6979
8110
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6980
8111
 
6981
8112
 
6982
8113
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6983
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6984
- class Stopwatch {
6985
- activationUnixTimestamp__milliseconds = 0;
6986
- deactivationUnixTimestamp__milliseconds = 0;
6987
- startOrRestart() {
6988
- if (this.activationUnixTimestamp__milliseconds === 0) {
6989
- this.activationUnixTimestamp__milliseconds = Date.now();
6990
- }
6991
- return this;
6992
- }
6993
- stop() {
6994
- this.deactivationUnixTimestamp__milliseconds = Date.now();
6995
- const amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds = this.deactivationUnixTimestamp__milliseconds - this.activationUnixTimestamp__milliseconds;
6996
- return {
6997
- seconds: (0, es_extensions_1.millisecondsToSeconds)(amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds),
6998
- milliseconds: amountOfTimeElapsesBetweenActivationAndDeactivation__milliseconds
6999
- };
7000
- }
7001
- reset() {
7002
- this.activationUnixTimestamp__milliseconds = 0;
7003
- this.deactivationUnixTimestamp__milliseconds = 0;
7004
- }
7005
- }
7006
- exports["default"] = Stopwatch;
7007
-
7008
-
7009
- /***/ }),
7010
-
7011
- /***/ "./UtilsIncubator/removeSlashes.ts":
7012
- /*!*****************************************!*\
7013
- !*** ./UtilsIncubator/removeSlashes.ts ***!
7014
- \*****************************************/
7015
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7016
-
7017
-
7018
- var __importDefault = (this && this.__importDefault) || function (mod) {
7019
- return (mod && mod.__esModule) ? mod : { "default": mod };
7020
- };
7021
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7022
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7023
- const removeSpecificCharacterInLastPosition_1 = __importDefault(__webpack_require__(/*! ./removeSpecificCharacterInLastPosition */ "./UtilsIncubator/removeSpecificCharacterInLastPosition.ts"));
7024
- function removeSlashes(targetString, options) {
7025
- let transformingWorkpiece = targetString;
7026
- if (options.leading && transformingWorkpiece.startsWith("/")) {
7027
- transformingWorkpiece = (0, es_extensions_1.removeNthCharacter)(transformingWorkpiece, {
7028
- targetCharacterNumber: 0,
7029
- numerationFrom: 0
7030
- });
7031
- }
7032
- if (options.trailing && transformingWorkpiece.endsWith("/")) {
7033
- transformingWorkpiece = (0, removeSpecificCharacterInLastPosition_1.default)(transformingWorkpiece, "/");
7034
- }
7035
- return transformingWorkpiece;
7036
- }
7037
- exports["default"] = removeSlashes;
7038
-
7039
-
7040
- /***/ }),
7041
-
7042
- /***/ "./UtilsIncubator/removeSpecificCharacterInLastPosition.ts":
7043
- /*!*****************************************************************!*\
7044
- !*** ./UtilsIncubator/removeSpecificCharacterInLastPosition.ts ***!
7045
- \*****************************************************************/
7046
- /***/ ((__unused_webpack_module, exports) => {
7047
-
7048
-
7049
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7050
- function removeSpecificCharacterInLastPosition(targetString, targetCharacter) {
7051
- return targetString.endsWith(targetCharacter) ? targetString.slice(0, -1) : targetString;
7052
- }
7053
- exports["default"] = removeSpecificCharacterInLastPosition;
7054
-
7055
-
7056
- /***/ }),
7057
-
7058
- /***/ "./Utils/FileNameRevisionPostfixer.ts":
7059
- /*!********************************************!*\
7060
- !*** ./Utils/FileNameRevisionPostfixer.ts ***!
7061
- \********************************************/
7062
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7063
-
7064
-
7065
- var __importDefault = (this && this.__importDefault) || function (mod) {
7066
- return (mod && mod.__esModule) ? mod : { "default": mod };
7067
- };
7068
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7069
- const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7070
- const rev_hash_1 = __importDefault(__webpack_require__(/*! rev-hash */ "../node_modules/rev-hash/index.js"));
7071
- class FileNameRevisionPostfixer {
7072
- static appendPostfixIfPossible(targetFile, options) {
7073
- if ((0, es_extensions_1.isNull)(targetFile.contents)) {
7074
- es_extensions_1.Logger.logWarning({
7075
- title: "Unable to add revision hash",
7076
- description: `The 'content' property of Target Vinyl file '${targetFile.path}' is null.`
7077
- });
7078
- return;
7079
- }
7080
- if (!(targetFile.contents instanceof Buffer)) {
7081
- es_extensions_1.Logger.throwErrorAndLog({
7082
- errorInstance: new es_extensions_1.UnexpectedEventError(`The 'contents' property of target Vynil file '${targetFile.path}' is not an instance of 'Buffer'.` +
7083
- "Because usually it is the instance of Buffer, explorations are required."),
7084
- title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
7085
- occurrenceLocation: "FileNameRevisionPostfixer.appendPostfixIfPossible(targetFile, options)",
7086
- additionalData: targetFile
7087
- });
7088
- }
7089
- targetFile.stem = `${targetFile.stem}${options.contentHashPostfixSeparator}` +
7090
- `${(0, rev_hash_1.default)(targetFile.contents)}`;
7091
- }
7092
- }
7093
- exports["default"] = FileNameRevisionPostfixer;
7094
-
7095
-
7096
- /***/ }),
7097
-
7098
- /***/ "./Utils/PoliteErrorsMessagesBuilder.ts":
7099
- /*!**********************************************!*\
7100
- !*** ./Utils/PoliteErrorsMessagesBuilder.ts ***!
7101
- \**********************************************/
7102
- /***/ ((__unused_webpack_module, exports) => {
7103
-
7104
-
7105
- Object.defineProperty(exports, "__esModule", ({ value: true }));
7106
- class PoliteErrorsMessagesBuilder {
7107
- static isTechnicalsDetailOnlyMode = false;
7108
- static localization = PoliteErrorsMessagesBuilder.getDefaultLocalization();
7109
- static buildMessage(parametersObject) {
7110
- return PoliteErrorsMessagesBuilder.localization.buildMessage({
7111
- ...parametersObject,
7112
- isTechnicalDetailOnlyMode: PoliteErrorsMessagesBuilder.isTechnicalsDetailOnlyMode
7113
- });
7114
- }
7115
- static setLocalization(newLocalization) {
7116
- this.localization = newLocalization;
7117
- }
7118
- static setTechnicalDetailsOnlyMode() {
7119
- PoliteErrorsMessagesBuilder.isTechnicalsDetailOnlyMode = true;
7120
- }
7121
- static getDefaultLocalization() {
7122
- return {
7123
- buildMessage({ technicalDetails, politeExplanation, isTechnicalDetailOnlyMode }) {
7124
- if (isTechnicalDetailOnlyMode) {
7125
- return technicalDetails;
7126
- }
7127
- return "We are sorry, but it is a bug. We apologize for any inconvenience. 🙇‍♂️\n" +
7128
- "Please consider the opening issue on official GitHub repository: " +
7129
- "https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation \n" +
7130
- "--- What happened? -----------------------------------------------------------------------------------\n" +
7131
- `${politeExplanation}` +
7132
- "--- Technical information --------------------------------------------------------------------------- \n" +
7133
- `${technicalDetails}`;
7134
- }
7135
- };
7136
- }
8114
+ const stream_1 = __webpack_require__(/*! stream */ "stream");
8115
+ function createImmediatelyEndingEmptyStream() {
8116
+ return () => new stream_1.PassThrough().end();
7137
8117
  }
7138
- exports["default"] = PoliteErrorsMessagesBuilder;
8118
+ exports["default"] = createImmediatelyEndingEmptyStream;
7139
8119
 
7140
8120
 
7141
8121
  /***/ }),
@@ -7149,6 +8129,7 @@ exports["default"] = PoliteErrorsMessagesBuilder;
7149
8129
 
7150
8130
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7151
8131
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
8132
+ // TODO 今の内に修正
7152
8133
  function getExpectedToBeNonNullStringifiedContentOfVinylFile(targetFile) {
7153
8134
  if (targetFile.contents === null) {
7154
8135
  es_extensions_1.Logger.throwErrorAndLog({
@@ -7316,6 +8297,16 @@ module.exports = require("gulp");
7316
8297
 
7317
8298
  /***/ }),
7318
8299
 
8300
+ /***/ "gulp-data":
8301
+ /*!****************************!*\
8302
+ !*** external "gulp-data" ***!
8303
+ \****************************/
8304
+ /***/ ((module) => {
8305
+
8306
+ module.exports = require("gulp-data");
8307
+
8308
+ /***/ }),
8309
+
7319
8310
  /***/ "gulp-debug":
7320
8311
  /*!*****************************!*\
7321
8312
  !*** external "gulp-debug" ***!
@@ -7456,6 +8447,46 @@ module.exports = require("node-notifier");
7456
8447
 
7457
8448
  /***/ }),
7458
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
+
7459
8490
  /***/ "vue-loader":
7460
8491
  /*!*****************************!*\
7461
8492
  !*** external "vue-loader" ***!