html-validate 8.2.0 → 8.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../../src/error/wrapped-error.ts","../../../src/error/ensure-error.ts","../../../src/error/nested-error.ts","../../../src/error/user-error.ts","../../../src/error/inherit-error.ts","../../../src/error/schema-validation-error.ts","../../../src/utils/compute-hash.ts","../../../src/schema/keywords/regexp.ts","../../../src/schema/keywords/function.ts","../../../src/meta/element.ts","../../../src/meta/migrate.ts","../../../src/meta/evaluator/is-descendant.ts","../../../src/meta/evaluator/has-attribute.ts","../../../src/meta/evaluator/match-attribute.ts","../../../src/meta/table.ts","../../../src/dom/dynamic-value.ts","../../../src/dom/attribute.ts","../../../src/dom/css/parse-css-declaration.ts","../../../src/context/location.ts","../../../src/context/state.ts","../../../src/context/context.ts","../../../src/dom/nodetype.ts","../../../src/dom/domnode.ts","../../../src/dom/domtokenlist.ts","../../../src/dom/combinator.ts","../../../src/dom/pseudoclass/first-child.ts","../../../src/dom/pseudoclass/last-child.ts","../../../src/dom/pseudoclass/nth-child.ts","../../../src/dom/pseudoclass/scope.ts","../../../src/dom/pseudoclass/index.ts","../../../src/dom/selector.ts","../../../src/dom/text.ts","../../../src/dom/htmlelement.ts","../../../src/dom/domtree.ts","../../../src/meta/validator.ts","../../../src/transform/index.ts","../../../src/config/severity.ts","../../../src/utils/interpolate.ts","../../../src/rules/helper/is-keyword-ignored.ts","../../../src/rules/helper/a11y.ts","../../../src/rules/helper/text.ts","../../../src/rules/helper/has-alt-text.ts","../../../src/rules/helper/has-aria-label.ts","../../../src/rules/helper/partition.ts","../../../src/rule.ts","../../../src/rules/allowed-links.ts","../../../src/rules/area-alt.ts","../../../src/rules/aria-hidden-body.ts","../../../src/rules/aria-label-misuse.ts","../../../src/config/error.ts","../../../src/rules/helper/case-style.ts","../../../src/rules/attr-case.ts","../../../src/lexer/token.ts","../../../src/lexer/lexer.ts","../../../src/rules/attr-delimiter.ts","../../../src/rules/attr-pattern.ts","../../../src/rules/attr-quotes.ts","../../../src/rules/attr-spacing.ts","../../../src/rules/attribute-allowed-values.ts","../../../src/rules/attribute-boolean-style.ts","../../../src/rules/attribute-empty-style.ts","../../../src/rules/attribute-misuse.ts","../../../src/pattern.ts","../../../src/rules/class-pattern.ts","../../../src/rules/close-attr.ts","../../../src/rules/close-order.ts","../../../src/rules/deprecated.ts","../../../src/rules/deprecated-rule.ts","../../../src/rules/doctype-html.ts","../../../src/rules/doctype-style.ts","../../../src/rules/element-case.ts","../../../src/rules/element-name.ts","../../../src/rules/element-permitted-content.ts","../../../src/rules/element-permitted-occurrences.ts","../../../src/rules/element-permitted-order.ts","../../../src/rules/element-permitted-parent.ts","../../../src/rules/element-required-ancestor.ts","../../../src/rules/element-required-attributes.ts","../../../src/rules/element-required-content.ts","../../../src/rules/empty-heading.ts","../../../src/rules/empty-title.ts","../../../src/rules/form-dup-name.ts","../../../src/rules/heading-level.ts","../../../src/rules/id-pattern.ts","../../../src/rules/input-attributes.ts","../../../src/rules/helper/has-accessible-name.ts","../../../src/rules/input-missing-label.ts","../../../src/rules/long-title.ts","../../../src/rules/meta-refresh.ts","../../../src/rules/map-dup-name.ts","../../../src/rules/map-id-name.ts","../../../src/rules/missing-doctype.ts","../../../src/rules/multiple-labeled-controls.ts","../../../src/rules/no-autoplay.ts","../../../src/rules/no-conditional-comment.ts","../../../src/rules/no-deprecated-attr.ts","../../../src/rules/no-dup-attr.ts","../../../src/rules/no-dup-class.ts","../../../src/rules/no-dup-id.ts","../../../src/rules/no-implicit-close.ts","../../../src/rules/no-inline-style.ts","../../../src/rules/no-missing-references.ts","../../../src/rules/no-multiple-main.ts","../../../src/rules/no-raw-characters.ts","../../../src/rules/no-redundant-aria-label.ts","../../../src/rules/no-redundant-for.ts","../../../src/rules/no-redundant-role.ts","../../../src/rules/no-self-closing.ts","../../../src/rules/no-style-tag.ts","../../../src/rules/no-trailing-whitespace.ts","../../../src/rules/no-unknown-elements.ts","../../../src/rules/no-unused-disable.ts","../../../src/rules/no-utf8-bom.ts","../../../src/rules/prefer-button.ts","../../../src/rules/prefer-native-element.ts","../../../src/rules/prefer-tbody.ts","../../../src/rules/require-csp-nonce.ts","../../../src/rules/require-sri.ts","../../../src/rules/script-element.ts","../../../src/rules/script-type.ts","../../../src/rules/svg-focusable.ts","../../../src/rules/tel-non-breaking.ts","../../../src/rules/text-content.ts","../../../src/rules/unrecognized-char-ref.ts","../../../src/rules/valid-id.ts","../../../src/rules/void-content.ts","../../../src/rules/void-style.ts","../../../src/rules/wcag/h30.ts","../../../src/rules/wcag/h32.ts","../../../src/rules/wcag/h36.ts","../../../src/rules/wcag/h37.ts","../../../src/rules/wcag/h63.ts","../../../src/rules/wcag/h67.ts","../../../src/rules/wcag/h71.ts","../../../src/rules/wcag/index.ts","../../../src/rules/index.ts","../../../src/config/default.ts","../../../src/config/presets/a11y.ts","../../../src/config/presets/document.ts","../../../src/config/presets/prettier.ts","../../../src/config/presets/recommended.ts","../../../src/config/presets/standard.ts","../../../src/config/presets/index.ts","../../../src/config/resolved-config.ts","../../../src/config/resolver/resolve-helpers.ts","../../../src/config/resolver/static/static-resolver.ts","../../../src/config/config.ts","../../../src/config/config-loader.ts","../../../src/event/eventhandler.ts","../../../src/parser/conditional-comment.ts","../../../src/parser/parser-error.ts","../../../src/parser/parser.ts","../../../src/reporter.ts","../../../src/engine/rule-blocker.ts","../../../src/engine/engine.ts","../../../src/config/loaders/static.ts","../../../src/htmlvalidate.ts","../../../src/generated/package.ts","../../../src/plugin/define-plugin.ts","../../../src/utils/rule-exists.ts","../../../src/formatters/checkstyle.ts","../../../src/formatters/codeframe.ts","../../../src/formatters/json.ts","../../../src/formatters/stylish.ts","../../../src/formatters/text.ts","../../../src/formatters/index.ts","../../../src/utils/compatibility-check.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["betterAjvErrors","fs","TextContent","overwriteMerge","deepmerge","Ajv","NodeType","pseudoClassFunction","NodeClosed","Severity","TextClassification","ajv","Style","defaults","mapping","RuleContext","getDescription","parseStyle","reportMessage","getRuleDescription","isCategory","formatMessage","naturalJoin","hasImgAltText","isRelevant","TextContentEnum","regexp","entities","html5","bundledRules","DoctypeHtml","NoDupId","UnrecognizedCharRef","config","schema","bundledElements","formatter","kleur","codeFrameColumns","stylishImpl","stylish","semver"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sources":["../../src/error/wrapped-error.ts","../../src/error/ensure-error.ts","../../src/error/nested-error.ts","../../src/error/user-error.ts","../../src/error/inherit-error.ts","../../src/error/schema-validation-error.ts","../../src/utils/compute-hash.ts","../../src/schema/keywords/regexp.ts","../../src/schema/keywords/function.ts","../../src/meta/element.ts","../../src/meta/migrate.ts","../../src/meta/evaluator/is-descendant.ts","../../src/meta/evaluator/has-attribute.ts","../../src/meta/evaluator/match-attribute.ts","../../src/meta/table.ts","../../src/dom/dynamic-value.ts","../../src/dom/attribute.ts","../../src/dom/css/parse-css-declaration.ts","../../src/context/location.ts","../../src/context/state.ts","../../src/context/context.ts","../../src/dom/nodetype.ts","../../src/dom/domnode.ts","../../src/dom/domtokenlist.ts","../../src/dom/combinator.ts","../../src/dom/pseudoclass/first-child.ts","../../src/dom/pseudoclass/last-child.ts","../../src/dom/pseudoclass/nth-child.ts","../../src/dom/pseudoclass/scope.ts","../../src/dom/pseudoclass/index.ts","../../src/dom/selector.ts","../../src/dom/text.ts","../../src/dom/htmlelement.ts","../../src/dom/domtree.ts","../../src/meta/validator.ts","../../src/transform/index.ts","../../src/config/severity.ts","../../src/utils/interpolate.ts","../../src/rules/helper/is-keyword-ignored.ts","../../src/rules/helper/a11y.ts","../../src/rules/helper/text.ts","../../src/rules/helper/has-alt-text.ts","../../src/rules/helper/has-aria-label.ts","../../src/rules/helper/partition.ts","../../src/rule.ts","../../src/rules/allowed-links.ts","../../src/rules/area-alt.ts","../../src/rules/aria-hidden-body.ts","../../src/rules/aria-label-misuse.ts","../../src/config/error.ts","../../src/rules/helper/case-style.ts","../../src/rules/attr-case.ts","../../src/lexer/token.ts","../../src/lexer/lexer.ts","../../src/rules/attr-delimiter.ts","../../src/rules/attr-pattern.ts","../../src/rules/attr-quotes.ts","../../src/rules/attr-spacing.ts","../../src/rules/attribute-allowed-values.ts","../../src/rules/attribute-boolean-style.ts","../../src/rules/attribute-empty-style.ts","../../src/rules/attribute-misuse.ts","../../src/pattern.ts","../../src/rules/class-pattern.ts","../../src/rules/close-attr.ts","../../src/rules/close-order.ts","../../src/rules/deprecated.ts","../../src/rules/deprecated-rule.ts","../../src/rules/doctype-html.ts","../../src/rules/doctype-style.ts","../../src/rules/element-case.ts","../../src/rules/element-name.ts","../../src/rules/element-permitted-content.ts","../../src/rules/element-permitted-occurrences.ts","../../src/rules/element-permitted-order.ts","../../src/rules/element-permitted-parent.ts","../../src/rules/element-required-ancestor.ts","../../src/rules/element-required-attributes.ts","../../src/rules/element-required-content.ts","../../src/rules/empty-heading.ts","../../src/rules/empty-title.ts","../../src/rules/form-dup-name.ts","../../src/rules/heading-level.ts","../../src/rules/id-pattern.ts","../../src/rules/input-attributes.ts","../../src/rules/helper/has-accessible-name.ts","../../src/rules/input-missing-label.ts","../../src/rules/long-title.ts","../../src/rules/meta-refresh.ts","../../src/rules/map-dup-name.ts","../../src/rules/map-id-name.ts","../../src/rules/missing-doctype.ts","../../src/rules/multiple-labeled-controls.ts","../../src/rules/no-autoplay.ts","../../src/rules/no-conditional-comment.ts","../../src/rules/no-deprecated-attr.ts","../../src/rules/no-dup-attr.ts","../../src/rules/no-dup-class.ts","../../src/rules/no-dup-id.ts","../../src/rules/no-implicit-button-type.ts","../../src/rules/no-implicit-close.ts","../../src/rules/no-inline-style.ts","../../src/rules/no-missing-references.ts","../../src/rules/no-multiple-main.ts","../../src/rules/no-raw-characters.ts","../../src/rules/no-redundant-aria-label.ts","../../src/rules/no-redundant-for.ts","../../src/rules/no-redundant-role.ts","../../src/rules/no-self-closing.ts","../../src/rules/no-style-tag.ts","../../src/rules/no-trailing-whitespace.ts","../../src/rules/no-unknown-elements.ts","../../src/rules/no-unused-disable.ts","../../src/rules/no-utf8-bom.ts","../../src/rules/prefer-button.ts","../../src/rules/prefer-native-element.ts","../../src/rules/prefer-tbody.ts","../../src/rules/require-csp-nonce.ts","../../src/rules/require-sri.ts","../../src/rules/script-element.ts","../../src/rules/script-type.ts","../../src/rules/svg-focusable.ts","../../src/rules/tel-non-breaking.ts","../../src/rules/text-content.ts","../../src/rules/unrecognized-char-ref.ts","../../src/rules/valid-id.ts","../../src/rules/void-content.ts","../../src/rules/void-style.ts","../../src/rules/wcag/h30.ts","../../src/rules/wcag/h32.ts","../../src/rules/wcag/h36.ts","../../src/rules/wcag/h37.ts","../../src/rules/wcag/h63.ts","../../src/rules/wcag/h67.ts","../../src/rules/wcag/h71.ts","../../src/rules/wcag/index.ts","../../src/rules/index.ts","../../src/config/default.ts","../../src/config/presets/a11y.ts","../../src/config/presets/document.ts","../../src/config/presets/prettier.ts","../../src/config/presets/recommended.ts","../../src/config/presets/standard.ts","../../src/config/presets/index.ts","../../src/config/resolved-config.ts","../../src/config/resolver/resolve-helpers.ts","../../src/config/resolver/static/static-resolver.ts","../../src/config/config.ts","../../src/config/config-loader.ts","../../src/event/eventhandler.ts","../../src/parser/conditional-comment.ts","../../src/parser/parser-error.ts","../../src/parser/parser.ts","../../src/reporter.ts","../../src/engine/rule-blocker.ts","../../src/engine/engine.ts","../../src/config/loaders/static.ts","../../src/htmlvalidate.ts","../../src/generated/package.ts","../../src/plugin/define-plugin.ts","../../src/utils/rule-exists.ts","../../src/formatters/checkstyle.ts","../../src/formatters/codeframe.ts","../../src/formatters/json.ts","../../src/formatters/stylish.ts","../../src/formatters/text.ts","../../src/formatters/index.ts","../../src/utils/compatibility-check.ts"],"sourcesContent":["function stringify(value) {\n if (typeof value === \"string\") {\n return String(value);\n }\n else {\n return JSON.stringify(value);\n }\n}\n/**\n * Represents an `Error` created from arbitrary values.\n *\n * @public\n */\nexport class WrappedError extends Error {\n constructor(message) {\n super(stringify(message));\n }\n}\n//# sourceMappingURL=wrapped-error.js.map","import { WrappedError } from \"./wrapped-error\";\n/**\n * Ensures the value is an Error.\n *\n * If the passed value is not an `Error` instance a [[WrappedError]] is\n * constructed with the stringified value.\n *\n * @internal\n */\nexport function ensureError(value) {\n if (value instanceof Error) {\n return value;\n }\n else {\n return new WrappedError(value);\n }\n}\n//# sourceMappingURL=ensure-error.js.map","/**\n * @public\n */\nexport class NestedError extends Error {\n constructor(message, nested) {\n super(message);\n Error.captureStackTrace(this, NestedError);\n this.name = NestedError.name;\n if (nested === null || nested === void 0 ? void 0 : nested.stack) {\n this.stack += `\\nCaused by: ${nested.stack}`;\n }\n }\n}\n//# sourceMappingURL=nested-error.js.map","import { NestedError } from \"./nested-error\";\n/**\n * @public\n */\nexport class UserError extends NestedError {\n constructor(message, nested) {\n super(message, nested);\n Error.captureStackTrace(this, UserError);\n this.name = UserError.name;\n }\n /**\n * @public\n */\n /* istanbul ignore next: default implementation */\n prettyFormat() {\n return undefined;\n }\n}\n//# sourceMappingURL=user-error.js.map","import { UserError } from \"./user-error\";\n/**\n * @internal\n */\nexport class InheritError extends UserError {\n constructor({ tagName, inherit }) {\n const message = `Element <${tagName}> cannot inherit from <${inherit}>: no such element`;\n super(message);\n Error.captureStackTrace(this, InheritError);\n this.name = InheritError.name;\n this.tagName = tagName;\n this.inherit = inherit;\n this.filename = null;\n }\n prettyFormat() {\n const { message, tagName, inherit } = this;\n const source = this.filename\n ? [\"\", \"This error occurred when loading element metadata from:\", `\"${this.filename}\"`, \"\"]\n : [\"\"];\n return [\n message,\n ...source,\n \"This usually occurs when the elements are defined in the wrong order, try one of the following:\",\n \"\",\n ` - Ensure the spelling of \"${inherit}\" is correct.`,\n ` - Ensure the file containing \"${inherit}\" is loaded before the file containing \"${tagName}\".`,\n ` - Move the definition of \"${inherit}\" above the definition for \"${tagName}\".`,\n ].join(\"\\n\");\n }\n}\n//# sourceMappingURL=inherit-error.js.map","import fs from \"fs\";\nimport betterAjvErrors from \"@sidvind/better-ajv-errors\";\nimport { UserError } from \"./user-error\";\nfunction getSummary(schema, obj, errors) {\n const output = betterAjvErrors(schema, obj, errors, {\n format: \"js\",\n });\n // istanbul ignore next: for safety only\n return output.length > 0 ? output[0].error : \"unknown validation error\";\n}\n/**\n * @public\n */\nexport class SchemaValidationError extends UserError {\n constructor(filename, message, obj, schema, errors) {\n const summary = getSummary(schema, obj, errors);\n super(`${message}: ${summary}`);\n this.filename = filename;\n this.obj = obj;\n this.schema = schema;\n this.errors = errors;\n }\n prettyError() {\n const json = this.getRawJSON();\n return betterAjvErrors(this.schema, this.obj, this.errors, {\n format: \"cli\",\n indent: 2,\n json,\n });\n }\n getRawJSON() {\n if (this.filename && fs.existsSync(this.filename)) {\n return fs.readFileSync(this.filename, \"utf-8\");\n }\n else {\n return null;\n }\n }\n}\n//# sourceMappingURL=schema-validation-error.js.map","/**\n * Computes hash for given string.\n *\n * @internal\n */\nfunction cyrb53(str) {\n const a = 2654435761;\n const b = 1597334677;\n const c = 2246822507;\n const d = 3266489909;\n const e = 4294967296;\n const f = 2097151;\n const seed = 0;\n let h1 = 0xdeadbeef ^ seed;\n let h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, a);\n h2 = Math.imul(h2 ^ ch, b);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), c) ^ Math.imul(h2 ^ (h2 >>> 13), d);\n h2 = Math.imul(h2 ^ (h2 >>> 16), c) ^ Math.imul(h1 ^ (h1 >>> 13), d);\n return e * (f & h2) + (h1 >>> 0);\n}\nexport const computeHash = cyrb53;\n//# sourceMappingURL=compute-hash.js.map","/**\n * AJV keyword \"regexp\" to validate the type to be a regular expression.\n * Injects errors with the \"type\" keyword to give the same output.\n */\n/* istanbul ignore next: manual testing */\nconst ajvRegexpValidate = function (data, dataCxt) {\n const valid = data instanceof RegExp;\n if (!valid) {\n ajvRegexpValidate.errors = [\n {\n instancePath: dataCxt === null || dataCxt === void 0 ? void 0 : dataCxt.instancePath,\n schemaPath: undefined,\n keyword: \"type\",\n message: \"should be a regular expression\",\n params: {\n keyword: \"type\",\n },\n },\n ];\n }\n return valid;\n};\nexport const ajvRegexpKeyword = {\n keyword: \"regexp\",\n schema: false,\n errors: true,\n validate: ajvRegexpValidate,\n};\n//# sourceMappingURL=regexp.js.map","/**\n * AJV keyword \"function\" to validate the type to be a function. Injects errors\n * with the \"type\" keyword to give the same output.\n */\nconst ajvFunctionValidate = function (data, dataCxt) {\n const valid = typeof data === \"function\";\n if (!valid) {\n ajvFunctionValidate.errors = [\n {\n instancePath: /* istanbul ignore next */ dataCxt === null || dataCxt === void 0 ? void 0 : dataCxt.instancePath,\n schemaPath: undefined,\n keyword: \"type\",\n message: \"should be a function\",\n params: {\n keyword: \"type\",\n },\n },\n ];\n }\n return valid;\n};\nexport const ajvFunctionKeyword = {\n keyword: \"function\",\n schema: false,\n errors: true,\n validate: ajvFunctionValidate,\n};\n//# sourceMappingURL=function.js.map","/**\n * @public\n */\nexport var TextContent;\n(function (TextContent) {\n /* forbid node to have text content, inter-element whitespace is ignored */\n TextContent[\"NONE\"] = \"none\";\n /* node can have text but not required too */\n TextContent[\"DEFAULT\"] = \"default\";\n /* node requires text-nodes to be present (direct or by descendant) */\n TextContent[\"REQUIRED\"] = \"required\";\n /* node requires accessible text (hidden text is ignored, tries to get text from accessibility tree) */\n TextContent[\"ACCESSIBLE\"] = \"accessible\";\n})(TextContent || (TextContent = {}));\n/**\n * Properties listed here can be copied (loaded) onto another element using\n * [[HtmlElement.loadMeta]].\n *\n * @public\n */\nexport const MetaCopyableProperty = [\n \"metadata\",\n \"flow\",\n \"sectioning\",\n \"heading\",\n \"phrasing\",\n \"embedded\",\n \"interactive\",\n \"transparent\",\n \"form\",\n \"formAssociated\",\n \"labelable\",\n \"attributes\",\n \"permittedContent\",\n \"permittedDescendants\",\n \"permittedOrder\",\n \"permittedParent\",\n \"requiredAncestors\",\n \"requiredContent\",\n];\n/**\n * @internal\n */\nexport function setMetaProperty(dst, key, value) {\n dst[key] = value;\n}\n//# sourceMappingURL=element.js.map","function isSet(value) {\n return typeof value !== \"undefined\";\n}\nfunction flag(value) {\n return value ? true : undefined;\n}\nfunction stripUndefined(src) {\n const entries = Object.entries(src).filter(([, value]) => isSet(value));\n return Object.fromEntries(entries);\n}\nfunction migrateSingleAttribute(src, key) {\n var _a, _b;\n const result = {};\n result.deprecated = flag((_a = src.deprecatedAttributes) === null || _a === void 0 ? void 0 : _a.includes(key));\n result.required = flag((_b = src.requiredAttributes) === null || _b === void 0 ? void 0 : _b.includes(key));\n result.omit = undefined;\n const attr = src.attributes ? src.attributes[key] : undefined;\n if (typeof attr === \"undefined\") {\n return stripUndefined(result);\n }\n /* when the attribute is set to null we use a special property \"delete\" to\n * flag it, if it is still set during merge (inheritance, overwriting, etc) the attribute will be removed */\n if (attr === null) {\n result.delete = true;\n return stripUndefined(result);\n }\n if (Array.isArray(attr)) {\n if (attr.length === 0) {\n result.boolean = true;\n }\n else {\n result.enum = attr.filter((it) => it !== \"\");\n if (attr.includes(\"\")) {\n result.omit = true;\n }\n }\n return stripUndefined(result);\n }\n else {\n return stripUndefined({ ...result, ...attr });\n }\n}\nfunction migrateAttributes(src) {\n var _a, _b, _c;\n const keys = [\n ...Object.keys((_a = src.attributes) !== null && _a !== void 0 ? _a : {}),\n ...((_b = src.requiredAttributes) !== null && _b !== void 0 ? _b : []),\n ...((_c = src.deprecatedAttributes) !== null && _c !== void 0 ? _c : []),\n ].sort();\n const entries = keys.map((key) => {\n return [key, migrateSingleAttribute(src, key)];\n });\n return Object.fromEntries(entries);\n}\nexport function migrateElement(src) {\n var _a;\n const result = {\n ...src,\n ...{\n formAssociated: undefined,\n },\n attributes: migrateAttributes(src),\n textContent: src.textContent,\n implicitRole: (_a = src.implicitRole) !== null && _a !== void 0 ? _a : (() => null),\n };\n /* removed properties */\n delete result.deprecatedAttributes;\n delete result.requiredAttributes;\n /* strip out undefined */\n if (!result.textContent) {\n delete result.textContent;\n }\n if (src.formAssociated) {\n result.formAssociated = {\n listed: Boolean(src.formAssociated.listed),\n };\n }\n else {\n delete result.formAssociated;\n }\n return result;\n}\n//# sourceMappingURL=migrate.js.map","/**\n * Returns true if given element is a descendant of given tagname.\n *\n * @internal\n */\nexport function isDescendant(node, tagName) {\n let cur = node.parent;\n while (cur && !cur.isRootElement()) {\n if (cur.is(tagName)) {\n return true;\n }\n cur = cur.parent;\n }\n return false;\n}\n//# sourceMappingURL=is-descendant.js.map","/**\n * Returns true if given element has given attribute (no matter the value, null,\n * dynamic, etc).\n */\nexport function hasAttribute(node, attr) {\n return node.hasAttribute(attr);\n}\n//# sourceMappingURL=has-attribute.js.map","/**\n * Matches attribute against value.\n */\nexport function matchAttribute(node, key, op, value) {\n var _a;\n const nodeValue = ((_a = node.getAttributeValue(key)) !== null && _a !== void 0 ? _a : \"\").toLowerCase();\n switch (op) {\n case \"!=\":\n return nodeValue !== value;\n case \"=\":\n return nodeValue === value;\n }\n}\n//# sourceMappingURL=match-attribute.js.map","import Ajv from \"ajv\";\nimport ajvSchemaDraft from \"ajv/lib/refs/json-schema-draft-06.json\";\nimport deepmerge from \"deepmerge\";\nimport { ensureError, SchemaValidationError, UserError, InheritError } from \"../error\";\nimport { computeHash } from \"../utils/compute-hash\";\nimport schema from \"../schema/elements.json\";\nimport { ajvFunctionKeyword, ajvRegexpKeyword } from \"../schema/keywords\";\nimport { setMetaProperty, } from \"./element\";\nimport { migrateElement } from \"./migrate\";\nimport { hasAttribute, isDescendant, matchAttribute } from \"./evaluator\";\nconst dynamicKeys = [\n \"metadata\",\n \"flow\",\n \"sectioning\",\n \"heading\",\n \"phrasing\",\n \"embedded\",\n \"interactive\",\n \"labelable\",\n];\nconst functionTable = {\n isDescendant: isDescendantFacade,\n hasAttribute: hasAttributeFacade,\n matchAttribute: matchAttributeFacade,\n};\nconst schemaCache = new Map();\nfunction clone(src) {\n return JSON.parse(JSON.stringify(src));\n}\nfunction overwriteMerge(a, b) {\n return b;\n}\n/**\n * @public\n */\nexport class MetaTable {\n /**\n * @internal\n */\n constructor() {\n this.elements = {};\n this.schema = clone(schema);\n }\n /**\n * @internal\n */\n init() {\n this.resolveGlobal();\n }\n /**\n * Extend validation schema.\n *\n * @public\n */\n extendValidationSchema(patch) {\n if (patch.properties) {\n this.schema = deepmerge(this.schema, {\n patternProperties: {\n \"^[^$].*$\": {\n properties: patch.properties,\n },\n },\n });\n }\n if (patch.definitions) {\n this.schema = deepmerge(this.schema, {\n definitions: patch.definitions,\n });\n }\n }\n /**\n * Load metadata table from object.\n *\n * @public\n * @param obj - Object with metadata to load\n * @param filename - Optional filename used when presenting validation error\n */\n loadFromObject(obj, filename = null) {\n var _a;\n try {\n const validate = this.getSchemaValidator();\n if (!validate(obj)) {\n throw new SchemaValidationError(filename, `Element metadata is not valid`, obj, this.schema, \n /* istanbul ignore next: AJV sets .errors when validate returns false */\n (_a = validate.errors) !== null && _a !== void 0 ? _a : []);\n }\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"$schema\")\n continue;\n this.addEntry(key, migrateElement(value));\n }\n }\n catch (err) {\n if (err instanceof InheritError) {\n err.filename = filename;\n throw err;\n }\n if (err instanceof SchemaValidationError) {\n throw err;\n }\n if (!filename) {\n throw err;\n }\n throw new UserError(`Failed to load element metadata from \"${filename}\"`, ensureError(err));\n }\n }\n /**\n * Get [[MetaElement]] for the given tag. If no specific metadata is present\n * the global metadata is returned or null if no global is present.\n *\n * @public\n * @returns A shallow copy of metadata.\n */\n getMetaFor(tagName) {\n /* try to locate by tagname */\n tagName = tagName.toLowerCase();\n if (this.elements[tagName]) {\n return { ...this.elements[tagName] };\n }\n /* try to locate global element */\n if (this.elements[\"*\"]) {\n return { ...this.elements[\"*\"] };\n }\n return null;\n }\n /**\n * Find all tags which has enabled given property.\n *\n * @public\n */\n getTagsWithProperty(propName) {\n return Object.entries(this.elements)\n .filter(([, entry]) => entry[propName])\n .map(([tagName]) => tagName);\n }\n /**\n * Find tag matching tagName or inheriting from it.\n *\n * @public\n */\n getTagsDerivedFrom(tagName) {\n return Object.entries(this.elements)\n .filter(([key, entry]) => key === tagName || entry.inherit === tagName)\n .map(([tagName]) => tagName);\n }\n addEntry(tagName, entry) {\n let parent = this.elements[tagName] || {};\n /* handle inheritance */\n if (entry.inherit) {\n const name = entry.inherit;\n parent = this.elements[name];\n if (!parent) {\n throw new InheritError({\n tagName,\n inherit: name,\n });\n }\n }\n /* merge all sources together */\n const expanded = this.mergeElement(parent, { ...entry, tagName });\n expandRegex(expanded);\n this.elements[tagName] = expanded;\n }\n /**\n * Construct a new AJV schema validator.\n */\n getSchemaValidator() {\n const hash = computeHash(JSON.stringify(this.schema));\n const cached = schemaCache.get(hash);\n if (cached) {\n return cached;\n }\n else {\n const ajv = new Ajv({ strict: true, strictTuples: true, strictTypes: true });\n ajv.addMetaSchema(ajvSchemaDraft);\n ajv.addKeyword(ajvFunctionKeyword);\n ajv.addKeyword(ajvRegexpKeyword);\n ajv.addKeyword({ keyword: \"copyable\" });\n const validate = ajv.compile(this.schema);\n schemaCache.set(hash, validate);\n return validate;\n }\n }\n /**\n * @public\n */\n getJSONSchema() {\n return this.schema;\n }\n /**\n * Finds the global element definition and merges each known element with the\n * global, e.g. to assign global attributes.\n */\n resolveGlobal() {\n /* skip if there is no global elements */\n if (!this.elements[\"*\"])\n return;\n /* fetch and remove the global element, it should not be resolvable by\n * itself */\n const global = this.elements[\"*\"];\n delete this.elements[\"*\"];\n /* hack: unset default properties which global should not override */\n delete global.tagName;\n delete global.void;\n /* merge elements */\n for (const [tagName, entry] of Object.entries(this.elements)) {\n this.elements[tagName] = this.mergeElement(global, entry);\n }\n }\n mergeElement(a, b) {\n const merged = deepmerge(a, b, { arrayMerge: overwriteMerge });\n /* special handling when removing attributes by setting them to null\n * resulting in the deletion flag being set */\n const filteredAttrs = Object.entries(merged.attributes).filter(([, attr]) => {\n const val = !attr.delete;\n delete attr.delete;\n return val;\n });\n merged.attributes = Object.fromEntries(filteredAttrs);\n return merged;\n }\n /**\n * @internal\n */\n resolve(node) {\n if (node.meta) {\n expandProperties(node, node.meta);\n }\n }\n}\nfunction expandProperties(node, entry) {\n for (const key of dynamicKeys) {\n const property = entry[key];\n if (property && typeof property !== \"boolean\") {\n setMetaProperty(entry, key, evaluateProperty(node, property));\n }\n }\n}\n/**\n * Given a string it returns either the string as-is or if the string is wrapped\n * in /../ it creates and returns a regex instead.\n */\nfunction expandRegexValue(value) {\n if (value instanceof RegExp) {\n return value;\n }\n const match = value.match(/^\\/\\^?([^/$]*)\\$?\\/([i]*)$/);\n if (match) {\n const [, expr, flags] = match;\n // eslint-disable-next-line security/detect-non-literal-regexp -- expected to be regexp\n return new RegExp(`^${expr}$`, flags);\n }\n else {\n return value;\n }\n}\n/**\n * Expand all regular expressions in strings (\"/../\"). This mutates the object.\n */\nfunction expandRegex(entry) {\n for (const [name, values] of Object.entries(entry.attributes)) {\n if (values.enum) {\n entry.attributes[name].enum = values.enum.map(expandRegexValue);\n }\n }\n}\nfunction evaluateProperty(node, expr) {\n const [func, options] = parseExpression(expr);\n return func(node, options);\n}\nfunction parseExpression(expr) {\n if (typeof expr === \"string\") {\n return parseExpression([expr, {}]);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- old style expressions should be replaced with typesafe functions */\n const [funcName, options] = expr;\n const func = functionTable[funcName];\n if (!func) {\n throw new Error(`Failed to find function \"${funcName}\" when evaluating property expression`);\n }\n return [func, options];\n }\n}\nfunction isDescendantFacade(node, tagName) {\n if (typeof tagName !== \"string\") {\n throw new Error(`Property expression \"isDescendant\" must take string argument when evaluating metadata for <${node.tagName}>`);\n }\n return isDescendant(node, tagName);\n}\nfunction hasAttributeFacade(node, attr) {\n if (typeof attr !== \"string\") {\n throw new Error(`Property expression \"hasAttribute\" must take string argument when evaluating metadata for <${node.tagName}>`);\n }\n return hasAttribute(node, attr);\n}\nfunction matchAttributeFacade(node, match) {\n if (!Array.isArray(match) || match.length !== 3) {\n throw new Error(`Property expression \"matchAttribute\" must take [key, op, value] array as argument when evaluating metadata for <${node.tagName}>`);\n }\n const [key, op, value] = match.map((x) => x.toLowerCase());\n switch (op) {\n case \"!=\":\n case \"=\":\n return matchAttribute(node, key, op, value);\n default:\n throw new Error(`Property expression \"matchAttribute\" has invalid operator \"${op}\" when evaluating metadata for <${node.tagName}>`);\n }\n}\n//# sourceMappingURL=table.js.map","/**\n * @public\n */\nexport class DynamicValue {\n constructor(expr) {\n this.expr = expr;\n }\n toString() {\n return this.expr;\n }\n}\n//# sourceMappingURL=dynamic-value.js.map","import { DynamicValue } from \"./dynamic-value\";\n/**\n * Type guard for [[Attribute]] testing if the value is static (missing value is\n * considered static as it is a fixed known value).\n *\n * @public\n */\nexport function isStaticAttribute(attr) {\n return Boolean(attr && attr.isStatic);\n}\n/**\n * Type guard for [[Attribute]] testing if the value is dynamic.\n *\n * @public\n */\nexport function isDynamicAttribute(attr) {\n return Boolean(attr && attr.isDynamic);\n}\n/**\n * DOM Attribute.\n *\n * Represents a HTML attribute. Can contain either a fixed static value or a\n * placeholder for dynamic values (e.g. interpolated).\n *\n * @public\n */\nexport class Attribute {\n /**\n * @param key - Attribute name.\n * @param value - Attribute value. Set to `null` for boolean attributes.\n * @param keyLocation - Source location of attribute name.\n * @param valueLocation - Source location of attribute value.\n * @param originalAttribute - If this attribute was dynamically added via a\n * transformation (e.g. vuejs `:id` generating the `id` attribute) this\n * parameter should be set to the attribute name of the source attribute (`:id`).\n */\n constructor(key, value, keyLocation, valueLocation, originalAttribute) {\n this.key = key;\n this.value = value;\n this.keyLocation = keyLocation;\n this.valueLocation = valueLocation;\n this.originalAttribute = originalAttribute;\n /* force undefined to null */\n if (typeof this.value === \"undefined\") {\n this.value = null;\n }\n }\n /**\n * Flag set to true if the attribute value is static.\n */\n get isStatic() {\n return !this.isDynamic;\n }\n /**\n * Flag set to true if the attribute value is dynamic.\n */\n get isDynamic() {\n return this.value instanceof DynamicValue;\n }\n /**\n * Test attribute value.\n *\n * @param pattern - Pattern to match value against. Can be a RegExp, literal\n * string or an array of strings (returns true if any value matches the\n * array).\n * @param dynamicMatches - If true `DynamicValue` will always match, if false\n * it never matches.\n * @returns `true` if attribute value matches pattern.\n */\n valueMatches(pattern, dynamicMatches = true) {\n if (this.value === null) {\n return false;\n }\n /* dynamic values matches everything */\n if (this.value instanceof DynamicValue) {\n return dynamicMatches;\n }\n /* test against an array of keywords */\n if (Array.isArray(pattern)) {\n return pattern.includes(this.value);\n }\n /* test value against pattern */\n if (pattern instanceof RegExp) {\n return this.value.match(pattern) !== null;\n }\n else {\n return this.value === pattern;\n }\n }\n}\n//# sourceMappingURL=attribute.js.map","import { DynamicValue } from \"../dynamic-value\";\nfunction getCSSDeclarations(value) {\n return value\n .trim()\n .split(\";\")\n .filter(Boolean)\n .map((it) => {\n const [property, value] = it.split(\":\", 2);\n return [property.trim(), value ? value.trim() : \"\"];\n });\n}\n/**\n * @internal\n */\nexport function parseCssDeclaration(value) {\n if (!value || value instanceof DynamicValue) {\n return {};\n }\n const pairs = getCSSDeclarations(value);\n return Object.fromEntries(pairs);\n}\n//# sourceMappingURL=parse-css-declaration.js.map","function sliceSize(size, begin, end) {\n if (typeof size !== \"number\") {\n return size;\n }\n if (typeof end !== \"number\") {\n return size - begin;\n }\n if (end < 0) {\n end = size + end;\n }\n return Math.min(size, end - begin);\n}\nexport function sliceLocation(location, begin, end, wrap) {\n if (!location)\n return null;\n const size = sliceSize(location.size, begin, end);\n const sliced = {\n filename: location.filename,\n offset: location.offset + begin,\n line: location.line,\n column: location.column + begin,\n size,\n };\n /* if text content is provided try to find all newlines and modify line/column accordingly */\n if (wrap) {\n let index = -1;\n const col = sliced.column;\n do {\n index = wrap.indexOf(\"\\n\", index + 1);\n if (index >= 0 && index < begin) {\n sliced.column = col - (index + 1);\n sliced.line++;\n }\n else {\n break;\n }\n } while (true); // eslint-disable-line no-constant-condition -- it will break out\n }\n return sliced;\n}\n//# sourceMappingURL=location.js.map","export var State;\n(function (State) {\n State[State[\"INITIAL\"] = 1] = \"INITIAL\";\n State[State[\"DOCTYPE\"] = 2] = \"DOCTYPE\";\n State[State[\"TEXT\"] = 3] = \"TEXT\";\n State[State[\"TAG\"] = 4] = \"TAG\";\n State[State[\"ATTR\"] = 5] = \"ATTR\";\n State[State[\"CDATA\"] = 6] = \"CDATA\";\n State[State[\"SCRIPT\"] = 7] = \"SCRIPT\";\n State[State[\"STYLE\"] = 8] = \"STYLE\";\n})(State || (State = {}));\n//# sourceMappingURL=state.js.map","import { State } from \"./state\";\nexport var ContentModel;\n(function (ContentModel) {\n ContentModel[ContentModel[\"TEXT\"] = 1] = \"TEXT\";\n ContentModel[ContentModel[\"SCRIPT\"] = 2] = \"SCRIPT\";\n ContentModel[ContentModel[\"STYLE\"] = 3] = \"STYLE\";\n})(ContentModel || (ContentModel = {}));\nexport class Context {\n constructor(source) {\n var _a, _b, _c, _d;\n this.state = State.INITIAL;\n this.string = source.data;\n this.filename = (_a = source.filename) !== null && _a !== void 0 ? _a : \"\";\n this.offset = (_b = source.offset) !== null && _b !== void 0 ? _b : 0;\n this.line = (_c = source.line) !== null && _c !== void 0 ? _c : 1;\n this.column = (_d = source.column) !== null && _d !== void 0 ? _d : 1;\n this.contentModel = ContentModel.TEXT;\n }\n getTruncatedLine(n = 13) {\n return JSON.stringify(this.string.length > n ? `${this.string.slice(0, 10)}...` : this.string);\n }\n consume(n, state) {\n /* if \"n\" is an regex match the first value is the full matched\n * string so consume that many characters. */\n if (typeof n !== \"number\") {\n n = n[0].length; /* regex match */\n }\n /* poor mans line counter :( */\n let consumed = this.string.slice(0, n);\n let offset;\n while ((offset = consumed.indexOf(\"\\n\")) >= 0) {\n this.line++;\n this.column = 1;\n consumed = consumed.substr(offset + 1);\n }\n this.column += consumed.length;\n this.offset += n;\n /* remove N chars */\n this.string = this.string.substr(n);\n /* change state */\n this.state = state;\n }\n getLocation(size) {\n return {\n filename: this.filename,\n offset: this.offset,\n line: this.line,\n column: this.column,\n size,\n };\n }\n}\nexport default Context;\n//# sourceMappingURL=context.js.map","/**\n * @public\n */\nexport var NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n})(NodeType || (NodeType = {}));\n//# sourceMappingURL=nodetype.js.map","import { NodeType } from \"./nodetype\";\nconst DOCUMENT_NODE_NAME = \"#document\";\nconst TEXT_CONTENT = Symbol(\"textContent\");\nlet counter = 0;\n/* istanbul ignore next: only for testing */\nexport function reset() {\n counter = 0;\n}\n/**\n * @public\n */\nexport class DOMNode {\n /**\n * Create a new DOMNode.\n *\n * @param nodeType - What node type to create.\n * @param nodeName - What node name to use. For `HtmlElement` this corresponds\n * to the tagName but other node types have specific predefined values.\n * @param location - Source code location of this node.\n */\n constructor(nodeType, nodeName, location) {\n this.nodeType = nodeType;\n this.nodeName = nodeName !== null && nodeName !== void 0 ? nodeName : DOCUMENT_NODE_NAME;\n this.location = location;\n this.disabledRules = new Set();\n this.blockedRules = new Map();\n this.childNodes = [];\n this.unique = counter++;\n this.cache = null;\n }\n /**\n * Enable cache for this node.\n *\n * Should not be called before the node and all children are fully constructed.\n *\n * @internal\n */\n cacheEnable() {\n this.cache = new Map();\n }\n cacheGet(key) {\n if (this.cache) {\n return this.cache.get(key);\n }\n else {\n return undefined;\n }\n }\n cacheSet(key, value) {\n if (this.cache) {\n this.cache.set(key, value);\n }\n return value;\n }\n cacheRemove(key) {\n if (this.cache) {\n return this.cache.delete(key);\n }\n else {\n return false;\n }\n }\n cacheExists(key) {\n return Boolean(this.cache && this.cache.has(key));\n }\n /**\n * Get the text (recursive) from all child nodes.\n */\n get textContent() {\n const cached = this.cacheGet(TEXT_CONTENT);\n if (cached) {\n return cached;\n }\n const text = this.childNodes.map((node) => node.textContent).join(\"\");\n this.cacheSet(TEXT_CONTENT, text);\n return text;\n }\n append(node) {\n this.childNodes.push(node);\n }\n isRootElement() {\n return this.nodeType === NodeType.DOCUMENT_NODE;\n }\n /**\n * Tests if two nodes are the same (references the same object).\n *\n * @since v4.11.0\n */\n isSameNode(otherNode) {\n return this.unique === otherNode.unique;\n }\n /**\n * Returns a DOMNode representing the first direct child node or `null` if the\n * node has no children.\n */\n get firstChild() {\n return this.childNodes[0] || null;\n }\n /**\n * Returns a DOMNode representing the last direct child node or `null` if the\n * node has no children.\n */\n get lastChild() {\n return this.childNodes[this.childNodes.length - 1] || null;\n }\n /**\n * Block a rule for this node.\n *\n * @internal\n */\n blockRule(ruleId, blocker) {\n const current = this.blockedRules.get(ruleId);\n if (current) {\n current.push(blocker);\n }\n else {\n this.blockedRules.set(ruleId, [blocker]);\n }\n }\n /**\n * Blocks multiple rules.\n *\n * @internal\n */\n blockRules(rules, blocker) {\n for (const rule of rules) {\n this.blockRule(rule, blocker);\n }\n }\n /**\n * Disable a rule for this node.\n *\n * @internal\n */\n disableRule(ruleId) {\n this.disabledRules.add(ruleId);\n }\n /**\n * Disables multiple rules.\n *\n * @internal\n */\n disableRules(rules) {\n for (const rule of rules) {\n this.disableRule(rule);\n }\n }\n /**\n * Enable a previously disabled rule for this node.\n */\n enableRule(ruleId) {\n this.disabledRules.delete(ruleId);\n }\n /**\n * Enables multiple rules.\n */\n enableRules(rules) {\n for (const rule of rules) {\n this.enableRule(rule);\n }\n }\n /**\n * Test if a rule is enabled for this node.\n *\n * @internal\n */\n ruleEnabled(ruleId) {\n return !this.disabledRules.has(ruleId);\n }\n /**\n * Test if a rule is blocked for this node.\n *\n * @internal\n */\n ruleBlockers(ruleId) {\n var _a;\n return (_a = this.blockedRules.get(ruleId)) !== null && _a !== void 0 ? _a : [];\n }\n generateSelector() {\n return null;\n }\n}\n//# sourceMappingURL=domnode.js.map","import { sliceLocation } from \"../context\";\nimport { DynamicValue } from \"./dynamic-value\";\nfunction parse(text, baseLocation) {\n const tokens = [];\n const locations = baseLocation ? [] : null;\n for (let begin = 0; begin < text.length;) {\n let end = text.indexOf(\" \", begin);\n /* if the last space was found move the position to the last character\n * in the string */\n if (end === -1) {\n end = text.length;\n }\n /* handle multiple spaces */\n const size = end - begin;\n if (size === 0) {\n begin++;\n continue;\n }\n /* extract token */\n const token = text.substring(begin, end);\n tokens.push(token);\n /* extract location */\n if (locations && baseLocation) {\n const location = sliceLocation(baseLocation, begin, end);\n locations.push(location);\n }\n /* advance position to the character after the current end position */\n begin += size + 1;\n }\n return { tokens, locations };\n}\n/**\n * @public\n */\nexport class DOMTokenList extends Array {\n constructor(value, location) {\n if (value && typeof value === \"string\") {\n /* replace all whitespace with a single space for easier parsing */\n const normalized = value.replace(/[\\t\\r\\n]/g, \" \");\n const { tokens, locations } = parse(normalized, location);\n super(...tokens);\n this.locations = locations;\n }\n else {\n super(0);\n this.locations = null;\n }\n if (value instanceof DynamicValue) {\n this.value = value.expr;\n }\n else {\n this.value = value !== null && value !== void 0 ? value : \"\";\n }\n }\n item(n) {\n return this[n];\n }\n location(n) {\n if (this.locations) {\n return this.locations[n];\n }\n else {\n throw new Error(\"Trying to access DOMTokenList location when base location isn't set\");\n }\n }\n contains(token) {\n return this.includes(token);\n }\n *iterator() {\n for (let index = 0; index < this.length; index++) {\n /* eslint-disable @typescript-eslint/no-non-null-assertion -- as we loop over length this should always be set */\n const item = this.item(index);\n const location = this.location(index);\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n yield { index, item, location };\n }\n }\n}\n//# sourceMappingURL=domtokenlist.js.map","export var Combinator;\n(function (Combinator) {\n Combinator[Combinator[\"DESCENDANT\"] = 1] = \"DESCENDANT\";\n Combinator[Combinator[\"CHILD\"] = 2] = \"CHILD\";\n Combinator[Combinator[\"ADJACENT_SIBLING\"] = 3] = \"ADJACENT_SIBLING\";\n Combinator[Combinator[\"GENERAL_SIBLING\"] = 4] = \"GENERAL_SIBLING\";\n /* special cases */\n Combinator[Combinator[\"SCOPE\"] = 5] = \"SCOPE\";\n})(Combinator || (Combinator = {}));\nexport function parseCombinator(combinator, pattern) {\n /* special case, when pattern is :scope [[Selector]] will handle this\n * \"combinator\" to match itself instead of descendants */\n if (pattern === \":scope\") {\n return Combinator.SCOPE;\n }\n switch (combinator) {\n case undefined:\n case null:\n case \"\":\n return Combinator.DESCENDANT;\n case \">\":\n return Combinator.CHILD;\n case \"+\":\n return Combinator.ADJACENT_SIBLING;\n case \"~\":\n return Combinator.GENERAL_SIBLING;\n default:\n throw new Error(`Unknown combinator \"${combinator}\"`);\n }\n}\n//# sourceMappingURL=combinator.js.map","export function firstChild(node) {\n return node.previousSibling === null;\n}\n//# sourceMappingURL=first-child.js.map","export function lastChild(node) {\n return node.nextSibling === null;\n}\n//# sourceMappingURL=last-child.js.map","const cache = {};\nfunction getNthChild(node) {\n if (!node.parent) {\n return -1;\n }\n if (!cache[node.unique]) {\n const parent = node.parent;\n const index = parent.childElements.findIndex((cur) => {\n return cur.unique === node.unique;\n });\n cache[node.unique] = index + 1; /* nthChild starts at 1 */\n }\n return cache[node.unique];\n}\nexport function nthChild(node, args) {\n if (!args) {\n throw new Error(\"Missing argument to nth-child\");\n }\n const n = parseInt(args.trim(), 10);\n const cur = getNthChild(node);\n return cur === n;\n}\n//# sourceMappingURL=nth-child.js.map","export function scope(node) {\n return node.isSameNode(this.scope);\n}\n//# sourceMappingURL=scope.js.map","import { firstChild } from \"./first-child\";\nimport { lastChild } from \"./last-child\";\nimport { nthChild } from \"./nth-child\";\nimport { scope } from \"./scope\";\nconst table = {\n \"first-child\": firstChild,\n \"last-child\": lastChild,\n \"nth-child\": nthChild,\n scope: scope,\n};\nexport function factory(name, context) {\n const fn = table[name];\n if (fn) {\n return fn.bind(context);\n }\n else {\n throw new Error(`Pseudo-class \"${name}\" is not implemented`);\n }\n}\n//# sourceMappingURL=index.js.map","import { Combinator, parseCombinator } from \"./combinator\";\nimport { factory as pseudoClassFunction } from \"./pseudoclass\";\n/**\n * Homage to PHP: unescapes slashes.\n *\n * E.g. \"foo\\:bar\" becomes \"foo:bar\"\n */\nfunction stripslashes(value) {\n return value.replace(/\\\\(.)/g, \"$1\");\n}\n/**\n * @internal\n */\nexport function escapeSelectorComponent(text) {\n return text.toString().replace(/([^a-z0-9_-])/gi, \"\\\\$1\");\n}\n/**\n * @internal\n */\nexport function generateIdSelector(id) {\n const escaped = escapeSelectorComponent(id);\n return escaped.match(/^\\d/) ? `[id=\"${escaped}\"]` : `#${escaped}`;\n}\n/**\n * Returns true if the character is a delimiter for different kinds of selectors:\n *\n * - `.` - begins a class selector\n * - `#` - begins an id selector\n * - `[` - begins an attribute selector\n * - `:` - begins a pseudo class or element selector\n */\nfunction isDelimiter(ch) {\n return /[.#[:]/.test(ch);\n}\n/**\n * Returns true if the character is a quotation mark.\n */\nfunction isQuotationMark(ch) {\n return /['\"]/.test(ch);\n}\nfunction isPseudoElement(ch, buffer) {\n return ch === \":\" && buffer === \":\";\n}\n/**\n * @internal\n */\nexport function* splitPattern(pattern) {\n if (pattern === \"\") {\n return;\n }\n const end = pattern.length;\n let begin = 0;\n let cur = 1;\n let quoted = false;\n while (cur < end) {\n const ch = pattern[cur];\n const buffer = pattern.slice(begin, cur);\n /* escaped character, ignore whatever is next */\n if (ch === \"\\\\\") {\n cur += 2;\n continue;\n }\n /* if inside quoted string we only look for the end quotation mark */\n if (quoted) {\n if (ch === quoted) {\n quoted = false;\n }\n cur += 1;\n continue;\n }\n /* if the character is a quotation mark we store the character and the above\n * condition will look for a similar end quotation mark */\n if (isQuotationMark(ch)) {\n quoted = ch;\n cur += 1;\n continue;\n }\n /* special case when using :: pseudo element selector */\n if (isPseudoElement(ch, buffer)) {\n cur += 1;\n continue;\n }\n /* if the character is a delimiter we yield the string and reset the\n * position */\n if (isDelimiter(ch)) {\n begin = cur;\n yield buffer;\n }\n cur += 1;\n }\n /* yield the rest of the string */\n const tail = pattern.slice(begin, cur);\n yield tail;\n}\nclass Matcher {\n}\nclass ClassMatcher extends Matcher {\n constructor(classname) {\n super();\n this.classname = classname;\n }\n match(node) {\n return node.classList.contains(this.classname);\n }\n}\nclass IdMatcher extends Matcher {\n constructor(id) {\n super();\n this.id = stripslashes(id);\n }\n match(node) {\n return node.id === this.id;\n }\n}\nclass AttrMatcher extends Matcher {\n constructor(attr) {\n super();\n const [, key, op, value] = attr.match(/^(.+?)(?:([~^$*|]?=)\"([^\"]+?)\")?$/); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- will always match\n this.key = key;\n this.op = op;\n this.value = value;\n }\n match(node) {\n const attr = node.getAttribute(this.key, true) || [];\n return attr.some((cur) => {\n switch (this.op) {\n case undefined:\n return true; /* attribute exists */\n case \"=\":\n return cur.value === this.value;\n default:\n throw new Error(`Attribute selector operator ${this.op} is not implemented yet`);\n }\n });\n }\n}\nclass PseudoClassMatcher extends Matcher {\n constructor(pseudoclass, context) {\n super();\n const match = pseudoclass.match(/^([^(]+)(?:\\((.*)\\))?$/);\n if (!match) {\n throw new Error(`Missing pseudo-class after colon in selector pattern \"${context}\"`);\n }\n const [, name, args] = match;\n this.name = name;\n this.args = args;\n }\n match(node, context) {\n const fn = pseudoClassFunction(this.name, context);\n return fn(node, this.args);\n }\n}\nexport class Pattern {\n constructor(pattern) {\n const match = pattern.match(/^([~+\\->]?)((?:[*]|[^.#[:]+)?)(.*)$/); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- will always match\n match.shift(); /* remove full matched string */\n this.selector = pattern;\n this.combinator = parseCombinator(match.shift(), pattern);\n this.tagName = match.shift() || \"*\"; // eslint-disable-line @typescript-eslint/prefer-nullish-coalescing -- empty string */\n this.pattern = Array.from(splitPattern(match[0]), (it) => this.createMatcher(it));\n }\n match(node, context) {\n return node.is(this.tagName) && this.pattern.every((cur) => cur.match(node, context));\n }\n createMatcher(pattern) {\n switch (pattern[0]) {\n case \".\":\n return new ClassMatcher(pattern.slice(1));\n case \"#\":\n return new IdMatcher(pattern.slice(1));\n case \"[\":\n return new AttrMatcher(pattern.slice(1, -1));\n case \":\":\n return new PseudoClassMatcher(pattern.slice(1), this.selector);\n default:\n /* istanbul ignore next: fallback solution, the switch cases should cover\n * everything and there is no known way to trigger this fallback */\n throw new Error(`Failed to create matcher for \"${pattern}\"`);\n }\n }\n}\n/**\n * DOM Selector.\n */\nexport class Selector {\n constructor(selector) {\n this.pattern = Selector.parse(selector);\n }\n /**\n * Match this selector against a HtmlElement.\n *\n * @param root - Element to match against.\n * @returns Iterator with matched elements.\n */\n *match(root) {\n const context = { scope: root };\n yield* this.matchInternal(root, 0, context);\n }\n *matchInternal(root, level, context) {\n if (level >= this.pattern.length) {\n yield root;\n return;\n }\n const pattern = this.pattern[level];\n const matches = Selector.findCandidates(root, pattern);\n for (const node of matches) {\n if (!pattern.match(node, context)) {\n continue;\n }\n yield* this.matchInternal(node, level + 1, context);\n }\n }\n static parse(selector) {\n /* strip whitespace before combinators, \"ul > li\" becomes \"ul >li\", for\n * easier parsing */\n selector = selector.replace(/([+~>]) /g, \"$1\");\n const pattern = selector.split(/(?:(?<!\\\\) )+/);\n return pattern.map((part) => new Pattern(part));\n }\n static findCandidates(root, pattern) {\n switch (pattern.combinator) {\n case Combinator.DESCENDANT:\n return root.getElementsByTagName(pattern.tagName);\n case Combinator.CHILD:\n return root.childElements.filter((node) => node.is(pattern.tagName));\n case Combinator.ADJACENT_SIBLING:\n return Selector.findAdjacentSibling(root);\n case Combinator.GENERAL_SIBLING:\n return Selector.findGeneralSibling(root);\n case Combinator.SCOPE:\n return [root];\n }\n /* istanbul ignore next: fallback solution, the switch cases should cover\n * everything and there is no known way to trigger this fallback */\n return [];\n }\n static findAdjacentSibling(node) {\n let adjacent = false;\n return node.siblings.filter((cur) => {\n if (adjacent) {\n adjacent = false;\n return true;\n }\n if (cur === node) {\n adjacent = true;\n }\n return false;\n });\n }\n static findGeneralSibling(node) {\n let after = false;\n return node.siblings.filter((cur) => {\n if (after) {\n return true;\n }\n if (cur === node) {\n after = true;\n }\n return false;\n });\n }\n}\n//# sourceMappingURL=selector.js.map","import { DOMNode } from \"./domnode\";\nimport { DynamicValue } from \"./dynamic-value\";\nimport { NodeType } from \"./nodetype\";\nconst TEXT_NODE_NAME = \"#text\";\n/**\n * Returns true if the node is a text node.\n *\n * @public\n */\nexport function isTextNode(node) {\n return Boolean(node && node.nodeType === NodeType.TEXT_NODE);\n}\n/**\n * Represents a text in the HTML document.\n *\n * Text nodes are appended as children of `HtmlElement` and cannot have childen\n * of its own.\n *\n * @public\n */\nexport class TextNode extends DOMNode {\n /**\n * @param text - Text to add. When a `DynamicValue` is used the expression is\n * used as \"text\".\n * @param location - Source code location of this node.\n */\n constructor(text, location) {\n super(NodeType.TEXT_NODE, TEXT_NODE_NAME, location);\n this.text = text;\n }\n /**\n * Get the text from node.\n */\n get textContent() {\n return this.text.toString();\n }\n /**\n * Flag set to true if the attribute value is static.\n */\n get isStatic() {\n return !this.isDynamic;\n }\n /**\n * Flag set to true if the attribute value is dynamic.\n */\n get isDynamic() {\n return this.text instanceof DynamicValue;\n }\n}\n//# sourceMappingURL=text.js.map","import { sliceLocation } from \"../context\";\nimport { MetaCopyableProperty, setMetaProperty } from \"../meta/element\";\nimport { Attribute } from \"./attribute\";\nimport { parseCssDeclaration } from \"./css\";\nimport { DOMNode } from \"./domnode\";\nimport { DOMTokenList } from \"./domtokenlist\";\nimport { DynamicValue } from \"./dynamic-value\";\nimport { NodeType } from \"./nodetype\";\nimport { generateIdSelector, Selector } from \"./selector\";\nimport { TextNode } from \"./text\";\n/**\n * @public\n */\nexport var NodeClosed;\n(function (NodeClosed) {\n NodeClosed[NodeClosed[\"Open\"] = 0] = \"Open\";\n NodeClosed[NodeClosed[\"EndTag\"] = 1] = \"EndTag\";\n NodeClosed[NodeClosed[\"VoidOmitted\"] = 2] = \"VoidOmitted\";\n NodeClosed[NodeClosed[\"VoidSelfClosed\"] = 3] = \"VoidSelfClosed\";\n NodeClosed[NodeClosed[\"ImplicitClosed\"] = 4] = \"ImplicitClosed\";\n})(NodeClosed || (NodeClosed = {}));\n/**\n * Returns true if the node is an element node.\n *\n * @public\n */\nexport function isElementNode(node) {\n return Boolean(node && node.nodeType === NodeType.ELEMENT_NODE);\n}\nfunction isValidTagName(tagName) {\n return Boolean(tagName !== \"\" && tagName !== \"*\");\n}\nfunction createAdapter(node) {\n return {\n closest(selectors) {\n var _a;\n return (_a = node.closest(selectors)) === null || _a === void 0 ? void 0 : _a._adapter;\n },\n getAttribute(name) {\n var _a;\n return (_a = node.getAttribute(name)) === null || _a === void 0 ? void 0 : _a.value;\n },\n hasAttribute(name) {\n return node.hasAttribute(name);\n },\n };\n}\n/**\n * @public\n */\nexport class HtmlElement extends DOMNode {\n constructor(tagName, parent, closed, meta, location) {\n const nodeType = tagName ? NodeType.ELEMENT_NODE : NodeType.DOCUMENT_NODE;\n super(nodeType, tagName, location);\n if (!isValidTagName(tagName)) {\n throw new Error(`The tag name provided ('${tagName !== null && tagName !== void 0 ? tagName : \"\"}') is not a valid name`);\n }\n this.tagName = tagName !== null && tagName !== void 0 ? tagName : \"#document\";\n this.parent = parent !== null && parent !== void 0 ? parent : null;\n this.attr = {};\n this.metaElement = meta !== null && meta !== void 0 ? meta : null;\n this.closed = closed;\n this.voidElement = meta ? Boolean(meta.void) : false;\n this.depth = 0;\n this.annotation = null;\n this._adapter = createAdapter(this);\n if (parent) {\n parent.childNodes.push(this);\n /* calculate depth in domtree */\n let cur = parent;\n while (cur.parent) {\n this.depth++;\n cur = cur.parent;\n }\n }\n }\n /**\n * @internal\n */\n static rootNode(location) {\n const root = new HtmlElement(undefined, null, NodeClosed.EndTag, null, location);\n root.setAnnotation(\"#document\");\n return root;\n }\n /**\n * @internal\n *\n * @param namespace - If given it is appended to the tagName.\n */\n static fromTokens(startToken, endToken, parent, metaTable, namespace = \"\") {\n const name = startToken.data[2];\n const tagName = namespace ? `${namespace}:${name}` : name;\n if (!name) {\n throw new Error(\"tagName cannot be empty\");\n }\n const meta = metaTable ? metaTable.getMetaFor(tagName) : null;\n const open = startToken.data[1] !== \"/\";\n const closed = isClosed(endToken, meta);\n /* location contains position of '<' so strip it out */\n const location = sliceLocation(startToken.location, 1);\n return new HtmlElement(tagName, open ? parent : null, closed, meta, location);\n }\n /**\n * Returns annotated name if set or defaults to `<tagName>`.\n *\n * E.g. `my-annotation` or `<div>`.\n */\n get annotatedName() {\n if (this.annotation) {\n return this.annotation;\n }\n else {\n return `<${this.tagName}>`;\n }\n }\n /**\n * Get list of IDs referenced by `aria-labelledby`.\n *\n * If the attribute is unset or empty this getter returns null.\n * If the attribute is dynamic the original {@link DynamicValue} is returned.\n *\n * @public\n */\n get ariaLabelledby() {\n const attr = this.getAttribute(\"aria-labelledby\");\n if (!(attr === null || attr === void 0 ? void 0 : attr.value)) {\n return null;\n }\n if (attr.value instanceof DynamicValue) {\n return attr.value;\n }\n const list = new DOMTokenList(attr.value, attr.valueLocation);\n return list.length ? Array.from(list) : null;\n }\n /**\n * Similar to childNodes but only elements.\n */\n get childElements() {\n return this.childNodes.filter(isElementNode);\n }\n /**\n * Find the first ancestor matching a selector.\n *\n * Implementation of DOM specification of Element.closest(selectors).\n */\n closest(selectors) {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias -- false positive*/\n let node = this;\n while (node) {\n if (node.matches(selectors)) {\n return node;\n }\n node = node.parent;\n }\n return null;\n }\n /**\n * Generate a DOM selector for this element. The returned selector will be\n * unique inside the current document.\n */\n generateSelector() {\n /* root element cannot have a selector as it isn't a proper element */\n if (this.isRootElement()) {\n return null;\n }\n const parts = [];\n let root;\n /* eslint-disable-next-line @typescript-eslint/no-this-alias -- false positive */\n for (root = this; root.parent; root = root.parent) {\n /* .. */\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- false positive\n for (let cur = this; cur.parent; cur = cur.parent) {\n /* if a unique id is present, use it and short-circuit */\n if (cur.id) {\n const selector = generateIdSelector(cur.id);\n const matches = root.querySelectorAll(selector);\n if (matches.length === 1) {\n parts.push(selector);\n break;\n }\n }\n const parent = cur.parent;\n const child = parent.childElements;\n const index = child.findIndex((it) => it.unique === cur.unique);\n const numOfType = child.filter((it) => it.is(cur.tagName)).length;\n const solo = numOfType === 1;\n /* if this is the only tagName in this level of siblings nth-child isn't needed */\n if (solo) {\n parts.push(cur.tagName.toLowerCase());\n continue;\n }\n /* this will generate the worst kind of selector but at least it will be accurate (optimizations welcome) */\n parts.push(`${cur.tagName.toLowerCase()}:nth-child(${index + 1})`);\n }\n return parts.reverse().join(\" > \");\n }\n /**\n * Tests if this element has given tagname.\n *\n * If passing \"*\" this test will pass if any tagname is set.\n */\n is(tagName) {\n return tagName === \"*\" || this.tagName.toLowerCase() === tagName.toLowerCase();\n }\n /**\n * Load new element metadata onto this element.\n *\n * Do note that semantics such as `void` cannot be changed (as the element has\n * already been created). In addition the element will still \"be\" the same\n * element, i.e. even if loading meta for a `<p>` tag upon a `<div>` tag it\n * will still be a `<div>` as far as the rest of the validator is concerned.\n *\n * In fact only certain properties will be copied onto the element:\n *\n * - content categories (flow, phrasing, etc)\n * - required attributes\n * - attribute allowed values\n * - permitted/required elements\n *\n * Properties *not* loaded:\n *\n * - inherit\n * - deprecated\n * - foreign\n * - void\n * - implicitClosed\n * - scriptSupporting\n * - deprecatedAttributes\n *\n * Changes to element metadata will only be visible after `element:ready` (and\n * the subsequent `dom:ready` event).\n */\n loadMeta(meta) {\n if (!this.metaElement) {\n this.metaElement = {};\n }\n for (const key of MetaCopyableProperty) {\n const value = meta[key];\n if (typeof value !== \"undefined\") {\n setMetaProperty(this.metaElement, key, value);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete -- technical debt */\n delete this.metaElement[key];\n }\n }\n }\n /**\n * Match this element against given selectors. Returns true if any selector\n * matches.\n *\n * Implementation of DOM specification of Element.matches(selectors).\n */\n matches(selector) {\n /* find root element */\n /* eslint-disable-next-line @typescript-eslint/no-this-alias -- false positive */\n let root = this;\n while (root.parent) {\n root = root.parent;\n }\n /* a bit slow implementation as it finds all candidates for the selector and\n * then tests if any of them are the current element. A better\n * implementation would be to walk the selector right-to-left and test\n * ancestors. */\n for (const match of root.querySelectorAll(selector)) {\n if (match.unique === this.unique) {\n return true;\n }\n }\n return false;\n }\n get meta() {\n return this.metaElement;\n }\n /**\n * Set annotation for this element.\n */\n setAnnotation(text) {\n this.annotation = text;\n }\n /**\n * Set attribute. Stores all attributes set even with the same name.\n *\n * @param key - Attribute name\n * @param value - Attribute value. Use `null` if no value is present.\n * @param keyLocation - Location of the attribute name.\n * @param valueLocation - Location of the attribute value (excluding quotation)\n * @param originalAttribute - If attribute is an alias for another attribute\n * (dynamic attributes) set this to the original attribute name.\n */\n setAttribute(key, value, keyLocation, valueLocation, originalAttribute) {\n key = key.toLowerCase();\n if (!this.attr[key]) {\n this.attr[key] = [];\n }\n this.attr[key].push(new Attribute(key, value, keyLocation, valueLocation, originalAttribute));\n }\n /**\n * Get a list of all attributes on this node.\n */\n get attributes() {\n return Object.values(this.attr).reduce((result, cur) => {\n return result.concat(cur);\n }, []);\n }\n hasAttribute(key) {\n key = key.toLowerCase();\n return key in this.attr;\n }\n getAttribute(key, all = false) {\n key = key.toLowerCase();\n if (key in this.attr) {\n const matches = this.attr[key];\n return all ? matches : matches[0];\n }\n else {\n return null;\n }\n }\n /**\n * Get attribute value.\n *\n * Returns the attribute value if present.\n *\n * - Missing attributes return `null`.\n * - Boolean attributes return `null`.\n * - `DynamicValue` returns attribute expression.\n *\n * @param key - Attribute name\n * @returns Attribute value or null.\n */\n getAttributeValue(key) {\n const attr = this.getAttribute(key);\n if (attr) {\n return attr.value !== null ? attr.value.toString() : null;\n }\n else {\n return null;\n }\n }\n /**\n * Add text as a child node to this element.\n *\n * @param text - Text to add.\n * @param location - Source code location of this text.\n */\n appendText(text, location) {\n this.childNodes.push(new TextNode(text, location));\n }\n /**\n * Return a list of all known classes on the element. Dynamic values are\n * ignored.\n */\n get classList() {\n if (!this.hasAttribute(\"class\")) {\n return new DOMTokenList(null, null);\n }\n const classes = this.getAttribute(\"class\", true)\n .filter((attr) => attr.isStatic)\n .map((attr) => attr.value)\n .join(\" \");\n return new DOMTokenList(classes, null);\n }\n /**\n * Get element ID if present.\n */\n get id() {\n return this.getAttributeValue(\"id\");\n }\n get style() {\n const attr = this.getAttribute(\"style\");\n return parseCssDeclaration(attr === null || attr === void 0 ? void 0 : attr.value);\n }\n /**\n * Returns the first child element or null if there are no child elements.\n */\n get firstElementChild() {\n const children = this.childElements;\n return children.length > 0 ? children[0] : null;\n }\n /**\n * Returns the last child element or null if there are no child elements.\n */\n get lastElementChild() {\n const children = this.childElements;\n return children.length > 0 ? children[children.length - 1] : null;\n }\n get siblings() {\n return this.parent ? this.parent.childElements : [this];\n }\n get previousSibling() {\n const i = this.siblings.findIndex((node) => node.unique === this.unique);\n return i >= 1 ? this.siblings[i - 1] : null;\n }\n get nextSibling() {\n const i = this.siblings.findIndex((node) => node.unique === this.unique);\n return i <= this.siblings.length - 2 ? this.siblings[i + 1] : null;\n }\n getElementsByTagName(tagName) {\n return this.childElements.reduce((matches, node) => {\n return matches.concat(node.is(tagName) ? [node] : [], node.getElementsByTagName(tagName));\n }, []);\n }\n querySelector(selector) {\n const it = this.querySelectorImpl(selector);\n const next = it.next();\n if (next.done) {\n return null;\n }\n else {\n return next.value;\n }\n }\n querySelectorAll(selector) {\n const it = this.querySelectorImpl(selector);\n const unique = new Set(it);\n return Array.from(unique.values());\n }\n *querySelectorImpl(selectorList) {\n if (!selectorList) {\n return;\n }\n for (const selector of selectorList.split(/,\\s*/)) {\n const pattern = new Selector(selector);\n yield* pattern.match(this);\n }\n }\n /**\n * Visit all nodes from this node and down. Depth first.\n *\n * @internal\n */\n visitDepthFirst(callback) {\n function visit(node) {\n node.childElements.forEach(visit);\n if (!node.isRootElement()) {\n callback(node);\n }\n }\n visit(this);\n }\n /**\n * Evaluates callbackk on all descendants, returning true if any are true.\n *\n * @internal\n */\n someChildren(callback) {\n return this.childElements.some(visit);\n function visit(node) {\n if (callback(node)) {\n return true;\n }\n else {\n return node.childElements.some(visit);\n }\n }\n }\n /**\n * Evaluates callbackk on all descendants, returning true if all are true.\n *\n * @internal\n */\n everyChildren(callback) {\n return this.childElements.every(visit);\n function visit(node) {\n if (!callback(node)) {\n return false;\n }\n return node.childElements.every(visit);\n }\n }\n /**\n * Visit all nodes from this node and down. Breadth first.\n *\n * The first node for which the callback evaluates to true is returned.\n *\n * @internal\n */\n find(callback) {\n function visit(node) {\n if (callback(node)) {\n return node;\n }\n for (const child of node.childElements) {\n const match = child.find(callback);\n if (match) {\n return match;\n }\n }\n return null;\n }\n return visit(this);\n }\n}\nfunction isClosed(endToken, meta) {\n let closed = NodeClosed.Open;\n if (meta && meta.void) {\n closed = NodeClosed.VoidOmitted;\n }\n if (endToken.data[0] === \"/>\") {\n closed = NodeClosed.VoidSelfClosed;\n }\n return closed;\n}\n//# sourceMappingURL=htmlelement.js.map","import { HtmlElement } from \"./htmlelement\";\n/**\n * @public\n */\nexport class DOMTree {\n constructor(location) {\n this.root = HtmlElement.rootNode(location);\n this.active = this.root;\n this.doctype = null;\n }\n pushActive(node) {\n this.active = node;\n }\n popActive() {\n var _a;\n if (this.active.isRootElement()) {\n /* root element should never be popped, continue as if nothing happened */\n return;\n }\n this.active = (_a = this.active.parent) !== null && _a !== void 0 ? _a : this.root;\n }\n getActive() {\n return this.active;\n }\n /**\n * Resolve dynamic meta expressions.\n */\n resolveMeta(table) {\n this.visitDepthFirst((node) => {\n table.resolve(node);\n });\n }\n getElementsByTagName(tagName) {\n return this.root.getElementsByTagName(tagName);\n }\n visitDepthFirst(callback) {\n this.root.visitDepthFirst(callback);\n }\n find(callback) {\n return this.root.find(callback);\n }\n querySelector(selector) {\n return this.root.querySelector(selector);\n }\n querySelectorAll(selector) {\n return this.root.querySelectorAll(selector);\n }\n}\n//# sourceMappingURL=domtree.js.map","import { DynamicValue, DOMTokenList } from \"../dom\";\nconst allowedKeys = [\"exclude\"];\n/**\n * Helper class to validate elements against metadata rules.\n *\n * @public\n */\n/* eslint-disable-next-line @typescript-eslint/no-extraneous-class -- technical debt, should probably be plain functions maybe in an object */\nexport class Validator {\n /**\n * Test if element is used in a proper context.\n *\n * @param node - Element to test.\n * @param rules - List of rules.\n * @returns `true` if element passes all tests.\n */\n static validatePermitted(node, rules) {\n if (!rules) {\n return true;\n }\n return rules.some((rule) => {\n return Validator.validatePermittedRule(node, rule);\n });\n }\n /**\n * Test if an element is used the correct amount of times.\n *\n * For instance, a `<table>` element can only contain a single `<tbody>`\n * child. If multiple `<tbody>` exists this test will fail both nodes.\n * Note that this is called on the parent but will fail the children violating\n * the rule.\n *\n * @param children - Array of children to validate.\n * @param rules - List of rules of the parent element.\n * @returns `true` if the parent element of the children passes the test.\n */\n static validateOccurrences(children, rules, cb) {\n if (!rules) {\n return true;\n }\n let valid = true;\n for (const rule of rules) {\n /** @todo handle complex rules and not just plain arrays (but as of now\n * there is no use-case for it) */\n // istanbul ignore next\n if (typeof rule !== \"string\") {\n return false;\n }\n // Check if the rule has a quantifier\n const [, category, quantifier] = rule.match(/^(@?.*?)([?*]?)$/); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- will always match\n const limit = category && quantifier && parseQuantifier(quantifier);\n if (limit) {\n const siblings = children.filter((cur) => Validator.validatePermittedCategory(cur, rule, true));\n if (siblings.length > limit) {\n // fail only the children above the limit (currently limit can only be 1)\n for (const child of siblings.slice(limit)) {\n cb(child, category);\n }\n valid = false;\n }\n }\n }\n return valid;\n }\n /**\n * Validate elements order.\n *\n * Given a parent element with children and metadata containing permitted\n * order it will validate each children and ensure each one exists in the\n * specified order.\n *\n * For instance, for a `<table>` element the `<caption>` element must come\n * before a `<thead>` which must come before `<tbody>`.\n *\n * @param children - Array of children to validate.\n */\n static validateOrder(children, rules, cb) {\n if (!rules) {\n return true;\n }\n let i = 0;\n let prev = null;\n for (const node of children) {\n const old = i;\n while (rules[i] && !Validator.validatePermittedCategory(node, rules[i], true)) {\n i++;\n }\n if (i >= rules.length) {\n /* Second check is if the order is specified for this element at all. It\n * will be unspecified in two cases:\n * - disallowed elements\n * - elements where the order doesn't matter\n * In both of these cases no error should be reported. */\n const orderSpecified = rules.find((cur) => Validator.validatePermittedCategory(node, cur, true));\n if (orderSpecified) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- technical debt, should never happen */\n cb(node, prev);\n return false;\n }\n /* if this element has unspecified order the index is restored so new\n * elements of the same type can be specified again */\n i = old;\n }\n prev = node;\n }\n return true;\n }\n /**\n * Validate element ancestors.\n *\n * Check if an element has the required set of elements. At least one of the\n * selectors must match.\n */\n static validateAncestors(node, rules) {\n if (!rules || rules.length === 0) {\n return true;\n }\n return rules.some((rule) => node.closest(rule));\n }\n /**\n * Validate element required content.\n *\n * Check if an element has the required set of elements. At least one of the\n * selectors must match.\n *\n * Returns `[]` when valid or a list of required but missing tagnames or\n * categories.\n */\n static validateRequiredContent(node, rules) {\n if (!rules || rules.length === 0) {\n return [];\n }\n return rules.filter((tagName) => {\n const haveMatchingChild = node.childElements.some((child) => Validator.validatePermittedCategory(child, tagName, false));\n return !haveMatchingChild;\n });\n }\n /**\n * Test if an attribute has an allowed value and/or format.\n *\n * @param attr - Attribute to test.\n * @param rules - Element attribute metadta.\n * @returns `true` if attribute passes all tests.\n */\n static validateAttribute(attr, rules) {\n const rule = rules[attr.key];\n if (!rule) {\n return true;\n }\n /* consider dynamic values as valid as there is no way to properly test them\n * while using transformed sources, i.e. it must be tested when running in a\n * browser instead */\n const value = attr.value;\n if (value instanceof DynamicValue) {\n return true;\n }\n const empty = value === null || value === \"\";\n /* if boolean is set the value can be either null, empty string or the\n * attribute key (attribute-boolean-style regulates style) */\n if (rule.boolean) {\n return empty || value === attr.key;\n }\n /* if omit is set the value can be either null or empty string\n * (attribute-empty style regulates style) */\n if (rule.omit && empty) {\n return true;\n }\n /* validate each token when using list, all tokens must be valid */\n if (rule.list) {\n const tokens = new DOMTokenList(value, attr.valueLocation);\n return tokens.every((token) => {\n return this.validateAttributeValue(token, rule);\n });\n }\n return this.validateAttributeValue(value, rule);\n }\n static validateAttributeValue(value, rule) {\n /* skip attribute if it not have enumerated list */\n if (!rule.enum) {\n return true;\n }\n if (value === null || value === undefined) {\n return false;\n }\n const caseInsensitiveValue = value.toLowerCase();\n return rule.enum.some((entry) => {\n if (entry instanceof RegExp) {\n /* regular expressions are matched case-sensitive */\n return !!value.match(entry);\n }\n else {\n /* strings matched case-insensitive */\n return caseInsensitiveValue === entry;\n }\n });\n }\n static validatePermittedRule(node, rule, isExclude = false) {\n if (typeof rule === \"string\") {\n return Validator.validatePermittedCategory(node, rule, !isExclude);\n }\n else if (Array.isArray(rule)) {\n return rule.every((inner) => {\n return Validator.validatePermittedRule(node, inner, isExclude);\n });\n }\n else {\n validateKeys(rule);\n if (rule.exclude) {\n if (Array.isArray(rule.exclude)) {\n return !rule.exclude.some((inner) => {\n return Validator.validatePermittedRule(node, inner, true);\n });\n }\n else {\n return !Validator.validatePermittedRule(node, rule.exclude, true);\n }\n }\n else {\n return true;\n }\n }\n }\n /**\n * Validate node against a content category.\n *\n * When matching parent nodes against permitted parents use the superset\n * parameter to also match for `@flow`. E.g. if a node expects a `@phrasing`\n * parent it should also allow `@flow` parent since `@phrasing` is a subset of\n * `@flow`.\n *\n * @param node - The node to test against\n * @param category - Name of category with `@` prefix or tag name.\n * @param defaultMatch - The default return value when node categories is not known.\n */\n /* eslint-disable-next-line complexity -- rule does not like switch */\n static validatePermittedCategory(node, category, defaultMatch) {\n const [, rawCategory] = category.match(/^(@?.*?)([?*]?)$/); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- will always match\n /* match tagName when an explicit name is given */\n if (!rawCategory.startsWith(\"@\")) {\n return node.tagName === rawCategory;\n }\n /* if the meta entry is missing assume any content model would match */\n if (!node.meta) {\n return defaultMatch;\n }\n switch (rawCategory) {\n case \"@meta\":\n return node.meta.metadata;\n case \"@flow\":\n return node.meta.flow;\n case \"@sectioning\":\n return node.meta.sectioning;\n case \"@heading\":\n return node.meta.heading;\n case \"@phrasing\":\n return node.meta.phrasing;\n case \"@embedded\":\n return node.meta.embedded;\n case \"@interactive\":\n return node.meta.interactive;\n case \"@script\":\n return Boolean(node.meta.scriptSupporting);\n case \"@form\":\n return Boolean(node.meta.form);\n default:\n throw new Error(`Invalid content category \"${category}\"`);\n }\n }\n}\nfunction validateKeys(rule) {\n for (const key of Object.keys(rule)) {\n if (!allowedKeys.includes(key)) {\n const str = JSON.stringify(rule);\n throw new Error(`Permitted rule \"${str}\" contains unknown property \"${key}\"`);\n }\n }\n}\nfunction parseQuantifier(quantifier) {\n switch (quantifier) {\n case \"?\":\n return 1;\n case \"*\":\n return null;\n // istanbul ignore next\n default:\n throw new Error(`Invalid quantifier \"${quantifier}\" used`);\n }\n}\n//# sourceMappingURL=validator.js.map","/**\n * @internal\n */\nexport const TRANSFORMER_API = {\n VERSION: 1,\n};\n//# sourceMappingURL=index.js.map","/**\n * @public\n */\nexport var Severity;\n(function (Severity) {\n Severity[Severity[\"DISABLED\"] = 0] = \"DISABLED\";\n Severity[Severity[\"WARN\"] = 1] = \"WARN\";\n Severity[Severity[\"ERROR\"] = 2] = \"ERROR\";\n})(Severity || (Severity = {}));\n/**\n * @internal\n */\nexport function parseSeverity(value) {\n switch (value) {\n case 0:\n case \"off\":\n return Severity.DISABLED;\n case 1:\n case \"warn\":\n return Severity.WARN;\n case 2:\n case \"error\":\n return Severity.ERROR;\n default:\n throw new Error(`Invalid severity \"${value}\"`);\n }\n}\n//# sourceMappingURL=severity.js.map","function escape(value) {\n return JSON.stringify(value);\n}\nfunction format(value, quote = false) {\n if (value === null) {\n return \"null\";\n }\n if (typeof value === \"number\") {\n return value.toString();\n }\n if (typeof value === \"string\") {\n return quote ? escape(value) : value;\n }\n if (Array.isArray(value)) {\n const content = value.map((it) => format(it, true)).join(\", \");\n return `[ ${content} ]`;\n }\n if (typeof value === \"object\") {\n const content = Object.entries(value)\n .map(([key, nested]) => `${key}: ${format(nested, true)}`)\n .join(\", \");\n return `{ ${content} }`;\n }\n return String(value);\n}\n/**\n * Replaces placeholder `{{ ... }}` with values from given object.\n *\n * @internal\n */\nexport function interpolate(text, data) {\n return text.replace(/{{\\s*([^\\s{}]+)\\s*}}/g, (match, key) => {\n return typeof data[key] !== \"undefined\" ? format(data[key]) : match;\n });\n}\n//# sourceMappingURL=interpolate.js.map","const patternCache = new Map();\nfunction compileStringPattern(pattern) {\n const regexp = pattern.replace(/[*]+/g, \".+\");\n /* eslint-disable-next-line security/detect-non-literal-regexp -- technical debt, should do input sanitation and precompilation */\n return new RegExp(`^${regexp}$`);\n}\nfunction compileRegExpPattern(pattern) {\n /* eslint-disable-next-line security/detect-non-literal-regexp -- technical debt, should do input sanitation and precompilation */\n return new RegExp(`^${pattern}$`);\n}\nfunction compilePattern(pattern) {\n const cached = patternCache.get(pattern);\n if (cached) {\n return cached;\n }\n const match = pattern.match(/^\\/(.*)\\/$/);\n const regexp = match ? compileRegExpPattern(match[1]) : compileStringPattern(pattern);\n patternCache.set(pattern, regexp);\n return regexp;\n}\n/**\n * @internal\n */\nexport function keywordPatternMatcher(list, keyword) {\n for (const pattern of list) {\n const regexp = compilePattern(pattern);\n if (regexp.test(keyword)) {\n return true;\n }\n }\n return false;\n}\n/**\n * @internal\n */\nexport function isKeywordIgnored(options, keyword, matcher = (list, it) => list.includes(it)) {\n const { include, exclude } = options;\n /* ignore keyword if not present in \"include\" */\n if (include && !matcher(include, keyword)) {\n return true;\n }\n /* ignore keyword if present in \"excludes\" */\n if (exclude && matcher(exclude, keyword)) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=is-keyword-ignored.js.map","const ARIA_HIDDEN_CACHE = Symbol(isAriaHidden.name);\nconst HTML_HIDDEN_CACHE = Symbol(isHTMLHidden.name);\nconst ROLE_PRESENTATION_CACHE = Symbol(isPresentation.name);\n/**\n * Tests if this element is present in the accessibility tree.\n *\n * In practice it tests whenever the element or its parents has\n * `role=\"presentation\"` or `aria-hidden=\"false\"`. Dynamic values counts as\n * visible since the element might be in the visibility tree sometimes.\n */\nexport function inAccessibilityTree(node) {\n return !isAriaHidden(node) && !isPresentation(node);\n}\nfunction isAriaHiddenImpl(node) {\n const isHidden = (node) => {\n const ariaHidden = node.getAttribute(\"aria-hidden\");\n return Boolean(ariaHidden && ariaHidden.value === \"true\");\n };\n return {\n byParent: node.parent ? isAriaHidden(node.parent) : false,\n bySelf: isHidden(node),\n };\n}\nexport function isAriaHidden(node, details) {\n const cached = node.cacheGet(ARIA_HIDDEN_CACHE);\n if (cached) {\n return details ? cached : cached.byParent || cached.bySelf;\n }\n const result = node.cacheSet(ARIA_HIDDEN_CACHE, isAriaHiddenImpl(node));\n return details ? result : result.byParent || result.bySelf;\n}\nfunction isHTMLHiddenImpl(node) {\n const isHidden = (node) => {\n const hidden = node.getAttribute(\"hidden\");\n return hidden !== null && hidden.isStatic;\n };\n return {\n byParent: node.parent ? isHTMLHidden(node.parent) : false,\n bySelf: isHidden(node),\n };\n}\nexport function isHTMLHidden(node, details) {\n const cached = node.cacheGet(HTML_HIDDEN_CACHE);\n if (cached) {\n return details ? cached : cached.byParent || cached.bySelf;\n }\n const result = node.cacheSet(HTML_HIDDEN_CACHE, isHTMLHiddenImpl(node));\n return details ? result : result.byParent || result.bySelf;\n}\n/**\n * Tests if this element or a parent element has role=\"presentation\".\n *\n * Dynamic values yields `false` just as if the attribute wasn't present.\n */\nexport function isPresentation(node) {\n if (node.cacheExists(ROLE_PRESENTATION_CACHE)) {\n return Boolean(node.cacheGet(ROLE_PRESENTATION_CACHE));\n }\n let cur = node;\n do {\n const role = cur.getAttribute(\"role\");\n /* role=\"presentation\" */\n if (role && role.value === \"presentation\") {\n return cur.cacheSet(ROLE_PRESENTATION_CACHE, true);\n }\n /* sanity check: break if no parent is present, normally not an issue as the\n * root element should be found first */\n if (!cur.parent) {\n break;\n }\n /* check parents */\n cur = cur.parent;\n } while (!cur.isRootElement());\n return node.cacheSet(ROLE_PRESENTATION_CACHE, false);\n}\n//# sourceMappingURL=a11y.js.map","import { isElementNode, isTextNode } from \"../../dom\";\nimport { isAriaHidden, isHTMLHidden } from \"./a11y\";\nconst cachePrefix = classifyNodeText.name;\nconst HTML_CACHE_KEY = Symbol(`${cachePrefix}|html`);\nconst A11Y_CACHE_KEY = Symbol(`${cachePrefix}|a11y`);\nconst IGNORE_HIDDEN_ROOT_HTML_CACHE_KEY = Symbol(`${cachePrefix}|html|ignore-hidden-root`);\nconst IGNORE_HIDDEN_ROOT_A11Y_CACHE_KEY = Symbol(`${cachePrefix}|a11y|ignore-hidden-root`);\n/**\n * @public\n */\nexport var TextClassification;\n(function (TextClassification) {\n TextClassification[TextClassification[\"EMPTY_TEXT\"] = 0] = \"EMPTY_TEXT\";\n TextClassification[TextClassification[\"DYNAMIC_TEXT\"] = 1] = \"DYNAMIC_TEXT\";\n TextClassification[TextClassification[\"STATIC_TEXT\"] = 2] = \"STATIC_TEXT\";\n})(TextClassification || (TextClassification = {}));\n/**\n * @internal\n */\nexport function getCachekey(options) {\n const { accessible = false, ignoreHiddenRoot = false } = options;\n if (accessible && ignoreHiddenRoot) {\n return IGNORE_HIDDEN_ROOT_A11Y_CACHE_KEY;\n }\n else if (ignoreHiddenRoot) {\n return IGNORE_HIDDEN_ROOT_HTML_CACHE_KEY;\n }\n else if (accessible) {\n return A11Y_CACHE_KEY;\n }\n else {\n return HTML_CACHE_KEY;\n }\n}\n/* While I cannot find a reference about this in the standard the <select>\n * element kinda acts as if there is no text content, most particularly it\n * doesn't receive and accessible name. The `.textContent` property does\n * however include the <option> childrens text. But for the sake of the\n * validator it is probably best if the classification acts as if there is no\n * text as I think that is what is expected of the return values. Might have\n * to revisit this at some point or if someone could clarify what section of\n * the standard deals with this. */\nfunction isSpecialEmpty(node) {\n return node.is(\"select\") || node.is(\"textarea\");\n}\n/**\n * Checks text content of an element.\n *\n * Any text is considered including text from descendant elements. Whitespace is\n * ignored.\n *\n * If any text is dynamic `TextClassification.DYNAMIC_TEXT` is returned.\n *\n * @public\n */\nexport function classifyNodeText(node, options = {}) {\n const { accessible = false, ignoreHiddenRoot = false } = options;\n const cacheKey = getCachekey(options);\n if (node.cacheExists(cacheKey)) {\n return node.cacheGet(cacheKey); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- has/get combo\n }\n if (!ignoreHiddenRoot && isHTMLHidden(node)) {\n return node.cacheSet(cacheKey, TextClassification.EMPTY_TEXT);\n }\n if (!ignoreHiddenRoot && accessible && isAriaHidden(node)) {\n return node.cacheSet(cacheKey, TextClassification.EMPTY_TEXT);\n }\n if (isSpecialEmpty(node)) {\n return node.cacheSet(cacheKey, TextClassification.EMPTY_TEXT);\n }\n const text = findTextNodes(node, {\n ...options,\n ignoreHiddenRoot: false,\n });\n /* if any text is dynamic classify as dynamic */\n if (text.some((cur) => cur.isDynamic)) {\n return node.cacheSet(cacheKey, TextClassification.DYNAMIC_TEXT);\n }\n /* if any text has non-whitespace character classify as static */\n if (text.some((cur) => cur.textContent.match(/\\S/) !== null)) {\n return node.cacheSet(cacheKey, TextClassification.STATIC_TEXT);\n }\n /* default to empty */\n return node.cacheSet(cacheKey, TextClassification.EMPTY_TEXT);\n}\nfunction findTextNodes(node, options) {\n const { accessible = false } = options;\n let text = [];\n for (const child of node.childNodes) {\n if (isTextNode(child)) {\n text.push(child);\n }\n else if (isElementNode(child)) {\n if (isHTMLHidden(child, true).bySelf) {\n continue;\n }\n if (accessible && isAriaHidden(child, true).bySelf) {\n continue;\n }\n text = text.concat(findTextNodes(child, options));\n }\n }\n return text;\n}\n//# sourceMappingURL=text.js.map","export function hasAltText(image) {\n const alt = image.getAttribute(\"alt\");\n /* missing attribute */\n if (!alt) {\n return false;\n }\n /* (incorrectly) set as boolean value */\n if (alt.value === null) {\n return false;\n }\n return alt.isDynamic || alt.value.toString() !== \"\";\n}\n//# sourceMappingURL=has-alt-text.js.map","export function hasAriaLabel(node) {\n const label = node.getAttribute(\"aria-label\");\n /* missing attribute */\n if (!label) {\n return false;\n }\n /* (incorrectly) set as boolean value */\n if (label.value === null) {\n return false;\n }\n return label.isDynamic || label.value.toString() !== \"\";\n}\n//# sourceMappingURL=has-aria-label.js.map","/**\n * Partition an array to two new lists based on the result of a\n * predicate. Similar to `Array.filter` but returns both matching and\n * non-matching in the same call.\n *\n * Elements matching the predicate is placed in the first array and elements not\n * matching is placed in the second.\n *\n * @public\n * @param values - The array of values to partition.\n * @param predicate - A predicate function taking a single element and returning\n * a boolean.\n * @returns - Two arrays where the first contains all elements where the\n * predicate matched and second contains the rest of the elements.\n */\nexport function partition(values, predicate) {\n const initial = [[], []];\n return values.reduce((accumulator, value, index) => {\n const match = predicate(value, index, values);\n accumulator[match ? 0 : 1].push(value);\n return accumulator;\n }, initial);\n}\n//# sourceMappingURL=partition.js.map","import Ajv from \"ajv\";\nimport ajvSchemaDraft from \"ajv/lib/refs/json-schema-draft-06.json\";\nimport { Severity } from \"./config/severity\";\nimport { SchemaValidationError } from \"./error\";\nimport { interpolate } from \"./utils/interpolate\";\nimport { isKeywordIgnored } from \"./rules/helper\";\nimport { getRuleUrl } from \"./utils/get-rule-url.mjs\";\nconst remapEvents = {\n \"tag:open\": \"tag:start\",\n \"tag:close\": \"tag:end\",\n};\nconst ajv = new Ajv({ strict: true, strictTuples: true, strictTypes: true });\najv.addMetaSchema(ajvSchemaDraft);\n/**\n * Get (cached) schema validator for rule options.\n *\n * @param ruleId - Rule ID used as key for schema lookups.\n * @param properties - Uncompiled schema.\n */\nfunction getSchemaValidator(ruleId, properties) {\n const $id = `rule/${ruleId}`;\n const cached = ajv.getSchema($id);\n if (cached) {\n return cached;\n }\n const schema = {\n $id,\n type: \"object\",\n additionalProperties: false,\n properties,\n };\n return ajv.compile(schema);\n}\nfunction isErrorDescriptor(value) {\n return Boolean(value[0] && value[0].message);\n}\nfunction unpackErrorDescriptor(value) {\n if (isErrorDescriptor(value)) {\n return value[0];\n }\n else {\n const [node, message, location, context] = value;\n return { node, message, location, context };\n }\n}\n/**\n * @public\n */\nexport class Rule {\n constructor(options) {\n /* faux initialization, properly initialized by init(). This is to keep TS happy without adding null-checks everywhere */\n this.reporter = null;\n this.parser = null;\n this.meta = null;\n this.event = null;\n this.options = options;\n this.enabled = true;\n this.blockers = [];\n this.severity = Severity.DISABLED;\n this.name = \"\";\n }\n getSeverity() {\n return this.severity;\n }\n setServerity(severity) {\n this.severity = severity;\n }\n /**\n * Block this rule from generating errors. Pass in an id generated by\n * `createBlocker`. Can be unblocked by {@link Rule.unblock}.\n *\n * A blocked rule is similar to disabling it but it will still receive parser\n * events. A list of all blockers is passed to the `rule:error` event.\n *\n * @internal\n */\n block(id) {\n this.blockers.push(id);\n }\n /**\n * Unblock a rule previously blocked by {@link Rule.block}.\n *\n * @internal\n */\n unblock(id) {\n this.blockers = this.blockers.filter((it) => it !== id);\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n /**\n * Returns `true` if rule is deprecated.\n *\n * Overridden by subclasses.\n */\n get deprecated() {\n return false;\n }\n /**\n * Test if rule is enabled.\n *\n * To be considered enabled the enabled flag must be true and the severity at\n * least warning.\n *\n * @internal\n */\n isEnabled(node) {\n return this.enabled && this.severity >= Severity.WARN && (!node || node.ruleEnabled(this.name));\n }\n /**\n * Test if rule is enabled.\n *\n * To be considered enabled the enabled flag must be true and the severity at\n * least warning.\n *\n * @internal\n */\n isBlocked(node) {\n if (this.blockers.length > 0) {\n return true;\n }\n if (node && node.ruleBlockers(this.name).length > 0) {\n return true;\n }\n return false;\n }\n /**\n * Get a list of all blockers currently active this rule.\n *\n * @internal\n */\n getBlockers(node) {\n return [...this.blockers, ...(node ? node.ruleBlockers(this.name) : [])];\n }\n /**\n * Check if keyword is being ignored by the current rule configuration.\n *\n * This method requires the [[RuleOption]] type to include two properties:\n *\n * - include: string[] | null\n * - exclude: string[] | null\n *\n * This methods checks if the given keyword is included by \"include\" but not\n * excluded by \"exclude\". If any property is unset it is skipped by the\n * condition. Usually the user would use either one but not both but there is\n * no limitation to use both but the keyword must satisfy both conditions. If\n * either condition fails `true` is returned.\n *\n * For instance, given `{ include: [\"foo\"] }` the keyword `\"foo\"` would match\n * but not `\"bar\"`.\n *\n * Similarly, given `{ exclude: [\"foo\"] }` the keyword `\"bar\"` would match but\n * not `\"foo\"`.\n *\n * @param keyword - Keyword to match against `include` and `exclude` options.\n * @param matcher - Optional function to compare items with.\n * @returns `true` if keyword is not present in `include` or is present in\n * `exclude`.\n */\n isKeywordIgnored(keyword, matcher = (list, it) => list.includes(it)) {\n return isKeywordIgnored(this.options, keyword, matcher);\n }\n /**\n * Get [[MetaElement]] for the given tag. If no specific metadata is present\n * the global metadata is returned or null if no global is present.\n *\n * @public\n * @returns A shallow copy of metadata.\n */\n getMetaFor(tagName) {\n return this.meta.getMetaFor(tagName);\n }\n /**\n * Find all tags which has enabled given property.\n */\n getTagsWithProperty(propName) {\n return this.meta.getTagsWithProperty(propName);\n }\n /**\n * Find tag matching tagName or inheriting from it.\n */\n getTagsDerivedFrom(tagName) {\n return this.meta.getTagsDerivedFrom(tagName);\n }\n /**\n * JSON schema for rule options.\n *\n * Rules should override this to return an object with JSON schema to validate\n * rule options. If `null` or `undefined` is returned no validation is\n * performed.\n */\n static schema() {\n return null;\n }\n report(...args) {\n const { node, message, location, context } = unpackErrorDescriptor(args);\n const enabled = this.isEnabled(node);\n const blocked = this.isBlocked(node);\n const where = this.findLocation({ node, location, event: this.event });\n this.parser.trigger(\"rule:error\", {\n location: where,\n ruleId: this.name,\n enabled,\n blockers: this.getBlockers(node),\n });\n if (enabled && !blocked) {\n const interpolated = interpolate(message, context !== null && context !== void 0 ? context : {});\n this.reporter.add(this, interpolated, this.severity, node, where, context);\n }\n }\n findLocation(src) {\n var _a, _b;\n if (src.location) {\n return src.location;\n }\n if ((_a = src.event) === null || _a === void 0 ? void 0 : _a.location) {\n return src.event.location;\n }\n if ((_b = src.node) === null || _b === void 0 ? void 0 : _b.location) {\n return src.node.location;\n }\n return {};\n }\n on(event, ...args) {\n var _a;\n /* handle deprecated aliases */\n const remap = remapEvents[event];\n if (remap) {\n event = remap;\n }\n const callback = args.pop();\n const filter = (_a = args.pop()) !== null && _a !== void 0 ? _a : (() => true);\n return this.parser.on(event, (_event, data) => {\n if (this.isEnabled() && filter(data)) {\n this.event = data;\n callback(data);\n }\n });\n }\n /**\n * Called by [[Engine]] when initializing the rule.\n *\n * Do not override this, use the `setup` callback instead.\n *\n * @internal\n */\n init(parser, reporter, severity, meta) {\n this.parser = parser;\n this.reporter = reporter;\n this.severity = severity;\n this.meta = meta;\n }\n /**\n * Validate rule options against schema. Throws error if object does not validate.\n *\n * For rules without schema this function does nothing.\n *\n * @throws {@link SchemaValidationError}\n * Thrown when provided options does not validate against rule schema.\n *\n * @param cls - Rule class (constructor)\n * @param ruleId - Rule identifier\n * @param jsonPath - JSON path from which [[options]] can be found in [[config]]\n * @param options - User configured options to be validated\n * @param filename - Filename from which options originated\n * @param config - Configuration from which options originated\n *\n * @internal\n */\n static validateOptions(cls, ruleId, jsonPath, options, filename, config) {\n var _a;\n if (!cls) {\n return;\n }\n const schema = cls.schema();\n if (!schema) {\n return;\n }\n const isValid = getSchemaValidator(ruleId, schema);\n if (!isValid(options)) {\n /* istanbul ignore next: it is always set when validation fails */\n const errors = (_a = isValid.errors) !== null && _a !== void 0 ? _a : [];\n const mapped = errors.map((error) => {\n error.instancePath = `${jsonPath}${error.instancePath}`;\n return error;\n });\n throw new SchemaValidationError(filename, `Rule configuration error`, config, schema, mapped);\n }\n }\n /**\n * Rule documentation callback.\n *\n * Called when requesting additional documentation for a rule. Some rules\n * provide additional context to provide context-aware suggestions.\n *\n * @public\n * @virtual\n * @param context - Error context given by a reported error.\n * @returns Rule documentation and url with additional details or `null` if no\n * additional documentation is available.\n */\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars -- technical debt, prototype should be moved to interface */\n documentation(context) {\n return null;\n }\n}\n/**\n * @internal\n */\nexport function ruleDocumentationUrl(filename) {\n return getRuleUrl(filename);\n}\n//# sourceMappingURL=rule.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport var Style;\n(function (Style) {\n Style[\"EXTERNAL\"] = \"external\";\n Style[\"RELATIVE_BASE\"] = \"relative-base\";\n Style[\"RELATIVE_PATH\"] = \"relative-path\";\n Style[\"ABSOLUTE\"] = \"absolute\";\n Style[\"ANCHOR\"] = \"anchor\";\n})(Style || (Style = {}));\nconst defaults = {\n allowExternal: true,\n allowRelative: true,\n allowAbsolute: true,\n allowBase: true,\n};\nconst mapping = {\n a: \"href\",\n img: \"src\",\n link: \"href\",\n script: \"src\",\n};\nconst description = {\n [Style.EXTERNAL]: \"External links are not allowed by current configuration.\",\n [Style.RELATIVE_BASE]: \"Links relative to <base> are not allowed by current configuration.\",\n [Style.RELATIVE_PATH]: \"Relative links are not allowed by current configuration.\",\n [Style.ABSOLUTE]: \"Absolute links are not allowed by current configuration.\",\n [Style.ANCHOR]: null,\n};\nfunction parseAllow(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n return {\n /* eslint-disable security/detect-non-literal-regexp -- expected to be regexp */\n include: value.include ? value.include.map((it) => new RegExp(it)) : null,\n exclude: value.exclude ? value.exclude.map((it) => new RegExp(it)) : null,\n /* eslint-enable security/detect-non-literal-regexp */\n };\n}\n/**\n * @internal\n */\nexport function matchList(value, list) {\n if (list.include && !list.include.some((it) => it.test(value))) {\n return false;\n }\n if (list.exclude && list.exclude.some((it) => it.test(value))) {\n return false;\n }\n return true;\n}\nexport default class AllowedLinks extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.allowExternal = parseAllow(this.options.allowExternal);\n this.allowRelative = parseAllow(this.options.allowRelative);\n this.allowAbsolute = parseAllow(this.options.allowAbsolute);\n }\n static schema() {\n const booleanOrObject = {\n anyOf: [\n { type: \"boolean\" },\n {\n type: \"object\",\n properties: {\n include: {\n type: \"array\",\n items: { type: \"string\" },\n },\n exclude: {\n type: \"array\",\n items: { type: \"string\" },\n },\n },\n },\n ],\n };\n return {\n allowExternal: { ...booleanOrObject },\n allowRelative: { ...booleanOrObject },\n allowAbsolute: { ...booleanOrObject },\n allowBase: { type: \"boolean\" },\n };\n }\n documentation(context) {\n var _a;\n const message = (_a = description[context]) !== null && _a !== void 0 ? _a : \"This link type is not allowed by current configuration\";\n return {\n description: message,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n if (!event.value || !this.isRelevant(event)) {\n return;\n }\n const link = event.value.toString();\n const style = this.getStyle(link);\n switch (style) {\n case Style.ANCHOR:\n /* anchor links are always allowed by this rule */\n break;\n case Style.ABSOLUTE:\n this.handleAbsolute(link, event, style);\n break;\n case Style.EXTERNAL:\n this.handleExternal(link, event, style);\n break;\n case Style.RELATIVE_BASE:\n this.handleRelativeBase(link, event, style);\n break;\n case Style.RELATIVE_PATH:\n this.handleRelativePath(link, event, style);\n break;\n }\n });\n }\n isRelevant(event) {\n const { target, key, value } = event;\n /* don't check links with dynamic values */\n if (value instanceof DynamicValue) {\n return false;\n }\n const attr = mapping[target.tagName];\n return Boolean(attr && attr === key);\n }\n getStyle(value) {\n /* http://example.net or //example.net */\n if (value.match(/^([a-z]+:)?\\/\\//g)) {\n return Style.EXTERNAL;\n }\n switch (value[0]) {\n /* /foo/bar */\n case \"/\":\n return Style.ABSOLUTE;\n /* ../foo/bar */\n case \".\":\n return Style.RELATIVE_PATH;\n /* #foo */\n case \"#\":\n return Style.ANCHOR;\n /* foo/bar */\n default:\n return Style.RELATIVE_BASE;\n }\n }\n handleAbsolute(target, event, style) {\n const { allowAbsolute } = this;\n if (allowAbsolute === true) {\n return;\n }\n else if (allowAbsolute === false) {\n this.report(event.target, \"Link destination must not be absolute url\", event.valueLocation, style);\n }\n else if (!matchList(target, allowAbsolute)) {\n this.report(event.target, \"Absolute link to this destination is not allowed by current configuration\", event.valueLocation, style);\n }\n }\n handleExternal(target, event, style) {\n const { allowExternal } = this;\n if (allowExternal === true) {\n return;\n }\n else if (allowExternal === false) {\n this.report(event.target, \"Link destination must not be external url\", event.valueLocation, style);\n }\n else if (!matchList(target, allowExternal)) {\n this.report(event.target, \"External link to this destination is not allowed by current configuration\", event.valueLocation, style);\n }\n }\n handleRelativePath(target, event, style) {\n const { allowRelative } = this;\n if (allowRelative === true) {\n return false;\n }\n else if (allowRelative === false) {\n this.report(event.target, \"Link destination must not be relative url\", event.valueLocation, style);\n return true;\n }\n else if (!matchList(target, allowRelative)) {\n this.report(event.target, \"Relative link to this destination is not allowed by current configuration\", event.valueLocation, style);\n return true;\n }\n return false;\n }\n handleRelativeBase(target, event, style) {\n const { allowBase } = this.options;\n if (this.handleRelativePath(target, event, style)) {\n return;\n }\n else if (!allowBase) {\n this.report(event.target, \"Relative links must be relative to current folder\", event.valueLocation, style);\n }\n }\n}\n//# sourceMappingURL=allowed-links.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport var RuleContext;\n(function (RuleContext) {\n RuleContext[\"MISSING_ALT\"] = \"missing-alt\";\n RuleContext[\"MISSING_HREF\"] = \"missing-href\";\n})(RuleContext || (RuleContext = {}));\nconst defaults = {\n accessible: true,\n};\nfunction findByTarget(target, siblings) {\n return siblings.filter((it) => it.getAttributeValue(\"href\") === target);\n}\nfunction getAltText(node) {\n return node.getAttributeValue(\"alt\");\n}\nfunction getDescription(context) {\n switch (context) {\n case RuleContext.MISSING_ALT:\n return [\n \"The `alt` attribute must be set (and not empty) when the `href` attribute is present on an `<area>` element.\",\n \"\",\n \"The attribute is used to provide an alternative text description for the area of the image map.\",\n \"The text should describe the purpose of area and the resource referenced by the `href` attribute.\",\n \"\",\n \"Either add the `alt` attribute or remove the `href` attribute.\",\n ];\n case RuleContext.MISSING_HREF:\n return [\n \"The `alt` attribute must not be set when the `href` attribute is missing on an `<area>` element.\",\n \"\",\n \"Either add the `href` attribute or remove the `alt` attribute.\",\n ];\n }\n}\nexport default class AreaAlt extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n accessible: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n return {\n description: getDescription(context).join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", this.isRelevant, (event) => {\n const { target } = event;\n const siblings = target.querySelectorAll(\"area\");\n for (const child of siblings) {\n this.validateArea(child, siblings);\n }\n });\n }\n validateArea(area, siblings) {\n const { accessible } = this.options;\n const href = area.getAttribute(\"href\");\n const alt = area.getAttribute(\"alt\");\n if (href) {\n if (alt && alt.isDynamic) {\n return;\n }\n const target = area.getAttributeValue(\"href\");\n const altTexts = accessible\n ? [getAltText(area)]\n : findByTarget(target, siblings).map(getAltText);\n if (!altTexts.some(Boolean)) {\n this.report({\n node: area,\n message: `\"alt\" attribute must be set and non-empty when the \"href\" attribute is present`,\n location: alt ? alt.keyLocation : href.keyLocation,\n context: RuleContext.MISSING_ALT,\n });\n }\n }\n else if (alt) {\n this.report({\n node: area,\n message: `\"alt\" attribute cannot be used unless the \"href\" attribute is present`,\n location: alt.keyLocation,\n context: RuleContext.MISSING_HREF,\n });\n }\n }\n isRelevant(event) {\n const { target } = event;\n return target.is(\"map\");\n }\n}\n//# sourceMappingURL=area-alt.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class AriaHiddenBody extends Rule {\n documentation() {\n return {\n description: \"`aria-hidden` must not be used on the `<body>` element as it makes the page inaccessible to assistive technology such as screenreaders\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:ready\", this.isRelevant, (event) => {\n const { target } = event;\n const attr = target.getAttribute(\"aria-hidden\");\n if (!attr || !attr.valueMatches(\"true\", true)) {\n return;\n }\n this.report(target, \"aria-hidden must not be used on <body>\", attr.keyLocation);\n });\n }\n isRelevant(event) {\n return event.target.is(\"body\");\n }\n}\n//# sourceMappingURL=aria-hidden-body.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst whitelisted = [\n \"main\",\n \"nav\",\n \"table\",\n \"td\",\n \"th\",\n \"aside\",\n \"header\",\n \"footer\",\n \"section\",\n \"article\",\n \"form\",\n \"img\",\n \"area\",\n \"fieldset\",\n \"summary\",\n \"figure\",\n];\nfunction isValidUsage(target, meta) {\n /* elements with explicit aria-label attribute are valid */\n if (meta.attributes[\"aria-label\"]) {\n return true;\n }\n /* landmark and other whitelisted elements are valid */\n if (whitelisted.includes(target.tagName)) {\n return true;\n }\n /* elements with role are valid, @todo check if the role is widget or landmark */\n if (target.hasAttribute(\"role\")) {\n return true;\n }\n /* elements with tabindex (implicit interactive) are valid */\n if (target.hasAttribute(\"tabindex\")) {\n return true;\n }\n /* interactive and labelable elements are valid */\n if (Boolean(meta.interactive) || Boolean(meta.labelable)) {\n return true;\n }\n return false;\n}\nexport default class AriaLabelMisuse extends Rule {\n documentation() {\n const valid = [\n \"Interactive elements\",\n \"Labelable elements\",\n \"Landmark elements\",\n \"Elements with roles inheriting from widget\",\n \"`<area>`\",\n \"`<form>` and `<fieldset>`\",\n \"`<iframe>`\",\n \"`<img>` and `<figure>`\",\n \"`<summary>`\",\n \"`<table>`, `<td>` and `<th>`\",\n ];\n const lines = valid.map((it) => `- ${it}\\n`).join(\"\");\n return {\n description: `\\`aria-label\\` can only be used on:\\n\\n${lines}`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n for (const target of document.querySelectorAll(\"[aria-label]\")) {\n this.validateElement(target);\n }\n });\n }\n validateElement(target) {\n const attr = target.getAttribute(\"aria-label\");\n if (!(attr === null || attr === void 0 ? void 0 : attr.value) || attr.valueMatches(\"\", false)) {\n return;\n }\n /* ignore elements without meta */\n const meta = target.meta;\n if (!meta) {\n return;\n }\n /* ignore elements which is valid usage */\n if (isValidUsage(target, meta)) {\n return;\n }\n this.report(target, `\"aria-label\" cannot be used on this element`, attr.keyLocation);\n }\n}\n//# sourceMappingURL=aria-label-misuse.js.map","import { UserError } from \"../error\";\n/**\n * @public\n */\nexport class ConfigError extends UserError {\n constructor(message, nested) {\n super(message, nested);\n Error.captureStackTrace(this, ConfigError);\n this.name = ConfigError.name;\n }\n}\n//# sourceMappingURL=error.js.map","import { ConfigError } from \"../../config/error\";\n/**\n * Represents casing for a name, e.g. lowercase, uppercase, etc.\n */\nexport class CaseStyle {\n /**\n * @param style - Name of a valid case style.\n */\n constructor(style, ruleId) {\n if (!Array.isArray(style)) {\n style = [style];\n }\n if (style.length === 0) {\n throw new ConfigError(`Missing style for ${ruleId} rule`);\n }\n this.styles = this.parseStyle(style, ruleId);\n }\n /**\n * Test if a text matches this case style.\n */\n match(text) {\n return this.styles.some((style) => text.match(style.pattern));\n }\n get name() {\n const names = this.styles.map((style) => style.name);\n switch (this.styles.length) {\n case 1:\n return names[0];\n case 2:\n return names.join(\" or \");\n default: {\n const last = names.slice(-1);\n const rest = names.slice(0, -1);\n return `${rest.join(\", \")} or ${last[0]}`;\n }\n }\n }\n parseStyle(style, ruleId) {\n return style.map((cur) => {\n switch (cur.toLowerCase()) {\n case \"lowercase\":\n return { pattern: /^[a-z]*$/, name: \"lowercase\" };\n case \"uppercase\":\n return { pattern: /^[A-Z]*$/, name: \"uppercase\" };\n case \"pascalcase\":\n return { pattern: /^[A-Z][A-Za-z]*$/, name: \"PascalCase\" };\n case \"camelcase\":\n return { pattern: /^[a-z][A-Za-z]*$/, name: \"camelCase\" };\n default:\n throw new ConfigError(`Invalid style \"${cur}\" for ${ruleId} rule`);\n }\n });\n }\n}\n//# sourceMappingURL=case-style.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { CaseStyle } from \"./helper/case-style\";\nconst defaults = {\n style: \"lowercase\",\n ignoreForeign: true,\n};\nexport default class AttrCase extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.style = new CaseStyle(this.options.style, \"attr-case\");\n }\n static schema() {\n const styleEnum = [\"lowercase\", \"uppercase\", \"pascalcase\", \"camelcase\"];\n return {\n ignoreForeign: {\n type: \"boolean\",\n },\n style: {\n anyOf: [\n {\n enum: styleEnum,\n type: \"string\",\n },\n {\n items: {\n enum: styleEnum,\n type: \"string\",\n },\n type: \"array\",\n },\n ],\n },\n };\n }\n documentation() {\n const { style } = this.options;\n return {\n description: Array.isArray(style)\n ? [`Attribute name must be in one of:`, \"\", ...style.map((it) => `- ${it}`)].join(\"\\n\")\n : `Attribute name must be in ${style}.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n if (this.isIgnored(event.target)) {\n return;\n }\n /* ignore case for dynamic attributes, the original attributes will be\n * checked instead (this prevents duplicated errors for the same source\n * attribute) */\n if (event.originalAttribute) {\n return;\n }\n const letters = event.key.replace(/[^a-z]+/gi, \"\");\n if (this.style.match(letters)) {\n return;\n }\n this.report({\n node: event.target,\n message: `Attribute \"${event.key}\" should be ${this.style.name}`,\n location: event.keyLocation,\n });\n });\n }\n isIgnored(node) {\n if (this.options.ignoreForeign) {\n return Boolean(node.meta && node.meta.foreign);\n }\n else {\n return false;\n }\n }\n}\n//# sourceMappingURL=attr-case.js.map","/**\n * @internal\n */\nexport var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"UNICODE_BOM\"] = 1] = \"UNICODE_BOM\";\n TokenType[TokenType[\"WHITESPACE\"] = 2] = \"WHITESPACE\";\n TokenType[TokenType[\"DOCTYPE_OPEN\"] = 3] = \"DOCTYPE_OPEN\";\n TokenType[TokenType[\"DOCTYPE_VALUE\"] = 4] = \"DOCTYPE_VALUE\";\n TokenType[TokenType[\"DOCTYPE_CLOSE\"] = 5] = \"DOCTYPE_CLOSE\";\n TokenType[TokenType[\"TAG_OPEN\"] = 6] = \"TAG_OPEN\";\n TokenType[TokenType[\"TAG_CLOSE\"] = 7] = \"TAG_CLOSE\";\n TokenType[TokenType[\"ATTR_NAME\"] = 8] = \"ATTR_NAME\";\n TokenType[TokenType[\"ATTR_VALUE\"] = 9] = \"ATTR_VALUE\";\n TokenType[TokenType[\"TEXT\"] = 10] = \"TEXT\";\n TokenType[TokenType[\"TEMPLATING\"] = 11] = \"TEMPLATING\";\n TokenType[TokenType[\"SCRIPT\"] = 12] = \"SCRIPT\";\n TokenType[TokenType[\"STYLE\"] = 13] = \"STYLE\";\n TokenType[TokenType[\"COMMENT\"] = 14] = \"COMMENT\";\n TokenType[TokenType[\"CONDITIONAL\"] = 15] = \"CONDITIONAL\";\n TokenType[TokenType[\"DIRECTIVE\"] = 16] = \"DIRECTIVE\";\n TokenType[TokenType[\"EOF\"] = 17] = \"EOF\";\n})(TokenType || (TokenType = {}));\n//# sourceMappingURL=token.js.map","import { ContentModel, Context, State } from \"../context\";\nimport { TokenType } from \"./token\";\n/* eslint-disable no-useless-escape -- false positives */\nconst MATCH_UNICODE_BOM = /^\\uFEFF/;\nconst MATCH_WHITESPACE = /^(?:\\r\\n|\\r|\\n|[ \\t]+(?:\\r\\n|\\r|\\n)?)/;\nconst MATCH_DOCTYPE_OPEN = /^<!(DOCTYPE)\\s/i;\nconst MATCH_DOCTYPE_VALUE = /^[^>]+/;\nconst MATCH_DOCTYPE_CLOSE = /^>/;\nconst MATCH_XML_TAG = /^<\\?xml.*?\\?>\\s+/;\nconst MATCH_TAG_OPEN = /^<(\\/?)([a-zA-Z0-9\\-:]+)/; // https://www.w3.org/TR/html/syntax.html#start-tags\nconst MATCH_TAG_CLOSE = /^\\/?>/;\nconst MATCH_TEXT = /^[^]*?(?=(?:[ \\t]*(?:\\r\\n|\\r|\\n)|<[^ ]|$))/;\nconst MATCH_TEMPLATING = /^(?:<%.*?%>|<\\?.*?\\?>|<\\$.*?\\$>)/s;\nconst MATCH_TAG_LOOKAHEAD = /^[^]*?(?=<|$)/;\nconst MATCH_ATTR_START = /^([^\\t\\r\\n\\f \\/><\"'=]+)/; // https://www.w3.org/TR/html/syntax.html#elements-attributes\nconst MATCH_ATTR_SINGLE = /^(\\s*=\\s*)'([^']*?)(')/;\nconst MATCH_ATTR_DOUBLE = /^(\\s*=\\s*)\"([^\"]*?)(\")/;\nconst MATCH_ATTR_UNQUOTED = /^(\\s*=\\s*)([^\\t\\r\\n\\f \"'<>][^\\t\\r\\n\\f <>]*)/;\nconst MATCH_CDATA_BEGIN = /^<!\\[CDATA\\[/;\nconst MATCH_CDATA_END = /^[^]*?]]>/;\nconst MATCH_SCRIPT_DATA = /^[^]*?(?=<\\/script)/;\nconst MATCH_SCRIPT_END = /^<(\\/)(script)/;\nconst MATCH_STYLE_DATA = /^[^]*?(?=<\\/style)/;\nconst MATCH_STYLE_END = /^<(\\/)(style)/;\nconst MATCH_DIRECTIVE = /^(<!--\\s*\\[html-validate-)([a-z0-9-]+)(\\s*)(.*?)(]?\\s*-->)/;\nconst MATCH_COMMENT = /^<!--([^]*?)-->/;\nconst MATCH_CONDITIONAL = /^<!\\[([^\\]]*?)\\]>/;\n/* eslint-enable no-useless-escape */\nexport class InvalidTokenError extends Error {\n constructor(location, message) {\n super(message);\n this.location = location;\n }\n}\nexport class Lexer {\n /* eslint-disable-next-line complexity -- there isn't really a good way to refactor this while keeping readability */\n *tokenize(source) {\n const context = new Context(source);\n /* for sanity check */\n let previousState = context.state;\n let previousLength = context.string.length;\n while (context.string.length > 0) {\n switch (context.state) {\n case State.INITIAL:\n yield* this.tokenizeInitial(context);\n break;\n case State.DOCTYPE:\n yield* this.tokenizeDoctype(context);\n break;\n case State.TAG:\n yield* this.tokenizeTag(context);\n break;\n case State.ATTR:\n yield* this.tokenizeAttr(context);\n break;\n case State.TEXT:\n yield* this.tokenizeText(context);\n break;\n case State.CDATA:\n yield* this.tokenizeCDATA(context);\n break;\n case State.SCRIPT:\n yield* this.tokenizeScript(context);\n break;\n case State.STYLE:\n yield* this.tokenizeStyle(context);\n break;\n /* istanbul ignore next: sanity check: should not happen unless adding new states */\n default:\n this.unhandled(context);\n }\n /* sanity check: state or string must change, if both are intact\n * we are stuck in an endless loop. */\n /* istanbul ignore next: no easy way to test this as it is a condition which should never happen */\n if (context.state === previousState && context.string.length === previousLength) {\n this.errorStuck(context);\n }\n previousState = context.state;\n previousLength = context.string.length;\n }\n yield this.token(context, TokenType.EOF, []);\n }\n token(context, type, data) {\n const size = data.length > 0 ? data[0].length : 0;\n const location = context.getLocation(size);\n return {\n type,\n location,\n data: Array.from(data),\n };\n }\n /* istanbul ignore next: used to provide a better error when an unhandled state happens */\n unhandled(context) {\n const truncated = JSON.stringify(context.string.length > 13 ? `${context.string.slice(0, 15)}...` : context.string);\n const state = State[context.state];\n const message = `failed to tokenize ${truncated}, unhandled state ${state}.`;\n throw new InvalidTokenError(context.getLocation(1), message);\n }\n /* istanbul ignore next: used to provide a better error when lexer is detected to be stuck, no known way to reproduce */\n errorStuck(context) {\n const state = State[context.state];\n const message = `failed to tokenize ${context.getTruncatedLine()}, state ${state} failed to consume data or change state.`;\n throw new InvalidTokenError(context.getLocation(1), message);\n }\n evalNextState(nextState, token) {\n if (typeof nextState === \"function\") {\n return nextState(token);\n }\n else {\n return nextState;\n }\n }\n *match(context, tests, error) {\n const n = tests.length;\n for (let i = 0; i < n; i++) {\n const [regex, nextState, tokenType] = tests[i];\n const match = regex ? context.string.match(regex) : [\"\"];\n if (match) {\n let token = null;\n if (tokenType !== false) {\n token = this.token(context, tokenType, match);\n yield token;\n }\n const state = this.evalNextState(nextState, token);\n context.consume(match, state);\n this.enter(context, state, match);\n return;\n }\n }\n const message = `failed to tokenize ${context.getTruncatedLine()}, ${error}.`;\n throw new InvalidTokenError(context.getLocation(1), message);\n }\n /**\n * Called when entering a new state.\n */\n enter(context, state, data) {\n /* script/style tags require a different content model */\n if (state === State.TAG && data && data[0].startsWith(\"<\")) {\n if (data[0] === \"<script\") {\n context.contentModel = ContentModel.SCRIPT;\n }\n else if (data[0] === \"<style\") {\n context.contentModel = ContentModel.STYLE;\n }\n else {\n context.contentModel = ContentModel.TEXT;\n }\n }\n }\n *tokenizeInitial(context) {\n yield* this.match(context, [\n [MATCH_UNICODE_BOM, State.INITIAL, TokenType.UNICODE_BOM],\n [MATCH_XML_TAG, State.INITIAL, false],\n [MATCH_DOCTYPE_OPEN, State.DOCTYPE, TokenType.DOCTYPE_OPEN],\n [MATCH_WHITESPACE, State.INITIAL, TokenType.WHITESPACE],\n [MATCH_DIRECTIVE, State.INITIAL, TokenType.DIRECTIVE],\n [MATCH_CONDITIONAL, State.INITIAL, TokenType.CONDITIONAL],\n [MATCH_COMMENT, State.INITIAL, TokenType.COMMENT],\n [false, State.TEXT, false],\n ], \"expected doctype\");\n }\n *tokenizeDoctype(context) {\n yield* this.match(context, [\n [MATCH_WHITESPACE, State.DOCTYPE, TokenType.WHITESPACE],\n [MATCH_DOCTYPE_VALUE, State.DOCTYPE, TokenType.DOCTYPE_VALUE],\n [MATCH_DOCTYPE_CLOSE, State.TEXT, TokenType.DOCTYPE_CLOSE],\n ], \"expected doctype name\");\n }\n *tokenizeTag(context) {\n function nextState(token) {\n const tagCloseToken = token;\n switch (context.contentModel) {\n case ContentModel.TEXT:\n return State.TEXT;\n case ContentModel.SCRIPT:\n if (tagCloseToken && !tagCloseToken.data[0].startsWith(\"/\")) {\n return State.SCRIPT;\n }\n else {\n return State.TEXT; /* <script/> (not legal but handle it anyway so the lexer doesn't choke on it) */\n }\n case ContentModel.STYLE:\n if (tagCloseToken && !tagCloseToken.data[0].startsWith(\"/\")) {\n return State.STYLE;\n }\n else {\n return State.TEXT; /* <style/> */\n }\n }\n }\n yield* this.match(context, [\n [MATCH_TAG_CLOSE, nextState, TokenType.TAG_CLOSE],\n [MATCH_ATTR_START, State.ATTR, TokenType.ATTR_NAME],\n [MATCH_WHITESPACE, State.TAG, TokenType.WHITESPACE],\n ], 'expected attribute, \">\" or \"/>\"');\n }\n *tokenizeAttr(context) {\n yield* this.match(context, [\n [MATCH_ATTR_SINGLE, State.TAG, TokenType.ATTR_VALUE],\n [MATCH_ATTR_DOUBLE, State.TAG, TokenType.ATTR_VALUE],\n [MATCH_ATTR_UNQUOTED, State.TAG, TokenType.ATTR_VALUE],\n [false, State.TAG, false],\n ], 'expected attribute, \">\" or \"/>\"');\n }\n *tokenizeText(context) {\n yield* this.match(context, [\n [MATCH_WHITESPACE, State.TEXT, TokenType.WHITESPACE],\n [MATCH_CDATA_BEGIN, State.CDATA, false],\n [MATCH_DIRECTIVE, State.TEXT, TokenType.DIRECTIVE],\n [MATCH_CONDITIONAL, State.TEXT, TokenType.CONDITIONAL],\n [MATCH_COMMENT, State.TEXT, TokenType.COMMENT],\n [MATCH_TEMPLATING, State.TEXT, TokenType.TEMPLATING],\n [MATCH_TAG_OPEN, State.TAG, TokenType.TAG_OPEN],\n [MATCH_TEXT, State.TEXT, TokenType.TEXT],\n [MATCH_TAG_LOOKAHEAD, State.TEXT, TokenType.TEXT],\n ], 'expected text or \"<\"');\n }\n *tokenizeCDATA(context) {\n yield* this.match(context, [[MATCH_CDATA_END, State.TEXT, false]], \"expected ]]>\");\n }\n *tokenizeScript(context) {\n yield* this.match(context, [\n [MATCH_SCRIPT_END, State.TAG, TokenType.TAG_OPEN],\n [MATCH_SCRIPT_DATA, State.SCRIPT, TokenType.SCRIPT],\n ], \"expected </script>\");\n }\n *tokenizeStyle(context) {\n yield* this.match(context, [\n [MATCH_STYLE_END, State.TAG, TokenType.TAG_OPEN],\n [MATCH_STYLE_DATA, State.STYLE, TokenType.STYLE],\n ], \"expected </style>\");\n }\n}\n//# sourceMappingURL=lexer.js.map","import { sliceLocation } from \"../context\";\nimport { TokenType } from \"../lexer\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst whitespace = /(\\s+)/;\nexport default class AttrDelimiter extends Rule {\n documentation() {\n return {\n description: `Attribute value must not be separated by whitespace.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"token\", (event) => {\n const { token } = event;\n if (token.type !== TokenType.ATTR_VALUE) {\n return;\n }\n const delimiter = token.data[1];\n const match = whitespace.exec(delimiter);\n if (match) {\n const location = sliceLocation(event.location, 0, delimiter.length);\n this.report(null, \"Attribute value must not be delimited by whitespace\", location);\n }\n });\n }\n}\n//# sourceMappingURL=attr-delimiter.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport const DEFAULT_PATTERN = \"[a-z0-9-:]+\";\nconst defaults = {\n pattern: DEFAULT_PATTERN,\n ignoreForeign: true,\n};\nfunction generateRegexp(pattern) {\n if (Array.isArray(pattern)) {\n /* eslint-disable-next-line security/detect-non-literal-regexp -- expected to be regexp */\n return new RegExp(`^(${pattern.join(\"|\")})$`, \"i\");\n }\n else {\n /* eslint-disable-next-line security/detect-non-literal-regexp -- expected to be regexp */\n return new RegExp(`^${pattern}$`, \"i\");\n }\n}\nfunction generateMessage(name, pattern) {\n if (Array.isArray(pattern)) {\n const patterns = pattern.map((it) => `/${it}/`).join(\", \");\n return `Attribute \"${name}\" should match one of [${patterns}]`;\n }\n else {\n return `Attribute \"${name}\" should match /${pattern}/`;\n }\n}\nfunction generateDescription(name, pattern) {\n if (Array.isArray(pattern)) {\n return [\n `Attribute \"${name}\" should match one of the configured regular expressions:`,\n \"\",\n ...pattern.map((it) => `- \\`/${it}/\\``),\n ].join(\"\\n\");\n }\n else {\n return `Attribute \"${name}\" should match the regular expression \\`/${pattern}/\\``;\n }\n}\nexport default class AttrPattern extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.pattern = generateRegexp(this.options.pattern);\n }\n static schema() {\n return {\n pattern: {\n oneOf: [{ type: \"array\", items: { type: \"string\" }, minItems: 1 }, { type: \"string\" }],\n },\n ignoreForeign: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n let description;\n if (context) {\n description = generateDescription(context.attr, context.pattern);\n }\n else {\n description = `Attribute should match configured pattern`;\n }\n return {\n description,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n if (this.isIgnored(event.target)) {\n return;\n }\n /* ignore case for dynamic attributes, the original attributes will be\n * checked instead (this prevents duplicated errors for the same source\n * attribute) */\n if (event.originalAttribute) {\n return;\n }\n if (this.pattern.test(event.key)) {\n return;\n }\n const message = generateMessage(event.key, this.options.pattern);\n this.report(event.target, message, event.keyLocation);\n });\n }\n isIgnored(node) {\n if (this.options.ignoreForeign) {\n return Boolean(node.meta && node.meta.foreign);\n }\n else {\n return false;\n }\n }\n}\n//# sourceMappingURL=attr-pattern.js.map","import { ConfigError } from \"../config/error\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nvar QuoteStyle;\n(function (QuoteStyle) {\n QuoteStyle[\"SINGLE_QUOTE\"] = \"'\";\n QuoteStyle[\"DOUBLE_QUOTE\"] = \"\\\"\";\n QuoteStyle[\"AUTO_QUOTE\"] = \"auto\";\n QuoteStyle[\"ANY_QUOTE\"] = \"any\";\n})(QuoteStyle || (QuoteStyle = {}));\nconst defaults = {\n style: \"auto\",\n unquoted: false,\n};\nfunction describeError(context) {\n if (context) {\n switch (context.error) {\n case \"style\":\n return `Attribute \\`${context.attr}\\` must use \\`${context.expected}\\` instead of \\`${context.actual}\\`.`;\n case \"unquoted\":\n return `Attribute \\`${context.attr}\\` must not be unquoted.`;\n }\n }\n else {\n return \"This attribute is not quoted properly.\";\n }\n}\nfunction describeStyle(style, unquoted) {\n const description = [];\n switch (style) {\n case QuoteStyle.AUTO_QUOTE:\n description.push(\"- quoted with double quotes `\\\"` unless the value contains double quotes in which case single quotes `'` should be used instead\");\n break;\n case QuoteStyle.ANY_QUOTE:\n description.push(\"- quoted with single quotes `'`\");\n description.push('- quoted with double quotes `\"`');\n break;\n case QuoteStyle.SINGLE_QUOTE:\n case QuoteStyle.DOUBLE_QUOTE: {\n const name = style === QuoteStyle.SINGLE_QUOTE ? \"single\" : \"double\";\n description.push(`- quoted with ${name} quotes \\`${style}\\``);\n break;\n }\n }\n if (unquoted) {\n description.push(\"- unquoted (if applicable)\");\n }\n return `${description.join(\" or\\n\")}\\n`;\n}\nexport default class AttrQuotes extends Rule {\n static schema() {\n return {\n style: {\n enum: [\"auto\", \"double\", \"single\", \"any\"],\n type: \"string\",\n },\n unquoted: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n const { style } = this;\n const { unquoted } = this.options;\n const description = [\n describeError(context),\n \"\",\n \"Under the current configuration attributes must be:\",\n \"\",\n describeStyle(style, unquoted),\n ];\n return {\n description: description.join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n constructor(options) {\n super({ ...defaults, ...options });\n this.style = parseStyle(this.options.style);\n }\n setup() {\n this.on(\"attr\", (event) => {\n /* ignore attributes with no value */\n if (event.value === null) {\n return;\n }\n if (!event.quote) {\n if (!this.options.unquoted) {\n const message = `Attribute \"${event.key}\" using unquoted value`;\n const context = {\n error: \"unquoted\",\n attr: event.key,\n };\n this.report(event.target, message, null, context);\n }\n return;\n }\n /* if the style is set to any we skip the rest of the rule as the only\n * thing that matters is if the \"unquoted\" options triggers an error or\n * not */\n if (this.style === QuoteStyle.ANY_QUOTE) {\n return;\n }\n const expected = this.resolveQuotemark(event.value.toString(), this.style);\n if (event.quote !== expected) {\n const message = `Attribute \"${event.key}\" used ${event.quote} instead of expected ${expected}`;\n const context = {\n error: \"style\",\n attr: event.key,\n actual: event.quote,\n expected,\n };\n this.report(event.target, message, null, context);\n }\n });\n }\n resolveQuotemark(value, style) {\n if (style === QuoteStyle.AUTO_QUOTE) {\n return value.includes('\"') ? \"'\" : '\"';\n }\n else {\n return style;\n }\n }\n}\nfunction parseStyle(style) {\n switch (style.toLowerCase()) {\n case \"auto\":\n return QuoteStyle.AUTO_QUOTE;\n case \"double\":\n return QuoteStyle.DOUBLE_QUOTE;\n case \"single\":\n return QuoteStyle.SINGLE_QUOTE;\n case \"any\":\n return QuoteStyle.ANY_QUOTE;\n /* istanbul ignore next: covered by schema validation */\n default:\n throw new ConfigError(`Invalid style \"${style}\" for \"attr-quotes\" rule`);\n }\n}\n//# sourceMappingURL=attr-quotes.js.map","import { TokenType } from \"../lexer\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class AttrSpacing extends Rule {\n documentation() {\n return {\n description: `No space between attributes. At least one whitespace character (commonly space) must be used to separate attributes.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n let previousToken;\n this.on(\"token\", (event) => {\n if (event.type === TokenType.ATTR_NAME && previousToken !== TokenType.WHITESPACE) {\n this.report(null, \"No space between attributes\", event.location);\n }\n previousToken = event.type;\n });\n }\n}\n//# sourceMappingURL=attr-spacing.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction pick(attr) {\n const result = {};\n if (typeof attr.enum !== \"undefined\") {\n result.enum = attr.enum;\n }\n if (typeof attr.boolean !== \"undefined\") {\n result.boolean = attr.boolean;\n }\n return result;\n}\nexport default class AttributeAllowedValues extends Rule {\n documentation(context) {\n const docs = {\n description: \"Attribute has invalid value.\",\n url: ruleDocumentationUrl(__filename),\n };\n if (!context) {\n return docs;\n }\n const { allowed, attribute, element, value } = context;\n if (allowed.enum) {\n const allowedList = allowed.enum.map((value) => {\n if (typeof value === \"string\") {\n return `- \\`\"${value}\"\\``;\n }\n else {\n return `- \\`${value.toString()}\\``;\n }\n });\n docs.description = [\n `The \\`<${element}>\\` element does not allow the attribute \\`${attribute}\\` to have the value \\`\"${value}\"\\`.`,\n \"\",\n \"It must match one of the following:\",\n \"\",\n ...allowedList,\n ].join(\"\\n\");\n }\n else if (allowed.boolean) {\n docs.description = `The \\`<${context.element}>\\` attribute \\`${context.attribute}\\` must be a boolean attribute, e.g. \\`<${context.element} ${context.attribute}>\\``;\n }\n return docs;\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n const meta = node.meta;\n /* ignore rule if element has no meta or meta does not specify attribute\n * allowed values */\n if (!(meta === null || meta === void 0 ? void 0 : meta.attributes))\n return;\n for (const attr of node.attributes) {\n if (Validator.validateAttribute(attr, meta.attributes)) {\n continue;\n }\n const value = attr.value ? attr.value.toString() : \"\";\n const context = {\n element: node.tagName,\n attribute: attr.key,\n value,\n allowed: pick(meta.attributes[attr.key]),\n };\n const message = this.getMessage(attr);\n const location = this.getLocation(attr);\n this.report(node, message, location, context);\n }\n });\n });\n }\n getMessage(attr) {\n const { key, value } = attr;\n if (value !== null) {\n return `Attribute \"${key}\" has invalid value \"${value.toString()}\"`;\n }\n else {\n return `Attribute \"${key}\" is missing value`;\n }\n }\n getLocation(attr) {\n if (attr.value !== null) {\n return attr.valueLocation;\n }\n else {\n return attr.keyLocation;\n }\n }\n}\n//# sourceMappingURL=attribute-allowed-values.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n style: \"omit\",\n};\nexport default class AttributeBooleanStyle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.hasInvalidStyle = parseStyle(this.options.style);\n }\n static schema() {\n return {\n style: {\n enum: [\"empty\", \"name\", \"omit\"],\n type: \"string\",\n },\n };\n }\n documentation() {\n return {\n description: \"Require a specific style when writing boolean attributes.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n const meta = node.meta;\n /* ignore rule if element has no meta or meta does not specify attribute\n * allowed values */\n if (!(meta === null || meta === void 0 ? void 0 : meta.attributes))\n return;\n /* check all boolean attributes */\n for (const attr of node.attributes) {\n if (!this.isBoolean(attr, meta.attributes))\n continue;\n /* ignore attribute if it is aliased by a dynamic value,\n * e.g. ng-required or v-bind:required, since it will probably have a\n * value despite the target attribute is a boolean. The framework is\n * assumed to handle it properly */\n if (attr.originalAttribute) {\n continue;\n }\n if (this.hasInvalidStyle(attr)) {\n this.report(node, reportMessage(attr, this.options.style), attr.keyLocation);\n }\n }\n });\n });\n }\n isBoolean(attr, rules) {\n var _a;\n return Boolean((_a = rules[attr.key]) === null || _a === void 0 ? void 0 : _a.boolean);\n }\n}\nfunction parseStyle(style) {\n switch (style.toLowerCase()) {\n case \"omit\":\n return (attr) => attr.value !== null;\n case \"empty\":\n return (attr) => attr.value !== \"\";\n case \"name\":\n return (attr) => attr.value !== attr.key;\n /* istanbul ignore next: covered by schema validation */\n default:\n throw new Error(`Invalid style \"${style}\" for \"attribute-boolean-style\" rule`);\n }\n}\nfunction reportMessage(attr, style) {\n const key = attr.key;\n switch (style.toLowerCase()) {\n case \"omit\":\n return `Attribute \"${key}\" should omit value`;\n case \"empty\":\n return `Attribute \"${key}\" value should be empty string`;\n case \"name\":\n return `Attribute \"${key}\" should be set to ${key}=\"${key}\"`;\n }\n /* istanbul ignore next: the above switch should cover all cases */\n return \"\";\n}\n//# sourceMappingURL=attribute-boolean-style.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n style: \"omit\",\n};\nexport default class AttributeEmptyStyle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.hasInvalidStyle = parseStyle(this.options.style);\n }\n static schema() {\n return {\n style: {\n enum: [\"empty\", \"omit\"],\n type: \"string\",\n },\n };\n }\n documentation() {\n return {\n description: \"Require a specific style for attributes with empty values.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n const meta = node.meta;\n /* ignore rule if element has no meta or meta does not specify attribute\n * allowed values */\n if (!(meta === null || meta === void 0 ? void 0 : meta.attributes))\n return;\n /* check all boolean attributes */\n for (const attr of node.attributes) {\n /* only handle attributes which allows empty values */\n if (!allowsEmpty(attr, meta.attributes)) {\n continue;\n }\n /* skip attribute if the attribute is set to non-empty value\n * (attribute-allowed-values deals with non-empty values)*/\n if (!isEmptyValue(attr)) {\n continue;\n }\n /* skip attribute if the style is valid */\n if (!this.hasInvalidStyle(attr)) {\n continue;\n }\n /* report error */\n this.report(node, reportMessage(attr, this.options.style), attr.keyLocation);\n }\n });\n });\n }\n}\nfunction allowsEmpty(attr, rules) {\n var _a;\n return Boolean((_a = rules[attr.key]) === null || _a === void 0 ? void 0 : _a.omit);\n}\nfunction isEmptyValue(attr) {\n /* dynamic values are ignored, assumed to contain a value */\n if (attr.isDynamic) {\n return false;\n }\n return attr.value === null || attr.value === \"\";\n}\nfunction parseStyle(style) {\n switch (style.toLowerCase()) {\n case \"omit\":\n return (attr) => attr.value !== null;\n case \"empty\":\n return (attr) => attr.value !== \"\";\n /* istanbul ignore next: covered by schema validation */\n default:\n throw new Error(`Invalid style \"${style}\" for \"attribute-empty-style\" rule`);\n }\n}\nfunction reportMessage(attr, style) {\n const key = attr.key;\n switch (style.toLowerCase()) {\n case \"omit\":\n return `Attribute \"${key}\" should omit value`;\n case \"empty\":\n return `Attribute \"${key}\" value should be empty string`;\n }\n /* istanbul ignore next: the above switch should cover all cases */\n return \"\";\n}\n//# sourceMappingURL=attribute-empty-style.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction ruleDescription(context) {\n if (context) {\n const { attr, details } = context;\n return `The \"${attr}\" attribute cannot be used in this context: ${details}`;\n }\n else {\n return \"This attribute cannot be used in this context.\";\n }\n}\nexport default class AttributeMisuse extends Rule {\n documentation(context) {\n return {\n description: ruleDescription(context),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", (event) => {\n const { target } = event;\n const { meta } = target;\n if (!meta) {\n return;\n }\n for (const attr of target.attributes) {\n const key = attr.key.toLowerCase();\n this.validateAttr(target, attr, meta.attributes[key]);\n }\n });\n }\n validateAttr(node, attr, meta) {\n if (!(meta === null || meta === void 0 ? void 0 : meta.allowed)) {\n return;\n }\n const details = meta.allowed(node._adapter, attr.value);\n if (details) {\n this.report({\n node,\n message: `\"{{ attr }}\" attribute cannot be used in this context: {{ details }}`,\n location: attr.keyLocation,\n context: {\n attr: attr.key,\n details,\n },\n });\n }\n }\n}\n//# sourceMappingURL=attribute-misuse.js.map","export function parsePattern(pattern) {\n switch (pattern) {\n case \"kebabcase\":\n return /^[a-z0-9-]+$/;\n case \"camelcase\":\n return /^[a-z][a-zA-Z0-9]+$/;\n case \"underscore\":\n return /^[a-z0-9_]+$/;\n default:\n /* eslint-disable-next-line security/detect-non-literal-regexp -- expected to be regexp */\n return new RegExp(pattern);\n }\n}\nexport function describePattern(pattern) {\n const regexp = parsePattern(pattern).toString();\n switch (pattern) {\n case \"kebabcase\":\n case \"camelcase\":\n case \"underscore\": {\n return `${regexp} (${pattern})`;\n }\n default:\n return regexp;\n }\n}\n//# sourceMappingURL=pattern.js.map","import { DOMTokenList } from \"../dom\";\nimport { describePattern, parsePattern } from \"../pattern\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n pattern: \"kebabcase\",\n};\nexport default class ClassPattern extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.pattern = parsePattern(this.options.pattern);\n }\n static schema() {\n return {\n pattern: {\n type: \"string\",\n },\n };\n }\n documentation() {\n const pattern = describePattern(this.options.pattern);\n return {\n description: `For consistency all classes are required to match the pattern ${pattern}.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n if (event.key.toLowerCase() !== \"class\") {\n return;\n }\n const classes = new DOMTokenList(event.value, event.valueLocation);\n classes.forEach((cur, index) => {\n if (!cur.match(this.pattern)) {\n const location = classes.location(index);\n const pattern = this.pattern.toString();\n const message = `Class \"${cur}\" does not match required pattern \"${pattern}\"`;\n this.report(event.target, message, location);\n }\n });\n });\n }\n}\n//# sourceMappingURL=class-pattern.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class CloseAttr extends Rule {\n documentation() {\n return {\n description: \"HTML disallows end tags to have attributes.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n /* handle unclosed tags */\n if (!event.target) {\n return;\n }\n /* ignore self-closed and void */\n if (event.previous === event.target) {\n return;\n }\n const node = event.target;\n if (Object.keys(node.attributes).length > 0) {\n const first = node.attributes[0];\n this.report(null, \"Close tags cannot have attributes\", first.keyLocation);\n }\n });\n }\n}\n//# sourceMappingURL=close-attr.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class CloseOrder extends Rule {\n documentation() {\n return {\n description: \"HTML requires elements to be closed in the same order as they were opened.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const current = event.target; // The current element being closed\n const active = event.previous; // The current active element (that is, the current element on the stack)\n /* handle unclosed tags */\n if (!current) {\n this.report(null, `Missing close-tag, expected '</${active.tagName}>' but document ended before it was found.`, event.location);\n return;\n }\n /* void elements are always closed in correct order but if the markup contains\n * an end-tag for it it should be ignored here since the void element is\n * implicitly closed in the right order, so the current active element is the\n * parent. */\n if (current.voidElement) {\n return;\n }\n /* if the active element is implicitly closed when the parent is closed\n * (such as a <li> by </ul>) no error should be reported. */\n if (active.closed === NodeClosed.ImplicitClosed) {\n return;\n }\n /* handle unopened tags */\n if (!active || active.isRootElement()) {\n const location = {\n filename: current.location.filename,\n line: current.location.line,\n column: current.location.column,\n offset: current.location.offset,\n size: current.tagName.length + 1,\n };\n this.report(null, \"Unexpected close-tag, expected opening tag.\", location);\n return;\n }\n /* check for matching tagnames */\n if (current.tagName !== active.tagName) {\n this.report(null, `Mismatched close-tag, expected '</${active.tagName}>' but found '</${current.tagName}>'.`, current.location);\n }\n });\n }\n}\n//# sourceMappingURL=close-order.js.map","import { sliceLocation } from \"../context\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n include: null,\n exclude: null,\n};\nexport default class Deprecated extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n };\n }\n documentation(context) {\n const doc = {\n description: \"This element is deprecated and should not be used in new code.\",\n url: ruleDocumentationUrl(__filename),\n };\n if (context) {\n const text = [];\n if (context.source) {\n const source = prettySource(context.source);\n const message = `The \\`<$tagname>\\` element is deprecated ${source} and should not be used in new code.`;\n text.push(message);\n }\n else {\n const message = `The \\`<$tagname>\\` element is deprecated and should not be used in new code.`;\n text.push(message);\n }\n if (context.documentation) {\n text.push(context.documentation);\n }\n doc.description = text.map((cur) => cur.replace(/\\$tagname/g, context.tagName)).join(\"\\n\\n\");\n }\n return doc;\n }\n setup() {\n this.on(\"tag:start\", (event) => {\n const node = event.target;\n /* cannot validate if meta isn't known */\n if (node.meta === null) {\n return;\n }\n /* ignore if element is not deprecated */\n const deprecated = node.meta.deprecated;\n if (!deprecated) {\n return;\n }\n /* ignore if element is ignored by used configuration */\n if (this.isKeywordIgnored(node.tagName)) {\n return;\n }\n const location = sliceLocation(event.location, 1);\n if (typeof deprecated === \"string\") {\n this.reportString(deprecated, node, location);\n }\n else if (typeof deprecated === \"boolean\") {\n this.reportBoolean(node, location);\n }\n else {\n this.reportObject(deprecated, node, location);\n }\n });\n }\n reportString(deprecated, node, location) {\n const context = { tagName: node.tagName };\n const message = `<${node.tagName}> is deprecated: ${deprecated}`;\n this.report(node, message, location, context);\n }\n reportBoolean(node, location) {\n const context = { tagName: node.tagName };\n const message = `<${node.tagName}> is deprecated`;\n this.report(node, message, location, context);\n }\n reportObject(deprecated, node, location) {\n const context = { ...deprecated, tagName: node.tagName };\n const notice = deprecated.message ? `: ${deprecated.message}` : \"\";\n const message = `<${node.tagName}> is deprecated${notice}`;\n this.report(node, message, location, context);\n }\n}\nfunction prettySource(source) {\n const match = source.match(/html(\\d)(\\d)?/);\n if (match) {\n const [, ...parts] = match;\n const version = parts.filter(Boolean).join(\".\");\n return `in HTML ${version}`;\n }\n switch (source) {\n case \"whatwg\":\n return \"in HTML Living Standard\";\n case \"non-standard\":\n return \"and non-standard\";\n default:\n return `by ${source}`;\n }\n}\n//# sourceMappingURL=deprecated.js.map","import { Severity } from \"../config/severity\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class DeprecatedRule extends Rule {\n documentation(context) {\n const preamble = context ? `The rule \"${context}\"` : \"This rule\";\n return {\n description: `${preamble} is deprecated and should not be used any longer, consult documentation for further information.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"config:ready\", (event) => {\n for (const rule of this.getDeprecatedRules(event)) {\n if (rule.getSeverity() > Severity.DISABLED) {\n this.report(null, `Usage of deprecated rule \"${rule.name}\"`, null, rule.name);\n }\n }\n });\n }\n getDeprecatedRules(event) {\n const rules = Object.values(event.rules);\n return rules.filter((rule) => rule.deprecated);\n }\n}\n//# sourceMappingURL=deprecated-rule.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoStyleTag extends Rule {\n documentation() {\n return {\n description: [\n 'HTML5 documents should use the \"html\" doctype (short `form`, not legacy string):',\n \"\",\n \"```html\",\n \"<!DOCTYPE html>\",\n \"```\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"doctype\", (event) => {\n const doctype = event.value.toLowerCase();\n if (doctype !== \"html\") {\n this.report(null, 'doctype should be \"html\"', event.valueLocation);\n }\n });\n }\n}\n//# sourceMappingURL=doctype-html.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n style: \"uppercase\",\n};\nexport default class DoctypeStyle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n style: {\n enum: [\"lowercase\", \"uppercase\"],\n type: \"string\",\n },\n };\n }\n documentation(context) {\n const doc = {\n description: `While DOCTYPE is case-insensitive in the standard the current configuration requires a specific style.`,\n url: ruleDocumentationUrl(__filename),\n };\n if (context) {\n doc.description = `While DOCTYPE is case-insensitive in the standard the current configuration requires it to be ${context.style}`;\n }\n return doc;\n }\n setup() {\n this.on(\"doctype\", (event) => {\n if (this.options.style === \"uppercase\" && event.tag !== \"DOCTYPE\") {\n this.report(null, \"DOCTYPE should be uppercase\", event.location, this.options);\n }\n if (this.options.style === \"lowercase\" && event.tag !== \"doctype\") {\n this.report(null, \"DOCTYPE should be lowercase\", event.location, this.options);\n }\n });\n }\n}\n//# sourceMappingURL=doctype-style.js.map","import { sliceLocation } from \"../context\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { CaseStyle } from \"./helper/case-style\";\nconst defaults = {\n style: \"lowercase\",\n};\nexport default class ElementCase extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.style = new CaseStyle(this.options.style, \"element-case\");\n }\n static schema() {\n const styleEnum = [\"lowercase\", \"uppercase\", \"pascalcase\", \"camelcase\"];\n return {\n style: {\n anyOf: [\n {\n enum: styleEnum,\n type: \"string\",\n },\n {\n items: {\n enum: styleEnum,\n type: \"string\",\n },\n type: \"array\",\n },\n ],\n },\n };\n }\n documentation() {\n const { style } = this.options;\n return {\n description: Array.isArray(style)\n ? [`Element tagname must be in one of:`, \"\", ...style.map((it) => `- ${it}`)].join(\"\\n\")\n : `Element tagname must be in ${style}.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:start\", (event) => {\n const { target, location } = event;\n this.validateCase(target, location);\n });\n this.on(\"tag:end\", (event) => {\n const { target, previous } = event;\n this.validateMatchingCase(previous, target);\n });\n }\n validateCase(target, targetLocation) {\n const letters = target.tagName.replace(/[^a-z]+/gi, \"\");\n if (!this.style.match(letters)) {\n const location = sliceLocation(targetLocation, 1);\n this.report(target, `Element \"${target.tagName}\" should be ${this.style.name}`, location);\n }\n }\n validateMatchingCase(start, end) {\n /* handle when elements have have missing start or end tag */\n if (!start || !end || !start.tagName || !end.tagName) {\n return;\n }\n /* only check case if the names are a lowercase match to each other or it\n * will yield false positives when elements are closed in wrong order or\n * otherwise mismatched */\n if (start.tagName.toLowerCase() !== end.tagName.toLowerCase()) {\n return;\n }\n if (start.tagName !== end.tagName) {\n this.report(start, \"Start and end tag must not differ in casing\", end.location);\n }\n }\n}\n//# sourceMappingURL=element-case.js.map","import { sliceLocation } from \"../context\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n pattern: \"^[a-z][a-z0-9\\\\-._]*-[a-z0-9\\\\-._]*$\",\n whitelist: [],\n blacklist: [],\n};\nexport default class ElementName extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n /* eslint-disable-next-line security/detect-non-literal-regexp -- expected to be a regexp */\n this.pattern = new RegExp(this.options.pattern);\n }\n static schema() {\n return {\n blacklist: {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n pattern: {\n type: \"string\",\n },\n whitelist: {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n };\n }\n documentation(context) {\n return {\n description: this.documentationMessages(context).join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n documentationMessages(context) {\n if (!context) {\n return [\"This is not a valid element name.\"];\n }\n if (context.blacklist.includes(context.tagName)) {\n return [\n `<${context.tagName}> is blacklisted by the project configuration.`,\n \"\",\n \"The following names are blacklisted:\",\n ...context.blacklist.map((cur) => `- ${cur}`),\n ];\n }\n if (context.pattern !== defaults.pattern) {\n return [\n `<${context.tagName}> is not a valid element name. This project is configured to only allow names matching the following regular expression:`,\n \"\",\n `- \\`${context.pattern}\\``,\n ];\n }\n return [\n `<${context.tagName}> is not a valid element name. If this is a custom element HTML requires the name to follow these rules:`,\n \"\",\n \"- The name must begin with `a-z`\",\n \"- The name must include a hyphen `-`\",\n \"- It may include alphanumerical characters `a-z0-9` or hyphens `-`, dots `.` or underscores `_`.\",\n ];\n }\n setup() {\n const xmlns = /^(.+):.+$/;\n this.on(\"tag:start\", (event) => {\n const target = event.target;\n const tagName = target.tagName;\n const location = sliceLocation(event.location, 1);\n const context = {\n tagName,\n pattern: this.options.pattern,\n blacklist: this.options.blacklist,\n };\n /* check if element is blacklisted */\n if (this.options.blacklist.includes(tagName)) {\n this.report(target, `<${tagName}> element is blacklisted`, location, context);\n }\n /* assume that an element with meta has valid name as it is a builtin\n * element */\n if (target.meta) {\n return;\n }\n /* ignore elements in xml namespaces, they should be validated against a\n * DTD instead */\n if (tagName.match(xmlns)) {\n return;\n }\n /* check if element is whitelisted */\n if (this.options.whitelist.includes(tagName)) {\n return;\n }\n if (!tagName.match(this.pattern)) {\n this.report(target, `<${tagName}> is not a valid element name`, location, context);\n }\n });\n }\n}\n//# sourceMappingURL=element-name.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport var ErrorKind;\n(function (ErrorKind) {\n ErrorKind[\"CONTENT\"] = \"content\";\n ErrorKind[\"DESCENDANT\"] = \"descendant\";\n})(ErrorKind || (ErrorKind = {}));\nfunction getTransparentChildren(node, transparent) {\n if (typeof transparent === \"boolean\") {\n return node.childElements;\n }\n else {\n /* only return children which matches one of the given content categories */\n return node.childElements.filter((it) => {\n return transparent.some((category) => {\n return Validator.validatePermittedCategory(it, category, false);\n });\n });\n }\n}\nfunction getRuleDescription(context) {\n if (!context) {\n return [\n \"Some elements has restrictions on what content is allowed.\",\n \"This can include both direct children or descendant elements.\",\n ];\n }\n switch (context.kind) {\n case ErrorKind.CONTENT:\n return [\n `The \\`${context.child}\\` element is not permitted as content under the parent \\`${context.parent}\\` element.`,\n ];\n case ErrorKind.DESCENDANT:\n return [\n `The \\`${context.child}\\` element is not permitted as a descendant of the \\`${context.ancestor}\\` element.`,\n ];\n }\n}\nexport default class ElementPermittedContent extends Rule {\n documentation(context) {\n return {\n description: getRuleDescription(context).join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n const parent = node.parent;\n /* istanbul ignore next: satisfy typescript but will visitDepthFirst()\n * will not yield nodes without a parent */\n if (!parent) {\n return;\n }\n /* Run each validation step, stop as soon as any errors are\n * reported. This is to prevent multiple similar errors on the same\n * element, such as \"<dd> is not permitted content under <span>\" and\n * \"<dd> has no permitted ancestors\". */\n [\n () => this.validatePermittedContent(node, parent),\n () => this.validatePermittedDescendant(node, parent),\n ].some((fn) => fn());\n });\n });\n }\n validatePermittedContent(cur, parent) {\n var _a;\n /* if parent doesn't have metadata (unknown element) skip checking permitted\n * content */\n if (!parent.meta) {\n return false;\n }\n const rules = (_a = parent.meta.permittedContent) !== null && _a !== void 0 ? _a : null;\n return this.validatePermittedContentImpl(cur, parent, rules);\n }\n validatePermittedContentImpl(cur, parent, rules) {\n if (!Validator.validatePermitted(cur, rules)) {\n const child = `<${cur.tagName}>`;\n const message = `${child} element is not permitted as content under ${parent.annotatedName}`;\n const context = {\n kind: ErrorKind.CONTENT,\n parent: parent.annotatedName,\n child,\n };\n this.report(cur, message, null, context);\n return true;\n }\n /* for transparent elements all/listed children must be validated against\n * the (this elements) parent, i.e. if this node was removed from the DOM it\n * should still be valid. */\n if (cur.meta && cur.meta.transparent) {\n const children = getTransparentChildren(cur, cur.meta.transparent);\n return children\n .map((child) => {\n return this.validatePermittedContentImpl(child, parent, rules);\n })\n .some(Boolean);\n }\n return false;\n }\n validatePermittedDescendant(node, parent) {\n var _a;\n for (let cur = parent; cur && !cur.isRootElement(); cur = /* istanbul ignore next */ (_a = cur === null || cur === void 0 ? void 0 : cur.parent) !== null && _a !== void 0 ? _a : null) {\n const meta = cur.meta;\n /* ignore checking parent without meta */\n if (!meta) {\n continue;\n }\n const rules = meta.permittedDescendants;\n if (!rules) {\n continue;\n }\n if (Validator.validatePermitted(node, rules)) {\n continue;\n }\n const child = `<${node.tagName}>`;\n const ancestor = cur.annotatedName;\n const message = `${child} element is not permitted as a descendant of ${ancestor}`;\n const context = {\n kind: ErrorKind.DESCENDANT,\n ancestor,\n child,\n };\n this.report(node, message, null, context);\n return true;\n }\n return false;\n }\n}\n//# sourceMappingURL=element-permitted-content.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class ElementPermittedOccurrences extends Rule {\n documentation() {\n return {\n description: \"Some elements may only be used a fixed amount of times in given context.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n if (!(node === null || node === void 0 ? void 0 : node.meta)) {\n return;\n }\n const rules = node.meta.permittedContent;\n if (!rules) {\n return;\n }\n Validator.validateOccurrences(node.childElements, rules, (child, category) => {\n this.report(child, `Element <${category}> can only appear once under ${node.annotatedName}`);\n });\n });\n });\n }\n}\n//# sourceMappingURL=element-permitted-occurrences.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class ElementPermittedOrder extends Rule {\n documentation() {\n return {\n description: \"Some elements has a specific order the children must use.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n if (!node.meta) {\n return;\n }\n const rules = node.meta.permittedOrder;\n if (!rules) {\n return;\n }\n Validator.validateOrder(node.childElements, rules, (child, prev) => {\n this.report(child, `Element <${child.tagName}> must be used before <${prev.tagName}> in this context`);\n });\n });\n });\n }\n}\n//# sourceMappingURL=element-permitted-order.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { naturalJoin } from \"../utils/natural-join\";\nfunction isCategoryOrTag(value) {\n return typeof value === \"string\";\n}\nfunction isCategory(value) {\n return value.startsWith(\"@\");\n}\nfunction formatCategoryOrTag(value) {\n return isCategory(value) ? value.slice(1) : `<${value}>`;\n}\nfunction isFormattable(rules) {\n return rules.length > 0 && rules.every(isCategoryOrTag);\n}\nfunction getRuleDescription(context) {\n if (!context) {\n return [\"Some elements has restrictions on what parents are allowed.\"];\n }\n const { child, parent, rules } = context;\n const preamble = `The \\`${child}\\` element cannot have a \\`${parent}\\` element as parent.`;\n if (isFormattable(rules)) {\n const allowed = rules.filter(isCategoryOrTag).map((it) => {\n if (isCategory(it)) {\n return `- any ${it.slice(1)} element`;\n }\n else {\n return `- \\`<${it}>\\``;\n }\n });\n return [preamble, \"\", \"Allowed parents one of:\", \"\", ...allowed];\n }\n else {\n return [preamble];\n }\n}\nfunction formatMessage(node, parent, rules) {\n const nodeName = node.annotatedName;\n const parentName = parent.annotatedName;\n if (!isFormattable(rules)) {\n return `${nodeName} element cannot have ${parentName} element as parent`;\n }\n const allowed = naturalJoin(rules.filter(isCategoryOrTag).map(formatCategoryOrTag));\n return `${nodeName} element requires a ${allowed} element as parent`;\n}\nexport default class ElementPermittedParent extends Rule {\n documentation(context) {\n return {\n description: getRuleDescription(context).join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n var _a;\n const parent = node.parent;\n /* istanbul ignore next: satisfy typescript but will visitDepthFirst()\n * will not yield nodes without a parent */\n if (!parent) {\n return;\n }\n /* don't validate root element as the <html> and <body> tag is optional\n * so anything could be directly under the root element. */\n if (parent.isRootElement()) {\n return;\n }\n /* when the parent element is the same as the current element we ignore\n * this rule and let `element-permitted-content` handle it as it will\n * create a lot of duplicate errors otherwise */\n if (parent.tagName === node.tagName) {\n return;\n }\n /* if parent doesn't have metadata (unknown element) skip checking permitted\n * content */\n const rules = (_a = node.meta) === null || _a === void 0 ? void 0 : _a.permittedParent;\n if (!rules) {\n return false;\n }\n if (Validator.validatePermitted(parent, rules)) {\n return;\n }\n const message = formatMessage(node, parent, rules);\n const context = {\n parent: parent.annotatedName,\n child: node.annotatedName,\n rules,\n };\n this.report(node, message, null, context);\n });\n });\n }\n}\n//# sourceMappingURL=element-permitted-parent.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { naturalJoin } from \"../utils/natural-join\";\nfunction isTagnameOnly(value) {\n return Boolean(value.match(/^[a-zA-Z0-9-]+$/));\n}\nfunction getRuleDescription(context) {\n if (!context) {\n return [\n \"Some elements has restrictions on what content is allowed.\",\n \"This can include both direct children or descendant elements.\",\n ];\n }\n const escaped = context.ancestor.map((it) => `\\`${it}\\``);\n return [`The \\`${context.child}\\` element requires a ${naturalJoin(escaped)} ancestor.`];\n}\nexport default class ElementRequiredAncestor extends Rule {\n documentation(context) {\n return {\n description: getRuleDescription(context).join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n const parent = node.parent;\n /* istanbul ignore next: satisfy typescript but will visitDepthFirst()\n * will not yield nodes without a parent */\n if (!parent) {\n return;\n }\n this.validateRequiredAncestors(node);\n });\n });\n }\n validateRequiredAncestors(node) {\n if (!node.meta) {\n return;\n }\n const rules = node.meta.requiredAncestors;\n if (!rules) {\n return;\n }\n if (Validator.validateAncestors(node, rules)) {\n return;\n }\n const ancestor = rules.map((it) => (isTagnameOnly(it) ? `<${it}>` : `\"${it}\"`));\n const child = `<${node.tagName}>`;\n const message = `<${node.tagName}> element requires a ${naturalJoin(ancestor)} ancestor`;\n const context = {\n ancestor,\n child,\n };\n this.report(node, message, null, context);\n }\n}\n//# sourceMappingURL=element-required-ancestor.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class ElementRequiredAttributes extends Rule {\n documentation(context) {\n const docs = {\n description: \"Element is missing a required attribute\",\n url: ruleDocumentationUrl(__filename),\n };\n if (context) {\n docs.description = `The <${context.element}> element is required to have a \"${context.attribute}\" attribute.`;\n }\n return docs;\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.previous;\n const meta = node.meta;\n /* handle missing metadata and missing attributes */\n if (!(meta === null || meta === void 0 ? void 0 : meta.attributes)) {\n return;\n }\n for (const [key, attr] of Object.entries(meta.attributes)) {\n if (!attr.required) {\n continue;\n }\n if (node.hasAttribute(key))\n continue;\n const context = {\n element: node.tagName,\n attribute: key,\n };\n this.report(node, `${node.annotatedName} is missing required \"${key}\" attribute`, node.location, context);\n }\n });\n }\n}\n//# sourceMappingURL=element-required-attributes.js.map","import { Validator } from \"../meta\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction isCategory(value) {\n return value.startsWith(\"@\");\n}\nexport default class ElementRequiredContent extends Rule {\n documentation(context) {\n if (context) {\n const { element, missing } = context;\n return {\n description: `The \\`${element}\\` element requires a \\`${missing}\\` to be present as content.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n else {\n return {\n description: \"Some elements has requirements on content that must be present.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n doc.visitDepthFirst((node) => {\n /* if element doesn't have metadata (unknown element) skip checking\n * required content */\n if (!node.meta) {\n return;\n }\n const rules = node.meta.requiredContent;\n if (!rules) {\n return;\n }\n for (const missing of Validator.validateRequiredContent(node, rules)) {\n const context = {\n element: node.annotatedName,\n missing: `<${missing}>`,\n };\n const tag = isCategory(missing) ? `${missing.slice(1)} element` : `<${missing}>`;\n const message = `${node.annotatedName} element must have ${tag} as content`;\n this.report(node, message, null, context);\n }\n });\n });\n }\n}\n//# sourceMappingURL=element-required-content.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { hasAltText } from \"./helper\";\nimport { classifyNodeText, TextClassification } from \"./helper/text\";\nconst selector = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].join(\",\");\nfunction hasImgAltText(node) {\n if (node.is(\"img\")) {\n return hasAltText(node);\n }\n else if (node.is(\"svg\")) {\n return node.textContent.trim() !== \"\";\n }\n /* istanbul ignore next -- querySelector(..) is only going to return the two\n * above tags but this serves as a sane default if above assumption changes */\n return false;\n}\nexport default class EmptyHeading extends Rule {\n documentation() {\n return {\n description: `Assistive technology such as screen readers require textual content in headings. Whitespace only is considered empty.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", ({ document }) => {\n const headings = document.querySelectorAll(selector);\n for (const heading of headings) {\n this.validateHeading(heading);\n }\n });\n }\n validateHeading(heading) {\n const images = heading.querySelectorAll(\"img, svg\");\n for (const child of images) {\n if (hasImgAltText(child)) {\n return;\n }\n }\n switch (classifyNodeText(heading, { ignoreHiddenRoot: true })) {\n case TextClassification.DYNAMIC_TEXT:\n case TextClassification.STATIC_TEXT:\n /* have some text content, consider ok */\n break;\n case TextClassification.EMPTY_TEXT:\n /* no content or whitespace only */\n this.report(heading, `<${heading.tagName}> cannot be empty, must have text content`);\n break;\n }\n }\n}\n//# sourceMappingURL=empty-heading.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { classifyNodeText, TextClassification } from \"./helper/text\";\nexport default class EmptyTitle extends Rule {\n documentation() {\n return {\n description: [\n \"The `<title>` element cannot be empty, it must have textual content.\",\n \"\",\n \"It is used to describe the document and is shown in the browser tab and titlebar.\",\n \"WCAG and SEO requires a descriptive title and preferably unique within the site.\",\n \"\",\n \"Whitespace is ignored.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.previous;\n if (node.tagName !== \"title\")\n return;\n switch (classifyNodeText(node)) {\n case TextClassification.DYNAMIC_TEXT:\n case TextClassification.STATIC_TEXT:\n /* have some text content, consider ok */\n break;\n case TextClassification.EMPTY_TEXT:\n /* no content or whitespace only */\n {\n const message = `<${node.tagName}> cannot be empty, must have text content`;\n this.report(node, message, node.location);\n }\n break;\n }\n });\n }\n}\n//# sourceMappingURL=empty-title.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { partition } from \"./helper\";\nconst defaults = {\n allowArrayBrackets: true,\n shared: [\"radio\", \"button\", \"reset\", \"submit\"],\n};\nconst UNIQUE_CACHE_KEY = Symbol(\"form-elements-unique\");\nconst SHARED_CACHE_KEY = Symbol(\"form-elements-shared\");\nfunction haveName(name) {\n return typeof name === \"string\" && name !== \"\";\n}\nfunction allowSharedName(node, shared) {\n const type = node.getAttribute(\"type\");\n return Boolean(type && type.valueMatches(shared, false));\n}\nfunction getDocumentation(context) {\n const trailer = \"Each form control must have a unique name.\";\n if (!context) {\n return trailer;\n }\n else {\n const { name } = context;\n switch (context.kind) {\n case \"duplicate\":\n return [`Duplicate form control name \"${name}\"`, trailer].join(\"\\n\");\n case \"mix\":\n return [\n `Form control name cannot mix regular name \"{{ name }}\" with array brackets \"{{ name }}[]\"`,\n trailer,\n ].join(\"\\n\");\n }\n }\n}\nexport default class FormDupName extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n allowArrayBrackets: {\n type: \"boolean\",\n },\n shared: {\n type: \"array\",\n items: {\n enum: [\"radio\", \"checkbox\", \"submit\", \"button\", \"reset\"],\n },\n },\n };\n }\n documentation(context) {\n return {\n description: getDocumentation(context),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n const selector = this.getSelector();\n const { shared } = this.options;\n this.on(\"dom:ready\", (event) => {\n var _a, _b;\n const { document } = event;\n const controls = document.querySelectorAll(selector);\n const [sharedControls, uniqueControls] = partition(controls, (it) => {\n return allowSharedName(it, shared);\n });\n /* validate all form controls which require unique elements first so each\n * form has a populated list of unique names */\n for (const control of uniqueControls) {\n const attr = control.getAttribute(\"name\");\n const name = attr === null || attr === void 0 ? void 0 : attr.value;\n if (!attr || !haveName(name)) {\n continue;\n }\n const form = (_a = control.closest(\"form\")) !== null && _a !== void 0 ? _a : document.root;\n this.validateUniqueName(control, form, attr, name);\n }\n /* validate all form controls which allows shared names to ensure there is\n * no collision with other form controls */\n for (const control of sharedControls) {\n const attr = control.getAttribute(\"name\");\n const name = attr === null || attr === void 0 ? void 0 : attr.value;\n if (!attr || !haveName(name)) {\n continue;\n }\n const form = (_b = control.closest(\"form\")) !== null && _b !== void 0 ? _b : document.root;\n this.validateSharedName(control, form, attr, name);\n }\n });\n }\n validateUniqueName(control, form, attr, name) {\n const elements = this.getUniqueElements(form);\n const { allowArrayBrackets } = this.options;\n if (allowArrayBrackets) {\n const isarray = name.endsWith(\"[]\");\n const basename = isarray ? name.slice(0, -2) : name;\n const details = elements.get(basename);\n if (details && details.array !== isarray) {\n const context = {\n name: basename,\n kind: \"mix\",\n };\n this.report({\n node: control,\n location: attr.valueLocation,\n message: 'Cannot mix \"{{ name }}[]\" and \"{{ name }}\"',\n context,\n });\n return;\n }\n else if (!details && isarray) {\n elements.set(basename, {\n array: true,\n });\n return;\n }\n }\n if (elements.has(name)) {\n const context = {\n name,\n kind: \"duplicate\",\n };\n this.report({\n node: control,\n location: attr.valueLocation,\n message: 'Duplicate form control name \"{{ name }}\"',\n context,\n });\n }\n else {\n elements.set(name, {\n array: false,\n });\n }\n }\n validateSharedName(control, form, attr, name) {\n var _a;\n const uniqueElements = this.getUniqueElements(form);\n const sharedElements = this.getSharedElements(form);\n /* istanbul ignore next: type will always be set or shared name wouldn't be allowed */\n const type = (_a = control.getAttributeValue(\"type\")) !== null && _a !== void 0 ? _a : \"\";\n if (uniqueElements.has(name) ||\n (sharedElements.has(name) && sharedElements.get(name) !== type)) {\n const context = {\n name,\n kind: \"duplicate\",\n };\n this.report({\n node: control,\n location: attr.valueLocation,\n message: 'Duplicate form control name \"{{ name }}\"',\n context,\n });\n }\n sharedElements.set(name, type);\n }\n getSelector() {\n const tags = this.getTagsWithProperty(\"formAssociated\").filter((it) => {\n return this.isListedElement(it);\n });\n return tags.join(\", \");\n }\n isListedElement(tagName) {\n const meta = this.getMetaFor(tagName);\n /* istanbul ignore if: the earlier check for getTagsWithProperty ensures\n * these will actually be set so this is just an untestable fallback */\n if (!(meta === null || meta === void 0 ? void 0 : meta.formAssociated)) {\n return false;\n }\n return meta.formAssociated.listed;\n }\n getUniqueElements(form) {\n const existing = form.cacheGet(UNIQUE_CACHE_KEY);\n if (existing) {\n return existing;\n }\n else {\n const elements = new Map();\n form.cacheSet(UNIQUE_CACHE_KEY, elements);\n return elements;\n }\n }\n getSharedElements(form) {\n const existing = form.cacheGet(SHARED_CACHE_KEY);\n if (existing) {\n return existing;\n }\n else {\n const elements = new Map();\n form.cacheSet(SHARED_CACHE_KEY, elements);\n return elements;\n }\n }\n}\n//# sourceMappingURL=form-dup-name.js.map","import { sliceLocation } from \"../context\";\nimport { Pattern } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n allowMultipleH1: false,\n minInitialRank: \"h1\",\n sectioningRoots: [\"dialog\", '[role=\"dialog\"]', '[role=\"alertdialog\"]'],\n};\nfunction isRelevant(event) {\n const node = event.target;\n return Boolean(node.meta && node.meta.heading);\n}\nfunction extractLevel(node) {\n const match = node.tagName.match(/^[hH](\\d)$/);\n if (match) {\n return parseInt(match[1], 10);\n }\n else {\n return null;\n }\n}\nfunction parseMaxInitial(value) {\n if (value === false || value === \"any\") {\n return 6;\n }\n const match = value.match(/^h(\\d)$/);\n /* istanbul ignore next: should never happen, schema validation should catch invalid values */\n if (!match) {\n return 1;\n }\n return parseInt(match[1], 10);\n}\nexport default class HeadingLevel extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.stack = [];\n this.minInitialRank = parseMaxInitial(this.options.minInitialRank);\n this.sectionRoots = this.options.sectioningRoots.map((it) => new Pattern(it));\n /* add a global sectioning root used by default */\n this.stack.push({\n node: null,\n current: 0,\n h1Count: 0,\n });\n }\n static schema() {\n return {\n allowMultipleH1: {\n type: \"boolean\",\n },\n minInitialRank: {\n enum: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"any\", false],\n },\n sectioningRoots: {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n };\n }\n documentation() {\n const text = [];\n const modality = this.minInitialRank > 1 ? \"should\" : \"must\";\n text.push(`Headings ${modality} start at <h1> and can only increase one level at a time.`);\n text.push(\"The headings should form a table of contents and make sense on its own.\");\n if (!this.options.allowMultipleH1) {\n text.push(\"\");\n text.push(\"Under the current configuration only a single <h1> can be present at a time in the document.\");\n }\n return {\n description: text.join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:start\", isRelevant, (event) => {\n this.onTagStart(event);\n });\n this.on(\"tag:ready\", (event) => {\n this.onTagReady(event);\n });\n this.on(\"tag:close\", (event) => {\n this.onTagClose(event);\n });\n }\n onTagStart(event) {\n /* extract heading level from tagName (e.g \"h1\" -> 1)*/\n const level = extractLevel(event.target);\n if (!level)\n return;\n /* fetch the current sectioning root */\n const root = this.getCurrentRoot();\n /* do not allow multiple h1 */\n if (!this.options.allowMultipleH1 && level === 1) {\n if (root.h1Count >= 1) {\n const location = sliceLocation(event.location, 1);\n this.report(event.target, `Multiple <h1> are not allowed`, location);\n return;\n }\n root.h1Count++;\n }\n /* allow same level or decreasing to any level (e.g. from h4 to h2) */\n if (level <= root.current) {\n root.current = level;\n return;\n }\n this.checkLevelIncrementation(root, event, level);\n root.current = level;\n }\n /**\n * Validate heading level was only incremented by one.\n */\n checkLevelIncrementation(root, event, level) {\n const expected = root.current + 1;\n /* check if the new level is the expected one (headings with higher ranks\n * are skipped already) */\n if (level === expected) {\n return;\n }\n /* if this is the initial heading of the document it is compared to the\n * minimal allowed (default h1) */\n const isInitial = this.stack.length === 1 && expected === 1;\n if (isInitial && level <= this.minInitialRank) {\n return;\n }\n /* if we reach this far the heading level is not accepted */\n const location = sliceLocation(event.location, 1);\n if (root.current > 0) {\n const msg = `Heading level can only increase by one, expected <h${expected}> but got <h${level}>`;\n this.report(event.target, msg, location);\n }\n else {\n this.checkInitialLevel(event, location, level, expected);\n }\n }\n checkInitialLevel(event, location, level, expected) {\n if (this.stack.length === 1) {\n const msg = this.minInitialRank > 1\n ? `Initial heading level must be <h${this.minInitialRank}> or higher rank but got <h${level}>`\n : `Initial heading level must be <h${expected}> but got <h${level}>`;\n this.report(event.target, msg, location);\n }\n else {\n const prevRoot = this.getPrevRoot();\n const prevRootExpected = prevRoot.current + 1;\n if (level > prevRootExpected) {\n if (expected === prevRootExpected) {\n const msg = `Initial heading level for sectioning root must be <h${expected}> but got <h${level}>`;\n this.report(event.target, msg, location);\n }\n else {\n const msg = `Initial heading level for sectioning root must be between <h${expected}> and <h${prevRootExpected}> but got <h${level}>`;\n this.report(event.target, msg, location);\n }\n }\n }\n }\n /**\n * Check if the current element is a sectioning root and push a new root entry\n * on the stack if it is.\n */\n onTagReady(event) {\n const { target } = event;\n if (this.isSectioningRoot(target)) {\n this.stack.push({\n node: target.unique,\n current: 0,\n h1Count: 0,\n });\n }\n }\n /**\n * Check if the current element being closed is the element which opened the\n * current sectioning root, in which case the entry is popped from the stack.\n */\n onTagClose(event) {\n const { previous: target } = event;\n const root = this.getCurrentRoot();\n if (target.unique !== root.node) {\n return;\n }\n this.stack.pop();\n }\n getPrevRoot() {\n return this.stack[this.stack.length - 2];\n }\n getCurrentRoot() {\n return this.stack[this.stack.length - 1];\n }\n isSectioningRoot(node) {\n const context = {\n scope: node,\n };\n return this.sectionRoots.some((it) => it.match(node, context));\n }\n}\n//# sourceMappingURL=heading-level.js.map","import { DynamicValue } from \"../dom\";\nimport { describePattern, parsePattern } from \"../pattern\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n pattern: \"kebabcase\",\n};\nexport default class IdPattern extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.pattern = parsePattern(this.options.pattern);\n }\n static schema() {\n return {\n pattern: {\n type: \"string\",\n },\n };\n }\n documentation() {\n const pattern = describePattern(this.options.pattern);\n return {\n description: `For consistency all IDs are required to match the pattern ${pattern}.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n var _a, _b;\n if (event.key.toLowerCase() !== \"id\") {\n return;\n }\n /* consider dynamic value as always matching the pattern */\n if (event.value instanceof DynamicValue) {\n return;\n }\n if (!((_a = event.value) === null || _a === void 0 ? void 0 : _a.match(this.pattern))) {\n const value = (_b = event.value) !== null && _b !== void 0 ? _b : \"\";\n const pattern = this.pattern.toString();\n const message = `ID \"${value}\" does not match required pattern \"${pattern}\"`;\n this.report(event.target, message, event.valueLocation);\n }\n });\n }\n}\n//# sourceMappingURL=id-pattern.js.map","/* eslint-disable sonarjs/no-duplicate-string -- wont be easier to read or manage with constants */\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst restricted = new Map([\n [\"accept\", [\"file\"]],\n [\"alt\", [\"image\"]],\n [\n \"autocomplete\",\n [\n \"hidden\",\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n \"range\",\n \"color\",\n ],\n ],\n [\"capture\", [\"file\"]],\n [\"checked\", [\"checkbox\", \"radio\"]],\n [\"dirname\", [\"text\", \"search\"]],\n [\"height\", [\"image\"]],\n [\n \"list\",\n [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n \"range\",\n \"color\",\n ],\n ],\n [\"max\", [\"date\", \"month\", \"week\", \"time\", \"datetime-local\", \"number\", \"range\"]],\n [\"maxlength\", [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"]],\n [\"min\", [\"date\", \"month\", \"week\", \"time\", \"datetime-local\", \"number\", \"range\"]],\n [\"minlength\", [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"]],\n [\"multiple\", [\"email\", \"file\"]],\n [\"pattern\", [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"]],\n [\"placeholder\", [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\", \"number\"]],\n [\n \"readonly\",\n [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n ],\n ],\n [\n \"required\",\n [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime-local\",\n \"number\",\n \"checkbox\",\n \"radio\",\n \"file\",\n ],\n ],\n [\"size\", [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"]],\n [\"src\", [\"image\"]],\n [\"step\", [\"date\", \"month\", \"week\", \"time\", \"datetime-local\", \"number\", \"range\"]],\n [\"width\", [\"image\"]],\n]);\nfunction isInput(event) {\n const { target } = event;\n return target.is(\"input\");\n}\nexport default class InputAttributes extends Rule {\n documentation(context) {\n var _a, _b;\n if (context) {\n const { attribute, type } = context;\n const summary = `Attribute \\`${attribute}\\` is not allowed on \\`<input type=\"${type}\">\\`\\n`;\n const details = `\\`${attribute}\\` can only be used when \\`type\\` is:`;\n const list = (_b = (_a = restricted.get(attribute)) === null || _a === void 0 ? void 0 : _a.map((it) => `- \\`${it}\\``)) !== null && _b !== void 0 ? _b : [];\n return {\n description: [summary, details, ...list].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n else {\n return {\n description: `This attribute cannot be used with this input type.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n }\n setup() {\n this.on(\"tag:ready\", isInput, (event) => {\n const { target } = event;\n const type = target.getAttribute(\"type\");\n if (!type || type.isDynamic || !type.value) {\n return;\n }\n const typeValue = type.value.toString();\n for (const attr of target.attributes) {\n const validTypes = restricted.get(attr.key);\n if (!validTypes) {\n continue;\n }\n if (validTypes.includes(typeValue)) {\n continue;\n }\n const context = {\n attribute: attr.key,\n type: typeValue,\n };\n const message = `Attribute \"${attr.key}\" is not allowed on <input type=\"${typeValue}\">`;\n this.report(target, message, attr.keyLocation, context);\n }\n });\n }\n}\n//# sourceMappingURL=input-attributes.js.map","import { DynamicValue, generateIdSelector } from \"../../dom\";\nimport { inAccessibilityTree, isHTMLHidden } from \"./a11y\";\nimport { hasAltText } from \"./has-alt-text\";\nimport { classifyNodeText, TextClassification } from \"./text\";\nconst HAS_ACCESSIBLE_TEXT_CACHE = Symbol(hasAccessibleName.name);\nfunction isHidden(node, context) {\n const { reference } = context;\n if (reference && reference.isSameNode(node)) {\n return false;\n }\n else {\n return isHTMLHidden(node) || !inAccessibilityTree(node);\n }\n}\nfunction hasImgAltText(node, context) {\n if (node.is(\"img\")) {\n return hasAltText(node);\n }\n else if (node.is(\"svg\")) {\n return node.textContent.trim() !== \"\";\n }\n else {\n for (const img of node.querySelectorAll(\"img, svg\")) {\n const hasName = hasAccessibleNameImpl(img, context);\n if (hasName) {\n return true;\n }\n }\n return false;\n }\n}\nfunction hasLabel(node) {\n var _a;\n const value = (_a = node.getAttributeValue(\"aria-label\")) !== null && _a !== void 0 ? _a : \"\";\n return Boolean(value.trim());\n}\nfunction isLabelledby(node, context) {\n const { document, reference } = context;\n /* if we already have resolved one level of reference we don't resolve another\n * level (as per accname step 2B) */\n if (reference) {\n return false;\n }\n const ariaLabelledby = node.ariaLabelledby;\n /* consider dynamic aria-labelledby as having a name as we cannot resolve it\n * so no way to prove correctness */\n if (ariaLabelledby instanceof DynamicValue) {\n return true;\n }\n /* ignore elements without aria-labelledby */\n if (ariaLabelledby === null) {\n return false;\n }\n return ariaLabelledby.some((id) => {\n const selector = generateIdSelector(id);\n return document.querySelectorAll(selector).some((child) => {\n return hasAccessibleNameImpl(child, {\n document,\n reference: child,\n });\n });\n });\n}\n/**\n * This algorithm is based on [\"Accessible Name and Description Computation\n * 1.2\"][accname] with some exceptions:\n *\n * It doesn't compute the actual name but only the presence of one, e.g. if a\n * non-empty flat string is present the algorithm terminates with a positive\n * result.\n *\n * It takes some optimization shortcuts such as starting with step F as it\n * would be more common usage and as there is no actual name being computed\n * the order wont matter.\n *\n * [accname]: https://w3c.github.io/accname\n */\nfunction hasAccessibleNameImpl(current, context) {\n const { reference } = context;\n /* if this element is hidden (see function for exceptions) it does not have an accessible name */\n if (isHidden(current, context)) {\n return false;\n }\n /* special case: when this element is directly referenced by aria-labelledby\n * we ignore `hidden` */\n const ignoreHiddenRoot = Boolean(reference && reference.isSameNode(current));\n const text = classifyNodeText(current, { accessible: true, ignoreHiddenRoot });\n if (text !== TextClassification.EMPTY_TEXT) {\n return true;\n }\n if (hasImgAltText(current, context)) {\n return true;\n }\n if (hasLabel(current)) {\n return true;\n }\n if (isLabelledby(current, context)) {\n return true;\n }\n return false;\n}\n/**\n * Returns `true` if the element has an accessible name.\n *\n * It does not yet consider if the elements role prohibits naming, e.g. a `<p>`\n * element will still show up as having an accessible name.\n *\n * @public\n * @param document - Document element.\n * @param current - The element to get accessible name for\n * @returns `true` if the element has an accessible name.\n */\nexport function hasAccessibleName(document, current) {\n /* istanbul ignore next: we're not testing cache */\n if (current.cacheExists(HAS_ACCESSIBLE_TEXT_CACHE)) {\n return Boolean(current.cacheGet(HAS_ACCESSIBLE_TEXT_CACHE));\n }\n const result = hasAccessibleNameImpl(current, {\n document,\n reference: null,\n });\n return current.cacheSet(HAS_ACCESSIBLE_TEXT_CACHE, result);\n}\n//# sourceMappingURL=has-accessible-name.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { isAriaHidden, isHTMLHidden } from \"./helper/a11y\";\nimport { hasAccessibleName } from \"./helper/has-accessible-name\";\nfunction isIgnored(node) {\n var _a;\n if (node.is(\"input\")) {\n const type = (_a = node.getAttributeValue(\"type\")) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n const ignored = [\"hidden\", \"submit\", \"reset\", \"button\"];\n return Boolean(type && ignored.includes(type));\n }\n return false;\n}\nexport default class InputMissingLabel extends Rule {\n documentation() {\n return {\n description: [\n \"Each form element must have an a label or accessible name.\",\n 'Typically this is implemented using a `<label for=\"..\">` element describing the purpose of the form element.',\n \"\",\n \"This can be resolved in one of the following ways:\",\n \"\",\n ' - Use an associated `<label for=\"..\">` element.',\n \" - Use a nested `<label>` as parent element.\",\n \" - Use `aria-label` or `aria-labelledby` attributes.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const root = event.document;\n for (const elem of root.querySelectorAll(\"input, textarea, select\")) {\n this.validateInput(root, elem);\n }\n });\n }\n validateInput(root, elem) {\n if (isHTMLHidden(elem) || isAriaHidden(elem)) {\n return;\n }\n /* hidden, submit, reset or button should not have label */\n if (isIgnored(elem)) {\n return;\n }\n if (hasAccessibleName(root, elem)) {\n return;\n }\n let label = [];\n /* try to find label by id */\n if ((label = findLabelById(root, elem.id)).length > 0) {\n this.validateLabel(root, elem, label);\n return;\n }\n /* try to find parent label (input nested in label) */\n if ((label = findLabelByParent(elem)).length > 0) {\n this.validateLabel(root, elem, label);\n return;\n }\n if (elem.hasAttribute(\"aria-label\")) {\n this.report(elem, `<${elem.tagName}> element has aria-label but label has no text`);\n }\n else if (elem.hasAttribute(\"aria-labelledby\")) {\n this.report(elem, `<${elem.tagName}> element has aria-labelledby but referenced element has no text`);\n }\n else {\n this.report(elem, `<${elem.tagName}> element does not have a <label>`);\n }\n }\n /**\n * Reports error if none of the labels are accessible.\n */\n validateLabel(root, elem, labels) {\n const visible = labels.filter(isVisible);\n if (visible.length === 0) {\n this.report(elem, `<${elem.tagName}> element has <label> but <label> element is hidden`);\n return;\n }\n if (!labels.some((label) => hasAccessibleName(root, label))) {\n this.report(elem, `<${elem.tagName}> element has <label> but <label> has no text`);\n }\n }\n}\nfunction isVisible(elem) {\n const hidden = isHTMLHidden(elem) || isAriaHidden(elem);\n return !hidden;\n}\nfunction findLabelById(root, id) {\n if (!id)\n return [];\n return root.querySelectorAll(`label[for=\"${id}\"]`);\n}\nfunction findLabelByParent(el) {\n let cur = el.parent;\n while (cur) {\n if (cur.is(\"label\")) {\n return [cur];\n }\n cur = cur.parent;\n }\n return [];\n}\n//# sourceMappingURL=input-missing-label.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n maxlength: 70,\n};\nexport default class LongTitle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.maxlength = this.options.maxlength;\n }\n static schema() {\n return {\n maxlength: {\n type: \"number\",\n },\n };\n }\n documentation() {\n return {\n description: `Search engines truncates titles with long text, possibly down-ranking the page in the process.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.previous;\n if (node.tagName !== \"title\")\n return;\n const text = node.textContent;\n if (text.length > this.maxlength) {\n this.report(node, `title text cannot be longer than ${this.maxlength} characters`);\n }\n });\n }\n}\n//# sourceMappingURL=long-title.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class MetaRefresh extends Rule {\n documentation() {\n return {\n description: `Meta refresh directive must use the \\`0;url=...\\` format. Non-zero values for time interval is disallowed as people with assistive technology might be unable to read and understand the page content before automatically reloading. For the same reason skipping the url is disallowed as it would put the browser in an infinite loop reloading the same page over and over again.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", ({ target }) => {\n /* only handle <meta> */\n if (!target.is(\"meta\")) {\n return;\n }\n /* only handle refresh */\n const httpEquiv = target.getAttributeValue(\"http-equiv\");\n if (httpEquiv !== \"refresh\") {\n return;\n }\n /* ensure content attribute is set */\n const content = target.getAttribute(\"content\");\n if (!(content === null || content === void 0 ? void 0 : content.value) || content.isDynamic) {\n return;\n }\n /* ensure content attribute is valid */\n const location = content.valueLocation;\n const value = parseContent(content.value.toString());\n if (!value) {\n this.report(target, \"Malformed meta refresh directive\", location);\n return;\n }\n /* ensure a url is set */\n if (!value.url) {\n this.report(target, \"Don't use meta refresh to reload the page\", location);\n }\n /* ensure delay is exactly 0 seconds */\n if (value.delay !== 0) {\n this.report(target, \"Meta refresh must use 0 second delay\", location);\n }\n });\n }\n}\nfunction parseContent(text) {\n const match = text.match(/^(\\d+)(?:\\s*;\\s*url=(.*))?/);\n if (match) {\n return {\n delay: parseInt(match[1], 10),\n url: match[2],\n };\n }\n else {\n return null;\n }\n}\n//# sourceMappingURL=meta-refresh.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction getName(attr) {\n const name = attr.value;\n if (!name || name instanceof DynamicValue) {\n return null;\n }\n return name;\n}\nexport default class MapDupName extends Rule {\n documentation() {\n return {\n description: \"`<map>` must have a unique name, it cannot be the same name as another `<map>` element\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const maps = document.querySelectorAll(\"map[name]\");\n const names = new Set();\n for (const map of maps) {\n const attr = map.getAttribute(\"name\");\n /* istanbul ignore next -- should not happen as querySelector matches\n * only the elements with the name attribute */\n if (!attr) {\n continue;\n }\n const name = getName(attr);\n if (!name) {\n continue;\n }\n if (names.has(name)) {\n this.report({\n node: map,\n message: `<map> name must be unique`,\n location: attr.keyLocation,\n });\n }\n names.add(name);\n }\n });\n }\n}\n//# sourceMappingURL=map-dup-name.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction isRelevant(event) {\n return event.target.is(\"map\");\n}\nfunction hasStaticValue(attr) {\n return Boolean(attr && !(attr.value instanceof DynamicValue));\n}\nexport default class MapIdName extends Rule {\n documentation() {\n return {\n description: \"When the `id` attribute is present on a `<map>` element it must be equal to the `name` attribute.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:ready\", isRelevant, (event) => {\n var _a;\n const { target } = event;\n const id = target.getAttribute(\"id\");\n const name = target.getAttribute(\"name\");\n // /* ignore missing attributes or dynamic value */\n if (!hasStaticValue(id) || !hasStaticValue(name)) {\n return;\n }\n /* ignore when id and name is the same */\n if (id.value === name.value) {\n return;\n }\n this.report({\n node: event.target,\n message: `\"id\" and \"name\" attribute must be the same on <map> elements`,\n location: (_a = id.valueLocation) !== null && _a !== void 0 ? _a : name.valueLocation,\n });\n });\n }\n}\n//# sourceMappingURL=map-id-name.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class MissingDoctype extends Rule {\n documentation() {\n return {\n description: \"Requires that the document contains a doctype.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const dom = event.document;\n if (!dom.doctype) {\n this.report(dom.root, \"Document is missing doctype\");\n }\n });\n }\n}\n//# sourceMappingURL=missing-doctype.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class MultipleLabeledControls extends Rule {\n constructor() {\n super(...arguments);\n this.labelable = \"\";\n }\n documentation() {\n return {\n description: `A \\`<label>\\` element can only be associated with one control at a time.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.labelable = this.getTagsWithProperty(\"labelable\").join(\",\");\n this.on(\"element:ready\", (event) => {\n const { target } = event;\n /* only handle <label> */\n if (target.tagName !== \"label\") {\n return;\n }\n /* no error if it references 0 or 1 controls */\n const numControls = this.getNumLabledControls(target);\n if (numControls <= 1) {\n return;\n }\n this.report(target, \"<label> is associated with multiple controls\", target.location);\n });\n }\n getNumLabledControls(src) {\n /* get all controls wrapped by label element */\n const controls = src.querySelectorAll(this.labelable).map((node) => node.id);\n /* only count wrapped controls if the \"for\" attribute is missing or static,\n * for dynamic \"for\" attributes it is better to run in document mode later */\n const attr = src.getAttribute(\"for\");\n if (!attr || attr.isDynamic || !attr.value) {\n return controls.length;\n }\n /* if \"for\" attribute references a wrapped element it should not be counted\n * multiple times */\n const redundant = controls.includes(attr.value.toString());\n if (redundant) {\n return controls.length;\n }\n /* has \"for\" attribute pointing to element outside wrapped controls */\n return controls.length + 1;\n }\n}\n//# sourceMappingURL=multiple-labeled-controls.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n include: null,\n exclude: null,\n};\nexport default class NoAutoplay extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n documentation(context) {\n const tagName = context ? ` on <${context.tagName}>` : \"\";\n return {\n description: [\n `The autoplay attribute is not allowed${tagName}.`,\n \"Autoplaying content can be disruptive for users and has accessibilty concerns.\",\n \"Prefer to let the user control playback.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n /* only handle autoplay attribute */\n if (event.key.toLowerCase() !== \"autoplay\") {\n return;\n }\n /* ignore dynamic values */\n if (event.value && event.value instanceof DynamicValue) {\n return;\n }\n /* ignore tagnames configured to be ignored */\n const tagName = event.target.tagName;\n if (this.isKeywordIgnored(tagName)) {\n return;\n }\n /* report error */\n const context = { tagName };\n const location = event.location;\n this.report(event.target, `The autoplay attribute is not allowed on <${tagName}>`, location, context);\n });\n }\n}\n//# sourceMappingURL=no-autoplay.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoConditionalComment extends Rule {\n documentation() {\n return {\n description: \"Microsoft Internet Explorer previously supported using special HTML comments (conditional comments) for targeting specific versions of IE but since IE 10 it is deprecated and not supported in standards mode.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"conditional\", (event) => {\n this.report(event.parent, \"Use of conditional comments are deprecated\", event.location);\n });\n }\n}\n//# sourceMappingURL=no-conditional-comment.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoDeprecatedAttr extends Rule {\n documentation() {\n return {\n description: \"HTML5 deprecated many old attributes.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n const node = event.target;\n const meta = node.meta;\n const attr = event.key.toLowerCase();\n /* cannot validate if meta isn't known */\n if (meta === null) {\n return;\n }\n const metaAttribute = meta.attributes[attr];\n if (!metaAttribute) {\n return;\n }\n const deprecated = metaAttribute.deprecated;\n if (deprecated) {\n this.report(node, `Attribute \"${event.key}\" is deprecated on <${node.tagName}> element`, event.keyLocation);\n }\n });\n }\n}\n//# sourceMappingURL=no-deprecated-attr.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoDupAttr extends Rule {\n documentation() {\n return {\n description: \"HTML disallows two or more attributes with the same (case-insensitive) name.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n let attr = {};\n this.on(\"tag:start\", () => {\n /* reset any time a new tag is opened */\n attr = {};\n });\n this.on(\"attr\", (event) => {\n /* ignore dynamic attributes aliasing another, e.g class and ng-class */\n if (event.originalAttribute) {\n return;\n }\n const name = event.key.toLowerCase();\n if (name in attr) {\n this.report(event.target, `Attribute \"${name}\" duplicated`, event.keyLocation);\n }\n attr[event.key] = true;\n });\n }\n}\n//# sourceMappingURL=no-dup-attr.js.map","import { DOMTokenList } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoDupClass extends Rule {\n documentation() {\n return {\n description: \"Prevents unnecessary duplication of class names.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n if (event.key.toLowerCase() !== \"class\") {\n return;\n }\n const classes = new DOMTokenList(event.value, event.valueLocation);\n const unique = new Set();\n classes.forEach((cur, index) => {\n if (unique.has(cur)) {\n const location = classes.location(index);\n this.report(event.target, `Class \"${cur}\" duplicated`, location);\n }\n unique.add(cur);\n });\n });\n }\n}\n//# sourceMappingURL=no-dup-class.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoDupID extends Rule {\n documentation() {\n return {\n description: \"The ID of an element must be unique.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const existing = new Set();\n const elements = document.querySelectorAll(\"[id]\");\n const relevant = elements.filter(isRelevant);\n for (const el of relevant) {\n const attr = el.getAttribute(\"id\");\n /* istanbul ignore next: this has already been tested in isRelevant once but for type-safety it is checked again */\n if (!(attr === null || attr === void 0 ? void 0 : attr.value)) {\n continue;\n }\n const id = attr.value.toString();\n if (existing.has(id)) {\n this.report(el, `Duplicate ID \"${id}\"`, attr.valueLocation);\n }\n existing.add(id);\n }\n });\n }\n}\nfunction isRelevant(element) {\n const attr = element.getAttribute(\"id\");\n /* istanbul ignore next: can not really happen as querySelector will only return elements with id present */\n if (!attr) {\n return false;\n }\n /* id without value is not relevant, e.g. <p id></p> */\n if (!attr.value) {\n return false;\n }\n /* dynamic id (interpolated or otherwise currently unknown value) is not relevant */\n if (attr.isDynamic) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=no-dup-id.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nfunction isRelevant(event) {\n return event.target.is(\"button\");\n}\nexport default class NoImplicitButtonType extends Rule {\n documentation() {\n return {\n description: [\n \"`<button>` is missing required `type` attribute\",\n \"\",\n \"When the `type` attribute is omitted it defaults to `submit`.\",\n \"Submit buttons are triggered when a keyboard user presses <kbd>Enter</kbd>.\",\n \"\",\n \"As this may or may not be inteded this rule enforces that the `type` attribute be explicitly set to one of the valid types:\",\n \"\",\n \"- `button` - a generic button.\",\n \"- `submit` - a submit button.\",\n \"- `reset`- a button to reset form fields.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", isRelevant, (event) => {\n const { target } = event;\n const attr = target.getAttribute(\"type\");\n if (!attr) {\n this.report({\n node: event.target,\n message: `<button> is missing required \"type\" attribute`,\n });\n }\n });\n }\n}\n//# sourceMappingURL=no-implicit-button-type.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoImplicitClose extends Rule {\n documentation() {\n return {\n description: `Some elements in HTML has optional end tags. When an optional tag is omitted a browser must handle it as if the end tag was present.\n\nOmitted end tags can be ambigious for humans to read and many editors have trouble formatting the markup.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const closed = event.previous;\n const by = event.target;\n /* not set when unclosed elements are being closed by tree, this rule does\n * not consider such events (handled by close-order instead) */\n if (!by) {\n return;\n }\n if (closed.closed !== NodeClosed.ImplicitClosed) {\n return;\n }\n const closedByParent = closed.parent && closed.parent.tagName === by.tagName; /* <ul><li></ul> */\n const sameTag = closed.tagName === by.tagName; /* <p>foo<p>bar */\n if (closedByParent) {\n this.report(closed, `Element <${closed.tagName}> is implicitly closed by parent </${by.tagName}>`, closed.location);\n }\n else if (sameTag) {\n this.report(closed, `Element <${closed.tagName}> is implicitly closed by sibling`, closed.location);\n }\n else {\n this.report(closed, `Element <${closed.tagName}> is implicitly closed by adjacent <${by.tagName}>`, closed.location);\n }\n });\n }\n}\n//# sourceMappingURL=no-implicit-close.js.map","import { parseCssDeclaration } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n include: null,\n exclude: null,\n allowedProperties: [\"display\"],\n};\nexport default class NoInlineStyle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n allowedProperties: {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n };\n }\n documentation() {\n const text = [\n \"Inline style is not allowed.\\n\",\n \"Inline style is a sign of unstructured CSS. Use class or ID with a separate stylesheet.\\n\",\n ];\n if (this.options.allowedProperties.length > 0) {\n text.push(\"Under the current configuration the following CSS properties are allowed:\\n\");\n text.push(this.options.allowedProperties.map((it) => `- \\`${it}\\``).join(\"\\n\"));\n }\n return {\n description: text.join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => this.isRelevant(event), (event) => {\n const { value } = event;\n if (this.allPropertiesAllowed(value)) {\n return;\n }\n this.report(event.target, \"Inline style is not allowed\");\n });\n }\n isRelevant(event) {\n var _a;\n if (event.key !== \"style\") {\n return false;\n }\n const { include, exclude } = this.options;\n const key = (_a = event.originalAttribute) !== null && _a !== void 0 ? _a : event.key;\n /* ignore attributes not present in \"include\" */\n if (include && !include.includes(key)) {\n return false;\n }\n /* ignore attributes present in \"exclude\" */\n if (exclude && exclude.includes(key)) {\n return false;\n }\n return true;\n }\n allPropertiesAllowed(value) {\n const allowProperties = this.options.allowedProperties;\n /* quick path: no properties are allowed, no need to check each one individually */\n if (allowProperties.length === 0) {\n return false;\n }\n const declarations = Object.keys(parseCssDeclaration(value));\n return (declarations.length > 0 &&\n declarations.every((it) => {\n return allowProperties.includes(it);\n }));\n }\n}\n//# sourceMappingURL=no-inline-style.js.map","import { DOMTokenList, DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst ARIA = [\n { property: \"aria-activedescendant\", isList: false },\n { property: \"aria-controls\", isList: true },\n { property: \"aria-describedby\", isList: true },\n { property: \"aria-details\", isList: false },\n { property: \"aria-errormessage\", isList: false },\n { property: \"aria-flowto\", isList: true },\n { property: \"aria-labelledby\", isList: true },\n { property: \"aria-owns\", isList: true },\n];\nfunction idMissing(document, id) {\n const nodes = document.querySelectorAll(`[id=\"${id}\"]`);\n return nodes.length === 0;\n}\nexport default class NoMissingReferences extends Rule {\n documentation(context) {\n if (context) {\n return {\n description: `The element ID \"${context.value}\" referenced by the ${context.key} attribute must point to an existing element.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n else {\n return {\n description: `The element ID referenced by the attribute must point to an existing element.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const document = event.document;\n /* verify <label for=\"..\"> */\n for (const node of document.querySelectorAll(\"label[for]\")) {\n const attr = node.getAttribute(\"for\");\n this.validateReference(document, node, attr, false);\n }\n /* verify <input list=\"..\"> */\n for (const node of document.querySelectorAll(\"input[list]\")) {\n const attr = node.getAttribute(\"list\");\n this.validateReference(document, node, attr, false);\n }\n /* verify WAI-ARIA properties */\n for (const { property, isList } of ARIA) {\n for (const node of document.querySelectorAll(`[${property}]`)) {\n const attr = node.getAttribute(property);\n this.validateReference(document, node, attr, isList);\n }\n }\n });\n }\n validateReference(document, node, attr, isList) {\n /* sanity check: querySelector should never return elements without the attribute */\n /* istanbul ignore next */\n if (!attr) {\n return;\n }\n /* skip dynamic and empty values */\n const value = attr.value;\n if (value instanceof DynamicValue || value === null || value === \"\") {\n return;\n }\n if (isList) {\n this.validateList(document, node, attr, value);\n }\n else {\n this.validateSingle(document, node, attr, value);\n }\n }\n validateSingle(document, node, attr, id) {\n if (idMissing(document, id)) {\n const context = { key: attr.key, value: id };\n this.report(node, `Element references missing id \"${id}\"`, attr.valueLocation, context);\n }\n }\n validateList(document, node, attr, values) {\n const parsed = new DOMTokenList(values, attr.valueLocation);\n for (const entry of parsed.iterator()) {\n const id = entry.item;\n if (idMissing(document, id)) {\n const context = { key: attr.key, value: id };\n this.report(node, `Element references missing id \"${id}\"`, entry.location, context);\n }\n }\n }\n}\n//# sourceMappingURL=no-missing-references.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoMultipleMain extends Rule {\n documentation() {\n return {\n description: [\n \"Only a single visible `<main>` element can be present at in a document at a time.\",\n \"\",\n \"Multiple `<main>` can be present in the DOM as long the others are hidden using the HTML5 `hidden` attribute.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const main = document.querySelectorAll(\"main\").filter((cur) => !cur.hasAttribute(\"hidden\"));\n main.shift(); /* ignore the first occurrence */\n /* report all other occurrences */\n for (const elem of main) {\n this.report(elem, \"Multiple <main> elements present in document\");\n }\n });\n }\n}\n//# sourceMappingURL=no-multiple-main.js.map","import { sliceLocation } from \"../context\";\nimport { NodeType } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n relaxed: false,\n};\nconst textRegexp = /([<>]|&(?![a-zA-Z0-9#]+;))/g;\nconst unquotedAttrRegexp = /([<>\"'=`]|&(?![a-zA-Z0-9#]+;))/g;\nconst matchTemplate = /^(<%.*?%>|<\\?.*?\\?>|<\\$.*?\\$>)$/s;\nconst replacementTable = {\n '\"': \"&quot;\",\n \"&\": \"&amp;\",\n \"'\": \"&apos;\",\n \"<\": \"&lt;\",\n \"=\": \"&equals;\",\n \">\": \"&gt;\",\n \"`\": \"&grave;\",\n};\nexport default class NoRawCharacters extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.relaxed = this.options.relaxed;\n }\n static schema() {\n return {\n relaxed: {\n type: \"boolean\",\n },\n };\n }\n documentation() {\n return {\n description: `Some characters such as \\`<\\`, \\`>\\` and \\`&\\` hold special meaning in HTML and must be escaped using a character reference (html entity).`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", (event) => {\n const node = event.target;\n /* only iterate over direct descendants */\n for (const child of node.childNodes) {\n if (child.nodeType !== NodeType.TEXT_NODE) {\n continue;\n }\n /* workaround for templating <% ... %> etc */\n if (child.textContent.match(matchTemplate)) {\n continue;\n }\n this.findRawChars(node, child.textContent, child.location, textRegexp);\n }\n });\n this.on(\"attr\", (event) => {\n /* boolean attributes has no value so nothing to validate */\n if (!event.value) {\n return;\n }\n /* quoted attribute values can contain most symbols except the quotemark\n * itself but unescaped quotemarks would cause a parsing error */\n if (event.quote) {\n return;\n }\n this.findRawChars(event.target, event.value.toString(), event.valueLocation, // eslint-disable-line @typescript-eslint/no-non-null-assertion -- technical debt, valueLocation is always set if a value is provided\n unquotedAttrRegexp);\n });\n }\n /**\n * Find raw special characters and report as errors.\n *\n * @param text - The full text to find unescaped raw characters in.\n * @param location - Location of text.\n * @param regexp - Regexp pattern to match using.\n */\n findRawChars(node, text, location, regexp) {\n let match;\n do {\n match = regexp.exec(text);\n if (match) {\n const char = match[0];\n /* In relaxed mode & only needs to be encoded if it is ambiguous,\n * however this rule will only match either non-ambiguous ampersands or\n * ampersands part of a character reference. Whenever it is a valid\n * character reference or not not checked by this rule */\n if (this.relaxed && char === \"&\") {\n continue;\n }\n /* determine replacement character and location */\n const replacement = replacementTable[char];\n const charLocation = sliceLocation(location, match.index, match.index + 1);\n /* report as error */\n this.report(node, `Raw \"${char}\" must be encoded as \"${replacement}\"`, charLocation);\n }\n } while (match);\n }\n}\n//# sourceMappingURL=no-raw-characters.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst selectors = [\"input[aria-label]\", \"textarea[aria-label]\", \"select[aria-label]\"];\nexport default class NoRedundantAriaLabel extends Rule {\n documentation() {\n return {\n description: \"`aria-label` is redundant when an associated `<label>` element containing the same text exists.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const elements = document.querySelectorAll(selectors.join(\",\"));\n for (const element of elements) {\n const ariaLabel = element.getAttribute(\"aria-label\");\n const id = element.id;\n if (!id) {\n continue;\n }\n const label = document.querySelector(`label[for=\"${id}\"]`);\n if (!ariaLabel || !label || label.textContent.trim() !== ariaLabel.value) {\n continue;\n }\n const message = \"aria-label is redundant when label containing same text exists\";\n this.report({\n message,\n node: element,\n location: ariaLabel.keyLocation,\n });\n }\n });\n }\n}\n//# sourceMappingURL=no-redundant-aria-label.js.map","import { escapeSelectorComponent } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoRedundantFor extends Rule {\n documentation() {\n return {\n description: `When the \\`<label>\\` element wraps the labelable control the \\`for\\` attribute is redundant and better left out.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", (event) => {\n const { target } = event;\n /* only handle <label> */\n if (target.tagName !== \"label\") {\n return;\n }\n /* ignore label without for or dynamic value */\n const attr = target.getAttribute(\"for\");\n if (!attr || attr.isDynamic) {\n return;\n }\n /* ignore omitted/empty values */\n const id = attr.value;\n if (!id) {\n return;\n }\n /* try to find labeled control */\n const escaped = escapeSelectorComponent(id);\n const control = target.querySelector(`[id=\"${escaped}\"]`);\n if (!control) {\n return;\n }\n this.report(target, 'Redundant \"for\" attribute', attr.keyLocation);\n });\n }\n}\n//# sourceMappingURL=no-redundant-for.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoRedundantRole extends Rule {\n documentation(context) {\n const { role, tagName } = context;\n return {\n description: `Using the \\`${role}\\` role is redundant as it is already implied by the \\`<${tagName}>\\` element.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:ready\", (event) => {\n const { target } = event;\n const role = target.getAttribute(\"role\");\n /* ignore missing and dynamic values */\n if (!(role === null || role === void 0 ? void 0 : role.value) || role.value instanceof DynamicValue) {\n return;\n }\n /* ignore elements without metadata */\n const { meta } = target;\n if (!meta) {\n return;\n }\n /* ignore elements without implicit role */\n const implicitRole = meta.implicitRole(target._adapter);\n if (!implicitRole) {\n return;\n }\n /* ignore elements with non-redundant roles */\n if (role.value !== implicitRole) {\n return;\n }\n /* report error */\n const context = {\n tagName: target.tagName,\n role: role.value,\n };\n this.report(event.target, `Redundant role \"${role.value}\" on <${target.tagName}>`, role.valueLocation, context);\n });\n }\n}\n//# sourceMappingURL=no-redundant-role.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst xmlns = /^(.+):.+$/;\nconst defaults = {\n ignoreForeign: true,\n ignoreXML: true,\n};\nexport default class NoSelfClosing extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n ignoreForeign: {\n type: \"boolean\",\n },\n ignoreXML: {\n type: \"boolean\",\n },\n };\n }\n documentation(tagName) {\n tagName = tagName || \"element\";\n return {\n description: `Self-closing elements are disallowed. Use regular end tag <${tagName}></${tagName}> instead of self-closing <${tagName}/>.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const active = event.previous; // The current active element (that is, the current element on the stack)\n if (!isRelevant(active, this.options)) {\n return;\n }\n this.validateElement(active);\n });\n }\n validateElement(node) {\n if (node.closed !== NodeClosed.VoidSelfClosed) {\n return;\n }\n this.report(node, `<${node.tagName}> must not be self-closed`, null, node.tagName);\n }\n}\nfunction isRelevant(node, options) {\n /* tags in XML namespaces are relevant only if ignoreXml is false, in which\n * case assume all xml elements must not be self-closed */\n if (node.tagName.match(xmlns)) {\n return !options.ignoreXML;\n }\n /* nodes with missing metadata is assumed relevant */\n if (!node.meta) {\n return true;\n }\n if (node.meta.void) {\n return false;\n }\n /* foreign elements are relevant only if ignoreForeign is false, in which case\n * assume all foreign must not be self-closed */\n if (node.meta.foreign) {\n return !options.ignoreForeign;\n }\n return true;\n}\n//# sourceMappingURL=no-self-closing.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoStyleTag extends Rule {\n documentation() {\n return {\n description: \"Prefer to use external stylesheets with the `<link>` tag instead of inlining the styling.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:start\", (event) => {\n const node = event.target;\n if (node.tagName === \"style\") {\n this.report(node, \"Use external stylesheet with <link> instead of <style> tag\");\n }\n });\n }\n}\n//# sourceMappingURL=no-style-tag.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoTrailingWhitespace extends Rule {\n documentation() {\n return {\n description: \"Lines with trailing whitespace cause unnessecary diff when using version control and usually serve no special purpose in HTML.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"whitespace\", (event) => {\n if (event.text.match(/^[ \\t]+\\r?\\n$/)) {\n this.report(null, \"Trailing whitespace\", event.location);\n }\n });\n }\n}\n//# sourceMappingURL=no-trailing-whitespace.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { keywordPatternMatcher } from \"./helper\";\nconst defaults = {\n include: null,\n exclude: null,\n};\nexport default class NoUnknownElements extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n };\n }\n documentation(context) {\n const element = context ? ` <${context}>` : \"\";\n return {\n description: `An unknown element${element} was used. If this is a Custom Element you need to supply element metadata for it.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:start\", (event) => {\n const node = event.target;\n if (node.meta) {\n return;\n }\n if (this.isKeywordIgnored(node.tagName, keywordPatternMatcher)) {\n return;\n }\n this.report(node, `Unknown element <${node.tagName}>`, null, node.tagName);\n });\n }\n}\n//# sourceMappingURL=no-unknown-elements.js.map","import { DOMTokenList } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoUnusedDisable extends Rule {\n documentation(context) {\n return {\n description: `\\`${context.ruleId}\\` rule is disabled but no error was reported.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n /* this is a special rule, the `Engine` class directly emits errors on this\n * rule, it exists only to be able to configure whenever the rule is enabled\n * or not and to get the regular documentation and contextual help. */\n }\n reportUnused(unused, options, location) {\n const tokens = new DOMTokenList(options.replace(/,/g, \" \"), location);\n for (const ruleId of unused) {\n const index = tokens.indexOf(ruleId);\n /* istanbul ignore next: the token should be present or it wouldn't be\n * reported as unused, this is just a sanity check and fallback */\n const tokenLocation = index >= 0 ? tokens.location(index) : location;\n this.report({\n node: null,\n message: '\"{{ ruleId }}\" rule is disabled but no error was reported',\n location: tokenLocation,\n context: {\n ruleId: ruleId,\n },\n });\n }\n }\n}\n//# sourceMappingURL=no-unused-disable.js.map","import { TokenType } from \"../lexer\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class NoUtf8Bom extends Rule {\n documentation() {\n return {\n description: `This file is saved with the UTF-8 byte order mark (BOM) present. It is neither required or recommended to use.\\n\\nInstead the document should be served with the \\`Content-Type: application/javascript; charset=utf-8\\` header.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n const unregister = this.on(\"token\", (event) => {\n if (event.type === TokenType.UNICODE_BOM) {\n this.report(null, \"File should be saved without UTF-8 BOM\", event.location);\n }\n /* since the BOM must be the very first thing the rule can now be disabled for the rest of the run */\n this.setEnabled(false);\n unregister();\n });\n }\n}\n//# sourceMappingURL=no-utf8-bom.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { DynamicValue } from \"../dom\";\nexport const types = [\"button\", \"submit\", \"reset\", \"image\"];\nconst replacement = {\n button: '<button type=\"button\">',\n submit: '<button type=\"submit\">',\n reset: '<button type=\"reset\">',\n image: '<button type=\"button\">',\n};\nconst defaults = {\n include: null,\n exclude: null,\n};\nexport default class PreferButton extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n };\n }\n documentation(context) {\n const src = `<input type=\"${context.type}\">`;\n const dst = replacement[context.type] || `<button>`;\n return {\n description: `Prefer to use \\`${dst}\\` instead of \\`\"${src}\\`.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", (event) => {\n const node = event.target;\n /* only handle input elements */\n if (node.tagName.toLowerCase() !== \"input\") {\n return;\n }\n /* only handle type attribute */\n if (event.key.toLowerCase() !== \"type\") {\n return;\n }\n /* sanity check: handle missing, boolean and dynamic attributes */\n if (!event.value || event.value instanceof DynamicValue) {\n return;\n }\n /* ignore types configured to be ignored */\n const type = event.value.toLowerCase();\n if (this.isKeywordIgnored(type)) {\n return;\n }\n /* only values matching known type triggers error */\n if (!types.includes(type)) {\n return;\n }\n const context = { type: type };\n const message = `Prefer to use <button> instead of <input type=\"${type}\"> when adding buttons`;\n this.report(node, message, event.valueLocation, context);\n });\n }\n}\n//# sourceMappingURL=prefer-button.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n mapping: {\n article: \"article\",\n banner: \"header\",\n button: \"button\",\n cell: \"td\",\n checkbox: \"input\",\n complementary: \"aside\",\n contentinfo: \"footer\",\n figure: \"figure\",\n form: \"form\",\n heading: \"hN\",\n input: \"input\",\n link: \"a\",\n list: \"ul\",\n listbox: \"select\",\n listitem: \"li\",\n main: \"main\",\n navigation: \"nav\",\n progressbar: \"progress\",\n radio: \"input\",\n region: \"section\",\n table: \"table\",\n textbox: \"textarea\",\n },\n include: null,\n exclude: null,\n};\nexport default class PreferNativeElement extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n mapping: {\n type: \"object\",\n },\n };\n }\n documentation(context) {\n return {\n description: `Instead of using the WAI-ARIA role \"${context.role}\" prefer to use the native <${context.replacement}> element.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n const { mapping } = this.options;\n this.on(\"attr\", (event) => {\n /* ignore non-role attributes */\n if (event.key.toLowerCase() !== \"role\") {\n return;\n }\n /* ignore missing and dynamic values */\n if (!event.value || event.value instanceof DynamicValue) {\n return;\n }\n /* ignore roles configured to be ignored */\n const role = event.value.toLowerCase();\n if (this.isIgnored(role)) {\n return;\n }\n /* dont report when the element is already of the right type but has a\n * redundant role, such as <main role=\"main\"> */\n const replacement = mapping[role];\n if (event.target.is(replacement)) {\n return;\n }\n /* report error */\n const context = { role, replacement };\n const location = this.getLocation(event);\n this.report(event.target, `Prefer to use the native <${replacement}> element`, location, context);\n });\n }\n isIgnored(role) {\n const { mapping } = this.options;\n /* ignore roles not mapped to native elements */\n const replacement = mapping[role];\n if (!replacement) {\n return true;\n }\n return this.isKeywordIgnored(role);\n }\n getLocation(event) {\n const begin = event.location;\n const end = event.valueLocation; // eslint-disable-line @typescript-eslint/no-non-null-assertion -- technical debt, valueLocation will always be set when a value is provided\n const quote = event.quote ? 1 : 0;\n const size = end.offset + end.size - begin.offset + quote;\n return {\n filename: begin.filename,\n line: begin.line,\n column: begin.column,\n offset: begin.offset,\n size,\n };\n }\n}\n//# sourceMappingURL=prefer-native-element.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class PreferTbody extends Rule {\n documentation() {\n return {\n description: `While \\`<tbody>\\` is optional is relays semantic information about its contents. Where applicable it should also be combined with \\`<thead>\\` and \\`<tfoot>\\`.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const doc = event.document;\n for (const table of doc.querySelectorAll(\"table\")) {\n if (table.querySelector(\"> tbody\")) {\n continue;\n }\n const tr = table.querySelectorAll(\"> tr\");\n if (tr.length >= 1) {\n this.report(tr[0], \"Prefer to wrap <tr> elements in <tbody>\");\n }\n }\n });\n }\n}\n//# sourceMappingURL=prefer-tbody.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n tags: [\"script\", \"style\"],\n};\nexport default class RequireCSPNonce extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n tags: {\n type: \"array\",\n items: {\n enum: [\"script\", \"style\"],\n type: \"string\",\n },\n },\n };\n }\n documentation() {\n return {\n description: [\n \"Required Content-Security-Policy (CSP) nonce is missing or empty.\",\n \"\",\n \"This is set by the `nonce` attribute and must match the `Content-Security-Policy` header.\",\n \"For instance, if the header contains `script-src 'nonce-r4nd0m'` the `nonce` attribute must be set to `nonce=\\\"r4nd0m\\\">`\",\n \"\",\n \"The nonce should be unique per each request and set to a cryptography secure random token.\",\n \"It is used to prevent cross site scripting (XSS) by preventing malicious actors from injecting scripts onto the page.\",\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n var _a;\n const { tags } = this.options;\n const node = event.previous;\n /* ignore other tags */\n if (!tags.includes(node.tagName)) {\n return;\n }\n /* ignore if nonce is set to non-empty value (or dynamic) */\n const nonce = (_a = node.getAttribute(\"nonce\")) === null || _a === void 0 ? void 0 : _a.value;\n if (nonce && nonce !== \"\") {\n return;\n }\n /* ignore <script src> */\n if (node.is(\"script\") && node.hasAttribute(\"src\")) {\n return;\n }\n const message = `required CSP nonce is missing`;\n this.report(node, message, node.location);\n });\n }\n}\n//# sourceMappingURL=require-csp-nonce.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n target: \"all\",\n include: null,\n exclude: null,\n};\nconst crossorigin = new RegExp(\"^(\\\\w+://|//)\"); /* e.g. https:// or // */\nconst supportSri = {\n link: \"href\",\n script: \"src\",\n};\nexport default class RequireSri extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.target = this.options.target;\n }\n static schema() {\n return {\n target: {\n enum: [\"all\", \"crossorigin\"],\n type: \"string\",\n },\n include: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n exclude: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"null\",\n },\n ],\n },\n };\n }\n documentation() {\n return {\n description: `Subresource Integrity (SRI) \\`integrity\\` attribute is required to prevent manipulation from Content Delivery Networks or other third-party hosting.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n /* only handle thats supporting and requires sri */\n const node = event.previous;\n if (!(this.supportSri(node) && this.needSri(node))) {\n return;\n }\n /* check if sri attribute is present */\n if (node.hasAttribute(\"integrity\")) {\n return;\n }\n this.report(node, `SRI \"integrity\" attribute is required on <${node.tagName}> element`, node.location);\n });\n }\n supportSri(node) {\n return Object.keys(supportSri).includes(node.tagName);\n }\n needSri(node) {\n const attr = this.elementSourceAttr(node);\n if (!attr) {\n return false;\n }\n if (attr.value === null || attr.value === \"\" || attr.isDynamic) {\n return false;\n }\n const url = attr.value.toString();\n if (this.target === \"all\" || crossorigin.test(url)) {\n return !this.isIgnored(url);\n }\n return false;\n }\n elementSourceAttr(node) {\n const key = supportSri[node.tagName];\n return node.getAttribute(key);\n }\n isIgnored(url) {\n return this.isKeywordIgnored(url, (list, it) => {\n return list.some((pattern) => it.includes(pattern));\n });\n }\n}\n//# sourceMappingURL=require-sri.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class ScriptElement extends Rule {\n documentation() {\n return {\n description: \"The end tag for `<script>` is a hard requirement and must never be omitted even when using the `src` attribute.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.target; // The current element being closed.\n if (!node || node.tagName !== \"script\") {\n return;\n }\n if (node.closed !== NodeClosed.EndTag) {\n this.report(node, `End tag for <${node.tagName}> must not be omitted`);\n }\n });\n }\n}\n//# sourceMappingURL=script-element.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nconst javascript = [\n \"\",\n \"application/ecmascript\",\n \"application/javascript\",\n \"text/ecmascript\",\n \"text/javascript\",\n];\nexport default class ScriptType extends Rule {\n documentation() {\n return {\n description: \"While valid the HTML5 standard encourages authors to omit the type element for JavaScript resources.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.previous;\n if (node.tagName !== \"script\") {\n return;\n }\n const attr = node.getAttribute(\"type\");\n if (!attr || attr.isDynamic) {\n return;\n }\n const value = attr.value ? attr.value.toString() : \"\";\n if (!this.isJavascript(value)) {\n return;\n }\n this.report(node, '\"type\" attribute is unnecessary for javascript resources', attr.keyLocation);\n });\n }\n isJavascript(mime) {\n /* remove mime parameters, e.g. \";charset=utf-8\" */\n const type = mime.replace(/;.*/, \"\");\n return javascript.includes(type);\n }\n}\n//# sourceMappingURL=script-type.js.map","import { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class SvgFocusable extends Rule {\n documentation() {\n return {\n description: `Inline SVG elements in IE are focusable by default which may cause issues with tab-ordering. The \\`focusable\\` attribute should explicitly be set to avoid unintended behaviour.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", (event) => {\n if (event.target.is(\"svg\")) {\n this.validate(event.target);\n }\n });\n }\n validate(svg) {\n if (svg.hasAttribute(\"focusable\")) {\n return;\n }\n this.report(svg, `<${svg.tagName}> is missing required \"focusable\" attribute`);\n }\n}\n//# sourceMappingURL=svg-focusable.js.map","import { sliceLocation } from \"../context\";\nimport { isElementNode, isTextNode } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nconst defaults = {\n characters: [\n { pattern: \" \", replacement: \"&nbsp;\", description: \"non-breaking space\" },\n { pattern: \"-\", replacement: \"&#8209;\", description: \"non-breaking hyphen\" },\n ],\n ignoreClasses: [],\n ignoreStyle: true,\n};\nexport function constructRegex(characters) {\n const disallowed = characters\n .map((it) => {\n return it.pattern;\n })\n .join(\"|\");\n const pattern = `(${disallowed})`;\n /* eslint-disable-next-line security/detect-non-literal-regexp -- technical debt, should do more input sanitation */\n return new RegExp(pattern, \"g\");\n}\nfunction getText(node) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- this will always match something, it cannot be null */\n const match = node.textContent.match(/^(\\s*)(.*)$/);\n const [, leading, text] = match;\n return [leading.length, text.trimEnd()];\n}\n/**\n * Node 12 does not support String.matchAll, this simulates it's behavior.\n */\nfunction matchAll(text, regexp) {\n /* eslint-disable-next-line security/detect-non-literal-regexp -- makes copy of existing one only */\n const copy = new RegExp(regexp);\n const matches = [];\n let match;\n while ((match = copy.exec(text))) {\n matches.push(match);\n }\n return matches;\n}\nexport default class TelNonBreaking extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.regex = constructRegex(this.options.characters);\n }\n static schema() {\n return {\n characters: {\n type: \"array\",\n items: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n pattern: {\n type: \"string\",\n },\n replacement: {\n type: \"string\",\n },\n description: {\n type: \"string\",\n },\n },\n },\n },\n ignoreClasses: {\n type: \"array\",\n items: {\n type: \"string\",\n },\n },\n ignoreStyle: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n const { characters } = this.options;\n const replacements = characters.map((it) => {\n return ` - \\`${it.pattern}\\` - replace with \\`${it.replacement}\\` (${it.description}).`;\n });\n return {\n description: [\n `The \\`${context.pattern}\\` character should be replaced with \\`${context.replacement}\\` character (${context.description}) when used in a telephone number.`,\n \"\",\n \"Unless non-breaking characters is used there could be a line break inserted at that character.\",\n \"Line breaks make is harder to read and understand the telephone number.\",\n \"\",\n \"The following characters should be avoided:\",\n \"\",\n ...replacements,\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", this.isRelevant, (event) => {\n const { target } = event;\n if (this.isIgnored(target)) {\n return;\n }\n this.walk(target, target);\n });\n }\n isRelevant(event) {\n const { target } = event;\n /* should only deal with anchors */\n if (!target.is(\"a\")) {\n return false;\n }\n /* ignore if anchor does not have tel href */\n const attr = target.getAttribute(\"href\");\n if (!attr || !attr.valueMatches(/^tel:/, false)) {\n return false;\n }\n return true;\n }\n isIgnoredClass(node) {\n const { ignoreClasses } = this.options;\n const { classList } = node;\n return ignoreClasses.some((it) => classList.contains(it));\n }\n isIgnoredStyle(node) {\n const { ignoreStyle } = this.options;\n const { style } = node;\n if (!ignoreStyle) {\n return false;\n }\n if (style[\"white-space\"] === \"nowrap\" || style[\"white-space\"] === \"pre\") {\n return true;\n }\n return false;\n }\n isIgnored(node) {\n return this.isIgnoredClass(node) || this.isIgnoredStyle(node);\n }\n walk(anchor, node) {\n for (const child of node.childNodes) {\n if (isTextNode(child)) {\n this.detectDisallowed(anchor, child);\n }\n else if (isElementNode(child)) {\n this.walk(anchor, child);\n }\n }\n }\n detectDisallowed(anchor, node) {\n const [offset, text] = getText(node);\n const matches = matchAll(text, this.regex);\n for (const match of matches) {\n const detected = match[0];\n const entry = this.options.characters.find((it) => it.pattern === detected);\n /* istanbul ignore next: should never happen and cannot be tested, just a sanity check */\n if (!entry) {\n throw new Error(`Failed to find entry for \"${detected}\" when searching text \"${text}\"`);\n }\n const message = `\"${detected}\" should be replaced with \"${entry.replacement}\" (${entry.description}) in telephone number`;\n const begin = offset + match.index;\n const end = begin + detected.length;\n const location = sliceLocation(node.location, begin, end);\n const context = entry;\n this.report(anchor, message, location, context);\n }\n }\n}\n//# sourceMappingURL=tel-non-breaking.js.map","import { isTextNode } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nimport { TextContent as TextContentEnum } from \"../meta\";\nimport { classifyNodeText } from \"./helper\";\nimport { TextClassification } from \"./helper/text\";\nimport { inAccessibilityTree } from \"./helper/a11y\";\n/**\n * Check if attribute is present and non-empty or dynamic.\n */\nfunction hasNonEmptyAttribute(node, key) {\n const attr = node.getAttribute(key);\n return Boolean(attr && attr.valueMatches(/.+/, true));\n}\n/**\n * Check if element has default text.\n *\n * Only <input type=\"submit\"> and <input type=\"reset\"> at the moment.\n */\nfunction hasDefaultText(node) {\n /* only input element have default text */\n if (!node.is(\"input\")) {\n return false;\n }\n /* default text is not available if value attribute is present */\n if (node.hasAttribute(\"value\")) {\n return false;\n }\n /* default text is only present when type is submit or reset */\n const type = node.getAttribute(\"type\");\n return Boolean(type && type.valueMatches(/submit|reset/, false));\n}\nfunction isNonEmptyText(node) {\n if (isTextNode(node)) {\n return node.isDynamic || node.textContent.trim() !== \"\";\n }\n else {\n return false;\n }\n}\n/**\n * Walk nodes (depth-first, preorder) searching for accessible text. Children\n * hidden from accessibility tree are ignored.\n *\n * For each node the current conditions satisfies as accessible text:\n *\n * - Non-empty or dynamic `aria-label`\n * - Non-empty or dynamic `aria-labelledby` (reference not validated, use [[no-missing-references]]\n * - Image with non-empty or dynamic `alt` text\n * - Elements with default text\n */\nfunction haveAccessibleText(node) {\n if (!inAccessibilityTree(node)) {\n return false;\n }\n /* check direct descendants for non-empty or dynamic text */\n const haveText = node.childNodes.some((child) => isNonEmptyText(child));\n if (haveText) {\n return true;\n }\n if (hasNonEmptyAttribute(node, \"aria-label\")) {\n return true;\n }\n if (hasNonEmptyAttribute(node, \"aria-labelledby\")) {\n return true;\n }\n if (node.is(\"img\") && hasNonEmptyAttribute(node, \"alt\")) {\n return true;\n }\n if (hasDefaultText(node)) {\n return true;\n }\n return node.childElements.some((child) => {\n return haveAccessibleText(child);\n });\n}\nexport default class TextContent extends Rule {\n documentation(context) {\n const doc = {\n description: `The textual content for this element is not valid.`,\n url: ruleDocumentationUrl(__filename),\n };\n switch (context.textContent) {\n case TextContentEnum.NONE:\n doc.description = `The \\`<${context.tagName}>\\` element must not have textual content.`;\n break;\n case TextContentEnum.REQUIRED:\n doc.description = `The \\`<${context.tagName}>\\` element must have textual content.`;\n break;\n case TextContentEnum.ACCESSIBLE:\n doc.description = `The \\`<${context.tagName}>\\` element must have accessible text.`;\n break;\n }\n return doc;\n }\n static filter(event) {\n const { target } = event;\n /* skip elements without metadata */\n if (!target.meta) {\n return false;\n }\n /* skip elements without explicit and default textContent */\n const { textContent } = target.meta;\n if (!textContent || textContent === TextContentEnum.DEFAULT) {\n return false;\n }\n return true;\n }\n setup() {\n this.on(\"element:ready\", TextContent.filter, (event) => {\n const target = event.target;\n const { textContent } = target.meta;\n switch (textContent) {\n case TextContentEnum.NONE:\n this.validateNone(target);\n break;\n case TextContentEnum.REQUIRED:\n this.validateRequired(target);\n break;\n case TextContentEnum.ACCESSIBLE:\n this.validateAccessible(target);\n break;\n }\n });\n }\n /**\n * Validate element has empty text (inter-element whitespace is not considered text)\n */\n validateNone(node) {\n if (classifyNodeText(node) === TextClassification.EMPTY_TEXT) {\n return;\n }\n this.reportError(node, node.meta, `${node.annotatedName} must not have text content`);\n }\n /**\n * Validate element has any text (inter-element whitespace is not considered text)\n */\n validateRequired(node) {\n if (classifyNodeText(node) !== TextClassification.EMPTY_TEXT) {\n return;\n }\n this.reportError(node, node.meta, `${node.annotatedName} must have text content`);\n }\n /**\n * Validate element has accessible text (either regular text or text only\n * exposed in accessibility tree via aria-label or similar)\n */\n validateAccessible(node) {\n /* skip this element if the element isn't present in accessibility tree */\n if (!inAccessibilityTree(node)) {\n return;\n }\n /* if the element or a child has aria-label, alt or default text, etc the\n * element has accessible text */\n if (haveAccessibleText(node)) {\n return;\n }\n this.reportError(node, node.meta, `${node.annotatedName} must have accessible text`);\n }\n reportError(node, meta, message) {\n this.report(node, message, null, {\n tagName: node.tagName,\n textContent: meta.textContent,\n });\n }\n}\n//# sourceMappingURL=text-content.js.map","import { sliceLocation } from \"../context\";\nimport { NodeType } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nimport entities from \"../elements/entities.json\";\nconst defaults = {\n ignoreCase: false,\n requireSemicolon: true,\n};\nconst regexp = /&(?:[a-z0-9]+|#x?[0-9a-f]+)(;|[^a-z0-9]|$)/gi;\nconst lowercaseEntities = entities.map((it) => it.toLowerCase());\nfunction isNumerical(entity) {\n return entity.startsWith(\"&#\");\n}\nfunction getLocation(location, entity, match) {\n var _a;\n /* istanbul ignore next: never happens in practive */\n const index = (_a = match.index) !== null && _a !== void 0 ? _a : 0;\n return sliceLocation(location, index, index + entity.length);\n}\nfunction getDescription(context, options) {\n const url = \"https://html.spec.whatwg.org/multipage/named-characters.html\";\n let message;\n if (context.terminated) {\n message = `Unrecognized character reference \\`${context.entity}\\`.`;\n }\n else {\n message = `Character reference \\`${context.entity}\\` must be terminated by a semicolon.`;\n }\n return [\n message,\n `HTML5 defines a set of [valid character references](${url}) but this is not a valid one.`,\n \"\",\n \"Ensure that:\",\n \"\",\n \"1. The character is one of the listed names.\",\n ...(options.ignoreCase ? [] : [\"1. The case is correct (names are case sensitive).\"]),\n ...(options.requireSemicolon ? [\"1. The name is terminated with a `;`.\"] : []),\n ].join(\"\\n\");\n}\nexport default class UnknownCharReference extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n ignoreCase: {\n type: \"boolean\",\n },\n requireSemicolon: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n return {\n description: getDescription(context, this.options),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"element:ready\", (event) => {\n const node = event.target;\n /* only iterate over direct descendants */\n for (const child of node.childNodes) {\n if (child.nodeType !== NodeType.TEXT_NODE) {\n continue;\n }\n this.findCharacterReferences(node, child.textContent, child.location, {\n isAttribute: false,\n });\n }\n });\n this.on(\"attr\", (event) => {\n /* boolean attributes has no value so nothing to validate */\n if (!event.value) {\n return;\n }\n this.findCharacterReferences(event.target, event.value.toString(), event.valueLocation, {\n isAttribute: true,\n });\n });\n }\n get entities() {\n if (this.options.ignoreCase) {\n return lowercaseEntities;\n }\n else {\n return entities;\n }\n }\n findCharacterReferences(node, text, location, { isAttribute }) {\n const isQuerystring = isAttribute && text.includes(\"?\");\n for (const match of this.getMatches(text)) {\n this.validateCharacterReference(node, location, match, { isQuerystring });\n }\n }\n validateCharacterReference(node, location, foobar, { isQuerystring }) {\n const { requireSemicolon } = this.options;\n const { match, entity, raw, terminated } = foobar;\n /* assume numeric entities are valid for now */\n if (isNumerical(entity)) {\n return;\n }\n /* special case: when attributes use query parameters we skip checking\n * unterminated attributes */\n if (isQuerystring && !terminated) {\n return;\n }\n const found = this.entities.includes(entity);\n /* ignore if this is a known character reference name */\n if (found && (terminated || !requireSemicolon)) {\n return;\n }\n if (found && !terminated) {\n const entityLocation = getLocation(location, entity, match);\n const message = `Character reference \"{{ entity }}\" must be terminated by a semicolon`;\n const context = {\n entity: raw,\n terminated: false,\n };\n this.report(node, message, entityLocation, context);\n return;\n }\n const entityLocation = getLocation(location, entity, match);\n const message = `Unrecognized character reference \"{{ entity }}\"`;\n const context = {\n entity: raw,\n terminated: true,\n };\n this.report(node, message, entityLocation, context);\n }\n *getMatches(text) {\n let match;\n do {\n match = regexp.exec(text);\n if (match) {\n const terminator = match[1]; // === \";\" ? match[1] : \"\";\n const terminated = terminator === \";\";\n const needSlice = terminator !== \";\" && terminator.length > 0;\n const entity = needSlice ? match[0].slice(0, -1) : match[0];\n if (this.options.ignoreCase) {\n yield { match, entity: entity.toLowerCase(), raw: entity, terminated };\n }\n else {\n yield { match, entity, raw: entity, terminated };\n }\n }\n } while (match);\n }\n}\n//# sourceMappingURL=unrecognized-char-ref.js.map","import { DynamicValue } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport var RuleContext;\n(function (RuleContext) {\n RuleContext[RuleContext[\"EMPTY\"] = 1] = \"EMPTY\";\n RuleContext[RuleContext[\"WHITESPACE\"] = 2] = \"WHITESPACE\";\n RuleContext[RuleContext[\"LEADING_CHARACTER\"] = 3] = \"LEADING_CHARACTER\";\n RuleContext[RuleContext[\"DISALLOWED_CHARACTER\"] = 4] = \"DISALLOWED_CHARACTER\";\n})(RuleContext || (RuleContext = {}));\nconst defaults = {\n relaxed: false,\n};\nexport default class ValidID extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n }\n static schema() {\n return {\n relaxed: {\n type: \"boolean\",\n },\n };\n }\n documentation(context) {\n const { relaxed } = this.options;\n const message = this.messages[context]\n .replace(\"id\", \"ID\")\n .replace(/^(.)/, (m) => m.toUpperCase());\n const relaxedDescription = relaxed\n ? []\n : [\n \" - ID must begin with a letter\",\n \" - ID must only contain alphanumerical characters, `-` and `_`\",\n ];\n return {\n description: [\n `${message}.`,\n \"\",\n \"Under the current configuration the following rules are applied:\",\n \"\",\n \" - ID must not be empty\",\n \" - ID must not contain any whitespace characters\",\n ...relaxedDescription,\n ].join(\"\\n\"),\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"attr\", this.isRelevant, (event) => {\n const { value } = event;\n if (value === null || value instanceof DynamicValue) {\n return;\n }\n if (value === \"\") {\n const context = RuleContext.EMPTY;\n this.report(event.target, this.messages[context], event.location, context);\n return;\n }\n if (value.match(/\\s/)) {\n const context = RuleContext.WHITESPACE;\n this.report(event.target, this.messages[context], event.valueLocation, context);\n return;\n }\n const { relaxed } = this.options;\n if (relaxed) {\n return;\n }\n if (value.match(/^[^a-zA-Z]/)) {\n const context = RuleContext.LEADING_CHARACTER;\n this.report(event.target, this.messages[context], event.valueLocation, context);\n return;\n }\n if (value.match(/[^a-zA-Z0-9-_]/)) {\n const context = RuleContext.DISALLOWED_CHARACTER;\n this.report(event.target, this.messages[context], event.valueLocation, context);\n }\n });\n }\n get messages() {\n return {\n [RuleContext.EMPTY]: \"element id must not be empty\",\n [RuleContext.WHITESPACE]: \"element id must not contain whitespace\",\n [RuleContext.LEADING_CHARACTER]: \"element id must begin with a letter\",\n [RuleContext.DISALLOWED_CHARACTER]: \"element id must only contain alphanumerical, dash and underscore characters\",\n };\n }\n isRelevant(event) {\n return event.key === \"id\";\n }\n}\n//# sourceMappingURL=valid-id.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nexport default class VoidContent extends Rule {\n documentation(tagName) {\n const doc = {\n description: \"HTML void elements cannot have any content and must not have content or end tag.\",\n url: ruleDocumentationUrl(__filename),\n };\n if (tagName) {\n doc.description = `<${tagName}> is a void element and must not have content or end tag.`;\n }\n return doc;\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.target; // The current element being closed.\n if (!node) {\n return;\n }\n if (!node.voidElement) {\n return;\n }\n if (node.closed === NodeClosed.EndTag) {\n this.report(null, `End tag for <${node.tagName}> must be omitted`, node.location, node.tagName);\n }\n });\n }\n}\n//# sourceMappingURL=void-content.js.map","import { NodeClosed } from \"../dom\";\nimport { Rule, ruleDocumentationUrl } from \"../rule\";\nvar Style;\n(function (Style) {\n Style[Style[\"AlwaysOmit\"] = 1] = \"AlwaysOmit\";\n Style[Style[\"AlwaysSelfclose\"] = 2] = \"AlwaysSelfclose\";\n})(Style || (Style = {}));\nconst defaults = {\n style: \"omit\",\n};\nexport default class VoidStyle extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n this.style = parseStyle(this.options.style);\n }\n static schema() {\n return {\n style: {\n enum: [\"omit\", \"selfclose\", \"selfclosing\"],\n type: \"string\",\n },\n };\n }\n documentation(context) {\n const [desc, end] = styleDescription(context.style);\n return {\n description: `The current configuration requires void elements to ${desc}, use <${context.tagName}${end}> instead.`,\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const active = event.previous; // The current active element (that is, the current element on the stack)\n if (active.meta) {\n this.validateActive(active);\n }\n });\n }\n validateActive(node) {\n /* ignore non-void elements, they must be closed with regular end tag */\n if (!node.voidElement) {\n return;\n }\n if (this.shouldBeOmitted(node)) {\n this.reportError(node, `Expected omitted end tag <${node.tagName}> instead of self-closing element <${node.tagName}/>`);\n }\n if (this.shouldBeSelfClosed(node)) {\n this.reportError(node, `Expected self-closing element <${node.tagName}/> instead of omitted end-tag <${node.tagName}>`);\n }\n }\n reportError(node, message) {\n const context = {\n style: this.style,\n tagName: node.tagName,\n };\n super.report(node, message, null, context);\n }\n shouldBeOmitted(node) {\n return this.style === Style.AlwaysOmit && node.closed === NodeClosed.VoidSelfClosed;\n }\n shouldBeSelfClosed(node) {\n return this.style === Style.AlwaysSelfclose && node.closed === NodeClosed.VoidOmitted;\n }\n}\nfunction parseStyle(name) {\n switch (name) {\n case \"omit\":\n return Style.AlwaysOmit;\n case \"selfclose\":\n case \"selfclosing\":\n return Style.AlwaysSelfclose;\n /* istanbul ignore next: covered by schema validation */\n default:\n throw new Error(`Invalid style \"${name}\" for \"void-style\" rule`);\n }\n}\nfunction styleDescription(style) {\n switch (style) {\n case Style.AlwaysOmit:\n return [\"omit end tag\", \"\"];\n case Style.AlwaysSelfclose:\n return [\"be self-closed\", \"/\"];\n // istanbul ignore next: will only happen if new styles are added, otherwise this isn't reached\n default:\n throw new Error(`Unknown style`);\n }\n}\n//# sourceMappingURL=void-style.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nimport { hasAltText, hasAriaLabel } from \"../helper\";\nimport { inAccessibilityTree } from \"../helper/a11y\";\nimport { classifyNodeText, TextClassification } from \"../helper/text\";\nexport default class H30 extends Rule {\n documentation() {\n return {\n description: \"WCAG 2.1 requires each `<a>` anchor link to have a text describing the purpose of the link using either plain text or an `<img>` with the `alt` attribute set.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const links = event.document.getElementsByTagName(\"a\");\n for (const link of links) {\n /* ignore links with aria-hidden=\"true\" */\n if (!inAccessibilityTree(link)) {\n continue;\n }\n /* check if text content is present (or dynamic) */\n const textClassification = classifyNodeText(link, { ignoreHiddenRoot: true });\n if (textClassification !== TextClassification.EMPTY_TEXT) {\n continue;\n }\n /* check if image with alt-text is present */\n const images = link.querySelectorAll(\"img\");\n if (images.some((image) => hasAltText(image))) {\n continue;\n }\n /* check if aria-label is present on either the <a> element or a descendant */\n const labels = link.querySelectorAll(\"[aria-label]\");\n if (hasAriaLabel(link) || labels.some((cur) => hasAriaLabel(cur))) {\n continue;\n }\n this.report(link, \"Anchor link must have a text describing its purpose\");\n }\n });\n }\n}\n//# sourceMappingURL=h30.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nexport default class H32 extends Rule {\n documentation() {\n return {\n description: \"WCAG 2.1 requires each `<form>` element to have at least one submit button.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n /* query all tags with form property, normally this is only the <form> tag\n * but with custom element metadata other tags might be considered form\n * (usually a component wrapping a <form> element) */\n const formTags = this.getTagsWithProperty(\"form\");\n const formSelector = formTags.join(\",\");\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const forms = document.querySelectorAll(formSelector);\n for (const form of forms) {\n /* find nested submit buttons */\n if (hasNestedSubmit(form)) {\n continue;\n }\n /* find explicitly associated submit buttons */\n if (hasAssociatedSubmit(document, form)) {\n continue;\n }\n this.report(form, `<${form.tagName}> element must have a submit button`);\n }\n });\n }\n}\nfunction isSubmit(node) {\n const type = node.getAttribute(\"type\");\n return Boolean(type && type.valueMatches(/submit|image/));\n}\nfunction isAssociated(id, node) {\n const form = node.getAttribute(\"form\");\n return Boolean(form && form.valueMatches(id, true));\n}\nfunction hasNestedSubmit(form) {\n const matches = form\n .querySelectorAll(\"button,input\")\n .filter(isSubmit)\n .filter((node) => !node.hasAttribute(\"form\"));\n return matches.length > 0;\n}\nfunction hasAssociatedSubmit(document, form) {\n const { id } = form;\n if (!id) {\n return false;\n }\n const matches = document\n .querySelectorAll(\"button[form],input[form]\")\n .filter(isSubmit)\n .filter((node) => isAssociated(id, node));\n return matches.length > 0;\n}\n//# sourceMappingURL=h32.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nimport { hasAltText } from \"../helper\";\nexport default class H36 extends Rule {\n documentation() {\n return {\n description: 'WCAG 2.1 requires all images used as submit buttons to have a textual description using the alt attribute. The alt text cannot be empty (`alt=\"\"`).',\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n /* only handle input elements */\n const node = event.previous;\n if (node.tagName !== \"input\")\n return;\n /* only handle images with type=\"image\" */\n if (node.getAttributeValue(\"type\") !== \"image\") {\n return;\n }\n if (!hasAltText(node)) {\n this.report(node, \"image used as submit button must have alt text\");\n }\n });\n }\n}\n//# sourceMappingURL=h36.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nimport { inAccessibilityTree } from \"../helper/a11y\";\nconst defaults = {\n allowEmpty: true,\n alias: [],\n};\nfunction needsAlt(node) {\n if (node.is(\"img\")) {\n return true;\n }\n if (node.is(\"input\") && node.getAttributeValue(\"type\") === \"image\") {\n return true;\n }\n return false;\n}\nfunction getTag(node) {\n var _a;\n return node.is(\"input\")\n ? `<input type=\"${ /* istanbul ignore next */(_a = node.getAttributeValue(\"type\")) !== null && _a !== void 0 ? _a : \"\"}\">`\n : `<${node.tagName}>`;\n}\nexport default class H37 extends Rule {\n constructor(options) {\n super({ ...defaults, ...options });\n /* ensure alias is array */\n if (!Array.isArray(this.options.alias)) {\n this.options.alias = [this.options.alias];\n }\n }\n static schema() {\n return {\n alias: {\n anyOf: [\n {\n items: {\n type: \"string\",\n },\n type: \"array\",\n },\n {\n type: \"string\",\n },\n ],\n },\n allowEmpty: {\n type: \"boolean\",\n },\n };\n }\n documentation() {\n return {\n description: \"Both HTML5 and WCAG 2.0 requires images to have a alternative text for each image.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.previous;\n /* only validate images */\n if (!node || !needsAlt(node)) {\n return;\n }\n /* ignore images with aria-hidden=\"true\" or role=\"presentation\" */\n if (!inAccessibilityTree(node)) {\n return;\n }\n /* validate plain alt-attribute */\n if (Boolean(node.getAttributeValue(\"alt\")) ||\n Boolean(node.hasAttribute(\"alt\") && this.options.allowEmpty)) {\n return;\n }\n /* validate if any non-empty alias is present */\n for (const attr of this.options.alias) {\n if (node.getAttribute(attr)) {\n return;\n }\n }\n if (node.hasAttribute(\"alt\")) {\n const attr = node.getAttribute(\"alt\");\n /* istanbul ignore next */\n this.report(node, `${getTag(node)} cannot have empty \"alt\" attribute`, attr === null || attr === void 0 ? void 0 : attr.keyLocation);\n }\n else {\n this.report(node, `${getTag(node)} is missing required \"alt\" attribute`, node.location);\n }\n });\n }\n}\n//# sourceMappingURL=h37.js.map","var _a;\nimport { Rule, ruleDocumentationUrl } from \"../../rule\";\nimport html5 from \"../../elements/html5\";\nimport { naturalJoin } from \"../../utils/natural-join\";\nimport { DynamicValue } from \"../../dom\";\n/* istanbul ignore next: this will always be present for the <th>\n * attribute (or the tests would fail) */\nconst { enum: validScopes } = (_a = html5.th.attributes) === null || _a === void 0 ? void 0 : _a.scope;\nconst joinedScopes = naturalJoin(validScopes);\nexport default class H63 extends Rule {\n documentation() {\n return {\n description: \"H63: Using the scope attribute to associate header cells and data cells in data tables\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:ready\", (event) => {\n var _a, _b;\n const node = event.target;\n /* only validate th */\n if (!node || node.tagName !== \"th\") {\n return;\n }\n const scope = node.getAttribute(\"scope\");\n const value = scope === null || scope === void 0 ? void 0 : scope.value;\n /* ignore dynamic scope */\n if (value instanceof DynamicValue) {\n return;\n }\n /* ignore elements with valid scope values */\n if (value && validScopes.includes(value)) {\n return;\n }\n const message = `<th> element must have a valid scope attribute: ${joinedScopes}`;\n const location = (_b = (_a = scope === null || scope === void 0 ? void 0 : scope.valueLocation) !== null && _a !== void 0 ? _a : scope === null || scope === void 0 ? void 0 : scope.keyLocation) !== null && _b !== void 0 ? _b : node.location;\n this.report(node, message, location);\n });\n }\n}\n//# sourceMappingURL=h63.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nexport default class H67 extends Rule {\n documentation() {\n return {\n description: \"A decorative image cannot have a title attribute. Either remove `title` or add a descriptive `alt` text.\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"tag:end\", (event) => {\n const node = event.target;\n /* only validate images */\n if (!node || node.tagName !== \"img\") {\n return;\n }\n /* ignore images without title */\n const title = node.getAttribute(\"title\");\n if (!title || title.value === \"\") {\n return;\n }\n /* ignore elements with non-empty alt-text */\n const alt = node.getAttributeValue(\"alt\");\n if (alt && alt !== \"\") {\n return;\n }\n this.report(node, \"<img> with empty alt text cannot have title attribute\", title.keyLocation);\n });\n }\n}\n//# sourceMappingURL=h67.js.map","import { Rule, ruleDocumentationUrl } from \"../../rule\";\nexport default class H71 extends Rule {\n documentation() {\n return {\n description: \"H71: Providing a description for groups of form controls using fieldset and legend elements\",\n url: ruleDocumentationUrl(__filename),\n };\n }\n setup() {\n this.on(\"dom:ready\", (event) => {\n const { document } = event;\n const fieldsets = document.querySelectorAll(this.selector);\n for (const fieldset of fieldsets) {\n this.validate(fieldset);\n }\n });\n }\n validate(fieldset) {\n const legend = fieldset.querySelectorAll(\"> legend\");\n if (legend.length === 0) {\n this.reportNode(fieldset);\n }\n }\n reportNode(node) {\n super.report(node, `${node.annotatedName} must have a <legend> as the first child`);\n }\n get selector() {\n return this.getTagsDerivedFrom(\"fieldset\").join(\",\");\n }\n}\n//# sourceMappingURL=h71.js.map","import H30 from \"./h30\";\nimport H32 from \"./h32\";\nimport H36 from \"./h36\";\nimport H37 from \"./h37\";\nimport H63 from \"./h63\";\nimport H67 from \"./h67\";\nimport H71 from \"./h71\";\nconst bundledRules = {\n \"wcag/h30\": H30,\n \"wcag/h32\": H32,\n \"wcag/h36\": H36,\n \"wcag/h37\": H37,\n \"wcag/h63\": H63,\n \"wcag/h67\": H67,\n \"wcag/h71\": H71,\n};\nexport default bundledRules;\n//# sourceMappingURL=index.js.map","import AllowedLinks from \"./allowed-links\";\nimport AreaAlt from \"./area-alt\";\nimport AriaHiddenBody from \"./aria-hidden-body\";\nimport AriaLabelMisuse from \"./aria-label-misuse\";\nimport AttrCase from \"./attr-case\";\nimport AttrDelimiter from \"./attr-delimiter\";\nimport AttrPattern from \"./attr-pattern\";\nimport AttrQuotes from \"./attr-quotes\";\nimport AttrSpacing from \"./attr-spacing\";\nimport AttributeAllowedValues from \"./attribute-allowed-values\";\nimport AttributeBooleanStyle from \"./attribute-boolean-style\";\nimport AttributeEmptyStyle from \"./attribute-empty-style\";\nimport AttributeMisuse from \"./attribute-misuse\";\nimport ClassPattern from \"./class-pattern\";\nimport CloseAttr from \"./close-attr\";\nimport CloseOrder from \"./close-order\";\nimport Deprecated from \"./deprecated\";\nimport DeprecatedRule from \"./deprecated-rule\";\nimport DoctypeHtml from \"./doctype-html\";\nimport DoctypeStyle from \"./doctype-style\";\nimport ElementCase from \"./element-case\";\nimport ElementName from \"./element-name\";\nimport ElementPermittedContent from \"./element-permitted-content\";\nimport ElementPermittedOccurrences from \"./element-permitted-occurrences\";\nimport ElementPermittedOrder from \"./element-permitted-order\";\nimport ElementPermittedParent from \"./element-permitted-parent\";\nimport ElementRequiredAncestor from \"./element-required-ancestor\";\nimport ElementRequiredAttributes from \"./element-required-attributes\";\nimport ElementRequiredContent from \"./element-required-content\";\nimport EmptyHeading from \"./empty-heading\";\nimport EmptyTitle from \"./empty-title\";\nimport FormDupName from \"./form-dup-name\";\nimport HeadingLevel from \"./heading-level\";\nimport IdPattern from \"./id-pattern\";\nimport InputAttributes from \"./input-attributes\";\nimport InputMissingLabel from \"./input-missing-label\";\nimport LongTitle from \"./long-title\";\nimport MetaRefresh from \"./meta-refresh\";\nimport MapDupName from \"./map-dup-name\";\nimport MapIdName from \"./map-id-name\";\nimport MissingDoctype from \"./missing-doctype\";\nimport MultipleLabeledControls from \"./multiple-labeled-controls\";\nimport NoAutoplay from \"./no-autoplay\";\nimport NoConditionalComment from \"./no-conditional-comment\";\nimport NoDeprecatedAttr from \"./no-deprecated-attr\";\nimport NoDupAttr from \"./no-dup-attr\";\nimport NoDupClass from \"./no-dup-class\";\nimport NoDupId from \"./no-dup-id\";\nimport NoImplicitButtonType from \"./no-implicit-button-type\";\nimport NoImplicitClose from \"./no-implicit-close\";\nimport NoInlineStyle from \"./no-inline-style\";\nimport NoMissingReferences from \"./no-missing-references\";\nimport NoMultipleMain from \"./no-multiple-main\";\nimport NoRawCharacters from \"./no-raw-characters\";\nimport NoRedundantAriaLabel from \"./no-redundant-aria-label\";\nimport NoRedundantFor from \"./no-redundant-for\";\nimport NoRedundantRole from \"./no-redundant-role\";\nimport NoSelfClosing from \"./no-self-closing\";\nimport NoStyleTag from \"./no-style-tag\";\nimport NoTrailingWhitespace from \"./no-trailing-whitespace\";\nimport NoUnknownElements from \"./no-unknown-elements\";\nimport NoUnusedDisable from \"./no-unused-disable\";\nimport NoUtf8Bom from \"./no-utf8-bom\";\nimport PreferButton from \"./prefer-button\";\nimport PreferNativeElement from \"./prefer-native-element\";\nimport PreferTbody from \"./prefer-tbody\";\nimport RequireCSPNonce from \"./require-csp-nonce\";\nimport RequireSri from \"./require-sri\";\nimport ScriptElement from \"./script-element\";\nimport ScriptType from \"./script-type\";\nimport SvgFocusable from \"./svg-focusable\";\nimport TelNonBreaking from \"./tel-non-breaking\";\nimport TextContent from \"./text-content\";\nimport UnrecognizedCharRef from \"./unrecognized-char-ref\";\nimport ValidID from \"./valid-id\";\nimport VoidContent from \"./void-content\";\nimport VoidStyle from \"./void-style\";\nimport WCAG from \"./wcag\";\nconst bundledRules = {\n \"allowed-links\": AllowedLinks,\n \"area-alt\": AreaAlt,\n \"aria-hidden-body\": AriaHiddenBody,\n \"aria-label-misuse\": AriaLabelMisuse,\n \"attr-case\": AttrCase,\n \"attr-delimiter\": AttrDelimiter,\n \"attr-pattern\": AttrPattern,\n \"attr-quotes\": AttrQuotes,\n \"attr-spacing\": AttrSpacing,\n \"attribute-allowed-values\": AttributeAllowedValues,\n \"attribute-boolean-style\": AttributeBooleanStyle,\n \"attribute-empty-style\": AttributeEmptyStyle,\n \"attribute-misuse\": AttributeMisuse,\n \"class-pattern\": ClassPattern,\n \"close-attr\": CloseAttr,\n \"close-order\": CloseOrder,\n deprecated: Deprecated,\n \"deprecated-rule\": DeprecatedRule,\n \"doctype-html\": DoctypeHtml,\n \"doctype-style\": DoctypeStyle,\n \"element-case\": ElementCase,\n \"element-name\": ElementName,\n \"element-permitted-content\": ElementPermittedContent,\n \"element-permitted-occurrences\": ElementPermittedOccurrences,\n \"element-permitted-order\": ElementPermittedOrder,\n \"element-permitted-parent\": ElementPermittedParent,\n \"element-required-ancestor\": ElementRequiredAncestor,\n \"element-required-attributes\": ElementRequiredAttributes,\n \"element-required-content\": ElementRequiredContent,\n \"empty-heading\": EmptyHeading,\n \"empty-title\": EmptyTitle,\n \"form-dup-name\": FormDupName,\n \"heading-level\": HeadingLevel,\n \"id-pattern\": IdPattern,\n \"input-attributes\": InputAttributes,\n \"input-missing-label\": InputMissingLabel,\n \"long-title\": LongTitle,\n \"map-dup-name\": MapDupName,\n \"map-id-name\": MapIdName,\n \"meta-refresh\": MetaRefresh,\n \"missing-doctype\": MissingDoctype,\n \"multiple-labeled-controls\": MultipleLabeledControls,\n \"no-autoplay\": NoAutoplay,\n \"no-conditional-comment\": NoConditionalComment,\n \"no-deprecated-attr\": NoDeprecatedAttr,\n \"no-dup-attr\": NoDupAttr,\n \"no-dup-class\": NoDupClass,\n \"no-dup-id\": NoDupId,\n \"no-implicit-button-type\": NoImplicitButtonType,\n \"no-implicit-close\": NoImplicitClose,\n \"no-inline-style\": NoInlineStyle,\n \"no-missing-references\": NoMissingReferences,\n \"no-multiple-main\": NoMultipleMain,\n \"no-raw-characters\": NoRawCharacters,\n \"no-redundant-aria-label\": NoRedundantAriaLabel,\n \"no-redundant-for\": NoRedundantFor,\n \"no-redundant-role\": NoRedundantRole,\n \"no-self-closing\": NoSelfClosing,\n \"no-style-tag\": NoStyleTag,\n \"no-trailing-whitespace\": NoTrailingWhitespace,\n \"no-unknown-elements\": NoUnknownElements,\n \"no-unused-disable\": NoUnusedDisable,\n \"no-utf8-bom\": NoUtf8Bom,\n \"prefer-button\": PreferButton,\n \"prefer-native-element\": PreferNativeElement,\n \"prefer-tbody\": PreferTbody,\n \"require-csp-nonce\": RequireCSPNonce,\n \"require-sri\": RequireSri,\n \"script-element\": ScriptElement,\n \"script-type\": ScriptType,\n \"svg-focusable\": SvgFocusable,\n \"tel-non-breaking\": TelNonBreaking,\n \"text-content\": TextContent,\n \"unrecognized-char-ref\": UnrecognizedCharRef,\n \"valid-id\": ValidID,\n \"void-content\": VoidContent,\n \"void-style\": VoidStyle,\n ...WCAG,\n};\nexport default bundledRules;\n//# sourceMappingURL=index.js.map","export default {};\n//# sourceMappingURL=default.js.map","const config = {\n rules: {\n \"area-alt\": [\"error\", { accessible: true }],\n \"aria-hidden-body\": \"error\",\n \"aria-label-misuse\": \"error\",\n \"deprecated-rule\": \"warn\",\n \"empty-heading\": \"error\",\n \"empty-title\": \"error\",\n \"meta-refresh\": \"error\",\n \"multiple-labeled-controls\": \"error\",\n \"no-autoplay\": [\"error\", { include: [\"audio\", \"video\"] }],\n \"no-dup-id\": \"error\",\n \"no-implicit-button-type\": \"error\",\n \"no-redundant-aria-label\": \"error\",\n \"no-redundant-for\": \"error\",\n \"no-redundant-role\": \"error\",\n \"prefer-native-element\": \"error\",\n \"svg-focusable\": \"off\",\n \"text-content\": \"error\",\n \"wcag/h30\": \"error\",\n \"wcag/h32\": \"error\",\n \"wcag/h36\": \"error\",\n \"wcag/h37\": \"error\",\n \"wcag/h63\": \"error\",\n \"wcag/h67\": \"error\",\n \"wcag/h71\": \"error\",\n },\n};\nexport default config;\n//# sourceMappingURL=a11y.js.map","const config = {\n rules: {\n \"input-missing-label\": \"error\",\n \"heading-level\": \"error\",\n \"missing-doctype\": \"error\",\n \"no-missing-references\": \"error\",\n \"require-sri\": \"error\",\n },\n};\nexport default config;\n//# sourceMappingURL=document.js.map","const config = {\n rules: {\n \"attr-quotes\": \"off\",\n \"void-style\": \"off\",\n },\n};\nexport default config;\n//# sourceMappingURL=prettier.js.map","const config = {\n rules: {\n \"area-alt\": [\"error\", { accessible: true }],\n \"aria-hidden-body\": \"error\",\n \"aria-label-misuse\": \"error\",\n \"attr-case\": \"error\",\n \"attr-delimiter\": \"error\",\n \"attr-quotes\": \"error\",\n \"attr-spacing\": \"error\",\n \"attribute-allowed-values\": \"error\",\n \"attribute-boolean-style\": \"error\",\n \"attribute-empty-style\": \"error\",\n \"attribute-misuse\": \"error\",\n \"close-attr\": \"error\",\n \"close-order\": \"error\",\n deprecated: \"error\",\n \"deprecated-rule\": \"warn\",\n \"doctype-html\": \"error\",\n \"doctype-style\": \"error\",\n \"element-case\": \"error\",\n \"element-name\": \"error\",\n \"element-permitted-content\": \"error\",\n \"element-permitted-occurrences\": \"error\",\n \"element-permitted-order\": \"error\",\n \"element-permitted-parent\": \"error\",\n \"element-required-ancestor\": \"error\",\n \"element-required-attributes\": \"error\",\n \"element-required-content\": \"error\",\n \"empty-heading\": \"error\",\n \"empty-title\": \"error\",\n \"form-dup-name\": \"error\",\n \"input-attributes\": \"error\",\n \"long-title\": \"error\",\n \"map-dup-name\": \"error\",\n \"map-id-name\": \"error\",\n \"meta-refresh\": \"error\",\n \"multiple-labeled-controls\": \"error\",\n \"no-autoplay\": [\"error\", { include: [\"audio\", \"video\"] }],\n \"no-conditional-comment\": \"error\",\n \"no-deprecated-attr\": \"error\",\n \"no-dup-attr\": \"error\",\n \"no-dup-class\": \"error\",\n \"no-dup-id\": \"error\",\n \"no-implicit-button-type\": \"error\",\n \"no-implicit-close\": \"error\",\n \"no-inline-style\": \"error\",\n \"no-multiple-main\": \"error\",\n \"no-raw-characters\": \"error\",\n \"no-redundant-aria-label\": \"error\",\n \"no-redundant-for\": \"error\",\n \"no-redundant-role\": \"error\",\n \"no-self-closing\": \"error\",\n \"no-trailing-whitespace\": \"error\",\n \"no-utf8-bom\": \"error\",\n \"no-unused-disable\": \"error\",\n \"prefer-button\": \"error\",\n \"prefer-native-element\": \"error\",\n \"prefer-tbody\": \"error\",\n \"script-element\": \"error\",\n \"script-type\": \"error\",\n \"svg-focusable\": \"off\",\n \"tel-non-breaking\": \"error\",\n \"text-content\": \"error\",\n \"unrecognized-char-ref\": \"error\",\n \"valid-id\": [\"error\", { relaxed: false }],\n void: \"off\",\n \"void-content\": \"error\",\n \"void-style\": \"error\",\n \"wcag/h30\": \"error\",\n \"wcag/h32\": \"error\",\n \"wcag/h36\": \"error\",\n \"wcag/h37\": \"error\",\n \"wcag/h63\": \"error\",\n \"wcag/h67\": \"error\",\n \"wcag/h71\": \"error\",\n },\n};\nexport default config;\n//# sourceMappingURL=recommended.js.map","const config = {\n rules: {\n \"area-alt\": [\"error\", { accessible: false }],\n \"attr-spacing\": \"error\",\n \"attribute-allowed-values\": \"error\",\n \"attribute-misuse\": \"error\",\n \"close-attr\": \"error\",\n \"close-order\": \"error\",\n deprecated: \"error\",\n \"deprecated-rule\": \"warn\",\n \"doctype-html\": \"error\",\n \"element-name\": \"error\",\n \"element-permitted-content\": \"error\",\n \"element-permitted-occurrences\": \"error\",\n \"element-permitted-order\": \"error\",\n \"element-permitted-parent\": \"error\",\n \"element-required-ancestor\": \"error\",\n \"element-required-attributes\": \"error\",\n \"element-required-content\": \"error\",\n \"map-dup-name\": \"error\",\n \"map-id-name\": \"error\",\n \"multiple-labeled-controls\": \"error\",\n \"no-deprecated-attr\": \"error\",\n \"no-dup-attr\": \"error\",\n \"no-dup-id\": \"error\",\n \"no-multiple-main\": \"error\",\n \"no-raw-characters\": [\"error\", { relaxed: true }],\n \"no-unused-disable\": \"error\",\n \"script-element\": \"error\",\n \"unrecognized-char-ref\": \"error\",\n \"valid-id\": [\"error\", { relaxed: true }],\n \"void-content\": \"error\",\n },\n};\nexport default config;\n//# sourceMappingURL=standard.js.map","import a11y from \"./a11y\";\nimport document from \"./document\";\nimport prettier from \"./prettier\";\nimport recommended from \"./recommended\";\nimport standard from \"./standard\";\n/**\n * @internal\n */\nconst presets = {\n \"html-validate:a11y\": a11y,\n \"html-validate:document\": document,\n \"html-validate:prettier\": prettier,\n \"html-validate:recommended\": recommended,\n \"html-validate:standard\": standard,\n /* @deprecated aliases */\n \"htmlvalidate:recommended\": recommended,\n \"htmlvalidate:document\": document,\n \"html-validate:a17y\": a11y,\n};\nexport default presets;\n//# sourceMappingURL=index.js.map","import fs from \"fs\";\nimport { ensureError, NestedError } from \"../error\";\n/**\n * A resolved configuration is a normalized configuration with all extends,\n * plugins etc resolved.\n *\n * @public\n */\nexport class ResolvedConfig {\n /**\n * @internal\n */\n constructor({ metaTable, plugins, rules, transformers }, original) {\n this.metaTable = metaTable;\n this.plugins = plugins;\n this.rules = rules;\n this.transformers = transformers;\n this.original = original;\n }\n /**\n * Returns the (merged) configuration data used to create this resolved\n * configuration.\n */\n getConfigData() {\n return this.original;\n }\n getMetaTable() {\n return this.metaTable;\n }\n getPlugins() {\n return this.plugins;\n }\n getRules() {\n return this.rules;\n }\n /**\n * Transform a source.\n *\n * When transforming zero or more new sources will be generated.\n *\n * @param source - Current source to transform.\n * @param filename - If set it is the filename used to match\n * transformer. Default is to use filename from source.\n * @returns A list of transformed sources ready for validation.\n */\n transformSource(source, filename) {\n const transformer = this.findTransformer(filename !== null && filename !== void 0 ? filename : source.filename);\n const context = {\n hasChain: (filename) => {\n return !!this.findTransformer(filename);\n },\n chain: (source, filename) => {\n return this.transformSource(source, filename);\n },\n };\n if (transformer) {\n try {\n return Array.from(transformer.fn.call(context, source), (cur) => {\n var _a;\n /* keep track of which transformers that has been run on this source\n * by appending this entry to the transformedBy array */\n (_a = cur.transformedBy) !== null && _a !== void 0 ? _a : (cur.transformedBy = []);\n cur.transformedBy.push(transformer.name);\n return cur;\n });\n }\n catch (err) {\n /* istanbul ignore next: only used as a fallback */\n const message = err instanceof Error ? err.message : String(err);\n throw new NestedError(`When transforming \"${source.filename}\": ${message}`, ensureError(err));\n }\n }\n else {\n return [source];\n }\n }\n /**\n * Wrapper around [[transformSource]] which reads a file before passing it\n * as-is to transformSource.\n *\n * @param filename - Filename to transform (according to configured\n * transformations)\n * @returns A list of transformed sources ready for validation.\n */\n transformFilename(filename) {\n const stdin = 0;\n const src = filename !== \"/dev/stdin\" ? filename : stdin;\n const data = fs.readFileSync(src, { encoding: \"utf8\" });\n const source = {\n data,\n filename,\n line: 1,\n column: 1,\n offset: 0,\n originalData: data,\n };\n return this.transformSource(source);\n }\n /**\n * Returns true if a transformer matches given filename.\n */\n canTransform(filename) {\n const entry = this.findTransformer(filename);\n return !!entry;\n }\n findTransformer(filename) {\n const match = this.transformers.find((entry) => entry.pattern.test(filename));\n return match !== null && match !== void 0 ? match : null;\n }\n}\n//# sourceMappingURL=resolved-config.js.map","import { UserError } from \"../../error\";\nfunction haveResolver(key, value) {\n return key in value;\n}\nfunction haveConfigResolver(value) {\n return haveResolver(\"resolveConfig\", value);\n}\nfunction haveElementsResolver(value) {\n return haveResolver(\"resolveElements\", value);\n}\nfunction havePluginResolver(value) {\n return haveResolver(\"resolvePlugin\", value);\n}\nfunction haveTransformerResolver(value) {\n return haveResolver(\"resolveTransformer\", value);\n}\n/**\n * @internal\n */\nexport function resolveConfig(resolvers, id, options) {\n for (const resolver of resolvers.filter(haveConfigResolver)) {\n const config = resolver.resolveConfig(id, options);\n if (config) {\n return config;\n }\n }\n throw new UserError(`Failed to load configuration from \"${id}\"`);\n}\n/**\n * @internal\n */\nexport function resolveElements(resolvers, id, options) {\n for (const resolver of resolvers.filter(haveElementsResolver)) {\n const elements = resolver.resolveElements(id, options);\n if (elements) {\n return elements;\n }\n }\n throw new UserError(`Failed to load elements from \"${id}\"`);\n}\n/**\n * @internal\n */\nexport function resolvePlugin(resolvers, id, options) {\n for (const resolver of resolvers.filter(havePluginResolver)) {\n const plugin = resolver.resolvePlugin(id, options);\n if (plugin) {\n return plugin;\n }\n }\n throw new UserError(`Failed to load plugin from \"${id}\"`);\n}\n/**\n * @internal\n */\nexport function resolveTransformer(resolvers, id, options) {\n for (const resolver of resolvers.filter(haveTransformerResolver)) {\n const transformer = resolver.resolveTransformer(id, options);\n if (transformer) {\n return transformer;\n }\n }\n throw new UserError(`Failed to load transformer from \"${id}\"`);\n}\n//# sourceMappingURL=resolve-helpers.js.map","/**\n * Create a new resolver for static content, i.e. plugins or transformers known\n * at compile time.\n *\n * @public\n * @since 8.0.0\n */\nexport function staticResolver(map = {}) {\n const { elements = {}, configs = {}, plugins = {}, transformers = {} } = map;\n return {\n name: \"static-qresolver\",\n addElements(id, value) {\n elements[id] = value;\n },\n addConfig(id, value) {\n configs[id] = value;\n },\n addPlugin(id, value) {\n plugins[id] = value;\n },\n addTransformer(id, value) {\n transformers[id] = value;\n },\n resolveElements(id) {\n var _a;\n return (_a = elements[id]) !== null && _a !== void 0 ? _a : null;\n },\n resolveConfig(id) {\n var _a;\n return (_a = configs[id]) !== null && _a !== void 0 ? _a : null;\n },\n resolvePlugin(id) {\n var _a;\n return (_a = plugins[id]) !== null && _a !== void 0 ? _a : null;\n },\n resolveTransformer(id) {\n var _a;\n return (_a = transformers[id]) !== null && _a !== void 0 ? _a : null;\n },\n };\n}\n//# sourceMappingURL=static-resolver.js.map","import Ajv from \"ajv\";\nimport ajvSchemaDraft from \"ajv/lib/refs/json-schema-draft-06.json\";\nimport deepmerge from \"deepmerge\";\nimport { bundledElements } from \"../elements\";\nimport { ensureError, SchemaValidationError } from \"../error\";\nimport { MetaTable } from \"../meta\";\nimport { MetaCopyableProperty } from \"../meta/element\";\nimport schema from \"../schema/config.json\";\nimport { TRANSFORMER_API } from \"../transform\";\nimport bundledRules from \"../rules\";\nimport { Rule } from \"../rule\";\nimport defaultConfig from \"./default\";\nimport { ConfigError } from \"./error\";\nimport { parseSeverity } from \"./severity\";\nimport Presets from \"./presets\";\nimport { ResolvedConfig } from \"./resolved-config\";\nimport { resolvePlugin, resolveTransformer, resolveConfig, resolveElements, } from \"./resolver\";\nconst ajv = new Ajv({ strict: true, strictTuples: true, strictTypes: true });\najv.addMetaSchema(ajvSchemaDraft);\nconst validator = ajv.compile(schema);\nfunction overwriteMerge(a, b) {\n return b;\n}\nfunction mergeInternal(base, rhs) {\n const dst = deepmerge(base, { ...rhs, rules: {} });\n /* rules need some special care, should overwrite arrays instead of\n * concaternation, i.e. [\"error\", {...options}] should not be merged by\n * appending to old value */\n if (rhs.rules) {\n dst.rules = deepmerge(dst.rules, rhs.rules, { arrayMerge: overwriteMerge });\n }\n /* root property is merged with boolean \"or\" since it should always be truthy\n * if any config has it set. */\n const root = Boolean(base.root) || Boolean(rhs.root);\n if (root) {\n dst.root = root;\n }\n return dst;\n}\nfunction toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n else {\n return [value];\n }\n}\n/**\n * Configuration holder.\n *\n * Each file being validated will have a unique instance of this class.\n *\n * @public\n */\nexport class Config {\n /**\n * Create a new blank configuration. See also `Config.defaultConfig()`.\n */\n static empty() {\n return new Config([], {\n extends: [],\n rules: {},\n plugins: [],\n transform: {},\n });\n }\n /**\n * Create configuration from object.\n */\n static fromObject(resolvers, options, filename = null) {\n Config.validate(options, filename);\n return new Config(resolvers, options);\n }\n /**\n * Read configuration from filename.\n *\n * Note: this reads configuration data from a file. If you intent to load\n * configuration for a file to validate use `ConfigLoader.fromTarget()`.\n *\n * @internal\n * @param filename - The file to read from\n */\n static fromFile(resolvers, filename) {\n const configData = resolveConfig(toArray(resolvers), filename, { cache: false });\n return Config.fromObject(resolvers, configData, filename);\n }\n /**\n * Validate configuration data.\n *\n * Throws SchemaValidationError if invalid.\n *\n * @internal\n */\n static validate(configData, filename = null) {\n var _a;\n const valid = validator(configData);\n if (!valid) {\n throw new SchemaValidationError(filename, `Invalid configuration`, configData, schema, \n /* istanbul ignore next: will be set when a validation error has occurred */\n (_a = validator.errors) !== null && _a !== void 0 ? _a : []);\n }\n if (configData.rules) {\n const normalizedRules = Config.getRulesObject(configData.rules);\n for (const [ruleId, [, ruleOptions]] of normalizedRules.entries()) {\n const cls = bundledRules[ruleId];\n const path = `/rules/${ruleId}/1`;\n Rule.validateOptions(cls, ruleId, path, ruleOptions, filename, configData);\n }\n }\n }\n /**\n * Load a default configuration object.\n */\n static defaultConfig() {\n return new Config([], defaultConfig);\n }\n /**\n * @internal\n */\n constructor(resolvers, options) {\n var _a, _b;\n this.transformers = [];\n const initial = {\n extends: [],\n plugins: [],\n rules: {},\n transform: {},\n };\n this.config = mergeInternal(initial, options);\n this.metaTable = null;\n this.initialized = false;\n this.resolvers = toArray(resolvers);\n /* load plugins */\n this.plugins = this.loadPlugins((_a = this.config.plugins) !== null && _a !== void 0 ? _a : []);\n this.configurations = this.loadConfigurations(this.plugins);\n this.extendMeta(this.plugins);\n /* process extended configs */\n this.config = this.extendConfig((_b = this.config.extends) !== null && _b !== void 0 ? _b : []);\n /* reset extends as we already processed them, this prevents the next config\n * from reapplying config from extended config as well as duplicate entries\n * when merging arrays */\n this.config.extends = [];\n /* rules explicitly set by passed options should have precedence over any\n * extended rules, not the other way around. */\n if (options === null || options === void 0 ? void 0 : options.rules) {\n this.config = mergeInternal(this.config, { rules: options.rules });\n }\n }\n /**\n * Initialize plugins, transforms etc.\n *\n * Must be called before trying to use config. Can safely be called multiple\n * times.\n *\n * @public\n */\n init() {\n var _a;\n if (this.initialized) {\n return;\n }\n /* precompile transform patterns */\n this.transformers = this.precompileTransformers((_a = this.config.transform) !== null && _a !== void 0 ? _a : {});\n this.initialized = true;\n }\n /**\n * Returns true if this configuration is marked as \"root\".\n */\n isRootFound() {\n return Boolean(this.config.root);\n }\n /**\n * Returns a new configuration as a merge of the two. Entries from the passed\n * object takes priority over this object.\n *\n * @public\n * @param rhs - Configuration to merge with this one.\n */\n merge(resolvers, rhs) {\n return new Config(resolvers, mergeInternal(this.config, rhs.config));\n }\n extendConfig(entries) {\n if (entries.length === 0) {\n return this.config;\n }\n let base = {};\n for (const entry of entries) {\n let extended;\n if (this.configurations.has(entry)) {\n extended = this.configurations.get(entry); // eslint-disable-line @typescript-eslint/no-non-null-assertion -- map has/get combo\n }\n else {\n extended = Config.fromFile(this.resolvers, entry).config;\n }\n base = mergeInternal(base, extended);\n }\n return mergeInternal(base, this.config);\n }\n /**\n * Get element metadata.\n *\n * @internal\n */\n getMetaTable() {\n var _a;\n /* use cached table if it exists */\n if (this.metaTable) {\n return this.metaTable;\n }\n const metaTable = new MetaTable();\n const source = (_a = this.config.elements) !== null && _a !== void 0 ? _a : [\"html5\"];\n /* extend validation schema from plugins */\n for (const plugin of this.getPlugins()) {\n if (plugin.elementSchema) {\n metaTable.extendValidationSchema(plugin.elementSchema);\n }\n }\n /* load from all entries */\n for (const entry of source) {\n /* load meta directly from entry */\n if (typeof entry !== \"string\") {\n metaTable.loadFromObject(entry);\n continue;\n }\n /* try searching builtin metadata */\n const bundled = bundledElements[entry];\n if (bundled) {\n metaTable.loadFromObject(bundled);\n continue;\n }\n /* load with resolver */\n try {\n const data = resolveElements(this.resolvers, entry, { cache: false });\n metaTable.loadFromObject(data, entry);\n }\n catch (err) {\n /* istanbul ignore next: only used as a fallback */\n const message = err instanceof Error ? err.message : String(err);\n throw new ConfigError(`Failed to load elements from \"${entry}\": ${message}`, ensureError(err));\n }\n }\n metaTable.init();\n return (this.metaTable = metaTable);\n }\n /**\n * Get a copy of internal configuration data.\n *\n * @internal primary purpose is unittests\n */\n /* istanbul ignore next: used for testing only */\n get() {\n return { ...this.config };\n }\n /**\n * Get all configured rules, their severity and options.\n *\n * @internal\n */\n getRules() {\n var _a;\n /* istanbul ignore next: only used as a fallback */\n return Config.getRulesObject((_a = this.config.rules) !== null && _a !== void 0 ? _a : {});\n }\n static getRulesObject(src) {\n const rules = new Map();\n for (const [ruleId, data] of Object.entries(src)) {\n let options = data;\n if (!Array.isArray(options)) {\n options = [options, {}];\n }\n else if (options.length === 1) {\n options = [options[0], {}];\n }\n const severity = parseSeverity(options[0]);\n rules.set(ruleId, [severity, options[1]]);\n }\n return rules;\n }\n /**\n * Get all configured plugins.\n *\n * @internal\n */\n getPlugins() {\n return this.plugins;\n }\n loadPlugins(plugins) {\n return plugins.map((moduleName, index) => {\n if (typeof moduleName !== \"string\") {\n const plugin = moduleName;\n plugin.name = plugin.name || `:unnamedPlugin@${index + 1}`;\n plugin.originalName = `:unnamedPlugin@${index + 1}`;\n return plugin;\n }\n try {\n const plugin = resolvePlugin(this.resolvers, moduleName, { cache: true });\n plugin.name = plugin.name || moduleName;\n plugin.originalName = moduleName;\n return plugin;\n }\n catch (err) {\n /* istanbul ignore next: only used as a fallback */\n const message = err instanceof Error ? err.message : String(err);\n throw new ConfigError(`Failed to load plugin \"${moduleName}\": ${message}`, ensureError(err));\n }\n });\n }\n loadConfigurations(plugins) {\n var _a;\n const configs = new Map();\n /* builtin presets */\n for (const [name, config] of Object.entries(Presets)) {\n Config.validate(config, name);\n configs.set(name, config);\n }\n /* presets from plugins */\n for (const plugin of plugins) {\n for (const [name, config] of Object.entries((_a = plugin.configs) !== null && _a !== void 0 ? _a : {})) {\n if (!config)\n continue;\n Config.validate(config, name);\n /* add configuration with name provided by plugin */\n configs.set(`${plugin.name}:${name}`, config);\n /* add configuration with name provided by user (in config file) */\n if (plugin.name !== plugin.originalName) {\n configs.set(`${plugin.originalName}:${name}`, config);\n }\n }\n }\n return configs;\n }\n extendMeta(plugins) {\n for (const plugin of plugins) {\n if (!plugin.elementSchema) {\n continue;\n }\n const { properties } = plugin.elementSchema;\n if (!properties) {\n continue;\n }\n for (const [raw, schema] of Object.entries(properties)) {\n /* at compile time this is a fixed list but the point of this method is\n * to augment the runtime with additional keys so it is a bit of lying\n * to typescript */\n const key = raw;\n if (schema.copyable && !MetaCopyableProperty.includes(key)) {\n MetaCopyableProperty.push(key);\n }\n }\n }\n }\n /**\n * Resolve all configuration and return a [[ResolvedConfig]] instance.\n *\n * A resolved configuration will merge all extended configs and load all\n * plugins and transformers, and normalize the rest of the configuration.\n *\n * @public\n */\n resolve() {\n return new ResolvedConfig(this.resolveData(), this.get());\n }\n /**\n * Same as [[resolve]] but returns the raw configuration data instead of\n * [[ResolvedConfig]] instance. Mainly used for testing.\n *\n * @internal\n */\n resolveData() {\n return {\n metaTable: this.getMetaTable(),\n plugins: this.getPlugins(),\n rules: this.getRules(),\n transformers: this.transformers,\n };\n }\n precompileTransformers(transform) {\n return Object.entries(transform).map(([pattern, name]) => {\n var _a;\n try {\n const fn = this.getTransformFunction(name);\n /* istanbul ignore next */\n const version = (_a = fn.api) !== null && _a !== void 0 ? _a : 0;\n /* check if transformer version is supported */\n if (version !== TRANSFORMER_API.VERSION) {\n throw new ConfigError(`Transformer uses API version ${version} but only version ${TRANSFORMER_API.VERSION} is supported`);\n }\n return {\n // eslint-disable-next-line security/detect-non-literal-regexp -- expected to be a regexp\n pattern: new RegExp(pattern),\n name,\n fn,\n };\n }\n catch (err) {\n if (err instanceof ConfigError) {\n throw new ConfigError(`Failed to load transformer \"${name}\": ${err.message}`, err);\n }\n else {\n throw new ConfigError(`Failed to load transformer \"${name}\"`, ensureError(err));\n }\n }\n });\n }\n /**\n * Get transformation function requested by configuration.\n *\n * Searches:\n *\n * - Named transformers from plugins.\n * - Unnamed transformer from plugin.\n * - Standalone modules (local or node_modules)\n *\n * @param name - Key from configuration\n */\n getTransformFunction(name) {\n /* try to match a named transformer from plugin */\n const match = name.match(/(.*):(.*)/);\n if (match) {\n const [, pluginName, key] = match;\n return this.getNamedTransformerFromPlugin(name, pluginName, key);\n }\n /* try to match an unnamed transformer from plugin */\n const plugin = this.plugins.find((cur) => cur.name === name);\n if (plugin) {\n return this.getUnnamedTransformerFromPlugin(name, plugin);\n }\n /* assume transformer refers to a regular module */\n return this.getTransformerFromModule(name);\n }\n /**\n * @param name - Original name from configuration\n * @param pluginName - Name of plugin\n * @param key - Name of transform (from plugin)\n */\n getNamedTransformerFromPlugin(name, pluginName, key) {\n const plugin = this.plugins.find((cur) => cur.name === pluginName);\n if (!plugin) {\n throw new ConfigError(`No plugin named \"${pluginName}\" has been loaded`);\n }\n if (!plugin.transformer) {\n throw new ConfigError(`Plugin does not expose any transformer`);\n }\n if (typeof plugin.transformer === \"function\") {\n throw new ConfigError(`Transformer \"${name}\" refers to named transformer but plugin exposes only unnamed, use \"${pluginName}\" instead.`);\n }\n const transformer = plugin.transformer[key];\n if (!transformer) {\n throw new ConfigError(`Plugin \"${pluginName}\" does not expose a transformer named \"${key}\".`);\n }\n return transformer;\n }\n /**\n * @param name - Original name from configuration\n * @param plugin - Plugin instance\n */\n getUnnamedTransformerFromPlugin(name, plugin) {\n if (!plugin.transformer) {\n throw new ConfigError(`Plugin does not expose any transformer`);\n }\n if (typeof plugin.transformer !== \"function\") {\n if (plugin.transformer.default) {\n return plugin.transformer.default;\n }\n throw new ConfigError(`Transformer \"${name}\" refers to unnamed transformer but plugin exposes only named.`);\n }\n return plugin.transformer;\n }\n getTransformerFromModule(name) {\n return resolveTransformer(this.resolvers, name, { cache: true });\n }\n}\n//# sourceMappingURL=config.js.map","import { Config } from \"./config\";\n/**\n * Configuration loader interface.\n *\n * A configuration loader takes a handle (typically a filename) and returns a\n * configuration for it.\n *\n * @public\n */\nexport class ConfigLoader {\n constructor(resolvers, config) {\n const defaults = Config.empty();\n this.resolvers = resolvers;\n this.globalConfig = defaults.merge(this.resolvers, config ? this.loadFromObject(config) : this.defaultConfig());\n }\n /**\n * @internal For testing only\n */\n _getGlobalConfig() {\n return this.globalConfig.get();\n }\n empty() {\n return Config.empty();\n }\n loadFromObject(options, filename) {\n return Config.fromObject(this.resolvers, options, filename);\n }\n loadFromFile(filename) {\n return Config.fromFile(this.resolvers, filename);\n }\n}\n//# sourceMappingURL=config-loader.js.map","/**\n * @public\n */\nexport class EventHandler {\n constructor() {\n this.listeners = {};\n }\n /**\n * Add an event listener.\n *\n * @param event - Event names (comma separated) or '*' for any event.\n * @param callback - Called any time even triggers.\n * @returns Unregistration function.\n */\n on(event, callback) {\n const names = event.split(\",\").map((x) => x.trim());\n for (const name of names) {\n this.listeners[name] = this.listeners[name] || [];\n this.listeners[name].push(callback);\n }\n return () => {\n for (const name of names) {\n this.listeners[name] = this.listeners[name].filter((fn) => {\n return fn !== callback;\n });\n }\n };\n }\n /**\n * Add a onetime event listener. The listener will automatically be removed\n * after being triggered once.\n *\n * @param event - Event names (comma separated) or '*' for any event.\n * @param callback - Called any time even triggers.\n * @returns Unregistration function.\n */\n once(event, callback) {\n const deregister = this.on(event, (event, data) => {\n callback(event, data);\n deregister();\n });\n return deregister;\n }\n /**\n * Trigger event causing all listeners to be called.\n *\n * @param event - Event name.\n * @param data - Event data.\n */\n trigger(event, data) {\n var _a, _b;\n const callbacks = [...((_a = this.listeners[event]) !== null && _a !== void 0 ? _a : []), ...((_b = this.listeners[\"*\"]) !== null && _b !== void 0 ? _b : [])];\n callbacks.forEach((listener) => {\n listener.call(null, event, data);\n });\n }\n}\nexport default EventHandler;\n//# sourceMappingURL=eventhandler.js.map","import { sliceLocation } from \"../context\";\nconst regexp = /<!(?:--)?\\[(.*?)\\](?:--)?>/g;\nexport function* parseConditionalComment(comment, commentLocation) {\n let match;\n while ((match = regexp.exec(comment)) !== null) {\n const expression = match[1];\n const begin = match.index;\n const end = begin + match[0].length;\n const location = sliceLocation(commentLocation, begin, end, comment);\n yield {\n expression,\n location,\n };\n }\n}\n//# sourceMappingURL=conditional-comment.js.map","export class ParserError extends Error {\n constructor(location, message) {\n super(message);\n this.location = location;\n }\n}\n//# sourceMappingURL=parser-error.js.map","import { sliceLocation } from \"../context\";\nimport { DOMTree, HtmlElement, NodeClosed } from \"../dom\";\nimport { EventHandler, } from \"../event\";\nimport { Lexer, TokenType, } from \"../lexer\";\nimport { parseConditionalComment } from \"./conditional-comment\";\nimport { ParserError } from \"./parser-error\";\nfunction isAttrValueToken(token) {\n return Boolean(token && token.type === TokenType.ATTR_VALUE);\n}\nfunction svgShouldRetainTag(foreignTagName, tagName) {\n return foreignTagName === \"svg\" && [\"title\", \"desc\"].includes(tagName);\n}\nfunction isValidDirective(action) {\n const validActions = [\"enable\", \"disable\", \"disable-block\", \"disable-next\"];\n return validActions.includes(action);\n}\n/**\n * Parse HTML document into a DOM tree.\n *\n * @public\n */\nexport class Parser {\n /**\n * Create a new parser instance.\n *\n * @public\n * @param config - Configuration\n */\n constructor(config) {\n this.currentNamespace = \"\";\n this.event = new EventHandler();\n this.dom = null;\n this.metaTable = config.getMetaTable();\n }\n /**\n * Parse HTML markup.\n *\n * @public\n * @param source - HTML markup.\n * @returns DOM tree representing the HTML markup.\n */\n parseHtml(source) {\n var _a, _b, _c, _d;\n if (typeof source === \"string\") {\n source = {\n data: source,\n filename: \"inline\",\n line: 1,\n column: 1,\n offset: 0,\n };\n }\n /* trigger starting event */\n this.trigger(\"parse:begin\", {\n location: null,\n });\n /* reset DOM in case there are multiple calls in the same session */\n this.dom = new DOMTree({\n filename: (_a = source.filename) !== null && _a !== void 0 ? _a : \"\",\n offset: (_b = source.offset) !== null && _b !== void 0 ? _b : 0,\n line: (_c = source.line) !== null && _c !== void 0 ? _c : 1,\n column: (_d = source.column) !== null && _d !== void 0 ? _d : 1,\n size: 0,\n });\n /* trigger any rules waiting for DOM load event */\n this.trigger(\"dom:load\", {\n source,\n location: null,\n });\n const lexer = new Lexer();\n const tokenStream = lexer.tokenize(source);\n /* consume all tokens from the stream */\n let it = this.next(tokenStream);\n while (!it.done) {\n const token = it.value;\n this.consume(source, token, tokenStream);\n it = this.next(tokenStream);\n }\n /* resolve any dynamic meta element properties */\n this.dom.resolveMeta(this.metaTable);\n /* enable cache on root element, all children already have cached enabled */\n this.dom.root.cacheEnable();\n /* trigger any rules waiting for DOM ready */\n this.trigger(\"dom:ready\", {\n document: this.dom,\n source,\n /* disable location for this event so rules can use implicit node location\n * instead */\n location: null,\n });\n /* trigger ending event */\n this.trigger(\"parse:end\", {\n location: null,\n });\n return this.dom.root;\n }\n /**\n * Detect optional end tag.\n *\n * Some tags have optional end tags (e.g. <ul><li>foo<li>bar</ul> is\n * valid). The parser handles this by checking if the element on top of the\n * stack when is allowed to omit.\n */\n closeOptional(token) {\n var _a;\n /* if the element doesn't have metadata it cannot have optional end\n * tags. Period. */\n const active = this.dom.getActive();\n if (!((_a = active.meta) === null || _a === void 0 ? void 0 : _a.implicitClosed)) {\n return false;\n }\n const tagName = token.data[2];\n const open = !token.data[1];\n const meta = active.meta.implicitClosed;\n if (open) {\n /* a new element is opened, check if the new element should close the\n * previous */\n return meta.includes(tagName);\n }\n else {\n /* if we are explicitly closing the active element, ignore implicit */\n if (active.is(tagName)) {\n return false;\n }\n /* the parent element is closed, check if the active element would be\n * implicitly closed when parent is. */\n return Boolean(active.parent && active.parent.is(tagName) && meta.includes(active.tagName));\n }\n }\n /**\n * @internal\n */\n /* eslint-disable-next-line complexity -- there isn't really a good other way to structure this method (that is still readable) */\n consume(source, token, tokenStream) {\n switch (token.type) {\n case TokenType.UNICODE_BOM:\n /* ignore */\n break;\n case TokenType.TAG_OPEN:\n this.consumeTag(source, token, tokenStream);\n break;\n case TokenType.WHITESPACE:\n this.trigger(\"whitespace\", {\n text: token.data[0],\n location: token.location,\n });\n this.appendText(token.data[0], token.location);\n break;\n case TokenType.DIRECTIVE:\n this.consumeDirective(token);\n break;\n case TokenType.CONDITIONAL:\n this.consumeConditional(token);\n break;\n case TokenType.COMMENT:\n this.consumeComment(token);\n break;\n case TokenType.DOCTYPE_OPEN:\n this.consumeDoctype(token, tokenStream);\n break;\n case TokenType.TEXT:\n case TokenType.TEMPLATING:\n this.appendText(token.data[0], token.location);\n break;\n case TokenType.EOF:\n this.closeTree(source, token.location);\n break;\n }\n }\n /**\n * @internal\n */\n /* eslint-disable-next-line complexity, sonarjs/cognitive-complexity -- technical debt, chould be refactored a bit */\n consumeTag(source, startToken, tokenStream) {\n const tokens = Array.from(this.consumeUntil(tokenStream, TokenType.TAG_CLOSE, startToken.location));\n const endToken = tokens.slice(-1)[0];\n const closeOptional = this.closeOptional(startToken);\n const parent = closeOptional ? this.dom.getActive().parent : this.dom.getActive();\n const node = HtmlElement.fromTokens(startToken, endToken, parent, this.metaTable, this.currentNamespace);\n const isStartTag = !startToken.data[1];\n const isClosing = !isStartTag || node.closed !== NodeClosed.Open;\n const isForeign = node.meta && node.meta.foreign;\n /* if the previous tag to be implicitly closed by the current tag we close\n * it and pop it from the stack before continuing processing this tag */\n if (closeOptional) {\n const active = this.dom.getActive();\n active.closed = NodeClosed.ImplicitClosed;\n this.closeElement(source, node, active, startToken.location);\n this.dom.popActive();\n }\n if (isStartTag) {\n this.dom.pushActive(node);\n this.trigger(\"tag:start\", {\n target: node,\n location: startToken.location,\n });\n }\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n switch (token.type) {\n case TokenType.WHITESPACE:\n break;\n case TokenType.ATTR_NAME:\n this.consumeAttribute(source, node, token, tokens[i + 1]);\n break;\n }\n }\n /* emit tag:ready unless this is a end tag */\n if (isStartTag) {\n this.trigger(\"tag:ready\", {\n target: node,\n location: endToken.location,\n });\n }\n if (isClosing) {\n const active = this.dom.getActive();\n /* if this is not an open tag it is a close tag and thus we force it to be\n * one, in case it is detected as void */\n if (!isStartTag) {\n node.closed = NodeClosed.EndTag;\n }\n this.closeElement(source, node, active, endToken.location);\n /* if this element is closed with an end tag but is would it will not be\n * closed again (it is already closed automatically since it is\n * void). Closing again will have side-effects as it will close the parent\n * and cause a mess later. */\n const voidClosed = !isStartTag && node.voidElement;\n if (!voidClosed) {\n this.dom.popActive();\n }\n }\n else if (isForeign) {\n /* consume the body of the foreign element so it won't be part of the\n * document (only the root foreign element is). */\n this.discardForeignBody(source, node.tagName, tokenStream, startToken.location);\n }\n }\n /**\n * @internal\n */\n closeElement(source, node, active, location) {\n /* call processElement hook */\n this.processElement(active, source);\n /* trigger event for the closing of the element (the </> tag)*/\n const event = {\n target: node,\n previous: active,\n location,\n };\n this.trigger(\"tag:end\", event);\n /* trigger event for for an element being fully constructed. Special care\n * for void elements explicit closed <input></input> */\n if (active && !active.isRootElement()) {\n this.trigger(\"element:ready\", {\n target: active,\n location: active.location,\n });\n }\n }\n processElement(node, source) {\n var _a;\n /* enable cache on node now that it is fully constructed */\n node.cacheEnable();\n if ((_a = source.hooks) === null || _a === void 0 ? void 0 : _a.processElement) {\n const processElement = source.hooks.processElement;\n const metaTable = this.metaTable;\n const context = {\n getMetaFor(tagName) {\n return metaTable.getMetaFor(tagName);\n },\n };\n processElement.call(context, node);\n }\n }\n /**\n * Discard tokens until the end tag for the foreign element is found.\n *\n * @internal\n */\n discardForeignBody(source, foreignTagName, tokenStream, errorLocation) {\n /* consume elements until the end tag for this foreign element is found */\n let nested = 1;\n let startToken;\n let endToken;\n do {\n /* search for tags */\n const tokens = Array.from(this.consumeUntil(tokenStream, TokenType.TAG_OPEN, errorLocation));\n const [last] = tokens.slice(-1);\n const [, tagClosed, tagName] = last.data;\n /* special case: svg <title> and <desc> should be intact as it affects accessibility */\n if (!tagClosed && svgShouldRetainTag(foreignTagName, tagName)) {\n const oldNamespace = this.currentNamespace;\n this.currentNamespace = \"svg\";\n this.consumeTag(source, last, tokenStream);\n this.consumeUntilMatchingTag(source, tokenStream, tagName);\n this.currentNamespace = oldNamespace;\n continue;\n }\n /* keep going unless the new tag matches the foreign root element */\n if (tagName !== foreignTagName) {\n continue;\n }\n /* locate end token and determine if this is a self-closed tag */\n const endTokens = Array.from(this.consumeUntil(tokenStream, TokenType.TAG_CLOSE, last.location));\n endToken = endTokens.slice(-1)[0];\n const selfClosed = endToken.data[0] === \"/>\";\n /* since foreign element may be nested keep a count for the number of\n * opened/closed elements */\n if (tagClosed) {\n startToken = last;\n nested--;\n }\n else if (!selfClosed) {\n nested++;\n }\n } while (nested > 0);\n /* istanbul ignore next: this should never happen because `consumeUntil`\n * would have thrown errors however typescript does not know that */\n if (!startToken || !endToken) {\n return;\n }\n const active = this.dom.getActive();\n const node = HtmlElement.fromTokens(startToken, endToken, active, this.metaTable);\n this.closeElement(source, node, active, endToken.location);\n this.dom.popActive();\n }\n /**\n * @internal\n */\n consumeAttribute(source, node, token, next) {\n var _a;\n const keyLocation = this.getAttributeKeyLocation(token);\n const valueLocation = this.getAttributeValueLocation(next);\n const location = this.getAttributeLocation(token, next);\n const haveValue = isAttrValueToken(next);\n const attrData = {\n key: token.data[1],\n value: null,\n quote: null,\n };\n if (haveValue) {\n const [, , value, quote] = next.data;\n attrData.value = value;\n attrData.quote = quote !== null && quote !== void 0 ? quote : null;\n }\n /* get callback to process attributes, default is to just return attribute\n * data right away but a transformer may override it to allow aliasing\n * attributes, e.g ng-attr-foo or v-bind:foo */\n let processAttribute = (attr) => [attr];\n if ((_a = source.hooks) === null || _a === void 0 ? void 0 : _a.processAttribute) {\n processAttribute = source.hooks.processAttribute;\n }\n /* handle deprecated callbacks */\n let iterator;\n const legacy = processAttribute.call({}, attrData);\n if (typeof legacy[Symbol.iterator] !== \"function\") {\n /* AttributeData */\n iterator = [attrData];\n }\n else {\n /* Iterable<AttributeData> */\n iterator = legacy;\n }\n /* process attribute(s) */\n for (const attr of iterator) {\n const event = {\n target: node,\n key: attr.key,\n value: attr.value,\n quote: attr.quote,\n originalAttribute: attr.originalAttribute,\n location,\n keyLocation,\n valueLocation,\n };\n this.trigger(\"attr\", event);\n node.setAttribute(attr.key, attr.value, keyLocation, valueLocation, attr.originalAttribute);\n }\n }\n /**\n * Takes attribute key token an returns location.\n */\n getAttributeKeyLocation(token) {\n return token.location;\n }\n /**\n * Take attribute value token and return a new location referring to only the\n * value.\n *\n * foo=\"bar\" foo='bar' foo=bar foo foo=\"\"\n * ^^^ ^^^ ^^^ (null) (null)\n */\n getAttributeValueLocation(token) {\n if (!token || token.type !== TokenType.ATTR_VALUE || token.data[2] === \"\") {\n return null;\n }\n const quote = token.data[3];\n if (quote) {\n return sliceLocation(token.location, 2, -1);\n }\n else {\n return sliceLocation(token.location, 1);\n }\n }\n /**\n * Take attribute key and value token an returns a new location referring to\n * an aggregate location covering key, quotes if present and value.\n */\n getAttributeLocation(key, value) {\n var _a;\n const begin = key.location;\n const end = value && value.type === TokenType.ATTR_VALUE ? value.location : undefined;\n return {\n filename: begin.filename,\n line: begin.line,\n column: begin.column,\n size: begin.size + ((_a = end === null || end === void 0 ? void 0 : end.size) !== null && _a !== void 0 ? _a : 0),\n offset: begin.offset,\n };\n }\n /**\n * @internal\n */\n consumeDirective(token) {\n const [text, preamble, action, separator1, directive, postamble] = token.data;\n if (!postamble.startsWith(\"]\")) {\n throw new ParserError(token.location, `Missing end bracket \"]\" on directive \"${text}\"`);\n }\n const match = directive.match(/^(.*?)(?:(\\s*(?:--|:)\\s*)(.*))?$/);\n /* istanbul ignore next: should not be possible, would be emitted as comment token */\n if (!match) {\n throw new Error(`Failed to parse directive \"${text}\"`);\n }\n if (!isValidDirective(action)) {\n throw new ParserError(token.location, `Unknown directive \"${action}\"`);\n }\n const [, data, separator2, comment] = match;\n const prefix = \"html-validate-\";\n /* <!-- [html-validate-action options -- comment] -->\n * ^ ^ ^--------------- comment offset\n * | \\-------------------------- options offset\n * \\--------------------------------- action offset\n */\n const actionOffset = preamble.length;\n const optionsOffset = actionOffset + action.length + separator1.length;\n const commentOffset = optionsOffset + data.length + (separator2 || \"\").length;\n const location = sliceLocation(token.location, preamble.length - prefix.length - 1, -postamble.length + 1);\n const actionLocation = sliceLocation(token.location, actionOffset, actionOffset + action.length);\n const optionsLocation = data\n ? sliceLocation(token.location, optionsOffset, optionsOffset + data.length)\n : undefined;\n const commentLocation = comment\n ? sliceLocation(token.location, commentOffset, commentOffset + comment.length)\n : undefined;\n this.trigger(\"directive\", {\n action,\n data,\n comment: comment || \"\",\n location,\n actionLocation,\n optionsLocation,\n commentLocation,\n });\n }\n /**\n * Consumes conditional comment in tag form.\n *\n * See also the related [[consumeCommend]] method.\n *\n * @internal\n */\n consumeConditional(token) {\n const element = this.dom.getActive();\n this.trigger(\"conditional\", {\n condition: token.data[1],\n location: token.location,\n parent: element,\n });\n }\n /**\n * Consumes comment token.\n *\n * Tries to find IE conditional comments and emits conditional token if\n * found. See also the related [[consumeConditional]] method.\n *\n * @internal\n */\n consumeComment(token) {\n const comment = token.data[0];\n const element = this.dom.getActive();\n for (const conditional of parseConditionalComment(comment, token.location)) {\n this.trigger(\"conditional\", {\n condition: conditional.expression,\n location: conditional.location,\n parent: element,\n });\n }\n }\n /**\n * Consumes doctype tokens. Emits doctype event.\n *\n * @internal\n */\n consumeDoctype(startToken, tokenStream) {\n const tokens = Array.from(this.consumeUntil(tokenStream, TokenType.DOCTYPE_CLOSE, startToken.location));\n /* first token is the doctype, second is the closing \">\" */\n const doctype = tokens[0];\n const value = doctype.data[0];\n this.dom.doctype = value;\n this.trigger(\"doctype\", {\n tag: startToken.data[1],\n value,\n valueLocation: tokens[0].location,\n location: startToken.location,\n });\n }\n /**\n * Return a list of tokens found until the expected token was found.\n *\n * @internal\n * @param errorLocation - What location to use if an error occurs\n */\n *consumeUntil(tokenStream, search, errorLocation) {\n let it = this.next(tokenStream);\n while (!it.done) {\n const token = it.value;\n yield token;\n if (token.type === search)\n return;\n it = this.next(tokenStream);\n }\n throw new ParserError(errorLocation, `stream ended before ${TokenType[search]} token was found`);\n }\n /**\n * Consumes tokens until a matching close-tag is found. Tags are appended to\n * the document.\n *\n * @internal\n */\n consumeUntilMatchingTag(source, tokenStream, searchTag) {\n let numOpen = 1;\n let it = this.next(tokenStream);\n while (!it.done) {\n const token = it.value;\n this.consume(source, token, tokenStream);\n if (token.type === TokenType.TAG_OPEN) {\n const [, close, tagName] = token.data;\n if (tagName === searchTag) {\n if (close) {\n numOpen--;\n }\n else {\n numOpen++;\n }\n if (numOpen === 0) {\n return;\n }\n }\n }\n it = this.next(tokenStream);\n }\n }\n next(tokenStream) {\n const it = tokenStream.next();\n if (!it.done) {\n const token = it.value;\n this.trigger(\"token\", {\n location: token.location,\n type: token.type,\n data: Array.from(token.data),\n token,\n });\n }\n return it;\n }\n on(event, listener) {\n return this.event.on(event, listener);\n }\n once(event, listener) {\n return this.event.once(event, listener);\n }\n /**\n * Defer execution. Will call function sometime later.\n *\n * @internal\n * @param cb - Callback to execute later.\n */\n defer(cb) {\n this.event.once(\"*\", cb);\n }\n trigger(event, data) {\n if (typeof data.location === \"undefined\") {\n throw new Error(\"Triggered event must contain location\");\n }\n this.event.trigger(event, data);\n }\n /**\n * @internal\n */\n getEventHandler() {\n return this.event;\n }\n /**\n * Appends a text node to the current element on the stack.\n */\n appendText(text, location) {\n this.dom.getActive().appendText(text, location);\n }\n /**\n * Trigger close events for any still open elements.\n */\n closeTree(source, location) {\n let active;\n while ((active = this.dom.getActive()) && !active.isRootElement()) {\n this.closeElement(source, null, active, location);\n this.dom.popActive();\n }\n }\n}\n//# sourceMappingURL=parser.js.map","import { Severity } from \"./config\";\nfunction freeze(src) {\n return {\n ...src,\n selector: src.selector(),\n };\n}\n/**\n * @public\n */\nexport class Reporter {\n constructor() {\n this.result = {};\n }\n /**\n * Merge two or more reports into a single one.\n */\n static merge(reports) {\n const valid = reports.every((report) => report.valid);\n const merged = {};\n reports.forEach((report) => {\n report.results.forEach((result) => {\n const key = result.filePath;\n if (key in merged) {\n merged[key].messages = [...merged[key].messages, ...result.messages];\n }\n else {\n merged[key] = { ...result };\n }\n });\n });\n const results = Object.values(merged).map((result) => {\n /* recalculate error- and warning-count */\n result.errorCount = countErrors(result.messages);\n result.warningCount = countWarnings(result.messages);\n return result;\n });\n return {\n valid,\n results,\n errorCount: sumErrors(results),\n warningCount: sumWarnings(results),\n };\n }\n add(rule, message, severity, node, location, context) {\n var _a;\n if (!(location.filename in this.result)) {\n this.result[location.filename] = [];\n }\n const ruleUrl = (_a = rule.documentation(context)) === null || _a === void 0 ? void 0 : _a.url;\n const entry = {\n ruleId: rule.name,\n severity,\n message,\n offset: location.offset,\n line: location.line,\n column: location.column,\n size: location.size || 0,\n selector() {\n return node ? node.generateSelector() : null;\n },\n };\n if (ruleUrl) {\n entry.ruleUrl = ruleUrl;\n }\n if (context) {\n entry.context = context;\n }\n this.result[location.filename].push(entry);\n }\n addManual(filename, message) {\n if (!(filename in this.result)) {\n this.result[filename] = [];\n }\n this.result[filename].push(message);\n }\n save(sources) {\n const report = {\n valid: this.isValid(),\n results: Object.keys(this.result).map((filePath) => {\n var _a;\n const messages = Array.from(this.result[filePath], freeze).sort(messageSort);\n const source = (sources !== null && sources !== void 0 ? sources : []).find((source) => { var _a; return filePath === ((_a = source.filename) !== null && _a !== void 0 ? _a : \"\"); });\n return {\n filePath,\n messages,\n errorCount: countErrors(messages),\n warningCount: countWarnings(messages),\n source: source ? (_a = source.originalData) !== null && _a !== void 0 ? _a : source.data : null,\n };\n }),\n errorCount: 0,\n warningCount: 0,\n };\n report.errorCount = sumErrors(report.results);\n report.warningCount = sumWarnings(report.results);\n return report;\n }\n isValid() {\n const numErrors = Object.values(this.result).reduce((sum, messages) => {\n return sum + countErrors(messages);\n }, 0);\n return numErrors === 0;\n }\n}\nfunction countErrors(messages) {\n return messages.filter((m) => m.severity === Number(Severity.ERROR)).length;\n}\nfunction countWarnings(messages) {\n return messages.filter((m) => m.severity === Number(Severity.WARN)).length;\n}\nfunction sumErrors(results) {\n return results.reduce((sum, result) => {\n return sum + result.errorCount;\n }, 0);\n}\nfunction sumWarnings(results) {\n return results.reduce((sum, result) => {\n return sum + result.warningCount;\n }, 0);\n}\nfunction messageSort(a, b) {\n if (a.line < b.line) {\n return -1;\n }\n if (a.line > b.line) {\n return 1;\n }\n if (a.column < b.column) {\n return -1;\n }\n if (a.column > b.column) {\n return 1;\n }\n return 0;\n}\nexport default Reporter;\n//# sourceMappingURL=reporter.js.map","let blockerCounter = 1;\n/**\n * Creates a new rule blocker for using when blocking rules from generating\n * errors.\n *\n * @internal\n */\nexport function createBlocker() {\n const id = blockerCounter++;\n return id;\n}\n//# sourceMappingURL=rule-blocker.js.map","import { Severity } from \"../config\";\nimport { InvalidTokenError, Lexer, TokenType } from \"../lexer\";\nimport { ParserError } from \"../parser\";\nimport { Reporter } from \"../reporter\";\nimport { Rule } from \"../rule\";\nimport bundledRules from \"../rules\";\nimport { createBlocker } from \"./rule-blocker\";\n/**\n * @internal\n */\nexport class Engine {\n constructor(config, ParserClass) {\n this.report = new Reporter();\n this.config = config;\n this.ParserClass = ParserClass;\n /* initialize plugins and rules */\n const result = this.initPlugins(this.config);\n this.availableRules = {\n ...bundledRules,\n ...result.availableRules,\n };\n }\n /**\n * Lint sources and return report\n *\n * @param sources - Sources to lint.\n * @returns Report output.\n */\n lint(sources) {\n for (const source of sources) {\n /* create parser for source */\n const parser = this.instantiateParser();\n /* setup plugins and rules */\n const { rules } = this.setupPlugins(source, this.config, parser);\n const noUnusedDisable = rules[\"no-unused-disable\"];\n const directiveContext = {\n rules,\n reportUnused(rules, unused, options, location) {\n if (noUnusedDisable && !rules.has(noUnusedDisable.name)) {\n noUnusedDisable.reportUnused(unused, options, location);\n }\n },\n };\n /* create a faux location at the start of the stream for the next events */\n const location = {\n filename: source.filename,\n line: 1,\n column: 1,\n offset: 0,\n size: 1,\n };\n /* trigger configuration ready event */\n const configEvent = {\n location,\n config: this.config,\n rules,\n };\n parser.trigger(\"config:ready\", configEvent);\n /* trigger source ready event */\n const { hooks: _, ...sourceData } = source;\n const sourceEvent = {\n location,\n source: sourceData,\n };\n parser.trigger(\"source:ready\", sourceEvent);\n /* setup directive handling */\n parser.on(\"directive\", (_, event) => {\n this.processDirective(event, parser, directiveContext);\n });\n /* parse token stream */\n try {\n parser.parseHtml(source);\n }\n catch (e) {\n if (e instanceof InvalidTokenError || e instanceof ParserError) {\n this.reportError(\"parser-error\", e.message, e.location);\n }\n else {\n throw e;\n }\n }\n }\n /* generate results from report */\n return this.report.save(sources);\n }\n /**\n * Returns a list of all events generated while parsing the source.\n *\n * For verbosity, token events are ignored (use [[dumpTokens]] to inspect\n * token stream).\n */\n dumpEvents(source) {\n const parser = this.instantiateParser();\n const lines = [];\n parser.on(\"*\", (event, data) => {\n /* ignore token events as it becomes to verbose */\n if (event === \"token\") {\n return;\n }\n lines.push({ event, data });\n });\n source.forEach((src) => parser.parseHtml(src));\n return lines;\n }\n dumpTokens(source) {\n var _a;\n const lexer = new Lexer();\n const lines = [];\n for (const src of source) {\n for (const token of lexer.tokenize(src)) {\n const data = (_a = token.data[0]) !== null && _a !== void 0 ? _a : \"\";\n lines.push({\n token: TokenType[token.type],\n data,\n location: `${token.location.filename}:${token.location.line}:${token.location.column}`,\n });\n }\n }\n return lines;\n }\n dumpTree(source) {\n /* @todo handle dumping each tree */\n const parser = this.instantiateParser();\n const document = parser.parseHtml(source[0]);\n const lines = [];\n function decoration(node) {\n let output = \"\";\n if (node.id) {\n output += `#${node.id}`;\n }\n if (node.hasAttribute(\"class\")) {\n output += `.${node.classList.join(\".\")}`;\n }\n return output;\n }\n function writeNode(node, level, sibling) {\n if (node.parent) {\n const indent = \" \".repeat(level - 1);\n const l = node.childElements.length > 0 ? \"┬\" : \"─\";\n const b = sibling < node.parent.childElements.length - 1 ? \"├\" : \"└\";\n lines.push(`${indent}${b}─${l} ${node.tagName}${decoration(node)}`);\n }\n else {\n lines.push(\"(root)\");\n }\n node.childElements.forEach((child, index) => {\n writeNode(child, level + 1, index);\n });\n }\n writeNode(document, 0, 0);\n return lines;\n }\n /**\n * Get rule documentation.\n */\n getRuleDocumentation({ ruleId, context, }) {\n const rules = this.config.getRules();\n const ruleData = rules.get(ruleId);\n if (ruleData) {\n const [, options] = ruleData;\n const rule = this.instantiateRule(ruleId, options);\n return rule.documentation(context);\n }\n else {\n return null;\n }\n }\n /**\n * Create a new parser instance with the current configuration.\n *\n * @internal\n */\n instantiateParser() {\n return new this.ParserClass(this.config);\n }\n processDirective(event, parser, context) {\n var _a;\n const rules = event.data\n .split(\",\")\n .map((name) => name.trim())\n .map((name) => context.rules[name])\n .filter((rule) => rule); /* filter out missing rules */\n /* istanbul ignore next: option must be present or there would be no rules to disable */\n const location = (_a = event.optionsLocation) !== null && _a !== void 0 ? _a : event.location;\n switch (event.action) {\n case \"enable\":\n this.processEnableDirective(rules, parser);\n break;\n case \"disable\":\n this.processDisableDirective(rules, parser);\n break;\n case \"disable-block\":\n this.processDisableBlockDirective(context, rules, parser, event.data, location);\n break;\n case \"disable-next\":\n this.processDisableNextDirective(context, rules, parser, event.data, location);\n break;\n }\n }\n processEnableDirective(rules, parser) {\n for (const rule of rules) {\n rule.setEnabled(true);\n if (rule.getSeverity() === Severity.DISABLED) {\n rule.setServerity(Severity.ERROR);\n }\n }\n /* enable rules on node */\n parser.on(\"tag:start\", (event, data) => {\n data.target.enableRules(rules.map((rule) => rule.name));\n });\n }\n processDisableDirective(rules, parser) {\n for (const rule of rules) {\n rule.setEnabled(false);\n }\n /* disable rules on node */\n parser.on(\"tag:start\", (event, data) => {\n data.target.disableRules(rules.map((rule) => rule.name));\n });\n }\n processDisableBlockDirective(context, rules, parser, options, location) {\n const ruleIds = new Set(rules.map((it) => it.name));\n const unused = new Set(ruleIds);\n const blocker = createBlocker();\n let directiveBlock = null;\n for (const rule of rules) {\n rule.block(blocker);\n }\n const unregisterOpen = parser.on(\"tag:start\", (event, data) => {\n var _a, _b;\n /* wait for a tag to open and find the current block by using its parent */\n if (directiveBlock === null) {\n /* istanbul ignore next: there will always be a parent (root element if\n * nothing else) but typescript doesn't know that */\n directiveBlock = (_b = (_a = data.target.parent) === null || _a === void 0 ? void 0 : _a.unique) !== null && _b !== void 0 ? _b : null;\n }\n /* disable rules directly on the node so it will be recorded for later,\n * more specifically when using the domtree to trigger errors */\n data.target.blockRules(ruleIds, blocker);\n });\n const unregisterClose = parser.on(\"tag:end\", (event, data) => {\n /* if the directive is the last thing in a block no id would be set */\n const lastNode = directiveBlock === null;\n /* test if the block is being closed by checking the parent of the block\n * element is being closed */\n const parentClosed = directiveBlock === data.previous.unique;\n /* remove listeners and restore state */\n if (lastNode || parentClosed) {\n unregisterClose();\n unregisterOpen();\n for (const rule of rules) {\n rule.unblock(blocker);\n }\n }\n });\n parser.on(\"rule:error\", (event, data) => {\n if (data.blockers.includes(blocker)) {\n unused.delete(data.ruleId);\n }\n });\n parser.on(\"parse:end\", () => {\n context.reportUnused(ruleIds, unused, options, location);\n });\n }\n processDisableNextDirective(context, rules, parser, options, location) {\n const ruleIds = new Set(rules.map((it) => it.name));\n const unused = new Set(ruleIds);\n const blocker = createBlocker();\n for (const rule of rules) {\n rule.block(blocker);\n }\n /* block rules directly on the node so it will be recorded for later,\n * more specifically when using the domtree to trigger errors */\n const unregister = parser.on(\"tag:start\", (event, data) => {\n data.target.blockRules(ruleIds, blocker);\n });\n parser.on(\"rule:error\", (event, data) => {\n if (data.blockers.includes(blocker)) {\n unused.delete(data.ruleId);\n }\n });\n parser.on(\"parse:end\", () => {\n context.reportUnused(ruleIds, unused, options, location);\n });\n /* disable directive after next event occurs */\n parser.once(\"tag:ready, tag:end, attr\", () => {\n unregister();\n parser.defer(() => {\n for (const rule of rules) {\n rule.unblock(blocker);\n }\n });\n });\n }\n /*\n * Initialize all plugins. This should only be done once for all sessions.\n */\n initPlugins(config) {\n for (const plugin of config.getPlugins()) {\n if (plugin.init) {\n plugin.init();\n }\n }\n return {\n availableRules: this.initRules(config),\n };\n }\n /**\n * Initializes all rules from plugins and returns an object with a mapping\n * between rule name and its constructor.\n */\n initRules(config) {\n var _a;\n const availableRules = {};\n for (const plugin of config.getPlugins()) {\n for (const [name, rule] of Object.entries((_a = plugin.rules) !== null && _a !== void 0 ? _a : {})) {\n if (!rule)\n continue;\n availableRules[name] = rule;\n }\n }\n return availableRules;\n }\n /**\n * Setup all plugins for this session.\n */\n setupPlugins(source, config, parser) {\n const eventHandler = parser.getEventHandler();\n for (const plugin of config.getPlugins()) {\n if (plugin.setup) {\n plugin.setup(source, eventHandler);\n }\n }\n return {\n rules: this.setupRules(config, parser),\n };\n }\n /**\n * Load and setup all rules for current configuration.\n */\n setupRules(config, parser) {\n const rules = {};\n for (const [ruleId, [severity, options]] of config.getRules().entries()) {\n rules[ruleId] = this.loadRule(ruleId, config, severity, options, parser, this.report);\n }\n return rules;\n }\n /**\n * Load and setup a rule using current config.\n */\n loadRule(ruleId, config, severity, options, parser, report) {\n const meta = config.getMetaTable();\n const rule = this.instantiateRule(ruleId, options);\n rule.name = ruleId;\n rule.init(parser, report, severity, meta);\n /* call setup callback if present */\n if (rule.setup) {\n rule.setup();\n }\n return rule;\n }\n instantiateRule(name, options) {\n if (this.availableRules[name]) {\n const RuleConstructor = this.availableRules[name];\n return new RuleConstructor(options);\n }\n else {\n return this.missingRule(name);\n }\n }\n missingRule(name) {\n return new (class MissingRule extends Rule {\n setup() {\n this.on(\"dom:load\", () => {\n this.report(null, `Definition for rule '${name}' was not found`);\n });\n }\n })();\n }\n reportError(ruleId, message, location) {\n this.report.addManual(location.filename, {\n ruleId,\n severity: Severity.ERROR,\n message,\n offset: location.offset,\n line: location.line,\n column: location.column,\n size: location.size,\n selector: () => null,\n });\n }\n}\n//# sourceMappingURL=engine.js.map","import { ConfigLoader } from \"../config-loader\";\nconst defaultResolvers = [];\nfunction hasResolver(value) {\n return Array.isArray(value[0]);\n}\n/**\n * The static configuration loader does not do any per-handle lookup. Only the\n * global or per-call configuration is used.\n *\n * In practice this means no configuration is fetched by traversing the\n * filesystem.\n *\n * @public\n */\nexport class StaticConfigLoader extends ConfigLoader {\n constructor(...args) {\n if (hasResolver(args)) {\n const [resolvers, config] = args;\n super(resolvers, config);\n }\n else {\n const [config] = args;\n super(defaultResolvers, config);\n }\n }\n getConfigFor(_handle, configOverride) {\n const override = this.loadFromObject(configOverride !== null && configOverride !== void 0 ? configOverride : {});\n if (override.isRootFound()) {\n override.init();\n return override.resolve();\n }\n const merged = this.globalConfig.merge(this.resolvers, override);\n merged.init();\n return merged.resolve();\n }\n flushCache() {\n /* do nothing */\n }\n defaultConfig() {\n return this.loadFromObject({\n extends: [\"html-validate:recommended\"],\n elements: [\"html5\"],\n });\n }\n}\n//# sourceMappingURL=static.js.map","import { ConfigLoader } from \"./config\";\nimport { Engine } from \"./engine\";\nimport { Parser } from \"./parser\";\nimport { Reporter } from \"./reporter\";\nimport configurationSchema from \"./schema/config.json\";\nimport { StaticConfigLoader } from \"./config/loaders/static\";\nfunction isSourceHooks(value) {\n if (!value || typeof value === \"string\") {\n return false;\n }\n return Boolean(value.processAttribute || value.processElement);\n}\nfunction isConfigData(value) {\n if (!value || typeof value === \"string\") {\n return false;\n }\n return !(value.processAttribute || value.processElement);\n}\n/**\n * Primary API for using HTML-validate.\n *\n * Provides high-level abstractions for common operations.\n *\n * @public\n */\nexport class HtmlValidate {\n constructor(arg) {\n const [loader, config] = arg instanceof ConfigLoader ? [arg, undefined] : [undefined, arg];\n this.configLoader = loader !== null && loader !== void 0 ? loader : new StaticConfigLoader(config);\n }\n /* eslint-enable @typescript-eslint/unified-signatures */\n validateString(str, arg1, arg2, arg3) {\n const filename = typeof arg1 === \"string\" ? arg1 : \"inline\";\n const options = isConfigData(arg1) ? arg1 : isConfigData(arg2) ? arg2 : undefined;\n const hooks = isSourceHooks(arg1) ? arg1 : isSourceHooks(arg2) ? arg2 : arg3;\n const source = {\n data: str,\n filename,\n line: 1,\n column: 1,\n offset: 0,\n hooks,\n };\n return this.validateSource(source, options);\n }\n /* eslint-enable @typescript-eslint/unified-signatures */\n validateStringSync(str, arg1, arg2, arg3) {\n const filename = typeof arg1 === \"string\" ? arg1 : \"inline\";\n const options = isConfigData(arg1) ? arg1 : isConfigData(arg2) ? arg2 : undefined;\n const hooks = isSourceHooks(arg1) ? arg1 : isSourceHooks(arg2) ? arg2 : arg3;\n const source = {\n data: str,\n filename,\n line: 1,\n column: 1,\n offset: 0,\n hooks,\n };\n return this.validateSourceSync(source, options);\n }\n /**\n * Parse and validate HTML from [[Source]].\n *\n * @public\n * @param input - Source to parse.\n * @returns Report output.\n */\n async validateSource(input, configOverride) {\n const config = await this.getConfigFor(input.filename, configOverride);\n const source = config.transformSource(input);\n const engine = new Engine(config, Parser);\n return engine.lint(source);\n }\n /**\n * Parse and validate HTML from [[Source]].\n *\n * @public\n * @param input - Source to parse.\n * @returns Report output.\n */\n validateSourceSync(input, configOverride) {\n const config = this.getConfigForSync(input.filename, configOverride);\n const source = config.transformSource(input);\n const engine = new Engine(config, Parser);\n return engine.lint(source);\n }\n /**\n * Parse and validate HTML from file.\n *\n * @public\n * @param filename - Filename to read and parse.\n * @returns Report output.\n */\n async validateFile(filename) {\n const config = await this.getConfigFor(filename);\n const source = config.transformFilename(filename);\n const engine = new Engine(config, Parser);\n return Promise.resolve(engine.lint(source));\n }\n /**\n * Parse and validate HTML from file.\n *\n * @public\n * @param filename - Filename to read and parse.\n * @returns Report output.\n */\n validateFileSync(filename) {\n const config = this.getConfigForSync(filename);\n const source = config.transformFilename(filename);\n const engine = new Engine(config, Parser);\n return engine.lint(source);\n }\n /**\n * Parse and validate HTML from multiple files. Result is merged together to a\n * single report.\n *\n * @param filenames - Filenames to read and parse.\n * @returns Report output.\n */\n async validateMultipleFiles(filenames) {\n const report = Reporter.merge(filenames.map((filename) => this.validateFileSync(filename)));\n return Promise.resolve(report);\n }\n /**\n * Parse and validate HTML from multiple files. Result is merged together to a\n * single report.\n *\n * @param filenames - Filenames to read and parse.\n * @returns Report output.\n */\n validateMultipleFilesSync(filenames) {\n return Reporter.merge(filenames.map((filename) => this.validateFileSync(filename)));\n }\n /**\n * Returns true if the given filename can be validated.\n *\n * A file is considered to be validatable if the extension is `.html` or if a\n * transformer matches the filename.\n *\n * This is mostly useful for tooling to determine whenever to validate the\n * file or not. CLI tools will run on all the given files anyway.\n */\n async canValidate(filename) {\n /* .html is always supported */\n if (filename.toLowerCase().endsWith(\".html\")) {\n return true;\n }\n /* test if there is a matching transformer */\n const config = await this.getConfigFor(filename);\n return config.canTransform(filename);\n }\n /**\n * Returns true if the given filename can be validated.\n *\n * A file is considered to be validatable if the extension is `.html` or if a\n * transformer matches the filename.\n *\n * This is mostly useful for tooling to determine whenever to validate the\n * file or not. CLI tools will run on all the given files anyway.\n */\n canValidateSync(filename) {\n /* .html is always supported */\n if (filename.toLowerCase().endsWith(\".html\")) {\n return true;\n }\n /* test if there is a matching transformer */\n const config = this.getConfigForSync(filename);\n return config.canTransform(filename);\n }\n /**\n * Tokenize filename and output all tokens.\n *\n * Using CLI this is enabled with `--dump-tokens`. Mostly useful for\n * debugging.\n *\n * @internal\n * @param filename - Filename to tokenize.\n */\n dumpTokens(filename) {\n const config = this.getConfigForSync(filename);\n const source = config.transformFilename(filename);\n const engine = new Engine(config, Parser);\n return engine.dumpTokens(source);\n }\n /**\n * Parse filename and output all events.\n *\n * Using CLI this is enabled with `--dump-events`. Mostly useful for\n * debugging.\n *\n * @internal\n * @param filename - Filename to dump events from.\n */\n dumpEvents(filename) {\n const config = this.getConfigForSync(filename);\n const source = config.transformFilename(filename);\n const engine = new Engine(config, Parser);\n return engine.dumpEvents(source);\n }\n /**\n * Parse filename and output DOM tree.\n *\n * Using CLI this is enabled with `--dump-tree`. Mostly useful for\n * debugging.\n *\n * @internal\n * @param filename - Filename to dump DOM tree from.\n */\n dumpTree(filename) {\n const config = this.getConfigForSync(filename);\n const source = config.transformFilename(filename);\n const engine = new Engine(config, Parser);\n return engine.dumpTree(source);\n }\n /**\n * Transform filename and output source data.\n *\n * Using CLI this is enabled with `--dump-source`. Mostly useful for\n * debugging.\n *\n * @internal\n * @param filename - Filename to dump source from.\n */\n dumpSource(filename) {\n const config = this.getConfigForSync(filename);\n const sources = config.transformFilename(filename);\n return sources.reduce((result, source) => {\n result.push(`Source ${source.filename}@${source.line}:${source.column} (offset: ${source.offset})`);\n if (source.transformedBy) {\n result.push(\"Transformed by:\");\n result = result.concat(source.transformedBy.reverse().map((name) => ` - ${name}`));\n }\n if (source.hooks && Object.keys(source.hooks).length > 0) {\n result.push(\"Hooks\");\n for (const [key, present] of Object.entries(source.hooks)) {\n if (present) {\n result.push(` - ${key}`);\n }\n }\n }\n result.push(\"---\");\n result = result.concat(source.data.split(\"\\n\"));\n result.push(\"---\");\n return result;\n }, []);\n }\n /**\n * Get effective configuration schema.\n */\n getConfigurationSchema() {\n return configurationSchema;\n }\n /**\n * Get effective metadata element schema.\n *\n * If a filename is given the configured plugins can extend the\n * schema. Filename must not be an existing file or a filetype normally\n * handled by html-validate but the path will be used when resolving\n * configuration. As a rule-of-thumb, set it to the elements json file.\n */\n async getElementsSchema(filename) {\n const config = await this.getConfigFor(filename !== null && filename !== void 0 ? filename : \"inline\");\n const metaTable = config.getMetaTable();\n return metaTable.getJSONSchema();\n }\n /**\n * Get effective metadata element schema.\n *\n * If a filename is given the configured plugins can extend the\n * schema. Filename must not be an existing file or a filetype normally\n * handled by html-validate but the path will be used when resolving\n * configuration. As a rule-of-thumb, set it to the elements json file.\n */\n getElementsSchemaSync(filename) {\n const config = this.getConfigForSync(filename !== null && filename !== void 0 ? filename : \"inline\");\n const metaTable = config.getMetaTable();\n return metaTable.getJSONSchema();\n }\n async getContextualDocumentation(message, filenameOrConfig = \"inline\") {\n const config = typeof filenameOrConfig === \"string\"\n ? await this.getConfigFor(filenameOrConfig)\n : await filenameOrConfig;\n const engine = new Engine(config, Parser);\n return engine.getRuleDocumentation(message);\n }\n getContextualDocumentationSync(message, filenameOrConfig = \"inline\") {\n const config = typeof filenameOrConfig === \"string\"\n ? this.getConfigForSync(filenameOrConfig)\n : filenameOrConfig;\n const engine = new Engine(config, Parser);\n return engine.getRuleDocumentation(message);\n }\n /**\n * Get contextual documentation for the given rule.\n *\n * Typical usage:\n *\n * ```js\n * const report = await htmlvalidate.validateFile(\"my-file.html\");\n * for (const result of report.results){\n * const config = await htmlvalidate.getConfigFor(result.filePath);\n * for (const message of result.messages){\n * const documentation = await htmlvalidate.getRuleDocumentation(message.ruleId, config, message.context);\n * // do something with documentation\n * }\n * }\n * ```\n *\n * @public\n * @deprecated Deprecated since 8.0.0, use [[getContextualDocumentation]] instead.\n * @param ruleId - Rule to get documentation for.\n * @param config - If set it provides more accurate description by using the\n * correct configuration for the file.\n * @param context - If set to `Message.context` some rules can provide\n * contextual details and suggestions.\n */\n async getRuleDocumentation(ruleId, config = null, context = null) {\n const c = config !== null && config !== void 0 ? config : this.getConfigFor(\"inline\");\n const engine = new Engine(await c, Parser);\n return engine.getRuleDocumentation({ ruleId, context });\n }\n /**\n * Get contextual documentation for the given rule.\n *\n * Typical usage:\n *\n * ```js\n * const report = htmlvalidate.validateFileSync(\"my-file.html\");\n * for (const result of report.results){\n * const config = htmlvalidate.getConfigForSync(result.filePath);\n * for (const message of result.messages){\n * const documentation = htmlvalidate.getRuleDocumentationSync(message.ruleId, config, message.context);\n * // do something with documentation\n * }\n * }\n * ```\n *\n * @public\n * @deprecated Deprecated since 8.0.0, use [[getContextualDocumentationSync]] instead.\n * @param ruleId - Rule to get documentation for.\n * @param config - If set it provides more accurate description by using the\n * correct configuration for the file.\n * @param context - If set to `Message.context` some rules can provide\n * contextual details and suggestions.\n */\n getRuleDocumentationSync(ruleId, config = null, context = null) {\n const c = config !== null && config !== void 0 ? config : this.getConfigForSync(\"inline\");\n const engine = new Engine(c, Parser);\n return engine.getRuleDocumentation({ ruleId, context });\n }\n /**\n * Create a parser configured for given filename.\n *\n * @internal\n * @param source - Source to use.\n */\n async getParserFor(source) {\n const config = await this.getConfigFor(source.filename);\n return new Parser(config);\n }\n /**\n * Get configuration for given filename.\n *\n * See [[FileSystemConfigLoader]] for details.\n *\n * @public\n * @param filename - Filename to get configuration for.\n * @param configOverride - Configuration to apply last.\n */\n getConfigFor(filename, configOverride) {\n const config = this.configLoader.getConfigFor(filename, configOverride);\n return Promise.resolve(config);\n }\n /**\n * Get configuration for given filename.\n *\n * See [[FileSystemConfigLoader]] for details.\n *\n * @public\n * @param filename - Filename to get configuration for.\n * @param configOverride - Configuration to apply last.\n */\n getConfigForSync(filename, configOverride) {\n return this.configLoader.getConfigFor(filename, configOverride);\n }\n /**\n * Flush configuration cache. Clears full cache unless a filename is given.\n *\n * See [[FileSystemConfigLoader]] for details.\n *\n * @public\n * @param filename - If set, only flush cache for given filename.\n */\n flushConfigCache(filename) {\n this.configLoader.flushCache(filename);\n }\n}\n//# sourceMappingURL=htmlvalidate.js.map","/* generated file, changes will be overwritten */\n/** @public */\nexport const name = \"html-validate\";\n/** @public */\nexport const version = \"8.4.0\";\n/** @public */\nexport const homepage = \"https://html-validate.org\";\n/** @public */\nexport const bugs = \"https://gitlab.com/html-validate/html-validate/issues/new\";\n//# sourceMappingURL=package.js.map","/**\n * Helper function to assist IDE with completion and type-checking.\n *\n * @public\n */\nexport function definePlugin(plugin) {\n return plugin;\n}\n//# sourceMappingURL=define-plugin.js.map","import rules from \"../rules\";\nconst ruleIds = new Set(Object.keys(rules));\n/**\n * Returns true if given ruleId is an existing builtin rule. It does not handle\n * rules loaded via plugins.\n *\n * Can be used to create forward/backward compatibility by checking if a rule\n * exists to enable/disable it.\n *\n * @public\n * @param ruleId - Rule id to check\n * @returns `true` if rule exists\n */\nexport function ruleExists(ruleId) {\n return ruleIds.has(ruleId);\n}\n//# sourceMappingURL=rule-exists.js.map","const entities = {\n \">\": \"&gt;\",\n \"<\": \"&lt;\",\n \"'\": \"&apos;\",\n '\"': \"&quot;\",\n \"&\": \"&amp;\",\n};\nfunction xmlescape(src) {\n return src.toString().replace(/[><'\"&]/g, (match) => {\n return entities[match];\n });\n}\nfunction getMessageType(message) {\n switch (message.severity) {\n case 2:\n return \"error\";\n case 1:\n return \"warning\";\n default:\n return \"error\";\n }\n}\nfunction checkstyleFormatter(results) {\n let output = \"\";\n output += `<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n`;\n output += `<checkstyle version=\"4.3\">\\n`;\n results.forEach((result) => {\n const messages = result.messages;\n output += ` <file name=\"${xmlescape(result.filePath)}\">\\n`;\n messages.forEach((message) => {\n const ruleId = xmlescape(`htmlvalidate.rules.${message.ruleId}`);\n output += \" \";\n output += [\n `<error line=\"${xmlescape(message.line)}\"`,\n `column=\"${xmlescape(message.column)}\"`,\n `severity=\"${xmlescape(getMessageType(message))}\"`,\n `message=\"${xmlescape(message.message)} (${message.ruleId})\"`,\n `source=\"${ruleId}\" />`,\n ].join(\" \");\n output += \"\\n\";\n });\n output += \" </file>\\n\";\n });\n output += \"</checkstyle>\\n\";\n return output;\n}\nconst formatter = checkstyleFormatter;\nexport default formatter;\n//# sourceMappingURL=checkstyle.js.map","import { codeFrameColumns } from \"@babel/code-frame\";\nimport kleur from \"kleur\";\nconst defaults = {\n showLink: true,\n showSummary: true,\n showSelector: false,\n};\n/**\n * Codeframe formatter based on ESLint codeframe.\n */\n/**\n * Given a word and a count, append an s if count is not one.\n * @param word - A word in its singular form.\n * @param count - A number controlling whether word should be pluralized.\n * @returns The original word with an s on the end if count is not one.\n */\nfunction pluralize(word, count) {\n return count === 1 ? word : `${word}s`;\n}\n/**\n * Gets a formatted relative file path from an absolute path and a line/column in the file.\n * @param filePath - The absolute file path to format.\n * @param line - The line from the file to use for formatting.\n * @param column -The column from the file to use for formatting.\n * @returns The formatted file path.\n */\nfunction formatFilePath(filePath, line, column) {\n /* istanbul ignore next: safety check from original implementation */\n if (line && column) {\n filePath += `:${line}:${column}`;\n }\n return kleur.green(filePath);\n}\nfunction getStartLocation(message) {\n return {\n line: message.line,\n column: message.column,\n };\n}\nfunction getEndLocation(message, source) {\n let line = message.line;\n let column = message.column;\n for (let i = 0; i < message.size; i++) {\n if (source.charAt(message.offset + i) === \"\\n\") {\n line++;\n column = 0;\n }\n else {\n column++;\n }\n }\n return { line, column };\n}\n/**\n * Gets the formatted output for a given message.\n * @param message - The object that represents this message.\n * @param parentResult - The result object that this message belongs to.\n * @returns The formatted output.\n */\nfunction formatMessage(message, parentResult, options) {\n var _a;\n const type = message.severity === 2 ? kleur.red(\"error\") : kleur.yellow(\"warning\");\n const msg = `${kleur.bold(message.message.replace(/([^ ])\\.$/, \"$1\"))}`;\n const ruleId = kleur.dim(`(${message.ruleId})`);\n const filePath = formatFilePath(parentResult.filePath, message.line, message.column);\n const sourceCode = parentResult.source;\n /* istanbul ignore next: safety check from original implementation */\n const firstLine = [\n `${type}:`,\n `${msg}`,\n ruleId ? `${ruleId}` : \"\",\n sourceCode ? `at ${filePath}:` : `at ${filePath}`,\n ]\n .filter(String)\n .join(\" \");\n const result = [firstLine];\n /* istanbul ignore next: safety check from original implementation */\n if (sourceCode) {\n result.push(codeFrameColumns(sourceCode, {\n start: getStartLocation(message),\n end: getEndLocation(message, sourceCode),\n }, { highlightCode: false }));\n }\n if (options.showSelector) {\n result.push(`${kleur.bold(\"Selector:\")} ${(_a = message.selector) !== null && _a !== void 0 ? _a : \"-\"}`);\n }\n if (options.showLink && message.ruleUrl) {\n result.push(`${kleur.bold(\"Details:\")} ${message.ruleUrl}`);\n }\n return result.join(\"\\n\");\n}\n/**\n * Gets the formatted output summary for a given number of errors and warnings.\n * @param errors - The number of errors.\n * @param warnings - The number of warnings.\n * @returns The formatted output summary.\n */\nfunction formatSummary(errors, warnings) {\n const summaryColor = errors > 0 ? \"red\" : \"yellow\";\n const summary = [];\n if (errors > 0) {\n summary.push(`${errors} ${pluralize(\"error\", errors)}`);\n }\n if (warnings > 0) {\n summary.push(`${warnings} ${pluralize(\"warning\", warnings)}`);\n }\n return kleur[summaryColor]().bold(`${summary.join(\" and \")} found.`);\n}\nexport function codeframe(results, options) {\n const merged = { ...defaults, ...options };\n let errors = 0;\n let warnings = 0;\n const resultsWithMessages = results.filter((result) => result.messages.length > 0);\n let output = resultsWithMessages\n .reduce((resultsOutput, result) => {\n const messages = result.messages.map((message) => {\n return `${formatMessage(message, result, merged)}\\n\\n`;\n });\n errors += result.errorCount;\n warnings += result.warningCount;\n return resultsOutput.concat(messages);\n }, [])\n .join(\"\\n\");\n if (merged.showSummary) {\n output += \"\\n\";\n output += formatSummary(errors, warnings);\n output += \"\\n\";\n }\n return errors + warnings > 0 ? output : \"\";\n}\n//# sourceMappingURL=codeframe.js.map","function jsonFormatter(results) {\n return JSON.stringify(results);\n}\nconst formatter = jsonFormatter;\nexport default formatter;\n//# sourceMappingURL=json.js.map","import { stylish as stylishImpl } from \"@html-validate/stylish\";\nimport kleur from \"kleur\";\nfunction linkSummary(results) {\n const urls = results.reduce((result, it) => {\n const urls = it.messages\n .map((error) => error.ruleUrl)\n .filter((error) => Boolean(error));\n return [...result, ...urls];\n }, []);\n const unique = Array.from(new Set(urls));\n if (unique.length === 0) {\n return \"\";\n }\n const lines = unique.map((url) => ` ${url}\\n`);\n return `\\n${kleur.bold(\"More information\")}:\\n${lines.join(\"\")}\\n`;\n}\nfunction stylish(results) {\n const errors = stylishImpl(results.map((it) => ({\n ...it,\n fixableErrorCount: 0,\n fixableWarningCount: 0,\n })));\n const links = linkSummary(results);\n return `${errors}${links}`;\n}\nconst formatter = stylish;\nexport default formatter;\n//# sourceMappingURL=stylish.js.map","function textFormatter(results) {\n let output = \"\";\n let total = 0;\n results.forEach((result) => {\n const messages = result.messages;\n if (messages.length === 0) {\n return;\n }\n total += messages.length;\n output += messages\n .map((message) => {\n let messageType;\n if (message.severity === 2) {\n messageType = \"error\";\n }\n else {\n messageType = \"warning\";\n }\n const location = `${result.filePath}:${message.line}:${message.column}`;\n return `${location}: ${messageType} [${message.ruleId}] ${message.message}\\n`;\n })\n .join(\"\");\n });\n return total > 0 ? output : \"\";\n}\nconst formatter = textFormatter;\nexport default formatter;\n//# sourceMappingURL=text.js.map","import checkstyle from \"./checkstyle\";\nimport { codeframe } from \"./codeframe\";\nimport json from \"./json\";\nimport stylish from \"./stylish\";\nimport text from \"./text\";\nconst availableFormatters = {\n checkstyle,\n codeframe,\n json,\n stylish,\n text,\n};\nexport function getFormatter(name) {\n var _a;\n return (_a = availableFormatters[name]) !== null && _a !== void 0 ? _a : null;\n}\n//# sourceMappingURL=index.js.map","import semver from \"semver\";\n/**\n * @internal\n */\nexport function compatibilityCheckImpl(name, declared, options) {\n const { silent, version: current, logger } = options;\n const valid = semver.satisfies(current, declared);\n if (valid || silent) {\n return valid;\n }\n const text = [\n \"-----------------------------------------------------------------------------------------------------\",\n `${name} requires html-validate version \"${declared}\" but current installed version is ${current}`,\n \"This is not a supported configuration. Please install a supported version before reporting bugs.\",\n \"-----------------------------------------------------------------------------------------------------\",\n ].join(\"\\n\");\n logger(text);\n return false;\n}\n//# sourceMappingURL=compatibility-check.js.map"],"names":["betterAjvErrors","fs","TextContent","overwriteMerge","deepmerge","Ajv","NodeType","pseudoClassFunction","NodeClosed","Severity","TextClassification","ajv","Style","defaults","RuleContext","getDescription","parseStyle","reportMessage","getRuleDescription","isCategory","formatMessage","naturalJoin","hasImgAltText","isRelevant","TextContentEnum","regexp","entities","html5","bundledRules","DoctypeHtml","NoDupId","UnrecognizedCharRef","config","schema","bundledElements","formatter","kleur","codeFrameColumns","stylishImpl","stylish","semver"],"mappings":"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"}