@yamato-daiwa/automation 0.5.0-alpha.0 → 0.5.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/EntryPoint.js +736 -211
  2. package/package.json +1 -1
package/EntryPoint.js CHANGED
@@ -3948,10 +3948,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3948
3948
  return (mod && mod.__esModule) ? mod : { "default": mod };
3949
3949
  };
3950
3950
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3951
- /* ─── Settings representatives ──────────────────────────────────────────────────────────────────────────────────── */
3951
+ /* ─── Settings Representatives ───────────────────────────────────────────────────────────────────────────────────── */
3952
3952
  const AssetsProcessingSettingsRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/AssetsProcessingSettingsRepresentative.ts"));
3953
3953
  const VinylFileClass_1 = __importDefault(__webpack_require__(/*! @Utils/VinylFileClass */ "./Utils/VinylFileClass.ts"));
3954
- /* ─── Utils ─────────────────────────────────────────────────────────────────────────────────────────────────────── */
3954
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
3955
3955
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
3956
3956
  class AssetVinylFile extends VinylFileClass_1.default {
3957
3957
  sourceAbsolutePath;
@@ -4410,7 +4410,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4410
4410
  return (mod && mod.__esModule) ? mod : { "default": mod };
4411
4411
  };
4412
4412
  Object.defineProperty(exports, "__esModule", ({ value: true }));
4413
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
4413
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
4414
4414
  const ChokidarSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist */ "./ThirdPartySolutionsSpecialists/Chokidar/ChokidarSpecialist.ts"));
4415
4415
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
4416
4416
  const gulp_1 = __importDefault(__webpack_require__(/*! gulp */ "gulp"));
@@ -6403,14 +6403,16 @@ var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1
6403
6403
  const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes */ "./ProjectBuilding/Common/Restrictions/ConsumingProjectBuildingModes.ts"));
6404
6404
  /* ─── Default Settings ───────────────────────────────────────────────────────────────────────────────────────────── */
6405
6405
  const ECMA_ScriptLogicProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingSettings__Default.ts"));
6406
- /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
6406
+ /* ─── Settings Normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
6407
6407
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
6408
6408
  const RevisioningSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/RawSettingsNormalizers/Reusables/RevisioningSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/Reusables/RevisioningSettingsNormalizer.ts"));
6409
- /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
6409
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
6410
+ const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
6410
6411
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
6411
6412
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6412
6413
  class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSettingsNormalizer_1.default {
6413
6414
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = ECMA_ScriptLogicProcessingRestrictions_1.default.supportedSourceFilesNamesExtensionsWithoutLeadingDots;
6415
+ cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions = new Map();
6414
6416
  static normalize({ ECMA_ScriptLogicProcessingSettings__fromFile__rawValid, commonSettings__normalized }) {
6415
6417
  const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessingRawSettingsNormalizer({
6416
6418
  projectBuildingCommonSettings__normalized: commonSettings__normalized,
@@ -6460,6 +6462,15 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6460
6462
  }
6461
6463
  completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilECMA_ScriptLogicEntryPointsGroupNormalizedSettings(entryPointsGroupGenericSettings__normalized, entryPointsGroupSettings__rawValid) {
6462
6464
  const distributingSettings__rawValid = entryPointsGroupSettings__rawValid.distributing;
6465
+ const typeScriptConfigurationFileRelativePath = es_extensions_nodejs_1.ImprovedPath.replacePathSeparatorsToForwardSlashes(entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath ??
6466
+ ECMA_ScriptLogicProcessingSettings__Default_1.default.typeScriptConfigurationFileRelativePath);
6467
+ const typeScriptConfigurationFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([this.consumingProjectRootDirectoryAbsolutePath, typeScriptConfigurationFileRelativePath], { alwaysForwardSlashSeparators: true });
6468
+ const typeScriptCompilerOptions = this.cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions.
6469
+ get(typeScriptConfigurationFileRelativePath) ??
6470
+ this.readAndCacheTypeScriptCompilerOptions({
6471
+ typeScriptConfigurationFileAbsolutePath,
6472
+ typeScriptConfigurationFileRelativePath
6473
+ });
6463
6474
  return {
6464
6475
  ...entryPointsGroupGenericSettings__normalized,
6465
6476
  targetRuntime: (() => {
@@ -6498,11 +6509,10 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6498
6509
  associatedMarkupEntryPointsGroupID_ForDynamicModulesLoadingWithoutDevelopmentServer: entryPointsGroupSettings__rawValid.
6499
6510
  associatedMarkupEntryPointsGroupID_ForDynamicModulesLoadingWithoutDevelopmentServer
6500
6511
  } : null,
6501
- typeScriptConfigurationFileAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6502
- this.consumingProjectRootDirectoryAbsolutePath,
6503
- entryPointsGroupSettings__rawValid.typeScriptConfigurationFileRelativePath ??
6504
- ECMA_ScriptLogicProcessingSettings__Default_1.default.typeScriptConfigurationFileRelativePath
6505
- ], { alwaysForwardSlashSeparators: true }),
6512
+ typeScriptConfigurationFileAbsolutePath,
6513
+ typeScriptCompilerOptions,
6514
+ directoriesAliasesAndCorrespondingAbsolutePathsMap: ECMA_ScriptLogicProcessingRawSettingsNormalizer.
6515
+ createDirectoriesAliasesAndCorrespondingAbsolutePathsMap(typeScriptConfigurationFileAbsolutePath, typeScriptCompilerOptions),
6506
6516
  revisioning: RevisioningSettingsNormalizer_1.default.normalize({
6507
6517
  revisioningSettings__rawValid: entryPointsGroupSettings__rawValid.
6508
6518
  buildingModeDependent[this.consumingProjectBuildingMode].revisioning,
@@ -6552,6 +6562,24 @@ class ECMA_ScriptLogicProcessingRawSettingsNormalizer extends SourceCodeProcessi
6552
6562
  }
6553
6563
  };
6554
6564
  }
6565
+ readAndCacheTypeScriptCompilerOptions({ typeScriptConfigurationFileAbsolutePath, typeScriptConfigurationFileRelativePath }) {
6566
+ const typeScriptCompilerOptions = TypeScriptSpecialist_1.default.
6567
+ readTypeScriptConfigurationFileAndGetCompilerOptions(typeScriptConfigurationFileAbsolutePath);
6568
+ this.cachedTypeScriptConfigurationsFilesRelativePathsAndCorrespondingCompilersOptions.set(typeScriptConfigurationFileRelativePath, typeScriptCompilerOptions);
6569
+ return typeScriptCompilerOptions;
6570
+ }
6571
+ static createDirectoriesAliasesAndCorrespondingAbsolutePathsMap(typeScriptConfigurationFileAbsolutePath, typeScriptCompilerOptions) {
6572
+ /* [ TypeScript theory ] If `baseUrl` has been specified in configuration file, once parsed, it will be the
6573
+ + absolute path herewith forward slashes path separators. */
6574
+ const typeScriptBasicAbsolutePath = typeScriptCompilerOptions.baseUrl ?? typeScriptConfigurationFileAbsolutePath;
6575
+ return new Map(Object.entries(typeScriptCompilerOptions.paths ?? {}).map(([rawAlias, rawPaths]) => [
6576
+ rawAlias.endsWith("/*") ? rawAlias.slice(0, -"/*".length) : rawAlias,
6577
+ rawPaths.map((rawPath) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
6578
+ typeScriptBasicAbsolutePath,
6579
+ ...rawPath.endsWith("/*") ? [rawPath.slice(0, -"/*".length)] : [rawPath]
6580
+ ], { alwaysForwardSlashSeparators: true }))
6581
+ ]));
6582
+ }
6555
6583
  }
6556
6584
  exports["default"] = ECMA_ScriptLogicProcessingRawSettingsNormalizer;
6557
6585
 
@@ -6975,77 +7003,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6975
7003
  };
6976
7004
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6977
7005
  const ECMA_ScriptLogicProcessingSharedState_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingSharedState */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingSharedState.ts"));
7006
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
7007
+ const ECMA_ScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist */ "./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts"));
6978
7008
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
6979
7009
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
6980
7010
  const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/WebpackConfigGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/WebpackConfigGenerator.ts"));
6981
7011
  const ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator.ts"));
6982
7012
  const ECMA_ScriptSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptSourceFilesWatcher.ts"));
6983
7013
  const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
