readability_js 0.0.1

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 (1607) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +2 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +21 -0
  8. data/README.md +119 -0
  9. data/Rakefile +30 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/cli/pry.rb +5 -0
  13. data/lib/custom_errors/error.rb +4 -0
  14. data/lib/readability_js/node/node_modules/.bin/tldts +1 -0
  15. data/lib/readability_js/node/node_modules/.yarn-integrity +67 -0
  16. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/LICENSE +21 -0
  17. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/README.md +316 -0
  18. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js +220 -0
  19. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js.map +1 -0
  20. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs +5666 -0
  21. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs.map +1 -0
  22. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/cjs/index.d.cts +109 -0
  23. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/index.d.ts +17 -0
  24. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/index.js +27 -0
  25. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/index.js.map +1 -0
  26. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.d.ts +44 -0
  27. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js +82 -0
  28. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js.map +1 -0
  29. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/color.d.ts +537 -0
  30. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js +2833 -0
  31. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js.map +1 -0
  32. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/common.d.ts +21 -0
  33. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js +7 -0
  34. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js.map +1 -0
  35. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.d.ts +43 -0
  36. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js +101 -0
  37. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js.map +1 -0
  38. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.d.ts +99 -0
  39. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js +361 -0
  40. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js.map +1 -0
  41. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.d.ts +89 -0
  42. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js +860 -0
  43. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js.map +1 -0
  44. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.d.ts +79 -0
  45. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js +261 -0
  46. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js.map +1 -0
  47. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.d.ts +31 -0
  48. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js +195 -0
  49. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js.map +1 -0
  50. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.d.ts +29 -0
  51. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js +507 -0
  52. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js.map +1 -0
  53. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.d.ts +52 -0
  54. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js +350 -0
  55. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js.map +1 -0
  56. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/typedef.d.ts +80 -0
  57. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/util.d.ts +45 -0
  58. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js +279 -0
  59. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js.map +1 -0
  60. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/package.json +82 -0
  61. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/index.ts +24 -0
  62. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/cache.ts +114 -0
  63. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/color.ts +3511 -0
  64. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/common.ts +31 -0
  65. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/constant.ts +68 -0
  66. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/convert.ts +469 -0
  67. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/css-calc.ts +965 -0
  68. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/css-gradient.ts +384 -0
  69. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/css-var.ts +250 -0
  70. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/relative-color.ts +603 -0
  71. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/resolve.ts +443 -0
  72. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/typedef.ts +88 -0
  73. data/lib/readability_js/node/node_modules/@asamuzakjp/css-color/src/js/util.ts +336 -0
  74. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/LICENSE +21 -0
  75. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/README.md +324 -0
  76. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/dist/cjs/index.cjs +4613 -0
  77. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/dist/cjs/index.cjs.map +1 -0
  78. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/dist/cjs/index.d.cts +16 -0
  79. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/package.json +83 -0
  80. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/index.js +353 -0
  81. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/js/constant.js +129 -0
  82. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/js/finder.js +3108 -0
  83. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/js/matcher.js +587 -0
  84. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/js/parser.js +431 -0
  85. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/src/js/utility.js +1107 -0
  86. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/index.d.ts +14 -0
  87. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/js/constant.d.ts +79 -0
  88. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/js/finder.d.ts +64 -0
  89. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/js/matcher.d.ts +16 -0
  90. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/js/parser.d.ts +14 -0
  91. data/lib/readability_js/node/node_modules/@asamuzakjp/dom-selector/types/js/utility.d.ts +30 -0
  92. data/lib/readability_js/node/node_modules/@asamuzakjp/nwsapi/LICENSE +22 -0
  93. data/lib/readability_js/node/node_modules/@asamuzakjp/nwsapi/README.md +132 -0
  94. data/lib/readability_js/node/node_modules/@asamuzakjp/nwsapi/package.json +43 -0
  95. data/lib/readability_js/node/node_modules/@asamuzakjp/nwsapi/src/nwsapi.js +1855 -0
  96. data/lib/readability_js/node/node_modules/@csstools/color-helpers/CHANGELOG.md +10 -0
  97. data/lib/readability_js/node/node_modules/@csstools/color-helpers/LICENSE.md +18 -0
  98. data/lib/readability_js/node/node_modules/@csstools/color-helpers/README.md +32 -0
  99. data/lib/readability_js/node/node_modules/@csstools/color-helpers/dist/index.cjs +263 -0
  100. data/lib/readability_js/node/node_modules/@csstools/color-helpers/dist/index.d.ts +429 -0
  101. data/lib/readability_js/node/node_modules/@csstools/color-helpers/dist/index.mjs +263 -0
  102. data/lib/readability_js/node/node_modules/@csstools/color-helpers/package.json +62 -0
  103. data/lib/readability_js/node/node_modules/@csstools/css-calc/CHANGELOG.md +10 -0
  104. data/lib/readability_js/node/node_modules/@csstools/css-calc/LICENSE.md +20 -0
  105. data/lib/readability_js/node/node_modules/@csstools/css-calc/README.md +132 -0
  106. data/lib/readability_js/node/node_modules/@csstools/css-calc/dist/index.cjs +1 -0
  107. data/lib/readability_js/node/node_modules/@csstools/css-calc/dist/index.d.ts +71 -0
  108. data/lib/readability_js/node/node_modules/@csstools/css-calc/dist/index.mjs +1 -0
  109. data/lib/readability_js/node/node_modules/@csstools/css-calc/package.json +66 -0
  110. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/CHANGELOG.md +13 -0
  111. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/LICENSE.md +20 -0
  112. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/README.md +37 -0
  113. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/dist/index.cjs +1 -0
  114. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/dist/index.d.ts +168 -0
  115. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/dist/index.mjs +1 -0
  116. data/lib/readability_js/node/node_modules/@csstools/css-color-parser/package.json +71 -0
  117. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md +9 -0
  118. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/LICENSE.md +20 -0
  119. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/README.md +119 -0
  120. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/dist/index.cjs +1 -0
  121. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts +604 -0
  122. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/dist/index.mjs +1 -0
  123. data/lib/readability_js/node/node_modules/@csstools/css-parser-algorithms/package.json +65 -0
  124. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/CHANGELOG.md +9 -0
  125. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/LICENSE.md +18 -0
  126. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/README.md +43 -0
  127. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.d.ts +5 -0
  128. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.json +765 -0
  129. data/lib/readability_js/node/node_modules/@csstools/css-syntax-patches-for-csstree/package.json +54 -0
  130. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/CHANGELOG.md +9 -0
  131. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/LICENSE.md +20 -0
  132. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/README.md +111 -0
  133. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/dist/index.cjs +1 -0
  134. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/dist/index.d.ts +593 -0
  135. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/dist/index.mjs +1 -0
  136. data/lib/readability_js/node/node_modules/@csstools/css-tokenizer/package.json +62 -0
  137. data/lib/readability_js/node/node_modules/@mozilla/readability/.prettierrc.js +13 -0
  138. data/lib/readability_js/node/node_modules/@mozilla/readability/CHANGELOG.md +104 -0
  139. data/lib/readability_js/node/node_modules/@mozilla/readability/CODE_OF_CONDUCT.md +15 -0
  140. data/lib/readability_js/node/node_modules/@mozilla/readability/CONTRIBUTING.md +78 -0
  141. data/lib/readability_js/node/node_modules/@mozilla/readability/JSDOMParser.js +1278 -0
  142. data/lib/readability_js/node/node_modules/@mozilla/readability/LICENSE.md +13 -0
  143. data/lib/readability_js/node/node_modules/@mozilla/readability/README.md +129 -0
  144. data/lib/readability_js/node/node_modules/@mozilla/readability/Readability-readerable.js +122 -0
  145. data/lib/readability_js/node/node_modules/@mozilla/readability/Readability.js +2786 -0
  146. data/lib/readability_js/node/node_modules/@mozilla/readability/SECURITY.md +8 -0
  147. data/lib/readability_js/node/node_modules/@mozilla/readability/eslint.config.mjs +55 -0
  148. data/lib/readability_js/node/node_modules/@mozilla/readability/index.d.ts +64 -0
  149. data/lib/readability_js/node/node_modules/@mozilla/readability/index.js +8 -0
  150. data/lib/readability_js/node/node_modules/@mozilla/readability/package.json +41 -0
  151. data/lib/readability_js/node/node_modules/agent-base/LICENSE +22 -0
  152. data/lib/readability_js/node/node_modules/agent-base/README.md +69 -0
  153. data/lib/readability_js/node/node_modules/agent-base/dist/helpers.d.ts +15 -0
  154. data/lib/readability_js/node/node_modules/agent-base/dist/helpers.d.ts.map +1 -0
  155. data/lib/readability_js/node/node_modules/agent-base/dist/helpers.js +66 -0
  156. data/lib/readability_js/node/node_modules/agent-base/dist/helpers.js.map +1 -0
  157. data/lib/readability_js/node/node_modules/agent-base/dist/index.d.ts +41 -0
  158. data/lib/readability_js/node/node_modules/agent-base/dist/index.d.ts.map +1 -0
  159. data/lib/readability_js/node/node_modules/agent-base/dist/index.js +178 -0
  160. data/lib/readability_js/node/node_modules/agent-base/dist/index.js.map +1 -0
  161. data/lib/readability_js/node/node_modules/agent-base/package.json +46 -0
  162. data/lib/readability_js/node/node_modules/bidi-js/LICENSE.txt +22 -0
  163. data/lib/readability_js/node/node_modules/bidi-js/README.md +133 -0
  164. data/lib/readability_js/node/node_modules/bidi-js/dist/bidi.js +1010 -0
  165. data/lib/readability_js/node/node_modules/bidi-js/dist/bidi.min.js +1 -0
  166. data/lib/readability_js/node/node_modules/bidi-js/dist/bidi.min.mjs +1 -0
  167. data/lib/readability_js/node/node_modules/bidi-js/dist/bidi.mjs +1002 -0
  168. data/lib/readability_js/node/node_modules/bidi-js/package.json +39 -0
  169. data/lib/readability_js/node/node_modules/bidi-js/src/brackets.js +30 -0
  170. data/lib/readability_js/node/node_modules/bidi-js/src/charTypes.js +66 -0
  171. data/lib/readability_js/node/node_modules/bidi-js/src/data/bidiBrackets.data.js +5 -0
  172. data/lib/readability_js/node/node_modules/bidi-js/src/data/bidiCharTypes.data.js +25 -0
  173. data/lib/readability_js/node/node_modules/bidi-js/src/data/bidiMirroring.data.js +2 -0
  174. data/lib/readability_js/node/node_modules/bidi-js/src/embeddingLevels.js +690 -0
  175. data/lib/readability_js/node/node_modules/bidi-js/src/index.js +5 -0
  176. data/lib/readability_js/node/node_modules/bidi-js/src/mirroring.js +48 -0
  177. data/lib/readability_js/node/node_modules/bidi-js/src/reordering.js +99 -0
  178. data/lib/readability_js/node/node_modules/bidi-js/src/util/parseCharacterMap.js +30 -0
  179. data/lib/readability_js/node/node_modules/css-tree/LICENSE +19 -0
  180. data/lib/readability_js/node/node_modules/css-tree/README.md +192 -0
  181. data/lib/readability_js/node/node_modules/css-tree/cjs/convertor/create.cjs +32 -0
  182. data/lib/readability_js/node/node_modules/css-tree/cjs/convertor/index.cjs +8 -0
  183. data/lib/readability_js/node/node_modules/css-tree/cjs/data-patch.cjs +7 -0
  184. data/lib/readability_js/node/node_modules/css-tree/cjs/data.cjs +120 -0
  185. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs +16 -0
  186. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/generate.cjs +139 -0
  187. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/index.cjs +13 -0
  188. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/parse.cjs +556 -0
  189. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/scanner.cjs +113 -0
  190. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs +59 -0
  191. data/lib/readability_js/node/node_modules/css-tree/cjs/definition-syntax/walk.cjs +57 -0
  192. data/lib/readability_js/node/node_modules/css-tree/cjs/generator/create.cjs +102 -0
  193. data/lib/readability_js/node/node_modules/css-tree/cjs/generator/index.cjs +8 -0
  194. data/lib/readability_js/node/node_modules/css-tree/cjs/generator/sourceMap.cjs +96 -0
  195. data/lib/readability_js/node/node_modules/css-tree/cjs/generator/token-before.cjs +170 -0
  196. data/lib/readability_js/node/node_modules/css-tree/cjs/index.cjs +65 -0
  197. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/Lexer.cjs +517 -0
  198. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/error.cjs +128 -0
  199. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs +235 -0
  200. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/generic-const.cjs +12 -0
  201. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/generic-urange.cjs +149 -0
  202. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/generic.cjs +589 -0
  203. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/index.cjs +7 -0
  204. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/match-graph.cjs +530 -0
  205. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/match.cjs +632 -0
  206. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/prepare-tokens.cjs +54 -0
  207. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/search.cjs +65 -0
  208. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/structure.cjs +173 -0
  209. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/trace.cjs +73 -0
  210. data/lib/readability_js/node/node_modules/css-tree/cjs/lexer/units.cjs +38 -0
  211. data/lib/readability_js/node/node_modules/css-tree/cjs/parser/SyntaxError.cjs +74 -0
  212. data/lib/readability_js/node/node_modules/css-tree/cjs/parser/create.cjs +340 -0
  213. data/lib/readability_js/node/node_modules/css-tree/cjs/parser/index.cjs +8 -0
  214. data/lib/readability_js/node/node_modules/css-tree/cjs/parser/parse-selector.cjs +8 -0
  215. data/lib/readability_js/node/node_modules/css-tree/cjs/parser/sequence.cjs +47 -0
  216. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/container.cjs +32 -0
  217. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/font-face.cjs +12 -0
  218. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/import.cjs +101 -0
  219. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/index.cjs +27 -0
  220. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/layer.cjs +16 -0
  221. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/media.cjs +16 -0
  222. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/nest.cjs +16 -0
  223. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/page.cjs +16 -0
  224. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/scope.cjs +16 -0
  225. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/starting-style.cjs +12 -0
  226. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/atrule/supports.cjs +16 -0
  227. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/generator.cjs +9 -0
  228. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/lexer.cjs +14 -0
  229. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/mix.cjs +127 -0
  230. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/parser-selector.cjs +19 -0
  231. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/parser.cjs +49 -0
  232. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/config/walker.cjs +9 -0
  233. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/create.cjs +58 -0
  234. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/function/expression.cjs +11 -0
  235. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/function/var.cjs +43 -0
  236. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/index.cjs +14 -0
  237. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/AnPlusB.cjs +293 -0
  238. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Atrule.cjs +103 -0
  239. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/AtrulePrelude.cjs +52 -0
  240. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/AttributeSelector.cjs +148 -0
  241. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Block.cjs +96 -0
  242. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Brackets.cjs +38 -0
  243. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/CDC.cjs +26 -0
  244. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/CDO.cjs +26 -0
  245. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/ClassSelector.cjs +31 -0
  246. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Combinator.cjs +61 -0
  247. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Comment.cjs +40 -0
  248. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Condition.cjs +120 -0
  249. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Declaration.cjs +166 -0
  250. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/DeclarationList.cjs +62 -0
  251. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Dimension.cjs +30 -0
  252. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Feature.cjs +101 -0
  253. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/FeatureFunction.cjs +67 -0
  254. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/FeatureRange.cjs +133 -0
  255. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Function.cjs +45 -0
  256. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/GeneralEnclosed.cjs +68 -0
  257. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Hash.cjs +30 -0
  258. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/IdSelector.cjs +33 -0
  259. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Identifier.cjs +25 -0
  260. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Layer.cjs +35 -0
  261. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/LayerList.cjs +43 -0
  262. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/LayerName.cjs +34 -0
  263. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/LayerNameList.cjs +42 -0
  264. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/MediaCondition.cjs +70 -0
  265. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/MediaFeature.cjs +76 -0
  266. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/MediaFeatureRange.cjs +11 -0
  267. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/MediaQuery.cjs +100 -0
  268. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/MediaQueryList.cjs +41 -0
  269. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/NestingSelector.cjs +29 -0
  270. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Nth.cjs +54 -0
  271. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Number.cjs +25 -0
  272. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Operator.cjs +28 -0
  273. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Parentheses.cjs +38 -0
  274. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Percentage.cjs +25 -0
  275. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/PseudoClassSelector.cjs +67 -0
  276. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/PseudoElementSelector.cjs +69 -0
  277. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Ratio.cjs +71 -0
  278. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Raw.cjs +48 -0
  279. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Rule.cjs +58 -0
  280. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Scope.cjs +69 -0
  281. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Selector.cjs +38 -0
  282. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/SelectorList.cjs +43 -0
  283. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/String.cjs +26 -0
  284. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/StyleSheet.cjs +83 -0
  285. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/SupportsDeclaration.cjs +38 -0
  286. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/SupportsFeature.cjs +69 -0
  287. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/TypeSelector.cjs +59 -0
  288. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/UnicodeRange.cjs +158 -0
  289. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Url.cjs +54 -0
  290. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/Value.cjs +26 -0
  291. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/WhiteSpace.cjs +34 -0
  292. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/common/feature-range.cjs +112 -0
  293. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/common/feature.cjs +76 -0
  294. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/index-generate.cjs +103 -0
  295. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/index-parse-selector.cjs +39 -0
  296. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/index-parse.cjs +103 -0
  297. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/node/index.cjs +103 -0
  298. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/pseudo/index.cjs +60 -0
  299. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/pseudo/lang.cjs +37 -0
  300. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/scope/atrulePrelude.cjs +9 -0
  301. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/scope/default.cjs +76 -0
  302. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/scope/index.cjs +11 -0
  303. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/scope/selector.cjs +88 -0
  304. data/lib/readability_js/node/node_modules/css-tree/cjs/syntax/scope/value.cjs +29 -0
  305. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs +91 -0
  306. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/TokenStream.cjs +308 -0
  307. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs +13 -0
  308. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs +236 -0
  309. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/index.cjs +554 -0
  310. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/names.cjs +32 -0
  311. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/types.cjs +57 -0
  312. data/lib/readability_js/node/node_modules/css-tree/cjs/tokenizer/utils.cjs +261 -0
  313. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/List.cjs +473 -0
  314. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/clone.cjs +25 -0
  315. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/create-custom-error.cjs +18 -0
  316. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/ident.cjs +102 -0
  317. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/index.cjs +20 -0
  318. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/names.cjs +113 -0
  319. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/string.cjs +99 -0
  320. data/lib/readability_js/node/node_modules/css-tree/cjs/utils/url.cjs +108 -0
  321. data/lib/readability_js/node/node_modules/css-tree/cjs/version.cjs +5 -0
  322. data/lib/readability_js/node/node_modules/css-tree/cjs/walker/create.cjs +291 -0
  323. data/lib/readability_js/node/node_modules/css-tree/cjs/walker/index.cjs +8 -0
  324. data/lib/readability_js/node/node_modules/css-tree/data/patch.json +982 -0
  325. data/lib/readability_js/node/node_modules/css-tree/dist/csstree.esm.js +12 -0
  326. data/lib/readability_js/node/node_modules/css-tree/dist/csstree.js +12 -0
  327. data/lib/readability_js/node/node_modules/css-tree/dist/data.cjs +1308 -0
  328. data/lib/readability_js/node/node_modules/css-tree/dist/data.js +1308 -0
  329. data/lib/readability_js/node/node_modules/css-tree/dist/version.cjs +1 -0
  330. data/lib/readability_js/node/node_modules/css-tree/dist/version.js +1 -0
  331. data/lib/readability_js/node/node_modules/css-tree/lib/convertor/create.js +28 -0
  332. data/lib/readability_js/node/node_modules/css-tree/lib/convertor/index.js +4 -0
  333. data/lib/readability_js/node/node_modules/css-tree/lib/data-patch.js +6 -0
  334. data/lib/readability_js/node/node_modules/css-tree/lib/data.js +118 -0
  335. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/SyntaxError.js +12 -0
  336. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/generate.js +135 -0
  337. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/index.js +4 -0
  338. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/parse.js +552 -0
  339. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/scanner.js +109 -0
  340. data/lib/readability_js/node/node_modules/css-tree/lib/definition-syntax/walk.js +53 -0
  341. data/lib/readability_js/node/node_modules/css-tree/lib/generator/create.js +97 -0
  342. data/lib/readability_js/node/node_modules/css-tree/lib/generator/index.js +4 -0
  343. data/lib/readability_js/node/node_modules/css-tree/lib/generator/sourceMap.js +92 -0
  344. data/lib/readability_js/node/node_modules/css-tree/lib/generator/token-before.js +182 -0
  345. data/lib/readability_js/node/node_modules/css-tree/lib/index.js +30 -0
  346. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/Lexer.js +511 -0
  347. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/error.js +123 -0
  348. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/generic-an-plus-b.js +238 -0
  349. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/generic-const.js +8 -0
  350. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/generic-urange.js +151 -0
  351. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/generic.js +622 -0
  352. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/index.js +1 -0
  353. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/match-graph.js +527 -0
  354. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/match.js +630 -0
  355. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/prepare-tokens.js +50 -0
  356. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/search.js +61 -0
  357. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/structure.js +169 -0
  358. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/trace.js +66 -0
  359. data/lib/readability_js/node/node_modules/css-tree/lib/lexer/units.js +27 -0
  360. data/lib/readability_js/node/node_modules/css-tree/lib/parser/SyntaxError.js +70 -0
  361. data/lib/readability_js/node/node_modules/css-tree/lib/parser/create.js +350 -0
  362. data/lib/readability_js/node/node_modules/css-tree/lib/parser/index.js +4 -0
  363. data/lib/readability_js/node/node_modules/css-tree/lib/parser/parse-selector.js +4 -0
  364. data/lib/readability_js/node/node_modules/css-tree/lib/parser/sequence.js +43 -0
  365. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/container.js +28 -0
  366. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/font-face.js +8 -0
  367. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/import.js +104 -0
  368. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/index.js +23 -0
  369. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/layer.js +12 -0
  370. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/media.js +12 -0
  371. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/nest.js +12 -0
  372. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/page.js +12 -0
  373. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/scope.js +12 -0
  374. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/starting-style.js +8 -0
  375. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/atrule/supports.js +12 -0
  376. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/generator.js +5 -0
  377. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/lexer.js +10 -0
  378. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/mix.js +123 -0
  379. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/parser-selector.js +15 -0
  380. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/parser.js +45 -0
  381. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/config/walker.js +5 -0
  382. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/create.js +55 -0
  383. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/function/expression.js +7 -0
  384. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/function/var.js +39 -0
  385. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/index.js +10 -0
  386. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/AnPlusB.js +292 -0
  387. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Atrule.js +100 -0
  388. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/AtrulePrelude.js +47 -0
  389. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/AttributeSelector.js +147 -0
  390. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Block.js +95 -0
  391. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Brackets.js +35 -0
  392. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/CDC.js +19 -0
  393. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/CDO.js +19 -0
  394. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/ClassSelector.js +24 -0
  395. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Combinator.js +54 -0
  396. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Comment.js +33 -0
  397. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Condition.js +123 -0
  398. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Declaration.js +165 -0
  399. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/DeclarationList.js +62 -0
  400. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Dimension.js +23 -0
  401. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Feature.js +103 -0
  402. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/FeatureFunction.js +63 -0
  403. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/FeatureRange.js +133 -0
  404. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Function.js +41 -0
  405. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/GeneralEnclosed.js +66 -0
  406. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Hash.js +23 -0
  407. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/IdSelector.js +26 -0
  408. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Identifier.js +18 -0
  409. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Layer.js +28 -0
  410. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/LayerList.js +36 -0
  411. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/MediaQuery.js +102 -0
  412. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/MediaQueryList.js +34 -0
  413. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/NestingSelector.js +22 -0
  414. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Nth.js +47 -0
  415. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Number.js +18 -0
  416. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Operator.js +21 -0
  417. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Parentheses.js +34 -0
  418. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Percentage.js +18 -0
  419. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js +65 -0
  420. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js +66 -0
  421. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Ratio.js +68 -0
  422. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Raw.js +41 -0
  423. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Rule.js +51 -0
  424. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Scope.js +66 -0
  425. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Selector.js +31 -0
  426. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/SelectorList.js +35 -0
  427. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/String.js +19 -0
  428. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/StyleSheet.js +82 -0
  429. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/SupportsDeclaration.js +34 -0
  430. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/TypeSelector.js +52 -0
  431. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/UnicodeRange.js +156 -0
  432. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Url.js +52 -0
  433. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/Value.js +19 -0
  434. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/WhiteSpace.js +27 -0
  435. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/index-generate.js +49 -0
  436. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/index-parse-selector.js +17 -0
  437. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/index-parse.js +49 -0
  438. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/node/index.js +49 -0
  439. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/pseudo/index.js +56 -0
  440. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/pseudo/lang.js +33 -0
  441. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/scope/atrulePrelude.js +5 -0
  442. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/scope/default.js +85 -0
  443. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/scope/index.js +3 -0
  444. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/scope/selector.js +94 -0
  445. data/lib/readability_js/node/node_modules/css-tree/lib/syntax/scope/value.js +25 -0
  446. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js +87 -0
  447. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/TokenStream.js +316 -0
  448. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/adopt-buffer.js +9 -0
  449. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/char-code-definitions.js +212 -0
  450. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/index.js +513 -0
  451. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/names.js +28 -0
  452. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/types.js +28 -0
  453. data/lib/readability_js/node/node_modules/css-tree/lib/tokenizer/utils.js +254 -0
  454. data/lib/readability_js/node/node_modules/css-tree/lib/utils/List.js +469 -0
  455. data/lib/readability_js/node/node_modules/css-tree/lib/utils/clone.js +21 -0
  456. data/lib/readability_js/node/node_modules/css-tree/lib/utils/create-custom-error.js +14 -0
  457. data/lib/readability_js/node/node_modules/css-tree/lib/utils/ident.js +101 -0
  458. data/lib/readability_js/node/node_modules/css-tree/lib/utils/index.js +6 -0
  459. data/lib/readability_js/node/node_modules/css-tree/lib/utils/names.js +106 -0
  460. data/lib/readability_js/node/node_modules/css-tree/lib/utils/string.js +99 -0
  461. data/lib/readability_js/node/node_modules/css-tree/lib/utils/url.js +108 -0
  462. data/lib/readability_js/node/node_modules/css-tree/lib/version.js +5 -0
  463. data/lib/readability_js/node/node_modules/css-tree/lib/walker/create.js +287 -0
  464. data/lib/readability_js/node/node_modules/css-tree/lib/walker/index.js +4 -0
  465. data/lib/readability_js/node/node_modules/css-tree/package.json +125 -0
  466. data/lib/readability_js/node/node_modules/cssstyle/LICENSE +20 -0
  467. data/lib/readability_js/node/node_modules/cssstyle/README.md +11 -0
  468. data/lib/readability_js/node/node_modules/cssstyle/lib/CSSStyleDeclaration.js +636 -0
  469. data/lib/readability_js/node/node_modules/cssstyle/lib/generated/allProperties.js +653 -0
  470. data/lib/readability_js/node/node_modules/cssstyle/lib/generated/implementedProperties.js +2222 -0
  471. data/lib/readability_js/node/node_modules/cssstyle/lib/generated/properties.js +6951 -0
  472. data/lib/readability_js/node/node_modules/cssstyle/lib/normalize.js +1417 -0
  473. data/lib/readability_js/node/node_modules/cssstyle/lib/parsers.js +535 -0
  474. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/background.js +396 -0
  475. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundAttachment.js +64 -0
  476. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundClip.js +64 -0
  477. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundColor.js +55 -0
  478. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundImage.js +78 -0
  479. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundOrigin.js +64 -0
  480. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundPosition.js +193 -0
  481. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundRepeat.js +89 -0
  482. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/backgroundSize.js +120 -0
  483. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/border.js +164 -0
  484. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderBottom.js +156 -0
  485. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderBottomColor.js +60 -0
  486. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderBottomStyle.js +59 -0
  487. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderBottomWidth.js +69 -0
  488. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderCollapse.js +50 -0
  489. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderColor.js +116 -0
  490. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderLeft.js +156 -0
  491. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderLeftColor.js +60 -0
  492. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderLeftStyle.js +59 -0
  493. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderLeftWidth.js +69 -0
  494. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderRight.js +156 -0
  495. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderRightColor.js +60 -0
  496. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderRightStyle.js +59 -0
  497. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderRightWidth.js +69 -0
  498. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderSpacing.js +62 -0
  499. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderStyle.js +116 -0
  500. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderTop.js +156 -0
  501. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderTopColor.js +60 -0
  502. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderTopStyle.js +59 -0
  503. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderTopWidth.js +69 -0
  504. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/borderWidth.js +129 -0
  505. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/bottom.js +58 -0
  506. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/clear.js +50 -0
  507. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/clip.js +68 -0
  508. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/color.js +51 -0
  509. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/display.js +207 -0
  510. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/flex.js +176 -0
  511. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/flexBasis.js +62 -0
  512. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/flexGrow.js +61 -0
  513. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/flexShrink.js +61 -0
  514. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/float.js +50 -0
  515. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/floodColor.js +51 -0
  516. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/font.js +289 -0
  517. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/fontFamily.js +94 -0
  518. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/fontSize.js +64 -0
  519. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/fontStyle.js +63 -0
  520. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/fontVariant.js +73 -0
  521. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/fontWeight.js +68 -0
  522. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/height.js +58 -0
  523. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/left.js +58 -0
  524. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/lightingColor.js +51 -0
  525. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/lineHeight.js +66 -0
  526. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/margin.js +95 -0
  527. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/marginBottom.js +64 -0
  528. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/marginLeft.js +64 -0
  529. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/marginRight.js +64 -0
  530. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/marginTop.js +64 -0
  531. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/opacity.js +59 -0
  532. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/outlineColor.js +51 -0
  533. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/padding.js +93 -0
  534. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/paddingBottom.js +65 -0
  535. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/paddingLeft.js +65 -0
  536. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/paddingRight.js +65 -0
  537. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/paddingTop.js +65 -0
  538. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/right.js +58 -0
  539. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/stopColor.js +51 -0
  540. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/top.js +58 -0
  541. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js +51 -0
  542. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js +51 -0
  543. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js +51 -0
  544. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js +51 -0
  545. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js +51 -0
  546. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js +51 -0
  547. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js +51 -0
  548. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitTextFillColor.js +51 -0
  549. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js +51 -0
  550. data/lib/readability_js/node/node_modules/cssstyle/lib/properties/width.js +58 -0
  551. data/lib/readability_js/node/node_modules/cssstyle/lib/utils/allExtraProperties.js +155 -0
  552. data/lib/readability_js/node/node_modules/cssstyle/lib/utils/camelize.js +37 -0
  553. data/lib/readability_js/node/node_modules/cssstyle/lib/utils/propertyDescriptors.js +19 -0
  554. data/lib/readability_js/node/node_modules/cssstyle/lib/utils/strings.js +167 -0
  555. data/lib/readability_js/node/node_modules/cssstyle/package.json +74 -0
  556. data/lib/readability_js/node/node_modules/data-urls/LICENSE.txt +7 -0
  557. data/lib/readability_js/node/node_modules/data-urls/README.md +62 -0
  558. data/lib/readability_js/node/node_modules/data-urls/lib/parser.js +69 -0
  559. data/lib/readability_js/node/node_modules/data-urls/lib/utils.js +20 -0
  560. data/lib/readability_js/node/node_modules/data-urls/package.json +52 -0
  561. data/lib/readability_js/node/node_modules/debug/LICENSE +20 -0
  562. data/lib/readability_js/node/node_modules/debug/README.md +481 -0
  563. data/lib/readability_js/node/node_modules/debug/package.json +64 -0
  564. data/lib/readability_js/node/node_modules/debug/src/browser.js +272 -0
  565. data/lib/readability_js/node/node_modules/debug/src/common.js +292 -0
  566. data/lib/readability_js/node/node_modules/debug/src/index.js +10 -0
  567. data/lib/readability_js/node/node_modules/debug/src/node.js +263 -0
  568. data/lib/readability_js/node/node_modules/decimal.js/LICENCE.md +23 -0
  569. data/lib/readability_js/node/node_modules/decimal.js/README.md +246 -0
  570. data/lib/readability_js/node/node_modules/decimal.js/decimal.d.ts +301 -0
  571. data/lib/readability_js/node/node_modules/decimal.js/decimal.js +4951 -0
  572. data/lib/readability_js/node/node_modules/decimal.js/decimal.mjs +4914 -0
  573. data/lib/readability_js/node/node_modules/decimal.js/package.json +55 -0
  574. data/lib/readability_js/node/node_modules/entities/LICENSE +11 -0
  575. data/lib/readability_js/node/node_modules/entities/decode.d.ts +1 -0
  576. data/lib/readability_js/node/node_modules/entities/decode.js +3 -0
  577. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode-codepoint.d.ts +19 -0
  578. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode-codepoint.d.ts.map +1 -0
  579. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  580. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode-codepoint.js.map +1 -0
  581. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode.d.ts +209 -0
  582. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode.d.ts.map +1 -0
  583. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode.js +511 -0
  584. data/lib/readability_js/node/node_modules/entities/dist/commonjs/decode.js.map +1 -0
  585. data/lib/readability_js/node/node_modules/entities/dist/commonjs/encode.d.ts +22 -0
  586. data/lib/readability_js/node/node_modules/entities/dist/commonjs/encode.d.ts.map +1 -0
  587. data/lib/readability_js/node/node_modules/entities/dist/commonjs/encode.js +73 -0
  588. data/lib/readability_js/node/node_modules/entities/dist/commonjs/encode.js.map +1 -0
  589. data/lib/readability_js/node/node_modules/entities/dist/commonjs/escape.d.ts +43 -0
  590. data/lib/readability_js/node/node_modules/entities/dist/commonjs/escape.d.ts.map +1 -0
  591. data/lib/readability_js/node/node_modules/entities/dist/commonjs/escape.js +121 -0
  592. data/lib/readability_js/node/node_modules/entities/dist/commonjs/escape.js.map +1 -0
  593. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts +2 -0
  594. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts.map +1 -0
  595. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-html.js +10 -0
  596. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-html.js.map +1 -0
  597. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts +2 -0
  598. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts.map +1 -0
  599. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +10 -0
  600. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/decode-data-xml.js.map +1 -0
  601. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/encode-html.d.ts +8 -0
  602. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/encode-html.d.ts.map +1 -0
  603. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/encode-html.js +13 -0
  604. data/lib/readability_js/node/node_modules/entities/dist/commonjs/generated/encode-html.js.map +1 -0
  605. data/lib/readability_js/node/node_modules/entities/dist/commonjs/index.d.ts +96 -0
  606. data/lib/readability_js/node/node_modules/entities/dist/commonjs/index.d.ts.map +1 -0
  607. data/lib/readability_js/node/node_modules/entities/dist/commonjs/index.js +131 -0
  608. data/lib/readability_js/node/node_modules/entities/dist/commonjs/index.js.map +1 -0
  609. data/lib/readability_js/node/node_modules/entities/dist/commonjs/package.json +3 -0
  610. data/lib/readability_js/node/node_modules/entities/dist/esm/decode-codepoint.d.ts +19 -0
  611. data/lib/readability_js/node/node_modules/entities/dist/esm/decode-codepoint.d.ts.map +1 -0
  612. data/lib/readability_js/node/node_modules/entities/dist/esm/decode-codepoint.js +72 -0
  613. data/lib/readability_js/node/node_modules/entities/dist/esm/decode-codepoint.js.map +1 -0
  614. data/lib/readability_js/node/node_modules/entities/dist/esm/decode.d.ts +209 -0
  615. data/lib/readability_js/node/node_modules/entities/dist/esm/decode.d.ts.map +1 -0
  616. data/lib/readability_js/node/node_modules/entities/dist/esm/decode.js +497 -0
  617. data/lib/readability_js/node/node_modules/entities/dist/esm/decode.js.map +1 -0
  618. data/lib/readability_js/node/node_modules/entities/dist/esm/encode.d.ts +22 -0
  619. data/lib/readability_js/node/node_modules/entities/dist/esm/encode.d.ts.map +1 -0
  620. data/lib/readability_js/node/node_modules/entities/dist/esm/encode.js +69 -0
  621. data/lib/readability_js/node/node_modules/entities/dist/esm/encode.js.map +1 -0
  622. data/lib/readability_js/node/node_modules/entities/dist/esm/escape.d.ts +43 -0
  623. data/lib/readability_js/node/node_modules/entities/dist/esm/escape.d.ts.map +1 -0
  624. data/lib/readability_js/node/node_modules/entities/dist/esm/escape.js +117 -0
  625. data/lib/readability_js/node/node_modules/entities/dist/esm/escape.js.map +1 -0
  626. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-html.d.ts +2 -0
  627. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-html.d.ts.map +1 -0
  628. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-html.js +7 -0
  629. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-html.js.map +1 -0
  630. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts +2 -0
  631. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts.map +1 -0
  632. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-xml.js +7 -0
  633. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/decode-data-xml.js.map +1 -0
  634. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/encode-html.d.ts +8 -0
  635. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/encode-html.d.ts.map +1 -0
  636. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/encode-html.js +10 -0
  637. data/lib/readability_js/node/node_modules/entities/dist/esm/generated/encode-html.js.map +1 -0
  638. data/lib/readability_js/node/node_modules/entities/dist/esm/index.d.ts +96 -0
  639. data/lib/readability_js/node/node_modules/entities/dist/esm/index.d.ts.map +1 -0
  640. data/lib/readability_js/node/node_modules/entities/dist/esm/index.js +107 -0
  641. data/lib/readability_js/node/node_modules/entities/dist/esm/index.js.map +1 -0
  642. data/lib/readability_js/node/node_modules/entities/dist/esm/package.json +3 -0
  643. data/lib/readability_js/node/node_modules/entities/escape.d.ts +1 -0
  644. data/lib/readability_js/node/node_modules/entities/escape.js +3 -0
  645. data/lib/readability_js/node/node_modules/entities/package.json +118 -0
  646. data/lib/readability_js/node/node_modules/entities/readme.md +122 -0
  647. data/lib/readability_js/node/node_modules/entities/src/decode-codepoint.ts +81 -0
  648. data/lib/readability_js/node/node_modules/entities/src/decode.spec.ts +320 -0
  649. data/lib/readability_js/node/node_modules/entities/src/decode.ts +620 -0
  650. data/lib/readability_js/node/node_modules/entities/src/encode.spec.ts +78 -0
  651. data/lib/readability_js/node/node_modules/entities/src/encode.ts +77 -0
  652. data/lib/readability_js/node/node_modules/entities/src/escape.spec.ts +14 -0
  653. data/lib/readability_js/node/node_modules/entities/src/escape.ts +148 -0
  654. data/lib/readability_js/node/node_modules/entities/src/generated/.eslintrc.json +10 -0
  655. data/lib/readability_js/node/node_modules/entities/src/generated/decode-data-html.ts +8 -0
  656. data/lib/readability_js/node/node_modules/entities/src/generated/decode-data-xml.ts +8 -0
  657. data/lib/readability_js/node/node_modules/entities/src/generated/encode-html.ts +17 -0
  658. data/lib/readability_js/node/node_modules/entities/src/index.spec.ts +125 -0
  659. data/lib/readability_js/node/node_modules/entities/src/index.ts +188 -0
  660. data/lib/readability_js/node/node_modules/html-encoding-sniffer/LICENSE.txt +7 -0
  661. data/lib/readability_js/node/node_modules/html-encoding-sniffer/README.md +40 -0
  662. data/lib/readability_js/node/node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js +295 -0
  663. data/lib/readability_js/node/node_modules/html-encoding-sniffer/package.json +30 -0
  664. data/lib/readability_js/node/node_modules/http-proxy-agent/LICENSE +22 -0
  665. data/lib/readability_js/node/node_modules/http-proxy-agent/README.md +44 -0
  666. data/lib/readability_js/node/node_modules/http-proxy-agent/dist/index.d.ts +44 -0
  667. data/lib/readability_js/node/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -0
  668. data/lib/readability_js/node/node_modules/http-proxy-agent/dist/index.js +148 -0
  669. data/lib/readability_js/node/node_modules/http-proxy-agent/dist/index.js.map +1 -0
  670. data/lib/readability_js/node/node_modules/http-proxy-agent/package.json +47 -0
  671. data/lib/readability_js/node/node_modules/https-proxy-agent/LICENSE +22 -0
  672. data/lib/readability_js/node/node_modules/https-proxy-agent/README.md +70 -0
  673. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/index.d.ts +47 -0
  674. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -0
  675. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/index.js +180 -0
  676. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/index.js.map +1 -0
  677. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +15 -0
  678. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -0
  679. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/parse-proxy-response.js +101 -0
  680. data/lib/readability_js/node/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -0
  681. data/lib/readability_js/node/node_modules/https-proxy-agent/package.json +50 -0
  682. data/lib/readability_js/node/node_modules/iconv-lite/.github/dependabot.yml +11 -0
  683. data/lib/readability_js/node/node_modules/iconv-lite/.idea/codeStyles/Project.xml +47 -0
  684. data/lib/readability_js/node/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml +5 -0
  685. data/lib/readability_js/node/node_modules/iconv-lite/.idea/iconv-lite.iml +12 -0
  686. data/lib/readability_js/node/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml +6 -0
  687. data/lib/readability_js/node/node_modules/iconv-lite/.idea/modules.xml +8 -0
  688. data/lib/readability_js/node/node_modules/iconv-lite/.idea/vcs.xml +6 -0
  689. data/lib/readability_js/node/node_modules/iconv-lite/Changelog.md +212 -0
  690. data/lib/readability_js/node/node_modules/iconv-lite/LICENSE +21 -0
  691. data/lib/readability_js/node/node_modules/iconv-lite/README.md +130 -0
  692. data/lib/readability_js/node/node_modules/iconv-lite/encodings/dbcs-codec.js +597 -0
  693. data/lib/readability_js/node/node_modules/iconv-lite/encodings/dbcs-data.js +188 -0
  694. data/lib/readability_js/node/node_modules/iconv-lite/encodings/index.js +23 -0
  695. data/lib/readability_js/node/node_modules/iconv-lite/encodings/internal.js +198 -0
  696. data/lib/readability_js/node/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  697. data/lib/readability_js/node/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  698. data/lib/readability_js/node/node_modules/iconv-lite/encodings/sbcs-data.js +179 -0
  699. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  700. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  701. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  702. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  703. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  704. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  705. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  706. data/lib/readability_js/node/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  707. data/lib/readability_js/node/node_modules/iconv-lite/encodings/utf16.js +197 -0
  708. data/lib/readability_js/node/node_modules/iconv-lite/encodings/utf32.js +319 -0
  709. data/lib/readability_js/node/node_modules/iconv-lite/encodings/utf7.js +290 -0
  710. data/lib/readability_js/node/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  711. data/lib/readability_js/node/node_modules/iconv-lite/lib/index.d.ts +41 -0
  712. data/lib/readability_js/node/node_modules/iconv-lite/lib/index.js +180 -0
  713. data/lib/readability_js/node/node_modules/iconv-lite/lib/streams.js +109 -0
  714. data/lib/readability_js/node/node_modules/iconv-lite/package.json +44 -0
  715. data/lib/readability_js/node/node_modules/is-potential-custom-element-name/LICENSE-MIT.txt +20 -0
  716. data/lib/readability_js/node/node_modules/is-potential-custom-element-name/README.md +40 -0
  717. data/lib/readability_js/node/node_modules/is-potential-custom-element-name/index.js +9 -0
  718. data/lib/readability_js/node/node_modules/is-potential-custom-element-name/package.json +35 -0
  719. data/lib/readability_js/node/node_modules/jsdom/LICENSE.txt +22 -0
  720. data/lib/readability_js/node/node_modules/jsdom/README.md +551 -0
  721. data/lib/readability_js/node/node_modules/jsdom/lib/api.js +335 -0
  722. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/Window.js +1022 -0
  723. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css +415 -0
  724. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/js-globals.json +312 -0
  725. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +20 -0
  726. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/parser/html.js +208 -0
  727. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/parser/index.js +37 -0
  728. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/parser/xml.js +202 -0
  729. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js +114 -0
  730. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js +8 -0
  731. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js +98 -0
  732. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js +33 -0
  733. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js +142 -0
  734. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js +142 -0
  735. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/level2/style.js +57 -0
  736. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/level3/xpath.js +1875 -0
  737. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js +17 -0
  738. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js +131 -0
  739. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +60 -0
  740. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js +78 -0
  741. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/attributes.js +312 -0
  742. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +75 -0
  743. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js +66 -0
  744. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js +68 -0
  745. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js +38 -0
  746. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +279 -0
  747. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js +56 -0
  748. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventAcceleration-impl.js +7 -0
  749. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/deviceorientation/DeviceMotionEventRotationRate-impl.js +7 -0
  750. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/documents.js +15 -0
  751. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +59 -0
  752. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js +30 -0
  753. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js +18 -0
  754. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +63 -0
  755. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js +36 -0
  756. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/BeforeUnloadEvent-impl.js +12 -0
  757. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/BlobEvent-impl.js +14 -0
  758. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js +10 -0
  759. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js +20 -0
  760. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +21 -0
  761. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/DeviceMotionEvent-impl.js +49 -0
  762. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/DeviceOrientationEvent-impl.js +10 -0
  763. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +14 -0
  764. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +195 -0
  765. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js +24 -0
  766. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +438 -0
  767. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +9 -0
  768. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +14 -0
  769. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js +11 -0
  770. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +29 -0
  771. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +25 -0
  772. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +72 -0
  773. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js +20 -0
  774. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/PointerEvent-impl.js +21 -0
  775. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +9 -0
  776. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +14 -0
  777. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/PromiseRejectionEvent-impl.js +14 -0
  778. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js +26 -0
  779. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js +13 -0
  780. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +14 -0
  781. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/TransitionEvent-impl.js +10 -0
  782. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +43 -0
  783. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js +12 -0
  784. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js +172 -0
  785. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js +65 -0
  786. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js +103 -0
  787. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js +93 -0
  788. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js +12 -0
  789. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js +15 -0
  790. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js +130 -0
  791. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js +143 -0
  792. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js +249 -0
  793. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js +171 -0
  794. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +53 -0
  795. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js +28 -0
  796. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +217 -0
  797. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js +117 -0
  798. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BeforeUnloadEvent.js +139 -0
  799. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js +12 -0
  800. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Blob.js +211 -0
  801. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js +30 -0
  802. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BlobEvent.js +157 -0
  803. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BlobEventInit.js +43 -0
  804. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js +42 -0
  805. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js +109 -0
  806. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js +12 -0
  807. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +453 -0
  808. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js +168 -0
  809. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js +65 -0
  810. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +120 -0
  811. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js +219 -0
  812. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js +32 -0
  813. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js +148 -0
  814. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js +34 -0
  815. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js +267 -0
  816. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +206 -0
  817. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +32 -0
  818. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js +222 -0
  819. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +237 -0
  820. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +140 -0
  821. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js +276 -0
  822. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js +76 -0
  823. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js +285 -0
  824. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js +297 -0
  825. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js +537 -0
  826. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEvent.js +183 -0
  827. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAcceleration.js +145 -0
  828. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventAccelerationInit.js +61 -0
  829. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventInit.js +70 -0
  830. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRate.js +145 -0
  831. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceMotionEventRotationRateInit.js +61 -0
  832. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEvent.js +183 -0
  833. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DeviceOrientationEventInit.js +80 -0
  834. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Document.js +4509 -0
  835. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +334 -0
  836. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js +12 -0
  837. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +252 -0
  838. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Element.js +3718 -0
  839. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js +26 -0
  840. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js +29 -0
  841. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js +2150 -0
  842. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js +12 -0
  843. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +192 -0
  844. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +92 -0
  845. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Event.js +430 -0
  846. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js +36 -0
  847. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +58 -0
  848. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js +35 -0
  849. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +28 -0
  850. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +221 -0
  851. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +259 -0
  852. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/External.js +130 -0
  853. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/File.js +185 -0
  854. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FileList.js +298 -0
  855. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js +33 -0
  856. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js +468 -0
  857. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +144 -0
  858. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +36 -0
  859. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +468 -0
  860. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Function.js +42 -0
  861. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js +31 -0
  862. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +1023 -0
  863. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +822 -0
  864. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +110 -0
  865. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +153 -0
  866. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +193 -0
  867. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +877 -0
  868. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +522 -0
  869. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +304 -0
  870. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js +352 -0
  871. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +156 -0
  872. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +153 -0
  873. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +125 -0
  874. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js +156 -0
  875. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +156 -0
  876. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +156 -0
  877. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +153 -0
  878. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +3489 -0
  879. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +378 -0
  880. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +329 -0
  881. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +236 -0
  882. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js +318 -0
  883. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +658 -0
  884. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +510 -0
  885. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +708 -0
  886. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +320 -0
  887. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +110 -0
  888. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +153 -0
  889. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +153 -0
  890. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +686 -0
  891. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +902 -0
  892. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +1927 -0
  893. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +201 -0
  894. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +179 -0
  895. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +166 -0
  896. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +552 -0
  897. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +168 -0
  898. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js +554 -0
  899. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +898 -0
  900. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +156 -0
  901. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +276 -0
  902. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +365 -0
  903. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +214 -0
  904. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +281 -0
  905. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +941 -0
  906. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +197 -0
  907. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +376 -0
  908. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js +511 -0
  909. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +392 -0
  910. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +153 -0
  911. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +276 -0
  912. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js +110 -0
  913. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +160 -0
  914. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +228 -0
  915. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +173 -0
  916. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +469 -0
  917. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +989 -0
  918. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js +192 -0
  919. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +337 -0
  920. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +110 -0
  921. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +207 -0
  922. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +153 -0
  923. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +729 -0
  924. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +372 -0
  925. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +799 -0
  926. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +414 -0
  927. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +346 -0
  928. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +123 -0
  929. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +1206 -0
  930. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +153 -0
  931. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +152 -0
  932. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +363 -0
  933. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +197 -0
  934. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +109 -0
  935. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +340 -0
  936. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +157 -0
  937. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +50 -0
  938. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Headers.js +418 -0
  939. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/History.js +266 -0
  940. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js +168 -0
  941. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js +68 -0
  942. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +445 -0
  943. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +116 -0
  944. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Location.js +404 -0
  945. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +317 -0
  946. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +100 -0
  947. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js +156 -0
  948. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js +326 -0
  949. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +595 -0
  950. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +189 -0
  951. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js +34 -0
  952. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js +178 -0
  953. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js +121 -0
  954. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js +229 -0
  955. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js +527 -0
  956. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +326 -0
  957. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Node.js +763 -0
  958. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js +75 -0
  959. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js +207 -0
  960. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js +302 -0
  961. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js +42 -0
  962. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js +56 -0
  963. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js +144 -0
  964. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js +35 -0
  965. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Performance.js +142 -0
  966. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js +359 -0
  967. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js +336 -0
  968. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PointerEvent.js +324 -0
  969. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PointerEventInit.js +241 -0
  970. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +144 -0
  971. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +32 -0
  972. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +122 -0
  973. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +170 -0
  974. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +65 -0
  975. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PromiseRejectionEvent.js +157 -0
  976. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/PromiseRejectionEventInit.js +42 -0
  977. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js +296 -0
  978. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Range.js +641 -0
  979. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedPreserveAspectRatio.js +136 -0
  980. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedRect.js +136 -0
  981. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js +149 -0
  982. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js +64 -0
  983. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGDefsElement.js +109 -0
  984. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGDescElement.js +109 -0
  985. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js +3155 -0
  986. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGGElement.js +109 -0
  987. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js +139 -0
  988. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGMetadataElement.js +109 -0
  989. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js +132 -0
  990. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGPreserveAspectRatio.js +196 -0
  991. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGRect.js +210 -0
  992. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js +786 -0
  993. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js +511 -0
  994. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGSwitchElement.js +109 -0
  995. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGSymbolElement.js +146 -0
  996. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js +109 -0
  997. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Screen.js +180 -0
  998. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js +12 -0
  999. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +45 -0
  1000. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js +14 -0
  1001. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +30 -0
  1002. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js +12 -0
  1003. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Selection.js +569 -0
  1004. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js +12 -0
  1005. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js +187 -0
  1006. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js +30 -0
  1007. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js +12 -0
  1008. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js +123 -0
  1009. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js +72 -0
  1010. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Storage.js +397 -0
  1011. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js +318 -0
  1012. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js +99 -0
  1013. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js +300 -0
  1014. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js +144 -0
  1015. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js +36 -0
  1016. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js +18 -0
  1017. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/Text.js +170 -0
  1018. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js +12 -0
  1019. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +222 -0
  1020. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js +89 -0
  1021. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TransitionEvent.js +170 -0
  1022. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TransitionEventInit.js +65 -0
  1023. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +255 -0
  1024. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +235 -0
  1025. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +62 -0
  1026. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js +249 -0
  1027. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js +12 -0
  1028. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js +26 -0
  1029. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js +480 -0
  1030. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js +191 -0
  1031. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js +71 -0
  1032. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +109 -0
  1033. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js +663 -0
  1034. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js +334 -0
  1035. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js +14 -0
  1036. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js +109 -0
  1037. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js +132 -0
  1038. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/generated/utils.js +252 -0
  1039. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js +39 -0
  1040. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js +72 -0
  1041. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js +13 -0
  1042. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js +9 -0
  1043. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/colors.js +245 -0
  1044. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js +329 -0
  1045. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js +188 -0
  1046. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js +272 -0
  1047. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js +270 -0
  1048. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/details.js +15 -0
  1049. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/events.js +24 -0
  1050. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +104 -0
  1051. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +309 -0
  1052. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js +78 -0
  1053. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js +266 -0
  1054. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +12 -0
  1055. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/is-window.js +18 -0
  1056. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js +48 -0
  1057. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/json.js +12 -0
  1058. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js +198 -0
  1059. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js +16 -0
  1060. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/node.js +68 -0
  1061. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js +195 -0
  1062. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js +104 -0
  1063. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js +9 -0
  1064. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +75 -0
  1065. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js +285 -0
  1066. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/strings.js +162 -0
  1067. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js +319 -0
  1068. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +129 -0
  1069. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js +41 -0
  1070. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js +46 -0
  1071. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/system-colors.js +147 -0
  1072. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/text.js +19 -0
  1073. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +72 -0
  1074. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +65 -0
  1075. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js +22 -0
  1076. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/interfaces.js +249 -0
  1077. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +95 -0
  1078. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +37 -0
  1079. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js +3 -0
  1080. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js +21 -0
  1081. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +29 -0
  1082. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +8 -0
  1083. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +7 -0
  1084. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +37 -0
  1085. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +9 -0
  1086. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +7 -0
  1087. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +8 -0
  1088. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js +3 -0
  1089. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js +23 -0
  1090. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/node-document-position.js +10 -0
  1091. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/node-type.js +16 -0
  1092. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/node.js +331 -0
  1093. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js +16 -0
  1094. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +118 -0
  1095. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +80 -0
  1096. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +20 -0
  1097. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +120 -0
  1098. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js +64 -0
  1099. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js +171 -0
  1100. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +1014 -0
  1101. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +44 -0
  1102. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +28 -0
  1103. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +24 -0
  1104. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +608 -0
  1105. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +22 -0
  1106. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +7 -0
  1107. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +157 -0
  1108. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +50 -0
  1109. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +43 -0
  1110. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +9 -0
  1111. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +9 -0
  1112. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +44 -0
  1113. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +17 -0
  1114. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +79 -0
  1115. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +136 -0
  1116. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js +96 -0
  1117. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +9 -0
  1118. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +9 -0
  1119. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +20 -0
  1120. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +35 -0
  1121. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +9 -0
  1122. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +9 -0
  1123. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +9 -0
  1124. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +211 -0
  1125. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +8 -0
  1126. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +43 -0
  1127. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +9 -0
  1128. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js +33 -0
  1129. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +248 -0
  1130. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +266 -0
  1131. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +17 -0
  1132. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +9 -0
  1133. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +9 -0
  1134. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +9 -0
  1135. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +9 -0
  1136. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +366 -0
  1137. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +9 -0
  1138. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +131 -0
  1139. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +1097 -0
  1140. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +9 -0
  1141. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +94 -0
  1142. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +18 -0
  1143. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +107 -0
  1144. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +13 -0
  1145. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +9 -0
  1146. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +138 -0
  1147. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +9 -0
  1148. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +9 -0
  1149. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +180 -0
  1150. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +9 -0
  1151. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +22 -0
  1152. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +26 -0
  1153. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +9 -0
  1154. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +146 -0
  1155. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +110 -0
  1156. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +88 -0
  1157. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +88 -0
  1158. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +9 -0
  1159. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +9 -0
  1160. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +9 -0
  1161. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +9 -0
  1162. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +72 -0
  1163. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +9 -0
  1164. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +261 -0
  1165. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +283 -0
  1166. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +59 -0
  1167. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +8 -0
  1168. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +9 -0
  1169. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +73 -0
  1170. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +9 -0
  1171. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +73 -0
  1172. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +9 -0
  1173. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +236 -0
  1174. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +88 -0
  1175. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +61 -0
  1176. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +67 -0
  1177. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +244 -0
  1178. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +9 -0
  1179. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +18 -0
  1180. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +13 -0
  1181. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +9 -0
  1182. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +9 -0
  1183. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +17 -0
  1184. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +2 -0
  1185. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +1160 -0
  1186. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js +43 -0
  1187. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +28 -0
  1188. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +11 -0
  1189. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +90 -0
  1190. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +22 -0
  1191. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js +49 -0
  1192. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGDefsElement-impl.js +9 -0
  1193. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGDescElement-impl.js +9 -0
  1194. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js +64 -0
  1195. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGGElement-impl.js +9 -0
  1196. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +16 -0
  1197. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGMetadataElement-impl.js +9 -0
  1198. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js +47 -0
  1199. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGSwitchElement-impl.js +9 -0
  1200. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGSymbolElement-impl.js +9 -0
  1201. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js +42 -0
  1202. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js +9 -0
  1203. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js +41 -0
  1204. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js +48 -0
  1205. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +96 -0
  1206. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +52 -0
  1207. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +4 -0
  1208. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js +43 -0
  1209. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js +897 -0
  1210. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js +39 -0
  1211. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js +47 -0
  1212. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js +358 -0
  1213. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js +24 -0
  1214. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedRect-impl.js +122 -0
  1215. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js +42 -0
  1216. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js +195 -0
  1217. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js +48 -0
  1218. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js +100 -0
  1219. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGRect-impl.js +143 -0
  1220. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js +16 -0
  1221. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js +107 -0
  1222. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +217 -0
  1223. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js +44 -0
  1224. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js +46 -0
  1225. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js +328 -0
  1226. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js +102 -0
  1227. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js +10 -0
  1228. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/External-impl.js +9 -0
  1229. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +148 -0
  1230. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +227 -0
  1231. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js +13 -0
  1232. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js +163 -0
  1233. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window/navigation.js +85 -0
  1234. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/window-properties.js +241 -0
  1235. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +191 -0
  1236. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +1005 -0
  1237. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +17 -0
  1238. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +4 -0
  1239. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/multipart-form-data.js +105 -0
  1240. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js +59 -0
  1241. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js +410 -0
  1242. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/utils.js +105 -0
  1243. data/lib/readability_js/node/node_modules/jsdom/lib/jsdom/virtual-console.js +46 -0
  1244. data/lib/readability_js/node/node_modules/jsdom/package.json +93 -0
  1245. data/lib/readability_js/node/node_modules/lru-cache/LICENSE +15 -0
  1246. data/lib/readability_js/node/node_modules/lru-cache/README.md +338 -0
  1247. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.d.ts +1322 -0
  1248. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
  1249. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.js +1568 -0
  1250. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
  1251. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
  1252. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
  1253. data/lib/readability_js/node/node_modules/lru-cache/dist/commonjs/package.json +3 -0
  1254. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.d.ts +1322 -0
  1255. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
  1256. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.js +1564 -0
  1257. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.js.map +1 -0
  1258. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.min.js +2 -0
  1259. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
  1260. data/lib/readability_js/node/node_modules/lru-cache/dist/esm/package.json +3 -0
  1261. data/lib/readability_js/node/node_modules/lru-cache/package.json +113 -0
  1262. data/lib/readability_js/node/node_modules/mdn-data/LICENSE +116 -0
  1263. data/lib/readability_js/node/node_modules/mdn-data/README.md +59 -0
  1264. data/lib/readability_js/node/node_modules/mdn-data/api/index.js +3 -0
  1265. data/lib/readability_js/node/node_modules/mdn-data/api/inheritance.json +2681 -0
  1266. data/lib/readability_js/node/node_modules/mdn-data/api/inheritance.schema.json +31 -0
  1267. data/lib/readability_js/node/node_modules/mdn-data/css/at-rules.json +504 -0
  1268. data/lib/readability_js/node/node_modules/mdn-data/css/at-rules.schema.json +131 -0
  1269. data/lib/readability_js/node/node_modules/mdn-data/css/definitions.json +80 -0
  1270. data/lib/readability_js/node/node_modules/mdn-data/css/functions.json +593 -0
  1271. data/lib/readability_js/node/node_modules/mdn-data/css/functions.schema.json +45 -0
  1272. data/lib/readability_js/node/node_modules/mdn-data/css/index.js +9 -0
  1273. data/lib/readability_js/node/node_modules/mdn-data/css/properties.json +10806 -0
  1274. data/lib/readability_js/node/node_modules/mdn-data/css/properties.schema.json +449 -0
  1275. data/lib/readability_js/node/node_modules/mdn-data/css/selectors.json +1071 -0
  1276. data/lib/readability_js/node/node_modules/mdn-data/css/selectors.schema.json +36 -0
  1277. data/lib/readability_js/node/node_modules/mdn-data/css/syntaxes.json +899 -0
  1278. data/lib/readability_js/node/node_modules/mdn-data/css/syntaxes.schema.json +15 -0
  1279. data/lib/readability_js/node/node_modules/mdn-data/css/types.json +287 -0
  1280. data/lib/readability_js/node/node_modules/mdn-data/css/types.schema.json +32 -0
  1281. data/lib/readability_js/node/node_modules/mdn-data/css/units.json +213 -0
  1282. data/lib/readability_js/node/node_modules/mdn-data/css/units.schema.json +28 -0
  1283. data/lib/readability_js/node/node_modules/mdn-data/index.js +5 -0
  1284. data/lib/readability_js/node/node_modules/mdn-data/l10n/css.json +1876 -0
  1285. data/lib/readability_js/node/node_modules/mdn-data/l10n/index.js +3 -0
  1286. data/lib/readability_js/node/node_modules/mdn-data/package.json +38 -0
  1287. data/lib/readability_js/node/node_modules/ms/index.js +162 -0
  1288. data/lib/readability_js/node/node_modules/ms/license.md +21 -0
  1289. data/lib/readability_js/node/node_modules/ms/package.json +38 -0
  1290. data/lib/readability_js/node/node_modules/ms/readme.md +59 -0
  1291. data/lib/readability_js/node/node_modules/parse5/LICENSE +19 -0
  1292. data/lib/readability_js/node/node_modules/parse5/README.md +38 -0
  1293. data/lib/readability_js/node/node_modules/parse5/dist/common/doctype.d.ts +4 -0
  1294. data/lib/readability_js/node/node_modules/parse5/dist/common/doctype.js +114 -0
  1295. data/lib/readability_js/node/node_modules/parse5/dist/common/error-codes.d.ts +67 -0
  1296. data/lib/readability_js/node/node_modules/parse5/dist/common/error-codes.js +63 -0
  1297. data/lib/readability_js/node/node_modules/parse5/dist/common/foreign-content.d.ts +9 -0
  1298. data/lib/readability_js/node/node_modules/parse5/dist/common/foreign-content.js +228 -0
  1299. data/lib/readability_js/node/node_modules/parse5/dist/common/html.d.ts +289 -0
  1300. data/lib/readability_js/node/node_modules/parse5/dist/common/html.js +523 -0
  1301. data/lib/readability_js/node/node_modules/parse5/dist/common/token.d.ts +84 -0
  1302. data/lib/readability_js/node/node_modules/parse5/dist/common/token.js +20 -0
  1303. data/lib/readability_js/node/node_modules/parse5/dist/common/unicode.d.ts +42 -0
  1304. data/lib/readability_js/node/node_modules/parse5/dist/common/unicode.js +62 -0
  1305. data/lib/readability_js/node/node_modules/parse5/dist/index.d.ts +71 -0
  1306. data/lib/readability_js/node/node_modules/parse5/dist/index.js +42 -0
  1307. data/lib/readability_js/node/node_modules/parse5/dist/parser/formatting-element-list.d.ts +36 -0
  1308. data/lib/readability_js/node/node_modules/parse5/dist/parser/formatting-element-list.js +110 -0
  1309. data/lib/readability_js/node/node_modules/parse5/dist/parser/index.d.ts +221 -0
  1310. data/lib/readability_js/node/node_modules/parse5/dist/parser/index.js +3245 -0
  1311. data/lib/readability_js/node/node_modules/parse5/dist/parser/open-element-stack.d.ts +53 -0
  1312. data/lib/readability_js/node/node_modules/parse5/dist/parser/open-element-stack.js +324 -0
  1313. data/lib/readability_js/node/node_modules/parse5/dist/serializer/index.d.ts +60 -0
  1314. data/lib/readability_js/node/node_modules/parse5/dist/serializer/index.js +168 -0
  1315. data/lib/readability_js/node/node_modules/parse5/dist/tokenizer/index.d.ts +247 -0
  1316. data/lib/readability_js/node/node_modules/parse5/dist/tokenizer/index.js +2710 -0
  1317. data/lib/readability_js/node/node_modules/parse5/dist/tokenizer/preprocessor.d.ts +36 -0
  1318. data/lib/readability_js/node/node_modules/parse5/dist/tokenizer/preprocessor.js +196 -0
  1319. data/lib/readability_js/node/node_modules/parse5/dist/tree-adapters/default.d.ts +84 -0
  1320. data/lib/readability_js/node/node_modules/parse5/dist/tree-adapters/default.js +173 -0
  1321. data/lib/readability_js/node/node_modules/parse5/dist/tree-adapters/interface.d.ts +255 -0
  1322. data/lib/readability_js/node/node_modules/parse5/dist/tree-adapters/interface.js +1 -0
  1323. data/lib/readability_js/node/node_modules/parse5/package.json +48 -0
  1324. data/lib/readability_js/node/node_modules/punycode/LICENSE-MIT.txt +20 -0
  1325. data/lib/readability_js/node/node_modules/punycode/README.md +148 -0
  1326. data/lib/readability_js/node/node_modules/punycode/package.json +58 -0
  1327. data/lib/readability_js/node/node_modules/punycode/punycode.es6.js +444 -0
  1328. data/lib/readability_js/node/node_modules/punycode/punycode.js +443 -0
  1329. data/lib/readability_js/node/node_modules/require-from-string/index.js +34 -0
  1330. data/lib/readability_js/node/node_modules/require-from-string/license +21 -0
  1331. data/lib/readability_js/node/node_modules/require-from-string/package.json +28 -0
  1332. data/lib/readability_js/node/node_modules/require-from-string/readme.md +56 -0
  1333. data/lib/readability_js/node/node_modules/rrweb-cssom/LICENSE.txt +20 -0
  1334. data/lib/readability_js/node/node_modules/rrweb-cssom/README.mdown +74 -0
  1335. data/lib/readability_js/node/node_modules/rrweb-cssom/build/CSSOM.js +1995 -0
  1336. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSConditionRule.js +25 -0
  1337. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSContainerRule.js +50 -0
  1338. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSDocumentRule.js +39 -0
  1339. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSFontFaceRule.js +36 -0
  1340. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSGroupingRule.js +69 -0
  1341. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSHostRule.js +37 -0
  1342. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSImportRule.js +132 -0
  1343. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSKeyframeRule.js +37 -0
  1344. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSKeyframesRule.js +39 -0
  1345. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSLayerBlockRule.js +48 -0
  1346. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSMediaRule.js +53 -0
  1347. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSOM.js +3 -0
  1348. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSRule.js +42 -0
  1349. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSStartingStyleRule.js +37 -0
  1350. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSStyleDeclaration.js +148 -0
  1351. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSStyleRule.js +190 -0
  1352. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSStyleSheet.js +88 -0
  1353. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSSupportsRule.js +36 -0
  1354. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSValue.js +43 -0
  1355. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/CSSValueExpression.js +344 -0
  1356. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/MatcherList.js +62 -0
  1357. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/MediaList.js +61 -0
  1358. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/StyleSheet.js +17 -0
  1359. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/clone.js +80 -0
  1360. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/index.js +26 -0
  1361. data/lib/readability_js/node/node_modules/rrweb-cssom/lib/parse.js +525 -0
  1362. data/lib/readability_js/node/node_modules/rrweb-cssom/package.json +27 -0
  1363. data/lib/readability_js/node/node_modules/safer-buffer/LICENSE +21 -0
  1364. data/lib/readability_js/node/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  1365. data/lib/readability_js/node/node_modules/safer-buffer/Readme.md +156 -0
  1366. data/lib/readability_js/node/node_modules/safer-buffer/dangerous.js +58 -0
  1367. data/lib/readability_js/node/node_modules/safer-buffer/package.json +34 -0
  1368. data/lib/readability_js/node/node_modules/safer-buffer/safer.js +77 -0
  1369. data/lib/readability_js/node/node_modules/safer-buffer/tests.js +406 -0
  1370. data/lib/readability_js/node/node_modules/saxes/README.md +323 -0
  1371. data/lib/readability_js/node/node_modules/saxes/package.json +71 -0
  1372. data/lib/readability_js/node/node_modules/saxes/saxes.d.ts +635 -0
  1373. data/lib/readability_js/node/node_modules/saxes/saxes.js +2053 -0
  1374. data/lib/readability_js/node/node_modules/saxes/saxes.js.map +1 -0
  1375. data/lib/readability_js/node/node_modules/source-map-js/LICENSE +28 -0
  1376. data/lib/readability_js/node/node_modules/source-map-js/README.md +765 -0
  1377. data/lib/readability_js/node/node_modules/source-map-js/lib/array-set.js +121 -0
  1378. data/lib/readability_js/node/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  1379. data/lib/readability_js/node/node_modules/source-map-js/lib/base64.js +67 -0
  1380. data/lib/readability_js/node/node_modules/source-map-js/lib/binary-search.js +111 -0
  1381. data/lib/readability_js/node/node_modules/source-map-js/lib/mapping-list.js +79 -0
  1382. data/lib/readability_js/node/node_modules/source-map-js/lib/quick-sort.js +132 -0
  1383. data/lib/readability_js/node/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
  1384. data/lib/readability_js/node/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  1385. data/lib/readability_js/node/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
  1386. data/lib/readability_js/node/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  1387. data/lib/readability_js/node/node_modules/source-map-js/lib/source-node.d.ts +1 -0
  1388. data/lib/readability_js/node/node_modules/source-map-js/lib/source-node.js +413 -0
  1389. data/lib/readability_js/node/node_modules/source-map-js/lib/util.js +594 -0
  1390. data/lib/readability_js/node/node_modules/source-map-js/package.json +71 -0
  1391. data/lib/readability_js/node/node_modules/source-map-js/source-map.d.ts +104 -0
  1392. data/lib/readability_js/node/node_modules/source-map-js/source-map.js +8 -0
  1393. data/lib/readability_js/node/node_modules/symbol-tree/LICENSE +21 -0
  1394. data/lib/readability_js/node/node_modules/symbol-tree/README.md +545 -0
  1395. data/lib/readability_js/node/node_modules/symbol-tree/lib/SymbolTree.js +838 -0
  1396. data/lib/readability_js/node/node_modules/symbol-tree/lib/SymbolTreeNode.js +54 -0
  1397. data/lib/readability_js/node/node_modules/symbol-tree/lib/TreeIterator.js +69 -0
  1398. data/lib/readability_js/node/node_modules/symbol-tree/lib/TreePosition.js +11 -0
  1399. data/lib/readability_js/node/node_modules/symbol-tree/package.json +47 -0
  1400. data/lib/readability_js/node/node_modules/tldts/LICENSE +13 -0
  1401. data/lib/readability_js/node/node_modules/tldts/README.md +327 -0
  1402. data/lib/readability_js/node/node_modules/tldts/bin/cli.js +21 -0
  1403. data/lib/readability_js/node/node_modules/tldts/dist/cjs/index.js +669 -0
  1404. data/lib/readability_js/node/node_modules/tldts/dist/cjs/index.js.map +1 -0
  1405. data/lib/readability_js/node/node_modules/tldts/dist/cjs/src/data/trie.js +14 -0
  1406. data/lib/readability_js/node/node_modules/tldts/dist/cjs/src/data/trie.js.map +1 -0
  1407. data/lib/readability_js/node/node_modules/tldts/dist/cjs/src/suffix-trie.js +67 -0
  1408. data/lib/readability_js/node/node_modules/tldts/dist/cjs/src/suffix-trie.js.map +1 -0
  1409. data/lib/readability_js/node/node_modules/tldts/dist/cjs/tsconfig.tsbuildinfo +1 -0
  1410. data/lib/readability_js/node/node_modules/tldts/dist/es6/index.js +33 -0
  1411. data/lib/readability_js/node/node_modules/tldts/dist/es6/index.js.map +1 -0
  1412. data/lib/readability_js/node/node_modules/tldts/dist/es6/src/data/trie.js +11 -0
  1413. data/lib/readability_js/node/node_modules/tldts/dist/es6/src/data/trie.js.map +1 -0
  1414. data/lib/readability_js/node/node_modules/tldts/dist/es6/src/suffix-trie.js +64 -0
  1415. data/lib/readability_js/node/node_modules/tldts/dist/es6/src/suffix-trie.js.map +1 -0
  1416. data/lib/readability_js/node/node_modules/tldts/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  1417. data/lib/readability_js/node/node_modules/tldts/dist/index.cjs.min.js +2 -0
  1418. data/lib/readability_js/node/node_modules/tldts/dist/index.cjs.min.js.map +1 -0
  1419. data/lib/readability_js/node/node_modules/tldts/dist/index.esm.min.js +2 -0
  1420. data/lib/readability_js/node/node_modules/tldts/dist/index.esm.min.js.map +1 -0
  1421. data/lib/readability_js/node/node_modules/tldts/dist/index.umd.min.js +2 -0
  1422. data/lib/readability_js/node/node_modules/tldts/dist/index.umd.min.js.map +1 -0
  1423. data/lib/readability_js/node/node_modules/tldts/dist/types/index.d.ts +7 -0
  1424. data/lib/readability_js/node/node_modules/tldts/dist/types/src/data/trie.d.ts +5 -0
  1425. data/lib/readability_js/node/node_modules/tldts/dist/types/src/suffix-trie.d.ts +5 -0
  1426. data/lib/readability_js/node/node_modules/tldts/index.ts +62 -0
  1427. data/lib/readability_js/node/node_modules/tldts/package.json +91 -0
  1428. data/lib/readability_js/node/node_modules/tldts/src/data/trie.ts +14 -0
  1429. data/lib/readability_js/node/node_modules/tldts/src/suffix-trie.ts +110 -0
  1430. data/lib/readability_js/node/node_modules/tldts-core/LICENSE +13 -0
  1431. data/lib/readability_js/node/node_modules/tldts-core/README.md +3 -0
  1432. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/index.js +564 -0
  1433. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/index.js.map +1 -0
  1434. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js +15 -0
  1435. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js.map +1 -0
  1436. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/domain.js +83 -0
  1437. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/domain.js.map +1 -0
  1438. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/extract-hostname.js +149 -0
  1439. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/extract-hostname.js.map +1 -0
  1440. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/factory.js +107 -0
  1441. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/factory.js.map +1 -0
  1442. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/is-ip.js +72 -0
  1443. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/is-ip.js.map +1 -0
  1444. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/is-valid.js +69 -0
  1445. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/is-valid.js.map +1 -0
  1446. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js +69 -0
  1447. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js.map +1 -0
  1448. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/lookup/interface.js +3 -0
  1449. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/lookup/interface.js.map +1 -0
  1450. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/options.js +22 -0
  1451. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/options.js.map +1 -0
  1452. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/subdomain.js +14 -0
  1453. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/src/subdomain.js.map +1 -0
  1454. data/lib/readability_js/node/node_modules/tldts-core/dist/cjs/tsconfig.tsbuildinfo +1 -0
  1455. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/index.js +4 -0
  1456. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/index.js.map +1 -0
  1457. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js +12 -0
  1458. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js.map +1 -0
  1459. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/domain.js +80 -0
  1460. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/domain.js.map +1 -0
  1461. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/extract-hostname.js +146 -0
  1462. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/extract-hostname.js.map +1 -0
  1463. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/factory.js +102 -0
  1464. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/factory.js.map +1 -0
  1465. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/is-ip.js +69 -0
  1466. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/is-ip.js.map +1 -0
  1467. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/is-valid.js +66 -0
  1468. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/is-valid.js.map +1 -0
  1469. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js +66 -0
  1470. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js.map +1 -0
  1471. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/lookup/interface.js +2 -0
  1472. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/lookup/interface.js.map +1 -0
  1473. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/options.js +19 -0
  1474. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/options.js.map +1 -0
  1475. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/subdomain.js +11 -0
  1476. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/src/subdomain.js.map +1 -0
  1477. data/lib/readability_js/node/node_modules/tldts-core/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  1478. data/lib/readability_js/node/node_modules/tldts-core/dist/types/index.d.ts +4 -0
  1479. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/domain-without-suffix.d.ts +6 -0
  1480. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/domain.d.ts +5 -0
  1481. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/extract-hostname.d.ts +5 -0
  1482. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/factory.d.ts +28 -0
  1483. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/is-ip.d.ts +6 -0
  1484. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/is-valid.d.ts +15 -0
  1485. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/lookup/fast-path.d.ts +2 -0
  1486. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/lookup/interface.d.ts +9 -0
  1487. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/options.d.ts +10 -0
  1488. data/lib/readability_js/node/node_modules/tldts-core/dist/types/src/subdomain.d.ts +4 -0
  1489. data/lib/readability_js/node/node_modules/tldts-core/index.ts +10 -0
  1490. data/lib/readability_js/node/node_modules/tldts-core/package.json +68 -0
  1491. data/lib/readability_js/node/node_modules/tldts-core/src/domain-without-suffix.ts +14 -0
  1492. data/lib/readability_js/node/node_modules/tldts-core/src/domain.ts +100 -0
  1493. data/lib/readability_js/node/node_modules/tldts-core/src/extract-hostname.ts +170 -0
  1494. data/lib/readability_js/node/node_modules/tldts-core/src/factory.ts +163 -0
  1495. data/lib/readability_js/node/node_modules/tldts-core/src/is-ip.ts +87 -0
  1496. data/lib/readability_js/node/node_modules/tldts-core/src/is-valid.ts +79 -0
  1497. data/lib/readability_js/node/node_modules/tldts-core/src/lookup/fast-path.ts +80 -0
  1498. data/lib/readability_js/node/node_modules/tldts-core/src/lookup/interface.ts +10 -0
  1499. data/lib/readability_js/node/node_modules/tldts-core/src/options.ts +39 -0
  1500. data/lib/readability_js/node/node_modules/tldts-core/src/subdomain.ts +11 -0
  1501. data/lib/readability_js/node/node_modules/tough-cookie/LICENSE +12 -0
  1502. data/lib/readability_js/node/node_modules/tough-cookie/README.md +195 -0
  1503. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.cjs +2313 -0
  1504. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.cjs.map +1 -0
  1505. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.d.cts +1879 -0
  1506. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.d.ts +1879 -0
  1507. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.js +2268 -0
  1508. data/lib/readability_js/node/node_modules/tough-cookie/dist/index.js.map +1 -0
  1509. data/lib/readability_js/node/node_modules/tough-cookie/node_modules/.bin/tldts +1 -0
  1510. data/lib/readability_js/node/node_modules/tough-cookie/package.json +149 -0
  1511. data/lib/readability_js/node/node_modules/tr46/LICENSE.md +21 -0
  1512. data/lib/readability_js/node/node_modules/tr46/README.md +76 -0
  1513. data/lib/readability_js/node/node_modules/tr46/index.js +344 -0
  1514. data/lib/readability_js/node/node_modules/tr46/lib/mappingTable.json +1 -0
  1515. data/lib/readability_js/node/node_modules/tr46/lib/regexes.js +29 -0
  1516. data/lib/readability_js/node/node_modules/tr46/lib/statusMapping.js +9 -0
  1517. data/lib/readability_js/node/node_modules/tr46/package.json +47 -0
  1518. data/lib/readability_js/node/node_modules/w3c-xmlserializer/LICENSE.md +25 -0
  1519. data/lib/readability_js/node/node_modules/w3c-xmlserializer/README.md +41 -0
  1520. data/lib/readability_js/node/node_modules/w3c-xmlserializer/lib/attributes.js +125 -0
  1521. data/lib/readability_js/node/node_modules/w3c-xmlserializer/lib/constants.js +44 -0
  1522. data/lib/readability_js/node/node_modules/w3c-xmlserializer/lib/serialize.js +365 -0
  1523. data/lib/readability_js/node/node_modules/w3c-xmlserializer/package.json +32 -0
  1524. data/lib/readability_js/node/node_modules/webidl-conversions/LICENSE.md +12 -0
  1525. data/lib/readability_js/node/node_modules/webidl-conversions/README.md +99 -0
  1526. data/lib/readability_js/node/node_modules/webidl-conversions/lib/index.js +462 -0
  1527. data/lib/readability_js/node/node_modules/webidl-conversions/package.json +34 -0
  1528. data/lib/readability_js/node/node_modules/whatwg-encoding/LICENSE.txt +7 -0
  1529. data/lib/readability_js/node/node_modules/whatwg-encoding/README.md +50 -0
  1530. data/lib/readability_js/node/node_modules/whatwg-encoding/lib/labels-to-names.json +217 -0
  1531. data/lib/readability_js/node/node_modules/whatwg-encoding/lib/supported-names.json +38 -0
  1532. data/lib/readability_js/node/node_modules/whatwg-encoding/lib/whatwg-encoding.js +60 -0
  1533. data/lib/readability_js/node/node_modules/whatwg-encoding/package.json +32 -0
  1534. data/lib/readability_js/node/node_modules/whatwg-mimetype/LICENSE.txt +7 -0
  1535. data/lib/readability_js/node/node_modules/whatwg-mimetype/README.md +101 -0
  1536. data/lib/readability_js/node/node_modules/whatwg-mimetype/lib/mime-type-parameters.js +70 -0
  1537. data/lib/readability_js/node/node_modules/whatwg-mimetype/lib/mime-type.js +127 -0
  1538. data/lib/readability_js/node/node_modules/whatwg-mimetype/lib/parser.js +105 -0
  1539. data/lib/readability_js/node/node_modules/whatwg-mimetype/lib/serializer.js +25 -0
  1540. data/lib/readability_js/node/node_modules/whatwg-mimetype/lib/utils.js +60 -0
  1541. data/lib/readability_js/node/node_modules/whatwg-mimetype/package.json +45 -0
  1542. data/lib/readability_js/node/node_modules/whatwg-url/LICENSE.txt +21 -0
  1543. data/lib/readability_js/node/node_modules/whatwg-url/README.md +106 -0
  1544. data/lib/readability_js/node/node_modules/whatwg-url/index.js +27 -0
  1545. data/lib/readability_js/node/node_modules/whatwg-url/lib/Function.js +42 -0
  1546. data/lib/readability_js/node/node_modules/whatwg-url/lib/URL-impl.js +233 -0
  1547. data/lib/readability_js/node/node_modules/whatwg-url/lib/URL.js +499 -0
  1548. data/lib/readability_js/node/node_modules/whatwg-url/lib/URLSearchParams-impl.js +135 -0
  1549. data/lib/readability_js/node/node_modules/whatwg-url/lib/URLSearchParams.js +505 -0
  1550. data/lib/readability_js/node/node_modules/whatwg-url/lib/VoidFunction.js +26 -0
  1551. data/lib/readability_js/node/node_modules/whatwg-url/lib/encoding.js +16 -0
  1552. data/lib/readability_js/node/node_modules/whatwg-url/lib/infra.js +26 -0
  1553. data/lib/readability_js/node/node_modules/whatwg-url/lib/percent-encoding.js +142 -0
  1554. data/lib/readability_js/node/node_modules/whatwg-url/lib/url-state-machine.js +1277 -0
  1555. data/lib/readability_js/node/node_modules/whatwg-url/lib/urlencoded.js +89 -0
  1556. data/lib/readability_js/node/node_modules/whatwg-url/lib/utils.js +240 -0
  1557. data/lib/readability_js/node/node_modules/whatwg-url/package.json +56 -0
  1558. data/lib/readability_js/node/node_modules/whatwg-url/webidl2js-wrapper.js +7 -0
  1559. data/lib/readability_js/node/node_modules/ws/LICENSE +20 -0
  1560. data/lib/readability_js/node/node_modules/ws/README.md +548 -0
  1561. data/lib/readability_js/node/node_modules/ws/browser.js +8 -0
  1562. data/lib/readability_js/node/node_modules/ws/index.js +13 -0
  1563. data/lib/readability_js/node/node_modules/ws/lib/buffer-util.js +131 -0
  1564. data/lib/readability_js/node/node_modules/ws/lib/constants.js +18 -0
  1565. data/lib/readability_js/node/node_modules/ws/lib/event-target.js +292 -0
  1566. data/lib/readability_js/node/node_modules/ws/lib/extension.js +203 -0
  1567. data/lib/readability_js/node/node_modules/ws/lib/limiter.js +55 -0
  1568. data/lib/readability_js/node/node_modules/ws/lib/permessage-deflate.js +528 -0
  1569. data/lib/readability_js/node/node_modules/ws/lib/receiver.js +706 -0
  1570. data/lib/readability_js/node/node_modules/ws/lib/sender.js +602 -0
  1571. data/lib/readability_js/node/node_modules/ws/lib/stream.js +161 -0
  1572. data/lib/readability_js/node/node_modules/ws/lib/subprotocol.js +62 -0
  1573. data/lib/readability_js/node/node_modules/ws/lib/validation.js +152 -0
  1574. data/lib/readability_js/node/node_modules/ws/lib/websocket-server.js +550 -0
  1575. data/lib/readability_js/node/node_modules/ws/lib/websocket.js +1388 -0
  1576. data/lib/readability_js/node/node_modules/ws/package.json +69 -0
  1577. data/lib/readability_js/node/node_modules/ws/wrapper.mjs +8 -0
  1578. data/lib/readability_js/node/node_modules/xml-name-validator/LICENSE.txt +176 -0
  1579. data/lib/readability_js/node/node_modules/xml-name-validator/README.md +35 -0
  1580. data/lib/readability_js/node/node_modules/xml-name-validator/lib/xml-name-validator.js +9 -0
  1581. data/lib/readability_js/node/node_modules/xml-name-validator/package.json +30 -0
  1582. data/lib/readability_js/node/node_modules/xmlchars/LICENSE +18 -0
  1583. data/lib/readability_js/node/node_modules/xmlchars/README.md +33 -0
  1584. data/lib/readability_js/node/node_modules/xmlchars/package.json +51 -0
  1585. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed4.d.ts +31 -0
  1586. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed4.js +44 -0
  1587. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed4.js.map +1 -0
  1588. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed5.d.ts +51 -0
  1589. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed5.js +105 -0
  1590. data/lib/readability_js/node/node_modules/xmlchars/xml/1.0/ed5.js.map +1 -0
  1591. data/lib/readability_js/node/node_modules/xmlchars/xml/1.1/ed2.d.ts +73 -0
  1592. data/lib/readability_js/node/node_modules/xmlchars/xml/1.1/ed2.js +145 -0
  1593. data/lib/readability_js/node/node_modules/xmlchars/xml/1.1/ed2.js.map +1 -0
  1594. data/lib/readability_js/node/node_modules/xmlchars/xmlchars.d.ts +170 -0
  1595. data/lib/readability_js/node/node_modules/xmlchars/xmlchars.js +191 -0
  1596. data/lib/readability_js/node/node_modules/xmlchars/xmlchars.js.map +1 -0
  1597. data/lib/readability_js/node/node_modules/xmlchars/xmlns/1.0/ed3.d.ts +28 -0
  1598. data/lib/readability_js/node/node_modules/xmlchars/xmlns/1.0/ed3.js +65 -0
  1599. data/lib/readability_js/node/node_modules/xmlchars/xmlns/1.0/ed3.js.map +1 -0
  1600. data/lib/readability_js/node/package.json +9 -0
  1601. data/lib/readability_js/node/readability-example.js +10 -0
  1602. data/lib/readability_js/node/yarn.lock +315 -0
  1603. data/lib/readability_js/nodo.rb +67 -0
  1604. data/lib/readability_js/version.rb +3 -0
  1605. data/lib/readability_js.rb +207 -0
  1606. data/readability_js.gemspec +47 -0
  1607. metadata +1775 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sources":["../../../src/js/color.ts"],"sourcesContent":["/**\n * color\n *\n * Ref: CSS Color Module Level 4\n * Sample code for Color Conversions\n * https://w3c.github.io/csswg-drafts/css-color-4/#color-conversion-code\n */\n\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport { isString } from './common';\nimport { resolveColor } from './resolve';\nimport { interpolateHue, roundToPrecision, splitValue } from './util';\nimport {\n ColorChannels,\n ComputedColorChannels,\n Options,\n MatchedRegExp,\n SpecifiedColorChannels,\n StringColorChannels,\n StringColorSpacedChannels\n} from './typedef';\n\n/* constants */\nimport {\n ANGLE,\n CS_HUE_CAPT,\n CS_MIX,\n CS_RGB,\n CS_XYZ,\n FN_COLOR,\n FN_LIGHT_DARK,\n FN_MIX,\n NONE,\n NUM,\n PCT,\n SYN_COLOR_TYPE,\n SYN_FN_COLOR,\n SYN_HSL,\n SYN_HSL_LV3,\n SYN_LCH,\n SYN_MIX,\n SYN_MIX_CAPT,\n SYN_MIX_PART,\n SYN_MOD,\n SYN_RGB_LV3,\n VAL_COMP,\n VAL_MIX,\n VAL_SPEC\n} from './constant';\nconst NAMESPACE = 'color';\n\n/* numeric constants */\nconst PPTH = 0.001;\nconst HALF = 0.5;\nconst DUO = 2;\nconst TRIA = 3;\nconst QUAD = 4;\nconst OCT = 8;\nconst DEC = 10;\nconst DOZ = 12;\nconst HEX = 16;\nconst SEXA = 60;\nconst DEG_HALF = 180;\nconst DEG = 360;\nconst MAX_PCT = 100;\nconst MAX_RGB = 255;\nconst POW_SQR = 2;\nconst POW_CUBE = 3;\nconst POW_LINEAR = 2.4;\nconst LINEAR_COEF = 12.92;\nconst LINEAR_OFFSET = 0.055;\nconst LAB_L = 116;\nconst LAB_A = 500;\nconst LAB_B = 200;\nconst LAB_EPSILON = 216 / 24389;\nconst LAB_KAPPA = 24389 / 27;\n\n/* type definitions */\n/**\n * @type NumStrColorChannels - string or numeric color channels\n */\ntype NumStrColorChannels = [\n x: number | string,\n y: number | string,\n z: number | string,\n alpha: number | string\n];\n\n/**\n * @type TriColorChannels - color channels without alpha\n */\ntype TriColorChannels = [x: number, y: number, z: number];\n\n/**\n * @type ColorMatrix - color matrix\n */\ntype ColorMatrix = [\n r1: TriColorChannels,\n r2: TriColorChannels,\n r3: TriColorChannels\n];\n\n/* white point */\nconst D50: TriColorChannels = [\n 0.3457 / 0.3585,\n 1.0,\n (1.0 - 0.3457 - 0.3585) / 0.3585\n];\nconst MATRIX_D50_TO_D65: ColorMatrix = [\n [0.955473421488075, -0.02309845494876471, 0.06325924320057072],\n [-0.0283697093338637, 1.0099953980813041, 0.021041441191917323],\n [0.012314014864481998, -0.020507649298898964, 1.330365926242124]\n];\nconst MATRIX_D65_TO_D50: ColorMatrix = [\n [1.0479297925449969, 0.022946870601609652, -0.05019226628920524],\n [0.02962780877005599, 0.9904344267538799, -0.017073799063418826],\n [-0.009243040646204504, 0.015055191490298152, 0.7518742814281371]\n];\n\n/* color space */\nconst MATRIX_L_RGB_TO_XYZ: ColorMatrix = [\n [506752 / 1228815, 87881 / 245763, 12673 / 70218],\n [87098 / 409605, 175762 / 245763, 12673 / 175545],\n [7918 / 409605, 87881 / 737289, 1001167 / 1053270]\n];\nconst MATRIX_XYZ_TO_L_RGB: ColorMatrix = [\n [12831 / 3959, -329 / 214, -1974 / 3959],\n [-851781 / 878810, 1648619 / 878810, 36519 / 878810],\n [705 / 12673, -2585 / 12673, 705 / 667]\n];\nconst MATRIX_XYZ_TO_LMS: ColorMatrix = [\n [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n];\nconst MATRIX_LMS_TO_XYZ: ColorMatrix = [\n [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],\n [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],\n [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]\n];\nconst MATRIX_OKLAB_TO_LMS: ColorMatrix = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092]\n];\nconst MATRIX_LMS_TO_OKLAB: ColorMatrix = [\n [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n];\nconst MATRIX_P3_TO_XYZ: ColorMatrix = [\n [608311 / 1250200, 189793 / 714400, 198249 / 1000160],\n [35783 / 156275, 247089 / 357200, 198249 / 2500400],\n [0 / 1, 32229 / 714400, 5220557 / 5000800]\n];\nconst MATRIX_REC2020_TO_XYZ: ColorMatrix = [\n [63426534 / 99577255, 20160776 / 139408157, 47086771 / 278816314],\n [26158966 / 99577255, 472592308 / 697040785, 8267143 / 139408157],\n [0 / 1, 19567812 / 697040785, 295819943 / 278816314]\n];\nconst MATRIX_A98_TO_XYZ: ColorMatrix = [\n [573536 / 994567, 263643 / 1420810, 187206 / 994567],\n [591459 / 1989134, 6239551 / 9945670, 374412 / 4972835],\n [53769 / 1989134, 351524 / 4972835, 4929758 / 4972835]\n];\nconst MATRIX_PROPHOTO_TO_XYZ_D50: ColorMatrix = [\n [0.7977666449006423, 0.13518129740053308, 0.0313477341283922],\n [0.2880748288194013, 0.711835234241873, 0.00008993693872564],\n [0.0, 0.0, 0.8251046025104602]\n];\n\n/* regexp */\nconst REG_COLOR = new RegExp(`^(?:${SYN_COLOR_TYPE})$`);\nconst REG_CS_HUE = new RegExp(`^${CS_HUE_CAPT}$`);\nconst REG_CS_XYZ = /^xyz(?:-d(?:50|65))?$/;\nconst REG_CURRENT = /^currentColor$/i;\nconst REG_FN_COLOR = new RegExp(`^color\\\\(\\\\s*(${SYN_FN_COLOR})\\\\s*\\\\)$`);\nconst REG_HSL = new RegExp(`^hsla?\\\\(\\\\s*(${SYN_HSL}|${SYN_HSL_LV3})\\\\s*\\\\)$`);\nconst REG_HWB = new RegExp(`^hwb\\\\(\\\\s*(${SYN_HSL})\\\\s*\\\\)$`);\nconst REG_LAB = new RegExp(`^lab\\\\(\\\\s*(${SYN_MOD})\\\\s*\\\\)$`);\nconst REG_LCH = new RegExp(`^lch\\\\(\\\\s*(${SYN_LCH})\\\\s*\\\\)$`);\nconst REG_MIX = new RegExp(`^${SYN_MIX}$`);\nconst REG_MIX_CAPT = new RegExp(`^${SYN_MIX_CAPT}$`);\nconst REG_MIX_NEST = new RegExp(`${SYN_MIX}`, 'g');\nconst REG_OKLAB = new RegExp(`^oklab\\\\(\\\\s*(${SYN_MOD})\\\\s*\\\\)$`);\nconst REG_OKLCH = new RegExp(`^oklch\\\\(\\\\s*(${SYN_LCH})\\\\s*\\\\)$`);\nconst REG_SPEC = /^(?:specifi|comput)edValue$/;\n\n/**\n * named colors\n */\nexport const NAMED_COLORS = {\n aliceblue: [0xf0, 0xf8, 0xff],\n antiquewhite: [0xfa, 0xeb, 0xd7],\n aqua: [0x00, 0xff, 0xff],\n aquamarine: [0x7f, 0xff, 0xd4],\n azure: [0xf0, 0xff, 0xff],\n beige: [0xf5, 0xf5, 0xdc],\n bisque: [0xff, 0xe4, 0xc4],\n black: [0x00, 0x00, 0x00],\n blanchedalmond: [0xff, 0xeb, 0xcd],\n blue: [0x00, 0x00, 0xff],\n blueviolet: [0x8a, 0x2b, 0xe2],\n brown: [0xa5, 0x2a, 0x2a],\n burlywood: [0xde, 0xb8, 0x87],\n cadetblue: [0x5f, 0x9e, 0xa0],\n chartreuse: [0x7f, 0xff, 0x00],\n chocolate: [0xd2, 0x69, 0x1e],\n coral: [0xff, 0x7f, 0x50],\n cornflowerblue: [0x64, 0x95, 0xed],\n cornsilk: [0xff, 0xf8, 0xdc],\n crimson: [0xdc, 0x14, 0x3c],\n cyan: [0x00, 0xff, 0xff],\n darkblue: [0x00, 0x00, 0x8b],\n darkcyan: [0x00, 0x8b, 0x8b],\n darkgoldenrod: [0xb8, 0x86, 0x0b],\n darkgray: [0xa9, 0xa9, 0xa9],\n darkgreen: [0x00, 0x64, 0x00],\n darkgrey: [0xa9, 0xa9, 0xa9],\n darkkhaki: [0xbd, 0xb7, 0x6b],\n darkmagenta: [0x8b, 0x00, 0x8b],\n darkolivegreen: [0x55, 0x6b, 0x2f],\n darkorange: [0xff, 0x8c, 0x00],\n darkorchid: [0x99, 0x32, 0xcc],\n darkred: [0x8b, 0x00, 0x00],\n darksalmon: [0xe9, 0x96, 0x7a],\n darkseagreen: [0x8f, 0xbc, 0x8f],\n darkslateblue: [0x48, 0x3d, 0x8b],\n darkslategray: [0x2f, 0x4f, 0x4f],\n darkslategrey: [0x2f, 0x4f, 0x4f],\n darkturquoise: [0x00, 0xce, 0xd1],\n darkviolet: [0x94, 0x00, 0xd3],\n deeppink: [0xff, 0x14, 0x93],\n deepskyblue: [0x00, 0xbf, 0xff],\n dimgray: [0x69, 0x69, 0x69],\n dimgrey: [0x69, 0x69, 0x69],\n dodgerblue: [0x1e, 0x90, 0xff],\n firebrick: [0xb2, 0x22, 0x22],\n floralwhite: [0xff, 0xfa, 0xf0],\n forestgreen: [0x22, 0x8b, 0x22],\n fuchsia: [0xff, 0x00, 0xff],\n gainsboro: [0xdc, 0xdc, 0xdc],\n ghostwhite: [0xf8, 0xf8, 0xff],\n gold: [0xff, 0xd7, 0x00],\n goldenrod: [0xda, 0xa5, 0x20],\n gray: [0x80, 0x80, 0x80],\n green: [0x00, 0x80, 0x00],\n greenyellow: [0xad, 0xff, 0x2f],\n grey: [0x80, 0x80, 0x80],\n honeydew: [0xf0, 0xff, 0xf0],\n hotpink: [0xff, 0x69, 0xb4],\n indianred: [0xcd, 0x5c, 0x5c],\n indigo: [0x4b, 0x00, 0x82],\n ivory: [0xff, 0xff, 0xf0],\n khaki: [0xf0, 0xe6, 0x8c],\n lavender: [0xe6, 0xe6, 0xfa],\n lavenderblush: [0xff, 0xf0, 0xf5],\n lawngreen: [0x7c, 0xfc, 0x00],\n lemonchiffon: [0xff, 0xfa, 0xcd],\n lightblue: [0xad, 0xd8, 0xe6],\n lightcoral: [0xf0, 0x80, 0x80],\n lightcyan: [0xe0, 0xff, 0xff],\n lightgoldenrodyellow: [0xfa, 0xfa, 0xd2],\n lightgray: [0xd3, 0xd3, 0xd3],\n lightgreen: [0x90, 0xee, 0x90],\n lightgrey: [0xd3, 0xd3, 0xd3],\n lightpink: [0xff, 0xb6, 0xc1],\n lightsalmon: [0xff, 0xa0, 0x7a],\n lightseagreen: [0x20, 0xb2, 0xaa],\n lightskyblue: [0x87, 0xce, 0xfa],\n lightslategray: [0x77, 0x88, 0x99],\n lightslategrey: [0x77, 0x88, 0x99],\n lightsteelblue: [0xb0, 0xc4, 0xde],\n lightyellow: [0xff, 0xff, 0xe0],\n lime: [0x00, 0xff, 0x00],\n limegreen: [0x32, 0xcd, 0x32],\n linen: [0xfa, 0xf0, 0xe6],\n magenta: [0xff, 0x00, 0xff],\n maroon: [0x80, 0x00, 0x00],\n mediumaquamarine: [0x66, 0xcd, 0xaa],\n mediumblue: [0x00, 0x00, 0xcd],\n mediumorchid: [0xba, 0x55, 0xd3],\n mediumpurple: [0x93, 0x70, 0xdb],\n mediumseagreen: [0x3c, 0xb3, 0x71],\n mediumslateblue: [0x7b, 0x68, 0xee],\n mediumspringgreen: [0x00, 0xfa, 0x9a],\n mediumturquoise: [0x48, 0xd1, 0xcc],\n mediumvioletred: [0xc7, 0x15, 0x85],\n midnightblue: [0x19, 0x19, 0x70],\n mintcream: [0xf5, 0xff, 0xfa],\n mistyrose: [0xff, 0xe4, 0xe1],\n moccasin: [0xff, 0xe4, 0xb5],\n navajowhite: [0xff, 0xde, 0xad],\n navy: [0x00, 0x00, 0x80],\n oldlace: [0xfd, 0xf5, 0xe6],\n olive: [0x80, 0x80, 0x00],\n olivedrab: [0x6b, 0x8e, 0x23],\n orange: [0xff, 0xa5, 0x00],\n orangered: [0xff, 0x45, 0x00],\n orchid: [0xda, 0x70, 0xd6],\n palegoldenrod: [0xee, 0xe8, 0xaa],\n palegreen: [0x98, 0xfb, 0x98],\n paleturquoise: [0xaf, 0xee, 0xee],\n palevioletred: [0xdb, 0x70, 0x93],\n papayawhip: [0xff, 0xef, 0xd5],\n peachpuff: [0xff, 0xda, 0xb9],\n peru: [0xcd, 0x85, 0x3f],\n pink: [0xff, 0xc0, 0xcb],\n plum: [0xdd, 0xa0, 0xdd],\n powderblue: [0xb0, 0xe0, 0xe6],\n purple: [0x80, 0x00, 0x80],\n rebeccapurple: [0x66, 0x33, 0x99],\n red: [0xff, 0x00, 0x00],\n rosybrown: [0xbc, 0x8f, 0x8f],\n royalblue: [0x41, 0x69, 0xe1],\n saddlebrown: [0x8b, 0x45, 0x13],\n salmon: [0xfa, 0x80, 0x72],\n sandybrown: [0xf4, 0xa4, 0x60],\n seagreen: [0x2e, 0x8b, 0x57],\n seashell: [0xff, 0xf5, 0xee],\n sienna: [0xa0, 0x52, 0x2d],\n silver: [0xc0, 0xc0, 0xc0],\n skyblue: [0x87, 0xce, 0xeb],\n slateblue: [0x6a, 0x5a, 0xcd],\n slategray: [0x70, 0x80, 0x90],\n slategrey: [0x70, 0x80, 0x90],\n snow: [0xff, 0xfa, 0xfa],\n springgreen: [0x00, 0xff, 0x7f],\n steelblue: [0x46, 0x82, 0xb4],\n tan: [0xd2, 0xb4, 0x8c],\n teal: [0x00, 0x80, 0x80],\n thistle: [0xd8, 0xbf, 0xd8],\n tomato: [0xff, 0x63, 0x47],\n turquoise: [0x40, 0xe0, 0xd0],\n violet: [0xee, 0x82, 0xee],\n wheat: [0xf5, 0xde, 0xb3],\n white: [0xff, 0xff, 0xff],\n whitesmoke: [0xf5, 0xf5, 0xf5],\n yellow: [0xff, 0xff, 0x00],\n yellowgreen: [0x9a, 0xcd, 0x32]\n} as const satisfies {\n [key: string]: TriColorChannels;\n};\n\n/**\n * cache invalid color value\n * @param key - cache key\n * @param nullable - is nullable\n * @returns cached value\n */\nexport const cacheInvalidColorValue = (\n cacheKey: string,\n format: string,\n nullable: boolean = false\n): SpecifiedColorChannels | string | NullObject => {\n if (format === VAL_SPEC) {\n const res = '';\n setCache(cacheKey, res);\n return res;\n }\n if (nullable) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * resolve invalid color value\n * @param format - output format\n * @param nullable - is nullable\n * @returns resolved value\n */\nexport const resolveInvalidColorValue = (\n format: string,\n nullable: boolean = false\n): SpecifiedColorChannels | string | NullObject => {\n switch (format) {\n case 'hsl':\n case 'hwb':\n case VAL_MIX: {\n return new NullObject();\n }\n case VAL_SPEC: {\n return '';\n }\n default: {\n if (nullable) {\n return new NullObject();\n }\n return ['rgb', 0, 0, 0, 0] as SpecifiedColorChannels;\n }\n }\n};\n\n/**\n * validate color components\n * @param arr - color components\n * @param [opt] - options\n * @param [opt.alpha] - alpha channel\n * @param [opt.minLength] - min length\n * @param [opt.maxLength] - max length\n * @param [opt.minRange] - min range\n * @param [opt.maxRange] - max range\n * @param [opt.validateRange] - validate range\n * @returns result - validated color components\n */\nexport const validateColorComponents = (\n arr: ColorChannels | TriColorChannels,\n opt: {\n alpha?: boolean;\n minLength?: number;\n maxLength?: number;\n minRange?: number;\n maxRange?: number;\n validateRange?: boolean;\n } = {}\n): ColorChannels | TriColorChannels => {\n if (!Array.isArray(arr)) {\n throw new TypeError(`${arr} is not an array.`);\n }\n const {\n alpha = false,\n minLength = TRIA,\n maxLength = QUAD,\n minRange = 0,\n maxRange = 1,\n validateRange = true\n } = opt;\n if (!Number.isFinite(minLength)) {\n throw new TypeError(`${minLength} is not a number.`);\n }\n if (!Number.isFinite(maxLength)) {\n throw new TypeError(`${maxLength} is not a number.`);\n }\n if (!Number.isFinite(minRange)) {\n throw new TypeError(`${minRange} is not a number.`);\n }\n if (!Number.isFinite(maxRange)) {\n throw new TypeError(`${maxRange} is not a number.`);\n }\n const l = arr.length;\n if (l < minLength || l > maxLength) {\n throw new Error(`Unexpected array length ${l}.`);\n }\n let i = 0;\n while (i < l) {\n const v = arr[i] as number;\n if (!Number.isFinite(v)) {\n throw new TypeError(`${v} is not a number.`);\n } else if (i < TRIA && validateRange && (v < minRange || v > maxRange)) {\n throw new RangeError(`${v} is not between ${minRange} and ${maxRange}.`);\n } else if (i === TRIA && (v < 0 || v > 1)) {\n throw new RangeError(`${v} is not between 0 and 1.`);\n }\n i++;\n }\n if (alpha && l === TRIA) {\n arr.push(1);\n }\n return arr;\n};\n\n/**\n * transform matrix\n * @param mtx - 3 * 3 matrix\n * @param vct - vector\n * @param [skip] - skip validate\n * @returns TriColorChannels - [p1, p2, p3]\n */\nexport const transformMatrix = (\n mtx: ColorMatrix,\n vct: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!Array.isArray(mtx)) {\n throw new TypeError(`${mtx} is not an array.`);\n } else if (mtx.length !== TRIA) {\n throw new Error(`Unexpected array length ${mtx.length}.`);\n } else if (!skip) {\n for (let i of mtx) {\n i = validateColorComponents(i as TriColorChannels, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n }\n const [[r1c1, r1c2, r1c3], [r2c1, r2c2, r2c3], [r3c1, r3c2, r3c3]] = mtx;\n let v1, v2, v3;\n if (skip) {\n [v1, v2, v3] = vct;\n } else {\n [v1, v2, v3] = validateColorComponents(vct, {\n maxLength: TRIA,\n validateRange: false\n });\n }\n const p1 = r1c1 * v1 + r1c2 * v2 + r1c3 * v3;\n const p2 = r2c1 * v1 + r2c2 * v2 + r2c3 * v3;\n const p3 = r3c1 * v1 + r3c2 * v2 + r3c3 * v3;\n return [p1, p2, p3];\n};\n\n/**\n * normalize color components\n * @param colorA - color components [v1, v2, v3, v4]\n * @param colorB - color components [v1, v2, v3, v4]\n * @param [skip] - skip validate\n * @returns result - [colorA, colorB]\n */\nexport const normalizeColorComponents = (\n colorA: [number | string, number | string, number | string, number | string],\n colorB: [number | string, number | string, number | string, number | string],\n skip: boolean = false\n): [ColorChannels, ColorChannels] => {\n if (!Array.isArray(colorA)) {\n throw new TypeError(`${colorA} is not an array.`);\n } else if (colorA.length !== QUAD) {\n throw new Error(`Unexpected array length ${colorA.length}.`);\n }\n if (!Array.isArray(colorB)) {\n throw new TypeError(`${colorB} is not an array.`);\n } else if (colorB.length !== QUAD) {\n throw new Error(`Unexpected array length ${colorB.length}.`);\n }\n let i = 0;\n while (i < QUAD) {\n if (colorA[i] === NONE && colorB[i] === NONE) {\n colorA[i] = 0;\n colorB[i] = 0;\n } else if (colorA[i] === NONE) {\n colorA[i] = colorB[i] as number;\n } else if (colorB[i] === NONE) {\n colorB[i] = colorA[i] as number;\n }\n i++;\n }\n if (skip) {\n return [colorA as ColorChannels, colorB as ColorChannels];\n }\n const validatedColorA = validateColorComponents(colorA as ColorChannels, {\n minLength: QUAD,\n validateRange: false\n });\n const validatedColorB = validateColorComponents(colorB as ColorChannels, {\n minLength: QUAD,\n validateRange: false\n });\n return [validatedColorA as ColorChannels, validatedColorB as ColorChannels];\n};\n\n/**\n * number to hex string\n * @param value - numeric value\n * @returns hex string\n */\nexport const numberToHexString = (value: number): string => {\n if (!Number.isFinite(value)) {\n throw new TypeError(`${value} is not a number.`);\n } else {\n value = Math.round(value);\n if (value < 0 || value > MAX_RGB) {\n throw new RangeError(`${value} is not between 0 and ${MAX_RGB}.`);\n }\n }\n let hex = value.toString(HEX);\n if (hex.length === 1) {\n hex = `0${hex}`;\n }\n return hex;\n};\n\n/**\n * angle to deg\n * @param angle\n * @returns deg: 0..360\n */\nexport const angleToDeg = (angle: string): number => {\n if (isString(angle)) {\n angle = angle.trim();\n } else {\n throw new TypeError(`${angle} is not a string.`);\n }\n const GRAD = DEG / 400;\n const RAD = DEG / (Math.PI * DUO);\n const reg = new RegExp(`^(${NUM})(${ANGLE})?$`);\n if (!reg.test(angle)) {\n throw new SyntaxError(`Invalid property value: ${angle}`);\n }\n const [, value, unit] = angle.match(reg) as MatchedRegExp;\n let deg;\n switch (unit) {\n case 'grad':\n deg = parseFloat(value) * GRAD;\n break;\n case 'rad':\n deg = parseFloat(value) * RAD;\n break;\n case 'turn':\n deg = parseFloat(value) * DEG;\n break;\n default:\n deg = parseFloat(value);\n }\n deg %= DEG;\n if (deg < 0) {\n deg += DEG;\n } else if (Object.is(deg, -0)) {\n deg = 0;\n }\n return deg;\n};\n\n/**\n * parse alpha\n * @param [alpha] - alpha value\n * @returns alpha: 0..1\n */\nexport const parseAlpha = (alpha: string = ''): number => {\n if (isString(alpha)) {\n alpha = alpha.trim();\n if (!alpha) {\n alpha = '1';\n } else if (alpha === NONE) {\n alpha = '0';\n } else {\n let a;\n if (alpha.endsWith('%')) {\n a = parseFloat(alpha) / MAX_PCT;\n } else {\n a = parseFloat(alpha);\n }\n if (!Number.isFinite(a)) {\n throw new TypeError(`${a} is not a finite number.`);\n }\n if (a < PPTH) {\n alpha = '0';\n } else if (a > 1) {\n alpha = '1';\n } else {\n alpha = a.toFixed(TRIA);\n }\n }\n } else {\n alpha = '1';\n }\n return parseFloat(alpha);\n};\n\n/**\n * parse hex alpha\n * @param value - alpha value in hex string\n * @returns alpha: 0..1\n */\nexport const parseHexAlpha = (value: string): number => {\n if (isString(value)) {\n if (value === '') {\n throw new SyntaxError('Invalid property value: (empty string)');\n }\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n let alpha = parseInt(value, HEX);\n if (alpha <= 0) {\n return 0;\n }\n if (alpha >= MAX_RGB) {\n return 1;\n }\n const alphaMap = new Map();\n for (let i = 1; i < MAX_PCT; i++) {\n alphaMap.set(Math.round((i * MAX_RGB) / MAX_PCT), i);\n }\n if (alphaMap.has(alpha)) {\n alpha = alphaMap.get(alpha) / MAX_PCT;\n } else {\n alpha = Math.round(alpha / MAX_RGB / PPTH) * PPTH;\n }\n return parseFloat(alpha.toFixed(TRIA));\n};\n\n/**\n * transform rgb to linear rgb\n * @param rgb - [r, g, b] r|g|b: 0..255\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..1\n */\nexport const transformRgbToLinearRgb = (\n rgb: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n let rr, gg, bb;\n if (skip) {\n [rr, gg, bb] = rgb;\n } else {\n [rr, gg, bb] = validateColorComponents(rgb, {\n maxLength: TRIA,\n maxRange: MAX_RGB\n });\n }\n let r = rr / MAX_RGB;\n let g = gg / MAX_RGB;\n let b = bb / MAX_RGB;\n const COND_POW = 0.04045;\n if (r > COND_POW) {\n r = Math.pow((r + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n r /= LINEAR_COEF;\n }\n if (g > COND_POW) {\n g = Math.pow((g + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n g /= LINEAR_COEF;\n }\n if (b > COND_POW) {\n b = Math.pow((b + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n b /= LINEAR_COEF;\n }\n return [r, g, b];\n};\n\n/**\n * transform rgb to xyz\n * @param rgb - [r, g, b] r|g|b: 0..255\n * @param [skip] - skip validate\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformRgbToXyz = (\n rgb: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n rgb = validateColorComponents(rgb, {\n maxLength: TRIA,\n maxRange: MAX_RGB\n }) as TriColorChannels;\n }\n rgb = transformRgbToLinearRgb(rgb, true);\n const xyz = transformMatrix(MATRIX_L_RGB_TO_XYZ, rgb, true);\n return xyz;\n};\n\n/**\n * transform rgb to xyz-d50\n * @param rgb - [r, g, b] r|g|b: 0..255 alpha: 0..1\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformRgbToXyzD50 = (\n rgb: TriColorChannels\n): TriColorChannels => {\n let xyz = transformRgbToXyz(rgb);\n xyz = transformMatrix(MATRIX_D65_TO_D50, xyz, true);\n return xyz;\n};\n\n/**\n * transform linear rgb to rgb\n * @param rgb - [r, g, b] r|g|b: 0..1\n * @param [round] - round result\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformLinearRgbToRgb = (\n rgb: TriColorChannels,\n round: boolean = false\n): TriColorChannels => {\n let [r, g, b] = validateColorComponents(rgb, {\n maxLength: TRIA\n });\n const COND_POW = 809 / 258400;\n if (r > COND_POW) {\n r = Math.pow(r, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n r *= LINEAR_COEF;\n }\n r *= MAX_RGB;\n if (g > COND_POW) {\n g = Math.pow(g, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n g *= LINEAR_COEF;\n }\n g *= MAX_RGB;\n if (b > COND_POW) {\n b = Math.pow(b, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n b *= LINEAR_COEF;\n }\n b *= MAX_RGB;\n return [\n round ? Math.round(r) : r,\n round ? Math.round(g) : g,\n round ? Math.round(b) : b\n ];\n};\n\n/**\n * transform xyz to rgb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformXyzToRgb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n let [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, xyz, true);\n [r, g, b] = transformLinearRgbToRgb(\n [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1)\n ],\n true\n );\n return [r, g, b];\n};\n\n/**\n * transform xyz to xyz-d50\n * @param xyz - [x, y, z]\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformXyzToXyzD50 = (\n xyz: TriColorChannels\n): TriColorChannels => {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n xyz = transformMatrix(MATRIX_D65_TO_D50, xyz, true);\n return xyz;\n};\n\n/**\n * transform xyz to hsl\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [h, s, l]\n */\nexport const transformXyzToHsl = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [rr, gg, bb] = transformXyzToRgb(xyz, skip);\n const r = rr / MAX_RGB;\n const g = gg / MAX_RGB;\n const b = bb / MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const l = (max + min) * HALF * MAX_PCT;\n let h, s;\n if (Math.round(l) === 0 || Math.round(l) === MAX_PCT) {\n h = 0;\n s = 0;\n } else {\n s = (d / (1 - Math.abs(max + min - 1))) * MAX_PCT;\n if (s === 0) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d;\n break;\n case g:\n h = (b - r) / d + DUO;\n break;\n case b:\n default:\n h = (r - g) / d + QUAD;\n break;\n }\n h = (h * SEXA) % DEG;\n if (h < 0) {\n h += DEG;\n }\n }\n }\n return [h, s, l];\n};\n\n/**\n * transform xyz to hwb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [h, w, b]\n */\nexport const transformXyzToHwb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [r, g, b] = transformXyzToRgb(xyz, skip);\n const wh = Math.min(r, g, b) / MAX_RGB;\n const bk = 1 - Math.max(r, g, b) / MAX_RGB;\n let h;\n if (wh + bk === 1) {\n h = 0;\n } else {\n [h] = transformXyzToHsl(xyz);\n }\n return [h, wh * MAX_PCT, bk * MAX_PCT];\n};\n\n/**\n * transform xyz to oklab\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, a, b]\n */\nexport const transformXyzToOklab = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const lms = transformMatrix(MATRIX_XYZ_TO_LMS, xyz, true);\n const xyzLms = lms.map(c => Math.cbrt(c)) as TriColorChannels;\n let [l, a, b] = transformMatrix(MATRIX_LMS_TO_OKLAB, xyzLms, true);\n l = Math.min(Math.max(l, 0), 1);\n const lPct = Math.round(parseFloat(l.toFixed(QUAD)) * MAX_PCT);\n if (lPct === 0 || lPct === MAX_PCT) {\n a = 0;\n b = 0;\n }\n return [l, a, b];\n};\n\n/**\n * transform xyz to oklch\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, c, h]\n */\nexport const transformXyzToOklch = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [l, a, b] = transformXyzToOklab(xyz, skip);\n let c, h;\n const lPct = Math.round(parseFloat(l.toFixed(QUAD)) * MAX_PCT);\n if (lPct === 0 || lPct === MAX_PCT) {\n c = 0;\n h = 0;\n } else {\n c = Math.max(Math.sqrt(Math.pow(a, POW_SQR) + Math.pow(b, POW_SQR)), 0);\n if (parseFloat(c.toFixed(QUAD)) === 0) {\n h = 0;\n } else {\n h = (Math.atan2(b, a) * DEG_HALF) / Math.PI;\n if (h < 0) {\n h += DEG;\n }\n }\n }\n return [l, c, h];\n};\n\n/**\n * transform xyz D50 to rgb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformXyzD50ToRgb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const xyzD65 = transformMatrix(MATRIX_D50_TO_D65, xyz, true);\n const rgb = transformXyzToRgb(xyzD65, true);\n return rgb;\n};\n\n/**\n * transform xyz-d50 to lab\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, a, b]\n */\nexport const transformXyzD50ToLab = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const xyzD50 = xyz.map((val, i) => val / (D50[i] as number));\n const [f0, f1, f2] = xyzD50.map(val =>\n val > LAB_EPSILON ? Math.cbrt(val) : (val * LAB_KAPPA + HEX) / LAB_L\n ) as TriColorChannels;\n const l = Math.min(Math.max(LAB_L * f1 - HEX, 0), MAX_PCT);\n let a, b;\n if (l === 0 || l === MAX_PCT) {\n a = 0;\n b = 0;\n } else {\n a = (f0 - f1) * LAB_A;\n b = (f1 - f2) * LAB_B;\n }\n return [l, a, b];\n};\n\n/**\n * transform xyz-d50 to lch\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, c, h]\n */\nexport const transformXyzD50ToLch = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [l, a, b] = transformXyzD50ToLab(xyz, skip);\n let c, h;\n if (l === 0 || l === MAX_PCT) {\n c = 0;\n h = 0;\n } else {\n c = Math.max(Math.sqrt(Math.pow(a, POW_SQR) + Math.pow(b, POW_SQR)), 0);\n h = (Math.atan2(b, a) * DEG_HALF) / Math.PI;\n if (h < 0) {\n h += DEG;\n }\n }\n return [l, c, h];\n};\n\n/**\n * convert rgb to hex color\n * @param rgb - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n * @returns hex color\n */\nexport const convertRgbToHex = (rgb: ColorChannels): string => {\n const [r, g, b, alpha] = validateColorComponents(rgb, {\n alpha: true,\n maxRange: MAX_RGB\n }) as ColorChannels;\n const rr = numberToHexString(r);\n const gg = numberToHexString(g);\n const bb = numberToHexString(b);\n const aa = numberToHexString(alpha * MAX_RGB);\n let hex;\n if (aa === 'ff') {\n hex = `#${rr}${gg}${bb}`;\n } else {\n hex = `#${rr}${gg}${bb}${aa}`;\n }\n return hex;\n};\n\n/**\n * convert linear rgb to hex color\n * @param rgb - [r, g, b, alpha] r|g|b|alpha: 0..1\n * @param [skip] - skip validate\n * @returns hex color\n */\nexport const convertLinearRgbToHex = (\n rgb: ColorChannels,\n skip: boolean = false\n): string => {\n let r, g, b, alpha;\n if (skip) {\n [r, g, b, alpha] = rgb;\n } else {\n [r, g, b, alpha] = validateColorComponents(rgb, {\n minLength: QUAD\n }) as ColorChannels;\n }\n [r, g, b] = transformLinearRgbToRgb([r, g, b], true);\n const rr = numberToHexString(r);\n const gg = numberToHexString(g);\n const bb = numberToHexString(b);\n const aa = numberToHexString(alpha * MAX_RGB);\n let hex;\n if (aa === 'ff') {\n hex = `#${rr}${gg}${bb}`;\n } else {\n hex = `#${rr}${gg}${bb}${aa}`;\n }\n return hex;\n};\n\n/**\n * convert xyz to hex color\n * @param xyz - [x, y, z, alpha]\n * @returns hex color\n */\nexport const convertXyzToHex = (xyz: ColorChannels): string => {\n const [x, y, z, alpha] = validateColorComponents(xyz, {\n minLength: QUAD,\n validateRange: false\n }) as ColorChannels;\n const [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n const hex = convertLinearRgbToHex(\n [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ],\n true\n );\n return hex;\n};\n\n/**\n * convert xyz D50 to hex color\n * @param xyz - [x, y, z, alpha]\n * @returns hex color\n */\nexport const convertXyzD50ToHex = (xyz: ColorChannels): string => {\n const [x, y, z, alpha] = validateColorComponents(xyz, {\n minLength: QUAD,\n validateRange: false\n }) as ColorChannels;\n const xyzD65 = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n const [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, xyzD65, true);\n const hex = convertLinearRgbToHex([\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ]);\n return hex;\n};\n\n/**\n * convert hex color to rgb\n * @param value - hex color value\n * @returns ColorChannels - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n */\nexport const convertHexToRgb = (value: string): ColorChannels => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n if (\n !(\n /^#[\\da-f]{6}$/.test(value) ||\n /^#[\\da-f]{3}$/.test(value) ||\n /^#[\\da-f]{8}$/.test(value) ||\n /^#[\\da-f]{4}$/.test(value)\n )\n ) {\n throw new SyntaxError(`Invalid property value: ${value}`);\n }\n const arr: number[] = [];\n if (/^#[\\da-f]{3}$/.test(value)) {\n const [, r, g, b] = value.match(\n /^#([\\da-f])([\\da-f])([\\da-f])$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(`${r}${r}`, HEX),\n parseInt(`${g}${g}`, HEX),\n parseInt(`${b}${b}`, HEX),\n 1\n );\n } else if (/^#[\\da-f]{4}$/.test(value)) {\n const [, r, g, b, alpha] = value.match(\n /^#([\\da-f])([\\da-f])([\\da-f])([\\da-f])$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(`${r}${r}`, HEX),\n parseInt(`${g}${g}`, HEX),\n parseInt(`${b}${b}`, HEX),\n parseHexAlpha(`${alpha}${alpha}`)\n );\n } else if (/^#[\\da-f]{8}$/.test(value)) {\n const [, r, g, b, alpha] = value.match(\n /^#([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(r, HEX),\n parseInt(g, HEX),\n parseInt(b, HEX),\n parseHexAlpha(alpha)\n );\n } else {\n const [, r, g, b] = value.match(\n /^#([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/\n ) as MatchedRegExp;\n arr.push(parseInt(r, HEX), parseInt(g, HEX), parseInt(b, HEX), 1);\n }\n return arr as ColorChannels;\n};\n\n/**\n * convert hex color to linear rgb\n * @param value - hex color value\n * @returns ColorChannels - [r, g, b, alpha] r|g|b|alpha: 0..1\n */\nexport const convertHexToLinearRgb = (value: string): ColorChannels => {\n const [rr, gg, bb, alpha] = convertHexToRgb(value);\n const [r, g, b] = transformRgbToLinearRgb([rr, gg, bb], true);\n return [r, g, b, alpha];\n};\n\n/**\n * convert hex color to xyz\n * @param value - hex color value\n * @returns ColorChannels - [x, y, z, alpha]\n */\nexport const convertHexToXyz = (value: string): ColorChannels => {\n const [r, g, b, alpha] = convertHexToLinearRgb(value);\n const [x, y, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r, g, b], true);\n return [x, y, z, alpha];\n};\n\n/**\n * parse rgb()\n * @param value - rgb color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseRgb = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n const reg = new RegExp(`^rgba?\\\\(\\\\s*(${SYN_MOD}|${SYN_RGB_LV3})\\\\s*\\\\)$`);\n if (!reg.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(reg) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace(/[,/]/g, ' ')\n .split(/\\s+/) as StringColorChannels;\n let r, g, b;\n if (v1 === NONE) {\n r = 0;\n } else {\n if (v1.endsWith('%')) {\n r = (parseFloat(v1) * MAX_RGB) / MAX_PCT;\n } else {\n r = parseFloat(v1);\n }\n r = Math.min(Math.max(roundToPrecision(r, OCT), 0), MAX_RGB);\n }\n if (v2 === NONE) {\n g = 0;\n } else {\n if (v2.endsWith('%')) {\n g = (parseFloat(v2) * MAX_RGB) / MAX_PCT;\n } else {\n g = parseFloat(v2);\n }\n g = Math.min(Math.max(roundToPrecision(g, OCT), 0), MAX_RGB);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n if (v3.endsWith('%')) {\n b = (parseFloat(v3) * MAX_RGB) / MAX_PCT;\n } else {\n b = parseFloat(v3);\n }\n b = Math.min(Math.max(roundToPrecision(b, OCT), 0), MAX_RGB);\n }\n const alpha = parseAlpha(v4);\n return ['rgb', r, g, b, format === VAL_MIX && v4 === NONE ? NONE : alpha];\n};\n\n/**\n * parse hsl()\n * @param value - hsl color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseHsl = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_HSL.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_HSL) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace(/[,/]/g, ' ')\n .split(/\\s+/) as StringColorChannels;\n let h, s, l;\n if (v1 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v1);\n }\n if (v2 === NONE) {\n s = 0;\n } else {\n s = Math.min(Math.max(parseFloat(v2), 0), MAX_PCT);\n }\n if (v3 === NONE) {\n l = 0;\n } else {\n l = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT);\n }\n const alpha = parseAlpha(v4);\n if (format === 'hsl') {\n return [\n format,\n v1 === NONE ? v1 : h,\n v2 === NONE ? v2 : s,\n v3 === NONE ? v3 : l,\n v4 === NONE ? v4 : alpha\n ];\n }\n h = (h / DEG) * DOZ;\n l /= MAX_PCT;\n const sa = (s / MAX_PCT) * Math.min(l, 1 - l);\n const rk = h % DOZ;\n const gk = (8 + h) % DOZ;\n const bk = (4 + h) % DOZ;\n const r = l - sa * Math.max(-1, Math.min(rk - TRIA, TRIA ** POW_SQR - rk, 1));\n const g = l - sa * Math.max(-1, Math.min(gk - TRIA, TRIA ** POW_SQR - gk, 1));\n const b = l - sa * Math.max(-1, Math.min(bk - TRIA, TRIA ** POW_SQR - bk, 1));\n return [\n 'rgb',\n Math.min(Math.max(roundToPrecision(r * MAX_RGB, OCT), 0), MAX_RGB),\n Math.min(Math.max(roundToPrecision(g * MAX_RGB, OCT), 0), MAX_RGB),\n Math.min(Math.max(roundToPrecision(b * MAX_RGB, OCT), 0), MAX_RGB),\n alpha\n ];\n};\n\n/**\n * parse hwb()\n * @param value - hwb color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseHwb = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_HWB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_HWB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let h, wh, bk;\n if (v1 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v1);\n }\n if (v2 === NONE) {\n wh = 0;\n } else {\n wh = Math.min(Math.max(parseFloat(v2), 0), MAX_PCT) / MAX_PCT;\n }\n if (v3 === NONE) {\n bk = 0;\n } else {\n bk = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT) / MAX_PCT;\n }\n const alpha = parseAlpha(v4);\n if (format === 'hwb') {\n return [\n format,\n v1 === NONE ? v1 : h,\n v2 === NONE ? v2 : wh * MAX_PCT,\n v3 === NONE ? v3 : bk * MAX_PCT,\n v4 === NONE ? v4 : alpha\n ];\n }\n if (wh + bk >= 1) {\n const v = roundToPrecision((wh / (wh + bk)) * MAX_RGB, OCT);\n return ['rgb', v, v, v, alpha];\n }\n const factor = (1 - wh - bk) / MAX_RGB;\n let [, r, g, b] = parseHsl(`hsl(${h} 100 50)`) as ComputedColorChannels;\n r = roundToPrecision((r * factor + wh) * MAX_RGB, OCT);\n g = roundToPrecision((g * factor + wh) * MAX_RGB, OCT);\n b = roundToPrecision((b * factor + wh) * MAX_RGB, OCT);\n return [\n 'rgb',\n Math.min(Math.max(r, 0), MAX_RGB),\n Math.min(Math.max(g, 0), MAX_RGB),\n Math.min(Math.max(b, 0), MAX_RGB),\n alpha\n ];\n};\n\n/**\n * parse lab()\n * @param value - lab color value\n * @param [opt] - options\n * @returns parsed color\n * - [xyz-d50, x, y, z, alpha], ['lab', l, a, b, alpha], '(empty)', NullObject\n */\nexport const parseLab = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_LAB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 1.25;\n const COND_POW = 8;\n const [, val] = value.match(REG_LAB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, a, b;\n if (v1 === NONE) {\n l = 0;\n } else {\n if (v1.endsWith('%')) {\n l = parseFloat(v1);\n if (l > MAX_PCT) {\n l = MAX_PCT;\n }\n } else {\n l = parseFloat(v1);\n }\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n a = 0;\n } else {\n a = v2.endsWith('%') ? parseFloat(v2) * COEF_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n b = v3.endsWith('%') ? parseFloat(v3) * COEF_PCT : parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'lab',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(a, HEX),\n v3 === NONE ? v3 : roundToPrecision(b, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const fl = (l + HEX) / LAB_L;\n const fa = a / LAB_A + fl;\n const fb = fl - b / LAB_B;\n const powFl = Math.pow(fl, POW_CUBE);\n const powFa = Math.pow(fa, POW_CUBE);\n const powFb = Math.pow(fb, POW_CUBE);\n const xyz = [\n powFa > LAB_EPSILON ? powFa : (fa * LAB_L - HEX) / LAB_KAPPA,\n l > COND_POW ? powFl : l / LAB_KAPPA,\n powFb > LAB_EPSILON ? powFb : (fb * LAB_L - HEX) / LAB_KAPPA\n ];\n const [x, y, z] = xyz.map(\n (val, i) => val * (D50[i] as number)\n ) as TriColorChannels;\n return [\n 'xyz-d50',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * parse lch()\n * @param value - lch color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d50', x, y, z, alpha], ['lch', l, c, h, alpha]\n * - '(empty)', NullObject\n */\nexport const parseLch = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_LCH.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 1.5;\n const [, val] = value.match(REG_LCH) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, c, h;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n c = 0;\n } else {\n c = v2.endsWith('%') ? parseFloat(v2) * COEF_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'lch',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(c, HEX),\n v3 === NONE ? v3 : roundToPrecision(h, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const a = c * Math.cos((h * Math.PI) / DEG_HALF);\n const b = c * Math.sin((h * Math.PI) / DEG_HALF);\n const [, x, y, z] = parseLab(`lab(${l} ${a} ${b})`) as ComputedColorChannels;\n return [\n 'xyz-d50',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha as number\n ];\n};\n\n/**\n * parse oklab()\n * @param value - oklab color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d65', x, y, z, alpha], ['oklab', l, a, b, alpha]\n * - '(empty)', NullObject\n */\nexport const parseOklab = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_OKLAB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 0.4;\n const [, val] = value.match(REG_OKLAB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, a, b;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n a = 0;\n } else if (v2.endsWith('%')) {\n a = (parseFloat(v2) * COEF_PCT) / MAX_PCT;\n } else {\n a = parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else if (v3.endsWith('%')) {\n b = (parseFloat(v3) * COEF_PCT) / MAX_PCT;\n } else {\n b = parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'oklab',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(a, HEX),\n v3 === NONE ? v3 : roundToPrecision(b, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l, a, b]);\n const xyzLms = lms.map(c => Math.pow(c, POW_CUBE)) as TriColorChannels;\n const [x, y, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);\n return [\n 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha as number\n ];\n};\n\n/**\n * parse oklch()\n * @param value - oklch color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d65', x, y, z, alpha], ['oklch', l, c, h, alpha]\n * - '(empty)', NullObject\n */\nexport const parseOklch = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_OKLCH.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 0.4;\n const [, val] = value.match(REG_OKLCH) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, c, h;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n c = 0;\n } else {\n if (v2.endsWith('%')) {\n c = (parseFloat(v2) * COEF_PCT) / MAX_PCT;\n } else {\n c = parseFloat(v2);\n }\n if (c < 0) {\n c = 0;\n }\n }\n if (v3 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'oklch',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(c, HEX),\n v3 === NONE ? v3 : roundToPrecision(h, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const a = c * Math.cos((h * Math.PI) / DEG_HALF);\n const b = c * Math.sin((h * Math.PI) / DEG_HALF);\n const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l, a, b]);\n const xyzLms = lms.map(cc => Math.pow(cc, POW_CUBE)) as TriColorChannels;\n const [x, y, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);\n return [\n 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * parse color()\n * @param value - color function value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-(d50|d65)', x, y, z, alpha], [cs, r, g, b, alpha]\n * - '(empty)', NullObject\n */\nexport const parseColorFunc = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', d50 = false, format = '', nullable = false } = opt;\n if (!REG_FN_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n let [cs, v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n let r, g, b;\n if (cs === 'xyz') {\n cs = 'xyz-d65';\n }\n if (v1 === NONE) {\n r = 0;\n } else {\n r = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n }\n if (v2 === NONE) {\n g = 0;\n } else {\n g = v2.endsWith('%') ? parseFloat(v2) / MAX_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n b = v3.endsWith('%') ? parseFloat(v3) / MAX_PCT : parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format) || (format === VAL_MIX && cs === colorSpace)) {\n return [\n cs,\n v1 === NONE ? v1 : roundToPrecision(r, DEC),\n v2 === NONE ? v2 : roundToPrecision(g, DEC),\n v3 === NONE ? v3 : roundToPrecision(b, DEC),\n v4 === NONE ? v4 : alpha\n ];\n }\n let x = 0;\n let y = 0;\n let z = 0;\n // srgb-linear\n if (cs === 'srgb-linear') {\n [x, y, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r, g, b]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // display-p3\n } else if (cs === 'display-p3') {\n const linearRgb = transformRgbToLinearRgb([\n r * MAX_RGB,\n g * MAX_RGB,\n b * MAX_RGB\n ]);\n [x, y, z] = transformMatrix(MATRIX_P3_TO_XYZ, linearRgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // rec2020\n } else if (cs === 'rec2020') {\n const ALPHA = 1.09929682680944;\n const BETA = 0.018053968510807;\n const REC_COEF = 0.45;\n const rgb = [r, g, b].map(c => {\n let cl;\n if (c < BETA * REC_COEF * DEC) {\n cl = c / (REC_COEF * DEC);\n } else {\n cl = Math.pow((c + ALPHA - 1) / ALPHA, 1 / REC_COEF);\n }\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_REC2020_TO_XYZ, rgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // a98-rgb\n } else if (cs === 'a98-rgb') {\n const POW_A98 = 563 / 256;\n const rgb = [r, g, b].map(c => {\n const cl = Math.pow(c, POW_A98);\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_A98_TO_XYZ, rgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // prophoto-rgb\n } else if (cs === 'prophoto-rgb') {\n const POW_PROPHOTO = 1.8;\n const rgb = [r, g, b].map(c => {\n let cl;\n if (c > 1 / (HEX * DUO)) {\n cl = Math.pow(c, POW_PROPHOTO);\n } else {\n cl = c / HEX;\n }\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_PROPHOTO_TO_XYZ_D50, rgb);\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // xyz, xyz-d50, xyz-d65\n } else if (/^xyz(?:-d(?:50|65))?$/.test(cs)) {\n [x, y, z] = [r, g, b];\n if (cs === 'xyz-d50') {\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z]);\n }\n } else if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // srgb\n } else {\n [x, y, z] = transformRgbToXyz([r * MAX_RGB, g * MAX_RGB, b * MAX_RGB]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n }\n return [\n d50 ? 'xyz-d50' : 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n format === VAL_MIX && v4 === NONE ? v4 : alpha\n ];\n};\n\n/**\n * parse color value\n * @param value - CSS color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-(d50|d65)', x, y, z, alpha], ['rgb', r, g, b, alpha]\n * - value, '(empty)', NullObject\n */\nexport const parseColorValue = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { d50 = false, format = '', nullable = false } = opt;\n if (!REG_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n let x = 0;\n let y = 0;\n let z = 0;\n let alpha = 0;\n // complement currentcolor as a missing color\n if (REG_CURRENT.test(value)) {\n if (format === VAL_COMP) {\n return ['rgb', 0, 0, 0, 0];\n }\n if (format === VAL_SPEC) {\n return value;\n }\n // named-color\n } else if (/^[a-z]+$/.test(value)) {\n if (Object.hasOwn(NAMED_COLORS, value)) {\n if (format === VAL_SPEC) {\n return value;\n }\n const [r, g, b] = NAMED_COLORS[\n value as keyof typeof NAMED_COLORS\n ] as TriColorChannels;\n alpha = 1;\n if (format === VAL_COMP) {\n return ['rgb', r, g, b, alpha];\n }\n [x, y, z] = transformRgbToXyz([r, g, b], true);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n } else {\n switch (format) {\n case VAL_COMP: {\n if (nullable && value !== 'transparent') {\n return new NullObject();\n }\n return ['rgb', 0, 0, 0, 0];\n }\n case VAL_SPEC: {\n if (value === 'transparent') {\n return value;\n }\n return '';\n }\n case VAL_MIX: {\n if (value === 'transparent') {\n return ['rgb', 0, 0, 0, 0];\n }\n return new NullObject();\n }\n default:\n }\n }\n // hex-color\n } else if (value[0] === '#') {\n if (REG_SPEC.test(format)) {\n const rgb = convertHexToRgb(value);\n return ['rgb', ...rgb];\n }\n [x, y, z, alpha] = convertHexToXyz(value);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // lab()\n } else if (value.startsWith('lab')) {\n if (REG_SPEC.test(format)) {\n return parseLab(value, opt);\n }\n [, x, y, z, alpha] = parseLab(value) as ComputedColorChannels;\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // lch()\n } else if (value.startsWith('lch')) {\n if (REG_SPEC.test(format)) {\n return parseLch(value, opt);\n }\n [, x, y, z, alpha] = parseLch(value) as ComputedColorChannels;\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // oklab()\n } else if (value.startsWith('oklab')) {\n if (REG_SPEC.test(format)) {\n return parseOklab(value, opt);\n }\n [, x, y, z, alpha] = parseOklab(value) as ComputedColorChannels;\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // oklch()\n } else if (value.startsWith('oklch')) {\n if (REG_SPEC.test(format)) {\n return parseOklch(value, opt);\n }\n [, x, y, z, alpha] = parseOklch(value) as ComputedColorChannels;\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n } else {\n let r, g, b;\n // hsl()\n if (value.startsWith('hsl')) {\n [, r, g, b, alpha] = parseHsl(value) as ComputedColorChannels;\n // hwb()\n } else if (value.startsWith('hwb')) {\n [, r, g, b, alpha] = parseHwb(value) as ComputedColorChannels;\n // rgb()\n } else {\n [, r, g, b, alpha] = parseRgb(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n return ['rgb', Math.round(r), Math.round(g), Math.round(b), alpha];\n }\n [x, y, z] = transformRgbToXyz([r, g, b]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n }\n return [\n d50 ? 'xyz-d50' : 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * resolve color value\n * @param value - CSS color value\n * @param [opt] - options\n * @returns resolved color\n * - [cs, v1, v2, v3, alpha], value, '(empty)', NullObject\n */\nexport const resolveColorValue = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorValue',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n if (!REG_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n setCache(cacheKey, null);\n return res;\n }\n setCache(cacheKey, res);\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n let cs = '';\n let r = 0;\n let g = 0;\n let b = 0;\n let alpha = 0;\n // complement currentcolor as a missing color\n if (REG_CURRENT.test(value)) {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n // named-color\n } else if (/^[a-z]+$/.test(value)) {\n if (Object.hasOwn(NAMED_COLORS, value)) {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n [r, g, b] = NAMED_COLORS[\n value as keyof typeof NAMED_COLORS\n ] as TriColorChannels;\n alpha = 1;\n } else {\n switch (format) {\n case VAL_SPEC: {\n if (value === 'transparent') {\n setCache(cacheKey, value);\n return value;\n }\n const res = '';\n setCache(cacheKey, res);\n return res;\n }\n case VAL_MIX: {\n if (value === 'transparent') {\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n }\n setCache(cacheKey, null);\n return new NullObject();\n }\n case VAL_COMP:\n default: {\n if (nullable && value !== 'transparent') {\n setCache(cacheKey, null);\n return new NullObject();\n }\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n }\n }\n }\n // hex-color\n } else if (value[0] === '#') {\n [r, g, b, alpha] = convertHexToRgb(value);\n // hsl()\n } else if (value.startsWith('hsl')) {\n [, r, g, b, alpha] = parseHsl(value, opt) as ComputedColorChannels;\n // hwb()\n } else if (value.startsWith('hwb')) {\n [, r, g, b, alpha] = parseHwb(value, opt) as ComputedColorChannels;\n // lab(), lch()\n } else if (/^l(?:ab|ch)/.test(value)) {\n let x, y, z;\n if (value.startsWith('lab')) {\n [cs, x, y, z, alpha] = parseLab(value, opt) as ComputedColorChannels;\n } else {\n [cs, x, y, z, alpha] = parseLch(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n const res: SpecifiedColorChannels = [cs, x, y, z, alpha];\n setCache(cacheKey, res);\n return res;\n }\n [r, g, b] = transformXyzD50ToRgb([x, y, z]);\n // oklab(), oklch()\n } else if (/^okl(?:ab|ch)/.test(value)) {\n let x, y, z;\n if (value.startsWith('oklab')) {\n [cs, x, y, z, alpha] = parseOklab(value, opt) as ComputedColorChannels;\n } else {\n [cs, x, y, z, alpha] = parseOklch(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n const res: SpecifiedColorChannels = [cs, x, y, z, alpha];\n setCache(cacheKey, res);\n return res;\n }\n [r, g, b] = transformXyzToRgb([x, y, z]);\n // rgb()\n } else {\n [, r, g, b, alpha] = parseRgb(value, opt) as ComputedColorChannels;\n }\n if (format === VAL_MIX && colorSpace === 'srgb') {\n const res: SpecifiedColorChannels = [\n 'srgb',\n r / MAX_RGB,\n g / MAX_RGB,\n b / MAX_RGB,\n alpha\n ];\n setCache(cacheKey, res);\n return res;\n }\n const res: SpecifiedColorChannels = [\n 'rgb',\n Math.round(r),\n Math.round(g),\n Math.round(b),\n alpha\n ];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * resolve color()\n * @param value - color function value\n * @param [opt] - options\n * @returns resolved color - [cs, v1, v2, v3, alpha], '(empty)', NullObject\n */\nexport const resolveColorFunc = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorFunc',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n if (!REG_FN_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n setCache(cacheKey, null);\n return res;\n }\n setCache(cacheKey, res);\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n value,\n opt\n ) as SpecifiedColorChannels;\n if (REG_SPEC.test(format) || (format === VAL_MIX && cs === colorSpace)) {\n const res: SpecifiedColorChannels = [cs, v1, v2, v3, v4];\n setCache(cacheKey, res);\n return res;\n }\n const x = parseFloat(`${v1}`);\n const y = parseFloat(`${v2}`);\n const z = parseFloat(`${v3}`);\n const alpha = parseAlpha(`${v4}`);\n const [r, g, b] = transformXyzToRgb([x, y, z], true);\n const res: SpecifiedColorChannels = ['rgb', r, g, b, alpha];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * convert color value to linear rgb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [r, g, b, alpha] r|g|b|alpha: 0..1\n */\nexport const convertColorToLinearRgb = (\n value: string,\n opt: {\n colorSpace?: string;\n format?: string;\n } = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '' } = opt;\n let cs = '';\n let r, g, b, alpha, x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [cs, x, y, z, alpha] = xyz as ComputedColorChannels;\n if (cs === colorSpace) {\n return [x, y, z, alpha];\n }\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (cs === 'srgb-linear') {\n [, r, g, b, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n }\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n }\n return [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ];\n};\n\n/**\n * convert color value to rgb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject\n * - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n */\nexport const convertColorToRgb = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let r, g, b, alpha;\n if (format === VAL_MIX) {\n let rgb;\n if (value.startsWith(FN_COLOR)) {\n rgb = resolveColorFunc(value, opt);\n } else {\n rgb = resolveColorValue(value, opt);\n }\n if (rgb instanceof NullObject) {\n return rgb;\n }\n [, r, g, b, alpha] = rgb as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (cs === 'srgb') {\n [, r, g, b, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n r *= MAX_RGB;\n g *= MAX_RGB;\n b *= MAX_RGB;\n } else {\n [, r, g, b, alpha] = resolveColorFunc(value) as ComputedColorChannels;\n }\n } else if (/^(?:ok)?l(?:ab|ch)/.test(value)) {\n [r, g, b, alpha] = convertColorToLinearRgb(value) as ColorChannels;\n [r, g, b] = transformLinearRgbToRgb([r, g, b]);\n } else {\n [, r, g, b, alpha] = resolveColorValue(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n }\n return [r, g, b, alpha];\n};\n\n/**\n * convert color value to xyz\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [x, y, z, alpha]\n */\nexport const convertColorToXyz = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { d50 = false, format = '' } = opt;\n let x, y, z, alpha;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (d50) {\n if (cs === 'xyz-d50') {\n [, x, y, z, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(\n value,\n opt\n ) as ComputedColorChannels;\n }\n } else if (/^xyz(?:-d65)?$/.test(cs)) {\n [, x, y, z, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n }\n } else {\n [, x, y, z, alpha] = parseColorValue(value, opt) as ComputedColorChannels;\n }\n return [x, y, z, alpha];\n};\n\n/**\n * convert color value to hsl\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [h, s, l, alpha], hue may be powerless\n */\nexport const convertColorToHsl = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number | string, number, number, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let h, s, l, alpha;\n if (REG_HSL.test(value)) {\n [, h, s, l, alpha] = parseHsl(value, {\n format: 'hsl'\n }) as ComputedColorChannels;\n if (format === 'hsl') {\n return [Math.round(h), Math.round(s), Math.round(l), alpha];\n }\n return [h, s, l, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [h, s, l] = transformXyzToHsl([x, y, z], true) as TriColorChannels;\n if (format === 'hsl') {\n return [Math.round(h), Math.round(s), Math.round(l), alpha];\n }\n return [format === VAL_MIX && s === 0 ? NONE : h, s, l, alpha];\n};\n\n/**\n * convert color value to hwb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [h, w, b, alpha], hue may be powerless\n */\nexport const convertColorToHwb = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number | string, number, number, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let h, w, b, alpha;\n if (REG_HWB.test(value)) {\n [, h, w, b, alpha] = parseHwb(value, {\n format: 'hwb'\n }) as ComputedColorChannels;\n if (format === 'hwb') {\n return [Math.round(h), Math.round(w), Math.round(b), alpha];\n }\n return [h, w, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [h, w, b] = transformXyzToHwb([x, y, z], true) as TriColorChannels;\n if (format === 'hwb') {\n return [Math.round(h), Math.round(w), Math.round(b), alpha];\n }\n return [format === VAL_MIX && w + b >= 100 ? NONE : h, w, b, alpha];\n};\n\n/**\n * convert color value to lab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, a, b, alpha]\n */\nexport const convertColorToLab = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, a, b, alpha;\n if (REG_LAB.test(value)) {\n [, l, a, b, alpha] = parseLab(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, a, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n opt.d50 = true;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value, {\n d50: true\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value, {\n d50: true\n }) as ComputedColorChannels;\n }\n [l, a, b] = transformXyzD50ToLab([x, y, z], true);\n return [l, a, b, alpha];\n};\n\n/**\n * convert color value to lch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, c, h, alpha], hue may be powerless\n */\nexport const convertColorToLch = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number, number, number | string, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, c, h, alpha;\n if (REG_LCH.test(value)) {\n [, l, c, h, alpha] = parseLch(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, c, h, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n opt.d50 = true;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value, {\n d50: true\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value, {\n d50: true\n }) as ComputedColorChannels;\n }\n [l, c, h] = transformXyzD50ToLch([x, y, z], true);\n return [l, c, format === VAL_MIX && c === 0 ? NONE : h, alpha];\n};\n\n/**\n * convert color value to oklab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, a, b, alpha]\n */\nexport const convertColorToOklab = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, a, b, alpha;\n if (REG_OKLAB.test(value)) {\n [, l, a, b, alpha] = parseOklab(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, a, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [l, a, b] = transformXyzToOklab([x, y, z], true);\n return [l, a, b, alpha];\n};\n\n/**\n * convert color value to oklch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, c, h, alpha], hue may be powerless\n */\nexport const convertColorToOklch = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number, number, number | string, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, c, h, alpha;\n if (REG_OKLCH.test(value)) {\n [, l, c, h, alpha] = parseOklch(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, c, h, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [l, c, h] = transformXyzToOklch([x, y, z], true) as TriColorChannels;\n return [l, c, format === VAL_MIX && c === 0 ? NONE : h, alpha];\n};\n\n/**\n * resolve color-mix()\n * @param value - color-mix color value\n * @param [opt] - options\n * @returns resolved color - [cs, v1, v2, v3, alpha], '(empty)'\n */\nexport const resolveColorMix = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorMix',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n const nestedItems = [];\n let colorSpace = '';\n let hueArc = '';\n let colorA = '';\n let pctA = '';\n let colorB = '';\n let pctB = '';\n let parsed = false;\n if (!REG_MIX.test(value)) {\n // nested color-mix()\n if (value.startsWith(FN_MIX) && REG_MIX_NEST.test(value)) {\n const regColorSpace = new RegExp(`^(?:${CS_RGB}|${CS_XYZ})$`);\n const items = value.match(REG_MIX_NEST) as RegExpMatchArray;\n for (const item of items) {\n if (item) {\n let val = resolveColorMix(item, {\n format: format === VAL_SPEC ? format : VAL_COMP\n }) as ComputedColorChannels | string;\n // computed value\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val as ComputedColorChannels;\n if (v1 === 0 && v2 === 0 && v3 === 0 && v4 === 0) {\n value = '';\n break;\n }\n if (regColorSpace.test(cs)) {\n if (v4 === 1) {\n val = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n val = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else if (v4 === 1) {\n val = `${cs}(${v1} ${v2} ${v3})`;\n } else {\n val = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else if (!REG_MIX.test(val)) {\n value = '';\n break;\n }\n nestedItems.push(val);\n value = value.replace(item, val);\n }\n }\n if (!value) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n // contains light-dark()\n } else if (\n value.startsWith(FN_MIX) &&\n value.endsWith(')') &&\n value.includes(FN_LIGHT_DARK)\n ) {\n const regColorSpace = new RegExp(`in\\\\s+(${CS_MIX})`);\n const colorParts = value.replace(FN_MIX, '').replace(/\\)$/, '');\n const [csPart = '', partA = '', partB = ''] = splitValue(colorParts, {\n delimiter: ','\n });\n const [colorPartA = '', pctPartA = ''] = splitValue(partA);\n const [colorPartB = '', pctPartB = ''] = splitValue(partB);\n const specifiedColorA = resolveColor(colorPartA, {\n format: VAL_SPEC\n }) as string;\n const specifiedColorB = resolveColor(colorPartB, {\n format: VAL_SPEC\n }) as string;\n if (regColorSpace.test(csPart) && specifiedColorA && specifiedColorB) {\n if (format === VAL_SPEC) {\n const [, cs] = csPart.match(regColorSpace) as MatchedRegExp;\n if (REG_CS_HUE.test(cs)) {\n [, colorSpace, hueArc] = cs.match(REG_CS_HUE) as MatchedRegExp;\n } else {\n colorSpace = cs;\n }\n colorA = specifiedColorA;\n if (pctPartA) {\n pctA = pctPartA;\n }\n colorB = specifiedColorB;\n if (pctPartB) {\n pctB = pctPartB;\n }\n value = value\n .replace(colorPartA, specifiedColorA)\n .replace(colorPartB, specifiedColorB);\n parsed = true;\n } else {\n const resolvedColorA = resolveColor(colorPartA, opt);\n const resolvedColorB = resolveColor(colorPartB, opt);\n if (isString(resolvedColorA) && isString(resolvedColorB)) {\n value = value\n .replace(colorPartA, resolvedColorA)\n .replace(colorPartB, resolvedColorB);\n }\n }\n } else {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n } else {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n }\n if (nestedItems.length && format === VAL_SPEC) {\n const regColorSpace = new RegExp(`^color-mix\\\\(\\\\s*in\\\\s+(${CS_MIX})\\\\s*,`);\n const [, cs] = value.match(regColorSpace) as MatchedRegExp;\n if (REG_CS_HUE.test(cs)) {\n [, colorSpace, hueArc] = cs.match(REG_CS_HUE) as MatchedRegExp;\n } else {\n colorSpace = cs;\n }\n if (nestedItems.length === 2) {\n let [itemA, itemB] = nestedItems as [string, string];\n itemA = itemA.replace(/(?=[()])/g, '\\\\');\n itemB = itemB.replace(/(?=[()])/g, '\\\\');\n const regA = new RegExp(`(${itemA})(?:\\\\s+(${PCT}))?`);\n const regB = new RegExp(`(${itemB})(?:\\\\s+(${PCT}))?`);\n [, colorA, pctA] = value.match(regA) as MatchedRegExp;\n [, colorB, pctB] = value.match(regB) as MatchedRegExp;\n } else {\n let [item] = nestedItems as [string];\n item = item.replace(/(?=[()])/g, '\\\\');\n const itemPart = `${item}(?:\\\\s+${PCT})?`;\n const itemPartCapt = `(${item})(?:\\\\s+(${PCT}))?`;\n const regItemPart = new RegExp(`^${itemPartCapt}$`);\n const regLastItem = new RegExp(`${itemPartCapt}\\\\s*\\\\)$`);\n const regColorPart = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\\\s+(${PCT}))?$`);\n // item is at the end\n if (regLastItem.test(value)) {\n const reg = new RegExp(\n `(${SYN_MIX_PART})\\\\s*,\\\\s*(${itemPart})\\\\s*\\\\)$`\n );\n const [, colorPartA, colorPartB] = value.match(reg) as MatchedRegExp;\n [, colorA, pctA] = colorPartA.match(regColorPart) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(regItemPart) as MatchedRegExp;\n } else {\n const reg = new RegExp(\n `(${itemPart})\\\\s*,\\\\s*(${SYN_MIX_PART})\\\\s*\\\\)$`\n );\n const [, colorPartA, colorPartB] = value.match(reg) as MatchedRegExp;\n [, colorA, pctA] = colorPartA.match(regItemPart) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(regColorPart) as MatchedRegExp;\n }\n }\n } else if (!parsed) {\n const [, cs, colorPartA, colorPartB] = value.match(\n REG_MIX_CAPT\n ) as MatchedRegExp;\n const reg = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\\\s+(${PCT}))?$`);\n [, colorA, pctA] = colorPartA.match(reg) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(reg) as MatchedRegExp;\n if (REG_CS_HUE.test(cs)) {\n [, colorSpace, hueArc] = cs.match(REG_CS_HUE) as MatchedRegExp;\n } else {\n colorSpace = cs;\n }\n }\n // normalize percentages and set multipler\n let pA, pB, m;\n if (pctA && pctB) {\n const p1 = parseFloat(pctA) / MAX_PCT;\n const p2 = parseFloat(pctB) / MAX_PCT;\n if (p1 < 0 || p1 > 1 || p2 < 0 || p2 > 1 || (p1 === 0 && p2 === 0)) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const factor = p1 + p2;\n pA = p1 / factor;\n pB = p2 / factor;\n m = factor < 1 ? factor : 1;\n } else {\n if (pctA) {\n pA = parseFloat(pctA) / MAX_PCT;\n if (pA < 0 || pA > 1) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n pB = 1 - pA;\n } else if (pctB) {\n pB = parseFloat(pctB) / MAX_PCT;\n if (pB < 0 || pB > 1) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n pA = 1 - pB;\n } else {\n pA = HALF;\n pB = HALF;\n }\n m = 1;\n }\n if (colorSpace === 'xyz') {\n colorSpace = 'xyz-d65';\n }\n // specified value\n if (format === VAL_SPEC) {\n let valueA = '';\n let valueB = '';\n if (colorA.startsWith(FN_MIX) || colorA.startsWith(FN_LIGHT_DARK)) {\n valueA = colorA;\n } else if (colorA.startsWith(FN_COLOR)) {\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n colorA,\n opt\n ) as SpecifiedColorChannels;\n if (v4 === 1) {\n valueA = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n valueA = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n const val = parseColorValue(colorA, opt);\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val;\n if (v4 === 1) {\n if (cs === 'rgb') {\n valueA = `${cs}(${v1}, ${v2}, ${v3})`;\n } else {\n valueA = `${cs}(${v1} ${v2} ${v3})`;\n }\n } else if (cs === 'rgb') {\n valueA = `${cs}a(${v1}, ${v2}, ${v3}, ${v4})`;\n } else {\n valueA = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n if (!isString(val) || !val) {\n setCache(cacheKey, '');\n return '';\n }\n valueA = val;\n }\n }\n if (colorB.startsWith(FN_MIX) || colorB.startsWith(FN_LIGHT_DARK)) {\n valueB = colorB;\n } else if (colorB.startsWith(FN_COLOR)) {\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n colorB,\n opt\n ) as SpecifiedColorChannels;\n if (v4 === 1) {\n valueB = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n valueB = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n const val = parseColorValue(colorB, opt);\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val;\n if (v4 === 1) {\n if (cs === 'rgb') {\n valueB = `${cs}(${v1}, ${v2}, ${v3})`;\n } else {\n valueB = `${cs}(${v1} ${v2} ${v3})`;\n }\n } else if (cs === 'rgb') {\n valueB = `${cs}a(${v1}, ${v2}, ${v3}, ${v4})`;\n } else {\n valueB = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n if (!isString(val) || !val) {\n setCache(cacheKey, '');\n return '';\n }\n valueB = val;\n }\n }\n if (pctA && pctB) {\n valueA += ` ${parseFloat(pctA)}%`;\n valueB += ` ${parseFloat(pctB)}%`;\n } else if (pctA) {\n const pA = parseFloat(pctA);\n if (pA !== MAX_PCT * HALF) {\n valueA += ` ${pA}%`;\n }\n } else if (pctB) {\n const pA = MAX_PCT - parseFloat(pctB);\n if (pA !== MAX_PCT * HALF) {\n valueA += ` ${pA}%`;\n }\n }\n if (hueArc) {\n const res = `color-mix(in ${colorSpace} ${hueArc} hue, ${valueA}, ${valueB})`;\n setCache(cacheKey, res);\n return res;\n } else {\n const res = `color-mix(in ${colorSpace}, ${valueA}, ${valueB})`;\n setCache(cacheKey, res);\n return res;\n }\n }\n let r = 0;\n let g = 0;\n let b = 0;\n let alpha = 0;\n // in srgb, srgb-linear\n if (/^srgb(?:-linear)?$/.test(colorSpace)) {\n let rgbA, rgbB;\n if (colorSpace === 'srgb') {\n if (REG_CURRENT.test(colorA)) {\n rgbA = [NONE, NONE, NONE, NONE];\n } else {\n rgbA = convertColorToRgb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n rgbB = [NONE, NONE, NONE, NONE];\n } else {\n rgbB = convertColorToRgb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n rgbA = [NONE, NONE, NONE, NONE];\n } else {\n rgbA = convertColorToLinearRgb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n rgbB = [NONE, NONE, NONE, NONE];\n } else {\n rgbB = convertColorToLinearRgb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (rgbA instanceof NullObject || rgbB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [rrA, ggA, bbA, aaA] = rgbA as NumStrColorChannels;\n const [rrB, ggB, bbB, aaB] = rgbB as NumStrColorChannels;\n const rNone = rrA === NONE && rrB === NONE;\n const gNone = ggA === NONE && ggB === NONE;\n const bNone = bbA === NONE && bbB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n const [[rA, gA, bA, alphaA], [rB, gB, bB, alphaB]] =\n normalizeColorComponents(\n [rrA, ggA, bbA, aaA],\n [rrB, ggB, bbB, aaB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n if (alpha === 0) {\n r = rA * pA + rB * pB;\n g = gA * pA + gB * pB;\n b = bA * pA + bB * pB;\n } else {\n r = (rA * factorA + rB * factorB) / alpha;\n g = (gA * factorA + gB * factorB) / alpha;\n b = (bA * factorA + bB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n rNone ? NONE : roundToPrecision(r, HEX),\n gNone ? NONE : roundToPrecision(g, HEX),\n bNone ? NONE : roundToPrecision(b, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n r *= MAX_RGB;\n g *= MAX_RGB;\n b *= MAX_RGB;\n // in xyz, xyz-d65, xyz-d50\n } else if (REG_CS_XYZ.test(colorSpace)) {\n let xyzA, xyzB;\n if (REG_CURRENT.test(colorA)) {\n xyzA = [NONE, NONE, NONE, NONE];\n } else {\n xyzA = convertColorToXyz(colorA, {\n colorSpace,\n d50: colorSpace === 'xyz-d50',\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n xyzB = [NONE, NONE, NONE, NONE];\n } else {\n xyzB = convertColorToXyz(colorB, {\n colorSpace,\n d50: colorSpace === 'xyz-d50',\n format: VAL_MIX\n });\n }\n if (xyzA instanceof NullObject || xyzB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [xxA, yyA, zzA, aaA] = xyzA;\n const [xxB, yyB, zzB, aaB] = xyzB;\n const xNone = xxA === NONE && xxB === NONE;\n const yNone = yyA === NONE && yyB === NONE;\n const zNone = zzA === NONE && zzB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n const [[xA, yA, zA, alphaA], [xB, yB, zB, alphaB]] =\n normalizeColorComponents(\n [xxA, yyA, zzA, aaA],\n [xxB, yyB, zzB, aaB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n let x, y, z;\n if (alpha === 0) {\n x = xA * pA + xB * pB;\n y = yA * pA + yB * pB;\n z = zA * pA + zB * pB;\n } else {\n x = (xA * factorA + xB * factorB) / alpha;\n y = (yA * factorA + yB * factorB) / alpha;\n z = (zA * factorA + zB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n xNone ? NONE : roundToPrecision(x, HEX),\n yNone ? NONE : roundToPrecision(y, HEX),\n zNone ? NONE : roundToPrecision(z, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n if (colorSpace === 'xyz-d50') {\n [r, g, b] = transformXyzD50ToRgb([x, y, z], true);\n } else {\n [r, g, b] = transformXyzToRgb([x, y, z], true);\n }\n // in hsl, hwb\n } else if (/^h(?:sl|wb)$/.test(colorSpace)) {\n let hslA, hslB;\n if (colorSpace === 'hsl') {\n if (REG_CURRENT.test(colorA)) {\n hslA = [NONE, NONE, NONE, NONE];\n } else {\n hslA = convertColorToHsl(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n hslB = [NONE, NONE, NONE, NONE];\n } else {\n hslB = convertColorToHsl(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n hslA = [NONE, NONE, NONE, NONE];\n } else {\n hslA = convertColorToHwb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n hslB = [NONE, NONE, NONE, NONE];\n } else {\n hslB = convertColorToHwb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (hslA instanceof NullObject || hslB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [hhA, ssA, llA, aaA] = hslA;\n const [hhB, ssB, llB, aaB] = hslB;\n const alphaNone = aaA === NONE && aaB === NONE;\n let [[hA, sA, lA, alphaA], [hB, sB, lB, alphaB]] = normalizeColorComponents(\n [hhA, ssA, llA, aaA],\n [hhB, ssB, llB, aaB],\n true\n );\n if (hueArc) {\n [hA, hB] = interpolateHue(hA, hB, hueArc);\n }\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n const h = (hA * pA + hB * pB) % DEG;\n let s, l;\n if (alpha === 0) {\n s = sA * pA + sB * pB;\n l = lA * pA + lB * pB;\n } else {\n s = (sA * factorA + sB * factorB) / alpha;\n l = (lA * factorA + lB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n [r, g, b] = convertColorToRgb(\n `${colorSpace}(${h} ${s} ${l})`\n ) as ColorChannels;\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n 'srgb',\n roundToPrecision(r / MAX_RGB, HEX),\n roundToPrecision(g / MAX_RGB, HEX),\n roundToPrecision(b / MAX_RGB, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n // in lch, oklch\n } else if (/^(?:ok)?lch$/.test(colorSpace)) {\n let lchA, lchB;\n if (colorSpace === 'lch') {\n if (REG_CURRENT.test(colorA)) {\n lchA = [NONE, NONE, NONE, NONE];\n } else {\n lchA = convertColorToLch(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n lchB = [NONE, NONE, NONE, NONE];\n } else {\n lchB = convertColorToLch(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n lchA = [NONE, NONE, NONE, NONE];\n } else {\n lchA = convertColorToOklch(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n lchB = [NONE, NONE, NONE, NONE];\n } else {\n lchB = convertColorToOklch(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (lchA instanceof NullObject || lchB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [llA, ccA, hhA, aaA] = lchA;\n const [llB, ccB, hhB, aaB] = lchB;\n const lNone = llA === NONE && llB === NONE;\n const cNone = ccA === NONE && ccB === NONE;\n const hNone = hhA === NONE && hhB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n let [[lA, cA, hA, alphaA], [lB, cB, hB, alphaB]] = normalizeColorComponents(\n [llA, ccA, hhA, aaA],\n [llB, ccB, hhB, aaB],\n true\n );\n if (hueArc) {\n [hA, hB] = interpolateHue(hA, hB, hueArc);\n }\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n const h = (hA * pA + hB * pB) % DEG;\n let l, c;\n if (alpha === 0) {\n l = lA * pA + lB * pB;\n c = cA * pA + cB * pB;\n } else {\n l = (lA * factorA + lB * factorB) / alpha;\n c = (cA * factorA + cB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n lNone ? NONE : roundToPrecision(l, HEX),\n cNone ? NONE : roundToPrecision(c, HEX),\n hNone ? NONE : roundToPrecision(h, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n [, r, g, b] = resolveColorValue(\n `${colorSpace}(${l} ${c} ${h})`\n ) as ComputedColorChannels;\n // in lab, oklab\n } else {\n let labA, labB;\n if (colorSpace === 'lab') {\n if (REG_CURRENT.test(colorA)) {\n labA = [NONE, NONE, NONE, NONE];\n } else {\n labA = convertColorToLab(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n labB = [NONE, NONE, NONE, NONE];\n } else {\n labB = convertColorToLab(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n labA = [NONE, NONE, NONE, NONE];\n } else {\n labA = convertColorToOklab(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n labB = [NONE, NONE, NONE, NONE];\n } else {\n labB = convertColorToOklab(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (labA instanceof NullObject || labB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [llA, aaA, bbA, alA] = labA;\n const [llB, aaB, bbB, alB] = labB;\n const lNone = llA === NONE && llB === NONE;\n const aNone = aaA === NONE && aaB === NONE;\n const bNone = bbA === NONE && bbB === NONE;\n const alphaNone = alA === NONE && alB === NONE;\n const [[lA, aA, bA, alphaA], [lB, aB, bB, alphaB]] =\n normalizeColorComponents(\n [llA, aaA, bbA, alA],\n [llB, aaB, bbB, alB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n let l, aO, bO;\n if (alpha === 0) {\n l = lA * pA + lB * pB;\n aO = aA * pA + aB * pB;\n bO = bA * pA + bB * pB;\n } else {\n l = (lA * factorA + lB * factorB) / alpha;\n aO = (aA * factorA + aB * factorB) / alpha;\n bO = (bA * factorA + bB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n lNone ? NONE : roundToPrecision(l, HEX),\n aNone ? NONE : roundToPrecision(aO, HEX),\n bNone ? NONE : roundToPrecision(bO, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n [, r, g, b] = resolveColorValue(\n `${colorSpace}(${l} ${aO} ${bO})`\n ) as ComputedColorChannels;\n }\n const res: SpecifiedColorChannels = [\n 'rgb',\n Math.round(r),\n Math.round(g),\n Math.round(b),\n parseFloat((alpha * m).toFixed(3))\n ];\n setCache(cacheKey, res);\n return res;\n};\n"],"names":["res","val","cs","pA"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * common
3
+ */
4
+ /**
5
+ * get type
6
+ * @param o - object to check
7
+ * @returns type of object
8
+ */
9
+ export declare const getType: (o: unknown) => string;
10
+ /**
11
+ * is string
12
+ * @param o - object to check
13
+ * @returns result
14
+ */
15
+ export declare const isString: (o: unknown) => o is string;
16
+ /**
17
+ * is string or number
18
+ * @param o - object to check
19
+ * @returns result
20
+ */
21
+ export declare const isStringOrNumber: (o: unknown) => boolean;
@@ -0,0 +1,7 @@
1
+ const isString = (o) => typeof o === "string" || o instanceof String;
2
+ const isStringOrNumber = (o) => isString(o) || typeof o === "number";
3
+ export {
4
+ isString,
5
+ isStringOrNumber
6
+ };
7
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sources":["../../../src/js/common.ts"],"sourcesContent":["/**\n * common\n */\n\n/* numeric constants */\nconst TYPE_FROM = 8;\nconst TYPE_TO = -1;\n\n/**\n * get type\n * @param o - object to check\n * @returns type of object\n */\nexport const getType = (o: unknown): string =>\n Object.prototype.toString.call(o).slice(TYPE_FROM, TYPE_TO);\n\n/**\n * is string\n * @param o - object to check\n * @returns result\n */\nexport const isString = (o: unknown): o is string =>\n typeof o === 'string' || o instanceof String;\n\n/**\n * is string or number\n * @param o - object to check\n * @returns result\n */\nexport const isStringOrNumber = (o: unknown): boolean =>\n isString(o) || typeof o === 'number';\n"],"names":[],"mappings":"AAqBO,MAAM,WAAW,CAAC,MACvB,OAAO,MAAM,YAAY,aAAa;AAOjC,MAAM,mBAAmB,CAAC,MAC/B,SAAS,CAAC,KAAK,OAAO,MAAM;"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * constant
3
+ */
4
+ export declare const ANGLE = "deg|g?rad|turn";
5
+ export declare const LENGTH = "[cm]m|[dls]?v(?:[bhiw]|max|min)|in|p[ctx]|q|r?(?:[cl]h|cap|e[mx]|ic)";
6
+ export declare const NUM = "[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?";
7
+ export declare const NUM_POSITIVE = "\\+?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?";
8
+ export declare const NONE = "none";
9
+ export declare const PCT = "[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%";
10
+ export declare const SYN_FN_CALC = "^(?:calc|clamp|max|min|exp|hypot|log|pow|sqrt|abs|sign|mod|rem|round|a?(?:cos|sin|tan)|atan2)\\(|(?<=[*\\/\\s\\(])(?:calc|clamp|max|min|exp|hypot|log|pow|sqrt|abs|sign|mod|rem|round|a?(?:cos|sin|tan)|atan2)\\(";
11
+ export declare const SYN_FN_MATH_START = "^(?:clamp|max|min|exp|hypot|log|pow|sqrt|abs|sign|mod|rem|round|a?(?:cos|sin|tan)|atan2)\\($";
12
+ export declare const SYN_FN_VAR = "^var\\(|(?<=[*\\/\\s\\(])var\\(";
13
+ export declare const SYN_FN_VAR_START = "^(?:var|calc|clamp|max|min|exp|hypot|log|pow|sqrt|abs|sign|mod|rem|round|a?(?:cos|sin|tan)|atan2)\\(";
14
+ export declare const CS_HUE = "(?:(?:ok)?lch|hsl|hwb)(?:\\s(?:(?:de|in)creasing|longer|shorter)\\shue)?";
15
+ export declare const CS_HUE_CAPT = "((?:ok)?lch|hsl|hwb)(?:\\s((?:de|in)creasing|longer|shorter)\\shue)?";
16
+ export declare const CS_LAB = "(?:ok)?lab";
17
+ export declare const CS_LCH = "(?:ok)?lch";
18
+ export declare const CS_SRGB = "srgb(?:-linear)?";
19
+ export declare const CS_RGB = "(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?";
20
+ export declare const CS_XYZ = "xyz(?:-d(?:50|65))?";
21
+ export declare const CS_RECT = "(?:ok)?lab|(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?";
22
+ export declare const CS_MIX = "(?:(?:ok)?lch|hsl|hwb)(?:\\s(?:(?:de|in)creasing|longer|shorter)\\shue)?|(?:ok)?lab|(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?";
23
+ export declare const FN_COLOR = "color(";
24
+ export declare const FN_LIGHT_DARK = "light-dark(";
25
+ export declare const FN_MIX = "color-mix(";
26
+ export declare const FN_REL = "(?:(?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?)\\(\\s*from\\s+";
27
+ export declare const FN_REL_CAPT = "((?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?)\\(\\s*from\\s+";
28
+ export declare const FN_VAR = "var(";
29
+ export declare const SYN_FN_COLOR = "(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?";
30
+ export declare const SYN_FN_LIGHT_DARK = "^light-dark\\(";
31
+ export declare const SYN_FN_REL = "^(?:(?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?)\\(\\s*from\\s+|(?<=[\\s])(?:(?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?)\\(\\s*from\\s+";
32
+ export declare const SYN_HSL = "(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?";
33
+ export declare const SYN_HSL_LV3 = "[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?";
34
+ export declare const SYN_LCH = "(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?";
35
+ export declare const SYN_MOD = "(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?";
36
+ export declare const SYN_RGB_LV3 = "(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?";
37
+ export declare const SYN_COLOR_TYPE = "[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)";
38
+ export declare const SYN_MIX_PART = "(?:[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\))(?:\\s+[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%)?";
39
+ export declare const SYN_MIX = "color-mix\\(\\s*in\\s+(?:(?:(?:ok)?lch|hsl|hwb)(?:\\s(?:(?:de|in)creasing|longer|shorter)\\shue)?|(?:ok)?lab|(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)\\s*,\\s*(?:[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\))(?:\\s+[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%)?\\s*,\\s*(?:[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\))(?:\\s+[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%)?\\s*\\)";
40
+ export declare const SYN_MIX_CAPT = "color-mix\\(\\s*in\\s+((?:(?:ok)?lch|hsl|hwb)(?:\\s(?:(?:de|in)creasing|longer|shorter)\\shue)?|(?:ok)?lab|(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)\\s*,\\s*((?:[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\))(?:\\s+[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%)?)\\s*,\\s*((?:[a-z]+|#[\\da-f]{3}|#[\\da-f]{4}|#[\\da-f]{6}|#[\\da-f]{8}|hsla?\\(\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2}(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|rgba?\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?){2}|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%(?:\\s*,\\s*[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%){2})(?:\\s*,\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%))?\\s*\\)|(?:hsla?|hwb)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:(?:ok)?lab|rgba?)\\(\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){2}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|(?:ok)?lch\\(\\s*(?:(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)\\s+){2}(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?(?:deg|g?rad|turn)?|none)(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\)|color\\(\\s*(?:(?:a98|prophoto)-rgb|display-p3|rec2020|srgb(?:-linear)?|xyz(?:-d(?:50|65))?)(?:\\s+(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none)){3}(?:\\s*\\/\\s*(?:[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?|[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%|none))?\\s*\\))(?:\\s+[+-]?(?:(?:0|[1-9]\\d*)(?:\\.\\d*)?|\\.\\d+)(?:e-?(?:0|[1-9]\\d*))?%)?)\\s*\\)";
41
+ export declare const VAL_COMP = "computedValue";
42
+ export declare const VAL_MIX = "mixValue";
43
+ export declare const VAL_SPEC = "specifiedValue";