@yamato-daiwa/automation 0.9.0-alpha.0 → 0.9.0-alpha.3

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 +267 -64
  2. package/package.json +20 -20
package/EntryPoint.js CHANGED
@@ -34,7 +34,7 @@ function revisionHash(data) {
34
34
  \***********************/
35
35
  /***/ ((module) => {
36
36
 
37
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.9.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":">=20.0.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@stylistic/eslint-plugin":"5.4.0","@typescript-eslint/eslint-plugin":"8.46.1","@typescript-eslint/parser":"8.46.1","@vue/compiler-sfc":"3.5.22","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.1","@yamato-daiwa/es-extensions-nodejs":"1.8.1","@yamato-daiwa/style_guides":"0.10.1","@yamato-daiwa/universal-reactive-webpack-loader":"0.0.0","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.1","dotenv":"17.2.3","eslint":"9.38.0","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.23.1","eslint-plugin-react":"7.37.5","eslint-plugin-vue":"9.33.0","eslint-plugin-vue-pug":"0.6.2","gulp":"4.0.2","gulp-data":"1.3.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","htmlnano":"2.1.5","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.6","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.1","postcss-loader":"8.2.0","postcss-normalize-stylus-compatible-container-query-syntax":"1.1.0","probe-image-size":"7.2.3","pug-lint":"2.7.0","puppeteer":"24.10.0","require-from-string":"2.0.2","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.2","ts-loader":"9.5.4","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.1.1","webpack":"5.102.1","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-if":"3.0.5","@types/gulp-imagemin":"7.0.3","@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/js-beautify":"1.14.3","@types/node":"22.15.30","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.5","@types/pug":"2.0.10","@types/require-from-string":"1.2.3","@types/vnu-jar":"17.11.2","@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.9.3","webpack-cli":"6.0.1"},"scripts":{"Incremental Development Building":"webpack --mode development","Production Building":"webpack --mode production","Linting":"eslint Source"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"homepage":"https://automation.yamato-daiwa.com/","funding":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation?sponsor=1","bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
37
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.9.0-alpha.3","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":">=20.0.0"},"bin":{"yda":"Executable"},"files":["EntryPoint.js"],"dependencies":{"@eslint-community/eslint-plugin-eslint-comments":"4.5.0","@stylistic/eslint-plugin":"5.6.1","@typescript-eslint/eslint-plugin":"8.51.0","@typescript-eslint/parser":"8.51.0","@vue/compiler-sfc":"3.5.26","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.4","@yamato-daiwa/es-extensions-nodejs":"1.8.4","@yamato-daiwa/style_guides":"0.11.6","@yamato-daiwa/universal-reactive-webpack-loader":"0.1.0","autoprefixer":"10.4.23","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.2","dotenv":"17.2.3","eslint":"9.39.2","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.23.1","eslint-plugin-react":"7.37.5","eslint-plugin-vue":"9.33.0","eslint-plugin-vue-pug":"0.6.2","gulp":"4.0.2","gulp-data":"1.3.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","htmlnano":"2.1.5","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.6","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.1","postcss-loader":"8.2.0","postcss-normalize-stylus-compatible-container-query-syntax":"1.1.2","probe-image-size":"7.2.3","pug-lint":"2.7.0","puppeteer":"24.34.0","require-from-string":"2.0.2","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.2","ts-loader":"9.5.4","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.2.1","webpack":"5.103.0","webpack-node-externals":"3.0.0","webpack-stream":"7.0.0","worker-loader":"3.0.8","yaml-loader":"0.9.0"},"devDependencies":{"@types/browser-sync":"2.29.1","@types/cssnano":"5.0.0","@types/gulp":"4.0.18","@types/gulp-if":"3.0.5","@types/gulp-imagemin":"7.0.3","@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/js-beautify":"1.14.3","@types/node":"22.15.30","@types/node-notifier":"8.0.5","@types/pa11y":"5.3.7","@types/probe-image-size":"7.2.5","@types/pug":"2.0.10","@types/require-from-string":"1.2.3","@types/vnu-jar":"17.11.2","@types/webpack-node-externals":"3.0.4","@types/webpack-stream":"3.2.16","eslint-webpack-plugin":"4.2.0","ts-node":"10.9.2","typescript":"5.9.3","webpack-cli":"6.0.1"},"scripts":{"Incremental Development Building":"webpack --mode development","Production Building":"webpack --mode production","Linting":"eslint Source"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation.git"},"homepage":"https://automation.yamato-daiwa.com/","funding":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation?sponsor=1","bugs":{"url":"https://github.com/TokugawaTakeshi/Yamato-Daiwa-Automation/issues","email":"tokugawa.takesi@gmail.com"}}');
38
38
 
39
39
  /***/ }),
40
40
 
@@ -1730,8 +1730,7 @@ class BrowserCoordinatorRelatedFilesWatcher extends FilesPassiveWatcher_1.defaul
1730
1730
  ID: "BROWSER_COORDINATOR_RELATED_FILES_WATCHER",
1731
1731
  targetFilesGlobSelectors: [
1732
1732
  es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
1733
- basicDirectoryPath: browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath,
1734
- fileNamesExtensions: ["html", "js"]
1733
+ basicDirectoryPath: browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath
1735
1734
  })
1736
1735
  ],
1737
1736
  mustLogEvents: browserLiveReloadingSettingsRepresentative.mustLogOutputFileChangeDetection
@@ -1758,7 +1757,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1758
1757
  return (mod && mod.__esModule) ? mod : { "default": mod };
1759
1758
  };
1760
1759
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1761
- /* ─── Shared state ───────────────────────────────────────────────────────────────────────────────────────────────── */
1760
+ /* ─── Shared State ───────────────────────────────────────────────────────────────────────────────────────────────── */
1762
1761
  const MarkupProcessingSharedState_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingSharedState */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingSharedState.ts"));
1763
1762
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
1764
1763
  const browser_sync_1 = __importDefault(__webpack_require__(/*! browser-sync */ "browser-sync"));
@@ -1768,34 +1767,52 @@ const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensio
1768
1767
  /* ─── Localization ───────────────────────────────────────────────────────────────────────────────────────────────── */
1769
1768
  const BrowserLiveReloaderLocalization_english_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloaderLocalization.english */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloaderLocalization.english.ts"));
