@najemi-software/vitest-dom 0.33.1 → 0.34.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/esm/css-parse/at-rule-nodes.d.ts +54 -0
  3. package/esm/css-parse/at-rule-nodes.js +2 -0
  4. package/esm/css-parse/at-rule-nodes.js.map +1 -0
  5. package/esm/css-parse/comments.d.ts +10 -0
  6. package/esm/css-parse/comments.js +35 -0
  7. package/esm/css-parse/comments.js.map +1 -0
  8. package/esm/css-parse/css-parse.d.ts +3 -0
  9. package/esm/css-parse/css-parse.js +22 -0
  10. package/esm/css-parse/css-parse.js.map +1 -0
  11. package/esm/css-parse/declaration-block-at-rules.d.ts +10 -0
  12. package/esm/css-parse/declaration-block-at-rules.js +55 -0
  13. package/esm/css-parse/declaration-block-at-rules.js.map +1 -0
  14. package/esm/css-parse/declarations.d.ts +10 -0
  15. package/esm/css-parse/declarations.js +48 -0
  16. package/esm/css-parse/declarations.js.map +1 -0
  17. package/esm/css-parse/keyframes.d.ts +10 -0
  18. package/esm/css-parse/keyframes.js +53 -0
  19. package/esm/css-parse/keyframes.js.map +1 -0
  20. package/esm/css-parse/nested-rule-at-rules.d.ts +19 -0
  21. package/esm/css-parse/nested-rule-at-rules.js +85 -0
  22. package/esm/css-parse/nested-rule-at-rules.js.map +1 -0
  23. package/esm/css-parse/nodes.d.ts +34 -0
  24. package/esm/css-parse/nodes.js +2 -0
  25. package/esm/css-parse/nodes.js.map +1 -0
  26. package/esm/css-parse/options.d.ts +6 -0
  27. package/esm/css-parse/options.js +2 -0
  28. package/esm/css-parse/options.js.map +1 -0
  29. package/esm/css-parse/parent-references.d.ts +4 -0
  30. package/esm/css-parse/parent-references.js +29 -0
  31. package/esm/css-parse/parent-references.js.map +1 -0
  32. package/esm/css-parse/parse-error.d.ts +7 -0
  33. package/esm/css-parse/parse-error.js +2 -0
  34. package/esm/css-parse/parse-error.js.map +1 -0
  35. package/esm/css-parse/parser-context.d.ts +50 -0
  36. package/esm/css-parse/parser-context.js +88 -0
  37. package/esm/css-parse/parser-context.js.map +1 -0
  38. package/esm/css-parse/position.d.ts +24 -0
  39. package/esm/css-parse/position.js +18 -0
  40. package/esm/css-parse/position.js.map +1 -0
  41. package/esm/css-parse/rules.d.ts +6 -0
  42. package/esm/css-parse/rules.js +56 -0
  43. package/esm/css-parse/rules.js.map +1 -0
  44. package/esm/css-parse/selectors.d.ts +5 -0
  45. package/esm/css-parse/selectors.js +21 -0
  46. package/esm/css-parse/selectors.js.map +1 -0
  47. package/esm/css-parse/statement-at-rules.d.ts +18 -0
  48. package/esm/css-parse/statement-at-rules.js +44 -0
  49. package/esm/css-parse/statement-at-rules.js.map +1 -0
  50. package/esm/css-parse/trim.d.ts +4 -0
  51. package/esm/css-parse/trim.js +7 -0
  52. package/esm/css-parse/trim.js.map +1 -0
  53. package/esm/matchers/utils.js +1 -1
  54. package/esm/matchers/utils.js.map +1 -1
  55. package/package.json +1 -1
  56. package/esm/matchers/css-parse.d.ts +0 -112
  57. package/esm/matchers/css-parse.js +0 -508
  58. package/esm/matchers/css-parse.js.map +0 -1