7014
+ const SourceCodeSelectiveReprocessingHelper_1 = __importDefault(__webpack_require__(/*! @Utils/SourceCodeSelectiveReprocessingHelper */ "./Utils/SourceCodeSelectiveReprocessingHelper.ts"));
7015
+ const DotYDA_DirectoryManager_1 = __importDefault(__webpack_require__(/*! @Utils/DotYDA_DirectoryManager */ "./Utils/DotYDA_DirectoryManager.ts"));
6984
7016
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
6985
7017
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7018
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
6986
7019
  class ECMA_ScriptLogicProcessor {
7020
+ static ENTRY_POINTS_AND_PARTIAL_FILES_MAPPING_CACHE_FILE_NAME_WITH_EXTENSION = "ECMA_ScriptEntryPointsAndAffiliatedFilesMappingCache.json";
6987
7021
  TASK_NAME_FOR_LOGGING = "ECMAScript logic processing";
6988
7022
  masterConfigRepresentative;
6989
7023
  ECMA_ScriptLogicProcessingConfigRepresentative;
7024
+ absolutePathOfFilesWaitingForReProcessing = new Set();
7025
+ sourceCodeSelectiveReprocessingHelper;
7026
+ subsequentFilesStateChangeTimeout = null;
6990
7027
  static provideLogicProcessingIfMust(projectBuildingMasterConfigRepresentative) {
6991
7028
  const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
6992
7029
  if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
6993
7030
  return (callback) => { callback(); };
6994
7031
  }
6995
7032
  const dataHoldingSelfInstance = new ECMA_ScriptLogicProcessor(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6996
- const webpackConfigurationSets = WebpackConfigGenerator_1.default.
6997
- generateWebpackConfigurationForEachEntryPointsGroup(ecmaScriptLogicProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative);
6998
- return (callback) => {
7033
+ const webpackConfigurationsForExistingEntryPoints = [];
7034
+ const entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap = new Map();
7035
+ for (const [index, ECMA_ScriptLogicEntryPointsGroupSettings] of Array.from(ecmaScriptLogicProcessingSettingsRepresentative.relevantEntryPointsGroupsSettings.values()).entries()) {
7036
+ const entryPointsSourceFileAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(ECMA_ScriptLogicEntryPointsGroupSettings.sourceFilesGlobSelectors, { alwaysForwardSlashSeparators: true });
7037
+ if (entryPointsSourceFileAbsolutePaths.length === 0) {
7038
+ es_extensions_1.Logger.logWarning({
7039
+ title: "ECMAScript logic Entry Points Not Found",
7040
+ description: `No ECMAScript entry points has been found for group "${ECMA_ScriptLogicEntryPointsGroupSettings.ID}".` +
7041
+ "Please restart the project building once they will be added."
7042
+ });
7043
+ continue;
7044
+ }
7045
+ webpackConfigurationsForExistingEntryPoints.push(WebpackConfigGenerator_1.default.generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({
7046
+ entryPointsSourceFilesAbsolutePaths: entryPointsSourceFileAbsolutePaths,
7047
+ ECMA_ScriptLogicEntryPointsGroupSettings,
7048
+ ECMA_ScriptLogicProcessingConfigRepresentative: ecmaScriptLogicProcessingSettingsRepresentative,
7049
+ masterConfigRepresentative: projectBuildingMasterConfigRepresentative,
7050
+ mustProvideTypeScriptTypeChecking: index === 0
7051
+ }));
7052
+ (0, es_extensions_1.addMultiplePairsToMap)(entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap, entryPointsSourceFileAbsolutePaths.map((entryPointsSourceFileAbsolutePath) => [entryPointsSourceFileAbsolutePath, ECMA_ScriptLogicEntryPointsGroupSettings.ID]));
7053
+ }
7054
+ return (gulpCallback) => {
6999
7055
  try {
7000
7056
  /* [ Webpack theory ] Although there is no `null` hardError is type definitions, the `hardError` could be null. */
7001
- (0, webpack_1.default)(webpackConfigurationSets, (hardError, statistics) => {
7002
- if ((0, es_extensions_1.isNotUndefined)(statistics)) {
7003
- process.stdout.write(`${statistics.toString({ colors: true })}\n`);
7004
- }
7005
- let finalErrorMessageDynamicPart;
7006
- /* [ Webpack theory ] Even there is no hard error braking the build, there are could be the soft errors. */
7007
- const softErrors = (0, es_extensions_1.undefinedToEmptyArray)(statistics?.stats[0]?.compilation.errors);
7008
- if ((0, es_extensions_1.isNeitherUndefinedNorNull)(hardError)) {
7009
- finalErrorMessageDynamicPart = hardError.message;
7010
- }
7011
- else if (softErrors.length > 0) {
7012
- finalErrorMessageDynamicPart = softErrors.toString();
7013
- }
7014
- if ((0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7015
- es_extensions_1.Logger.logError({
7016
- errorType: "ECMA_ScriptLogicProcessingError",
7017
- title: "ECMAScript logic processing error",
7018
- description: finalErrorMessageDynamicPart,
7019
- occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7020
- });
7021
- node_notifier_1.default.notify({
7022
- title: "ECMAScript logic processing",
7023
- message: "Error has occurred. Please check the console."
7024
- });
7025
- }
7026
- if (dataHoldingSelfInstance.masterConfigRepresentative.mustProvideIncrementalBuilding) {
7027
- ECMA_ScriptSourceFilesWatcher_1.default.initializeIfRequiredAndGetInstance({
7028
- ecmaScriptLogicProcessingSettingsRepresentative: dataHoldingSelfInstance.
7029
- ECMA_ScriptLogicProcessingConfigRepresentative,
7030
- projectBuildingMasterConfigRepresentative: dataHoldingSelfInstance.masterConfigRepresentative
7031
- });
7032
- }
7033
- /** 〔 納品版のみ理由 〕 開発版で同じ事をすれば、gulpが落ちる */
7034
- if (!dataHoldingSelfInstance.masterConfigRepresentative.mustProvideIncrementalBuilding &&
7035
- (0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7036
- es_extensions_1.Logger.logError({
7037
- errorType: "ECMA_ScriptLogicProcessingError",
7038
- title: "ECMAScript logic processing error",
7039
- description: "Unable to production build.",
7040
- occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7041
- });
7042
- callback(new Error(finalErrorMessageDynamicPart));
7043
- }
7044
- else {
7045
- (0, es_extensions_1.addMultiplePairsToMap)(ECMA_ScriptLogicProcessingSharedState_1.default.sourceFilesAbsolutePathsAndOutputFilesActualPathsMap, ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1.default.generate(dataHoldingSelfInstance.ECMA_ScriptLogicProcessingConfigRepresentative));
7046
- callback();
7047
- }
7048
- });
7057
+ (0, webpack_1.default)(webpackConfigurationsForExistingEntryPoints, dataHoldingSelfInstance.generateWebpackCallback(gulpCallback));
7049
7058
  }
7050
7059
  catch (error) {
7051
7060
  /* [ Theory ] Once reached here, the Gulp tasks chain will collapse whatever will callback called to no. */
@@ -7063,6 +7072,103 @@ class ECMA_ScriptLogicProcessor {
7063
7072
  constructor(ecmaScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
7064
7073
  this.ECMA_ScriptLogicProcessingConfigRepresentative = ecmaScriptLogicProcessingConfigRepresentative;
7065
7074
  this.masterConfigRepresentative = masterConfigRepresentative;
7075
+ if (this.masterConfigRepresentative.mustProvideIncrementalBuilding) {
7076
+ this.sourceCodeSelectiveReprocessingHelper = new SourceCodeSelectiveReprocessingHelper_1.default({
7077
+ initialEntryPointsSourceFilesAbsolutePaths: this.ECMA_ScriptLogicProcessingConfigRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths,
7078
+ affiliatedFilesResolutionRules: {
7079
+ affiliatedFilesIncludingDeclarationsPatterns: ECMA_ScriptSpecialist_1.default.partialFilesIncludingDeclarationPatterns,
7080
+ implicitFilesNamesExtensionsWithoutLeadingDotsOfAffiliatedFiles: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7081
+ supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots
7082
+ },
7083
+ directoriesAliasesAndTheirAbsolutePatsMap: new Map(),
7084
+ isEntryPoint: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7085
+ isEntryPoint.
7086
+ bind(this.ECMA_ScriptLogicProcessingConfigRepresentative),
7087
+ logging: {
7088
+ mustEnable: this.ECMA_ScriptLogicProcessingConfigRepresentative.loggingSettings.
7089
+ partialFilesAndParentEntryPointsCorrespondence,
7090
+ targetFilesTypeInSingularForm: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7091
+ TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM
7092
+ },
7093
+ consumingProjectRootDirectoryAbsolutePath: this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath,
7094
+ cacheFileAbsolutePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
7095
+ DotYDA_DirectoryManager_1.default.OPTIMIZATION_FILES_DIRECTORY_ABSOLUTE_PATH,
7096
+ ECMA_ScriptLogicProcessor.ENTRY_POINTS_AND_PARTIAL_FILES_MAPPING_CACHE_FILE_NAME_WITH_EXTENSION
7097
+ ])
7098
+ });
7099
+ ECMA_ScriptSourceFilesWatcher_1.default.
7100
+ initializeIfRequiredAndGetInstance({
7101
+ ecmaScriptLogicProcessingSettingsRepresentative: this.ECMA_ScriptLogicProcessingConfigRepresentative,
7102
+ projectBuildingMasterConfigRepresentative: this.masterConfigRepresentative
7103
+ }).
7104
+ addOnAnyEventRelatedWithActualFilesHandler({
7105
+ handlerID: "ON_ANY_EVENT_WITH_ECMA_SCRIPT_LOGIC_SOURCE_CODE_FILE--BY_ECMA_SCRIPT_LOGIC_PROCESSOR",
7106
+ handler: this.onSourceFilesWatcherEmittedAnyEvent.bind(this)
7107
+ });
7108
+ // TODO
7109
+ // addOnEntryPointFileAddedEventHandler({
7110
+ // handlerID: "ON_MARKUP_ENTRY_POINT_FILE_ADDED--BY_MARKUP_PROCESSOR",
7111
+ // handler: dataHoldingSelfInstance.onEntryPointFileAdded.bind(dataHoldingSelfInstance)
7112
+ // }).
7113
+ // addOnEntryPointFileDeletedEventHandler({
7114
+ // handlerID: "ON_MARKUP_ENTRY_POINT_FILE_DELETED--BY_MARKUP_PROCESSOR",
7115
+ // handler: MarkupProcessor.onEntryPointFileDeleted
7116
+ // });
7117
+ }
7118
+ }
7119
+ /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7120
+ onSourceFilesWatcherEmittedAnyEvent(targetFileAbsolutePath) {
7121
+ this.absolutePathOfFilesWaitingForReProcessing.add(targetFileAbsolutePath);
7122
+ if ((0, es_extensions_1.isNotNull)(this.subsequentFilesStateChangeTimeout)) {
7123
+ clearTimeout(this.subsequentFilesStateChangeTimeout);
7124
+ }
7125
+ this.subsequentFilesStateChangeTimeout = setTimeout(() => {
7126
+ const absolutePathOfEntryPointsWhichMustBeReprocessed = this.sourceCodeSelectiveReprocessingHelper?.getAbsolutePathsOfEntryPointsWhichMustBeProcessed(this.absolutePathOfFilesWaitingForReProcessing) ??
7127
+ [];
7128
+ this.absolutePathOfFilesWaitingForReProcessing.clear();
7129
+ }, (0, es_extensions_1.secondsToMilliseconds)(1));
7130
+ }
7131
+ generateWebpackCallback(gulpCallback) {
7132
+ return (hardError, statistics) => {
7133
+ if ((0, es_extensions_1.isNotUndefined)(statistics)) {
7134
+ process.stdout.write(`${statistics.toString({ colors: true })}\n`);
7135
+ }
7136
+ let finalErrorMessageDynamicPart;
7137
+ /* [ Webpack theory ] Even there is no hard error braking the build, there are could be the soft errors. */
7138
+ const softErrors = (0, es_extensions_1.undefinedToEmptyArray)(statistics?.stats[0]?.compilation.errors);
7139
+ if ((0, es_extensions_1.isNeitherUndefinedNorNull)(hardError)) {
7140
+ finalErrorMessageDynamicPart = hardError.message;
7141
+ }
7142
+ else if (softErrors.length > 0) {
7143
+ finalErrorMessageDynamicPart = softErrors.toString();
7144
+ }
7145
+ if ((0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7146
+ es_extensions_1.Logger.logError({
7147
+ errorType: "ECMA_ScriptLogicProcessingError",
7148
+ title: "ECMAScript logic processing error",
7149
+ description: finalErrorMessageDynamicPart,
7150
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7151
+ });
7152
+ node_notifier_1.default.notify({
7153
+ title: "ECMAScript logic processing",
7154
+ message: "Error has occurred. Please check the console."
7155
+ });
7156
+ }
7157
+ /** 〔 納品版のみ理由 〕 開発版で同じ事をすれば、gulpが落ちる */
7158
+ if (!this.masterConfigRepresentative.mustProvideIncrementalBuilding && (0, es_extensions_1.isNotUndefined)(finalErrorMessageDynamicPart)) {
7159
+ es_extensions_1.Logger.logError({
7160
+ errorType: "ECMA_ScriptLogicProcessingError",
7161
+ title: "ECMAScript logic processing error",
7162
+ description: "Unable to production build.",
7163
+ occurrenceLocation: "ECMA_ScriptLogicProcessor.provideLogicProcessing(projectBuildingMasterConfigRepresentative)"
7164
+ });
7165
+ gulpCallback?.(new Error(finalErrorMessageDynamicPart));
7166
+ }
7167
+ else {
7168
+ (0, es_extensions_1.addMultiplePairsToMap)(ECMA_ScriptLogicProcessingSharedState_1.default.sourceFilesAbsolutePathsAndOutputFilesActualPathsMap, ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator_1.default.generate(this.ECMA_ScriptLogicProcessingConfigRepresentative));
7169
+ gulpCallback?.();
7170
+ }
7171
+ };
7066
7172
  }
7067
7173
  }
7068
7174
  exports["default"] = ECMA_ScriptLogicProcessor;
@@ -7129,7 +7235,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
7129
7235
  const ECMA_ScriptSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptSourceFilesWatcher.ts"));
7130
7236
  /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
7131
7237
  const LinterLikeTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor.ts"));
7132
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
7238
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
7133
7239
  const ESLintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/ESLintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/ESLintLinterSpecialist.ts"));
7134
7240
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7135
7241
  const eslint_1 = __webpack_require__(/*! eslint */ "eslint");
@@ -7378,18 +7484,19 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7378
7484
  targetArray: (0, es_extensions_1.replaceArrayElementsByIndexesImmutably)({
7379
7485
  targetArray: sourceCodeExplodedToLines,
7380
7486
  replacements: [
7381
- ...rawIssue.line === rawIssue.endLine ? [
7382
- {
7383
- index: rawIssue.line - 1,
7384
- newElement: (0, es_extensions_1.cropString)({
7385
- targetString: sourceCodeExplodedToLines[rawIssue.line - 1],
7386
- startingCharacterNumber__numerationFrom1: rawIssue.column,
7387
- endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7388
- rawIssue.endColumn : rawIssue.endColumn - 1,
7389
- mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7390
- })
7391
- }
7392
- ] : [
7487
+ ...rawIssue.line === rawIssue.endLine ?
7488
+ [
7489
+ {
7490
+ index: rawIssue.line - 1,
7491
+ newElement: (0, es_extensions_1.cropString)({
7492
+ targetString: sourceCodeExplodedToLines[rawIssue.line - 1],
7493
+ startingCharacterNumber__numerationFrom1: rawIssue.column,
7494
+ endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7495
+ rawIssue.endColumn : rawIssue.endColumn - 1,
7496
+ mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7497
+ })
7498
+ }
7499
+ ] : [
7393
7500
  {
7394
7501
  index: rawIssue.line - 1,
7395
7502
  newElement: (0, es_extensions_1.cropString)({
@@ -7399,16 +7506,19 @@ class ECMA_ScriptSourceCodeLinter extends LinterLikeTaskExecutor_1.default {
7399
7506
  mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7400
7507
  })
7401
7508
  },
7402
- {
7403
- index: rawIssue.endLine - 1,
7404
- newElement: (0, es_extensions_1.cropString)({
7405
- targetString: sourceCodeExplodedToLines[rawIssue.endLine - 1],
7406
- fromStart: true,
7407
- endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7408
- rawIssue.endColumn : rawIssue.endColumn - 1,
7409
- mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7410
- })
7411
- }
7509
+ ...rawIssue.endColumn > 1 ?
7510
+ [
7511
+ {
7512
+ index: rawIssue.endLine - 1,
7513
+ newElement: (0, es_extensions_1.cropString)({
7514
+ targetString: sourceCodeExplodedToLines[rawIssue.endLine - 1],
7515
+ fromStart: true,
7516
+ endingCharacterNumber__numerationFrom1: rawIssue.column === rawIssue.endColumn ?
7517
+ rawIssue.endColumn : rawIssue.endColumn - 1,
7518
+ mustThrowErrorIfSpecifiedCharactersNumbersIsOutOfRange: true
7519
+ })
7520
+ }
7521
+ ] : []
7412
7522
  ]
7413
7523
  ]
7414
7524
  }),
@@ -7637,105 +7747,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7637
7747
  return (mod && mod.__esModule) ? mod : { "default": mod };
7638
7748
  };
7639
7749
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7640
- /* --- Restrictions ------------------------------------------------------------------------------------------------- */
7750
+ /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
7641
7751
  const ECMA_ScriptLogicProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptLogicProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptLogicProcessingRestrictions.ts"));
7642
7752
  var SupportedECMA_ScriptRuntimesTypes = ECMA_ScriptLogicProcessingRestrictions_1.default.SupportedECMA_ScriptRuntimesTypes;
7643
- /* --- Third-party solutions specialises ---------------------------------------------------------------------------- */
7753
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
7644
7754
  const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/WebpackSpecialist */ "./ThirdPartySolutionsSpecialists/WebpackSpecialist.ts"));
7645
7755
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
7646
- /* --- Applied utils ------------------------------------------------------------------------------------------------ */
7756
+ /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7647
7757
  const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
7648
7758
  const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
7649
7759
  const fork_ts_checker_webpack_plugin_1 = __importDefault(__webpack_require__(/*! fork-ts-checker-webpack-plugin */ "fork-ts-checker-webpack-plugin"));
7650
7760
  const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
7651
- /* --- General utils ------------------------------------------------------------------------------------------------ */
7761
+ /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
7652
7762
  const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
7653
7763
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7654
7764
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
7765
+ /* [ Approach ] Because of serious performance impact, the file watching has been delegated to external watcher. */
7655
7766
  class WebpackConfigGenerator {
7656
- ECMA_ScriptLogicProcessingConfigRepresentative;
7657
- masterConfigRepresentative;
7658
- typeScriptConfigurations = {};
7659
- hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided = false;
7660
- static generateWebpackConfigurationForEachEntryPointsGroup(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
7661
- const dataHoldingSelfInstance = new WebpackConfigGenerator(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative);
7662
- const webpackConfigurationForEachEntryPointsGroup = [];
7663
- for (const ECMA_ScriptLogicEntryPointsGroupSettings of dataHoldingSelfInstance.ECMA_ScriptLogicProcessingConfigRepresentative.relevantEntryPointsGroupsSettings.values()) {
7664
- const webpackConfiguration = dataHoldingSelfInstance.
7665
- generateSingleWebpackConfigurationIfAtLeastOneTargetEntryPointFileExists(ECMA_ScriptLogicEntryPointsGroupSettings);
7666
- if ((0, es_extensions_1.isNotNull)(webpackConfiguration)) {
7667
- webpackConfigurationForEachEntryPointsGroup.push(webpackConfiguration);
7668
- dataHoldingSelfInstance.hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided = true;
7669
- }
7670
- }
7671
- return webpackConfigurationForEachEntryPointsGroup;
7672
- }
7673
- static getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({ sourceFilesGlobSelectors, entryPointsGroupID_ForLogging, webpackContext }) {
7674
- /* [ Reference ] https://webpack.js.org/configuration/entry-context/#entry */
7675
- const webpackEntryPoints__objectSyntax = {};
7676
- const targetEntryPointsSourceFilesAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.
7677
- getFilesAbsolutePathsSynchronously(sourceFilesGlobSelectors);
7678
- if (targetEntryPointsSourceFilesAbsolutePaths.length === 0) {
7679
- es_extensions_1.Logger.logWarning({
7680
- title: "Restarting may required",
7681
- description: `No files has been found for the ECMAScript entry points group with id "${entryPointsGroupID_ForLogging}". ` +
7682
- "Please restart the building once these files will be added"
7683
- });
7684
- return null;
7685
- }
7686
- WebpackConfigGenerator.
7687
- checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(targetEntryPointsSourceFilesAbsolutePaths);
7688
- for (const entryPointSourceFileAbsolutePath of targetEntryPointsSourceFilesAbsolutePaths) {
7689
- const targetSourceFilePathRelativeToSourceEntryPointsTopDirectory = es_extensions_nodejs_1.ImprovedPath.
7690
- computeRelativePath({
7691
- comparedPath: entryPointSourceFileAbsolutePath,
7692
- basePath: webpackContext
7693
- });
7694
- const outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory = (0, es_extensions_1.removeAllFileNameExtensions)(targetSourceFilePathRelativeToSourceEntryPointsTopDirectory);
7695
- /* [ Webpack theory ] The key must be the output path without filename extension relative to 'output.path'.
7696
- * The value must the source file path (relative or absolute), for example
7697
- * { 'HikariFrontend/StarterPugTemplate/StarterPugTemplate':
7698
- * 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/HikariFrontend/StarterPugTemplate.ts',
7699
- * 'Minimal': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/Minimal.ts',
7700
- * 'TopPage': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/TopPage.ts'
7701
- * } */
7702
- webpackEntryPoints__objectSyntax[outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory] = entryPointSourceFileAbsolutePath;
7703
- }
7704
- return webpackEntryPoints__objectSyntax;
7705
- }
7706
- constructor(ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative) {
7707
- this.ECMA_ScriptLogicProcessingConfigRepresentative = ECMA_ScriptLogicProcessingConfigRepresentative;
7708
- this.masterConfigRepresentative = masterConfigRepresentative;
7709
- }
7710
- generateSingleWebpackConfigurationIfAtLeastOneTargetEntryPointFileExists(entryPointsGroupSettings) {
7767
+ static cachedTypeScriptConfigurations = {};
7768
+ /* [ Approach ] Although the parameter is excessive, its properties are been pre-computed externally for other needs,
7769
+ * so no need to compute them again. */
7770
+ static generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({ entryPointsSourceFilesAbsolutePaths, ECMA_ScriptLogicEntryPointsGroupSettings: entryPointsGroupSettings, ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative, mustProvideTypeScriptTypeChecking }) {
7711
7771
  /* [ Reference ] https://webpack.js.org/configuration/entry-context/#context */
7712
7772
  const sourceFilesTopDirectoryAbsolutePath = entryPointsGroupSettings.sourceFilesTopDirectoryAbsolutePath;
7713
7773
  /** @see https://webpack.js.org/configuration/entry-context/#entry */
7714
- const webpackEntryPointsDefinition = WebpackConfigGenerator.getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
7715
- entryPointsGroupID_ForLogging: entryPointsGroupSettings.ID,
7716
- sourceFilesGlobSelectors: entryPointsGroupSettings.sourceFilesGlobSelectors,
7717
- webpackContext: sourceFilesTopDirectoryAbsolutePath
7718
- });
7719
- if ((0, es_extensions_1.isNull)(webpackEntryPointsDefinition)) {
7720
- es_extensions_1.Logger.logWarning({
7721
- title: "Empty entry point group",
7722
- description: `No files has been found for the group '${entryPointsGroupSettings.ID}' of ECMAScript ` +
7723
- "entry points. Please restart the build once new files will be added."
7724
- });
7725
- return null;
7726
- }
7774
+ const webpackEntryPointsDefinition = WebpackConfigGenerator.getWebpackEntryObjectRespectiveToExistingEntryPoints({ entryPointsSourceFilesAbsolutePaths, webpackContext: sourceFilesTopDirectoryAbsolutePath });
7727
7775
  let typeScriptCompilerOptions;
7728
- const cachedTypeScriptCompilerOptions = this.
7729
- typeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath];
7776
+ const cachedTypeScriptCompilerOptions = WebpackConfigGenerator.
7777
+ cachedTypeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath];
7730
7778
  if ((0, es_extensions_1.isUndefined)(cachedTypeScriptCompilerOptions)) {
7731
7779
  typeScriptCompilerOptions = TypeScriptSpecialist_1.default.readTypeScriptConfigurationFileAndGetCompilerOptions(entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath);
7732
- this.typeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath] =
7780
+ this.cachedTypeScriptConfigurations[entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath] =
7733
7781
  typeScriptCompilerOptions;
7734
7782
  }
7735
7783
  else {
7736
7784
  typeScriptCompilerOptions = cachedTypeScriptCompilerOptions;
7737
7785
  }
7738
- const webpackPublicPath = this.computePublicPathIfPossible(entryPointsGroupSettings);
7786
+ const webpackPublicPath = WebpackConfigGenerator.computePublicPath(entryPointsGroupSettings, masterConfigRepresentative);
7739
7787
  const willBrowserJS_LibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
7740
7788
  entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.browser;
7741
7789
  const willNodeJS_LibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
@@ -7743,6 +7791,7 @@ class WebpackConfigGenerator {
7743
7791
  const willPugLibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
7744
7792
  entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.pug;
7745
7793
  const distributingSettings = entryPointsGroupSettings.distributing;
7794
+ // entryPointsGroupSettings.directoriesAliasesAndCorrespondingAbsolutePathsMap
7746
7795
  return {
7747
7796
  name: entryPointsGroupSettings.ID,
7748
7797
  /* [ Webpack theory ] In this case, path separators must be operating system dependent, otherwise following error
@@ -7811,20 +7860,12 @@ class WebpackConfigGenerator {
7811
7860
  }, {})
7812
7861
  } : null,
7813
7862
  ...willBrowserJS_LibraryBeBuilt ? { experiments: { outputModule: true } } : null,
7814
- mode: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7815
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
7863
+ mode: masterConfigRepresentative.mustProvideIncrementalBuilding ?
7816
7864
  "development" : "production",
7817
- watch: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7818
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
7819
- watchOptions: {
7820
- ignored: ["node_modules"]
7821
- },
7822
7865
  /* [ Theory ] Although "cheap-module-source-map" causes both slow first building and slow rebuilding,
7823
7866
  * faster alternatives including "eval" could cause the errors related with security.
7824
7867
  * See https://stackoverflow.com/a/49100966. */
7825
- devtool: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7826
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode ?
7827
- "cheap-module-source-map" : false,
7868
+ devtool: masterConfigRepresentative.mustProvideIncrementalBuilding ? "cheap-module-source-map" : false,
7828
7869
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
7829
7870
  node: {
7830
7871
  __dirname: true,
@@ -7833,7 +7874,7 @@ class WebpackConfigGenerator {
7833
7874
  } : null,
7834
7875
  module: {
7835
7876
  rules: [
7836
- /* --- Logic ---------------------------------------------------------------------------------------------- */
7877
+ /* ━━━ Logic ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7837
7878
  {
7838
7879
  test: /\.tsx?$/u,
7839
7880
  loader: "ts-loader",
@@ -7848,7 +7889,7 @@ class WebpackConfigGenerator {
7848
7889
  test: /\.vue$/u,
7849
7890
  loader: "vue-loader"
7850
7891
  },
7851
- /* --- Data ----------------------------------------------------------------------------------------------- */
7892
+ /* ━━━ Data ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7852
7893
  {
7853
7894
  test: /\.json5$/u,
7854
7895
  loader: "json5-loader"
@@ -7857,7 +7898,7 @@ class WebpackConfigGenerator {
7857
7898
  test: /\.(?:yml|yaml)$/u,
7858
7899
  use: ["yaml-loader"]
7859
7900
  },
7860
- /* --- Markup --------------------------------------------------------------------------------------------- */
7901
+ /* ━━━ Markup ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7861
7902
  {
7862
7903
  test: /\.pug$/u,
7863
7904
  oneOf: [
@@ -7881,7 +7922,7 @@ class WebpackConfigGenerator {
7881
7922
  }
7882
7923
  ]
7883
7924
  },
7884
- /* --- 意匠設計記法 ----------------------------------------------------------------------------------------- */
7925
+ /* ━━━ Styles ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7885
7926
  {
7886
7927
  test: /\.css$/u,
7887
7928
  oneOf: [
@@ -7928,12 +7969,12 @@ class WebpackConfigGenerator {
7928
7969
  ]
7929
7970
  },
7930
7971
  resolve: {
7931
- extensions: this.ECMA_ScriptLogicProcessingConfigRepresentative.
7972
+ extensions: ECMA_ScriptLogicProcessingConfigRepresentative.
7932
7973
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots.
7933
7974
  map((fileNameExtensionWithoutDot) => `.${fileNameExtensionWithoutDot}`),
7934
7975
  alias: {
7935
- ...WebpackSpecialist_1.default.
7936
- convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
7976
+ //
7977
+ ...WebpackSpecialist_1.default.convertPathsAliasesFromTypeScriptFormatToWebpackFormat({
7937
7978
  typeScriptPathsSettings: typeScriptCompilerOptions.paths,
7938
7979
  typeScriptBasicAbsolutePath: typeScriptCompilerOptions.baseUrl ??
7939
7980
  es_extensions_nodejs_1.ImprovedPath.extractDirectoryFromFilePath({
@@ -7951,16 +7992,16 @@ class WebpackConfigGenerator {
7951
7992
  }
7952
7993
  },
7953
7994
  resolveLoader: WebpackSpecialist_1.default.
7954
- generateLoadersResolvingSettings(this.masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath),
7995
+ generateLoadersResolvingSettings(masterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath),
7955
7996
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.nodeJS ? {
7956
7997
  externals: [(0, webpack_node_externals_1.default)()]
7957
7998
  } : null,
7958
7999
  plugins: [
7959
8000
  new webpack_1.default.DefinePlugin({
7960
- __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: this.masterConfigRepresentative.isLocalDevelopmentBuildingMode,
7961
- __IS_TESTING_BUILDING_MODE__: this.masterConfigRepresentative.isTestingBuildingMode,
7962
- __IS_STAGING_BUILDING_MODE__: this.masterConfigRepresentative.isStagingBuildingMode,
7963
- __IS_PRODUCTION_BUILDING_MODE__: this.masterConfigRepresentative.isProductionBuildingMode,
8001
+ __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: masterConfigRepresentative.isLocalDevelopmentBuildingMode,
8002
+ __IS_TESTING_BUILDING_MODE__: masterConfigRepresentative.isTestingBuildingMode,
8003
+ __IS_STAGING_BUILDING_MODE__: masterConfigRepresentative.isStagingBuildingMode,
8004
+ __IS_PRODUCTION_BUILDING_MODE__: masterConfigRepresentative.isProductionBuildingMode,
7964
8005
  /* [ Theory ] Settings for the Vue 3 which must be defined explicitly.
7965
8006
  * https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags */
7966
8007
  ...entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.browser ? {
@@ -7969,8 +8010,8 @@ class WebpackConfigGenerator {
7969
8010
  __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
7970
8011
  } : null
7971
8012
  }),
7972
- ...this.hasTypeScriptTypeCheckingFunctionalityAlreadyBeenProvided ?
7973
- [] :
8013
+ /* < === Temporary ========================================================================================== */
8014
+ ...mustProvideTypeScriptTypeChecking ?
7974
8015
  [
7975
8016
  new fork_ts_checker_webpack_plugin_1.default({
7976
8017
  typescript: {
@@ -7984,21 +8025,44 @@ class WebpackConfigGenerator {
7984
8025
  }
7985
8026
  }
7986
8027
  })
7987
- ],
8028
+ ] :
8029
+ [],
8030
+ /* === Temporary > ========================================================================================== */
7988
8031
  new vue_loader_1.VueLoaderPlugin()
7989
8032
  ],
7990
8033
  optimization: {
7991
- minimize: this.masterConfigRepresentative.isStagingBuildingMode ||
7992
- this.masterConfigRepresentative.isProductionBuildingMode,
7993
- emitOnErrors: this.masterConfigRepresentative.isStaticPreviewBuildingMode ||
7994
- this.masterConfigRepresentative.isLocalDevelopmentBuildingMode
8034
+ minimize: !masterConfigRepresentative.mustProvideIncrementalBuilding,
8035
+ emitOnErrors: masterConfigRepresentative.mustProvideIncrementalBuilding
7995
8036
  }
7996
8037
  };
7997
8038
  }
8039
+ static getWebpackEntryObjectRespectiveToExistingEntryPoints({ entryPointsSourceFilesAbsolutePaths, webpackContext }) {
8040
+ /* [ Reference ] https://webpack.js.org/configuration/entry-context/#entry */
8041
+ const webpackEntryPoints__objectSyntax = {};
8042
+ WebpackConfigGenerator.
8043
+ checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(entryPointsSourceFilesAbsolutePaths);
8044
+ for (const entryPointSourceFileAbsolutePath of entryPointsSourceFilesAbsolutePaths) {
8045
+ const targetSourceFilePathRelativeToSourceEntryPointsTopDirectory = es_extensions_nodejs_1.ImprovedPath.
8046
+ computeRelativePath({
8047
+ comparedPath: entryPointSourceFileAbsolutePath,
8048
+ basePath: webpackContext
8049
+ });
8050
+ const outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory = (0, es_extensions_1.removeAllFileNameExtensions)(targetSourceFilePathRelativeToSourceEntryPointsTopDirectory);
8051
+ /* [ Webpack theory ] The key must be the output path without filename extension relative to 'output.path'.
8052
+ * The value must the source file path (relative or absolute), for example
8053
+ * { 'HikariFrontend/StarterPugTemplate/StarterPugTemplate':
8054
+ * 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/HikariFrontend/StarterPugTemplate.ts',
8055
+ * 'Minimal': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/Minimal.ts',
8056
+ * 'TopPage': 'D:/PhpStorm/InHouseDevelopment/hikari-documentation/0-Source/TopPage.ts'
8057
+ * } */
8058
+ webpackEntryPoints__objectSyntax[outputFilePathWithoutFilenameExtensionRelativeToBaseOutputDirectory] = entryPointSourceFileAbsolutePath;
8059
+ }
8060
+ return webpackEntryPoints__objectSyntax;
8061
+ }
7998
8062
  /* [ Webpack theory ] 'publicPath' computing
7999
8063
  *
8000
- * 1. For the production building mode, just "/" is enough.
8001
- * For the development building mode, everything must work without development server otherwise the customer
8064
+ * 1. For the production-like building modes, just "/" is enough.
8065
+ * For the incremental building modes, everything must work without development server otherwise the customer
8002
8066
  * could not check the application just by opening the HTML files ("/" will be resolved to the root of current hard drive).
8003
8067
  * The known solution is the relative path: it is required to match the path where Webpack chunks are being outputted
8004
8068
  * and the path where Webpack chunks are being searched (initially it could be different paths).
@@ -8013,12 +8077,10 @@ class WebpackConfigGenerator {
8013
8077
  * 3. Chunks will be searched in
8014
8078
  * [ path at search string of browser ] + publicPath + chunkFilename
8015
8079
  * */
8016
- computePublicPathIfPossible(ECMA_ScriptLogicEntryPointsGroupSettings__normalized) {
8017
- if (!this.masterConfigRepresentative.isStaticPreviewBuildingMode &&
8018
- !this.masterConfigRepresentative.isLocalDevelopmentBuildingMode) {
8019
- return "/";
8020
- }
8021
- return ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID.replace(ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID, "/");
8080
+ static computePublicPath(ECMA_ScriptLogicEntryPointsGroupSettings__normalized, masterConfigRepresentative) {
8081
+ return masterConfigRepresentative.mustProvideIncrementalBuilding ?
8082
+ ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID.replace(ECMA_ScriptLogicEntryPointsGroupSettings__normalized.ID, "/") :
8083
+ "/";
8022
8084
  }
8023
8085
  static checkForFilesWithSameDirectoryAndFileNameButDifferentExtensions(entryPointsSourceFilesAbsolutePaths) {
8024
8086
  const entryPointsSourceFiles = new Set();
@@ -8171,6 +8233,7 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
8171
8233
  sourceCodeLintingCommonSettings;
8172
8234
  importingFromTypeScriptSettings;
8173
8235
  staticPreviewSettings;
8236
+ routingSettings;
8174
8237
  relevantEntryPointsGroupsSettings;
8175
8238
  loggingSettings;
8176
8239
  mustValidateHTML;
@@ -8182,6 +8245,7 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
8182
8245
  this.sourceCodeLintingCommonSettings = normalizedMarkupProcessingSettings.linting;
8183
8246
  this.importingFromTypeScriptSettings = normalizedMarkupProcessingSettings.importingFromTypeScript;
8184
8247
  this.staticPreviewSettings = normalizedMarkupProcessingSettings.staticPreview;
8248
+ this.routingSettings = normalizedMarkupProcessingSettings.routing;
8185
8249
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
8186
8250
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
8187
8251
  this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
@@ -8437,6 +8501,35 @@ var MarkupProcessingSettings__FromFile__RawValid;
8437
8501
  }
8438
8502
  }
8439
8503
  },
8504
+ routing: {
8505
+ type: Object,
8506
+ required: false,
8507
+ preValidationModifications: es_extensions_1.nullToUndefined,
8508
+ properties: {
8509
+ $specificationFileRelativePath: {
8510
+ newName: "specificationFileRelativePath",
8511
+ type: String,
8512
+ required: true,
8513
+ minimalCharactersCount: 1
8514
+ },
8515
+ $variable: {
8516
+ newName: "variable",
8517
+ type: String,
8518
+ required: true,
8519
+ minimalCharactersCount: 1
8520
+ },
8521
+ $localizations: {
8522
+ newName: "localizations",
8523
+ type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArrayOfUniformTypeValues,
8524
+ required: false,
8525
+ preValidationModifications: es_extensions_1.nullToUndefined,
8526
+ value: {
8527
+ type: String,
8528
+ minimalCharactersCount: 1
8529
+ }
8530
+ }
8531
+ }
8532
+ },
8440
8533
  ...SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid_1.default.getLocalizedPropertiesSpecification({
8441
8534
  sourceCodeProcessingSettingsGenericPropertiesLocalization,
8442
8535
  localizedConsumingProjectLocalizedPreDefinedBuildingModes,
@@ -8683,7 +8776,7 @@ const gulp_if_1 = __importDefault(__webpack_require__(/*! gulp-if */ "gulp-if"))
8683
8776
  const gulp_data_1 = __importDefault(__webpack_require__(/*! gulp-data */ "gulp-data"));
8684
8777
  const gulp_pug_1 = __importDefault(__webpack_require__(/*! gulp-pug */ "gulp-pug"));
8685
8778
  const gulp_html_prettify_1 = __importDefault(__webpack_require__(/*! gulp-html-prettify */ "gulp-html-prettify"));
8686
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
8779
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
8687
8780
  const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist.ts"));
8688
8781
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
8689
8782
  const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
@@ -8838,7 +8931,10 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
8838
8931
  __IS_LOCAL_DEVELOPMENT_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isLocalDevelopmentBuildingMode,
8839
8932
  __IS_TESTING_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isTestingBuildingMode,
8840
8933
  __IS_STAGING_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isStagingBuildingMode,
8841
- __IS_PRODUCTION_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isProductionBuildingMode
8934
+ __IS_PRODUCTION_BUILDING_MODE__: this.projectBuildingMasterConfigRepresentative.isProductionBuildingMode,
8935
+ ...(0, es_extensions_1.isNotUndefined)(this.markupProcessingSettingsRepresentative.routingSettings) ? {
8936
+ [this.markupProcessingSettingsRepresentative.routingSettings.variable]: this.markupProcessingSettingsRepresentative.routingSettings.routes
8937
+ } : null
8842
8938
  },
8843
8939
  filters: {
8844
8940
  html_special_characters_to_html_entities: MarkupProcessor.convertApplicableCharactersToHTML_Entities,
@@ -11483,6 +11579,7 @@ const ConsumingProjectBuildingModes_1 = __importDefault(__webpack_require__(/*!
11483
11579
  const MarkupProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSettings__Default.ts"));
11484
11580
  /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
11485
11581
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
11582
+ const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
11486
11583
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
11487
11584
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
11488
11585
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
@@ -11520,6 +11617,16 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
11520
11617
  normalizeStaticPreviewStateDependentPageVariationsSpecification(),
11521
11618
  importsFromStaticDataFiles: dataHoldingSelfInstance.normalizeImportsFromStaticDataFiles()
11522
11619
  },
11620
+ ...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.routing) ? {
11621
+ routing: {
11622
+ variable: markupProcessingSettings__fromFile__rawValid.routing.variable,
11623
+ routes: RoutingSettingsNormalizer_1.default.normalize({
11624
+ routingSettings__fromFile__rawValid: markupProcessingSettings__fromFile__rawValid.routing,
11625
+ projectRootDirectoryAbsolutePath: commonSettings__normalized.projectRootDirectoryAbsolutePath,
11626
+ absolutePathsOfSectioningToCache: new Set() // TODO Replace mock
11627
+ })
11628
+ }
11629
+ } : null,
11523
11630
  relevantEntryPointsGroups: dataHoldingSelfInstance.createNormalizedEntryPointsGroupsSettings(markupProcessingSettings__fromFile__rawValid.entryPointsGroups, dataHoldingSelfInstance.
11524
11631
  completeEntryPointsGroupNormalizedSettingsCommonPropertiesUntilMarkupEntryPointsGroupNormalizedSettings.
11525
11632
  bind(dataHoldingSelfInstance)),
@@ -11879,6 +11986,403 @@ const markupProcessingRawSettingsNormalizerLocalization__english = {
11879
11986
  exports["default"] = markupProcessingRawSettingsNormalizerLocalization__english;
11880
11987
 
11881
11988
 
11989
+ /***/ }),
11990
+
11991
+ /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts":
11992
+ /*!********************************************************************************************************!*\
11993
+ !*** ./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts ***!
11994
+ \********************************************************************************************************/
11995
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11996
+
11997
+
11998
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
11999
+ /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
12000
+ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
12001
+ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
12002
+ class RoutingSettingsNormalizer {
12003
+ static routingPathSegments = [];
12004
+ static projectRootDirectoryAbsolutePath;
12005
+ static cachedAbsolutePathsOfSectioning = new Set();
12006
+ static normalize({ routingSettings__fromFile__rawValid, projectRootDirectoryAbsolutePath, absolutePathsOfSectioningToCache }) {
12007
+ RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning = absolutePathsOfSectioningToCache;
12008
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath = projectRootDirectoryAbsolutePath;
12009
+ const rawRouting = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12010
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12011
+ projectRootDirectoryAbsolutePath, routingSettings__fromFile__rawValid.specificationFileRelativePath
12012
+ ]),
12013
+ synchronously: true,
12014
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12015
+ });
12016
+ const rawLocalizations = {};
12017
+ for (const [locale, localizationFileRelativePath] of Object.entries(routingSettings__fromFile__rawValid.localizations ?? {})) {
12018
+ const routingLocalizationFileAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectRootDirectoryAbsolutePath, localizationFileRelativePath], { alwaysForwardSlashSeparators: true });
12019
+ const routingLocalization = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12020
+ filePath: routingLocalizationFileAbsolutePath,
12021
+ synchronously: true,
12022
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12023
+ });
12024
+ if (!(0, es_extensions_1.isArbitraryObject)(routingLocalization)) {
12025
+ es_extensions_1.Logger.throwErrorAndLog({
12026
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12027
+ customMessage: `Malformed routing localization at "${routingLocalizationFileAbsolutePath}".`
12028
+ }),
12029
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12030
+ occurrenceLocation: "RoutingSettingsNormalizer.normalize(compoundParameter)"
12031
+ });
12032
+ }
12033
+ rawLocalizations[locale] = routingLocalization;
12034
+ }
12035
+ if (Object.entries(rawLocalizations).length === 0) {
12036
+ return RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12037
+ rawRoutingOfSpecificDepthLevel: rawRouting,
12038
+ outputWorkpiece: {}
12039
+ });
12040
+ }
12041
+ const normalizedRoutingWorkpiece = {};
12042
+ for (const locale of Object.keys(rawLocalizations)) {
12043
+ normalizedRoutingWorkpiece[locale] = {};
12044
+ RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12045
+ rawRoutingOfSpecificDepthLevel: rawRouting,
12046
+ outputWorkpiece: normalizedRoutingWorkpiece[locale],
12047
+ localization: {
12048
+ locale,
12049
+ strings: rawLocalizations[locale]
12050
+ }
12051
+ });
12052
+ }
12053
+ RoutingSettingsNormalizer.cachedAbsolutePathsOfSectioning = new Set();
12054
+ return normalizedRoutingWorkpiece;
12055
+ }
12056
+ static normalizeDepthLevelWiseRecursively({ rawRoutingOfSpecificDepthLevel, outputWorkpiece, localization }) {
12057
+ if (!(0, es_extensions_1.isArbitraryObject)(rawRoutingOfSpecificDepthLevel)) {
12058
+ es_extensions_1.Logger.throwErrorAndLog({
12059
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12060
+ customMessage: [
12061
+ "Malformed routing",
12062
+ RoutingSettingsNormalizer.routingPathSegments.length > 0 ?
12063
+ [` at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}"`] : [],
12064
+ ". ",
12065
+ `Must be an object while ${typeof rawRoutingOfSpecificDepthLevel} found.`
12066
+ ].join(" ")
12067
+ }),
12068
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12069
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12070
+ });
12071
+ }
12072
+ RoutingSettingsNormalizer.routingPathSegments.push(RoutingSettingsNormalizer.routingPathSegments.length === 0 ? "" : "$children");
12073
+ for (const [routeKey, rawRoute] of Object.entries(rawRoutingOfSpecificDepthLevel)) {
12074
+ RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = routeKey;
12075
+ if (!(0, es_extensions_1.isArbitraryObject)(rawRoute)) {
12076
+ es_extensions_1.Logger.throwErrorAndLog({
12077
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12078
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
12079
+ `Must be an object while ${typeof (0, es_extensions_1.nullToUndefined)(rawRoute)} found.`
12080
+ }),
12081
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12082
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12083
+ });
12084
+ }
12085
+ const routeURI = RoutingSettingsNormalizer.normalizeURI_IfExists(rawRoute.$URI, localization);
12086
+ outputWorkpiece[routeKey] = {
12087
+ $heading: RoutingSettingsNormalizer.normalizeHeading(rawRoute.$heading, localization),
12088
+ ...(0, es_extensions_1.isNotNull)(routeURI) ? { $URI: routeURI } : null,
12089
+ ...(0, es_extensions_1.isArbitraryObject)(rawRoute.$children) ? {
12090
+ $children: RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively({
12091
+ rawRoutingOfSpecificDepthLevel: rawRoute.$children,
12092
+ outputWorkpiece: {},
12093
+ localization
12094
+ })
12095
+ } : null,
12096
+ // TODO ========================================================================================================
12097
+ ...(0, es_extensions_1.isArbitraryObject)(rawRoute.$sectioning) ? {
12098
+ $sectioning: RoutingSettingsNormalizer.normalizeSectioning(rawRoute.$sectioning, routeURI, localization)
12099
+ } : null
12100
+ };
12101
+ }
12102
+ RoutingSettingsNormalizer.routingPathSegments.pop();
12103
+ return outputWorkpiece;
12104
+ }
12105
+ static normalizeURI_IfExists(rawURI, localization) {
12106
+ if ((0, es_extensions_1.isEitherUndefinedOrNull)(rawURI)) {
12107
+ return null;
12108
+ }
12109
+ if (!(0, es_extensions_1.isString)(rawURI)) {
12110
+ es_extensions_1.Logger.throwErrorAndLog({
12111
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12112
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12113
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawURI)} found.`
12114
+ }),
12115
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12116
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12117
+ });
12118
+ }
12119
+ let URI_Workpiece = rawURI;
12120
+ if (URI_Workpiece.startsWith("`")) {
12121
+ if ((0, es_extensions_1.isUndefined)(localization)) {
12122
+ es_extensions_1.Logger.throwErrorAndLog({
12123
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12124
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12125
+ "The specified URI has been wrapped to backticks while no localization specified."
12126
+ }),
12127
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12128
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12129
+ });
12130
+ }
12131
+ URI_Workpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12132
+ targetString: URI_Workpiece,
12133
+ targetCharacter: "`",
12134
+ fromFirstPosition: true
12135
+ });
12136
+ URI_Workpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12137
+ targetString: URI_Workpiece,
12138
+ targetCharacter: "`",
12139
+ fromLastPosition: true
12140
+ });
12141
+ if (URI_Workpiece.includes("${")) {
12142
+ URI_Workpiece = (0, es_extensions_1.replaceMatchesWithRegularExpressionToDynamicValue)({
12143
+ targetString: URI_Workpiece,
12144
+ regularExpressionWithCapturingGroups: /(?<interpolation>\$\{\s*(?<variable>(?:\w|\.)+)\s*\})/gum,
12145
+ replacer(matching) {
12146
+ const variableSubstitution = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, matching.namedCapturingGroups.variable);
12147
+ if (!(0, es_extensions_1.isString)(variableSubstitution) && !(0, es_extensions_1.isNumber)(variableSubstitution)) {
12148
+ return null;
12149
+ }
12150
+ return String(variableSubstitution);
12151
+ }
12152
+ });
12153
+ }
12154
+ if (URI_Workpiece.includes("$")) {
12155
+ const localeDependentURI = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, URI_Workpiece);
12156
+ if (!(0, es_extensions_1.isString)(localeDependentURI)) {
12157
+ es_extensions_1.Logger.throwErrorAndLog({
12158
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12159
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$URI". ` +
12160
+ "The specified URI is including backticks while no localization specified."
12161
+ }),
12162
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12163
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeURI_IfExists(rawURI, localization?)"
12164
+ });
12165
+ }
12166
+ return localeDependentURI;
12167
+ }
12168
+ }
12169
+ return URI_Workpiece;
12170
+ }
12171
+ static normalizeHeading(rawHeading, localization) {
12172
+ if (!(0, es_extensions_1.isString)(rawHeading)) {
12173
+ es_extensions_1.Logger.throwErrorAndLog({
12174
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12175
+ customMessage: [
12176
+ `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
12177
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(rawHeading)} found.`
12178
+ ].join(" ")
12179
+ }),
12180
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12181
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12182
+ });
12183
+ }
12184
+ let headingWorkpiece = rawHeading;
12185
+ if (headingWorkpiece.startsWith("`")) {
12186
+ if ((0, es_extensions_1.isEitherUndefinedOrNull)(localization)) {
12187
+ es_extensions_1.Logger.throwErrorAndLog({
12188
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12189
+ customMessage: `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".` +
12190
+ "The specified URI is including backticks while no localization specified."
12191
+ }),
12192
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12193
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12194
+ });
12195
+ }
12196
+ headingWorkpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12197
+ targetString: headingWorkpiece,
12198
+ targetCharacter: "`",
12199
+ fromFirstPosition: true
12200
+ });
12201
+ headingWorkpiece = (0, es_extensions_1.removeSpecificCharacterFromCertainPosition)({
12202
+ targetString: headingWorkpiece,
12203
+ targetCharacter: "`",
12204
+ fromLastPosition: true
12205
+ });
12206
+ const localizedHeading = (0, es_extensions_1.getObjectPropertySafely)(localization.strings, headingWorkpiece);
12207
+ if (!(0, es_extensions_1.isString)(localizedHeading)) {
12208
+ es_extensions_1.Logger.throwErrorAndLog({
12209
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12210
+ customMessage: [
12211
+ `Malformed localized heading at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}.$heading".`,
12212
+ `Must be a string while ${typeof (0, es_extensions_1.nullToUndefined)(localizedHeading)} found.`
12213
+ ].join(" ")
12214
+ }),
12215
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12216
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeHeading(specification, localization?)"
12217
+ });
12218
+ }
12219
+ return localizedHeading;
12220
+ }
12221
+ return headingWorkpiece;
12222
+ }
12223
+ // TODO ==============================================================================================================
12224
+ /* ━━━ Sectioning ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
12225
+ static normalizeSectioning(rawSectioningSpecification, parentRouteURI, localization) {
12226
+ RoutingSettingsNormalizer.routingPathSegments.push("$sectioning");
12227
+ if (!(0, es_extensions_1.isNonEmptyString)(rawSectioningSpecification.$specificationFileRelativePath)) {
12228
+ es_extensions_1.Logger.throwErrorAndLog({
12229
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12230
+ customMessage: [
12231
+ `Malformed routing at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12232
+ "The \"$sectioning.$specificationFileRelativePath\" must be defined with the valid file path relative " +
12233
+ "to project top directory."
12234
+ ].join(" ")
12235
+ }),
12236
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12237
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12238
+ });
12239
+ }
12240
+ const rawSectioning = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12241
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12242
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath,
12243
+ rawSectioningSpecification.$specificationFileRelativePath
12244
+ ]),
12245
+ synchronously: true,
12246
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12247
+ });
12248
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectioning)) {
12249
+ es_extensions_1.Logger.throwErrorAndLog({
12250
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12251
+ customMessage: [
12252
+ `Malformed sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}".`,
12253
+ `Must be an object while ${typeof rawSectioning} found.`
12254
+ ].join(" ")
12255
+ }),
12256
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12257
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12258
+ });
12259
+ }
12260
+ if (!(0, es_extensions_1.isString)(parentRouteURI)) {
12261
+ es_extensions_1.Logger.throwErrorAndLog({
12262
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12263
+ customMessage: `The sectioning at "${rawSectioningSpecification.$specificationFileRelativePath}" has been defined while ` +
12264
+ "the $URI of the parent route has not been." +
12265
+ "It must be defined to compute the URI for each section."
12266
+ }),
12267
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12268
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12269
+ });
12270
+ }
12271
+ if ((0, es_extensions_1.isArbitraryObject)(rawSectioningSpecification.$localizations)) {
12272
+ if ((0, es_extensions_1.isUndefined)(localization)) {
12273
+ throw new Error("未処理エラー1");
12274
+ }
12275
+ const targetLocalizationFileRelativePath = rawSectioningSpecification.$localizations[localization.locale];
12276
+ RoutingSettingsNormalizer.routingPathSegments.push("$localizations", localization.locale);
12277
+ if (!(0, es_extensions_1.isString)(targetLocalizationFileRelativePath)) {
12278
+ es_extensions_1.Logger.throwErrorAndLog({
12279
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12280
+ customMessage: "Invalid path to sectioning localization at " +
12281
+ `"${RoutingSettingsNormalizer.routingPathSegments.join(".")}". ` +
12282
+ `Must be the string with file path relative to project root directory, ${typeof es_extensions_1.isString} found.`
12283
+ }),
12284
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12285
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12286
+ });
12287
+ }
12288
+ const sectioningRawLocalization = es_extensions_nodejs_1.ObjectDataFilesProcessor.processFile({
12289
+ filePath: es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
12290
+ RoutingSettingsNormalizer.projectRootDirectoryAbsolutePath, targetLocalizationFileRelativePath
12291
+ ]),
12292
+ synchronously: true,
12293
+ schema: es_extensions_nodejs_1.ObjectDataFilesProcessor.SupportedSchemas.YAML
12294
+ });
12295
+ if (!(0, es_extensions_1.isArbitraryObject)(sectioningRawLocalization)) {
12296
+ es_extensions_1.Logger.throwErrorAndLog({
12297
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12298
+ customMessage: `Malformed sectioning localization at "${targetLocalizationFileRelativePath}".`
12299
+ }),
12300
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12301
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioning(rawSectioningSpecification)"
12302
+ });
12303
+ }
12304
+ const normalizedLocalizedSectioning = RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12305
+ rawSectioningOfSpecificDepthLevel: rawSectioning,
12306
+ outputWorkpiece: {},
12307
+ localization: {
12308
+ locale: localization.locale,
12309
+ strings: sectioningRawLocalization
12310
+ },
12311
+ parentRouteURI
12312
+ });
12313
+ RoutingSettingsNormalizer.routingPathSegments.pop();
12314
+ return normalizedLocalizedSectioning;
12315
+ }
12316
+ return RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12317
+ rawSectioningOfSpecificDepthLevel: rawSectioning,
12318
+ outputWorkpiece: {},
12319
+ parentRouteURI
12320
+ });
12321
+ }
12322
+ static normalizeSectioningDepthLevelRecursively({ rawSectioningOfSpecificDepthLevel, outputWorkpiece, localization, parentRouteURI }) {
12323
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectioningOfSpecificDepthLevel)) {
12324
+ es_extensions_1.Logger.throwErrorAndLog({
12325
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12326
+ customMessage: [
12327
+ "Malformed routing",
12328
+ RoutingSettingsNormalizer.routingPathSegments.length > 0 ?
12329
+ [` at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`] :
12330
+ ["."],
12331
+ `Must be an object while ${typeof rawSectioningOfSpecificDepthLevel} found.`
12332
+ ].join(" ")
12333
+ }),
12334
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12335
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeDepthLevelWiseRecursively(...parameters)"
12336
+ });
12337
+ }
12338
+ RoutingSettingsNormalizer.routingPathSegments.push("");
12339
+ for (const [sectionKey, rawSectionMetadata] of Object.entries(rawSectioningOfSpecificDepthLevel)) {
12340
+ RoutingSettingsNormalizer.routingPathSegments[RoutingSettingsNormalizer.routingPathSegments.length - 1] = sectionKey;
12341
+ if (!(0, es_extensions_1.isArbitraryObject)(rawSectionMetadata)) {
12342
+ es_extensions_1.Logger.throwErrorAndLog({
12343
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12344
+ customMessage: [
12345
+ `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12346
+ `Must be an object while ${typeof rawSectionMetadata} found.`
12347
+ ].join(" ")
12348
+ }),
12349
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12350
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively(compoundParameter)"
12351
+ });
12352
+ }
12353
+ if (!(0, es_extensions_1.isString)(rawSectionMetadata.$anchor)) {
12354
+ es_extensions_1.Logger.throwErrorAndLog({
12355
+ errorInstance: new es_extensions_1.InvalidExternalDataError({
12356
+ customMessage: [
12357
+ `Malformed sectioning at "${RoutingSettingsNormalizer.routingPathSegments.join(".")}".`,
12358
+ `The property "$anchor" must be defined with string while ${typeof rawSectionMetadata} found.`
12359
+ ].join(" ")
12360
+ }),
12361
+ title: es_extensions_1.InvalidExternalDataError.localization.defaultTitle,
12362
+ occurrenceLocation: "RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively(compoundParameter)"
12363
+ });
12364
+ }
12365
+ const normalizedSectionMetadata = {
12366
+ $heading: RoutingSettingsNormalizer.normalizeHeading(rawSectionMetadata.$heading, localization),
12367
+ $anchor: rawSectionMetadata.$anchor,
12368
+ $URI: `${parentRouteURI}#${rawSectionMetadata.$anchor}`,
12369
+ ...(0, es_extensions_1.isArbitraryObject)(rawSectionMetadata.$children) ? {
12370
+ $children: RoutingSettingsNormalizer.normalizeSectioningDepthLevelRecursively({
12371
+ rawSectioningOfSpecificDepthLevel: rawSectionMetadata.$children,
12372
+ outputWorkpiece: {},
12373
+ localization,
12374
+ parentRouteURI
12375
+ })
12376
+ } : null
12377
+ };
12378
+ outputWorkpiece[sectionKey] = normalizedSectionMetadata;
12379
+ }
12380
+ return outputWorkpiece;
12381
+ }
12382
+ }
12383
+ exports["default"] = RoutingSettingsNormalizer;
12384
+
12385
+
11882
12386
  /***/ }),