1770
1769
  class BrowserLiveReloader {
1770
+ /* ━━━ Static Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
1771
+ /* ┅┅┅ Public ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
1772
+ static selfSingleInstance;
1771
1773
  static localization = BrowserLiveReloaderLocalization_english_1.default;
1772
- static onURI_ChangedEventHandlers = [];
1774
+ /* ┅┅┅ Private ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
1775
+ static onNewPageOpenedEventHandlers = new Map();
1773
1776
  static EXPERIMENTAL_LOGGING = false;
1777
+ /* ━━━ Instance Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
1774
1778
  browserLiveReloadingSettingsRepresentative;
1779
+ markupProcessingSettingsRepresentative;
1780
+ absolutePathsOfSourceFileCorrespondingToViewedPages__forwardSlashesPathSeparators__processingOnDemandModeOnly = new Set();
1775
1781
  waitingForSubsequentFilesWillBeUpdatedCountdown;
1776
- currentHTML_File__EXPERIMENTAL = null;
1782
+ currentHTML_FileAbsolutePath__forwardSlashesPathSeparators = null;
1783
+ /* ━━━ Public Methods ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
1777
1784
  static provideBrowserLiveReloadingIfMust(masterConfigRepresentative) {
1778
1785
  const browserLiveReloadingConfigRepresentative = masterConfigRepresentative.getBrowserLiveReloadingSettingsRepresentativeIfMustProvideBrowserLiveReloading();
1779
1786
  if ((0, es_extensions_1.isNull)(browserLiveReloadingConfigRepresentative)) {
1780
1787
  return (callback) => { callback(); };
1781
1788
  }
1782
- const dataHoldingSelfInstance = new BrowserLiveReloader(browserLiveReloadingConfigRepresentative);
1789
+ const selfInstance = new BrowserLiveReloader(browserLiveReloadingConfigRepresentative, masterConfigRepresentative.markupProcessingSettingsRepresentative);
1790
+ BrowserLiveReloader.selfSingleInstance = selfInstance;
1783
1791
  return (callback) => {
1784
1792
  BrowserCoordinatorRelatedFilesWatcher_1.default.initialize({
1785
- onAnyEventRelatedWithActualFilesHandler: dataHoldingSelfInstance.onAnyChangeInRelatedFiles.
1786
- bind(dataHoldingSelfInstance),
1793
+ onAnyEventRelatedWithActualFilesHandler: selfInstance.onAnyChangeInRelatedFiles.
1794
+ bind(selfInstance),
1787
1795
  browserLiveReloadingSettingsRepresentative: browserLiveReloadingConfigRepresentative
1788
1796
  });
1789
- dataHoldingSelfInstance.initializeBrowsersync();
1797
+ selfInstance.initializeBrowsersync();
1790
1798
  callback();
1791
1799
  };
1792
1800
  }
1793
- static addOnURI_ChangedEventHandler(onURI_ChangedEventHandler) {
1794
- this.onURI_ChangedEventHandlers.push(onURI_ChangedEventHandler);
1801
+ static addOnNewPageOpenedEventHandler({ handlerID, handler }) {
1802
+ BrowserLiveReloader.onNewPageOpenedEventHandlers.set(handlerID, handler);
1803
+ }
1804
+ static reload() {
1805
+ browser_sync_1.default.reload();
1795
1806
  }
1796
- constructor(browserLiveReloadingConfigRepresentative) {
1807
+ static get currentHTML_FileAbsolutePath__forwardSlashesPathSeparators() {
1808
+ return BrowserLiveReloader.selfSingleInstance?.currentHTML_FileAbsolutePath__forwardSlashesPathSeparators ?? null;
1809
+ }
1810
+ /* ━━━ Constructor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
1811
+ constructor(browserLiveReloadingConfigRepresentative, markupProcessingSettingsRepresentative) {
1797
1812
  this.browserLiveReloadingSettingsRepresentative = browserLiveReloadingConfigRepresentative;
1813
+ this.markupProcessingSettingsRepresentative = markupProcessingSettingsRepresentative;
1798
1814
  }
1815
+ /* ━━━ Private Methods ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
1799
1816
  initializeBrowsersync() {
1800
1817
  browser_sync_1.default.init({
1801
1818
  /* [ Browsersync theory ] Either "server" or "proxy" could be specified but not both. */
@@ -1837,12 +1854,28 @@ class BrowserLiveReloader {
1837
1854
  { port: this.browserLiveReloadingSettingsRepresentative.browsersyncUserInterfaceCustomPort } : null
1838
1855
  } :
1839
1856
  false,
1840
- logLevel: "warn",
1841
1857
  notify: this.browserLiveReloadingSettingsRepresentative.mustDisplayBrowsersyncConnectedPopupInBrowser,
1842
1858
  middleware: this.onRequest.bind(this)
1843
1859
  });
1844
1860
  }
