html-validate 8.7.3 → 8.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/browser.js +7 -21
- package/dist/cjs/browser.js.map +1 -1
- package/dist/cjs/cli.js +468 -451
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/core-browser.js +9 -20
- package/dist/cjs/core-browser.js.map +1 -1
- package/dist/cjs/core-nodejs.js +203 -297
- package/dist/cjs/core-nodejs.js.map +1 -1
- package/dist/cjs/core.js +9511 -10450
- package/dist/cjs/core.js.map +1 -1
- package/dist/cjs/elements.js +2293 -2296
- package/dist/cjs/elements.js.map +1 -1
- package/dist/cjs/html-validate.js +148 -169
- package/dist/cjs/html-validate.js.map +1 -1
- package/dist/cjs/html5.js.map +1 -1
- package/dist/cjs/index.js +8 -21
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jest-diff.js +26 -36
- package/dist/cjs/jest-diff.js.map +1 -1
- package/dist/cjs/jest.js +8 -8
- package/dist/cjs/jest.js.map +1 -1
- package/dist/cjs/matcher-utils.js +12 -28
- package/dist/cjs/matcher-utils.js.map +1 -1
- package/dist/cjs/matchers-jestonly.js +38 -47
- package/dist/cjs/matchers-jestonly.js.map +1 -1
- package/dist/cjs/matchers.js +196 -196
- package/dist/cjs/matchers.js.map +1 -1
- package/dist/cjs/meta-helper.js +40 -60
- package/dist/cjs/meta-helper.js.map +1 -1
- package/dist/cjs/test-utils.js +26 -47
- package/dist/cjs/test-utils.js.map +1 -1
- package/dist/cjs/tsdoc-metadata.json +1 -1
- package/dist/cjs/utils/natural-join.js +10 -23
- package/dist/cjs/utils/natural-join.js.map +1 -1
- package/dist/cjs/vitest.js +6 -6
- package/dist/cjs/vitest.js.map +1 -1
- package/dist/es/browser.js +2 -2
- package/dist/es/cli.js +467 -454
- package/dist/es/cli.js.map +1 -1
- package/dist/es/core-browser.js +10 -21
- package/dist/es/core-browser.js.map +1 -1
- package/dist/es/core-nodejs.js +204 -299
- package/dist/es/core-nodejs.js.map +1 -1
- package/dist/es/core.js +9506 -10451
- package/dist/es/core.js.map +1 -1
- package/dist/es/elements.js +2293 -2296
- package/dist/es/elements.js.map +1 -1
- package/dist/es/html-validate.js +150 -171
- package/dist/es/html-validate.js.map +1 -1
- package/dist/es/html5.js.map +1 -1
- package/dist/es/index.js +3 -3
- package/dist/es/jest-diff.js +11 -21
- package/dist/es/jest-diff.js.map +1 -1
- package/dist/es/jest.js +8 -8
- package/dist/es/jest.js.map +1 -1
- package/dist/es/matcher-utils.js +12 -28
- package/dist/es/matcher-utils.js.map +1 -1
- package/dist/es/matchers-jestonly.js +39 -48
- package/dist/es/matchers-jestonly.js.map +1 -1
- package/dist/es/matchers.js +196 -196
- package/dist/es/matchers.js.map +1 -1
- package/dist/es/meta-helper.js +40 -60
- package/dist/es/meta-helper.js.map +1 -1
- package/dist/es/test-utils.js +26 -47
- package/dist/es/test-utils.js.map +1 -1
- package/dist/es/utils/natural-join.js +10 -23
- package/dist/es/utils/natural-join.js.map +1 -1
- package/dist/es/vitest.js +6 -6
- package/dist/es/vitest.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/browser.d.ts +62 -30
- package/dist/types/index.d.ts +89 -32
- package/package.json +22 -18
package/dist/es/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sources":["../../../src/jest/matchers/to-be-valid.ts","../../../src/jest/matchers/to-be-invalid.ts","../../../src/jest/matchers/to-htmlvalidate.ts","../../../src/jest/matchers/to-have-error.ts","../../../src/jest/matchers/to-have-errors.ts","../../../src/jest/matchers/get-results.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["createMatcher"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matchers.js","sources":["../../src/jest/matchers/to-be-valid.ts","../../src/jest/matchers/to-be-invalid.ts","../../src/jest/matchers/to-htmlvalidate.ts","../../src/jest/matchers/to-have-error.ts","../../src/jest/matchers/to-have-errors.ts","../../src/jest/matchers/get-results.ts"],"sourcesContent":["import { type Report } from \"../../reporter\";\nimport { type MatcherResult, type MaybeAsyncCallback, diverge } from \"../utils\";\n\nfunction createMatcher(): MaybeAsyncCallback<Report, []> {\n\tfunction toBeValid(report: Report): MatcherResult {\n\t\tif (report.valid) {\n\t\t\treturn {\n\t\t\t\tpass: true,\n\t\t\t\tmessage: /* istanbul ignore next */ () => \"Result should not contain error\",\n\t\t\t};\n\t\t} else {\n\t\t\tconst firstError = report.results[0].messages[0];\n\t\t\treturn {\n\t\t\t\tpass: false,\n\t\t\t\tmessage: () => `Result should be valid but had error \"${firstError.message}\"`,\n\t\t\t};\n\t\t}\n\t}\n\treturn diverge(toBeValid);\n}\n\nexport { createMatcher as toBeValid };\n","import { type Report } from \"../../reporter\";\nimport { type MatcherResult, type MaybeAsyncCallback, diverge } from \"../utils\";\n\nfunction createMatcher(): MaybeAsyncCallback<Report, []> {\n\tfunction toBeInvalid(report: Report): MatcherResult {\n\t\tif (report.valid) {\n\t\t\treturn {\n\t\t\t\tpass: false,\n\t\t\t\tmessage: () => \"Result should be invalid but had no errors\",\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tpass: true,\n\t\t\t\tmessage: /* istanbul ignore next */ () => \"Result should not contain error\",\n\t\t\t};\n\t\t}\n\t}\n\treturn diverge(toBeInvalid);\n}\n\nexport { createMatcher as toBeInvalid };\n","import deepmerge from \"deepmerge\";\nimport { type ConfigData } from \"../../config\";\nimport { FileSystemConfigLoader } from \"../../config/loaders/file-system\";\nimport { HtmlValidate } from \"../../htmlvalidate\";\nimport { type Message } from \"../../reporter\";\nimport {\n\ttype DiffFunction,\n\ttype MatcherContext,\n\ttype MatcherExpect,\n\ttype MatcherResult,\n\ttype MaybeAsyncCallback,\n\tdiverge,\n} from \"../utils\";\n\nfunction isMessage(arg: any): arg is Partial<Message> {\n\tif (!arg) {\n\t\treturn false;\n\t}\n\treturn Boolean(\n\t\targ.ruleId ||\n\t\t\targ.severity ||\n\t\t\targ.message ||\n\t\t\targ.offset ||\n\t\t\targ.line ||\n\t\t\targ.column ||\n\t\t\targ.size ||\n\t\t\targ.selector ||\n\t\t\targ.context,\n\t);\n}\n\nfunction isConfig(arg: any): arg is ConfigData {\n\tif (!arg) {\n\t\treturn false;\n\t}\n\treturn Boolean(\n\t\targ.root || arg.extends || arg.elements || arg.plugin || arg.transform || arg.rules,\n\t);\n}\n\nfunction isString(arg: any): arg is string {\n\treturn typeof arg === \"string\";\n}\n\nfunction getMarkup(src: unknown): string {\n\tif (typeof HTMLElement !== \"undefined\" && src instanceof HTMLElement) {\n\t\treturn (src as { outerHTML: string }).outerHTML;\n\t}\n\t/* istanbul ignore else: prototype only allows string or HTMLElement */\n\tif (typeof src === \"string\") {\n\t\treturn src;\n\t} else {\n\t\tthrow new Error(`Failed to get markup from \"${typeof src}\" argument`);\n\t}\n}\n\ntype Arg1 = Partial<Message> | ConfigData | string;\ntype Arg2 = ConfigData | string;\ntype Arg3 = string;\n\nfunction createMatcher(\n\texpect: MatcherExpect,\n\tdiff: DiffFunction | undefined,\n): MaybeAsyncCallback<unknown, [Arg1?, Arg2?, Arg3?]> {\n\tfunction toHTMLValidate(\n\t\tthis: MatcherContext,\n\t\tactual: unknown,\n\t\targ0?: Arg1,\n\t\targ1?: Arg2,\n\t\targ2?: Arg3,\n\t): MatcherResult {\n\t\tconst markup = getMarkup(actual);\n\t\tconst message = isMessage(arg0) ? arg0 : undefined;\n\t\tconst config = isConfig(arg0) ? arg0 : isConfig(arg1) ? arg1 : undefined;\n\t\tconst filename = isString(arg0) ? arg0 : isString(arg1) ? arg1 : arg2;\n\t\treturn toHTMLValidateImpl.call(this, expect, diff, markup, message, config, filename);\n\t}\n\treturn diverge(toHTMLValidate);\n}\n\nfunction toHTMLValidateImpl(\n\tthis: MatcherContext,\n\texpect: MatcherExpect,\n\tdiff: DiffFunction | undefined,\n\tactual: string,\n\texpectedError?: Partial<Message>,\n\tuserConfig?: ConfigData,\n\tfilename?: string,\n): MatcherResult {\n\tconst defaultConfig = {\n\t\trules: {\n\t\t\t/* jsdom normalizes style so disabling rule when using this matcher or it\n\t\t\t * gets quite noisy when configured with self-closing */\n\t\t\t\"void-style\": \"off\",\n\t\t},\n\t};\n\tconst config = deepmerge(defaultConfig, userConfig ?? {});\n\t/* istanbul ignore next: cant figure out when this would be unset */\n\tconst actualFilename = filename ?? this.testPath ?? \"inline\";\n\tconst loader = new FileSystemConfigLoader({\n\t\textends: [\"html-validate:recommended\"],\n\t});\n\tconst htmlvalidate = new HtmlValidate(loader);\n\tconst report = htmlvalidate.validateStringSync(actual, actualFilename, config);\n\tconst pass = report.valid;\n\tconst result = report.results[0];\n\tif (pass) {\n\t\treturn { pass, message: () => \"HTML is valid when an error was expected\" };\n\t} else {\n\t\tif (expectedError) {\n\t\t\tconst actual = result.messages;\n\t\t\tconst expected = expect.arrayContaining([expect.objectContaining(expectedError)]);\n\t\t\tconst errorPass = this.equals(actual, expected);\n\t\t\tconst diffString = diff\n\t\t\t\t? diff(expected, actual, {\n\t\t\t\t\t\texpand: this.expand,\n\t\t\t\t\t\taAnnotation: \"Expected error\",\n\t\t\t\t\t\tbAnnotation: \"Actual error\",\n\t\t\t\t })\n\t\t\t\t: /* istanbul ignore next */ undefined;\n\t\t\tconst hint = this.utils.matcherHint(\".not.toHTMLValidate\", undefined, undefined, {\n\t\t\t\tcomment: \"expected error\",\n\t\t\t});\n\t\t\tconst expectedErrorMessage = (): string =>\n\t\t\t\t[\n\t\t\t\t\thint,\n\t\t\t\t\t\"\",\n\t\t\t\t\t\"Expected error to be present:\",\n\t\t\t\t\tthis.utils.printExpected(expectedError),\n\t\t\t\t\t/* istanbul ignore next */ diffString ? `\\n${diffString}` : \"\",\n\t\t\t\t].join(\"\\n\");\n\t\t\treturn { pass: !errorPass, message: expectedErrorMessage, actual, expected };\n\t\t}\n\n\t\tconst errors = result.messages.map((message) => ` ${message.message} [${message.ruleId}]`);\n\t\treturn {\n\t\t\tpass,\n\t\t\tmessage: () =>\n\t\t\t\t[\"Expected HTML to be valid but had the following errors:\", \"\"].concat(errors).join(\"\\n\"),\n\t\t};\n\t}\n}\n\nexport { createMatcher as toHTMLValidate };\n","import { type Message, type Report } from \"../../reporter\";\nimport {\n\ttype DiffFunction,\n\ttype MatcherContext,\n\ttype MatcherExpect,\n\ttype MatcherResult,\n\ttype MaybeAsyncCallback,\n\tdiverge,\n} from \"../utils\";\nimport { flattenMessages } from \"../utils/flatten-messages\";\n\nfunction toHaveErrorImpl(\n\tcontext: MatcherContext,\n\texpect: MatcherExpect,\n\tdiff: DiffFunction | undefined,\n\tactual: Report,\n\texpected: Partial<Message>,\n): MatcherResult {\n\tconst flattened = flattenMessages(actual);\n\tconst matcher = [expect.objectContaining(expected)];\n\tconst pass = context.equals(flattened, matcher);\n\tconst diffString = diff\n\t\t? diff(matcher, flattened, { expand: context.expand })\n\t\t: /* istanbul ignore next */ undefined;\n\tconst hint = context.utils.matcherHint(\".toHaveError\");\n\tconst prettyExpected = context.utils.printExpected(matcher);\n\tconst prettyReceived = context.utils.printReceived(flattened);\n\tconst resultMessage = (): string => {\n\t\treturn [\n\t\t\thint,\n\t\t\t\"\",\n\t\t\t\"Expected error to equal:\",\n\t\t\t` ${prettyExpected}`,\n\t\t\t\"Received:\",\n\t\t\t` ${prettyReceived}`,\n\t\t\t/* istanbul ignore next */ diffString ? `\\nDifference:\\n\\n${diffString}` : \"\",\n\t\t].join(\"\\n\");\n\t};\n\treturn { pass, message: resultMessage, actual: flattened, expected: matcher };\n}\n\nfunction createMatcher(\n\texpect: MatcherExpect,\n\tdiff: DiffFunction | undefined,\n):\n\t| MaybeAsyncCallback<Report, [Partial<Message>]>\n\t| MaybeAsyncCallback<Report, [string, string, any?]> {\n\tfunction toHaveError(\n\t\tthis: MatcherContext,\n\t\tactual: Report,\n\t\terror: Partial<Message>,\n\t): MatcherResult;\n\tfunction toHaveError(\n\t\tthis: MatcherContext,\n\t\tactual: Report,\n\t\truleId: string,\n\t\tmessage: string,\n\t\tcontext?: any,\n\t): MatcherResult;\n\tfunction toHaveError(\n\t\tthis: MatcherContext,\n\t\tactual: Report,\n\t\targ1: string | Partial<Message>,\n\t\targ2?: string,\n\t\targ3?: any,\n\t): MatcherResult {\n\t\tif (typeof arg1 === \"string\") {\n\t\t\tconst expected: Partial<Message> = {\n\t\t\t\truleId: arg1,\n\t\t\t\tmessage: arg2,\n\t\t\t};\n\t\t\tif (arg3) {\n\t\t\t\t/* eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- this is supposed to accept anything */\n\t\t\t\texpected.context = arg3;\n\t\t\t}\n\t\t\treturn toHaveErrorImpl(this, expect, diff, actual, expected);\n\t\t} else {\n\t\t\treturn toHaveErrorImpl(this, expect, diff, actual, arg1);\n\t\t}\n\t}\n\treturn diverge(toHaveError);\n}\n\nexport { createMatcher as toHaveError };\n","/* eslint-disable prefer-template -- technical debt, should be refactored */\n\nimport { type Report } from \"../../reporter\";\nimport {\n\ttype DiffFunction,\n\ttype MatcherContext,\n\ttype MatcherExpect,\n\ttype MatcherResult,\n\ttype MaybeAsyncCallback,\n\tdiverge,\n\tflattenMessages,\n} from \"../utils\";\n\nfunction createMatcher(\n\texpect: MatcherExpect,\n\tdiff: DiffFunction | undefined,\n): MaybeAsyncCallback<Report, [Array<[string, string] | Record<string, unknown>>]> {\n\tfunction toHaveErrors(\n\t\tthis: MatcherContext,\n\t\treport: Report,\n\t\terrors: Array<[string, string] | Record<string, unknown>>,\n\t): MatcherResult {\n\t\tconst flattened = flattenMessages(report);\n\t\tconst matcher = errors.map((entry) => {\n\t\t\tif (Array.isArray(entry)) {\n\t\t\t\tconst [ruleId, message] = entry;\n\t\t\t\treturn expect.objectContaining({ ruleId, message });\n\t\t\t} else {\n\t\t\t\treturn expect.objectContaining(entry);\n\t\t\t}\n\t\t});\n\t\tconst pass = this.equals(flattened, matcher);\n\t\tconst diffString = diff\n\t\t\t? diff(matcher, flattened, { expand: this.expand })\n\t\t\t: /* istanbul ignore next */ undefined;\n\t\tconst resultMessage = (): string =>\n\t\t\tthis.utils.matcherHint(\".toHaveErrors\") +\n\t\t\t\"\\n\\n\" +\n\t\t\t\"Expected error to equal:\\n\" +\n\t\t\t` ${this.utils.printExpected(matcher)}\\n` +\n\t\t\t\"Received:\\n\" +\n\t\t\t` ${this.utils.printReceived(flattened)}` +\n\t\t\t/* istanbul ignore next */ (diffString ? `\\n\\nDifference:\\n\\n${diffString}` : \"\");\n\n\t\treturn { pass, message: resultMessage };\n\t}\n\treturn diverge(toHaveErrors);\n}\n\nexport { createMatcher as toHaveErrors };\n","import { FileSystemConfigLoader } from \"../../config/loaders/file-system\";\nimport { type Report, type Result } from \"../../reporter\";\nimport { HtmlValidate } from \"../../htmlvalidate\";\n\n/**\n * @internal\n */\nexport function getResults(filename: string, value: Report | string): Result[] {\n\tif (typeof value === \"string\") {\n\t\tconst loader = new FileSystemConfigLoader({\n\t\t\textends: [\"html-validate:recommended\"],\n\t\t});\n\t\tconst htmlvalidate = new HtmlValidate(loader);\n\t\tconst report = htmlvalidate.validateStringSync(value, filename, {\n\t\t\trules: {\n\t\t\t\t\"void-style\": \"off\",\n\t\t\t},\n\t\t});\n\t\treturn report.results.map((it) => {\n\t\t\treturn { ...it, filePath: \"inline\" };\n\t\t});\n\t} else {\n\t\treturn value.results;\n\t}\n}\n"],"names":["createMatcher","actual"],"mappings":"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"}
|
package/dist/es/meta-helper.js
CHANGED
|
@@ -1,77 +1,57 @@
|
|
|
1
1
|
import { n as naturalJoin } from './utils/natural-join.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Helper function to assist IDE with completion and type-checking.
|
|
5
|
-
*
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
3
|
function defineMetadata(metatable) {
|
|
9
|
-
|
|
4
|
+
return metatable;
|
|
10
5
|
}
|
|
11
6
|
|
|
12
|
-
/**
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
7
|
function allowedIfAttributeIsPresent(...attr) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
return (node) => {
|
|
9
|
+
if (attr.some((it) => node.hasAttribute(it))) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const expected = naturalJoin(attr.map((it) => `"${it}"`));
|
|
13
|
+
return `requires ${expected} attribute to be present`;
|
|
14
|
+
};
|
|
23
15
|
}
|
|
24
|
-
/**
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
16
|
function allowedIfAttributeIsAbsent(...attr) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
return (node) => {
|
|
18
|
+
const present = attr.filter((it) => node.hasAttribute(it));
|
|
19
|
+
if (present.length === 0) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const expected = naturalJoin(present.map((it) => `"${it}"`));
|
|
23
|
+
return `cannot be used at the same time as ${expected}`;
|
|
24
|
+
};
|
|
36
25
|
}
|
|
37
|
-
/**
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
26
|
function allowedIfAttributeHasValue(key, expectedValue, { defaultValue } = {}) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
27
|
+
return (node) => {
|
|
28
|
+
const attr = node.getAttribute(key);
|
|
29
|
+
if (attr && typeof attr !== "string") {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const actualValue = attr ? attr : defaultValue;
|
|
33
|
+
if (actualValue && expectedValue.includes(actualValue.toLocaleLowerCase())) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const expected = naturalJoin(expectedValue.map((it) => `"${it}"`));
|
|
37
|
+
return `"${key}" attribute must be ${expected}`;
|
|
38
|
+
};
|
|
53
39
|
}
|
|
54
|
-
/**
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
40
|
function allowedIfParentIsPresent(...tags) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
41
|
+
return (node) => {
|
|
42
|
+
const match = tags.some((it) => node.closest(it));
|
|
43
|
+
if (match) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const expected = naturalJoin(tags.map((it) => `<${it}>`));
|
|
47
|
+
return `requires ${expected} as parent`;
|
|
48
|
+
};
|
|
66
49
|
}
|
|
67
|
-
/**
|
|
68
|
-
* @public
|
|
69
|
-
*/
|
|
70
50
|
const metadataHelper = {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
51
|
+
allowedIfAttributeIsPresent,
|
|
52
|
+
allowedIfAttributeIsAbsent,
|
|
53
|
+
allowedIfAttributeHasValue,
|
|
54
|
+
allowedIfParentIsPresent
|
|
75
55
|
};
|
|
76
56
|
|
|
77
57
|
export { defineMetadata as d, metadataHelper as m };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-helper.js","sources":["
|
|
1
|
+
{"version":3,"file":"meta-helper.js","sources":["../../src/meta/define-metadata.ts","../../src/meta/helper.ts"],"sourcesContent":["import { type MetaDataTable } from \"./element\";\n\n/**\n * Helper function to assist IDE with completion and type-checking.\n *\n * @public\n */\nexport function defineMetadata(metatable: MetaDataTable): MetaDataTable {\n\treturn metatable;\n}\n","import { naturalJoin } from \"../utils/natural-join\";\nimport { type MetaAttributeAllowedCallback } from \"./element\";\nimport { type HtmlElementLike } from \"./html-element-like\";\n\n/**\n * Helpers when writing element metadata.\n *\n * @public\n */\nexport interface MetadataHelper {\n\t/** Returns an error if another attribute is omitted, i.e. it requires another attribute to be present to pass. */\n\tallowedIfAttributeIsPresent(this: void, ...attr: string[]): MetaAttributeAllowedCallback;\n\n\t/** Returns an error if another attribute is present, i.e. it requires another attribute to be omitted to pass. */\n\tallowedIfAttributeIsAbsent(this: void, ...attr: string[]): MetaAttributeAllowedCallback;\n\n\t/** Returns an error if another attribute does not have one of the listed values */\n\tallowedIfAttributeHasValue(\n\t\tthis: void,\n\t\tattr: string,\n\t\tvalue: string[],\n\t\toptions?: { defaultValue?: string | null },\n\t): MetaAttributeAllowedCallback;\n\n\t/**\n\t * Returns an error if the node doesn't have any of the given elements as parent\n\t *\n\t * @since 8.2.0\n\t **/\n\tallowedIfParentIsPresent(this: void, ...tags: string[]): MetaAttributeAllowedCallback;\n}\n\n/**\n * @internal\n */\nexport function allowedIfAttributeIsPresent(...attr: string[]) {\n\treturn (node: HtmlElementLike) => {\n\t\tif (attr.some((it) => node.hasAttribute(it))) {\n\t\t\treturn null;\n\t\t}\n\t\tconst expected = naturalJoin(attr.map((it) => `\"${it}\"`));\n\t\treturn `requires ${expected} attribute to be present`;\n\t};\n}\n\n/**\n * @internal\n */\nexport function allowedIfAttributeIsAbsent(...attr: string[]): MetaAttributeAllowedCallback {\n\treturn (node: HtmlElementLike) => {\n\t\tconst present = attr.filter((it) => node.hasAttribute(it));\n\t\tif (present.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst expected = naturalJoin(present.map((it) => `\"${it}\"`));\n\t\treturn `cannot be used at the same time as ${expected}`;\n\t};\n}\n\n/**\n * @internal\n */\nexport function allowedIfAttributeHasValue(\n\tkey: string,\n\texpectedValue: string[],\n\t{ defaultValue }: { defaultValue?: string | null } = {},\n): MetaAttributeAllowedCallback {\n\treturn (node: HtmlElementLike) => {\n\t\tconst attr = node.getAttribute(key);\n\t\tif (attr && typeof attr !== \"string\") {\n\t\t\treturn null;\n\t\t}\n\t\tconst actualValue = attr ? attr : defaultValue;\n\t\tif (actualValue && expectedValue.includes(actualValue.toLocaleLowerCase())) {\n\t\t\treturn null;\n\t\t}\n\t\tconst expected = naturalJoin(expectedValue.map((it) => `\"${it}\"`));\n\t\treturn `\"${key}\" attribute must be ${expected}`;\n\t};\n}\n\n/**\n * @internal\n */\nexport function allowedIfParentIsPresent(\n\tthis: void,\n\t...tags: string[]\n): MetaAttributeAllowedCallback {\n\treturn (node: HtmlElementLike) => {\n\t\tconst match = tags.some((it) => node.closest(it));\n\t\tif (match) {\n\t\t\treturn null;\n\t\t}\n\t\tconst expected = naturalJoin(tags.map((it) => `<${it}>`));\n\t\treturn `requires ${expected} as parent`;\n\t};\n}\n\n/**\n * @public\n */\nexport const metadataHelper: MetadataHelper = {\n\tallowedIfAttributeIsPresent,\n\tallowedIfAttributeIsAbsent,\n\tallowedIfAttributeHasValue,\n\tallowedIfParentIsPresent,\n};\n"],"names":[],"mappings":";;AAOO,SAAS,eAAe,SAAyC,EAAA;AACvE,EAAO,OAAA,SAAA,CAAA;AACR;;AC0BO,SAAS,+BAA+B,IAAgB,EAAA;AAC9D,EAAA,OAAO,CAAC,IAA0B,KAAA;AACjC,IAAI,IAAA,IAAA,CAAK,KAAK,CAAC,EAAA,KAAO,KAAK,YAAa,CAAA,EAAE,CAAC,CAAG,EAAA;AAC7C,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AACA,IAAM,MAAA,QAAA,GAAW,YAAY,IAAK,CAAA,GAAA,CAAI,CAAC,EAAO,KAAA,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AACxD,IAAA,OAAO,YAAY,QAAQ,CAAA,wBAAA,CAAA,CAAA;AAAA,GAC5B,CAAA;AACD,CAAA;AAKO,SAAS,8BAA8B,IAA8C,EAAA;AAC3F,EAAA,OAAO,CAAC,IAA0B,KAAA;AACjC,IAAM,MAAA,OAAA,GAAU,KAAK,MAAO,CAAA,CAAC,OAAO,IAAK,CAAA,YAAA,CAAa,EAAE,CAAC,CAAA,CAAA;AACzD,IAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACzB,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AACA,IAAM,MAAA,QAAA,GAAW,YAAY,OAAQ,CAAA,GAAA,CAAI,CAAC,EAAO,KAAA,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAC3D,IAAA,OAAO,sCAAsC,QAAQ,CAAA,CAAA,CAAA;AAAA,GACtD,CAAA;AACD,CAAA;AAKO,SAAS,2BACf,GACA,EAAA,aAAA,EACA,EAAE,YAAa,EAAA,GAAsC,EACtB,EAAA;AAC/B,EAAA,OAAO,CAAC,IAA0B,KAAA;AACjC,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,YAAA,CAAa,GAAG,CAAA,CAAA;AAClC,IAAI,IAAA,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAU,EAAA;AACrC,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AACA,IAAM,MAAA,WAAA,GAAc,OAAO,IAAO,GAAA,YAAA,CAAA;AAClC,IAAA,IAAI,eAAe,aAAc,CAAA,QAAA,CAAS,WAAY,CAAA,iBAAA,EAAmB,CAAG,EAAA;AAC3E,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AACA,IAAM,MAAA,QAAA,GAAW,YAAY,aAAc,CAAA,GAAA,CAAI,CAAC,EAAO,KAAA,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AACjE,IAAO,OAAA,CAAA,CAAA,EAAI,GAAG,CAAA,oBAAA,EAAuB,QAAQ,CAAA,CAAA,CAAA;AAAA,GAC9C,CAAA;AACD,CAAA;AAKO,SAAS,4BAEZ,IAC4B,EAAA;AAC/B,EAAA,OAAO,CAAC,IAA0B,KAAA;AACjC,IAAM,MAAA,KAAA,GAAQ,KAAK,IAAK,CAAA,CAAC,OAAO,IAAK,CAAA,OAAA,CAAQ,EAAE,CAAC,CAAA,CAAA;AAChD,IAAA,IAAI,KAAO,EAAA;AACV,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AACA,IAAM,MAAA,QAAA,GAAW,YAAY,IAAK,CAAA,GAAA,CAAI,CAAC,EAAO,KAAA,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AACxD,IAAA,OAAO,YAAY,QAAQ,CAAA,UAAA,CAAA,CAAA;AAAA,GAC5B,CAAA;AACD,CAAA;AAKO,MAAM,cAAiC,GAAA;AAAA,EAC7C,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AACD;;;;"}
|
package/dist/es/test-utils.js
CHANGED
|
@@ -1,57 +1,36 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Helper function to call a transformer function in test-cases.
|
|
5
|
-
*
|
|
6
|
-
* @public
|
|
7
|
-
* @param fn - Transformer function to call.
|
|
8
|
-
* @param filename - Filename to read data from. Must be readable.
|
|
9
|
-
* @param chain - If set this function is called when chaining transformers. Default is pass-thru.
|
|
10
|
-
*/
|
|
11
3
|
function transformFile(fn, filename, chain) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
const data = fs.readFileSync(filename, "utf-8");
|
|
5
|
+
const source = {
|
|
6
|
+
filename,
|
|
7
|
+
line: 1,
|
|
8
|
+
column: 1,
|
|
9
|
+
offset: 0,
|
|
10
|
+
data
|
|
11
|
+
};
|
|
12
|
+
return transformSource(fn, source, chain);
|
|
21
13
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Helper function to call a transformer function in test-cases.
|
|
24
|
-
*
|
|
25
|
-
* @public
|
|
26
|
-
* @param fn - Transformer function to call.
|
|
27
|
-
* @param data - String to transform.
|
|
28
|
-
* @param chain - If set this function is called when chaining transformers. Default is pass-thru.
|
|
29
|
-
*/
|
|
30
14
|
function transformString(fn, data, chain) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
15
|
+
const source = {
|
|
16
|
+
filename: "inline",
|
|
17
|
+
line: 1,
|
|
18
|
+
column: 1,
|
|
19
|
+
offset: 0,
|
|
20
|
+
data
|
|
21
|
+
};
|
|
22
|
+
return transformSource(fn, source, chain);
|
|
39
23
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Helper function to call a transformer function in test-cases.
|
|
42
|
-
*
|
|
43
|
-
* @public
|
|
44
|
-
* @param fn - Transformer function to call.
|
|
45
|
-
* @param data - Source to transform.
|
|
46
|
-
* @param chain - If set this function is called when chaining transformers. Default is pass-thru.
|
|
47
|
-
*/
|
|
48
24
|
function transformSource(fn, source, chain) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
25
|
+
const defaultChain = (source2) => [source2];
|
|
26
|
+
const context = {
|
|
27
|
+
hasChain: (
|
|
28
|
+
/* istanbul ignore next */
|
|
29
|
+
() => true
|
|
30
|
+
),
|
|
31
|
+
chain: chain ?? defaultChain
|
|
32
|
+
};
|
|
33
|
+
return Array.from(fn.call(context, source));
|
|
55
34
|
}
|
|
56
35
|
|
|
57
36
|
export { transformFile, transformSource, transformString };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.js","sources":["
|
|
1
|
+
{"version":3,"file":"test-utils.js","sources":["../../src/transform/test-utils.ts"],"sourcesContent":["import fs from \"fs\";\nimport { type Source, type TransformContext } from \"html-validate\";\n\n/**\n * @public\n */\nexport type Transformer = (this: TransformContext, source: Source) => Iterable<Source>;\n\n/**\n * Helper function to call a transformer function in test-cases.\n *\n * @public\n * @param fn - Transformer function to call.\n * @param filename - Filename to read data from. Must be readable.\n * @param chain - If set this function is called when chaining transformers. Default is pass-thru.\n */\nexport function transformFile(\n\tfn: Transformer,\n\tfilename: string,\n\tchain?: (source: Source, filename: string) => Iterable<Source>,\n): Source[] {\n\tconst data = fs.readFileSync(filename, \"utf-8\");\n\tconst source: Source = {\n\t\tfilename,\n\t\tline: 1,\n\t\tcolumn: 1,\n\t\toffset: 0,\n\t\tdata,\n\t};\n\treturn transformSource(fn, source, chain);\n}\n\n/**\n * Helper function to call a transformer function in test-cases.\n *\n * @public\n * @param fn - Transformer function to call.\n * @param data - String to transform.\n * @param chain - If set this function is called when chaining transformers. Default is pass-thru.\n */\nexport function transformString(\n\tfn: Transformer,\n\tdata: string,\n\tchain?: (source: Source, filename: string) => Iterable<Source>,\n): Source[] {\n\tconst source: Source = {\n\t\tfilename: \"inline\",\n\t\tline: 1,\n\t\tcolumn: 1,\n\t\toffset: 0,\n\t\tdata,\n\t};\n\treturn transformSource(fn, source, chain);\n}\n\n/**\n * Helper function to call a transformer function in test-cases.\n *\n * @public\n * @param fn - Transformer function to call.\n * @param data - Source to transform.\n * @param chain - If set this function is called when chaining transformers. Default is pass-thru.\n */\nexport function transformSource(\n\tfn: Transformer,\n\tsource: Source,\n\tchain?: (source: Source, filename: string) => Iterable<Source>,\n): Source[] {\n\tconst defaultChain = (source: Source): Iterable<Source> => [source];\n\tconst context: TransformContext = {\n\t\thasChain: /* istanbul ignore next */ () => true,\n\t\tchain: chain ?? defaultChain,\n\t};\n\treturn Array.from(fn.call(context, source));\n}\n"],"names":["source"],"mappings":";;AAgBgB,SAAA,aAAA,CACf,EACA,EAAA,QAAA,EACA,KACW,EAAA;AACX,EAAA,MAAM,IAAO,GAAA,EAAA,CAAG,YAAa,CAAA,QAAA,EAAU,OAAO,CAAA,CAAA;AAC9C,EAAA,MAAM,MAAiB,GAAA;AAAA,IACtB,QAAA;AAAA,IACA,IAAM,EAAA,CAAA;AAAA,IACN,MAAQ,EAAA,CAAA;AAAA,IACR,MAAQ,EAAA,CAAA;AAAA,IACR,IAAA;AAAA,GACD,CAAA;AACA,EAAO,OAAA,eAAA,CAAgB,EAAI,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AACzC,CAAA;AAUgB,SAAA,eAAA,CACf,EACA,EAAA,IAAA,EACA,KACW,EAAA;AACX,EAAA,MAAM,MAAiB,GAAA;AAAA,IACtB,QAAU,EAAA,QAAA;AAAA,IACV,IAAM,EAAA,CAAA;AAAA,IACN,MAAQ,EAAA,CAAA;AAAA,IACR,MAAQ,EAAA,CAAA;AAAA,IACR,IAAA;AAAA,GACD,CAAA;AACA,EAAO,OAAA,eAAA,CAAgB,EAAI,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AACzC,CAAA;AAUgB,SAAA,eAAA,CACf,EACA,EAAA,MAAA,EACA,KACW,EAAA;AACX,EAAA,MAAM,YAAe,GAAA,CAACA,OAAqC,KAAA,CAACA,OAAM,CAAA,CAAA;AAClE,EAAA,MAAM,OAA4B,GAAA;AAAA,IACjC,QAAA;AAAA;AAAA,MAAqC,MAAM,IAAA;AAAA,KAAA;AAAA,IAC3C,OAAO,KAAS,IAAA,YAAA;AAAA,GACjB,CAAA;AACA,EAAA,OAAO,MAAM,IAAK,CAAA,EAAA,CAAG,IAAK,CAAA,OAAA,EAAS,MAAM,CAAC,CAAA,CAAA;AAC3C;;;;"}
|
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Joins a list of words into natural language.
|
|
3
|
-
*
|
|
4
|
-
* - `["foo"]` becomes `"foo"`
|
|
5
|
-
* - `["foo", "bar"]` becomes `"foo or bar"`
|
|
6
|
-
* - `["foo", "bar", "baz"]` becomes `"foo, bar or baz"`
|
|
7
|
-
* - and so on...
|
|
8
|
-
*
|
|
9
|
-
* @internal
|
|
10
|
-
* @param values - List of words to join
|
|
11
|
-
* @param conjunction - Conjunction for the last element.
|
|
12
|
-
* @returns String with the words naturally joined with a conjunction.
|
|
13
|
-
*/
|
|
14
1
|
function naturalJoin(values, conjunction = "or") {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
switch (values.length) {
|
|
3
|
+
case 0:
|
|
4
|
+
return "";
|
|
5
|
+
case 1:
|
|
6
|
+
return values[0];
|
|
7
|
+
case 2:
|
|
8
|
+
return `${values[0]} ${conjunction} ${values[1]}`;
|
|
9
|
+
default:
|
|
10
|
+
return `${values.slice(0, -1).join(", ")} ${conjunction} ${values.slice(-1)[0]}`;
|
|
11
|
+
}
|
|
25
12
|
}
|
|
26
13
|
|
|
27
14
|
export { naturalJoin as n };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"natural-join.js","sources":["
|
|
1
|
+
{"version":3,"file":"natural-join.js","sources":["../../../src/utils/natural-join.ts"],"sourcesContent":["/**\n * Joins a list of words into natural language.\n *\n * - `[\"foo\"]` becomes `\"foo\"`\n * - `[\"foo\", \"bar\"]` becomes `\"foo or bar\"`\n * - `[\"foo\", \"bar\", \"baz\"]` becomes `\"foo, bar or baz\"`\n * - and so on...\n *\n * @internal\n * @param values - List of words to join\n * @param conjunction - Conjunction for the last element.\n * @returns String with the words naturally joined with a conjunction.\n */\nexport function naturalJoin(values: string[], conjunction: string = \"or\"): string {\n\tswitch (values.length) {\n\t\tcase 0:\n\t\t\treturn \"\";\n\t\tcase 1:\n\t\t\treturn values[0];\n\t\tcase 2:\n\t\t\treturn `${values[0]} ${conjunction} ${values[1]}`;\n\t\tdefault:\n\t\t\treturn `${values.slice(0, -1).join(\", \")} ${conjunction} ${values.slice(-1)[0]}`;\n\t}\n}\n"],"names":[],"mappings":"AAagB,SAAA,WAAA,CAAY,MAAkB,EAAA,WAAA,GAAsB,IAAc,EAAA;AACjF,EAAA,QAAQ,OAAO,MAAQ;AAAA,IACtB,KAAK,CAAA;AACJ,MAAO,OAAA,EAAA,CAAA;AAAA,IACR,KAAK,CAAA;AACJ,MAAA,OAAO,OAAO,CAAC,CAAA,CAAA;AAAA,IAChB,KAAK,CAAA;AACJ,MAAO,OAAA,CAAA,EAAG,OAAO,CAAC,CAAC,IAAI,WAAW,CAAA,CAAA,EAAI,MAAO,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA;AAAA,IAChD;AACC,MAAA,OAAO,GAAG,MAAO,CAAA,KAAA,CAAM,CAAG,EAAA,CAAA,CAAE,EAAE,IAAK,CAAA,IAAI,CAAC,CAAA,CAAA,EAAI,WAAW,CAAI,CAAA,EAAA,MAAA,CAAO,MAAM,CAAE,CAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA;AAAA,GAChF;AACD;;;;"}
|
package/dist/es/vitest.js
CHANGED
|
@@ -6,8 +6,8 @@ import 'ajv';
|
|
|
6
6
|
import './elements.js';
|
|
7
7
|
import './meta-helper.js';
|
|
8
8
|
import './utils/natural-join.js';
|
|
9
|
-
import 'fs';
|
|
10
9
|
import '@sidvind/better-ajv-errors';
|
|
10
|
+
import 'fs';
|
|
11
11
|
import '@babel/code-frame';
|
|
12
12
|
import 'kleur';
|
|
13
13
|
import '@html-validate/stylish';
|
|
@@ -18,10 +18,10 @@ import 'node:path';
|
|
|
18
18
|
import 'node:module';
|
|
19
19
|
|
|
20
20
|
expect.extend({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
toBeValid: createMatcher(),
|
|
22
|
+
toBeInvalid: createMatcher$1(),
|
|
23
|
+
toHTMLValidate: createMatcher$2(expect, void 0),
|
|
24
|
+
toHaveError: createMatcher$3(expect, void 0),
|
|
25
|
+
toHaveErrors: createMatcher$4(expect, void 0)
|
|
26
26
|
});
|
|
27
27
|
//# sourceMappingURL=vitest.js.map
|
package/dist/es/vitest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.js","sources":["
|
|
1
|
+
{"version":3,"file":"vitest.js","sources":["../../src/vitest/vitest.ts"],"sourcesContent":["import \"./augmentation\";\n\nimport { expect } from \"vitest\";\nimport {\n\ttoBeValid,\n\ttoBeInvalid,\n\ttoHTMLValidate,\n\ttoHaveError,\n\ttoHaveErrors,\n} from \"../jest/matchers\";\n\nexpect.extend({\n\ttoBeValid: toBeValid(),\n\ttoBeInvalid: toBeInvalid(),\n\ttoHTMLValidate: toHTMLValidate(expect, undefined),\n\ttoHaveError: toHaveError(expect, undefined),\n\ttoHaveErrors: toHaveErrors(expect, undefined),\n});\n"],"names":["toBeValid","toBeInvalid","toHTMLValidate","toHaveError","toHaveErrors"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAA,CAAO,MAAO,CAAA;AAAA,EACb,WAAWA,aAAU,EAAA;AAAA,EACrB,aAAaC,eAAY,EAAA;AAAA,EACzB,cAAA,EAAgBC,eAAe,CAAA,MAAA,EAAQ,KAAS,CAAA,CAAA;AAAA,EAChD,WAAA,EAAaC,eAAY,CAAA,MAAA,EAAQ,KAAS,CAAA,CAAA;AAAA,EAC1C,YAAA,EAAcC,eAAa,CAAA,MAAA,EAAQ,KAAS,CAAA,CAAA;AAC7C,CAAC,CAAA"}
|
package/dist/tsdoc-metadata.json
CHANGED
package/dist/types/browser.d.ts
CHANGED
|
@@ -187,6 +187,7 @@ export declare class Config {
|
|
|
187
187
|
* Load a default configuration object.
|
|
188
188
|
*/
|
|
189
189
|
static defaultConfig(): Config;
|
|
190
|
+
/* Excluded from this release type: create */
|
|
190
191
|
/* Excluded from this release type: __constructor */
|
|
191
192
|
/**
|
|
192
193
|
* Initialize plugins, transforms etc.
|
|
@@ -263,6 +264,16 @@ export declare interface ConfigData {
|
|
|
263
264
|
* If set to true no new configurations will be searched.
|
|
264
265
|
*/
|
|
265
266
|
root?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* List of configuration presets to extend.
|
|
269
|
+
*
|
|
270
|
+
* The following sources are allowed:
|
|
271
|
+
*
|
|
272
|
+
* - One of the [predefined presets](http://html-validate.org/rules/presets.html).
|
|
273
|
+
* - Node module exporting a preset.
|
|
274
|
+
* - Plugin exporting a named preset.
|
|
275
|
+
* - Local path to a json or js file exporting a preset.
|
|
276
|
+
*/
|
|
266
277
|
extends?: string[];
|
|
267
278
|
/**
|
|
268
279
|
* List of sources for element metadata.
|
|
@@ -375,6 +386,14 @@ export declare interface DeferredMessage extends Omit<Message, "selector"> {
|
|
|
375
386
|
selector: () => string | null;
|
|
376
387
|
}
|
|
377
388
|
|
|
389
|
+
/**
|
|
390
|
+
* Helper function to assist IDE with completion and type-checking.
|
|
391
|
+
*
|
|
392
|
+
* @public
|
|
393
|
+
* @since
|
|
394
|
+
*/
|
|
395
|
+
export declare function defineConfig(config: ConfigData): ConfigData;
|
|
396
|
+
|
|
378
397
|
/**
|
|
379
398
|
* Helper function to assist IDE with completion and type-checking.
|
|
380
399
|
*
|
|
@@ -929,13 +948,13 @@ export declare class HtmlValidate {
|
|
|
929
948
|
* @param hooks - Optional hooks (see [[Source]]) for definition.
|
|
930
949
|
* @returns Report output.
|
|
931
950
|
*/
|
|
932
|
-
validateString(str: string): Promise<
|
|
933
|
-
validateString(str: string, filename: string): Promise<
|
|
934
|
-
validateString(str: string, hooks: SourceHooks): Promise<
|
|
935
|
-
validateString(str: string, options: ConfigData): Promise<
|
|
936
|
-
validateString(str: string, filename: string, hooks: SourceHooks): Promise<
|
|
937
|
-
validateString(str: string, filename: string, options: ConfigData): Promise<
|
|
938
|
-
validateString(str: string, filename: string, options: ConfigData, hooks: SourceHooks): Promise<
|
|
951
|
+
validateString(str: string): Promise<Report_2>;
|
|
952
|
+
validateString(str: string, filename: string): Promise<Report_2>;
|
|
953
|
+
validateString(str: string, hooks: SourceHooks): Promise<Report_2>;
|
|
954
|
+
validateString(str: string, options: ConfigData): Promise<Report_2>;
|
|
955
|
+
validateString(str: string, filename: string, hooks: SourceHooks): Promise<Report_2>;
|
|
956
|
+
validateString(str: string, filename: string, options: ConfigData): Promise<Report_2>;
|
|
957
|
+
validateString(str: string, filename: string, options: ConfigData, hooks: SourceHooks): Promise<Report_2>;
|
|
939
958
|
/**
|
|
940
959
|
* Parse and validate HTML from string.
|
|
941
960
|
*
|
|
@@ -945,13 +964,13 @@ export declare class HtmlValidate {
|
|
|
945
964
|
* @param hooks - Optional hooks (see [[Source]]) for definition.
|
|
946
965
|
* @returns Report output.
|
|
947
966
|
*/
|
|
948
|
-
validateStringSync(str: string):
|
|
949
|
-
validateStringSync(str: string, filename: string):
|
|
950
|
-
validateStringSync(str: string, hooks: SourceHooks):
|
|
951
|
-
validateStringSync(str: string, options: ConfigData):
|
|
952
|
-
validateStringSync(str: string, filename: string, hooks: SourceHooks):
|
|
953
|
-
validateStringSync(str: string, filename: string, options: ConfigData):
|
|
954
|
-
validateStringSync(str: string, filename: string, options: ConfigData, hooks: SourceHooks):
|
|
967
|
+
validateStringSync(str: string): Report_2;
|
|
968
|
+
validateStringSync(str: string, filename: string): Report_2;
|
|
969
|
+
validateStringSync(str: string, hooks: SourceHooks): Report_2;
|
|
970
|
+
validateStringSync(str: string, options: ConfigData): Report_2;
|
|
971
|
+
validateStringSync(str: string, filename: string, hooks: SourceHooks): Report_2;
|
|
972
|
+
validateStringSync(str: string, filename: string, options: ConfigData): Report_2;
|
|
973
|
+
validateStringSync(str: string, filename: string, options: ConfigData, hooks: SourceHooks): Report_2;
|
|
955
974
|
/**
|
|
956
975
|
* Parse and validate HTML from [[Source]].
|
|
957
976
|
*
|
|
@@ -959,7 +978,7 @@ export declare class HtmlValidate {
|
|
|
959
978
|
* @param input - Source to parse.
|
|
960
979
|
* @returns Report output.
|
|
961
980
|
*/
|
|
962
|
-
validateSource(input: Source, configOverride?: ConfigData): Promise<
|
|
981
|
+
validateSource(input: Source, configOverride?: ConfigData): Promise<Report_2>;
|
|
963
982
|
/**
|
|
964
983
|
* Parse and validate HTML from [[Source]].
|
|
965
984
|
*
|
|
@@ -967,7 +986,7 @@ export declare class HtmlValidate {
|
|
|
967
986
|
* @param input - Source to parse.
|
|
968
987
|
* @returns Report output.
|
|
969
988
|
*/
|
|
970
|
-
validateSourceSync(input: Source, configOverride?: ConfigData):
|
|
989
|
+
validateSourceSync(input: Source, configOverride?: ConfigData): Report_2;
|
|
971
990
|
/**
|
|
972
991
|
* Parse and validate HTML from file.
|
|
973
992
|
*
|
|
@@ -975,7 +994,7 @@ export declare class HtmlValidate {
|
|
|
975
994
|
* @param filename - Filename to read and parse.
|
|
976
995
|
* @returns Report output.
|
|
977
996
|
*/
|
|
978
|
-
validateFile(filename: string): Promise<
|
|
997
|
+
validateFile(filename: string): Promise<Report_2>;
|
|
979
998
|
/**
|
|
980
999
|
* Parse and validate HTML from file.
|
|
981
1000
|
*
|
|
@@ -983,7 +1002,7 @@ export declare class HtmlValidate {
|
|
|
983
1002
|
* @param filename - Filename to read and parse.
|
|
984
1003
|
* @returns Report output.
|
|
985
1004
|
*/
|
|
986
|
-
validateFileSync(filename: string):
|
|
1005
|
+
validateFileSync(filename: string): Report_2;
|
|
987
1006
|
/**
|
|
988
1007
|
* Parse and validate HTML from multiple files. Result is merged together to a
|
|
989
1008
|
* single report.
|
|
@@ -991,7 +1010,7 @@ export declare class HtmlValidate {
|
|
|
991
1010
|
* @param filenames - Filenames to read and parse.
|
|
992
1011
|
* @returns Report output.
|
|
993
1012
|
*/
|
|
994
|
-
validateMultipleFiles(filenames: string[]): Promise<
|
|
1013
|
+
validateMultipleFiles(filenames: string[]): Promise<Report_2>;
|
|
995
1014
|
/**
|
|
996
1015
|
* Parse and validate HTML from multiple files. Result is merged together to a
|
|
997
1016
|
* single report.
|
|
@@ -999,7 +1018,7 @@ export declare class HtmlValidate {
|
|
|
999
1018
|
* @param filenames - Filenames to read and parse.
|
|
1000
1019
|
* @returns Report output.
|
|
1001
1020
|
*/
|
|
1002
|
-
validateMultipleFilesSync(filenames: string[]):
|
|
1021
|
+
validateMultipleFilesSync(filenames: string[]): Report_2;
|
|
1003
1022
|
/**
|
|
1004
1023
|
* Returns true if the given filename can be validated.
|
|
1005
1024
|
*
|
|
@@ -1797,7 +1816,7 @@ export declare type PropertyExpression = string | [string, any];
|
|
|
1797
1816
|
*
|
|
1798
1817
|
* @public
|
|
1799
1818
|
*/
|
|
1800
|
-
|
|
1819
|
+
declare interface Report_2 {
|
|
1801
1820
|
/** `true` if validation was successful */
|
|
1802
1821
|
valid: boolean;
|
|
1803
1822
|
/** Detailed results per validated source */
|
|
@@ -1807,6 +1826,7 @@ export declare interface Report {
|
|
|
1807
1826
|
/** Total warnings of errors across all sources */
|
|
1808
1827
|
warningCount: number;
|
|
1809
1828
|
}
|
|
1829
|
+
export { Report_2 as Report }
|
|
1810
1830
|
|
|
1811
1831
|
/**
|
|
1812
1832
|
* @public
|
|
@@ -1816,11 +1836,21 @@ export declare class Reporter {
|
|
|
1816
1836
|
constructor();
|
|
1817
1837
|
/**
|
|
1818
1838
|
* Merge two or more reports into a single one.
|
|
1839
|
+
*
|
|
1840
|
+
* @param reports- Reports to merge.
|
|
1841
|
+
* @returns A merged report.
|
|
1842
|
+
*/
|
|
1843
|
+
static merge(reports: Report_2[]): Report_2;
|
|
1844
|
+
/**
|
|
1845
|
+
* Merge two or more reports into a single one.
|
|
1846
|
+
*
|
|
1847
|
+
* @param reports- Reports to merge.
|
|
1848
|
+
* @returns A promise resolved with the merged report.
|
|
1819
1849
|
*/
|
|
1820
|
-
static merge(reports:
|
|
1850
|
+
static merge(reports: Promise<Report_2[]> | Array<Promise<Report_2>>): Promise<Report_2>;
|
|
1821
1851
|
add<ContextType, OptionsType>(rule: Rule<ContextType, OptionsType>, message: string, severity: number, node: DOMNode | null, location: Location_2, context: ContextType): void;
|
|
1822
1852
|
addManual(filename: string, message: DeferredMessage): void;
|
|
1823
|
-
save(sources?: Source[]):
|
|
1853
|
+
save(sources?: Source[]): Report_2;
|
|
1824
1854
|
protected isValid(): boolean;
|
|
1825
1855
|
}
|
|
1826
1856
|
|
|
@@ -1903,7 +1933,7 @@ export declare interface Resolver {
|
|
|
1903
1933
|
/**
|
|
1904
1934
|
* Resolve table of element metadata.
|
|
1905
1935
|
*/
|
|
1906
|
-
resolveElements?(id: string, options: ResolverOptions):
|
|
1936
|
+
resolveElements?(id: string, options: ResolverOptions): MetaDataTable | null;
|
|
1907
1937
|
/**
|
|
1908
1938
|
* Resolve a configuration to extend.
|
|
1909
1939
|
*/
|
|
@@ -2128,13 +2158,15 @@ export { SchemaObject }
|
|
|
2128
2158
|
* @public
|
|
2129
2159
|
*/
|
|
2130
2160
|
export declare class SchemaValidationError extends UserError {
|
|
2131
|
-
filename
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2161
|
+
/** Configuration filename the error originates from */
|
|
2162
|
+
readonly filename: string | null;
|
|
2163
|
+
/** Configuration object the error originates from */
|
|
2164
|
+
readonly obj: unknown;
|
|
2165
|
+
/** JSON schema used when validating the configuration */
|
|
2166
|
+
readonly schema: SchemaObject;
|
|
2167
|
+
/** List of schema validation errors */
|
|
2168
|
+
readonly errors: ErrorObject[];
|
|
2135
2169
|
constructor(filename: string | null, message: string, obj: unknown, schema: SchemaObject, errors: ErrorObject[]);
|
|
2136
|
-
prettyError(): string;
|
|
2137
|
-
private getRawJSON;
|
|
2138
2170
|
}
|
|
2139
2171
|
|
|
2140
2172
|
/**
|