@unicom-cloud/utils 0.1.31 → 0.1.33

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 (369) hide show
  1. package/case-name/index.js +1 -1
  2. package/caseName.js +1 -1
  3. package/class-name/index.js +6 -5
  4. package/className.js +1 -1
  5. package/clipboard-copy/index.js +1 -1
  6. package/clipboardCopy.js +1 -1
  7. package/constant/address.js +1 -1
  8. package/constant/chineseCharacters.js +1 -1
  9. package/constant/constellations.js +1 -1
  10. package/constant/domain.js +1 -1
  11. package/constant/emoji.js +1 -1
  12. package/constant/identity.js +1 -1
  13. package/constant/index.js +1 -1
  14. package/constant/isMobile.js +7 -0
  15. package/constant/keyboardCode.js +1 -1
  16. package/constant/licensePlate.js +1 -1
  17. package/constant/name.js +1 -1
  18. package/constant/platform.js +18 -17
  19. package/constant/protocol.js +1 -1
  20. package/constant/string.js +1 -1
  21. package/constant/ui.js +1 -1
  22. package/constant.js +1 -1
  23. package/content-disposition/index.js +1 -1
  24. package/contentDisposition.js +1 -1
  25. package/cookie/index.js +1 -1
  26. package/cookie/src/api.js +1 -1
  27. package/cookie/src/assign.js +1 -1
  28. package/cookie/src/converter.js +1 -1
  29. package/cookie.js +1 -1
  30. package/date/convertTime.js +1 -1
  31. package/date/convertToDuration.js +1 -1
  32. package/date/index.js +5 -5
  33. package/date.js +5 -5
  34. package/decimal/decimal.js +1 -1
  35. package/decimal/index.js +1 -1
  36. package/decimal.js +1 -1
  37. package/dom-helpers/activeElement.js +1 -1
  38. package/dom-helpers/addClass.js +1 -1
  39. package/dom-helpers/addEventListener.js +1 -1
  40. package/dom-helpers/animate.js +1 -1
  41. package/dom-helpers/animationFrame.js +1 -1
  42. package/dom-helpers/attribute.js +1 -1
  43. package/dom-helpers/camelize.js +1 -1
  44. package/dom-helpers/camelizeStyle.js +1 -1
  45. package/dom-helpers/canUseDOM.js +1 -1
  46. package/dom-helpers/childElements.js +1 -1
  47. package/dom-helpers/childNodes.js +1 -1
  48. package/dom-helpers/clear.js +1 -1
  49. package/dom-helpers/closest.js +1 -1
  50. package/dom-helpers/collectElements.js +1 -1
  51. package/dom-helpers/collectSiblings.js +1 -1
  52. package/dom-helpers/contains.js +1 -1
  53. package/dom-helpers/css.js +1 -1
  54. package/dom-helpers/filterEventHandler.js +1 -1
  55. package/dom-helpers/getComputedStyle.js +1 -1
  56. package/dom-helpers/getElementCoordinates.js +46 -0
  57. package/dom-helpers/getScrollAccessor.js +1 -1
  58. package/dom-helpers/hasClass.js +1 -1
  59. package/dom-helpers/height.js +1 -1
  60. package/dom-helpers/hyphenate.js +1 -1
  61. package/dom-helpers/hyphenateStyle.js +1 -1
  62. package/dom-helpers/index.js +87 -84
  63. package/dom-helpers/insertAfter.js +1 -1
  64. package/dom-helpers/isDocument.js +1 -1
  65. package/dom-helpers/isInput.js +1 -1
  66. package/dom-helpers/isTransform.js +1 -1
  67. package/dom-helpers/isVisible.js +1 -1
  68. package/dom-helpers/isWindow.js +1 -1
  69. package/dom-helpers/listen.js +1 -1
  70. package/dom-helpers/matches.js +1 -1
  71. package/dom-helpers/nextUntil.js +1 -1
  72. package/dom-helpers/offset.js +1 -1
  73. package/dom-helpers/offsetParent.js +1 -1
  74. package/dom-helpers/ownerDocument.js +1 -1
  75. package/dom-helpers/ownerWindow.js +1 -1
  76. package/dom-helpers/parents.js +1 -1
  77. package/dom-helpers/position.js +1 -1
  78. package/dom-helpers/prepend.js +1 -1
  79. package/dom-helpers/querySelectorAll.js +1 -1
  80. package/dom-helpers/reflow.js +1 -1
  81. package/dom-helpers/remove.js +1 -1
  82. package/dom-helpers/removeClass.js +1 -1
  83. package/dom-helpers/removeEventListener.js +1 -1
  84. package/dom-helpers/scrollLeft.js +1 -1
  85. package/dom-helpers/scrollParent.js +1 -1
  86. package/dom-helpers/scrollTo.js +1 -1
  87. package/dom-helpers/scrollTop.js +1 -1
  88. package/dom-helpers/scrollbarSize.js +1 -1
  89. package/dom-helpers/siblings.js +1 -1
  90. package/dom-helpers/text.js +1 -1
  91. package/dom-helpers/toggleClass.js +1 -1
  92. package/dom-helpers/transitionEnd.js +2 -2
  93. package/dom-helpers/triggerEvent.js +1 -1
  94. package/dom-helpers/types.js +1 -1
  95. package/dom-helpers/width.js +1 -1
  96. package/domHelpers.js +65 -63
  97. package/emitter/index.js +1 -1
  98. package/emitter/src/index.js +1 -1
  99. package/emitter.js +1 -1
  100. package/escape/index.js +11 -0
  101. package/escape.js +6 -0
  102. package/file/fileToURL.js +1 -1
  103. package/file/index.js +1 -1
  104. package/file/saveAs.js +1 -1
  105. package/file.js +1 -1
  106. package/idb/index.js +1 -1
  107. package/idb.js +1 -1
  108. package/index.js +1 -1
  109. package/invariant/index.js +1 -1
  110. package/invariant.js +1 -1
  111. package/is/index.js +196 -141
  112. package/is/lib/isAscii.js +9 -0
  113. package/is/lib/isBase64.js +13 -0
  114. package/is/lib/isChinese.js +19 -0
  115. package/is/lib/isDataURI.js +25 -0
  116. package/is/lib/isEmail.js +72 -0
  117. package/is/lib/isFQDN.js +21 -0
  118. package/is/lib/isFullWidth.js +10 -0
  119. package/is/lib/isHSL.js +11 -0
  120. package/is/lib/isHalfWidth.js +10 -0
  121. package/is/lib/isHash.js +23 -0
  122. package/is/lib/isHexColor.js +12 -0
  123. package/is/lib/isIMEI.js +19 -0
  124. package/is/lib/isIP.js +21 -0
  125. package/is/lib/isIPRange.js +25 -0
  126. package/is/lib/isIdentityCard.js +190 -0
  127. package/is/lib/isJWT.js +14 -0
  128. package/is/lib/isMACAddress.js +9 -0
  129. package/is/lib/isMD5.js +9 -0
  130. package/is/lib/isMimeType.js +9 -0
  131. package/is/lib/isMobilePhone.js +192 -0
  132. package/is/lib/isPort.js +7 -0
  133. package/is/lib/isRgbColor.js +18 -0
  134. package/is/lib/isSemVer.js +20 -0
  135. package/is/lib/isSlug.js +9 -0
  136. package/is/lib/isStrongPassword.js +48 -0
  137. package/is/lib/isURL.js +78 -0
  138. package/is/lib/isUUID.js +24 -0
  139. package/is/lib/isVariableWidth.js +10 -0
  140. package/is/lib/util/assertString.js +12 -0
  141. package/is.js +122 -66
  142. package/lunar/index.js +1 -1
  143. package/lunar/lib/Holiday.js +1 -1
  144. package/lunar/lib/HolidayUtil.js +1 -1
  145. package/lunar/lib/I18n.js +1 -1
  146. package/lunar/lib/JieQi.js +1 -1
  147. package/lunar/lib/Lunar.js +1 -1
  148. package/lunar/lib/LunarMonth.js +1 -1
  149. package/lunar/lib/LunarTime.js +1 -1
  150. package/lunar/lib/LunarUtil.js +1 -1
  151. package/lunar/lib/LunarYear.js +1 -1
  152. package/lunar/lib/ShouXingUtil.js +1 -1
  153. package/lunar/lib/Solar.js +1 -1
  154. package/lunar/lib/SolarHalfYear.js +1 -1
  155. package/lunar/lib/SolarMonth.js +1 -1
  156. package/lunar/lib/SolarSeason.js +1 -1
  157. package/lunar/lib/SolarUtil.js +1 -1
  158. package/lunar/lib/SolarWeek.js +1 -1
  159. package/lunar/lib/SolarYear.js +1 -1
  160. package/lunar/lib/index.js +1 -1
  161. package/lunar.js +1 -1
  162. package/math/index.js +1 -1
  163. package/math.js +1 -1
  164. package/md5/index.js +1 -1
  165. package/md5.js +1 -1
  166. package/mock/MockWebSocket.js +1 -1
  167. package/mock/MockXMLHttpRequest.js +1 -1
  168. package/mock/index.js +1 -1
  169. package/mock.js +1 -1
  170. package/normalize-wheel/ExecutionEnvironment.js +1 -1
  171. package/normalize-wheel/UserAgent_DEPRECATED.js +1 -1
  172. package/normalize-wheel/index.js +1 -1
  173. package/normalize-wheel/isEventSupported.js +1 -1
  174. package/normalizeWheel.js +1 -1
  175. package/number-to-chinese/index.js +1 -1
  176. package/numberToChinese.js +1 -1
  177. package/nzh/cn.js +1 -1
  178. package/nzh/hk.js +1 -1
  179. package/nzh/index.js +1 -1
  180. package/nzh/nzh.js +1 -1
  181. package/nzh/src/autoGet.js +1 -1
  182. package/nzh/src/index.js +1 -1
  183. package/nzh/src/langs/cn_b.js +1 -1
  184. package/nzh/src/langs/cn_s.js +1 -1
  185. package/nzh/src/langs/hk_b.js +1 -1
  186. package/nzh/src/langs/hk_s.js +1 -1
  187. package/nzh/src/utils.js +1 -1
  188. package/nzh.js +1 -1
  189. package/object-keys-sort/index.js +1 -1
  190. package/object-prototype-to-string-call/index.js +2 -2
  191. package/objectKeysSort.js +1 -1
  192. package/objectPrototypeToStringCall.js +1 -1
  193. package/package.json +1 -1
  194. package/pinyin/index.js +1 -1
  195. package/pinyin/simplified.js +1 -1
  196. package/pinyin/src/core.js +1 -1
  197. package/pinyin/src/simplified.js +6 -6
  198. package/pinyin/src/simplified_dict.js +5 -4
  199. package/pinyin/src/traditional.js +4 -4
  200. package/pinyin/src/traditional_dict.js +4 -3
  201. package/pinyin/traditional.js +1 -1
  202. package/pinyin.js +1 -1
  203. package/query-string/base.js +1 -1
  204. package/query-string/index.js +1 -1
  205. package/query-string/splitOnFirst.js +1 -1
  206. package/queryString.js +1 -1
  207. package/random/address.js +1 -1
  208. package/random/constellation.js +1 -1
  209. package/random/image.js +1 -1
  210. package/random/index.js +1 -1
  211. package/random/licensePlate.js +1 -1
  212. package/random/name.js +1 -1
  213. package/random/number.js +1 -1
  214. package/random/text.js +1 -1
  215. package/random/time.js +1 -1
  216. package/random/web.js +1 -1
  217. package/random.js +1 -1
  218. package/screenfull/index.js +1 -1
  219. package/screenfull.js +1 -1
  220. package/sleep/index.js +1 -1
  221. package/sleep.js +1 -1
  222. package/snapdom/index.js +1 -1
  223. package/snapdom/src/api/preCache.js +1 -1
  224. package/snapdom/src/api/snapdom.js +198 -153
  225. package/snapdom/src/core/cache.js +1 -1
  226. package/snapdom/src/core/capture.js +121 -326
  227. package/snapdom/src/core/clone.js +117 -266
  228. package/snapdom/src/core/context.js +1 -1
  229. package/snapdom/src/core/plugins.js +1 -1
  230. package/snapdom/src/core/prepare.js +48 -157
  231. package/snapdom/src/exporters/download.js +15 -11
  232. package/snapdom/src/exporters/toBlob.js +10 -15
  233. package/snapdom/src/exporters/toCanvas.js +72 -65
  234. package/snapdom/src/exporters/toImg.js +1 -1
  235. package/snapdom/src/modules/CSSVar.js +1 -1
  236. package/snapdom/src/modules/background.js +1 -1
  237. package/snapdom/src/modules/changeCSS.js +1 -1
  238. package/snapdom/src/modules/counter.js +1 -1
  239. package/snapdom/src/modules/fonts.js +118 -112
  240. package/snapdom/src/modules/iconFonts.js +133 -69
  241. package/snapdom/src/modules/images.js +36 -33
  242. package/snapdom/src/modules/lineClamp.js +1 -1
  243. package/snapdom/src/modules/pseudo.js +275 -161
  244. package/snapdom/src/modules/rasterize.js +6 -7
  245. package/snapdom/src/modules/snapFetch.js +1 -1
  246. package/snapdom/src/modules/styles.js +89 -67
  247. package/snapdom/src/modules/svgDefs.js +73 -60
  248. package/snapdom/src/utils/browser.js +13 -8
  249. package/snapdom/src/utils/capture.helpers.js +131 -0
  250. package/snapdom/src/utils/clone.helpers.js +283 -0
  251. package/snapdom/src/utils/css.js +1 -1
  252. package/snapdom/src/utils/helpers.js +1 -1
  253. package/snapdom/src/utils/image.js +15 -24
  254. package/snapdom/src/utils/prepare.helpers.js +8 -0
  255. package/snapdom/src/utils/transforms.helpers.js +211 -0
  256. package/snapdom.js +1 -1
  257. package/string/index.js +1 -1
  258. package/string.js +1 -1
  259. package/tinycolor/index.js +1 -1
  260. package/tinycolor/src/conversion.js +1 -1
  261. package/tinycolor/src/css-color-names.js +1 -1
  262. package/tinycolor/src/format-input.js +1 -1
  263. package/tinycolor/src/from-ratio.js +12 -11
  264. package/tinycolor/src/index.js +1 -1
  265. package/tinycolor/src/random.js +30 -29
  266. package/tinycolor/src/readability.js +1 -1
  267. package/tinycolor/src/to-ms-filter.js +1 -1
  268. package/tinycolor/src/utils.js +1 -1
  269. package/tinycolor.js +1 -1
  270. package/tree/index.js +54 -75
  271. package/tree/search/index.js +1 -1
  272. package/tree.js +9 -11
  273. package/tween/index.js +1 -1
  274. package/tween/src/easing.js +1 -1
  275. package/tween/src/tween.js +15 -14
  276. package/tween.js +1 -1
  277. package/types/constant/isMobile.d.ts +3 -0
  278. package/types/date/index.d.ts +3 -3
  279. package/types/dom-helpers/getElementCoordinates.d.ts +40 -0
  280. package/types/dom-helpers/index.d.ts +3 -1
  281. package/types/escape/index.d.ts +2 -0
  282. package/types/is/index.d.ts +28 -1
  283. package/types/is/lib/isAscii.d.ts +1 -0
  284. package/types/is/lib/isBase64.d.ts +1 -0
  285. package/types/is/lib/isChinese.d.ts +4 -0
  286. package/types/is/lib/isDataURI.d.ts +1 -0
  287. package/types/is/lib/isEmail.d.ts +1 -0
  288. package/types/is/lib/isFQDN.d.ts +1 -0
  289. package/types/is/lib/isFullWidth.d.ts +2 -0
  290. package/types/is/lib/isHSL.d.ts +1 -0
  291. package/types/is/lib/isHalfWidth.d.ts +2 -0
  292. package/types/is/lib/isHash.d.ts +1 -0
  293. package/types/is/lib/isHexColor.d.ts +1 -0
  294. package/types/is/lib/isIMEI.d.ts +1 -0
  295. package/types/is/lib/isIP.d.ts +1 -0
  296. package/types/is/lib/isIPRange.d.ts +1 -0
  297. package/types/is/lib/isIdentityCard.d.ts +1 -0
  298. package/types/is/lib/isJWT.d.ts +1 -0
  299. package/types/is/lib/isMACAddress.d.ts +1 -0
  300. package/types/is/lib/isMD5.d.ts +1 -0
  301. package/types/is/lib/isMimeType.d.ts +1 -0
  302. package/types/is/lib/isMobilePhone.d.ts +2 -0
  303. package/types/is/lib/isOctal.d.ts +1 -0
  304. package/types/is/lib/isPort.d.ts +1 -0
  305. package/types/is/lib/isRgbColor.d.ts +1 -0
  306. package/types/is/lib/isSemVer.d.ts +1 -0
  307. package/types/is/lib/isSlug.d.ts +1 -0
  308. package/types/is/lib/isStrongPassword.d.ts +1 -0
  309. package/types/is/lib/isURL.d.ts +1 -0
  310. package/types/is/lib/isUUID.d.ts +1 -0
  311. package/types/is/lib/isVariableWidth.d.ts +1 -0
  312. package/types/is/lib/util/assertString.d.ts +1 -0
  313. package/types/pinyin/es/main.d.ts +4 -0
  314. package/types/pinyin/es/traditional.d.ts +4 -0
  315. package/types/snapdom/src/api/snapdom.d.ts +11 -79
  316. package/types/snapdom/src/exporters/toCanvas.d.ts +11 -3
  317. package/types/snapdom/src/exporters/toJpg.d.ts +1 -0
  318. package/types/snapdom/src/exporters/toPng.d.ts +6 -0
  319. package/types/snapdom/src/exporters/toSvg.d.ts +1 -0
  320. package/types/snapdom/src/exporters/toWebp.d.ts +1 -0
  321. package/types/snapdom/src/modules/iconFonts.d.ts +7 -20
  322. package/types/snapdom/src/modules/pseudo.d.ts +18 -0
  323. package/types/snapdom/src/modules/rasterize.d.ts +6 -10
  324. package/types/snapdom/src/utils/browser.d.ts +0 -3
  325. package/types/snapdom/src/utils/capture.helpers.d.ts +45 -0
  326. package/types/snapdom/src/utils/clone.helpers.d.ts +97 -0
  327. package/types/snapdom/src/utils/image.d.ts +0 -8
  328. package/types/snapdom/src/utils/index.d.ts +1 -1
  329. package/types/snapdom/src/utils/prepare.helpers.d.ts +9 -0
  330. package/types/snapdom/src/utils/transforms.helpers.d.ts +118 -0
  331. package/types/tree/index.d.ts +3 -4
  332. package/types/validate/src/index.d.ts +23 -25
  333. package/types/validate/src/interface.d.ts +5 -3
  334. package/types/validate/src/locale/en-US.d.ts +12 -2
  335. package/types/validate/src/locale/index.d.ts +171 -0
  336. package/types/validate/src/locale/zh-CN.d.ts +12 -2
  337. package/types/validate/src/rules/base.d.ts +3 -1
  338. package/types/validate/src/rules/custom.d.ts +1 -1
  339. package/types/validate/src/rules/type.d.ts +10 -0
  340. package/ui-color/compareColorByRange.js +1 -1
  341. package/ui-color/index.js +8 -7
  342. package/uiColor.js +25 -24
  343. package/url-toolkit/index.js +1 -1
  344. package/url-toolkit/src/url-toolkit.js +1 -1
  345. package/urlToolkit.js +1 -1
  346. package/validate/index.js +23 -25
  347. package/validate/src/index.js +116 -73
  348. package/validate/src/locale/en-US.js +12 -2
  349. package/validate/src/locale/index.js +11 -0
  350. package/validate/src/locale/zh-CN.js +12 -2
  351. package/validate/src/rules/array.js +2 -2
  352. package/validate/src/rules/base.js +35 -31
  353. package/validate/src/rules/boolean.js +1 -1
  354. package/validate/src/rules/custom.js +2 -2
  355. package/validate/src/rules/number.js +1 -1
  356. package/validate/src/rules/object.js +1 -1
  357. package/validate/src/rules/string.js +6 -5
  358. package/validate/src/rules/type.js +84 -14
  359. package/validate.js +23 -25
  360. package/version/index.js +1 -1
  361. package/version.js +1 -1
  362. package/xlsx/index.d.ts +4 -8
  363. package/xlsx/index.js +1 -1
  364. package/xlsx/xlsx.js +2 -2
  365. package/xlsx.js +1 -1
  366. package/types/validate/src/message.d.ts +0 -2
  367. package/types/validate/src/utils.d.ts +0 -3
  368. package/validate/src/message.js +0 -5
  369. package/validate/src/utils.js +0 -8