1845
- onAnyChangeInRelatedFiles() {
1861
+ onAnyChangeInRelatedFiles(targetFileAbsolutePath__forwardSlashesPathSeparators) {
1862
+ es_extensions_1.Logger.logWarning({
1863
+ badge: { customText: "Experimental" },
1864
+ title: "BrowserLiveReloader.onAnyChangeInRelatedFiles,",
1865
+ description: targetFileAbsolutePath__forwardSlashesPathSeparators,
1866
+ compactLayout: true,
1867
+ mustOutputIf: BrowserLiveReloader.EXPERIMENTAL_LOGGING
1868
+ });
1869
+ /* [ Approach ]
1870
+ * In processing on demand case, the browser live reloading is being triggered by a markup processor on HTML file ready.
1871
+ * */
1872
+ if (this.markupProcessingSettingsRepresentative?.processingOnDemandSettings.enabled === true &&
1873
+ (0, es_extensions_1.extractLastExtensionOfFileName)({
1874
+ targetPath: targetFileAbsolutePath__forwardSlashesPathSeparators,
1875
+ withLeadingDot: true
1876
+ }) === "html") {
1877
+ return;
1878
+ }
1846
1879
  clearTimeout(this.waitingForSubsequentFilesWillBeUpdatedCountdown);
1847
1880
  this.waitingForSubsequentFilesWillBeUpdatedCountdown = setTimeout(() => {
1848
1881
  es_extensions_1.Logger.logInfo({
@@ -1852,45 +1885,66 @@ class BrowserLiveReloader {
1852
1885
  browser_sync_1.default.reload();
1853
1886
  }, (0, es_extensions_1.secondsToMilliseconds)(this.browserLiveReloadingSettingsRepresentative.periodBetweenFileUpdatingAndBrowserReloading__seconds));
1854
1887
  }
1855
- onRequest(request, _response, letPass) {
1888
+ onRequest(request, response, letPass) {
1856
1889
  es_extensions_1.Logger.logWarning({
1857
1890
  badge: { customText: "Experimental" },
1858
- title: "Local Server, Request:",
1891
+ title: "BrowserLiveReloader.onRequest, URI:",
1859
1892
  description: request.url ?? "No URI",
1893
+ compactLayout: true,
1860
1894
  mustOutputIf: BrowserLiveReloader.EXPERIMENTAL_LOGGING
1861
1895
  });
1896
+ /* [ Approach ] Currently, this middleware is only processing on demand feature. */
1897
+ if (this.markupProcessingSettingsRepresentative?.processingOnDemandSettings.enabled !== true) {
1898
+ letPass();
1899
+ return;
1900
+ }
1862
1901
  if ((0, es_extensions_1.isUndefined)(request.url)) {
1863
1902
  letPass();
1864
1903
  return;
1865
1904
  }
1866
- const targetHTML_FileAbsolutePath = request.url === "/" ?
1905
+ const targetHTML_FileAbsolutePath__forwardSlashesPathSeparators = request.url === "/" ?
1867
1906
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
1868
1907
  this.browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath,
1869
1908
  this.browserLiveReloadingSettingsRepresentative.startingFileNameWithExtension
1870
1909
  ], { alwaysForwardSlashSeparators: true }) :
1871
1910
  es_extensions_nodejs_1.ImprovedPath.joinPathSegments([this.browserLiveReloadingSettingsRepresentative.targetFilesRootDirectoryAbsolutePath, request.url], { alwaysForwardSlashSeparators: true });
1872
1911
  if ((0, es_extensions_1.extractLastExtensionOfFileName)({
1873
- targetPath: targetHTML_FileAbsolutePath,
1874
- withLeadingDot: false
1912
+ targetPath: targetHTML_FileAbsolutePath__forwardSlashesPathSeparators, withLeadingDot: false
1875
1913
  }) !== "html") {
1876
1914
  letPass();
1877
1915
  return;
1878
1916
  }
1917
+ const correspondingSourcePugFileAbsolutePath__forwardSlashSeparators = (0, es_extensions_1.getExpectedToBeNonUndefinedMapValue)(MarkupProcessingSharedState_1.default.outputHTML_FilesAndSourcePugFilesAbsolutePathsCorrespondenceMap, targetHTML_FileAbsolutePath__forwardSlashesPathSeparators);
1918
+ const hasPageChanged = this.currentHTML_FileAbsolutePath__forwardSlashesPathSeparators !==
1919
+ targetHTML_FileAbsolutePath__forwardSlashesPathSeparators;
1879
1920
  es_extensions_1.Logger.logWarning({
1880
1921
  badge: { customText: "Experimental" },
1881
- title: "Local Server, Target HTML File",
1882
- description: targetHTML_FileAbsolutePath,
1922
+ title: "BrowserLiveReloader.onRequest, Target HTML File:",
1923
+ description: targetHTML_FileAbsolutePath__forwardSlashesPathSeparators,
1883
1924
  mustOutputIf: BrowserLiveReloader.EXPERIMENTAL_LOGGING,
1884
1925
  additionalData: {
1885
- hasPageChanged: this.currentHTML_File__EXPERIMENTAL !== targetHTML_FileAbsolutePath,
1886
- relatedEntryPointsSourceFiles: Array.from(MarkupProcessingSharedState_1.default.entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap.entries()).
1887
- filter(([, entryPointOutputFileAbsolutePath]) => targetHTML_FileAbsolutePath === entryPointOutputFileAbsolutePath).
1888
- map(([entryPointSourceFileAbsolutePath]) => entryPointSourceFileAbsolutePath)
1926
+ hasPageChanged,
1927
+ relatedEntryPointsSourceFiles: correspondingSourcePugFileAbsolutePath__forwardSlashSeparators
1889
1928
  }
1890
1929
  });
1891
- this.currentHTML_File__EXPERIMENTAL = targetHTML_FileAbsolutePath;
1892
- for (const handler of BrowserLiveReloader.onURI_ChangedEventHandlers) {
1893
- handler(targetHTML_FileAbsolutePath);
1930
+ this.currentHTML_FileAbsolutePath__forwardSlashesPathSeparators =
1931
+ targetHTML_FileAbsolutePath__forwardSlashesPathSeparators;
1932
+ if (hasPageChanged) {
1933
+ for (const handler of BrowserLiveReloader.onNewPageOpenedEventHandlers.values()) {
1934
+ handler({
1935
+ relatedSourcePugFileAbsolutePath__forwardSlashSeparators: correspondingSourcePugFileAbsolutePath__forwardSlashSeparators,
1936
+ HTML_FileAbsolutePath__forwardSlashSeparators: targetHTML_FileAbsolutePath__forwardSlashesPathSeparators
1937
+ });
1938
+ }
1939
+ }
1940
+ if (!this.absolutePathsOfSourceFileCorrespondingToViewedPages__forwardSlashesPathSeparators__processingOnDemandModeOnly.
1941
+ has(correspondingSourcePugFileAbsolutePath__forwardSlashSeparators)) {
1942
+ this.absolutePathsOfSourceFileCorrespondingToViewedPages__forwardSlashesPathSeparators__processingOnDemandModeOnly.
1943
+ add(correspondingSourcePugFileAbsolutePath__forwardSlashSeparators);
1944
+ response.setHeader("Content-Type", "text/html");
1945
+ response.write("<body><h1>Please wait</h1></body>");
1946
+ response.end();
1947
+ return;
1894
1948
  }
1895
1949
  letPass();
1896
1950
  }
@@ -1908,7 +1962,7 @@ exports["default"] = BrowserLiveReloader;
1908
1962
 
1909
1963
 
1910
1964
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1911
- const BrowserLiveReloaderLocalization__English = {
1965
+ const browserLiveReloaderLocalization__english = {
1912
1966
  generateOutputFileChangeDetectionLog: (namedParameters) => ({
1913
1967
  title: "Browser live reloader, file status changing detected",
1914
1968
  description: `\tEvent : ${namedParameters.eventLocalizedInterpretation}\n` +
@@ -1920,7 +1974,7 @@ const BrowserLiveReloaderLocalization__English = {
1920
1974
  description: "The waiting period of other files will be saved elapsed. Browser will be reloaded soon."
1921
1975
  }
1922
1976
  };
1923
- exports["default"] = BrowserLiveReloaderLocalization__English;
1977
+ exports["default"] = browserLiveReloaderLocalization__english;
1924
1978
 
1925
1979
 
1926
1980
  /***/ }),
@@ -3279,7 +3333,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
3279
3333
  var SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid;
3280
3334
  (function (SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid) {
3281
3335
  /* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
3282
- function generatePropertiesSpecification({ entryPointsGroupBuildingModeIndependentSpecificSettingsLocalizedPropertiesSpecification = {}, entryPointsGroupBuildingModeDependentSpecificSettingsLocalizedPropertiesSpecification = {} }) {
3336
+ function generatePropertiesSpecification({ entryPointsGroupBuildingModeIndependentSpecificSettingsLocalizedPropertiesSpecification = {}, entryPointsGroupBuildingModeDependentSpecificSettingsLocalizedPropertiesSpecification }) {
3283
3337
  return {
3284
3338
  $entryPointsGroups: {
3285
3339
  newName: "entryPointsGroups",
@@ -3384,6 +3438,32 @@ var SourceCodeProcessingSettingsGenericProperties__FromFile__RawValid;
3384
3438
  }
3385
3439
  }
3386
3440
  },
3441
+ $onlyWithPenultimateFileNamesExtensions: {
3442
+ type: Array,
3443
+ isUndefinedForbidden: false,
3444
+ isNullForbidden: true,
3445
+ areUndefinedElementsForbidden: true,
3446
+ areNullElementsForbidden: true,
3447
+ minimalElementsCount: 1,
3448
+ element: {
3449
+ type: String
3450
+ }
3451
+ },
3452
+ $excludeFilesWithPenultimateNamesExtensions: {
3453
+ type: Array,
3454
+ isUndefinedForbidden: false,
3455
+ mustBeUndefinedIf: {
3456
+ predicate: ({ rawData__currentObjectDepth: entryPointsGroup }) => (0, es_extensions_1.isNotUndefined)(entryPointsGroup.$onlyWithPenultimateFileNamesExtensions),
3457
+ descriptionForLogging: "`$onlyWithPenultimateFileNamesExtensions` has been specified"
3458
+ },
3459
+ isNullForbidden: true,
3460
+ areUndefinedElementsForbidden: true,
3461
+ areNullElementsForbidden: true,
3462
+ minimalElementsCount: 1,
3463
+ element: {
3464
+ type: String
3465
+ }
3466
+ },
3387
3467
  $singleEntryPointSourceFileRelativePath: {
3388
3468
  newName: "singleEntryPointSourceFileRelativePath",
3389
3469
  type: String,
@@ -5112,7 +5192,7 @@ class CodeSourceFilesWatcher extends FilesPassiveWatcher_1.default {
5112
5192
  es_extensions_1.Logger.logInfo({
5113
5193
  mustOutputIf: this.mustLogEvents,
5114
5194
  badge: { customText: this.LOGGER_BADGE_TEXT },
5115
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Entry Point Source File Added`,
5195
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Entry Point Source File Added`,
5116
5196
  description: targetFileAbsolutePath__forwardSlashesPathSeparators
5117
5197
  });
5118
5198
  for (const handler of Object.values(this.onEntryPointFileAddedEventHandlers)) {
@@ -5123,7 +5203,7 @@ class CodeSourceFilesWatcher extends FilesPassiveWatcher_1.default {
5123
5203
  es_extensions_1.Logger.logInfo({
5124
5204
  mustOutputIf: this.mustLogEvents,
5125
5205
  badge: { customText: this.LOGGER_BADGE_TEXT },
5126
- title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__LOWERCASE} Partial Source File Added`,
5206
+ title: `${this.TARGET_SOURCE_FILES_TYPE__SINGULAR_FORM__CAPITALIZED} Partial Source File Added`,
5127
5207
  description: targetFileAbsolutePath__forwardSlashesPathSeparators
5128
5208
  });
5129
5209
  for (const handler of Object.values(this.onNonEntryPointFileAddedEventHandlers)) {
@@ -7043,7 +7123,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
7043
7123
  var ECMA_ScriptLogicProcessingRestrictions;
7044
7124
  (function (ECMA_ScriptLogicProcessingRestrictions) {
7045
7125
  ECMA_ScriptLogicProcessingRestrictions.supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots = new Set([
7046
- "js", "mjs", "ts", "mts"
7126
+ "js", "mjs", "ts", "mts", "jsx", "tsx"
7047
7127
  ]);
7048
7128
  ECMA_ScriptLogicProcessingRestrictions.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles = new Set([
7049
7129
  "jsx", "tsx", "vue"
@@ -7082,12 +7162,14 @@ const SourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_req
7082
7162
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
7083
7163
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
7084
7164
  class ECMA_ScriptLogicProcessingSettingsRepresentative extends SourceCodeProcessingConfigRepresentative_1.default {
7165
+ /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7166
+ /* ┅┅┅ Superclasses' Requirements ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7085
7167
  /* [ Theory ] Below two fields could be even or not. */
7086
7168
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
7087
7169
  actualFileNameExtensionsWithoutLeadingDots;
7088
- TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "ECMAScript logic";
7089
- TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "ECMAScript logic";
7090
- TASK_NAME_FOR_LOGGING = "ECMAScript Logic Processing";
7170
+ TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "ECMAScript Logic";
7171
+ TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "ECMAScript Logic";
7172
+ /* ┅┅┅ Specific ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
7091
7173
  entryPointsGroupsNormalizedSettingsMappedByReferences;
7092
7174
  relevantEntryPointsGroupsSettings;
7093
7175
  electronSettings;
@@ -8813,8 +8895,8 @@ class WebpackConfigGenerator {
8813
8895
  loader: "ts-loader",
8814
8896
  options: {
8815
8897
  configFile: entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath,
8816
- /* [ Performance Optimization ] Type checking is been executed externally and once for all files. */
8817
- transpileOnly: false,
8898
+ /* [ Performance Optimization ] Type checking is being executed externally and once for all files. */
8899
+ transpileOnly: true,
8818
8900
  /* [ Theory ] This option allows TypeScript to process the code extracted from a single file component.
8819
8901
  * [ Reference ] https://github.com/Microsoft/TypeScript-Vue-Starter#single-file-components */
8820
8902
  appendTsSuffixTo: [/\.vue$/u]
@@ -8849,7 +8931,10 @@ class WebpackConfigGenerator {
8849
8931
  },
8850
8932
  {
8851
8933
  test: /\.ydur\.pug$/u,
8852
- loader: "@yamato-daiwa/universal-reactive-webpack-loader"
8934
+ loader: "@yamato-daiwa/universal-reactive-webpack-loader",
8935
+ options: {
8936
+ debug: false
8937
+ }
8853
8938
  },
8854
8939
  {
8855
8940
  loader: "@webdiscus/pug-loader",
@@ -9225,20 +9310,25 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
9225
9310
  /* ─── Restrictions ───────────────────────────────────────────────────────────────────────────────────────────────── */
9226
9311
  const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessingRestrictions */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessingRestrictions.ts"));
9227
9312
  const PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX */ "./ProjectBuilding/Common/Restrictions/ResourcesReferences/PROCESSABLE_FILES_POINTER_ALIAS_PREFIX.ts"));
9228
- const PLAIN_COPIED_FILES_POINTER_ALIAS_PREFIX_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/Restrictions/ResourcesReferences/PLAIN_COPIED_FILES_POINTER_ALIAS_PREFIX */ "./ProjectBuilding/Common/Restrictions/ResourcesReferences/PLAIN_COPIED_FILES_POINTER_ALIAS_PREFIX.ts"));
9229
9313
  const GulpStreamBasedSourceCodeProcessingConfigRepresentative_1 = __importDefault(__webpack_require__(/*! @ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative */ "./ProjectBuilding/Common/SettingsRepresentatives/GulpStreamBasedSourceCodeProcessingConfigRepresentative.ts"));
9230
9314
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
9231
9315
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
9232
9316
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
9233
9317
  class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
9318
+ /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
9319
+ /* ┅┅┅ Superclasses' Requirements ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
9234
9320
  /* [ Theory ] Below two fields could be even or not. */
9235
9321
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
9236
9322
  actualFileNameExtensionsWithoutLeadingDots;
9237
- TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "Markup";
9238
9323
  TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "Markup";
9239
- TASK_NAME_FOR_LOGGING = "Markup Processing";
9240
- PLAIN_COPIED_FILES_ALIAS_PREFIX = PLAIN_COPIED_FILES_POINTER_ALIAS_PREFIX_1.default;
9324
+ TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "Markup";
9325
+ /* ┅┅┅ Specific ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
9326
+ /* ╍╍╍ Settings ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
9327
+ /* ─── Common ───────────────────────────────────────────────────────────────────────────────────────────────────── */
9241
9328
  WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS;
9329
+ processingOnDemandSettings;
9330
+ /* ╍╍╍ Other ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
9331
+ TASK_NAME_FOR_LOGGING = "Markup Processing";
9242
9332
  entryPointsGroupsNormalizedSettingsMappedByReferences;
9243
9333
  sourceCodeLintingCommonSettings;
9244
9334
  importingFromTypeScriptSettings;
@@ -9250,9 +9340,14 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
9250
9340
  mustValidateHTML;
9251
9341
  mustInspectAccessibility;
9252
9342
  sourceCodeProcessingCommonSettings;
9253
- mustResolveResourcesReferencesToAbsolutePath;
9254
9343
  constructor(normalizedMarkupProcessingSettings, projectBuildingMasterConfigRepresentative) {
9255
9344
  super(projectBuildingMasterConfigRepresentative);
9345
+ this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
9346
+ supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
9347
+ this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedMarkupProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
9348
+ this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedMarkupProcessingSettings.common.
9349
+ secondsBetweenFileUpdatingAndStartingOfRebuilding;
9350
+ this.processingOnDemandSettings = normalizedMarkupProcessingSettings.common.processingOnDemand;
9256
9351
  this.sourceCodeLintingCommonSettings = normalizedMarkupProcessingSettings.linting;
9257
9352
  this.importingFromTypeScriptSettings = normalizedMarkupProcessingSettings.importingFromTypeScript;
9258
9353
  this.importingFromJavaScriptSettings = normalizedMarkupProcessingSettings.importingFromJavaScript;
@@ -9260,11 +9355,6 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
9260
9355
  this.routingSettings = normalizedMarkupProcessingSettings.routing;
9261
9356
  this.relevantEntryPointsGroupsSettings = normalizedMarkupProcessingSettings.relevantEntryPointsGroups;
9262
9357
  this.loggingSettings = normalizedMarkupProcessingSettings.logging;
9263
- this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots = normalizedMarkupProcessingSettings.common.
9264
- supportedEntryPointsSourceFilesNamesExtensionsWithoutLeadingDots;
9265
- this.actualFileNameExtensionsWithoutLeadingDots = (0, es_extensions_1.mergeSets)(this.supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots, normalizedMarkupProcessingSettings.common.supportedAdditionalFilesNamesExtensionsWithoutLeadingDotsOfChildrenFiles);
9266
- this.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS = normalizedMarkupProcessingSettings.common.
9267
- secondsBetweenFileUpdatingAndStartingOfRebuilding;
9268
9358
  this.entryPointsGroupsNormalizedSettingsMappedByReferences = new Map(Array.from(this.relevantEntryPointsGroupsSettings.values()).map((entryPointsGroupSettings) => [
9269
9359
  `${PROCESSABLE_FILES_POINTER_ALIAS_PREFIX_1.default}${entryPointsGroupSettings.ID}`,
9270
9360
  entryPointsGroupSettings
@@ -9272,8 +9362,6 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
9272
9362
  this.mustValidateHTML = Array.from(this.relevantEntryPointsGroupsSettings.values()).some((entryPointsGroupSettings) => entryPointsGroupSettings.HTML_Validation.mustExecute);
9273
9363
  this.mustInspectAccessibility = Array.from(this.relevantEntryPointsGroupsSettings.values()).some((entryPointsGroupSettings) => entryPointsGroupSettings.accessibilityInspection.mustExecute);
9274
9364
  this.sourceCodeProcessingCommonSettings = normalizedMarkupProcessingSettings.common;
9275
- this.mustResolveResourcesReferencesToAbsolutePath = normalizedMarkupProcessingSettings.common.
9276
- mustResolveResourcesReferencesToAbsolutePath;
9277
9365
  }
9278
9366
  /* ━━━ Common ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
9279
9367
  computeOutputFileNameExtension(compoundParameter) {
@@ -9439,6 +9527,7 @@ class MarkupProcessingSettingsRepresentative extends GulpStreamBasedSourceCodePr
9439
9527
  }
9440
9528
  return {
9441
9529
  mustInitialFileBeKept: !areLocalizedVersionsRequiredForCurrentFile,
9530
+ initialSourceFileAbsolutePath: sourceFileAbsolutePath__forwardSlashesSeparators,
9442
9531
  sourceAndOutputAbsolutePathsOfAllVariations,
9443
9532
  absoluteSourcePathsOfAllVariations,
9444
9533
  dataForPugBySourceFilesAbsolutePaths
@@ -9465,6 +9554,10 @@ const MarkupProcessingRestrictions_1 = __importDefault(__webpack_require__(/*! @
9465
9554
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
9466
9555
  const MarkupProcessingSettings__Default = {
9467
9556
  periodBetweenFileUpdatingAndRebuildingStarting__seconds: 1,
9557
+ processingOnDemand: {
9558
+ enabled: false,
9559
+ fullInitialBuilding: false
9560
+ },
9468
9561
  staticPreview: {
9469
9562
  typeScriptConfigurationFileRelativePath: "tsconfig.json"
9470
9563
  },
@@ -9703,12 +9796,14 @@ var MarkupProcessingSettings__FromFile__RawValid;
9703
9796
  areNullTypeValuesForbidden: true,
9704
9797
  minimalEntriesCount: 1,
9705
9798
  allowedKeys: [
9799
+ "$staticPreview",
9706
9800
  "$localDevelopment",
9707
9801
  "$testing",
9708
9802
  "$staging",
9709
9803
  "$production"
9710
9804
  ],
9711
9805
  keysRenamings: {
9806
+ $staticPreview: ConsumingProjectBuildingModes_1.default.staticPreview,
9712
9807
  $localDevelopment: ConsumingProjectBuildingModes_1.default.localDevelopment,
9713
9808
  $testing: ConsumingProjectBuildingModes_1.default.testing,
9714
9809
  $staging: ConsumingProjectBuildingModes_1.default.staging,
@@ -9720,16 +9815,50 @@ var MarkupProcessingSettings__FromFile__RawValid;
9720
9815
  $secondsBetweenFileUpdatingAndStartingOfRebuilding: {
9721
9816
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
9722
9817
  type: Number,
9723
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
9818
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveRealNumber,
9724
9819
  isNaN_Forbidden: true,
9725
9820
  isUndefinedForbidden: false,
9726
9821
  isNullForbidden: true
9727
9822
  },
9823
+ // TODO Must be undefined if static preview
9728
9824
  $mustResolveResourcesPointersToRelativePaths: {
9729
9825
  newName: "mustResolveResourcesPointersToRelativePaths",
9730
9826
  type: Boolean,
9731
9827
  isUndefinedForbidden: false,
9732
9828
  isNullForbidden: true
9829
+ },
9830
+ $processingOnDemand: {
9831
+ newName: "processingOnDemand",
9832
+ type: Object,
9833
+ isUndefinedForbidden: false,
9834
+ mustBeUndefinedIf: {
9835
+ predicate: ({ targetPropertyDotSeparatedPath }) => ![
9836
+ "$staticPreview",
9837
+ "$localDevelopment"
9838
+ /* eslint-disable-next-line @typescript-eslint/no-magic-numbers --
9839
+ * No clear name for `-2` value.
9840
+ * Refers to the last 2 elements in split full qualified name like `$localDevelopment.
9841
+ * $processingOnDemand` in
9842
+ * `$projectBuilding.$markupProcessing.$common.$buildingModeDependent.$localDevelopment.
9843
+ * $processingOnDemand`. */
9844
+ ].includes((0, es_extensions_1.splitString)(targetPropertyDotSeparatedPath, ".").slice(-2)[0]),
9845
+ descriptionForLogging: "building mode is production-like (testing, staging, production)"
9846
+ },
9847
+ mustTransformNullToUndefined: true,
9848
+ properties: {
9849
+ $enabled: {
9850
+ newName: "enabled",
9851
+ type: Boolean,
9852
+ isUndefinedForbidden: false,
9853
+ isNullForbidden: true
9854
+ },
9855
+ $fullInitialBuilding: {
9856
+ newName: "fullInitialBuilding",
9857
+ type: Boolean,
9858
+ isUndefinedForbidden: false,
9859
+ isNullForbidden: true
9860
+ }
9861
+ }
9733
9862
  }
9734
9863
  }
