npm package diff

Package: @forge/manifest

Versions: 8.7.0-next.6-experimental-edac07a - 8.7.0-next.7

File: package/out/validators/modules-validators/confluence/validateMacroAutoConvert.js

Index: package/out/validators/modules-validators/confluence/validateMacroAutoConvert.js
===================================================================
--- package/out/validators/modules-validators/confluence/validateMacroAutoConvert.js
+++ package/out/validators/modules-validators/confluence/validateMacroAutoConvert.js
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.validateMacroAutoConvert = void 0;
+const text_1 = require("../../../text");
+const utils_1 = require("../../../utils");
+const VALID_MATCHER_PATTERN = new RegExp(/^(?=.{1,1024}$)https?:\/\/(?:[a-zA-Z0-9-\*]+\.)*[a-zA-Z0-9-\*]+(?:\.[a-zA-Z\*]{1,})?(?:\/.*)?$/);
+const errorMessages = text_1.errors.modules.confluence.autoConvert;
+const mapToAutoConvertError = (validationErrors, moduleKey) => validationErrors.map((message) => ({ moduleKey, message }));
+const validateEmpty = (matchers, moduleKey) => {
+    const validationErrors = [];
+    if (matchers === undefined || matchers.length == 0) {
+        validationErrors.push(errorMessages.emptyMatcherArray(moduleKey));
+    }
+    return mapToAutoConvertError(validationErrors, moduleKey);
+};
+const validateRegex = (pattern, moduleKey, index) => {
+    const validationErrors = [];
+    if (!VALID_MATCHER_PATTERN.test(pattern)) {
+        validationErrors.push(errorMessages.invalidMatcherPatternRegex(pattern, moduleKey, index));
+    }
+    return validationErrors;
+};
+const validateMatcherPattern = (moduleKey, pattern, index) => {
+    const validationErrors = [];
+    validationErrors.push(...validateRegex(pattern, moduleKey, index));
+    return mapToAutoConvertError(validationErrors, moduleKey);
+};
+const validateMacroAutoConvert = (allModules, yamlContentByLine) => {
+    const validationErrors = [];
+    const modules = (0, utils_1.getAllModules)(allModules) || [];
+    const modulesWithAutoConvert = modules.filter((module) => module.autoConvert);
+    if (modulesWithAutoConvert.length > 0) {
+        modulesWithAutoConvert.forEach((module) => {
+            validationErrors.push(...validateEmpty(module.autoConvert.matchers, module.key).map((error) => ({
+                message: error.message,
+                reference: text_1.References.Modules,
+                level: 'error',
+                ...(0, utils_1.findPosition)(error.moduleKey, yamlContentByLine)
+            })));
+            if (validationErrors.length) {
+                return validationErrors;
+            }
+            module.autoConvert.matchers.forEach((matchers, index) => {
+                validationErrors.push(...validateMatcherPattern(module.key, matchers.pattern, index).map((error) => ({
+                    message: error.message,
+                    reference: text_1.References.Modules,
+                    level: 'error',
+                    ...(0, utils_1.findPosition)(error.moduleKey, yamlContentByLine)
+                })));
+            });
+        });
+    }
+    return validationErrors;
+};
+exports.validateMacroAutoConvert = validateMacroAutoConvert;