@yamato-daiwa/automation 0.7.0-alpha.7 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/EntryPoint.js +370 -233
- package/package.json +15 -16
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.7.0
|
|
37
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@yamato-daiwa/automation","version":"0.7.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.2.2","@typescript-eslint/eslint-plugin":"8.38.0","@typescript-eslint/parser":"8.38.0","@vue/compiler-sfc":"3.5.18","@webdiscus/pug-loader":"2.11.1","@yamato-daiwa/es-extensions":"1.8.0-rc.1","@yamato-daiwa/es-extensions-nodejs":"1.8.0-rc.1","@yamato-daiwa/style_guides":"0.8.1","autoprefixer":"10.4.21","browser-sync":"3.0.4","css-loader":"7.1.2","cssnano":"7.1.0","dotenv":"16.5.0","eslint":"9.32.0","eslint-plugin-import":"2.32.0","eslint-plugin-n":"17.21.3","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.2","imagemin-pngquant":"9.0.2","js-beautify":"1.15.4","json5-loader":"4.0.1","nanoid":"5.1.5","node-html-parser":"7.0.1","node-notifier":"10.0.1","pa11y":"9.0.0","probe-image-size":"7.2.3","pug-lint":"2.7.0","pug3-ast-loader":"0.0.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.1","ts-loader":"9.5.2","vinyl":"2.2.1","vnu-jar":"24.10.17","vue-loader":"17.4.2","vue-style-loader":"4.1.3","vue-tsc":"3.0.5","webpack":"5.101.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-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.8.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
|
|
|
@@ -227,6 +227,7 @@ const ProjectBuildingMasterConfigRepresentative_1 = __importDefault(__webpack_re
|
|
|
227
227
|
/* ─── Tasks Runners ──────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
228
228
|
const MarkupProcessor_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/MarkupProcessor */ "./ProjectBuilding/SourceCodeProcessing/Markup/MarkupProcessor.ts"));
|
|
229
229
|
const MarkupSourceCodeLinter_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Subtasks/Linting/MarkupSourceCodeLinter */ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/Linting/MarkupSourceCodeLinter.ts"));
|
|
230
|
+
const TypeScriptTypesChecker_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/Subtasks/TypeScriptTypesChecker */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/TypeScriptTypesChecker.ts"));
|
|
230
231
|
const CompiledTypeScriptImporterForPug_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Subtasks/CompiledTypeScriptImporterForPug */ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/CompiledTypeScriptImporterForPug.ts"));
|
|
231
232
|
const JavaScriptImporterForPug_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/Subtasks/JavaScriptImporterForPug */ "./ProjectBuilding/SourceCodeProcessing/Markup/Subtasks/JavaScriptImporterForPug.ts"));
|
|
232
233
|
const StylesProcessor_1 = __importDefault(__webpack_require__(/*! @StylesProcessing/StylesProcessor */ "./ProjectBuilding/SourceCodeProcessing/Styles/StylesProcessor.ts"));
|
|
@@ -247,7 +248,7 @@ const FilesMasterWatcher_1 = __importDefault(__webpack_require__(/*! @ProjectBui
|
|
|
247
248
|
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
248
249
|
class ProjectBuilder {
|
|
249
250
|
static buildProject({ consumingProjectRootDirectoryAbsolutePath, projectBuildingConfig__fromConsole, rawConfigFromFile }) {
|
|
250
|
-
const rawDataProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawConfigFromFile, ProjectBuildingConfig__FromFile__RawValid_1.default.propertiesSpecification);
|
|
251
|
+
const rawDataProcessingResult = es_extensions_1.RawObjectDataProcessor.process(rawConfigFromFile, ProjectBuildingConfig__FromFile__RawValid_1.default.propertiesSpecification, { processingApproach: es_extensions_1.RawObjectDataProcessor.ProcessingApproaches.assemblingOfNewObject });
|
|
251
252
|
if (rawDataProcessingResult.isRawDataInvalid) {
|
|
252
253
|
es_extensions_1.Logger.throwErrorAndLog({
|
|
253
254
|
errorInstance: new es_extensions_1.InvalidConfigError({
|
|
@@ -269,6 +270,7 @@ class ProjectBuilder {
|
|
|
269
270
|
const GULP_TASK_NAME = "BUILD_PROJECT";
|
|
270
271
|
gulp_1.default.task(GULP_TASK_NAME, gulp_1.default.parallel([
|
|
271
272
|
MarkupSourceCodeLinter_1.default.provideLintingIfMust(masterConfigRepresentative),
|
|
273
|
+
TypeScriptTypesChecker_1.default.provideCheckingIfMust(masterConfigRepresentative),
|
|
272
274
|
ECMA_ScriptSourceCodeLinter_1.default.provideLintingIfMust(masterConfigRepresentative),
|
|
273
275
|
gulp_1.default.series([
|
|
274
276
|
gulp_1.default.parallel([
|
|
@@ -5312,8 +5314,8 @@ const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
|
|
|
5312
5314
|
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
5313
5315
|
const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
|
|
5314
5316
|
class PlainCopyingRawSettingsNormalizer {
|
|
5315
|
-
static normalize({ plainCopyingSettings__fromFile__rawValid, commonSettings__normalized }) {
|
|
5316
|
-
const explicitlySpecifiedActualFilesGroupsIDs =
|
|
5317
|
+
static normalize({ plainCopyingSettings__fromFile__rawValid, commonSettings__normalized: { tasksAndSourceFilesSelection, projectRootDirectoryAbsolutePath, projectBuildingMode } }) {
|
|
5318
|
+
const explicitlySpecifiedActualFilesGroupsIDs = tasksAndSourceFilesSelection?.plainCopying ?? [];
|
|
5317
5319
|
const filesGroups = {};
|
|
5318
5320
|
for (const [filesGroupID, filesGroup__rawValid__fromFile] of Object.entries(plainCopyingSettings__fromFile__rawValid.filesGroups)) {
|
|
5319
5321
|
if (explicitlySpecifiedActualFilesGroupsIDs.length > 0 &&
|
|
@@ -5322,27 +5324,29 @@ class PlainCopyingRawSettingsNormalizer {
|
|
|
5322
5324
|
}
|
|
5323
5325
|
const aliasName = filesGroup__rawValid__fromFile.aliasName ?? filesGroupID;
|
|
5324
5326
|
if ("sourceFileRelativePath" in filesGroup__rawValid__fromFile) {
|
|
5325
|
-
const filesSingularGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile = filesGroup__rawValid__fromFile.buildingModeDependent[
|
|
5327
|
+
const filesSingularGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile = filesGroup__rawValid__fromFile.buildingModeDependent[projectBuildingMode];
|
|
5326
5328
|
if ((0, es_extensions_1.isUndefined)(filesSingularGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile)) {
|
|
5327
5329
|
continue;
|
|
5328
5330
|
}
|
|
5329
5331
|
filesGroups[filesGroupID] = PlainCopyingRawSettingsNormalizer.normalizeFilesSingularGroupSettings({
|
|
5330
|
-
projectRootDirectoryAbsolutePath
|
|
5332
|
+
projectRootDirectoryAbsolutePath,
|
|
5331
5333
|
sourceFileRelativePath: filesGroup__rawValid__fromFile.sourceFileRelativePath,
|
|
5332
5334
|
aliasName,
|
|
5333
5335
|
filesSingularGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile
|
|
5334
5336
|
});
|
|
5335
5337
|
}
|
|
5336
5338
|
else {
|
|
5337
|
-
const filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile = filesGroup__rawValid__fromFile.buildingModeDependent[
|
|
5339
|
+
const filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile = filesGroup__rawValid__fromFile.buildingModeDependent[projectBuildingMode];
|
|
5338
5340
|
if ((0, es_extensions_1.isUndefined)(filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile)) {
|
|
5339
5341
|
continue;
|
|
5340
5342
|
}
|
|
5341
5343
|
filesGroups[filesGroupID] = PlainCopyingRawSettingsNormalizer.normalizeFilesPluralGroupSettings({
|
|
5342
|
-
projectRootDirectoryAbsolutePath
|
|
5344
|
+
projectRootDirectoryAbsolutePath,
|
|
5343
5345
|
sourceTopDirectoryRelativePath: filesGroup__rawValid__fromFile.sourceTopDirectoryRelativePath,
|
|
5344
5346
|
fileNameLastExtensions: filesGroup__rawValid__fromFile.fileNameLastExtensions,
|
|
5345
5347
|
aliasName,
|
|
5348
|
+
excludedSubdirectoriesPathsRelativeToAssetsGroupSourceTopDirectory: filesGroup__rawValid__fromFile.excludeSubdirectoriesRelativePaths,
|
|
5349
|
+
excludedFilesPathsRelativeToAssetsGroupSourceTopDirectory: filesGroup__rawValid__fromFile.excludeFilesRelativePaths,
|
|
5346
5350
|
filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile
|
|
5347
5351
|
});
|
|
5348
5352
|
}
|
|
@@ -5384,7 +5388,7 @@ class PlainCopyingRawSettingsNormalizer {
|
|
|
5384
5388
|
outputFileAbsolutePath
|
|
5385
5389
|
};
|
|
5386
5390
|
}
|
|
5387
|
-
static normalizeFilesPluralGroupSettings({ projectRootDirectoryAbsolutePath, sourceTopDirectoryRelativePath, fileNameLastExtensions, aliasName, filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile }) {
|
|
5391
|
+
static normalizeFilesPluralGroupSettings({ projectRootDirectoryAbsolutePath, sourceTopDirectoryRelativePath, fileNameLastExtensions, excludedSubdirectoriesPathsRelativeToAssetsGroupSourceTopDirectory = [], excludedFilesPathsRelativeToAssetsGroupSourceTopDirectory = [], aliasName, filesPluralGroupSettingsActualForCurrentProjectBuildingMode__rawValid__fromFile }) {
|
|
5388
5392
|
const sourceTopDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([projectRootDirectoryAbsolutePath, sourceTopDirectoryRelativePath], { alwaysForwardSlashSeparators: true });
|
|
5389
5393
|
const outputTopDirectoryAbsolutePath = es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
|
|
5390
5394
|
projectRootDirectoryAbsolutePath,
|
|
@@ -5395,7 +5399,9 @@ class PlainCopyingRawSettingsNormalizer {
|
|
|
5395
5399
|
es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
|
|
5396
5400
|
basicDirectoryPath: sourceTopDirectoryAbsolutePath,
|
|
5397
5401
|
fileNamesExtensions: fileNameLastExtensions
|
|
5398
|
-
})
|
|
5402
|
+
}),
|
|
5403
|
+
...excludedSubdirectoriesPathsRelativeToAssetsGroupSourceTopDirectory.map((excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory) => es_extensions_nodejs_1.ImprovedGlob.buildExcludingOfDirectoryWithSubdirectoriesGlobSelector(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceTopDirectoryAbsolutePath, excludedSubdirectoryPathRelativeToAssetsGroupSourceTopDirectory], { alwaysForwardSlashSeparators: true }))),
|
|
5404
|
+
...excludedFilesPathsRelativeToAssetsGroupSourceTopDirectory.map((excludedFilePathRelativeToAssetsGroupSourceTopDirectory) => es_extensions_nodejs_1.ImprovedGlob.includingGlobSelectorToExcludingOne(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceTopDirectoryAbsolutePath, excludedFilePathRelativeToAssetsGroupSourceTopDirectory], { alwaysForwardSlashSeparators: true })))
|
|
5399
5405
|
], { alwaysForwardSlashSeparators: true })) {
|
|
5400
5406
|
const outputDirectoryAbsolutePath = OutputDirectoryPathTransformationsSettingsRepresentative_1.default.transform(es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
|
|
5401
5407
|
outputTopDirectoryAbsolutePath,
|
|
@@ -5414,7 +5420,7 @@ class PlainCopyingRawSettingsNormalizer {
|
|
|
5414
5420
|
const outputFileNameWithExtensions = PlainCopyingRawSettingsNormalizer.computeOutputFileNameWithExtensions({
|
|
5415
5421
|
initialFileNameWithExtensions: (0, es_extensions_1.extractFileNameWithAllExtensionsFromPath)({
|
|
5416
5422
|
targetPath: sourceFileAbsolutePath,
|
|
5417
|
-
mustThrowErrorIfLastPathSegmentHasNoDots:
|
|
5423
|
+
mustThrowErrorIfLastPathSegmentHasNoDots: false
|
|
5418
5424
|
}),
|
|
5419
5425
|
sourceTopDirectoryAbsolutePath,
|
|
5420
5426
|
sourceFileAbsolutePath,
|
|
@@ -5623,6 +5629,30 @@ var PlainCopyingSettings__FromFile__RawValid;
|
|
|
5623
5629
|
minimalCharactersCount: 1
|
|
5624
5630
|
}
|
|
5625
5631
|
},
|
|
5632
|
+
$excludeSubdirectoriesRelativePaths: {
|
|
5633
|
+
newName: "excludeSubdirectoriesRelativePaths",
|
|
5634
|
+
type: Array,
|
|
5635
|
+
isUndefinedForbidden: false,
|
|
5636
|
+
isNullForbidden: true,
|
|
5637
|
+
areUndefinedElementsForbidden: true,
|
|
5638
|
+
areNullElementsForbidden: true,
|
|
5639
|
+
element: {
|
|
5640
|
+
type: String,
|
|
5641
|
+
minimalCharactersCount: 1
|
|
5642
|
+
}
|
|
5643
|
+
},
|
|
5644
|
+
$excludeFilesRelativePaths: {
|
|
5645
|
+
newName: "excludeFilesRelativePaths",
|
|
5646
|
+
type: Array,
|
|
5647
|
+
isUndefinedForbidden: false,
|
|
5648
|
+
isNullForbidden: true,
|
|
5649
|
+
areUndefinedElementsForbidden: true,
|
|
5650
|
+
areNullElementsForbidden: true,
|
|
5651
|
+
element: {
|
|
5652
|
+
type: String,
|
|
5653
|
+
minimalCharactersCount: 1
|
|
5654
|
+
}
|
|
5655
|
+
},
|
|
5626
5656
|
$buildingModeDependent: {
|
|
5627
5657
|
newName: "buildingModeDependent",
|
|
5628
5658
|
type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
|
|
@@ -6262,6 +6292,13 @@ class ProjectBuildingMasterConfigRepresentative {
|
|
|
6262
6292
|
get isProductionBuildingMode() {
|
|
6263
6293
|
return this.commonSettings.projectBuildingMode === ConsumingProjectBuildingModes_1.default.production;
|
|
6264
6294
|
}
|
|
6295
|
+
get isProductionLikeBuildingMode() {
|
|
6296
|
+
return [
|
|
6297
|
+
ConsumingProjectBuildingModes_1.default.testing,
|
|
6298
|
+
ConsumingProjectBuildingModes_1.default.staging,
|
|
6299
|
+
ConsumingProjectBuildingModes_1.default.production
|
|
6300
|
+
].includes(this.commonSettings.projectBuildingMode);
|
|
6301
|
+
}
|
|
6265
6302
|
/* --- Tasks execution requirement -------------------------------------------------------------------------------- */
|
|
6266
6303
|
/* eslint-disable @stylistic/brace-style -- In this case the Allman style provides symmetry. */
|
|
6267
6304
|
get mustProcessMarkup() {
|
|
@@ -7033,7 +7070,7 @@ class ECMA_ScriptLogicProcessor {
|
|
|
7033
7070
|
this.projectBuildingMasterConfigRepresentative = masterConfigRepresentative;
|
|
7034
7071
|
const webpackConfigurationsForExistingEntryPoints = [];
|
|
7035
7072
|
const entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap = new Map();
|
|
7036
|
-
for (const
|
|
7073
|
+
for (const ECMA_ScriptLogicEntryPointsGroupSettings of this.ECMA_ScriptLogicProcessingConfigRepresentative.relevantEntryPointsGroupsSettings.values()) {
|
|
7037
7074
|
const entryPointsSourceFilesAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously(ECMA_ScriptLogicEntryPointsGroupSettings.sourceFilesGlobSelectors, { alwaysForwardSlashSeparators: true });
|
|
7038
7075
|
if (entryPointsSourceFilesAbsolutePaths.length === 0) {
|
|
7039
7076
|
es_extensions_1.Logger.logWarning({
|
|
@@ -7047,8 +7084,7 @@ class ECMA_ScriptLogicProcessor {
|
|
|
7047
7084
|
entryPointsSourceFilesAbsolutePaths,
|
|
7048
7085
|
ECMA_ScriptLogicEntryPointsGroupSettings,
|
|
7049
7086
|
ECMA_ScriptLogicProcessingConfigRepresentative: this.ECMA_ScriptLogicProcessingConfigRepresentative,
|
|
7050
|
-
masterConfigRepresentative: this.projectBuildingMasterConfigRepresentative
|
|
7051
|
-
mustProvideTypeScriptTypeChecking: index === 0
|
|
7087
|
+
masterConfigRepresentative: this.projectBuildingMasterConfigRepresentative
|
|
7052
7088
|
}));
|
|
7053
7089
|
(0, es_extensions_1.addEntriesToMap)({
|
|
7054
7090
|
targetMap: entryPointsSourceFilesAbsolutePathsAndWebpackConfigurationNamesMap,
|
|
@@ -7688,6 +7724,138 @@ class LocalDevelopmentServerOrchestrator {
|
|
|
7688
7724
|
exports["default"] = LocalDevelopmentServerOrchestrator;
|
|
7689
7725
|
|
|
7690
7726
|
|
|
7727
|
+
/***/ }),
|
|
7728
|
+
|
|
7729
|
+
/***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/TypeScriptTypesChecker.ts":
|
|
7730
|
+
/*!*********************************************************************************************!*\
|
|
7731
|
+
!*** ./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Subtasks/TypeScriptTypesChecker.ts ***!
|
|
7732
|
+
\*********************************************************************************************/
|
|
7733
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
7734
|
+
|
|
7735
|
+
|
|
7736
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7737
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7738
|
+
};
|
|
7739
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7740
|
+
/* ─── Source Files Watcher ───────────────────────────────────────────────────────────────────────────────────────── */
|
|
7741
|
+
const ECMA_ScriptSourceFilesWatcher_1 = __importDefault(__webpack_require__(/*! @ECMA_ScriptProcessing/ECMA_ScriptSourceFilesWatcher */ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/ECMA_ScriptSourceFilesWatcher.ts"));
|
|
7742
|
+
/* ─── Applied Utils ─────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
7743
|
+
const VoidPromiseReturningFunction_1 = __webpack_require__(/*! @Utils/VoidPromiseReturningFunction */ "./Utils/VoidPromiseReturningFunction.ts");
|
|
7744
|
+
/* ─── Generals Utils ─────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
7745
|
+
const child_process_1 = __importDefault(__webpack_require__(/*! child_process */ "child_process"));
|
|
7746
|
+
const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
|
|
7747
|
+
const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
|
|
7748
|
+
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
7749
|
+
const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
|
|
7750
|
+
class TypeScriptTypesChecker {
|
|
7751
|
+
static WAITING_FOR_NEXT_EVENT_WITH_RELATED_FILES__SECONDS = 1;
|
|
7752
|
+
/* [ Theory ] 120 columns is about the half of the 1920x1080 screen. */
|
|
7753
|
+
static DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG = 120;
|
|
7754
|
+
vueTSC_ExecutableFileAbsolutePath;
|
|
7755
|
+
projectBuildingMasterConfigRepresentative;
|
|
7756
|
+
ecmaScriptLogicProcessingSettingsRepresentative;
|
|
7757
|
+
waitingForNextWithRelatedFiles = null;
|
|
7758
|
+
static provideCheckingIfMust(projectBuildingMasterConfigRepresentative) {
|
|
7759
|
+
const ecmaScriptLogicProcessingSettingsRepresentative = projectBuildingMasterConfigRepresentative.ECMA_ScriptLogicProcessingSettingsRepresentative;
|
|
7760
|
+
if ((0, es_extensions_1.isUndefined)(ecmaScriptLogicProcessingSettingsRepresentative)) {
|
|
7761
|
+
return VoidPromiseReturningFunction_1.voidPromiseReturningFunction;
|
|
7762
|
+
}
|
|
7763
|
+
const selfInstance = new TypeScriptTypesChecker({
|
|
7764
|
+
projectBuildingMasterConfigRepresentative,
|
|
7765
|
+
ecmaScriptLogicProcessingSettingsRepresentative
|
|
7766
|
+
});
|
|
7767
|
+
return selfInstance.checkTypes.bind(selfInstance);
|
|
7768
|
+
}
|
|
7769
|
+
constructor({ projectBuildingMasterConfigRepresentative, ecmaScriptLogicProcessingSettingsRepresentative }) {
|
|
7770
|
+
this.projectBuildingMasterConfigRepresentative = projectBuildingMasterConfigRepresentative;
|
|
7771
|
+
this.ecmaScriptLogicProcessingSettingsRepresentative = ecmaScriptLogicProcessingSettingsRepresentative;
|
|
7772
|
+
if (this.projectBuildingMasterConfigRepresentative.mustProvideIncrementalBuilding) {
|
|
7773
|
+
ECMA_ScriptSourceFilesWatcher_1.default.initializeIfRequiredAndGetInstance({
|
|
7774
|
+
projectBuildingMasterConfigRepresentative: this.projectBuildingMasterConfigRepresentative,
|
|
7775
|
+
ecmaScriptLogicProcessingSettingsRepresentative: this.ecmaScriptLogicProcessingSettingsRepresentative
|
|
7776
|
+
}).
|
|
7777
|
+
addOnAnyEventRelatedWithActualFilesHandler({
|
|
7778
|
+
handlerID: "ON_ANY_EVENT_RELATED_WITH_ACTUAL_FILES_HANDLER--BY_TYPE_SCRIPT_TYPES_CHECKER",
|
|
7779
|
+
handler: this.onAnyEventRelatedWithActualFiles.bind(this)
|
|
7780
|
+
});
|
|
7781
|
+
}
|
|
7782
|
+
const vueTSC_ExecutableFileAbsolutePath = TypeScriptTypesChecker.
|
|
7783
|
+
getAbsolutePathOfExistingVueTSC_ExecutableFile__alwaysForwardSlashesPathSeparators(projectBuildingMasterConfigRepresentative.consumingProjectRootDirectoryAbsolutePath);
|
|
7784
|
+
if ((0, es_extensions_1.isNull)(vueTSC_ExecutableFileAbsolutePath)) {
|
|
7785
|
+
es_extensions_1.Logger.throwErrorAndLog({
|
|
7786
|
+
errorInstance: new es_extensions_1.UnexpectedEventError("File to \"vue-tsc\" executable not found"),
|
|
7787
|
+
title: es_extensions_1.UnexpectedEventError.localization.defaultTitle,
|
|
7788
|
+
occurrenceLocation: "TypeScriptTypesChecker.constructor(compoundParameter)"
|
|
7789
|
+
});
|
|
7790
|
+
}
|
|
7791
|
+
this.vueTSC_ExecutableFileAbsolutePath = vueTSC_ExecutableFileAbsolutePath;
|
|
7792
|
+
}
|
|
7793
|
+
onAnyEventRelatedWithActualFiles() {
|
|
7794
|
+
clearTimeout((0, es_extensions_1.nullToUndefined)(this.waitingForNextWithRelatedFiles));
|
|
7795
|
+
this.waitingForNextWithRelatedFiles = setTimeout(() => {
|
|
7796
|
+
this.checkTypes().catch(es_extensions_1.Logger.logPromiseError);
|
|
7797
|
+
}, (0, es_extensions_1.secondsToMilliseconds)(TypeScriptTypesChecker.WAITING_FOR_NEXT_EVENT_WITH_RELATED_FILES__SECONDS));
|
|
7798
|
+
}
|
|
7799
|
+
async checkTypes() {
|
|
7800
|
+
return new Promise((resolve, reject) => {
|
|
7801
|
+
child_process_1.default.exec(`node ${this.vueTSC_ExecutableFileAbsolutePath} --noEmit`, { encoding: "utf-8" }, (error, stdout) => {
|
|
7802
|
+
if ((0, es_extensions_1.isNotNull)(error)) {
|
|
7803
|
+
es_extensions_1.Logger.logErrorLikeMessage({
|
|
7804
|
+
title: "TypeScript Type Checking, Error(s) Detected",
|
|
7805
|
+
description: "The source code is including the TypeScript error(s).\n" +
|
|
7806
|
+
(this.projectBuildingMasterConfigRepresentative.isProductionLikeBuildingMode ?
|
|
7807
|
+
"Is is unacceptable for production-like modes thus the project building will be terminated." : "") +
|
|
7808
|
+
`${"-".repeat(TypeScriptTypesChecker.DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG)}\n` +
|
|
7809
|
+
stdout
|
|
7810
|
+
});
|
|
7811
|
+
node_notifier_1.default.notify({
|
|
7812
|
+
title: "TypeScript Types Checking, Errors Detected",
|
|
7813
|
+
message: "Please check your terminal for the details."
|
|
7814
|
+
});
|
|
7815
|
+
if (this.projectBuildingMasterConfigRepresentative.isProductionLikeBuildingMode) {
|
|
7816
|
+
reject(error);
|
|
7817
|
+
return;
|
|
7818
|
+
}
|
|
7819
|
+
resolve();
|
|
7820
|
+
return;
|
|
7821
|
+
}
|
|
7822
|
+
es_extensions_1.Logger.logSuccess({
|
|
7823
|
+
title: "TypeScript Type Checking, No Errors Found",
|
|
7824
|
+
description: "The source TypeScript is valid. Keep it up!"
|
|
7825
|
+
});
|
|
7826
|
+
resolve();
|
|
7827
|
+
});
|
|
7828
|
+
});
|
|
7829
|
+
}
|
|
7830
|
+
static getAbsolutePathOfExistingVueTSC_ExecutableFile__alwaysForwardSlashesPathSeparators(consumingProjectRootDirectoryAbsolutePath) {
|
|
7831
|
+
for (const vueTSC_ExecutableFileAbsolutePath__alwaysForwardSlashesPathSeparators of [
|
|
7832
|
+
es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
|
|
7833
|
+
consumingProjectRootDirectoryAbsolutePath,
|
|
7834
|
+
"node_modules",
|
|
7835
|
+
".bin",
|
|
7836
|
+
"vue-tsc.js"
|
|
7837
|
+
], { alwaysForwardSlashSeparators: true }),
|
|
7838
|
+
es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
|
|
7839
|
+
consumingProjectRootDirectoryAbsolutePath,
|
|
7840
|
+
"node_modules",
|
|
7841
|
+
"@yamato-daiwa",
|
|
7842
|
+
"automation",
|
|
7843
|
+
"node_modules",
|
|
7844
|
+
"vue-tsc",
|
|
7845
|
+
"bin",
|
|
7846
|
+
"vue-tsc.js"
|
|
7847
|
+
], { alwaysForwardSlashSeparators: true })
|
|
7848
|
+
]) {
|
|
7849
|
+
if (fs_1.default.existsSync(vueTSC_ExecutableFileAbsolutePath__alwaysForwardSlashesPathSeparators)) {
|
|
7850
|
+
return vueTSC_ExecutableFileAbsolutePath__alwaysForwardSlashesPathSeparators;
|
|
7851
|
+
}
|
|
7852
|
+
}
|
|
7853
|
+
return null;
|
|
7854
|
+
}
|
|
7855
|
+
}
|
|
7856
|
+
exports["default"] = TypeScriptTypesChecker;
|
|
7857
|
+
|
|
7858
|
+
|
|
7691
7859
|
/***/ }),
|
|
7692
7860
|
|
|
7693
7861
|
/***/ "./ProjectBuilding/SourceCodeProcessing/ECMA_Script/Utils/ECMA_ScriptLogicEntryPointsSourceFilesAbsolutePathsAndOutputFilesActualPathsMapGenerator.ts":
|
|
@@ -7805,7 +7973,6 @@ const TypeScriptSpecialist_1 = __importDefault(__webpack_require__(/*! @ThirdPar
|
|
|
7805
7973
|
/* ─── Applied Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
7806
7974
|
const webpack_1 = __importDefault(__webpack_require__(/*! webpack */ "webpack"));
|
|
7807
7975
|
const vue_loader_1 = __webpack_require__(/*! vue-loader */ "vue-loader");
|
|
7808
|
-
const fork_ts_checker_webpack_plugin_1 = __importDefault(__webpack_require__(/*! fork-ts-checker-webpack-plugin */ "fork-ts-checker-webpack-plugin"));
|
|
7809
7976
|
const webpack_node_externals_1 = __importDefault(__webpack_require__(/*! webpack-node-externals */ "webpack-node-externals"));
|
|
7810
7977
|
/* ─── General Utils ──────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
7811
7978
|
const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
|
|
@@ -7816,7 +7983,7 @@ class WebpackConfigGenerator {
|
|
|
7816
7983
|
static cachedTypeScriptConfigurations = {};
|
|
7817
7984
|
/* [ Approach ] Although the parameter is excessive, its properties are been pre-computed externally for other needs,
|
|
7818
7985
|
* so no need to compute them again. */
|
|
7819
|
-
static generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({ entryPointsSourceFilesAbsolutePaths, ECMA_ScriptLogicEntryPointsGroupSettings: entryPointsGroupSettings, ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative
|
|
7986
|
+
static generateWebpackConfigurationForEntryPointsGroupWithExistingFiles({ entryPointsSourceFilesAbsolutePaths, ECMA_ScriptLogicEntryPointsGroupSettings: entryPointsGroupSettings, ECMA_ScriptLogicProcessingConfigRepresentative, masterConfigRepresentative }) {
|
|
7820
7987
|
/* [ Reference ] https://webpack.js.org/configuration/entry-context/#context */
|
|
7821
7988
|
const sourceFilesTopDirectoryAbsolutePath = entryPointsGroupSettings.sourceFilesTopDirectoryAbsolutePath;
|
|
7822
7989
|
/** @see https://webpack.js.org/configuration/entry-context/#entry */
|
|
@@ -7840,7 +8007,6 @@ class WebpackConfigGenerator {
|
|
|
7840
8007
|
const willPugLibraryBeBuilt = entryPointsGroupSettings.distributing?.exposingOfExportsFromEntryPoints.mustExpose === true &&
|
|
7841
8008
|
entryPointsGroupSettings.targetRuntime.type === SupportedECMA_ScriptRuntimesTypes.pug;
|
|
7842
8009
|
const distributingSettings = entryPointsGroupSettings.distributing;
|
|
7843
|
-
// TODO Is entryPointsGroupSettings.directoriesAliasesAndCorrespondingAbsolutePathsMap related
|
|
7844
8010
|
return {
|
|
7845
8011
|
name: entryPointsGroupSettings.ID,
|
|
7846
8012
|
/* [ Webpack theory ] In this case, path separators must be operating system dependent, otherwise following error
|
|
@@ -7883,7 +8049,7 @@ class WebpackConfigGenerator {
|
|
|
7883
8049
|
"window" : "module";
|
|
7884
8050
|
case SupportedECMA_ScriptRuntimesTypes.nodeJS: return "commonjs";
|
|
7885
8051
|
case SupportedECMA_ScriptRuntimesTypes.pug: return "umd";
|
|
7886
|
-
|
|
8052
|
+
case SupportedECMA_ScriptRuntimesTypes.webWorker: {
|
|
7887
8053
|
es_extensions_1.Logger.throwErrorAndLog({
|
|
7888
8054
|
errorInstance: new es_extensions_1.UnexpectedEventError("The web worker could not be the library, while the computing of 'output.library.type' has been " +
|
|
7889
8055
|
"requested"),
|
|
@@ -7929,6 +8095,8 @@ class WebpackConfigGenerator {
|
|
|
7929
8095
|
loader: "ts-loader",
|
|
7930
8096
|
options: {
|
|
7931
8097
|
configFile: entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath,
|
|
8098
|
+
/* [ Performance Optimization ] Type checking is been executed externally and once for all files. */
|
|
8099
|
+
transpileOnly: false,
|
|
7932
8100
|
/* [ Theory ] This option allows TypeScript to process the code extracted from a single file component.
|
|
7933
8101
|
* [ Reference ] https://github.com/Microsoft/TypeScript-Vue-Starter#single-file-components */
|
|
7934
8102
|
appendTsSuffixTo: [/\.vue$/u]
|
|
@@ -8058,24 +8226,6 @@ class WebpackConfigGenerator {
|
|
|
8058
8226
|
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
|
|
8059
8227
|
} : null
|
|
8060
8228
|
}),
|
|
8061
|
-
/* < === Temporary ========================================================================================== */
|
|
8062
|
-
...mustProvideTypeScriptTypeChecking ?
|
|
8063
|
-
[
|
|
8064
|
-
new fork_ts_checker_webpack_plugin_1.default({
|
|
8065
|
-
typescript: {
|
|
8066
|
-
/* [ Theory ] Webpack's "context" is default, but generally "tsconfig.json" could be not in same directory */
|
|
8067
|
-
configFile: entryPointsGroupSettings.typeScriptConfigurationFileAbsolutePath,
|
|
8068
|
-
extensions: {
|
|
8069
|
-
vue: {
|
|
8070
|
-
enabled: true,
|
|
8071
|
-
compiler: "@vue/compiler-sfc"
|
|
8072
|
-
}
|
|
8073
|
-
}
|
|
8074
|
-
}
|
|
8075
|
-
})
|
|
8076
|
-
] :
|
|
8077
|
-
[],
|
|
8078
|
-
/* === Temporary > ========================================================================================== */
|
|
8079
8229
|
new vue_loader_1.VueLoaderPlugin()
|
|
8080
8230
|
],
|
|
8081
8231
|
optimization: {
|
|
@@ -8626,7 +8776,7 @@ const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "
|
|
|
8626
8776
|
var MarkupProcessingSettings__FromFile__RawValid;
|
|
8627
8777
|
(function (MarkupProcessingSettings__FromFile__RawValid) {
|
|
8628
8778
|
/* ━━━ Properties Specification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
8629
|
-
function generateLocalizationPropertiesSpecification(
|
|
8779
|
+
function generateLocalizationPropertiesSpecification({ forEntryPointsGroups }) {
|
|
8630
8780
|
return {
|
|
8631
8781
|
newName: "localization",
|
|
8632
8782
|
type: Object,
|
|
@@ -8682,28 +8832,92 @@ var MarkupProcessingSettings__FromFile__RawValid;
|
|
|
8682
8832
|
$localeConstantValue: {
|
|
8683
8833
|
newName: "localeConstantValue",
|
|
8684
8834
|
type: String,
|
|
8685
|
-
|
|
8835
|
+
undefinedForbiddenIf: {
|
|
8836
|
+
predicate: ({ targetPropertyDotSeparatedPath, rawData__full }) => (0, es_extensions_1.isNotUndefined)((0, es_extensions_1.getObjectPropertySafely)(rawData__full, [
|
|
8837
|
+
/* eslint-disable-next-line @typescript-eslint/no-magic-numbers --
|
|
8838
|
+
* 3 referees to last three elements in paths like
|
|
8839
|
+
* $projectBuilding.$markupProcessing.$entryPointsGroups.Pages.$localization.
|
|
8840
|
+
* $locales.english.$localeConstantValue */
|
|
8841
|
+
...(0, es_extensions_1.splitString)(targetPropertyDotSeparatedPath, ".").slice(0, -3),
|
|
8842
|
+
"$localeConstantName"
|
|
8843
|
+
])),
|
|
8844
|
+
descriptionForLogging: "`$projectBuilding.$markupProcessing." +
|
|
8845
|
+
(forEntryPointsGroups ? "$entryPointsGroups.NNN" : "$common") +
|
|
8846
|
+
".$localization.$localeConstantName` is defined"
|
|
8847
|
+
},
|
|
8686
8848
|
isNullForbidden: true,
|
|
8687
8849
|
minimalCharactersCount: 1
|
|
8688
8850
|
},
|
|
8689
8851
|
$keyInLocalizedStringResourcesObject: {
|
|
8690
8852
|
newName: "keyInLocalizedStringResourcesObject",
|
|
8691
8853
|
type: String,
|
|
8692
|
-
|
|
8854
|
+
undefinedForbiddenIf: {
|
|
8855
|
+
predicate: ({ targetPropertyDotSeparatedPath, rawData__full }) => (0, es_extensions_1.isNotUndefined)((0, es_extensions_1.getObjectPropertySafely)(rawData__full, [
|
|
8856
|
+
/* eslint-disable-next-line @typescript-eslint/no-magic-numbers --
|
|
8857
|
+
* 3 referees to last three elements in paths like
|
|
8858
|
+
* $projectBuilding.$markupProcessing.$entryPointsGroups.Pages.$localization.$locales.
|
|
8859
|
+
* english.$localeConstantValue */
|
|
8860
|
+
...(0, es_extensions_1.splitString)(targetPropertyDotSeparatedPath, ".").slice(0, -3),
|
|
8861
|
+
"$stringResourcesFileRelativePath"
|
|
8862
|
+
])),
|
|
8863
|
+
descriptionForLogging: "`$projectBuilding.$markupProcessing." +
|
|
8864
|
+
(forEntryPointsGroups ? "$entryPointsGroups.NNN" : "$common") +
|
|
8865
|
+
".$localization.$stringResourcesFileRelativePath` is defined"
|
|
8866
|
+
},
|
|
8693
8867
|
isNullForbidden: true,
|
|
8694
8868
|
minimalCharactersCount: 1
|
|
8695
8869
|
},
|
|
8696
8870
|
$valueOfConstantForInterpolationToLangHTML_Attribute: {
|
|
8697
8871
|
newName: "valueOfConstantForInterpolationToLangHTML_Attribute",
|
|
8698
8872
|
type: String,
|
|
8699
|
-
|
|
8873
|
+
undefinedForbiddenIf: {
|
|
8874
|
+
predicate: ({ targetPropertyDotSeparatedPath, rawData__full }) => (0, es_extensions_1.isNotUndefined)((0, es_extensions_1.getObjectPropertySafely)(rawData__full, [
|
|
8875
|
+
/* eslint-disable-next-line @typescript-eslint/no-magic-numbers --
|
|
8876
|
+
* 3 referees to last three elements in paths like
|
|
8877
|
+
* $projectBuilding.$markupProcessing.$entryPointsGroups.Pages.$localization.$locales.
|
|
8878
|
+
* english.$localeConstantValue */
|
|
8879
|
+
...(0, es_extensions_1.splitString)(targetPropertyDotSeparatedPath, ".").slice(0, -3),
|
|
8880
|
+
"$nameOfConstantForInterpolationToLangHTML_Attribute"
|
|
8881
|
+
])),
|
|
8882
|
+
descriptionForLogging: "`$projectBuilding.$markupProcessing." +
|
|
8883
|
+
(forEntryPointsGroups ? "$entryPointsGroups.NNN" : "$common") +
|
|
8884
|
+
".$localization.$nameOfConstantForInterpolationToLangHTML_Attribute` is defined"
|
|
8885
|
+
},
|
|
8700
8886
|
isNullForbidden: true,
|
|
8701
8887
|
minimalCharactersCount: 1
|
|
8702
8888
|
}
|
|
8703
8889
|
}
|
|
8704
8890
|
}
|
|
8705
8891
|
},
|
|
8706
|
-
...
|
|
8892
|
+
...forEntryPointsGroups ?
|
|
8893
|
+
{
|
|
8894
|
+
$excludedFilesPathsRelativeToSourcesFilesTopDirectory: {
|
|
8895
|
+
newName: "excludedFilesPathsRelativeToSourcesFilesTopDirectory",
|
|
8896
|
+
type: Array,
|
|
8897
|
+
isUndefinedForbidden: false,
|
|
8898
|
+
isNullForbidden: true,
|
|
8899
|
+
areUndefinedElementsForbidden: true,
|
|
8900
|
+
areNullElementsForbidden: true,
|
|
8901
|
+
element: {
|
|
8902
|
+
type: String,
|
|
8903
|
+
minimalCharactersCount: 1
|
|
8904
|
+
}
|
|
8905
|
+
}
|
|
8906
|
+
} :
|
|
8907
|
+
{
|
|
8908
|
+
$excludedFilesPathsRelativeRelativeToProjectRootDirectory: {
|
|
8909
|
+
newName: "excludedFilesPathsRelativeRelativeToProjectRootDirectory",
|
|
8910
|
+
type: Array,
|
|
8911
|
+
isUndefinedForbidden: false,
|
|
8912
|
+
isNullForbidden: true,
|
|
8913
|
+
areUndefinedElementsForbidden: true,
|
|
8914
|
+
areNullElementsForbidden: true,
|
|
8915
|
+
element: {
|
|
8916
|
+
type: String,
|
|
8917
|
+
minimalCharactersCount: 1
|
|
8918
|
+
}
|
|
8919
|
+
}
|
|
8920
|
+
}
|
|
8707
8921
|
}
|
|
8708
8922
|
};
|
|
8709
8923
|
}
|
|
@@ -8716,20 +8930,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
|
|
|
8716
8930
|
isUndefinedForbidden: false,
|
|
8717
8931
|
mustTransformNullToUndefined: true,
|
|
8718
8932
|
properties: {
|
|
8719
|
-
$localization: generateLocalizationPropertiesSpecification({
|
|
8720
|
-
$excludedFilesPathsRelativeRelativeToProjectRootDirectory: {
|
|
8721
|
-
newName: "excludedFilesPathsRelativeRelativeToProjectRootDirectory",
|
|
8722
|
-
type: Array,
|
|
8723
|
-
isUndefinedForbidden: false,
|
|
8724
|
-
isNullForbidden: true,
|
|
8725
|
-
areUndefinedElementsForbidden: true,
|
|
8726
|
-
areNullElementsForbidden: true,
|
|
8727
|
-
element: {
|
|
8728
|
-
type: String,
|
|
8729
|
-
minimalCharactersCount: 1
|
|
8730
|
-
}
|
|
8731
|
-
}
|
|
8732
|
-
}),
|
|
8933
|
+
$localization: generateLocalizationPropertiesSpecification({ forEntryPointsGroups: false }),
|
|
8733
8934
|
$buildingModeDependent: {
|
|
8734
8935
|
newName: "buildingModeDependent",
|
|
8735
8936
|
type: es_extensions_1.RawObjectDataProcessor.ValuesTypesIDs.associativeArray,
|
|
@@ -8927,20 +9128,7 @@ var MarkupProcessingSettings__FromFile__RawValid;
|
|
|
8927
9128
|
isUndefinedForbidden: false,
|
|
8928
9129
|
isNullForbidden: true
|
|
8929
9130
|
},
|
|
8930
|
-
$localization: generateLocalizationPropertiesSpecification({
|
|
8931
|
-
$excludedFilesPathsRelativeToSourcesFilesTopDirectory: {
|
|
8932
|
-
newName: "excludedFilesPathsRelativeToSourcesFilesTopDirectory",
|
|
8933
|
-
type: Array,
|
|
8934
|
-
isUndefinedForbidden: false,
|
|
8935
|
-
isNullForbidden: true,
|
|
8936
|
-
areUndefinedElementsForbidden: true,
|
|
8937
|
-
areNullElementsForbidden: true,
|
|
8938
|
-
element: {
|
|
8939
|
-
type: String,
|
|
8940
|
-
minimalCharactersCount: 1
|
|
8941
|
-
}
|
|
8942
|
-
}
|
|
8943
|
-
}),
|
|
9131
|
+
$localization: generateLocalizationPropertiesSpecification({ forEntryPointsGroups: true }),
|
|
8944
9132
|
$HTML_Validation: {
|
|
8945
9133
|
newName: "HTML_Validation",
|
|
8946
9134
|
type: Object,
|
|
@@ -10446,20 +10634,18 @@ const HTML_ValidatorLocalization_english_1 = __importDefault(__webpack_require__
|
|
|
10446
10634
|
const vnu_jar_1 = __importDefault(__webpack_require__(/*! vnu-jar */ "vnu-jar"));
|
|
10447
10635
|
const DotYDA_DirectoryManager_1 = __importDefault(__webpack_require__(/*! @Utils/DotYDA_DirectoryManager */ "./Utils/DotYDA_DirectoryManager.ts"));
|
|
10448
10636
|
/* ─── Generals Utils ─────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
10449
|
-
const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
|
|
10450
10637
|
const node_child_process_1 = __importDefault(__webpack_require__(/*! node:child_process */ "node:child_process"));
|
|
10451
10638
|
const node_notifier_1 = __importDefault(__webpack_require__(/*! node-notifier */ "node-notifier"));
|
|
10452
10639
|
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
10453
10640
|
const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
|
|
10454
10641
|
const nanoid_1 = __webpack_require__(/*! nanoid */ "nanoid");
|
|
10455
10642
|
const Stopwatch_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Stopwatch */ "./UtilsIncubator/Stopwatch.ts"));
|
|
10456
|
-
const deleteFilesFromDirectory_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/@yamato-daiwa/es-extensions-nodejs/ImprovedFileSystem/deleteFilesFromDirectory */ "./UtilsIncubator/@yamato-daiwa/es-extensions-nodejs/ImprovedFileSystem/deleteFilesFromDirectory.ts"));
|
|
10457
10643
|
class HTML_Validator {
|
|
10458
10644
|
/* ━━━ Fields ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
10459
10645
|
static selfSingleInstance = null;
|
|
10460
10646
|
/* ─── Work Variables ───────────────────────────────────────────────────────────────────────────────────────────── */
|
|
10461
10647
|
/* [ Approach ]
|
|
10462
|
-
* Although "queue" usually means the order, here is order does not matter unlike the files' uniqueness
|
|
10648
|
+
* Although "queue" usually means the order, here is order does not matter unlike the files' uniqueness that is why
|
|
10463
10649
|
* set instead of simple Array used. */
|
|
10464
10650
|
queuedFilesMetadata = new Set();
|
|
10465
10651
|
consumingProjectRootDirectoryAbsolutePath;
|
|
@@ -10713,7 +10899,7 @@ class HTML_Validator {
|
|
|
10713
10899
|
if (!(error instanceof es_extensions_nodejs_1.FileNotFoundError)) {
|
|
10714
10900
|
es_extensions_1.Logger.logError({
|
|
10715
10901
|
errorType: "CachedDataRetrievingFailure",
|
|
10716
|
-
...HTML_Validator.localization.
|
|
10902
|
+
...HTML_Validator.localization.cachedPreviousValidationsResultsDataRetrievingErrorLog({
|
|
10717
10903
|
cachedValidationsResultsFileAbsolutePath: this.absolutePathOfCachedValidationsResultsFile
|
|
10718
10904
|
}),
|
|
10719
10905
|
occurrenceLocation: "HTML_Validator.retrieveCachedPastValidationsResultsFromFileIfItExists" +
|
|
@@ -10790,17 +10976,19 @@ class HTML_Validator {
|
|
|
10790
10976
|
if (this.logging.validationStart) {
|
|
10791
10977
|
es_extensions_1.Logger.logInfo(HTML_Validator.localization.validationStartedInfoLog);
|
|
10792
10978
|
}
|
|
10793
|
-
const validationTimeMeasuringStopwatch = new Stopwatch_1.default().startOrRestart();
|
|
10794
10979
|
/* [ Theory ] If pass no files to Nu HTML Checker, it will fail with the error. */
|
|
10795
10980
|
if (formattedTemporaryHTML_FilesPathsRelativeToConsumingProjectRoot__forwardSlashesSeparatorsOnly.length === 0) {
|
|
10796
|
-
HTML_Validator.reportValidationsResults(
|
|
10981
|
+
HTML_Validator.reportValidationsResults({
|
|
10982
|
+
validationsResults: this.cachedValidationsResults,
|
|
10983
|
+
validationPeriod__seconds: 0
|
|
10984
|
+
});
|
|
10797
10985
|
return;
|
|
10798
10986
|
}
|
|
10987
|
+
const validationTimeMeasuringStopwatch = new Stopwatch_1.default().startOrRestart();
|
|
10799
10988
|
const rawValidationsResults = await HTML_Validator.getRawValidationsResultsFromNuHTML_Checker(formattedTemporaryHTML_FilesPathsRelativeToConsumingProjectRoot__forwardSlashesSeparatorsOnly);
|
|
10800
|
-
|
|
10989
|
+
es_extensions_nodejs_1.ImprovedFileSystem.removeFilesFromDirectory({
|
|
10801
10990
|
directoryPath__absoluteOrRelative: this.absolutePathOfParentDirectoryOfTemporaryFormattedHTML_Files,
|
|
10802
|
-
synchronously: true
|
|
10803
|
-
mustThrowErrorIfSomeFileCanNotBeDeleted: false
|
|
10991
|
+
synchronously: true
|
|
10804
10992
|
});
|
|
10805
10993
|
const rawValidationsResultsInspectionOutput = es_extensions_1.RawObjectDataProcessor.process(rawValidationsResults, HTML_Validator.validationsResultsSpecification);
|
|
10806
10994
|
if (rawValidationsResultsInspectionOutput.isRawDataInvalid) {
|
|
@@ -10843,12 +11031,11 @@ class HTML_Validator {
|
|
|
10843
11031
|
contentMD5Checksum: (0, es_extensions_1.getExpectedToBeNonUndefinedMapValue)(MD5_HashesOfHTML_ContentByRelativePathsOfOriginalHTML_Files, relativeToConsumingProjectRootPathOfOriginalValidHTML_Files__forwardSlashesSeparatorsOnly)
|
|
10844
11032
|
});
|
|
10845
11033
|
}
|
|
10846
|
-
validationTimeMeasuringStopwatch.stop();
|
|
10847
|
-
HTML_Validator.reportValidationsResults(this.cachedValidationsResults);
|
|
11034
|
+
const { seconds: validationPeriod__seconds } = validationTimeMeasuringStopwatch.stop();
|
|
11035
|
+
HTML_Validator.reportValidationsResults({ validationsResults: this.cachedValidationsResults, validationPeriod__seconds });
|
|
10848
11036
|
this.writeCacheToFile();
|
|
10849
11037
|
this.queuedFilesMetadata.clear();
|
|
10850
11038
|
}
|
|
10851
|
-
// ━━━ TODO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
10852
11039
|
static async getRawValidationsResultsFromNuHTML_Checker(targetFilesPathRelativeToConsumingProjectRoot__forwardSlashesPathSeparators) {
|
|
10853
11040
|
return new Promise((resolve, reject) => {
|
|
10854
11041
|
/* [ Theory ] "vnu-jar" works only with relative paths. Absolute paths will not work with any path separators. */
|
|
@@ -10949,64 +11136,74 @@ class HTML_Validator {
|
|
|
10949
11136
|
};
|
|
10950
11137
|
}
|
|
10951
11138
|
/* ─── Reporting ────────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
10952
|
-
static reportValidationsResults(validationsResults) {
|
|
10953
|
-
|
|
11139
|
+
static reportValidationsResults({ validationsResults, validationPeriod__seconds }) {
|
|
11140
|
+
const filesPathsRelativeToConsumingProjectRootSortedByAlphabet__forwardPathSeparatorsOnly = Array.from(validationsResults.keys()).sort();
|
|
10954
11141
|
let hasAtLeastOneFileWithInvalidHTML = false;
|
|
10955
11142
|
const hasEachFileIssues = new Map();
|
|
10956
11143
|
const formattedIssuesForEachFile = new Map();
|
|
10957
|
-
for (const [
|
|
10958
|
-
|
|
10959
|
-
|
|
11144
|
+
for (const [filePathRelativeToConsumingProjectRoot__forwardPathSeparatorsOnly, { issues }] of validationsResults.entries()) {
|
|
11145
|
+
const hasCurrentFileHTML_ValidityIssues = issues.length > 0;
|
|
11146
|
+
hasEachFileIssues.set(filePathRelativeToConsumingProjectRoot__forwardPathSeparatorsOnly, hasCurrentFileHTML_ValidityIssues);
|
|
11147
|
+
if (hasCurrentFileHTML_ValidityIssues) {
|
|
10960
11148
|
hasAtLeastOneFileWithInvalidHTML = true;
|
|
10961
|
-
formattedIssuesForEachFile.set(
|
|
11149
|
+
formattedIssuesForEachFile.set(filePathRelativeToConsumingProjectRoot__forwardPathSeparatorsOnly, HTML_Validator.formatValidationResultForSingleFile(issues));
|
|
10962
11150
|
}
|
|
10963
11151
|
}
|
|
10964
11152
|
const summary = `${(0, es_extensions_1.surroundLabelByOrnament)({
|
|
10965
|
-
label:
|
|
11153
|
+
label: HTML_Validator.localization.validityIssuesDetectedErrorLog.headings.summary,
|
|
10966
11154
|
ornamentPatten: "━",
|
|
11155
|
+
characterForIndentationAroundLabel: " ",
|
|
10967
11156
|
prependedPartCharactersCount: 3,
|
|
10968
11157
|
totalCharactersCount: HTML_Validator.DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG
|
|
10969
11158
|
})}\n` +
|
|
10970
|
-
|
|
10971
|
-
map((
|
|
11159
|
+
filesPathsRelativeToConsumingProjectRootSortedByAlphabet__forwardPathSeparatorsOnly.
|
|
11160
|
+
map((fileRelativePath__forwardPathSeparatorsOnly) => `${(0, es_extensions_1.getExpectedToBeNonUndefinedMapValue)(hasEachFileIssues, fileRelativePath__forwardPathSeparatorsOnly) ?
|
|
11161
|
+
"❌" : "✅"} ` +
|
|
11162
|
+
fileRelativePath__forwardPathSeparatorsOnly).
|
|
10972
11163
|
join("\n");
|
|
10973
11164
|
const detailedReport = `${(0, es_extensions_1.surroundLabelByOrnament)({
|
|
10974
|
-
label:
|
|
11165
|
+
label: HTML_Validator.localization.validityIssuesDetectedErrorLog.headings.details,
|
|
10975
11166
|
ornamentPatten: "━",
|
|
11167
|
+
characterForIndentationAroundLabel: " ",
|
|
10976
11168
|
prependedPartCharactersCount: 3,
|
|
10977
11169
|
totalCharactersCount: HTML_Validator.DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG
|
|
10978
11170
|
})}\n` +
|
|
10979
|
-
|
|
10980
|
-
|
|
10981
|
-
|
|
11171
|
+
filesPathsRelativeToConsumingProjectRootSortedByAlphabet__forwardPathSeparatorsOnly.
|
|
11172
|
+
filter((fileRelativePath__forwardPathSeparatorsOnly) => formattedIssuesForEachFile.has(fileRelativePath__forwardPathSeparatorsOnly)).
|
|
11173
|
+
map((fileRelativePath__forwardPathSeparatorsOnly) => `${(0, es_extensions_1.surroundLabelByOrnament)({
|
|
11174
|
+
label: fileRelativePath__forwardPathSeparatorsOnly,
|
|
11175
|
+
characterForIndentationAroundLabel: "",
|
|
10982
11176
|
ornamentPatten: "─",
|
|
10983
11177
|
prependedPartCharactersCount: 3,
|
|
10984
11178
|
totalCharactersCount: HTML_Validator.DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG
|
|
10985
11179
|
})}\n` +
|
|
10986
|
-
|
|
11180
|
+
(0, es_extensions_1.getExpectedToBeNonUndefinedMapValue)(formattedIssuesForEachFile, fileRelativePath__forwardPathSeparatorsOnly)).
|
|
10987
11181
|
join("\n");
|
|
10988
11182
|
if (hasAtLeastOneFileWithInvalidHTML) {
|
|
10989
11183
|
es_extensions_1.Logger.logErrorLikeMessage({
|
|
10990
|
-
title:
|
|
10991
|
-
description: `${summary}\n\n
|
|
11184
|
+
title: HTML_Validator.localization.validityIssuesDetectedErrorLog.title,
|
|
11185
|
+
description: `${summary}\n\n` +
|
|
11186
|
+
`${detailedReport}\n` +
|
|
11187
|
+
HTML_Validator.localization.validityIssuesDetectedErrorLog.generateSecondsElapsedSentence({ validationPeriod__seconds })
|
|
10992
11188
|
});
|
|
10993
|
-
node_notifier_1.default.notify(HTML_Validator.localization.
|
|
11189
|
+
node_notifier_1.default.notify(HTML_Validator.localization.validityIssuesDetectedToastNotification);
|
|
10994
11190
|
return;
|
|
10995
11191
|
}
|
|
10996
11192
|
es_extensions_1.Logger.logSuccess({
|
|
10997
|
-
title:
|
|
10998
|
-
description:
|
|
10999
|
-
|
|
11000
|
-
Array.from(validationsResults.keys()).
|
|
11193
|
+
title: HTML_Validator.localization.validationFinishedWithoutIssuesSuccessLog.title,
|
|
11194
|
+
description: HTML_Validator.localization.validationFinishedWithoutIssuesSuccessLog.generateDescription({
|
|
11195
|
+
validationPeriod__seconds,
|
|
11196
|
+
preFormattedErrorsMessages: Array.from(validationsResults.keys()).
|
|
11001
11197
|
map((fileRelativePath__forwardPathSeparatorsOnly) => `● ${fileRelativePath__forwardPathSeparatorsOnly}`).
|
|
11002
11198
|
join("\n")
|
|
11199
|
+
})
|
|
11003
11200
|
});
|
|
11004
11201
|
}
|
|
11005
11202
|
/* ─── Formatting ───────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
11006
11203
|
static formatValidationResultForSingleFile(issues) {
|
|
11007
11204
|
const formattedIssues = [];
|
|
11008
11205
|
for (const [index, issue] of issues.entries()) {
|
|
11009
|
-
/* [ Desired
|
|
11206
|
+
/* [ Desired Output Example ]
|
|
11010
11207
|
|
|
11011
11208
|
=== Issue No. 5 =================================================================================================
|
|
11012
11209
|
<div class="NewsFeed"></div><a><span></span><a>Foo<div></div><a>bar</a></a>
|
|
@@ -11022,6 +11219,7 @@ class HTML_Validator {
|
|
|
11022
11219
|
`${(0, es_extensions_1.surroundLabelByOrnament)({
|
|
11023
11220
|
label: HTML_Validator.localization.generateIssueNumberLabel({ issueNumber: index + 1 }),
|
|
11024
11221
|
ornamentPatten: "┄",
|
|
11222
|
+
characterForIndentationAroundLabel: " ",
|
|
11025
11223
|
prependedPartCharactersCount: 3,
|
|
11026
11224
|
totalCharactersCount: HTML_Validator.DISPLAYING_MAXIMAL_COLUMNS_COUNT_IN_LOG
|
|
11027
11225
|
})}\n`,
|
|
@@ -11040,13 +11238,11 @@ class HTML_Validator {
|
|
|
11040
11238
|
return HTML_Validator.localization.issuesTypesTitles.grossViolation;
|
|
11041
11239
|
case HTML_Validator.NormalizedValidationsResults.Issue.Types.info:
|
|
11042
11240
|
return HTML_Validator.localization.issuesTypesTitles.recommendationDisregard;
|
|
11043
|
-
default:
|
|
11044
|
-
return HTML_Validator.localization.issuesTypesTitles.other;
|
|
11045
11241
|
}
|
|
11046
11242
|
})()})\n`,
|
|
11047
|
-
...(
|
|
11243
|
+
...(0, es_extensions_1.isNotUndefined)(issue.lineNumber__numerationFrom1) &&
|
|
11048
11244
|
(0, es_extensions_1.isNotUndefined)(issue.startingColumnNumber__numerationFrom1) &&
|
|
11049
|
-
(0, es_extensions_1.isNotUndefined)(issue.endingColumnNumber__numerationFrom1)
|
|
11245
|
+
(0, es_extensions_1.isNotUndefined)(issue.endingColumnNumber__numerationFrom1) ?
|
|
11050
11246
|
[
|
|
11051
11247
|
HTML_Validator.localization.generateIssueOccurrenceLocationIndication({
|
|
11052
11248
|
lineNumber: issue.lineNumber__numerationFrom1,
|
|
@@ -11063,21 +11259,25 @@ class HTML_Validator {
|
|
|
11063
11259
|
static computeAbsolutePathOfCachedValidationsResultsFileActualForCurrentProjectBuildingMode({ parentDirectoryAbsolutePath, projectBuildingSelectiveExecutionID, consumingProjectBuildingMode }) {
|
|
11064
11260
|
return es_extensions_nodejs_1.ImprovedPath.joinPathSegments([
|
|
11065
11261
|
parentDirectoryAbsolutePath,
|
|
11066
|
-
|
|
11262
|
+
[
|
|
11263
|
+
`${HTML_Validator.CACHED_VALIDATIONS_RESULTS_FILE_CONSTANT_NAME_PART}.`,
|
|
11264
|
+
...(0, es_extensions_1.isUndefined)(projectBuildingSelectiveExecutionID) ? [] : [`${projectBuildingSelectiveExecutionID}.`],
|
|
11265
|
+
`${(0, es_extensions_1.toLowerCamelCase)(consumingProjectBuildingMode)}.json`
|
|
11266
|
+
].join(".")
|
|
11067
11267
|
]);
|
|
11068
11268
|
}
|
|
11069
11269
|
writeCacheToFile() {
|
|
11070
|
-
|
|
11071
|
-
targetPath: this.absolutePathOfParentDirectoryOfCachedValidationsResultsFile,
|
|
11072
|
-
mustThrowErrorIfTargetDirectoryExists: false,
|
|
11073
|
-
synchronously: true
|
|
11074
|
-
});
|
|
11270
|
+
/* [ Maintainability ] Keep this variable for easier debugging. */
|
|
11075
11271
|
const cachedValidationsResultsFileContent = Array.from(this.cachedValidationsResults.entries()).
|
|
11076
11272
|
reduce((accumulatingValue, [filePathRelativeToConsumingProjectRootDirectory, cachedValidationRawResultsForSpecificFile]) => {
|
|
11077
11273
|
accumulatingValue[filePathRelativeToConsumingProjectRootDirectory] = cachedValidationRawResultsForSpecificFile;
|
|
11078
11274
|
return accumulatingValue;
|
|
11079
11275
|
}, {});
|
|
11080
|
-
|
|
11276
|
+
es_extensions_nodejs_1.ImprovedFileSystem.writeFileToPossiblyNotExistingDirectory({
|
|
11277
|
+
filePath: this.absolutePathOfParentDirectoryOfCachedValidationsResultsFile,
|
|
11278
|
+
content: JSON.stringify(cachedValidationsResultsFileContent, null, 2),
|
|
11279
|
+
synchronously: true
|
|
11280
|
+
});
|
|
11081
11281
|
}
|
|
11082
11282
|
/* ━━━ Routines ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
|
|
11083
11283
|
static getExpectedToBeInitializedSelfSingleInstance() {
|
|
@@ -11101,17 +11301,15 @@ class HTML_Validator {
|
|
|
11101
11301
|
(function (Types) {
|
|
11102
11302
|
Types["info"] = "info";
|
|
11103
11303
|
Types["error"] = "error";
|
|
11104
|
-
Types["nonDocumentError"] = "non-document-error";
|
|
11105
|
-
Types["networkError"] = "network-error";
|
|
11106
11304
|
})(Types = Issue.Types || (Issue.Types = {}));
|
|
11107
|
-
let
|
|
11108
|
-
(function (
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
})(
|
|
11305
|
+
let SubTypes;
|
|
11306
|
+
(function (SubTypes) {
|
|
11307
|
+
SubTypes["warning"] = "warning";
|
|
11308
|
+
SubTypes["fatal"] = "fatal";
|
|
11309
|
+
SubTypes["io"] = "io";
|
|
11310
|
+
SubTypes["schema"] = "schema";
|
|
11311
|
+
SubTypes["internal"] = "internal";
|
|
11312
|
+
})(SubTypes = Issue.SubTypes || (Issue.SubTypes = {}));
|
|
11115
11313
|
})(Issue = NormalizedValidationsResults.Issue || (NormalizedValidationsResults.Issue = {}));
|
|
11116
11314
|
})(NormalizedValidationsResults = HTML_Validator.NormalizedValidationsResults || (HTML_Validator.NormalizedValidationsResults = {}));
|
|
11117
11315
|
})(HTML_Validator || (HTML_Validator = {}));
|
|
@@ -11129,7 +11327,7 @@ exports["default"] = HTML_Validator;
|
|
|
11129
11327
|
|
|
11130
11328
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11131
11329
|
const HTML_ValidatorLocalization__english = {
|
|
11132
|
-
|
|
11330
|
+
cachedPreviousValidationsResultsDataRetrievingErrorLog: ({ cachedValidationsResultsFileAbsolutePath }) => ({
|
|
11133
11331
|
title: "Cached Previous Validations Data Retrieving Failure",
|
|
11134
11332
|
description: "Unable to read and/or parse the existing HTML validation cache file " +
|
|
11135
11333
|
`"${cachedValidationsResultsFileAbsolutePath}".`
|
|
@@ -11138,12 +11336,27 @@ const HTML_ValidatorLocalization__english = {
|
|
|
11138
11336
|
title: "HTML Code Validation Started",
|
|
11139
11337
|
description: "Validating the output HTML files..."
|
|
11140
11338
|
},
|
|
11141
|
-
|
|
11142
|
-
|
|
11143
|
-
|
|
11144
|
-
|
|
11339
|
+
validityIssuesDetectedErrorLog: {
|
|
11340
|
+
title: "HTML Validation, Issue(s) Detected",
|
|
11341
|
+
headings: {
|
|
11342
|
+
summary: "Summary",
|
|
11343
|
+
details: "Details"
|
|
11344
|
+
},
|
|
11345
|
+
generateSecondsElapsedSentence: ({ validationPeriod__seconds }) => `Seconds elapsed: ${validationPeriod__seconds}`
|
|
11145
11346
|
},
|
|
11146
|
-
|
|
11347
|
+
validityIssuesDetectedToastNotification: {
|
|
11348
|
+
title: "HTML Validation, Issue(s) Detected",
|
|
11349
|
+
message: "W3C rules violations and / or recommendations neglect detected. " +
|
|
11350
|
+
"Check the console for the details."
|
|
11351
|
+
},
|
|
11352
|
+
validationFinishedWithoutIssuesSuccessLog: {
|
|
11353
|
+
title: "HTML Validation, All Valid",
|
|
11354
|
+
generateDescription: ({ validationPeriod__seconds, preFormattedErrorsMessages }) => "All HTML files (except excluded ones if any) contains valid HTML. " +
|
|
11355
|
+
"The following files has been checked:\n" +
|
|
11356
|
+
`${preFormattedErrorsMessages}\n` +
|
|
11357
|
+
`Seconds elapsed: ${validationPeriod__seconds}`
|
|
11358
|
+
},
|
|
11359
|
+
generateIssueNumberLabel: ({ issueNumber }) => `Issue No. ${issueNumber}`,
|
|
11147
11360
|
generateIssueOccurrenceLocationIndication: ({ lineNumber, startingColumnNumber, lastColumnNumber }) => `At line ${lineNumber}, columns ${startingColumnNumber}-${lastColumnNumber}`,
|
|
11148
11361
|
issuesTypesTitles: {
|
|
11149
11362
|
grossViolation: "Gross violation",
|
|
@@ -12102,7 +12315,6 @@ const SourceCodeProcessingRawSettingsNormalizer_1 = __importDefault(__webpack_re
|
|
|
12102
12315
|
const RoutingSettingsNormalizer_1 = __importDefault(__webpack_require__(/*! @MarkupProcessing/RawSettingsNormalizer/RoutingSettingsNormalizer */ "./ProjectBuilding/SourceCodeProcessing/Markup/RawSettingsNormalizer/RoutingSettingsNormalizer.ts"));
|
|
12103
12316
|
/* ─── Utils ──────────────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
12104
12317
|
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
12105
|
-
const removeMultipleElementsFromSetByPredicate_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/Set/removeMultipleElementsFromSetByPredicate */ "./UtilsIncubator/Set/removeMultipleElementsFromSetByPredicate.ts"));
|
|
12106
12318
|
const isSubdirectory_1 = __importDefault(__webpack_require__(/*! @UtilsIncubator/NodeJS/isSubdirectory */ "./UtilsIncubator/NodeJS/isSubdirectory.ts"));
|
|
12107
12319
|
const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
|
|
12108
12320
|
/* ─── Localization ───────────────────────────────────────────────────────────────────────────────────────────────── */
|
|
@@ -12148,7 +12360,6 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
|
|
|
12148
12360
|
pagesVariations: dataHoldingSelfInstance.normalizeStaticPreviewPagesVariationsSettings(),
|
|
12149
12361
|
importsFromStaticDataFiles: dataHoldingSelfInstance.normalizeImportsFromStaticDataFiles()
|
|
12150
12362
|
},
|
|
12151
|
-
/* TODO Replace value of `absolutePathsOfSectioningToCache`. https://trello.com/c/RJfFF7oh */
|
|
12152
12363
|
...(0, es_extensions_1.isNotUndefined)(markupProcessingSettings__fromFile__rawValid.routing) ? {
|
|
12153
12364
|
routing: {
|
|
12154
12365
|
variable: markupProcessingSettings__fromFile__rawValid.routing.variable,
|
|
@@ -12525,7 +12736,7 @@ class MarkupProcessingRawSettingsNormalizer extends SourceCodeProcessingRawSetti
|
|
|
12525
12736
|
excludedFilesPathsRelativeToSourcesFilesTopDirectory?.
|
|
12526
12737
|
map((excludedFilePathRelativeRelativeToSourcesFileTopDirectory) => es_extensions_nodejs_1.ImprovedPath.joinPathSegments([sourceFilesTopDirectoryAbsolutePath, excludedFilePathRelativeRelativeToSourcesFileTopDirectory], { alwaysForwardSlashSeparators: true })) ??
|
|
12527
12738
|
[]).
|
|
12528
|
-
concat(Array.from((0,
|
|
12739
|
+
concat(Array.from((0, es_extensions_1.removeMultipleElementsFromSetByPredicate)({
|
|
12529
12740
|
targetSet: this.unusedCommonlyExcludedFromLocalizationEntryPointsSourceFilesAbsolutePaths,
|
|
12530
12741
|
predicate: (commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath) => (0, isSubdirectory_1.default)({
|
|
12531
12742
|
whichPath: commonlyExcludedFromLocalizationEntryPointsSourceFileAbsolutePath,
|
|
@@ -12624,7 +12835,7 @@ const markupProcessingRawSettingsNormalizerLocalization__english = {
|
|
|
12624
12835
|
`paths has not been specified for the "${consumingProjectBuildingMode}" building mode. ` +
|
|
12625
12836
|
"The resources references will be resolved to relative paths instead. " +
|
|
12626
12837
|
"If you wish these references be resolved to relative path, set \"$projectBuilding.$markupProcessing.$common." +
|
|
12627
|
-
"$buildingModeDependent.[PROJECT_BUILDING_MODE].$
|
|
12838
|
+
"$buildingModeDependent.[PROJECT_BUILDING_MODE].$mustResolveResourcesPointersToRelativePaths\" " +
|
|
12628
12839
|
`to true for the "${consumingProjectBuildingMode}" building mode.`
|
|
12629
12840
|
}),
|
|
12630
12841
|
generateStaticPreviewStateDependentPagesVariationsSpecificationFileReadingFailedMessage: (templateVariables) => "Failed to read the static preview state dependent pages variations specification file at " +
|
|
@@ -15843,6 +16054,21 @@ class VinylFileClass extends vinyl_1.default {
|
|
|
15843
16054
|
exports["default"] = VinylFileClass;
|
|
15844
16055
|
|
|
15845
16056
|
|
|
16057
|
+
/***/ }),
|
|
16058
|
+
|
|
16059
|
+
/***/ "./Utils/VoidPromiseReturningFunction.ts":
|
|
16060
|
+
/*!***********************************************!*\
|
|
16061
|
+
!*** ./Utils/VoidPromiseReturningFunction.ts ***!
|
|
16062
|
+
\***********************************************/
|
|
16063
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
16064
|
+
|
|
16065
|
+
|
|
16066
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16067
|
+
exports.voidPromiseReturningFunction = void 0;
|
|
16068
|
+
const voidPromiseReturningFunction = async () => Promise.resolve();
|
|
16069
|
+
exports.voidPromiseReturningFunction = voidPromiseReturningFunction;
|
|
16070
|
+
|
|
16071
|
+
|
|
15846
16072
|
/***/ }),
|
|
15847
16073
|
|
|
15848
16074
|
/***/ "./Utils/createImmediatelyEndingEmptyStream.ts":
|
|
@@ -15882,59 +16108,6 @@ function extractStringifiedContentFromVinylFile(targetFile) {
|
|
|
15882
16108
|
}
|
|
15883
16109
|
|
|
15884
16110
|
|
|
15885
|
-
/***/ }),
|
|
15886
|
-
|
|
15887
|
-
/***/ "./UtilsIncubator/@yamato-daiwa/es-extensions-nodejs/ImprovedFileSystem/deleteFilesFromDirectory.ts":
|
|
15888
|
-
/*!**********************************************************************************************************!*\
|
|
15889
|
-
!*** ./UtilsIncubator/@yamato-daiwa/es-extensions-nodejs/ImprovedFileSystem/deleteFilesFromDirectory.ts ***!
|
|
15890
|
-
\**********************************************************************************************************/
|
|
15891
|
-
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
15892
|
-
|
|
15893
|
-
|
|
15894
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15895
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15896
|
-
};
|
|
15897
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
15898
|
-
exports["default"] = deleteFilesFromDirectory;
|
|
15899
|
-
const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
|
|
15900
|
-
const promises_1 = __importDefault(__webpack_require__(/*! fs/promises */ "fs/promises"));
|
|
15901
|
-
const es_extensions_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions */ "@yamato-daiwa/es-extensions");
|
|
15902
|
-
const es_extensions_nodejs_1 = __webpack_require__(/*! @yamato-daiwa/es-extensions-nodejs */ "@yamato-daiwa/es-extensions-nodejs");
|
|
15903
|
-
function deleteFilesFromDirectory({ directoryPath__absoluteOrRelative, targetFileNamesExtensions, mustThrowErrorIfSomeFileCanNotBeDeleted, synchronously }) {
|
|
15904
|
-
const targetFilesAbsolutePaths = es_extensions_nodejs_1.ImprovedGlob.getFilesAbsolutePathsSynchronously([
|
|
15905
|
-
es_extensions_nodejs_1.ImprovedGlob.buildAllFilesInCurrentDirectoryAndBelowGlobSelector({
|
|
15906
|
-
basicDirectoryPath: directoryPath__absoluteOrRelative,
|
|
15907
|
-
fileNamesExtensions: targetFileNamesExtensions
|
|
15908
|
-
})
|
|
15909
|
-
]);
|
|
15910
|
-
if (synchronously) {
|
|
15911
|
-
for (const targetFilesAbsolutePath of targetFilesAbsolutePaths) {
|
|
15912
|
-
try {
|
|
15913
|
-
fs_1.default.unlinkSync(targetFilesAbsolutePath);
|
|
15914
|
-
}
|
|
15915
|
-
catch (error) {
|
|
15916
|
-
if (mustThrowErrorIfSomeFileCanNotBeDeleted) {
|
|
15917
|
-
es_extensions_1.Logger.throwErrorAndLog({
|
|
15918
|
-
errorType: "FileDeletingFailure",
|
|
15919
|
-
title: "File Deleting Failed",
|
|
15920
|
-
description: `The error has occurred during deleting of the file with path "${targetFilesAbsolutePath}".`,
|
|
15921
|
-
occurrenceLocation: "deleteFilesFromDirectory(compoundParameter)",
|
|
15922
|
-
innerError: error
|
|
15923
|
-
});
|
|
15924
|
-
}
|
|
15925
|
-
}
|
|
15926
|
-
}
|
|
15927
|
-
return;
|
|
15928
|
-
}
|
|
15929
|
-
return new Promise((resolve, reject) => {
|
|
15930
|
-
Promise.
|
|
15931
|
-
all(targetFilesAbsolutePaths.map(async (targetFilesAbsolutePath) => promises_1.default.unlink(targetFilesAbsolutePath))).
|
|
15932
|
-
then(resolve).
|
|
15933
|
-
catch(reject);
|
|
15934
|
-
});
|
|
15935
|
-
}
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
16111
|
/***/ }),
|
|
15939
16112
|
|
|
15940
16113
|
/***/ "./UtilsIncubator/NodeJS/isSubdirectory.ts":
|
|
@@ -15956,32 +16129,6 @@ function isSubdirectory({ whichPath, ofWhichPath }) {
|
|
|
15956
16129
|
}
|
|
15957
16130
|
|
|
15958
16131
|
|
|
15959
|
-
/***/ }),
|
|
15960
|
-
|
|
15961
|
-
/***/ "./UtilsIncubator/Set/removeMultipleElementsFromSetByPredicate.ts":
|
|
15962
|
-
/*!************************************************************************!*\
|
|
15963
|
-
!*** ./UtilsIncubator/Set/removeMultipleElementsFromSetByPredicate.ts ***!
|
|
15964
|
-
\************************************************************************/
|
|
15965
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
15969
|
-
exports["default"] = removeMultipleElementsFromSetByPredicate;
|
|
15970
|
-
function removeMultipleElementsFromSetByPredicate({ targetSet, predicate }) {
|
|
15971
|
-
const removedElements = [];
|
|
15972
|
-
for (const element of targetSet) {
|
|
15973
|
-
if (predicate(element)) {
|
|
15974
|
-
targetSet.delete(element);
|
|
15975
|
-
removedElements.push(element);
|
|
15976
|
-
}
|
|
15977
|
-
}
|
|
15978
|
-
return {
|
|
15979
|
-
updatedSet: targetSet,
|
|
15980
|
-
removedElements
|
|
15981
|
-
};
|
|
15982
|
-
}
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
16132
|
/***/ }),
|
|
15986
16133
|
|
|
15987
16134
|
/***/ "./UtilsIncubator/Stopwatch.ts":
|
|
@@ -16112,6 +16259,16 @@ module.exports = require("browser-sync");
|
|
|
16112
16259
|
|
|
16113
16260
|
/***/ }),
|
|
16114
16261
|
|
|
16262
|
+
/***/ "child_process":
|
|
16263
|
+
/*!********************************!*\
|
|
16264
|
+
!*** external "child_process" ***!
|
|
16265
|
+
\********************************/
|
|
16266
|
+
/***/ ((module) => {
|
|
16267
|
+
|
|
16268
|
+
module.exports = require("child_process");
|
|
16269
|
+
|
|
16270
|
+
/***/ }),
|
|
16271
|
+
|
|
16115
16272
|
/***/ "cssnano":
|
|
16116
16273
|
/*!**************************!*\
|
|
16117
16274
|
!*** external "cssnano" ***!
|
|
@@ -16142,16 +16299,6 @@ module.exports = require("eslint");
|
|
|
16142
16299
|
|
|
16143
16300
|
/***/ }),
|
|
16144
16301
|
|
|
16145
|
-
/***/ "fork-ts-checker-webpack-plugin":
|
|
16146
|
-
/*!*************************************************!*\
|
|
16147
|
-
!*** external "fork-ts-checker-webpack-plugin" ***!
|
|
16148
|
-
\*************************************************/
|
|
16149
|
-
/***/ ((module) => {
|
|
16150
|
-
|
|
16151
|
-
module.exports = require("fork-ts-checker-webpack-plugin");
|
|
16152
|
-
|
|
16153
|
-
/***/ }),
|
|
16154
|
-
|
|
16155
16302
|
/***/ "fs":
|
|
16156
16303
|
/*!*********************!*\
|
|
16157
16304
|
!*** external "fs" ***!
|
|
@@ -16162,16 +16309,6 @@ module.exports = require("fs");
|
|
|
16162
16309
|
|
|
16163
16310
|
/***/ }),
|
|
16164
16311
|
|
|
16165
|
-
/***/ "fs/promises":
|
|
16166
|
-
/*!******************************!*\
|
|
16167
|
-
!*** external "fs/promises" ***!
|
|
16168
|
-
\******************************/
|
|
16169
|
-
/***/ ((module) => {
|
|
16170
|
-
|
|
16171
|
-
module.exports = require("fs/promises");
|
|
16172
|
-
|
|
16173
|
-
/***/ }),
|
|
16174
|
-
|
|
16175
16312
|
/***/ "gulp":
|
|
16176
16313
|
/*!***********************!*\
|
|
16177
16314
|
!*** external "gulp" ***!
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yamato-daiwa/automation",
|
|
3
|
-
"version": "0.7.0
|
|
3
|
+
"version": "0.7.0",
|
|
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,26 +20,25 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
|
|
23
|
-
"@stylistic/eslint-plugin": "
|
|
24
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
25
|
-
"@typescript-eslint/parser": "8.
|
|
26
|
-
"@vue/compiler-sfc": "3.5.
|
|
23
|
+
"@stylistic/eslint-plugin": "5.2.2",
|
|
24
|
+
"@typescript-eslint/eslint-plugin": "8.38.0",
|
|
25
|
+
"@typescript-eslint/parser": "8.38.0",
|
|
26
|
+
"@vue/compiler-sfc": "3.5.18",
|
|
27
27
|
"@webdiscus/pug-loader": "2.11.1",
|
|
28
|
-
"@yamato-daiwa/es-extensions": "1.8.0-
|
|
29
|
-
"@yamato-daiwa/es-extensions-nodejs": "1.8.0-
|
|
30
|
-
"@yamato-daiwa/style_guides": "0.
|
|
28
|
+
"@yamato-daiwa/es-extensions": "1.8.0-rc.1",
|
|
29
|
+
"@yamato-daiwa/es-extensions-nodejs": "1.8.0-rc.1",
|
|
30
|
+
"@yamato-daiwa/style_guides": "0.8.1",
|
|
31
31
|
"autoprefixer": "10.4.21",
|
|
32
32
|
"browser-sync": "3.0.4",
|
|
33
33
|
"css-loader": "7.1.2",
|
|
34
|
-
"cssnano": "7.0
|
|
34
|
+
"cssnano": "7.1.0",
|
|
35
35
|
"dotenv": "16.5.0",
|
|
36
|
-
"eslint": "9.
|
|
37
|
-
"eslint-plugin-import": "2.
|
|
38
|
-
"eslint-plugin-n": "17.
|
|
36
|
+
"eslint": "9.32.0",
|
|
37
|
+
"eslint-plugin-import": "2.32.0",
|
|
38
|
+
"eslint-plugin-n": "17.21.3",
|
|
39
39
|
"eslint-plugin-react": "7.37.5",
|
|
40
40
|
"eslint-plugin-vue": "9.33.0",
|
|
41
41
|
"eslint-plugin-vue-pug": "0.6.2",
|
|
42
|
-
"fork-ts-checker-webpack-plugin": "7.3.0",
|
|
43
42
|
"gulp": "4.0.2",
|
|
44
43
|
"gulp-data": "1.3.1",
|
|
45
44
|
"gulp-if": "3.0.0",
|
|
@@ -74,8 +73,8 @@
|
|
|
74
73
|
"vnu-jar": "24.10.17",
|
|
75
74
|
"vue-loader": "17.4.2",
|
|
76
75
|
"vue-style-loader": "4.1.3",
|
|
77
|
-
"vue-tsc": "
|
|
78
|
-
"webpack": "5.
|
|
76
|
+
"vue-tsc": "3.0.5",
|
|
77
|
+
"webpack": "5.101.0",
|
|
79
78
|
"webpack-node-externals": "3.0.0",
|
|
80
79
|
"webpack-stream": "7.0.0",
|
|
81
80
|
"worker-loader": "3.0.8",
|
|
@@ -85,7 +84,7 @@
|
|
|
85
84
|
"@types/browser-sync": "2.29.0",
|
|
86
85
|
"@types/cssnano": "5.0.0",
|
|
87
86
|
"@types/gulp": "4.0.17",
|
|
88
|
-
"@types/gulp-if": "3.0.
|
|
87
|
+
"@types/gulp-if": "3.0.5",
|
|
89
88
|
"@types/gulp-imagemin": "7.0.3",
|
|
90
89
|
"@types/gulp-nodemon": "0.0.37",
|
|
91
90
|
"@types/gulp-plumber": "0.0.37",
|