9735
9864
  }
@@ -10181,7 +10310,15 @@ class MarkupProcessingSharedState {
10181
10310
  static importsFromTypeScript;
10182
10311
  static importsFromJavaScript;
10183
10312
  static pagesVariationsMetadata = new Map();
10184
- static get entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap() {
10313
+ /**
10314
+ * @description
10315
+ * For the state-dependent variations of static preview and/or static localizations cases, the output files number is
10316
+ * greater than the number of source ones. To resolve internal links like
10317
+ * `@Pages/Task/Management/TasksManagementPage__Loading.english` to file
10318
+ * `[PagesDirectory]/Task/Management/TasksManagementPage.pug`, the path to the fictive
10319
+ * `[PagesDirectory]/Task/Management/TasksManagementPageLoading.english.pug` file must be stored.
10320
+ */
10321
+ static get entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap__includingFictiveOnes() {
10185
10322
  return Array.from(MarkupProcessingSharedState.pagesVariationsMetadata.values()).
10186
10323
  reduce((interimConcatenatedMap, { sourceAndOutputAbsolutePathsOfAllVariations }) => (0, es_extensions_1.addEntriesToMap)({
10187
10324
  targetMap: interimConcatenatedMap,
@@ -10189,6 +10326,15 @@ class MarkupProcessingSharedState {
10189
10326
  newEntries: sourceAndOutputAbsolutePathsOfAllVariations
10190
10327
  }), new Map());
10191
10328
  }
10329
+ static get outputHTML_FilesAndSourcePugFilesAbsolutePathsCorrespondenceMap() {
10330
+ return Array.from(MarkupProcessingSharedState.pagesVariationsMetadata.values()).
10331
+ reduce((interimConcatenatedMap, { initialSourceFileAbsolutePath, sourceAndOutputAbsolutePathsOfAllVariations }) => (0, es_extensions_1.addEntriesToMap)({
10332
+ targetMap: interimConcatenatedMap,
10333
+ mutably: true,
10334
+ newEntries: Array.from(sourceAndOutputAbsolutePathsOfAllVariations.values()).
10335
+ map((outputHTML_FieldAbsolutePath) => [outputHTML_FieldAbsolutePath, initialSourceFileAbsolutePath])
10336
+ }), new Map());
10337
+ }
10192
10338
  }
10193
10339
  exports["default"] = MarkupProcessingSharedState;
10194
10340
 
@@ -10239,6 +10385,7 @@ const htmlnano_1 = __importDefault(__webpack_require__(/*! htmlnano */ "htmlnano
10239
10385
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
10240
10386
  const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
10241
10387
  const node_html_parser_1 = __webpack_require__(/*! node-html-parser */ "node-html-parser");
10388
+ const BrowserLiveReloader_1 = __importDefault(__webpack_require__(/*! @BrowserLiveReloading/BrowserLiveReloader */ "./ProjectBuilding/BrowserLiveReloading/BrowserLiveReloader.ts"));
10242
10389
  class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
10243
10390
  static CACHED_ACCESSIBILITY_INSPECTION_RESULTS_DIRECTORY_NAME = "AccessibilityInspection";
10244
10391
  static ENTRY_POINTS_AND_PARTIAL_FILES_MAPPING_CACHE_FILE_NAME_WITH_EXTENSION = "MarkupEntryPointsAndAffiliatedFilesMappingCache.json";
@@ -10316,13 +10463,24 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
10316
10463
  handlerID: "ON_MARKUP_ENTRY_POINT_FILE_DELETED--BY_MARKUP_PROCESSOR",
10317
10464
  handler: MarkupProcessor.onEntryPointFileDeleted
10318
10465
  });
10466
+ if (markupProcessingSettingsRepresentative.processingOnDemandSettings.enabled) {
10467
+ BrowserLiveReloader_1.default.addOnNewPageOpenedEventHandler({
10468
+ handlerID: "ON_PAGE_CHANGE_EVENT_HANDLER--BY_MARKUP_PROCESSOR",
10469
+ handler({ relatedSourcePugFileAbsolutePath__forwardSlashSeparators }) {
10470
+ dataHoldingSelfInstance.processEntryPoints([relatedSourcePugFileAbsolutePath__forwardSlashSeparators])();
10471
+ }
10472
+ });
10473
+ if (!markupProcessingSettingsRepresentative.processingOnDemandSettings.fullInitialBuilding) {
10474
+ return (0, createImmediatelyEndingEmptyStream_1.default)();
10475
+ }
10476
+ }
10319
10477
  }
10320
10478
  return dataHoldingSelfInstance.processEntryPoints(markupProcessingSettingsRepresentative.initialRelevantEntryPointsSourceFilesAbsolutePaths);
10321
10479
  }
