html-validate 8.7.4 → 8.9.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 +483 -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 +9735 -10454
- package/dist/cjs/core.js.map +1 -1
- package/dist/cjs/elements.js +2311 -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 +482 -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 +9730 -10455
- package/dist/es/core.js.map +1 -1
- package/dist/es/elements.js +2311 -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/schema/elements.json +6 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/browser.d.ts +78 -32
- package/dist/types/index.d.ts +105 -34
- package/package.json +15 -15
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"}
|
|
@@ -102,6 +102,12 @@
|
|
|
102
102
|
"type": "boolean"
|
|
103
103
|
},
|
|
104
104
|
|
|
105
|
+
"focusable": {
|
|
106
|
+
"title": "Mark this element as focusable",
|
|
107
|
+
"description": "This element may contain an associated label element.",
|
|
108
|
+
"anyOf": [{ "type": "boolean" }, { "function": true }]
|
|
109
|
+
},
|
|
110
|
+
|
|
105
111
|
"form": {
|
|
106
112
|
"title": "Mark element as a submittable form element",
|
|
107
113
|
"type": "boolean"
|