11883
12387
 
11884
12388
  /***/ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/CompiledTypeScriptImporterForPug.ts":
@@ -11907,6 +12411,7 @@ const WebpackConfigGenerator_1 = __importDefault(__webpack_require__(/*! @ECMA_S
11907
12411
  const WebpackSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/WebpackSpecialist */ "./ThirdPartySolutionsSpecialists/WebpackSpecialist.ts"));
11908
12412
  const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/TypeScriptSpecialist */ "./ThirdPartySolutionsSpecialists/TypeScriptSpecialist.ts"));
11909
12413
  /* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
12414
+ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
11910
12415
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
11911
12416
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
11912
12417
  class CompiledInlineTypeScriptImporterForPug extends GulpStreamsBasedTaskExecutor_1.default {
@@ -11950,23 +12455,22 @@ class CompiledInlineTypeScriptImporterForPug extends GulpStreamsBasedTaskExecuto
11950
12455
  }
11951
12456
  })
11952
12457
  });
11953
- /** @see https://webpack.js.org/configuration/entry-context/#entry */
11954
- const webpackEntryPointDefinition = WebpackConfigGenerator_1.default.getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
11955
- entryPointsGroupID_ForLogging: "IMPORTS_FOR_PUG",
11956
- sourceFilesGlobSelectors: [compiledTypeScriptImportingSettings.sourceFileAbsolutePath],
11957
- webpackContext: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
11958
- });
11959
- if ((0, es_extensions_1.isNull)(webpackEntryPointDefinition)) {
12458
+ if (!fs_1.default.existsSync(compiledTypeScriptImportingSettings.sourceFileAbsolutePath)) {
11960
12459
  es_extensions_1.Logger.throwErrorAndLog({
11961
12460
  errorInstance: new es_extensions_nodejs_1.FileNotFoundError({
11962
12461
  customMessage: `The TypeScript file "${compiledTypeScriptImportingSettings.sourceFileAbsolutePath}" for ` +
11963
- "the exporting to Pug was not found. " +
12462
+ "the exporting to Pug was found. " +
11964
12463
  "Please create this file and provide some exports from it."
11965
12464
  }),
11966
12465
  title: es_extensions_nodejs_1.FileNotFoundError.localization.defaultTitle,
11967
12466
  occurrenceLocation: "compiledInlineTypeScriptImporterForPug.constructor(...parameters)"
11968
12467
  });
11969
12468
  }
12469
+ /** @see https://webpack.js.org/configuration/entry-context/#entry */
12470
+ const webpackEntryPointDefinition = WebpackConfigGenerator_1.default.getWebpackEntryObjectRespectiveToExistingEntryPoints({
12471
+ entryPointsSourceFilesAbsolutePaths: [compiledTypeScriptImportingSettings.sourceFileAbsolutePath],
12472
+ webpackContext: projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath
12473
+ });
11970
12474
  this.webpackConfiguration = CompiledInlineTypeScriptImporterForPug.
11971
12475
  getWebpackEntryObjectRespectiveToSpecifiedEntryPointsGroupSettings({
11972
12476
  webpackEntryPointDefinition,
@@ -12079,7 +12583,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
12079
12583
  const MarkupSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupSourceFilesWatcher.ts"));
12080
12584
  /* ─── Superclass ─────────────────────────────────────────────────────────────────────────────────────────────────── */
12081
12585
  const LinterLikeTaskExecutor_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor */ "./ProjectBuilding/Common/TasksExecutors/GulpStreamsBased/LinterLikeTaskExecutor.ts"));
12082
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
12586
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
12083
12587
  const PugPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/PugPreProcessorSpecialist.ts"));
12084
12588
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
12085
12589
  const pug_lint_1 = __importDefault(__webpack_require__(/*! pug-lint */ "pug-lint"));
@@ -12436,7 +12940,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
12436
12940
  const StylesProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingRestrictions.ts"));
12437
12941
  /* ─── Default Settings ───────────────────────────────────────────────────────────────────────────────────────────── */
12438
12942
  const StylesProcessingSettings__Default_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessingSettings__Default */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessingSettings__Default.ts"));
12439
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
12943
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
12440
12944
  const StlintLinterSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StlintLinterSpecialist */ "./ThirdPartySolutionsSpecialists/StlintLinterSpecialist.ts"));