10322
10480
  constructor(markupProcessingSettingsRepresentative, projectBuildingMasterConfigRepresentative) {
10323
10481
  super({
10324
10482
  projectBuildingMasterConfigRepresentative,
10325
- taskTitleForLogging: "Markup Processing"
10483
+ taskTitleForLogging: markupProcessingSettingsRepresentative.TASK_NAME_FOR_LOGGING
10326
10484
  });
10327
10485
  this.logging = {
10328
10486
  pathsOfFilesWillBeProcessed: markupProcessingSettingsRepresentative.loggingSettings.filesPaths,
@@ -10508,6 +10666,10 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
10508
10666
  AccessibilityInspector_1.default.reportCachedValidationsResultsAndFinalize();
10509
10667
  }
10510
10668
  }
10669
+ if (this.markupProcessingSettingsRepresentative.processingOnDemandSettings.enabled) {
10670
+ // TODO Грохнется, если BrowserSYnc Не готов
10671
+ BrowserLiveReloader_1.default.reload();
10672
+ }
10511
10673
  }
10512
10674
  /* ━━━ Rebuilding ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
10513
10675
  onSourceFilesWatcherEmitsAnyEvent(targetFileAbsolutePath__forwardSlashesSeparators) {
@@ -10515,10 +10677,21 @@ class MarkupProcessor extends GulpStreamsBasedTaskExecutor_1.default {
10515
10677
  if ((0, es_extensions_1.isNotNull)(this.subsequentFilesStateChangeTimeout)) {
10516
10678
  clearTimeout(this.subsequentFilesStateChangeTimeout);
10517
10679
  }
10518
- this.subsequentFilesStateChangeTimeout = setTimeout(() => {
10519
- this.processEntryPoints(this.sourceCodeSelectiveReprocessingHelper?.getAbsolutePathsOfEntryPointsWhichMustBeProcessed(this.absolutePathOfFilesWaitingForReProcessing) ?? [])();
10520
- this.absolutePathOfFilesWaitingForReProcessing.clear();
10521
- }, (0, es_extensions_1.secondsToMilliseconds)(this.markupProcessingSettingsRepresentative.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS));
10680
+ this.subsequentFilesStateChangeTimeout = setTimeout(this.onSubsequentFilesStateChangeTimeoutExpired.bind(this), (0, es_extensions_1.secondsToMilliseconds)(this.markupProcessingSettingsRepresentative.WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS));
10681
+ }
10682
+ onSubsequentFilesStateChangeTimeoutExpired() {
10683
+ if (this.markupProcessingSettingsRepresentative.processingOnDemandSettings.enabled) {
10684
+ const currentHTML_FileAbsolutePath__forwardSlashesPathSeparators = BrowserLiveReloader_1.default.currentHTML_FileAbsolutePath__forwardSlashesPathSeparators;
10685
+ if ((0, es_extensions_1.isNotNull)(currentHTML_FileAbsolutePath__forwardSlashesPathSeparators)) {
10686
+ this.processEntryPoints([
10687
+ (0, es_extensions_1.getExpectedToBeNonUndefinedMapValue)(MarkupProcessingSharedState_1.default.outputHTML_FilesAndSourcePugFilesAbsolutePathsCorrespondenceMap, currentHTML_FileAbsolutePath__forwardSlashesPathSeparators)
10688
+ ])();
10689
+ this.absolutePathOfFilesWaitingForReProcessing.clear();
10690
+ return;
10691
+ }
10692
+ }
10693
+ this.processEntryPoints(this.sourceCodeSelectiveReprocessingHelper?.getAbsolutePathsOfEntryPointsWhichMustBeProcessed(this.absolutePathOfFilesWaitingForReProcessing) ?? [])();
10694
+ this.absolutePathOfFilesWaitingForReProcessing.clear();
10522
10695
  }
10523
10696
  onEntryPointFileAdded(targetFileAbsolutePath__forwardSlashesSeparators) {
10524
10697
  MarkupProcessingSharedState_1.default.pagesVariationsMetadata.set(targetFileAbsolutePath__forwardSlashesSeparators, this.markupProcessingSettingsRepresentative.createPageVariationsMetadata(targetFileAbsolutePath__forwardSlashesSeparators));
@@ -12481,7 +12654,7 @@ class ResourcesPointersResolverForHTML {
12481
12654
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots: this.markupProcessingSettingsRepresentative.
12482
12655
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots,
12483
12656
  sourceAndOutputFilesAbsolutePathsCorrespondenceMap: MarkupProcessingSharedState_1.default.
12484
- entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap,
12657
+ entryPointsSourceAndOutputFilesAbsolutePathsCorrespondenceMap__includingFictiveOnes,
12485
12658
  fileTypeForLogging__singularForm: this.markupProcessingSettingsRepresentative.
12486
12659
  TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM,
12487
12660
  fileTypeForLogging__pluralForm: this.markupProcessingSettingsRepresentative.
@@ -13122,7 +13295,21 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
13122
13295
  common?.
13123
13296
  buildingModeDependent?.[dataHoldingSelfInstance.consumingProjectBuildingMode]?.
13124
13297
  secondsBetweenFileUpdatingAndStartingOfRebuilding ??
13125
- MarkupProcessingSettings__Default_1.default.periodBetweenFileUpdatingAndRebuildingStarting__seconds
13298
+ MarkupProcessingSettings__Default_1.default.periodBetweenFileUpdatingAndRebuildingStarting__seconds,
13299
+ processingOnDemand: {
13300
+ enabled: dataHoldingSelfInstance.markupProcessingSettings__fromFile__rawValid.
13301
+ common?.
13302
+ buildingModeDependent?.[dataHoldingSelfInstance.consumingProjectBuildingMode]?.
13303
+ processingOnDemand?.
13304
+ enabled ??
13305
+ MarkupProcessingSettings__Default_1.default.processingOnDemand.enabled,
13306
+ fullInitialBuilding: dataHoldingSelfInstance.markupProcessingSettings__fromFile__rawValid.
13307
+ common?.
13308
+ buildingModeDependent?.[dataHoldingSelfInstance.consumingProjectBuildingMode]?.
13309
+ processingOnDemand?.
13310
+ fullInitialBuilding ??
13311
+ MarkupProcessingSettings__Default_1.default.processingOnDemand.fullInitialBuilding
13312
+ }
13126
13313
  },
13127
13314
  linting: dataHoldingSelfInstance.normalizeLintingSettings(),
13128
13315
  ...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.importingFromTypeScript) ?
@@ -14829,12 +15016,16 @@ const GulpStreamBasedSourceCodeProcessingConfigRepresentative_1 = __importDefaul
14829
15016
  /* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
14830
15017
  const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
14831
15018
  class StylesProcessingSettingsRepresentative extends GulpStreamBasedSourceCodeProcessingConfigRepresentative_1.default {
15019
+ /* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
15020
+ /* ┅┅┅ Superclasses' Requirements ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
14832
15021
  /* [ Theory ] Below two fields could be even or not. */
