@tbela99/css-parser 1.0.0 → 1.1.1-alpha4

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 (87) hide show
  1. package/CHANGELOG.md +269 -0
  2. package/README.md +16 -11
  3. package/dist/index-umd-web.js +3805 -1894
  4. package/dist/index.cjs +3806 -1895
  5. package/dist/index.d.ts +184 -57
  6. package/dist/lib/ast/expand.js +2 -1
  7. package/dist/lib/ast/features/calc.js +12 -1
  8. package/dist/lib/ast/features/inlinecssvariables.js +47 -24
  9. package/dist/lib/ast/features/prefix.js +117 -86
  10. package/dist/lib/ast/features/shorthand.js +29 -6
  11. package/dist/lib/ast/features/transform.js +10 -3
  12. package/dist/lib/ast/features/type.js +7 -0
  13. package/dist/lib/ast/math/expression.js +7 -1
  14. package/dist/lib/ast/math/math.js +6 -0
  15. package/dist/lib/ast/minify.js +165 -77
  16. package/dist/lib/ast/transform/compute.js +1 -0
  17. package/dist/lib/ast/transform/matrix.js +1 -0
  18. package/dist/lib/ast/types.js +26 -15
  19. package/dist/lib/ast/utils/utils.js +104 -0
  20. package/dist/lib/ast/walk.js +33 -7
  21. package/dist/lib/fs/resolve.js +10 -0
  22. package/dist/lib/parser/declaration/list.js +48 -45
  23. package/dist/lib/parser/declaration/map.js +1 -0
  24. package/dist/lib/parser/declaration/set.js +2 -1
  25. package/dist/lib/parser/parse.js +350 -279
  26. package/dist/lib/parser/tokenize.js +147 -72
  27. package/dist/lib/parser/utils/declaration.js +4 -3
  28. package/dist/lib/parser/utils/type.js +2 -1
  29. package/dist/lib/renderer/color/a98rgb.js +2 -1
  30. package/dist/lib/renderer/color/color-mix.js +10 -7
  31. package/dist/lib/renderer/color/color.js +171 -153
  32. package/dist/lib/renderer/color/hex.js +2 -1
  33. package/dist/lib/renderer/color/hsl.js +2 -1
  34. package/dist/lib/renderer/color/hwb.js +2 -1
  35. package/dist/lib/renderer/color/lab.js +2 -1
  36. package/dist/lib/renderer/color/lch.js +2 -1
  37. package/dist/lib/renderer/color/oklab.js +2 -1
  38. package/dist/lib/renderer/color/oklch.js +2 -1
  39. package/dist/lib/renderer/color/p3.js +2 -1
  40. package/dist/lib/renderer/color/rec2020.js +2 -1
  41. package/dist/lib/renderer/color/relativecolor.js +17 -11
  42. package/dist/lib/renderer/color/rgb.js +4 -3
  43. package/dist/lib/renderer/color/srgb.js +18 -17
  44. package/dist/lib/renderer/color/utils/components.js +6 -5
  45. package/dist/lib/renderer/color/utils/constants.js +47 -3
  46. package/dist/lib/renderer/color/xyz.js +2 -1
  47. package/dist/lib/renderer/color/xyzd50.js +2 -1
  48. package/dist/lib/renderer/render.js +48 -20
  49. package/dist/lib/syntax/syntax.js +257 -140
  50. package/dist/lib/validation/at-rules/container.js +75 -97
  51. package/dist/lib/validation/at-rules/counter-style.js +9 -8
  52. package/dist/lib/validation/at-rules/custom-media.js +13 -15
  53. package/dist/lib/validation/at-rules/document.js +22 -27
  54. package/dist/lib/validation/at-rules/font-feature-values.js +8 -8
  55. package/dist/lib/validation/at-rules/import.js +30 -81
  56. package/dist/lib/validation/at-rules/keyframes.js +18 -22
  57. package/dist/lib/validation/at-rules/layer.js +5 -5
  58. package/dist/lib/validation/at-rules/media.js +42 -52
  59. package/dist/lib/validation/at-rules/namespace.js +19 -23
  60. package/dist/lib/validation/at-rules/page-margin-box.js +15 -18
  61. package/dist/lib/validation/at-rules/page.js +8 -7
  62. package/dist/lib/validation/at-rules/supports.js +73 -82
  63. package/dist/lib/validation/at-rules/when.js +32 -36
  64. package/dist/lib/validation/atrule.js +15 -14
  65. package/dist/lib/validation/config.js +24 -1
  66. package/dist/lib/validation/config.json.js +611 -111
  67. package/dist/lib/validation/parser/parse.js +206 -212
  68. package/dist/lib/validation/parser/types.js +1 -1
  69. package/dist/lib/validation/selector.js +3 -3
  70. package/dist/lib/validation/syntax.js +984 -0
  71. package/dist/lib/validation/syntaxes/complex-selector-list.js +10 -11
  72. package/dist/lib/validation/syntaxes/complex-selector.js +10 -11
  73. package/dist/lib/validation/syntaxes/compound-selector.js +40 -50
  74. package/dist/lib/validation/syntaxes/family-name.js +9 -8
  75. package/dist/lib/validation/syntaxes/keyframe-block-list.js +4 -3
  76. package/dist/lib/validation/syntaxes/keyframe-selector.js +15 -18
  77. package/dist/lib/validation/syntaxes/layer-name.js +6 -5
  78. package/dist/lib/validation/syntaxes/relative-selector-list.js +7 -6
  79. package/dist/lib/validation/syntaxes/relative-selector.js +2 -1
  80. package/dist/lib/validation/syntaxes/url.js +18 -22
  81. package/dist/lib/validation/utils/list.js +2 -1
  82. package/dist/lib/validation/utils/whitespace.js +2 -1
  83. package/dist/node/index.js +4 -2
  84. package/dist/node/load.js +5 -0
  85. package/dist/web/index.js +4 -2
  86. package/dist/web/load.js +5 -0
  87. package/package.json +14 -13