12441
12945
  /* ─── Settings normalizers ───────────────────────────────────────────────────────────────────────────────────────── */
12442
12946
  const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding:Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer */ "./ProjectBuilding/Common/RawSettingsNormalizers/SourceCodeProcessingRawSettingsNormalizer.ts"));
@@ -12779,7 +13283,7 @@ const gulp_stylus_1 = __importDefault(__webpack_require__(/*! gulp-stylus */ "gu
12779
13283
  const gulp_postcss_1 = __importDefault(__webpack_require__(/*! gulp-postcss */ "gulp-postcss"));
12780
13284
  const autoprefixer_1 = __importDefault(__webpack_require__(/*! autoprefixer */ "autoprefixer"));
12781
13285
  const cssnano_1 = __importDefault(__webpack_require__(/*! cssnano */ "cssnano"));
12782
- /* ─── Third-party Solutions Specialises ──────────────────────────────────────────────────────────────────────────── */
13286
+ /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
12783
13287
  const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist.ts"));
12784
13288
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
12785
13289
  const GulpStreamModifier_1 = __importDefault(__webpack_require__(/*! @Utils/GulpStreamModifier */ "./Utils/GulpStreamModifier.ts"));
@@ -13084,6 +13588,27 @@ const ChokidarSpecialistLocalization__English = {
13084
13588
  exports["default"] = ChokidarSpecialistLocalization__English;
13085
13589
 
13086
13590
 
13591
+ /***/ }),
13592
+
13593
+ /***/ "./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts":
13594
+ /*!*****************************************************************!*\
13595
+ !*** ./ThirdPartySolutionsSpecialists/ECMA_ScriptSpecialist.ts ***!
13596
+ \*****************************************************************/
13597
+ /***/ ((__unused_webpack_module, exports) => {
13598
+
13599
+
13600
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
13601
+ class ECMA_ScriptSpecialist {
13602
+ /* [ Fiddle ] https://regex101.com/r/4X0mYk/6 */
13603
+ static partialFilesIncludingDeclarationPatterns = [
13604
+ /* eslint-disable-next-line prefer-named-capture-group --
13605
+ * No simple way to know the capturing group name outside of this file. */
13606
+ /from\s+["']((?:\w|-|\.|\/|:)+)["']/gmu
13607
+ ];
13608
+ }
13609
+ exports["default"] = ECMA_ScriptSpecialist;
13610
+
13611
+
13087
13612
  /***/ }),
13088
13613
 
13089
13614
  /***/ "./ThirdPartySolutionsSpecialists/ESLintLinterSpecialist.ts":
@@ -14796,7 +15321,7 @@ function revisionHash(data) {
14796
15321
  \***********************/
14797
15322
  /***/ ((module) => {
14798
15323
 
14799
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.5.0-alpha.0","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.2","@typescript-eslint/eslint-plugin":"7.12.0","@typescript-eslint/parser":"7.12.0","@vue/compiler-sfc":"3.4.27","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-rc.2","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.10","@yamato-daiwa/style_guides":"0.2.7","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"7.1.2","cssnano":"7.0.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.2","eslint-plugin-vue":"9.26.0","eslint-plugin-vue-pug":"0.6.2","fork-ts-checker-webpack-plugin":"7.3.0","gulp":"4.0.2","gulp-data":"1.3.1","gulp-html-prettify":"0.0.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"10.0.0","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","imagemin-pngquant":"9.0.2","json5-loader":"4.0.1","node-html-parser":"6.1.13","node-notifier":"10.0.1","pa11y":"8.0.0","probe-image-size":"7.2.3","pug3-ast-loader":"0.0.0","pug-lint":"2.7.0","puppeteer":"22.10.0","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"4.0.0","stylus":"0.63.0","stylus-loader":"8.1.0","ts-loader":"9.5.1","vinyl":"2.2.1","vue-loader":"17.4.2","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.91.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.1"},"devDependencies":{"@types/browser-sync":"2.29.0","@types/cssnano":"5.0.0","@types/gulp":"4.0.17","@types/gulp-html-prettify":"0.0.5","@types/gulp-if":"3.0.4","@types/gulp-imagemin":"8.0.6","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.37","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.38","@types/gulp-stylus":"2.7.8","@types/node":"20.14.2","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.4","@types/pug":"2.0.10","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.4.5","webpack-cli":"5.1.4"},"scripts":{"Incremental development building":"webpack --mode development","Production building":"webpack --mode production","Linting":"eslint Source","Tree diagram of source files generating":"tree Source /f"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
15324
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.5.0-alpha.1","description":"The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.","keywords":["build","pug","stylus","tool","typescript"],"engines":{"node":">=18.18.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@stylistic/eslint-plugin":"1.7.2","@typescript-eslint/eslint-plugin":"7.12.0","@typescript-eslint/parser":"7.12.0","@vue/compiler-sfc":"3.4.27","@webdiscus/pug-loader":"2.11.0","@yamato-daiwa/es-extensions":"1.7.0-rc.2","@yamato-daiwa/es-extensions-nodejs":"1.7.0-alpha.10","@yamato-daiwa/style_guides":"0.2.7","autoprefixer":"10.4.19","browser-sync":"3.0.2","css-loader":"7.1.2","cssnano":"7.0.2","eslint":"8.57.0","eslint-plugin-import":"2.29.1","eslint-plugin-node":"11.1.0","eslint-plugin-react":"7.34.2","eslint-plugin-vue":"9.26.0","eslint-plugin-vue-pug":"0.6.2","fork-ts-checker-webpack-plugin":"7.3.0","gulp":"4.0.2","gulp-data":"1.3.1","gulp-html-prettify":"0.0.1","gulp-if":"3.0.0","gulp-imagemin":"7.1.0","gulp-nodemon":"2.5.0","gulp-plumber":"1.2.1","gulp-postcss":"10.0.0","gulp-pug":"5.0.0","gulp-sourcemaps":"3.0.0","gulp-stylus":"3.0.1","imagemin-pngquant":"9.0.2","json5-loader":"4.0.1","node-html-parser":"6.1.13","node-notifier":"10.0.1","pa11y":"8.0.0","probe-image-size":"7.2.3","pug3-ast-loader":"0.0.0","pug-lint":"2.7.0","puppeteer":"22.10.0","rev-hash":"4.1.0","stlint":"1.0.65","stream-combiner2":"1.1.1","style-loader":"4.0.0","stylus":"0.63.0","stylus-loader":"8.1.0","ts-loader":"9.5.1","vinyl":"2.2.1","vue-loader":"17.4.2","vue-style-loader":"4.1.3","w3c-html-validator":"0.8.1","webpack":"5.91.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.8.1"},"devDependencies":{"@types/browser-sync":"2.29.0","@types/cssnano":"5.0.0","@types/gulp":"4.0.17","@types/gulp-html-prettify":"0.0.5","@types/gulp-if":"3.0.4","@types/gulp-imagemin":"8.0.6","@types/gulp-nodemon":"0.0.37","@types/gulp-plumber":"0.0.37","@types/gulp-postcss":"8.0.6","@types/gulp-sourcemaps":"0.0.38","@types/gulp-stylus":"2.7.8","@types/node":"20.14.2","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.4","@types/pug":"2.0.10","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.15","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.4.5","webpack-cli":"5.1.4"},"scripts":{"Incremental development building":"webpack --mode development","Production building":"webpack --mode production","Linting":"eslint Source","Tree diagram of source files generating":"tree Source /f"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
14800
15325
 
14801
15326
  /***/ })
14802
15327