14833
15022
  supportedEntryPointsSourceFileNameExtensionsWithoutLeadingDots;
14834
15023
  actualFileNameExtensionsWithoutLeadingDots;
14835
15024
  TARGET_FILES_KIND_FOR_LOGGING__SINGULAR_FORM = "Stylesheet";
14836
15025
  TARGET_FILES_KIND_FOR_LOGGING__PLURAL_FORM = "Stylesheets";
14837
- TASK_NAME_FOR_LOGGING = "Styles Processing";
15026
+ /* ┅┅┅ Specific ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ */
15027
+ /* ╍╍╍ Settings ╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍ */
15028
+ /* ─── Common ───────────────────────────────────────────────────────────────────────────────────────────────────── */
14838
15029
  WAITING_FOR_SUBSEQUENT_FILES_WILL_SAVED_PERIOD__SECONDS;
14839
15030
  entryPointsGroupsNormalizedSettingsMappedByReferences;
14840
15031
  sourceCodeLintingCommonSettings;
@@ -14962,7 +15153,7 @@ var StylesProcessingSettings__FromFile__RawValid;
14962
15153
  $secondsBetweenFileUpdatingAndStartingOfRebuilding: {
14963
15154
  newName: "secondsBetweenFileUpdatingAndStartingOfRebuilding",
14964
15155
  type: Number,
14965
- numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.naturalNumber,
15156
+ numbersSet: es_extensions_1.RawObjectDataProcessor.NumbersSets.positiveRealNumber,
14966
15157
  isNaN_Forbidden: true,
14967
15158
  isUndefinedForbidden: false,
14968
15159
  isNullForbidden: true
@@ -15097,6 +15288,7 @@ const gulp_stylus_1 = __importDefault(__webpack_require__(/*! gulp-stylus */ "gu
15097
15288
  const gulp_postcss_1 = __importDefault(__webpack_require__(/*! gulp-postcss */ "gulp-postcss"));
15098
15289
  const autoprefixer_1 = __importDefault(__webpack_require__(/*! autoprefixer */ "autoprefixer"));
15099
15290
  const cssnano_1 = __importDefault(__webpack_require__(/*! cssnano */ "cssnano"));
15291
+ const postcss_normalize_stylus_compatible_container_query_syntax_1 = __importDefault(__webpack_require__(/*! postcss-normalize-stylus-compatible-container-query-syntax */ "postcss-normalize-stylus-compatible-container-query-syntax"));
15100
15292
  /* ─── Third-party Solutions Specialists ──────────────────────────────────────────────────────────────────────────── */
15101
15293
  const StylusPreProcessorSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist */ "./ThirdPartySolutionsSpecialists/StylusPreProcessorSpecialist.ts"));
15102
15294
  /* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
@@ -15204,6 +15396,7 @@ class StylesProcessor extends GulpStreamsBasedTaskExecutor_1.default {
15204
15396
  })).
15205
15397
  pipe((0, gulp_postcss_1.default)(() => ({
15206
15398
  plugins: [
15399
+ postcss_normalize_stylus_compatible_container_query_syntax_1.default,
15207
15400
  autoprefixer_1.default,
15208
15401
  (0, cssnano_1.default)({
15209
15402
  preset: [
@@ -17215,6 +17408,16 @@ module.exports = require("path");
17215
17408
 
17216
17409
  /***/ }),