@@ -1,508 +0,0 @@
1
- // http://www.w3.org/TR/CSS21/grammar.html
2
- // https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
3
- const commentre = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
4
- export function cssParse(css, options) {
5
- const opts = options || {};
6
- /**
7
- * Positional.
8
- */
9
- let lineno = 1;
10
- let column = 1;
11
- /**
12
- * Update lineno and column based on `str`.
13
- */
14
- function updatePosition(str) {
15
- const lines = str.match(/\n/g);
16
- if (lines)
17
- lineno += lines.length;
18
- const i = str.lastIndexOf("\n");
19
- column = ~i ? str.length - i : column + str.length;
20
- }
21
- /**
22
- * Mark position and patch `node.position`.
23
- */
24
- function position() {
25
- const start = { line: lineno, column: column };
26
- return function (node) {
27
- node.position = new Position(start);
28
- whitespace();
29
- return node;
30
- };
31
- }
32
- /**
33
- * Store position information for a node
34
- */
35
- class Position {
36
- constructor(start) {
37
- this.start = start;
38
- this.end = { line: lineno, column: column };
39
- this.source = opts.source;
40
- }
41
- }
42
- /**
43
- * Non-enumerable source string
44
- */
45
- Position.prototype.content = css;
46
- /**
47
- * Error `msg`.
48
- */
49
- const errorsList = [];
50
- function error(msg) {
51
- const err = Object.assign(new Error(opts.source + ":" + lineno + ":" + column + ": " + msg), {
52
- reason: msg,
53
- filename: opts.source,
54
- line: lineno,
55
- column: column,
56
- source: css,
57
- });
58
- if (opts.silent) {
59
- errorsList.push(err);
60
- }
61
- else {
62
- throw err;
63
- }
64
- }
65
- /**
66
- * Parse stylesheet.
67
- */
68
- function stylesheet() {
69
- const rulesList = rules();
70
- return {
71
- type: "stylesheet",
72
- stylesheet: {
73
- source: opts.source,
74
- rules: rulesList,
75
- parsingErrors: errorsList,
76
- },
77
- };
78
- }
79
- /**
80
- * Opening brace.
81
- */
82
- function open() {
83
- return match(/^{\s*/);
84
- }
85
- /**
86
- * Closing brace.
87
- */
88
- function close() {
89
- return match(/^}/);
90
- }
91
- /**
92
- * Parse ruleset.
93
- */
94
- function rules() {
95
- let node;
96
- const rules = [];
97
- whitespace();
98
- comments(rules);
99
- while (css.length && css.charAt(0) != "}" && (node = atrule() || rule())) {
100
- rules.push(node);
101
- comments(rules);
102
- }
103
- return rules;
104
- }
105
- /**
106
- * Match `re` and return captures.
107
- */
108
- function match(re) {
109
- const m = re.exec(css);
110
- if (!m)
111
- return;
112
- const str = m[0];
113
- updatePosition(str);
114
- css = css.slice(str.length);
115
- return m;
116
- }
117
- /**
118
- * Parse whitespace.
119
- */
120
- function whitespace() {
121
- match(/^\s*/);
122
- }
123
- /**
124
- * Parse comments;
125
- */
126
- function comments(rules = []) {
127
- let c;
128
- while ((c = comment())) {
129
- rules.push(c);
130
- }
131
- return rules;
132
- }
133
- /**
134
- * Parse comment.
135
- */
136
- function comment() {
137
- const pos = position();
138
- if ("/" != css.charAt(0) || "*" != css.charAt(1))
139
- return;
140
- let i = 2;
141
- while ("" != css.charAt(i) && ("*" != css.charAt(i) || "/" != css.charAt(i + 1)))
142
- ++i;
143
- i += 2;
144
- if ("" === css.charAt(i - 1)) {
145
- return error("End of comment missing");
146
- }
147
- const str = css.slice(2, i - 2);
148
- column += 2;
149
- updatePosition(str);
150
- css = css.slice(i);
151
- column += 2;
152
- return pos({
153
- type: "comment",
154
- comment: str,
155
- });
156
- }
157
- /**
158
- * Parse selector.
159
- */
160
- function selector() {
161
- const m = match(/^([^{]+)/);
162
- if (!m)
163
- return;
164
- /* @fix Remove all comments from selectors
165
- * http://ostermiller.org/findcomment.html */
166
- return trim(m[0])
167
- .replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, "")
168
- .replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, function (m) {
169
- return m.replace(/,/g, "\u200C");
170
- })
171
- .split(/\s*(?![^(]*\)),\s*/)
172
- .map(function (s) {
173
- return s.replace(/\u200C/g, ",");
174
- });
175
- }
176
- /**
177
- * Parse declaration.
178
- */
179
- function declaration() {
180
- const pos = position();
181
- // prop
182
- const propMatch = match(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);
183
- if (!propMatch)
184
- return;
185
- const prop = trim(propMatch[0]);
186
- // :
187
- if (!match(/^:\s*/))
188
- return error("property missing ':'");
189
- // val
190
- const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/);
191
- const ret = pos({
192
- type: "declaration",
193
- property: prop.replace(commentre, ""),
194
- value: val ? trim(val[0]).replace(commentre, "") : "",
195
- });
196
- // ;
197
- match(/^[;\s]*/);
198
- return ret;
199
- }
200
- /**
201
- * Parse declarations.
202
- */
203
- function declarations() {
204
- const decls = [];
205
- if (!open())
206
- return error("missing '{'");
207
- comments(decls);
208
- // declarations
209
- let decl;
210
- while ((decl = declaration())) {
211
- decls.push(decl);
212
- comments(decls);
213
- }
214
- if (!close())
215
- return error("missing '}'");
216
- return decls;
217
- }
218
- /**
219
- * Parse keyframe.
220
- */
221
- function keyframe() {
222
- let m;
223
- const vals = [];
224
- const pos = position();
225
- while ((m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/))) {
226
- vals.push(m[1]);
227
- match(/^,\s*/);
228
- }
229
- if (!vals.length)
230
- return;
231
- return pos({
232
- type: "keyframe",
233
- values: vals,
234
- declarations: declarations(),
235
- });
236
- }
237
- /**
238
- * Parse keyframes.
239
- */
240
- function atkeyframes() {
241
- const pos = position();
242
- let m = match(/^@([-\w]+)?keyframes\s*/);
243
- if (!m)
244
- return;
245
- const vendor = m[1];
246
- // identifier
247
- m = match(/^([-\w]+)\s*/);
248
- if (!m)
249
- return error("@keyframes missing name");
250
- const name = m[1];
251
- if (!open())
252
- return error("@keyframes missing '{'");
253
- let frame;
254
- let frames = comments();
255
- while ((frame = keyframe())) {
256
- frames.push(frame);
257
- frames = frames.concat(comments());
258
- }
259
- if (!close())
260
- return error("@keyframes missing '}'");
261
- return pos({
262
- type: "keyframes",
263
- name: name,
264
- vendor: vendor,
265
- keyframes: frames,
266
- });
267
- }
268
- /**
269
- * Parse supports.
270
- */
271
- function atsupports() {
272
- const pos = position();
273
- const m = match(/^@supports *([^{]+)/);
274
- if (!m)
275
- return;
276
- const supports = trim(m[1]);
277
- if (!open())
278
- return error("@supports missing '{'");
279
- const style = comments().concat(rules());
280
- if (!close())
281
- return error("@supports missing '}'");
282
- return pos({
283
- type: "supports",
284
- supports: supports,
285
- rules: style,
286
- });
287
- }
288
- /**
289
- * Parse host.
290
- */
291
- function athost() {
292
- const pos = position();
293
- const m = match(/^@host\s*/);
294
- if (!m)
295
- return;
296
- if (!open())
297
- return error("@host missing '{'");
298
- const style = comments().concat(rules());
299
- if (!close())
300
- return error("@host missing '}'");
301
- return pos({
302
- type: "host",
303
- rules: style,
304
- });
305
- }
306
- /**
307
- * Parse media.
308
- */
309
- function atmedia() {
310
- const pos = position();
311
- const m = match(/^@media *([^{]+)/);
312
- if (!m)
313
- return;
314
- const media = trim(m[1]);
315
- if (!open())
316
- return error("@media missing '{'");
317
- const style = comments().concat(rules());
318
- if (!close())
319
- return error("@media missing '}'");
320
- return pos({
321
- type: "media",
322
- media: media,
323
- rules: style,
324
- });
325
- }
326
- /**
327
- * Parse custom-media.
328
- */
329
- function atcustommedia() {
330
- const pos = position();
331
- const m = match(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);
332
- if (!m)
333
- return;
334
- return pos({
335
- type: "custom-media",
336
- name: trim(m[1]),
337
- media: trim(m[2]),
338
- });
339
- }
340
- /**
341
- * Parse paged media.
342
- */
343
- function atpage() {
344
- const pos = position();
345
- const m = match(/^@page */);
346
- if (!m)
347
- return;
348
- const sel = selector() || [];
349
- if (!open())
350
- return error("@page missing '{'");
351
- let decls = comments();
352
- // declarations
353
- let decl;
354
- while ((decl = declaration())) {
355
- decls.push(decl);
356
- decls = decls.concat(comments());
357
- }
358
- if (!close())
359
- return error("@page missing '}'");
360
- return pos({
361
- type: "page",
362
- selectors: sel,
363
- declarations: decls,
364
- });
365
- }
366
- /**
367
- * Parse document.
368
- */
369
- function atdocument() {
370
- const pos = position();
371
- const m = match(/^@([-\w]+)?document *([^{]+)/);
372
- if (!m)
373
- return;
374
- const vendor = trim(m[1]);
375
- const doc = trim(m[2]);
376
- if (!open())
377
- return error("@document missing '{'");
378
- const style = comments().concat(rules());
379
- if (!close())
380
- return error("@document missing '}'");
381
- return pos({
382
- type: "document",
383
- document: doc,
384
- vendor: vendor,
385
- rules: style,
386
- });
387
- }
388
- /**
389
- * Parse font-face.
390
- */
391
- function atfontface() {
392
- const pos = position();
393
- const m = match(/^@font-face\s*/);
394
- if (!m)
395
- return;
396
- if (!open())
397
- return error("@font-face missing '{'");
398
- let decls = comments();
399
- // declarations
400
- let decl;
401
- while ((decl = declaration())) {
402
- decls.push(decl);
403
- decls = decls.concat(comments());
404
- }
405
- if (!close())
406
- return error("@font-face missing '}'");
407
- return pos({
408
- type: "font-face",
409
- declarations: decls,
410
- });
411
- }
412
- /**
413
- * Parse import
414
- */
415
- const atimport = _compileAtrule("import");
416
- /**
417
- * Parse charset
418
- */
419
- const atcharset = _compileAtrule("charset");
420
- /**
421
- * Parse namespace
422
- */
423
- const atnamespace = _compileAtrule("namespace");
424
- /**
425
- * Parse non-block at-rules
426
- */
427
- function _compileAtrule(name) {
428
- const re = new RegExp("^@" + name + "\\s*([^;]+);");
429
- return function () {
430
- const pos = position();
431
- const m = match(re);
432
- if (!m)
433
- return;
434
- const ret = { type: name };
435
- ret[name] = m[1].trim();
436
- return pos(ret);
437
- };
438
- }
439
- /**
440
- * Parse at rule.
441
- */
442
- function atrule() {
443
- if (css[0] != "@")
444
- return;
445
- return (atkeyframes() ||
446
- atmedia() ||
447
- atcustommedia() ||
448
- atsupports() ||
449
- atimport() ||
450
- atcharset() ||
451
- atnamespace() ||
452
- atdocument() ||
453
- atpage() ||
454
- athost() ||
455
- atfontface());
456
- }
457
- /**
458
- * Parse rule.
459
- */
460
- function rule() {
461
- const pos = position();
462
- const sel = selector();
463
- if (!sel)
464
- return error("selector missing");
465
- comments();
466
- return pos({
467
- type: "rule",
468
- selectors: sel,
469
- declarations: declarations(),
470
- });
471
- }
472
- return addParent(stylesheet());
473
- }
474
- /**
475
- * Trim `str`.
476
- */
477
- function trim(str) {
478
- return str ? str.replace(/^\s+|\s+$/g, "") : "";
479
- }
480
- /**
481
- * Adds non-enumerable parent node reference to each node.
482
- */
483
- function addParent(obj, parent) {
484
- const record = obj;
485
- const isNode = obj && typeof record.type === "string";
486
- const childParent = isNode ? record : parent;
487
- for (const k in record) {
488
- const value = record[k];
489
- if (Array.isArray(value)) {
490
- value.forEach(function (v) {
491
- addParent(v, childParent);
492
- });
493
- }
494
- else if (value && typeof value === "object") {
495
- addParent(value, childParent);
496
- }
497
- }
498
- if (isNode) {
499
- Object.defineProperty(obj, "parent", {
500
- configurable: true,
501
- writable: true,
502
- enumerable: false,
503
- value: parent || null,
504
- });
505
- }
506
- return obj;
507
- }
508
- //# sourceMappingURL=css-parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"css-parse.js","sourceRoot":"","sources":["../../src/matchers/css-parse.ts"],"names":[],"mappings":"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"}