@@ -1,8 +1,8 @@
1
- /* 2025-11-19 10:03:21 */
2
- import { cache as g } from "../core/cache.js";
3
- import { isIconFont as x } from "./iconFonts.js";
1
+ /* 2025-12-17 18:26:57 */
2
+ import { cache as w } from "../core/cache.js";
3
+ import { isIconFont as k } from "./iconFonts.js";
4
4
  import { extractURL as X } from "../utils/helpers.js";
5
- import { snapFetch as A } from "./snapFetch.js";
5
+ import { snapFetch as U } from "./snapFetch.js";
6
6
  async function lt(o, e, r, a = 32, n = "#000") {
7
7
  e = e.replace(/^['"]+|['"]+$/g, "");
8
8
  const c = window.devicePixelRatio || 1;
@@ -47,31 +47,31 @@ function T(o) {
47
47
  }
48
48
  return "";
49
49
  }
50
- function N(o) {
50
+ function I(o) {
51
51
  const e = String(o ?? "400").trim().toLowerCase();
52
52
  if (e === "normal") return 400;
53
53
  if (e === "bold") return 700;
54
54
  const r = parseInt(e, 10);
55
55
  return Number.isFinite(r) ? Math.min(900, Math.max(100, r)) : 400;
56
56
  }
57
- function W(o) {
57
+ function N(o) {
58
58
  const e = String(o ?? "normal").trim().toLowerCase();
59
59
  return e.startsWith("italic") ? "italic" : e.startsWith("oblique") ? "oblique" : "normal";
60
60
  }
61
- function Y(o) {
61
+ function K(o) {
62
62
  const e = String(o ?? "100%").match(/(\d+(?:\.\d+)?)\s*%/);
63
63
  return e ? Math.max(50, Math.min(200, parseFloat(e[1]))) : 100;
64
64
  }
65
- function J(o) {
65
+ function Y(o) {
66
66
  const e = String(o || "400").trim(), r = e.match(/^(\d{2,3})\s+(\d{2,3})$/);
67
67
  if (r) {
68
- const n = N(r[1]), c = N(r[2]);
68
+ const n = I(r[1]), c = I(r[2]);
69
69
  return { min: Math.min(n, c), max: Math.max(n, c) };
70
70
  }
71
- const a = N(e);
71
+ const a = I(e);
72
72
  return { min: a, max: a };
73
73
  }
74
- function K(o) {
74
+ function J(o) {
75
75
  const e = String(o || "normal").trim().toLowerCase();
76
76
  return e === "italic" ? { kind: "italic" } : e.startsWith("oblique") ? { kind: "oblique" } : { kind: "normal" };
77
77
  }
@@ -129,7 +129,7 @@ function q(o, e) {
129
129
  return `url("${t}")`;
130
130
  });
131
131
  }
132
- const v = /@import\s+(?:url\(\s*(['"]?)([^)"']+)\1\s*\)|(['"])([^"']+)\3)([^;]*);/g, I = 4;
132
+ const v = /@import\s+(?:url\(\s*(['"]?)([^)"']+)\1\s*\)|(['"])([^"']+)\3)([^;]*);/g, W = 4;
133
133
  async function et(o, e, r) {
134
134
  if (!o) return o;
135
135
  const a = /* @__PURE__ */ new Set();
@@ -141,22 +141,22 @@ async function et(o, e, r) {
141
141
  }
142
142
  }
143
143
  async function c(f, s, u = 0) {
144
- if (u > I)
144
+ if (u > W)
145
145
  return console.warn(
146
- `[snapDOM] @import depth exceeded (${I}) at ${s}`
146
+ `[snapDOM] @import depth exceeded (${W}) at ${s}`
147
147
  ), f;
148
148
  let m = "", d = 0, p;
149
149
  for (; p = v.exec(f); ) {
150
150
  m += f.slice(d, p.index), d = v.lastIndex;
151
- const L = (p[2] || p[4] || "").trim(), C = n(L, s);
152
- if (a.has(C)) {
153
- console.warn(`[snapDOM] Skipping circular @import: ${C}`);
151
+ const b = (p[2] || p[4] || "").trim(), R = n(b, s);
152
+ if (a.has(R)) {
153
+ console.warn(`[snapDOM] Skipping circular @import: ${R}`);
154
154
  continue;
155
155
  }
156
- a.add(C);
156
+ a.add(R);
157
157
  let i = "";
158
158
  try {
159
- const l = await A(C, {
159
+ const l = await U(R, {
160
160
  as: "text",
161
161
  useProxy: r,
162
162
  silent: !0
@@ -164,8 +164,8 @@ async function et(o, e, r) {
164
164
  l.ok && typeof l.data == "string" && (i = l.data);
165
165
  } catch {
166
166
  }
167
- i ? (i = q(i, C), i = await c(i, C, u + 1), m += `
168
- /* inlined: ${C} */
167
+ i ? (i = q(i, R), i = await c(i, R, u + 1), m += `
168
+ /* inlined: ${R} */
169
169
  ${i}
170
170
  `) : m += p[0];
171
171
  }
@@ -229,17 +229,17 @@ async function z(o, e, r = "") {
229
229
  t = new URL(t, e || location.href).href;
230
230
  } catch {
231
231
  }
232
- if (!x(t)) {
233
- if (g.resource?.has(t)) {
234
- g.font?.add(t), a = a.replace(n[0], `url(${g.resource.get(t)})`);
232
+ if (!k(t)) {
233
+ if (w.resource?.has(t)) {
234
+ w.font?.add(t), a = a.replace(n[0], `url(${w.resource.get(t)})`);
235
235
  continue;
236
236
  }
237
- if (!g.font?.has(t))
237
+ if (!w.font?.has(t))
238
238
  try {
239
- const f = await A(t, { as: "dataURL", useProxy: r, silent: !0 });
239
+ const f = await U(t, { as: "dataURL", useProxy: r, silent: !0 });
240
240
  if (f.ok && typeof f.data == "string") {
241
241
  const s = f.data;
242
- g.resource?.set(t, s), g.font?.add(t), a = a.replace(n[0], `url(${s})`);
242
+ w.resource?.set(t, s), w.font?.add(t), a = a.replace(n[0], `url(${s})`);
243
243
  }
244
244
  } catch {
245
245
  console.warn("[snapDOM] Failed to fetch font resource:", t);
@@ -280,13 +280,13 @@ function rt(o) {
280
280
  if (!o) return o;
281
281
  const e = /@font-face[^{}]*\{[^}]*\}/gi, r = /* @__PURE__ */ new Set(), a = [];
282
282
  for (const c of o.match(e) || []) {
283
- const t = c.match(/font-family:\s*([^;]+);/i)?.[1] || "", f = T(t), s = (c.match(/font-weight:\s*([^;]+);/i)?.[1] || "400").trim(), u = (c.match(/font-style:\s*([^;]+);/i)?.[1] || "normal").trim(), m = (c.match(/font-stretch:\s*([^;]+);/i)?.[1] || "100%").trim(), d = (c.match(/unicode-range:\s*([^;]+);/i)?.[1] || "").trim(), p = (c.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1] || "").trim(), L = P(p, location.href), C = L.length ? L.map((l) => String(l).toLowerCase()).sort().join("|") : p.toLowerCase(), i = [
283
+ const t = c.match(/font-family:\s*([^;]+);/i)?.[1] || "", f = T(t), s = (c.match(/font-weight:\s*([^;]+);/i)?.[1] || "400").trim(), u = (c.match(/font-style:\s*([^;]+);/i)?.[1] || "normal").trim(), m = (c.match(/font-stretch:\s*([^;]+);/i)?.[1] || "100%").trim(), d = (c.match(/unicode-range:\s*([^;]+);/i)?.[1] || "").trim(), p = (c.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1] || "").trim(), b = P(p, location.href), R = b.length ? b.map((l) => String(l).toLowerCase()).sort().join("|") : p.toLowerCase(), i = [
284
284
  String(f || "").toLowerCase(),
285
285
  s,
286
286
  u,
287
287
  m,
288
288
  d.toLowerCase(),
289
- C
289
+ R
290
290
  ].join("|");
291
291
  r.has(i) || (r.add(i), a.push(c));
292
292
  }
@@ -321,9 +321,9 @@ async function H(o, e, r, a) {
321
321
  for (const t of n) {
322
322
  if (t.type === CSSRule.IMPORT_RULE && t.styleSheet) {
323
323
  const f = t.href ? c(t.href, e) : e;
324
- if (a.depth >= I) {
324
+ if (a.depth >= W) {
325
325
  console.warn(
326
- `[snapDOM] CSSOM import depth exceeded (${I}) at ${f}`
326
+ `[snapDOM] CSSOM import depth exceeded (${W}) at ${f}`
327
327
  );
328
328
  continue;
329
329
  }
@@ -343,23 +343,23 @@ async function H(o, e, r, a) {
343
343
  }
344
344
  if (t.type === CSSRule.FONT_FACE_RULE) {
345
345
  const f = (t.style.getPropertyValue("font-family") || "").trim(), s = T(f);
346
- if (!s || x(s)) continue;
347
- const u = (t.style.getPropertyValue("font-weight") || "400").trim(), m = (t.style.getPropertyValue("font-style") || "normal").trim(), d = (t.style.getPropertyValue("font-stretch") || "100%").trim(), p = (t.style.getPropertyValue("src") || "").trim(), L = (t.style.getPropertyValue("unicode-range") || "").trim();
346
+ if (!s || k(s)) continue;
347
+ const u = (t.style.getPropertyValue("font-weight") || "400").trim(), m = (t.style.getPropertyValue("font-style") || "normal").trim(), d = (t.style.getPropertyValue("font-stretch") || "100%").trim(), p = (t.style.getPropertyValue("src") || "").trim(), b = (t.style.getPropertyValue("unicode-range") || "").trim();
348
348
  if (!a.faceMatchesRequired(s, m, u, d))
349
349
  continue;
350
- const C = B(L);
351
- if (!V(a.usedCodepoints, C)) continue;
350
+ const R = B(b);
351
+ if (!V(a.usedCodepoints, R)) continue;
352
352
  const i = {
353
353
  family: s,
354
354
  weightSpec: u,
355
355
  styleSpec: m,
356
356
  stretchSpec: d,
357
- unicodeRange: L,
357
+ unicodeRange: b,
358
358
  srcRaw: p,
359
359
  srcUrls: P(p, e || location.href),
360
360
  href: e || location.href
361
361
  };
362
- if (a.simpleExcluder && a.simpleExcluder(i, C)) continue;
362
+ if (a.simpleExcluder && a.simpleExcluder(i, R)) continue;
363
363
  if (/url\(/i.test(p)) {
364
364
  const l = await z(
365
365
  p,
@@ -367,11 +367,11 @@ async function H(o, e, r, a) {
367
367
  a.useProxy
368
368
  );
369
369
  await r(
370
- `@font-face{font-family:${s};src:${l};font-style:${m};font-weight:${u};font-stretch:${d};${L ? `unicode-range:${L};` : ""}}`
370
+ `@font-face{font-family:${s};src:${l};font-style:${m};font-weight:${u};font-stretch:${d};${b ? `unicode-range:${b};` : ""}}`
371
371
  );
372
372
  } else
373
373
  await r(
374
- `@font-face{font-family:${s};src:${p};font-style:${m};font-weight:${u};font-stretch:${d};${L ? `unicode-range:${L};` : ""}}`
374
+ `@font-face{font-family:${s};src:${p};font-style:${m};font-weight:${u};font-stretch:${d};${b ? `unicode-range:${b};` : ""}}`
375
375
  );
376
376
  }
377
377
  }
@@ -386,42 +386,48 @@ async function ut({
386
386
  o instanceof Set || (o = /* @__PURE__ */ new Set()), e instanceof Set || (e = /* @__PURE__ */ new Set());
387
387
  const c = /* @__PURE__ */ new Map();
388
388
  for (const i of o) {
389
- const [l, h, w, S] = String(i).split("__");
389
+ const [l, h, S, g] = String(i).split("__");
390
390
  if (!l) continue;
391
391
  const y = c.get(l) || [];
392
- y.push({ w: parseInt(h, 10), s: w, st: parseInt(S, 10) }), c.set(l, y);
392
+ y.push({ w: parseInt(h, 10), s: S, st: parseInt(g, 10) }), c.set(l, y);
393
393
  }
394
- function t(i, l, h, w) {
394
+ function t(i, l, h, S) {
395
395
  if (!c.has(i)) return !1;
396
- const S = c.get(i), y = J(h), R = K(l), b = Q(w), F = y.min !== y.max, M = y.min, E = ($) => R.kind === "normal" && $ === "normal" || R.kind !== "normal" && ($ === "italic" || $ === "oblique");
397
- let k = !1;
398
- for (const $ of S) {
399
- const _ = F ? $.w >= y.min && $.w <= y.max : $.w === M, O = E(W($.s)), U = $.st >= b.min && $.st <= b.max;
400
- if (_ && O && U) {
401
- k = !0;
396
+ const g = c.get(i), y = Y(h), C = J(l), L = Q(S), M = y.min !== y.max, F = y.min, A = ($) => C.kind === "normal" && $ === "normal" || C.kind !== "normal" && ($ === "italic" || $ === "oblique");
397
+ let O = !1;
398
+ for (const $ of g) {
399
+ const x = M ? $.w >= y.min && $.w <= y.max : $.w === F, _ = A(N($.s)), E = $.st >= L.min && $.st <= L.max;
400
+ if (x && _ && E) {
401
+ O = !0;
402
402
  break;
403
403
  }
404
404
  }
405
- if (k) return !0;
406
- if (!F)
407
- for (const $ of S) {
408
- const _ = E(W($.s)), O = $.st >= b.min && $.st <= b.max;
409
- if (Math.abs(M - $.w) <= 300 && _ && O) return !0;
405
+ if (O) return !0;
406
+ if (!M)
407
+ for (const $ of g) {
408
+ const x = A(N($.s)), _ = $.st >= L.min && $.st <= L.max;
409
+ if (Math.abs(F - $.w) <= 300 && x && _) return !0;
410
+ }
411
+ if (!M && C.kind === "normal" && g.some((x) => N(x.s) !== "normal"))
412
+ for (const x of g) {
413
+ const _ = Math.abs(F - x.w) <= 300, E = x.st >= L.min && x.st <= L.max;
414
+ if (_ && E)
415
+ return !0;
410
416
  }
411
417
  return !1;
412
418
  }
413
419
  const f = D(r), s = st(o, r, a, n);
414
- if (g.resource?.has(s))
415
- return g.resource.get(s);
420
+ if (w.resource?.has(s))
421
+ return w.resource.get(s);
416
422
  const u = tt(o), m = [], d = v;
417
423
  for (const i of document.querySelectorAll("style")) {
418
424
  const l = i.textContent || "";
419
425
  for (const h of l.matchAll(d)) {
420
- const w = (h[2] || h[4] || "").trim();
421
- if (!w || x(w)) continue;
426
+ const S = (h[2] || h[4] || "").trim();
427
+ if (!S || k(S)) continue;
422
428
  !!document.querySelector(
423
- `link[rel="stylesheet"][href="${w}"]`
424
- ) || m.push(w);
429
+ `link[rel="stylesheet"][href="${S}"]`
430
+ ) || m.push(S);
425
431
  }
426
432
  }
427
433
  m.length && await Promise.all(
@@ -435,12 +441,12 @@ async function ut({
435
441
  )
436
442
  );
437
443
  let p = "";
438
- const L = Array.from(
444
+ const b = Array.from(
439
445
  document.querySelectorAll('link[rel="stylesheet"]')
440
446
  ).filter((i) => !!i.href);
441
- for (const i of L)
447
+ for (const i of b)
442
448
  try {
443
- if (x(i.href)) continue;
449
+ if (k(i.href)) continue;
444
450
  let l = "", h = !1;
445
451
  try {
446
452
  h = new URL(i.href, location.href).origin === location.origin;
@@ -449,47 +455,47 @@ async function ut({
449
455
  if (!h && !Z(i.href, u))
450
456
  continue;
451
457
  if (h) {
452
- const S = Array.from(document.styleSheets).find(
458
+ const g = Array.from(document.styleSheets).find(
453
459
  (y) => y.href === i.href
454
460
  );
455
- if (S)
461
+ if (g)
456
462
  try {
457
- const y = S.cssRules || [];
458
- l = Array.from(y).map((R) => R.cssText).join("");
463
+ const y = g.cssRules || [];
464
+ l = Array.from(y).map((C) => C.cssText).join("");
459
465
  } catch {
460
466
  }
461
467
  }
462
- if (!l && (l = (await A(i.href, { as: "text", useProxy: n })).data, x(i.href)))
468
+ if (!l && (l = (await U(i.href, { as: "text", useProxy: n })).data, k(i.href)))
463
469
  continue;
464
470
  l = await et(l, i.href, n);
465
- let w = "";
466
- for (const S of l.match(nt) || []) {
467
- const y = (S.match(/font-family:\s*([^;]+);/i)?.[1] || "").trim(), R = T(y);
468
- if (!R || x(R)) continue;
469
- const b = (S.match(/font-weight:\s*([^;]+);/i)?.[1] || "400").trim(), F = (S.match(/font-style:\s*([^;]+);/i)?.[1] || "normal").trim(), M = (S.match(/font-stretch:\s*([^;]+);/i)?.[1] || "100%").trim(), E = (S.match(/unicode-range:\s*([^;]+);/i)?.[1] || "").trim(), k = (S.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1] || "").trim(), $ = P(k, i.href);
470
- if (!t(R, F, b, M))
471
+ let S = "";
472
+ for (const g of l.match(nt) || []) {
473
+ const y = (g.match(/font-family:\s*([^;]+);/i)?.[1] || "").trim(), C = T(y);
474
+ if (!C || k(C)) continue;
475
+ const L = (g.match(/font-weight:\s*([^;]+);/i)?.[1] || "400").trim(), M = (g.match(/font-style:\s*([^;]+);/i)?.[1] || "normal").trim(), F = (g.match(/font-stretch:\s*([^;]+);/i)?.[1] || "100%").trim(), A = (g.match(/unicode-range:\s*([^;]+);/i)?.[1] || "").trim(), O = (g.match(/src\s*:\s*([^;}]+)[;}]/i)?.[1] || "").trim(), $ = P(O, i.href);
476
+ if (!t(C, M, L, F))
471
477
  continue;
472
- const _ = B(E);
473
- if (!V(e, _)) continue;
474
- const O = {
475
- family: R,
476
- weightSpec: b,
477
- styleSpec: F,
478
- stretchSpec: M,
479
- unicodeRange: E,
480
- srcRaw: k,
478
+ const x = B(A);
479
+ if (!V(e, x)) continue;
480
+ const _ = {
481
+ family: C,
482
+ weightSpec: L,
483
+ styleSpec: M,
484
+ stretchSpec: F,
485
+ unicodeRange: A,
486
+ srcRaw: O,
481
487
  srcUrls: $,
482
488
  href: i.href
483
489
  };
484
- if (r && f(O, _)) continue;
485
- const U = /url\(/i.test(k) ? await z(S, i.href, n) : S;
486
- w += U;
490
+ if (r && f(_, x)) continue;
491
+ const E = /url\(/i.test(O) ? await z(g, i.href, n) : g;
492
+ S += E;
487
493
  }
488
- w.trim() && (p += w);
494
+ S.trim() && (p += S);
489
495
  } catch {
490
496
  console.warn("[snapDOM] Failed to process stylesheet:", i.href);
491
497
  }
492
- const C = {
498
+ const R = {
493
499
  requiredIndex: c,
494
500
  usedCodepoints: e,
495
501
  faceMatchesRequired: t,
@@ -499,16 +505,16 @@ async function ut({
499
505
  depth: 0
500
506
  };
501
507
  for (const i of document.styleSheets)
502
- if (!(i.href && L.some((l) => l.href === i.href)))
508
+ if (!(i.href && b.some((l) => l.href === i.href)))
503
509
  try {
504
510
  const l = i.href || location.href;
505
- l && C.visitedSheets.add(l), await H(
511
+ l && R.visitedSheets.add(l), await H(
506
512
  i,
507
513
  l,
508
514
  async (h) => {
509
515
  p += h;
510
516
  },
511
- C
517
+ R
512
518
  );
513
519
  } catch {
514
520
  }
@@ -516,23 +522,23 @@ async function ut({
516
522
  for (const i of document.fonts || []) {
517
523
  if (!i || !i.family || i.status !== "loaded" || !i._snapdomSrc) continue;
518
524
  const l = String(i.family).replace(/^['"]+|['"]+$/g, "");
519
- if (x(l) || !c.has(l) || r?.families && r.families.some(
520
- (w) => String(w).toLowerCase() === l.toLowerCase()
525
+ if (k(l) || !c.has(l) || r?.families && r.families.some(
526
+ (S) => String(S).toLowerCase() === l.toLowerCase()
521
527
  ))
522
528
  continue;
523
529
  let h = i._snapdomSrc;
524
530
  if (!String(h).startsWith("data:")) {
525
- if (g.resource?.has(i._snapdomSrc))
526
- h = g.resource.get(i._snapdomSrc), g.font?.add(i._snapdomSrc);
527
- else if (!g.font?.has(i._snapdomSrc))
531
+ if (w.resource?.has(i._snapdomSrc))
532
+ h = w.resource.get(i._snapdomSrc), w.font?.add(i._snapdomSrc);
533
+ else if (!w.font?.has(i._snapdomSrc))
528
534
  try {
529
- const w = await A(i._snapdomSrc, {
535
+ const S = await U(i._snapdomSrc, {
530
536
  as: "dataURL",
531
537
  useProxy: n,
532
538
  silent: !0
533
539
  });
534
- if (w.ok && typeof w.data == "string")
535
- h = w.data, g.resource?.set(i._snapdomSrc, h), g.font?.add(i._snapdomSrc);
540
+ if (S.ok && typeof S.data == "string")
541
+ h = S.data, w.resource?.set(i._snapdomSrc, h), w.font?.add(i._snapdomSrc);
536
542
  else
537
543
  continue;
538
544
  } catch {
@@ -550,24 +556,24 @@ async function ut({
550
556
  for (const i of a) {
551
557
  if (!i || typeof i != "object") continue;
552
558
  const l = String(i.family || "").replace(/^['"]+|['"]+$/g, "");
553
- if (!l || x(l) || !c.has(l) || r?.families && r.families.some(
554
- (b) => String(b).toLowerCase() === l.toLowerCase()
559
+ if (!l || k(l) || !c.has(l) || r?.families && r.families.some(
560
+ (L) => String(L).toLowerCase() === l.toLowerCase()
555
561
  ))
556
562
  continue;
557
- const h = i.weight != null ? String(i.weight) : "normal", w = i.style != null ? String(i.style) : "normal", S = i.stretchPct != null ? `${i.stretchPct}%` : "100%", y = String(i.src || "");
558
- let R = y;
559
- if (!R.startsWith("data:")) {
560
- if (g.resource?.has(y))
561
- R = g.resource.get(y), g.font?.add(y);
562
- else if (!g.font?.has(y))
563
+ const h = i.weight != null ? String(i.weight) : "normal", S = i.style != null ? String(i.style) : "normal", g = i.stretchPct != null ? `${i.stretchPct}%` : "100%", y = String(i.src || "");
564
+ let C = y;
565
+ if (!C.startsWith("data:")) {
566
+ if (w.resource?.has(y))
567
+ C = w.resource.get(y), w.font?.add(y);
568
+ else if (!w.font?.has(y))
563
569
  try {
564
- const b = await A(y, {
570
+ const L = await U(y, {
565
571
  as: "dataURL",
566
572
  useProxy: n,
567
573
  silent: !0
568
574
  });
569
- if (b.ok && typeof b.data == "string")
570
- R = b.data, g.resource?.set(y, R), g.font?.add(y);
575
+ if (L.ok && typeof L.data == "string")
576
+ C = L.data, w.resource?.set(y, C), w.font?.add(y);
571
577
  else
572
578
  continue;
573
579
  } catch {
@@ -575,9 +581,9 @@ async function ut({
575
581
  continue;
576
582
  }
577
583
  }
578
- p += `@font-face{font-family:'${l}';src:url(${R});font-style:${w};font-weight:${h};font-stretch:${S};}`;
584
+ p += `@font-face{font-family:'${l}';src:url(${C});font-style:${S};font-weight:${h};font-stretch:${g};}`;
579
585
  }
580
- return p && (p = rt(p), g.resource?.set(s, p)), p;
586
+ return p && (p = rt(p), w.resource?.set(s, p)), p;
581
587
  }
582
588
  function mt(o) {
583
589
  const e = /* @__PURE__ */ new Set();
@@ -585,7 +591,7 @@ function mt(o) {
585
591
  const r = document.createTreeWalker(o, NodeFilter.SHOW_ELEMENT, null), a = (t) => {
586
592
  const f = T(t.fontFamily);
587
593
  if (!f) return;
588
- const s = (u, m, d) => `${f}__${N(u)}__${W(m)}__${Y(d)}`;
594
+ const s = (u, m, d) => `${f}__${I(u)}__${N(m)}__${K(d)}`;
589
595
  e.add(s(t.fontWeight, t.fontStyle, t.fontStretch));
590
596
  };
591
597
  a(getComputedStyle(o));