happy-dom 13.1.2 → 13.1.3
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.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/cjs/query-selector/QuerySelector.cjs +18 -2
- package/cjs/query-selector/QuerySelector.cjs.map +1 -1
- package/cjs/query-selector/QuerySelector.d.ts +1 -1
- package/cjs/query-selector/QuerySelector.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/lib/query-selector/QuerySelector.d.ts +1 -1
- package/lib/query-selector/QuerySelector.d.ts.map +1 -1
- package/lib/query-selector/QuerySelector.js +18 -2
- package/lib/query-selector/QuerySelector.js.map +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/query-selector/QuerySelector.ts +30 -3
@@ -31,6 +31,10 @@ const NodeList_js_1 = __importDefault(require("../nodes/node/NodeList.cjs"));
|
|
31
31
|
const NodeTypeEnum_js_1 = __importDefault(require("../nodes/node/NodeTypeEnum.cjs"));
|
32
32
|
const SelectorCombinatorEnum_js_1 = __importDefault(require("./SelectorCombinatorEnum.cjs"));
|
33
33
|
const SelectorParser_js_1 = __importDefault(require("./SelectorParser.cjs"));
|
34
|
+
/**
|
35
|
+
* Invalid Selector RegExp.
|
36
|
+
*/
|
37
|
+
const INVALID_SELECTOR_REGEXP = /^[.#\[]?\d/;
|
34
38
|
/**
|
35
39
|
* Utility for query selection in an HTML element.
|
36
40
|
*
|
@@ -46,11 +50,14 @@ class QuerySelector {
|
|
46
50
|
*/
|
47
51
|
static querySelectorAll(node, selector) {
|
48
52
|
if (selector === '') {
|
49
|
-
throw new Error(
|
53
|
+
throw new Error(`Failed to execute 'querySelectorAll' on '${node.constructor.name}': The provided selector is empty.`);
|
50
54
|
}
|
51
55
|
if (selector === null || selector === undefined) {
|
52
56
|
return new NodeList_js_1.default();
|
53
57
|
}
|
58
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
59
|
+
throw new Error(`Failed to execute 'querySelectorAll' on '${node.constructor.name}': '${selector}' is not a valid selector.`);
|
60
|
+
}
|
54
61
|
const groups = SelectorParser_js_1.default.getSelectorGroups(selector);
|
55
62
|
let matches = [];
|
56
63
|
for (const items of groups) {
|
@@ -78,11 +85,14 @@ class QuerySelector {
|
|
78
85
|
*/
|
79
86
|
static querySelector(node, selector) {
|
80
87
|
if (selector === '') {
|
81
|
-
throw new Error(
|
88
|
+
throw new Error(`Failed to execute 'querySelector' on '${node.constructor.name}': The provided selector is empty.`);
|
82
89
|
}
|
83
90
|
if (selector === null || selector === undefined) {
|
84
91
|
return null;
|
85
92
|
}
|
93
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
94
|
+
throw new Error(`Failed to execute 'querySelector' on '${node.constructor.name}': '${selector}' is not a valid selector.`);
|
95
|
+
}
|
86
96
|
for (const items of SelectorParser_js_1.default.getSelectorGroups(selector)) {
|
87
97
|
const match = node[PropertySymbol.nodeType] === NodeTypeEnum_js_1.default.elementNode
|
88
98
|
? this.findFirst(node, [node], items)
|
@@ -101,11 +111,17 @@ class QuerySelector {
|
|
101
111
|
* @returns Result.
|
102
112
|
*/
|
103
113
|
static match(element, selector) {
|
114
|
+
if (!selector) {
|
115
|
+
return null;
|
116
|
+
}
|
104
117
|
if (selector === '*') {
|
105
118
|
return {
|
106
119
|
priorityWeight: 1
|
107
120
|
};
|
108
121
|
}
|
122
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
123
|
+
throw new Error(`Failed to execute 'match' on '${element.constructor.name}': '${selector}' is not a valid selector.`);
|
124
|
+
}
|
109
125
|
for (const items of SelectorParser_js_1.default.getSelectorGroups(selector)) {
|
110
126
|
const result = this.matchSelector(element, element, items.reverse());
|
111
127
|
if (result) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QuerySelector.cjs","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAAuD;AAGvD,4EAAiD;AACjD,oFAAyD;AACzD,4FAAiE;AAGjE,4EAAiD;AASjD;;;;GAIG;AACH,MAAqB,aAAa;IACjC;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAC7B,IAA8C,EAC9C,QAAgB;QAEhB,IAAI,QAAQ,KAAK,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CACd,
|
1
|
+
{"version":3,"file":"QuerySelector.cjs","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"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"}
|
@@ -24,7 +24,7 @@ export default class QuerySelector {
|
|
24
24
|
* @param selector Selector.
|
25
25
|
* @returns HTML element.
|
26
26
|
*/
|
27
|
-
static querySelector(node: IElement | IDocument | IDocumentFragment, selector: string): IElement;
|
27
|
+
static querySelector(node: IElement | IDocument | IDocumentFragment, selector: string): IElement | null;
|
28
28
|
/**
|
29
29
|
* Checks if an element matches a selector and returns priority weight.
|
30
30
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QuerySelector.d.ts","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAKnD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,iBAAiB,MAAM,iDAAiD,CAAC;AAEhF,OAAO,cAAc,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"QuerySelector.d.ts","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAKnD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,iBAAiB,MAAM,iDAAiD,CAAC;AAEhF,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAajD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC;;;;;;OAMG;WACW,gBAAgB,CAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,EAC9C,QAAQ,EAAE,MAAM,GACd,SAAS,CAAC,QAAQ,CAAC;IA2CtB;;;;;;OAMG;WACW,aAAa,CAC1B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,EAC9C,QAAQ,EAAE,MAAM,GACd,QAAQ,GAAG,IAAI;IA+BlB;;;;;;OAMG;WACW,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA4B/E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgE5B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAqEtB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;CA6DxB"}
|
package/cjs/version.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
module.exports = { default: { version: '13.1.
|
1
|
+
module.exports = { default: { version: '13.1.3' } };
|
@@ -24,7 +24,7 @@ export default class QuerySelector {
|
|
24
24
|
* @param selector Selector.
|
25
25
|
* @returns HTML element.
|
26
26
|
*/
|
27
|
-
static querySelector(node: IElement | IDocument | IDocumentFragment, selector: string): IElement;
|
27
|
+
static querySelector(node: IElement | IDocument | IDocumentFragment, selector: string): IElement | null;
|
28
28
|
/**
|
29
29
|
* Checks if an element matches a selector and returns priority weight.
|
30
30
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QuerySelector.d.ts","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAKnD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,iBAAiB,MAAM,iDAAiD,CAAC;AAEhF,OAAO,cAAc,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"QuerySelector.d.ts","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAKnD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,iBAAiB,MAAM,iDAAiD,CAAC;AAEhF,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAajD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC;;;;;;OAMG;WACW,gBAAgB,CAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,EAC9C,QAAQ,EAAE,MAAM,GACd,SAAS,CAAC,QAAQ,CAAC;IA2CtB;;;;;;OAMG;WACW,aAAa,CAC1B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,EAC9C,QAAQ,EAAE,MAAM,GACd,QAAQ,GAAG,IAAI;IA+BlB;;;;;;OAMG;WACW,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA4B/E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgE5B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAqEtB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;CA6DxB"}
|
@@ -3,6 +3,10 @@ import NodeList from '../nodes/node/NodeList.js';
|
|
3
3
|
import NodeTypeEnum from '../nodes/node/NodeTypeEnum.js';
|
4
4
|
import SelectorCombinatorEnum from './SelectorCombinatorEnum.js';
|
5
5
|
import SelectorParser from './SelectorParser.js';
|
6
|
+
/**
|
7
|
+
* Invalid Selector RegExp.
|
8
|
+
*/
|
9
|
+
const INVALID_SELECTOR_REGEXP = /^[.#\[]?\d/;
|
6
10
|
/**
|
7
11
|
* Utility for query selection in an HTML element.
|
8
12
|
*
|
@@ -18,11 +22,14 @@ export default class QuerySelector {
|
|
18
22
|
*/
|
19
23
|
static querySelectorAll(node, selector) {
|
20
24
|
if (selector === '') {
|
21
|
-
throw new Error(
|
25
|
+
throw new Error(`Failed to execute 'querySelectorAll' on '${node.constructor.name}': The provided selector is empty.`);
|
22
26
|
}
|
23
27
|
if (selector === null || selector === undefined) {
|
24
28
|
return new NodeList();
|
25
29
|
}
|
30
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
31
|
+
throw new Error(`Failed to execute 'querySelectorAll' on '${node.constructor.name}': '${selector}' is not a valid selector.`);
|
32
|
+
}
|
26
33
|
const groups = SelectorParser.getSelectorGroups(selector);
|
27
34
|
let matches = [];
|
28
35
|
for (const items of groups) {
|
@@ -50,11 +57,14 @@ export default class QuerySelector {
|
|
50
57
|
*/
|
51
58
|
static querySelector(node, selector) {
|
52
59
|
if (selector === '') {
|
53
|
-
throw new Error(
|
60
|
+
throw new Error(`Failed to execute 'querySelector' on '${node.constructor.name}': The provided selector is empty.`);
|
54
61
|
}
|
55
62
|
if (selector === null || selector === undefined) {
|
56
63
|
return null;
|
57
64
|
}
|
65
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
66
|
+
throw new Error(`Failed to execute 'querySelector' on '${node.constructor.name}': '${selector}' is not a valid selector.`);
|
67
|
+
}
|
58
68
|
for (const items of SelectorParser.getSelectorGroups(selector)) {
|
59
69
|
const match = node[PropertySymbol.nodeType] === NodeTypeEnum.elementNode
|
60
70
|
? this.findFirst(node, [node], items)
|
@@ -73,11 +83,17 @@ export default class QuerySelector {
|
|
73
83
|
* @returns Result.
|
74
84
|
*/
|
75
85
|
static match(element, selector) {
|
86
|
+
if (!selector) {
|
87
|
+
return null;
|
88
|
+
}
|
76
89
|
if (selector === '*') {
|
77
90
|
return {
|
78
91
|
priorityWeight: 1
|
79
92
|
};
|
80
93
|
}
|
94
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
95
|
+
throw new Error(`Failed to execute 'match' on '${element.constructor.name}': '${selector}' is not a valid selector.`);
|
96
|
+
}
|
81
97
|
for (const items of SelectorParser.getSelectorGroups(selector)) {
|
82
98
|
const result = this.matchSelector(element, element, items.reverse());
|
83
99
|
if (result) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QuerySelector.js","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAGjE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AASjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC;;;;;;OAMG;IACI,MAAM,CAAC,gBAAgB,CAC7B,IAA8C,EAC9C,QAAgB;QAEhB,IAAI,QAAQ,KAAK,EAAE,EAAE;YACpB,MAAM,IAAI,KAAK,CACd,
|
1
|
+
{"version":3,"file":"QuerySelector.js","sourceRoot":"","sources":["../../src/query-selector/QuerySelector.ts"],"names":[],"mappings":"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"}
|
package/lib/version.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export default { version: '13.1.
|
1
|
+
export default { version: '13.1.3' };
|
package/package.json
CHANGED
@@ -16,6 +16,11 @@ type IDocumentPositionAndElement = {
|
|
16
16
|
element: IElement;
|
17
17
|
};
|
18
18
|
|
19
|
+
/**
|
20
|
+
* Invalid Selector RegExp.
|
21
|
+
*/
|
22
|
+
const INVALID_SELECTOR_REGEXP = /^[.#\[]?\d/;
|
23
|
+
|
19
24
|
/**
|
20
25
|
* Utility for query selection in an HTML element.
|
21
26
|
*
|
@@ -35,7 +40,7 @@ export default class QuerySelector {
|
|
35
40
|
): INodeList<IElement> {
|
36
41
|
if (selector === '') {
|
37
42
|
throw new Error(
|
38
|
-
|
43
|
+
`Failed to execute 'querySelectorAll' on '${node.constructor.name}': The provided selector is empty.`
|
39
44
|
);
|
40
45
|
}
|
41
46
|
|
@@ -43,6 +48,12 @@ export default class QuerySelector {
|
|
43
48
|
return new NodeList<IElement>();
|
44
49
|
}
|
45
50
|
|
51
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
52
|
+
throw new Error(
|
53
|
+
`Failed to execute 'querySelectorAll' on '${node.constructor.name}': '${selector}' is not a valid selector.`
|
54
|
+
);
|
55
|
+
}
|
56
|
+
|
46
57
|
const groups = SelectorParser.getSelectorGroups(selector);
|
47
58
|
let matches: IDocumentPositionAndElement[] = [];
|
48
59
|
|
@@ -79,10 +90,10 @@ export default class QuerySelector {
|
|
79
90
|
public static querySelector(
|
80
91
|
node: IElement | IDocument | IDocumentFragment,
|
81
92
|
selector: string
|
82
|
-
): IElement {
|
93
|
+
): IElement | null {
|
83
94
|
if (selector === '') {
|
84
95
|
throw new Error(
|
85
|
-
|
96
|
+
`Failed to execute 'querySelector' on '${node.constructor.name}': The provided selector is empty.`
|
86
97
|
);
|
87
98
|
}
|
88
99
|
|
@@ -90,6 +101,12 @@ export default class QuerySelector {
|
|
90
101
|
return null;
|
91
102
|
}
|
92
103
|
|
104
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
105
|
+
throw new Error(
|
106
|
+
`Failed to execute 'querySelector' on '${node.constructor.name}': '${selector}' is not a valid selector.`
|
107
|
+
);
|
108
|
+
}
|
109
|
+
|
93
110
|
for (const items of SelectorParser.getSelectorGroups(selector)) {
|
94
111
|
const match =
|
95
112
|
node[PropertySymbol.nodeType] === NodeTypeEnum.elementNode
|
@@ -112,12 +129,22 @@ export default class QuerySelector {
|
|
112
129
|
* @returns Result.
|
113
130
|
*/
|
114
131
|
public static match(element: IElement, selector: string): ISelectorMatch | null {
|
132
|
+
if (!selector) {
|
133
|
+
return null;
|
134
|
+
}
|
135
|
+
|
115
136
|
if (selector === '*') {
|
116
137
|
return {
|
117
138
|
priorityWeight: 1
|
118
139
|
};
|
119
140
|
}
|
120
141
|
|
142
|
+
if (INVALID_SELECTOR_REGEXP.test(selector)) {
|
143
|
+
throw new Error(
|
144
|
+
`Failed to execute 'match' on '${element.constructor.name}': '${selector}' is not a valid selector.`
|
145
|
+
);
|
146
|
+
}
|
147
|
+
|
121
148
|
for (const items of SelectorParser.getSelectorGroups(selector)) {
|
122
149
|
const result = this.matchSelector(element, element, items.reverse());
|
123
150
|
|