@@ -2,9 +2,10 @@ import { EnumToken } from '../../ast/types.js';
2
2
  import '../../ast/minify.js';
3
3
  import '../../ast/walk.js';
4
4
  import '../../parser/parse.js';
5
+ import '../../parser/tokenize.js';
6
+ import '../../parser/utils/config.js';
5
7
  import '../../renderer/color/utils/constants.js';
6
8
  import '../../renderer/sourcemap/lib/encode.js';
7
- import '../../parser/utils/config.js';
8
9
 
9
10
  function stripCommaToken(tokenList) {
10
11
  let result = [];
@@ -2,9 +2,10 @@ import { EnumToken } from '../../ast/types.js';
2
2
  import '../../ast/minify.js';
3
3
  import '../../ast/walk.js';
4
4
  import '../../parser/parse.js';
5
+ import '../../parser/tokenize.js';
6
+ import '../../parser/utils/config.js';
5
7
  import '../../renderer/color/utils/constants.js';
6
8
  import '../../renderer/sourcemap/lib/encode.js';
7
- import '../../parser/utils/config.js';
8
9
 
9
10
  function consumeWhitespace(tokens) {
10
11
  if (tokens.length == 0) {
@@ -1,18 +1,20 @@
1
1
  import process from 'node:process';
2
- export { EnumToken } from '../lib/ast/types.js';
2
+ export { EnumToken, ValidationLevel } from '../lib/ast/types.js';
3
3
  export { minify } from '../lib/ast/minify.js';
4
4
  export { walk, walkValues } from '../lib/ast/walk.js';
5
5
  export { expand } from '../lib/ast/expand.js';
6
6
  import { doRender } from '../lib/renderer/render.js';
7
7
  export { renderToken } from '../lib/renderer/render.js';
8
+ import '../lib/renderer/color/utils/constants.js';
8
9
  import { doParse } from '../lib/parser/parse.js';
9
10
  export { parseString, parseTokens } from '../lib/parser/parse.js';
10
- import '../lib/renderer/color/utils/constants.js';
11
+ import '../lib/parser/tokenize.js';
11
12
  import '../lib/parser/utils/config.js';
12
13
  import '../lib/validation/config.js';
13
14
  import '../lib/validation/parser/types.js';
14
15
  import '../lib/validation/parser/parse.js';
15
16
  import '../lib/validation/syntaxes/complex-selector.js';
17
+ import '../lib/validation/syntax.js';
16
18
  import { dirname, resolve } from '../lib/fs/resolve.js';
17
19
  import { load } from './load.js';
18
20
 
package/dist/node/load.js CHANGED
@@ -7,6 +7,11 @@ function parseResponse(response) {
7
7
  }
8
8
  return response.text();
9
9
  }
10
+ /**
11
+ * load file
12
+ * @param url
13
+ * @param currentFile
14
+ */
10
15
  async function load(url, currentFile = '.') {
11
16
  const resolved = resolve(url, currentFile);
12
17
  return matchUrl.test(resolved.absolute) ? fetch(resolved.absolute).then(parseResponse) : readFile(resolved.absolute, { encoding: 'utf-8' });
package/dist/web/index.js CHANGED
@@ -1,17 +1,19 @@
1
- export { EnumToken } from '../lib/ast/types.js';
1
+ export { EnumToken, ValidationLevel } from '../lib/ast/types.js';
2
2
  export { minify } from '../lib/ast/minify.js';
3
3
  export { walk, walkValues } from '../lib/ast/walk.js';
4
4
  export { expand } from '../lib/ast/expand.js';
5
5
  import { doRender } from '../lib/renderer/render.js';
6
6
  export { renderToken } from '../lib/renderer/render.js';
7
+ import '../lib/renderer/color/utils/constants.js';
7
8
  import { doParse } from '../lib/parser/parse.js';
8
9
  export { parseString, parseTokens } from '../lib/parser/parse.js';
9
- import '../lib/renderer/color/utils/constants.js';
10
+ import '../lib/parser/tokenize.js';
10
11
  import '../lib/parser/utils/config.js';
11
12
  import '../lib/validation/config.js';
12
13
  import '../lib/validation/parser/types.js';
13
14
  import '../lib/validation/parser/parse.js';
14
15
  import '../lib/validation/syntaxes/complex-selector.js';
16
+ import '../lib/validation/syntax.js';
15
17
  import { dirname, resolve } from '../lib/fs/resolve.js';
16
18
  import { load } from './load.js';
17
19
 
package/dist/web/load.js CHANGED
@@ -6,6 +6,11 @@ function parseResponse(response) {
6
6
  }
7
7
  return response.text();
8
8
  }
9
+ /**
10
+ * load file
11
+ * @param url
12
+ * @param currentFile
13
+ */
9
14
  async function load(url, currentFile) {
10
15
  let t;
11
16
  if (matchUrl.test(url)) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tbela99/css-parser",
3
3
  "description": "CSS parser for node and the browser",
4
- "version": "v1.0.0",
4
+ "version": "v1.1.1-alpha4",
5
5
  "exports": {
6
6
  ".": "./dist/node/index.js",
7
7
  "./node": "./dist/node/index.js",
@@ -16,9 +16,10 @@
16
16
  },
17
17
  "scripts": {
18
18
  "build": "rollup -c;./build.sh dist/index.d.ts 'declare interface' 'declare type'",
19
- "test": "web-test-runner \"test/**/web.spec.js\" --node-resolve --playwright --browsers chromium firefox webkit --root-dir=.; mocha --reporter-options='maxDiffSize=1801920' \"test/**/node.spec.js\"",
19
+ "test": "web-test-runner \"test/**/web.spec.js\" --node-resolve --playwright --browsers chromium firefox webkit --root-dir=.; mocha --reporter-options='maxDiffSize=1801920' --timeout=10000 \"test/**/node.spec.js\"",
20
+ "test:web": "web-test-runner \"test/**/web.spec.js\" --node-resolve --playwright --browsers chromium firefox webkit --root-dir=.",
20
21
  "test:node": "mocha --reporter-options='maxDiffSize=1801920' \"test/**/node.spec.js\"",
21
- "test:cov": "c8 -x 'test/specs/**/*.js' -x dist/lib/validation/syntax.js -x 'dist/lib/validation/parser/*.js' --reporter=html --reporter=text --reporter=json-summary mocha --reporter-options='maxDiffSize=1801920' \"test/**/node.spec.js\"",
22
+ "test:cov": "c8 -x 'test/specs/**/*.js' -x dist/lib/validation/syntax.js -x 'dist/lib/validation/parser/*.js' --reporter=html --reporter=text --reporter=json-summary mocha --reporter-options='maxDiffSize=1801920' --timeout=10000 \"test/**/node.spec.js\"",
22
23
  "test:web-cov": "web-test-runner -x 'test/specs/**/*.js' -x dist/lib/validation/syntax.js,dist/lib/validation/parser \"test/**/web.spec.js\" --node-resolve --playwright --browsers chromium firefox webkit --root-dir=. --coverage",
23
24
  "profile": "node --enable-source-maps --inspect-brk test/inspect.js",
24
25
  "syntax-update": "esno tools/validation.ts",
@@ -51,21 +52,21 @@
51
52
  "homepage": "https://github.com/tbela99/css-parser#readme",
52
53
  "devDependencies": {
53
54
  "@esm-bundle/chai": "^4.3.4-fix.0",
54
- "@rollup/plugin-commonjs": "^28.0.3",
55
+ "@rollup/plugin-commonjs": "^28.0.6",
55
56
  "@rollup/plugin-json": "^6.1.0",
56
57
  "@rollup/plugin-node-resolve": "^16.0.1",
57
- "@rollup/plugin-typescript": "^12.1.2",
58
- "@types/chai": "^5.2.1",
58
+ "@rollup/plugin-typescript": "^12.1.4",
59
+ "@types/chai": "^5.2.2",
59
60
  "@types/mocha": "^10.0.10",
60
- "@types/node": "^22.15.2",
61
- "@types/web": "^0.0.226",
62
- "@web/test-runner": "^0.20.1",
63
- "@web/test-runner-playwright": "^0.11.0",
61
+ "@types/node": "^24.0.10",
62
+ "@types/web": "^0.0.245",
63
+ "@web/test-runner": "^0.20.2",
64
+ "@web/test-runner-playwright": "^0.11.1",
64
65
  "c8": "^10.1.3",
65
66
  "esno": "^4.8.0",
66
- "mocha": "^11.1.0",
67
- "playwright": "^1.52.0",
68
- "rollup": "^4.40.0",
67
+ "mocha": "^11.7.1",
68
+ "playwright": "^1.54.1",
69
+ "rollup": "^4.45.1",
69
70
  "rollup-plugin-dts": "^6.2.1",
70
71
  "tslib": "^2.8.1"
71
72
  }