17217
17410
 
17411
+ /***/ "postcss-normalize-stylus-compatible-container-query-syntax":
17412
+ /*!*****************************************************************************!*\
17413
+ !*** external "postcss-normalize-stylus-compatible-container-query-syntax" ***!
17414
+ \*****************************************************************************/
17415
+ /***/ ((module) => {
17416
+
17417
+ module.exports = require("postcss-normalize-stylus-compatible-container-query-syntax");
17418
+
17419
+ /***/ }),
17420
+
17218
17421
  /***/ "probe-image-size":
17219
17422
  /*!***********************************!*\
17220
17423
  !*** external "probe-image-size" ***!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamato-daiwa/automation",
3
- "version": "0.9.0-alpha.0",
3
+ "version": "0.9.0-alpha.3",
4
4
  "description": "The project building tool with declarative YAML configuration specializing on Pug, Stylus and TypeScript as source code languages.",
5
5
  "keywords": [
6
6
  "build",
@@ -20,21 +20,21 @@
20
20
  ],
21
21
  "dependencies": {
22
22
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
23
- "@stylistic/eslint-plugin": "5.4.0",
24
- "@typescript-eslint/eslint-plugin": "8.46.1",
25
- "@typescript-eslint/parser": "8.46.1",
26
- "@vue/compiler-sfc": "3.5.22",
23
+ "@stylistic/eslint-plugin": "5.6.1",
24
+ "@typescript-eslint/eslint-plugin": "8.51.0",
25
+ "@typescript-eslint/parser": "8.51.0",
26
+ "@vue/compiler-sfc": "3.5.26",
27
27
  "@webdiscus/pug-loader": "2.11.1",
28
- "@yamato-daiwa/es-extensions": "1.8.1",
29
- "@yamato-daiwa/es-extensions-nodejs": "1.8.1",
30
- "@yamato-daiwa/style_guides": "0.10.1",
31
- "@yamato-daiwa/universal-reactive-webpack-loader": "0.0.0",
32
- "autoprefixer": "10.4.21",
28
+ "@yamato-daiwa/es-extensions": "1.8.4",
29
+ "@yamato-daiwa/es-extensions-nodejs": "1.8.4",
30
+ "@yamato-daiwa/style_guides": "0.11.6",
31
+ "@yamato-daiwa/universal-reactive-webpack-loader": "0.1.0",
32
+ "autoprefixer": "10.4.23",
33
33
  "browser-sync": "3.0.4",
34
34
  "css-loader": "7.1.2",
35
- "cssnano": "7.1.1",
35
+ "cssnano": "7.1.2",
36
36
  "dotenv": "17.2.3",
37
- "eslint": "9.38.0",
37
+ "eslint": "9.39.2",
38
38
  "eslint-plugin-import": "2.32.0",
39
39
  "eslint-plugin-n": "17.23.1",
40
40
  "eslint-plugin-react": "7.37.5",
@@ -59,10 +59,10 @@
59
59
  "node-notifier": "10.0.1",
60
60
  "pa11y": "9.0.1",
61
61
  "postcss-loader": "8.2.0",
62
- "postcss-normalize-stylus-compatible-container-query-syntax": "1.1.0",
62
+ "postcss-normalize-stylus-compatible-container-query-syntax": "1.1.2",
63
63
  "probe-image-size": "7.2.3",
64
64
  "pug-lint": "2.7.0",
65
- "puppeteer": "24.10.0",
65
+ "puppeteer": "24.34.0",
66
66
  "require-from-string": "2.0.2",
67
67
  "rev-hash": "4.1.0",
68
68
  "stlint": "1.0.65",
@@ -75,17 +75,17 @@
75
75
  "vnu-jar": "24.10.17",
76
76
  "vue-loader": "17.4.2",
77
77
  "vue-style-loader": "4.1.3",
78
- "vue-tsc": "3.1.1",
79
- "webpack": "5.102.1",
78
+ "vue-tsc": "3.2.1",
79
+ "webpack": "5.103.0",
80
80
  "webpack-node-externals": "3.0.0",
81
81
  "webpack-stream": "7.0.0",
82
82
  "worker-loader": "3.0.8",
83
- "yaml-loader": "0.8.1"
83
+ "yaml-loader": "0.9.0"
84
84
  },
85
85
  "devDependencies": {
86
- "@types/browser-sync": "2.29.0",
86
+ "@types/browser-sync": "2.29.1",
87
87
  "@types/cssnano": "5.0.0",
88
- "@types/gulp": "4.0.17",
88
+ "@types/gulp": "4.0.18",
89
89
  "@types/gulp-if": "3.0.5",
90
90
  "@types/gulp-imagemin": "7.0.3",
91
91
  "@types/gulp-nodemon": "0.0.37",
@@ -102,7 +102,7 @@
102
102
  "@types/require-from-string": "1.2.3",
103
103
  "@types/vnu-jar": "17.11.2",
104
104
  "@types/webpack-node-externals": "3.0.4",
105
- "@types/webpack-stream": "3.2.15",
105
+ "@types/webpack-stream": "3.2.16",
106
106
  "eslint-webpack-plugin": "4.2.0",
107
107
  "ts-node": "10.9.2",
108
108
  "typescript": "5.9.3",