victor HF Staff commited on
Commit
c96b394
·
1 Parent(s): 5fc800e

Switch to isomorphic-dompurify and update jsdom usage

Browse files

Replaces the custom dompurify utility with isomorphic-dompurify for improved SSR compatibility. Updates MarkdownRenderer and CodeBlock components to use the new sanitizer. Removes the now-unnecessary dompurify.ts utility. Updates related dependencies in package.json and aligns jsdom and related packages to compatible versions.

package-lock.json CHANGED
@@ -21,7 +21,7 @@
21
  "highlight.js": "^11.7.0",
22
  "husky": "^9.0.11",
23
  "ip-address": "^9.0.5",
24
- "jsdom": "^27.0.0",
25
  "json5": "^2.2.3",
26
  "katex": "^0.16.21",
27
  "lint-staged": "^15.2.7",
@@ -55,6 +55,7 @@
55
  "@tailwindcss/typography": "^0.5.9",
56
  "@types/dompurify": "^3.0.5",
57
  "@types/js-yaml": "^4.0.9",
 
58
  "@types/katex": "^0.16.7",
59
  "@types/mime-types": "^2.1.4",
60
  "@types/minimist": "^1.2.5",
@@ -70,6 +71,7 @@
70
  "eslint": "^8.28.0",
71
  "eslint-config-prettier": "^8.5.0",
72
  "eslint-plugin-svelte": "^2.45.1",
 
73
  "js-yaml": "^4.1.0",
74
  "minimist": "^1.2.8",
75
  "mongodb-memory-server": "^10.1.2",
@@ -244,54 +246,25 @@
244
  }
245
  },
246
  "node_modules/@asamuzakjp/css-color": {
247
- "version": "4.0.5",
248
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz",
249
- "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==",
 
250
  "license": "MIT",
251
  "dependencies": {
252
- "@csstools/css-calc": "^2.1.4",
253
- "@csstools/css-color-parser": "^3.1.0",
254
- "@csstools/css-parser-algorithms": "^3.0.5",
255
- "@csstools/css-tokenizer": "^3.0.4",
256
- "lru-cache": "^11.2.1"
257
  }
258
  },
259
  "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
260
- "version": "11.2.2",
261
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
262
- "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
263
- "license": "ISC",
264
- "engines": {
265
- "node": "20 || >=22"
266
- }
267
- },
268
- "node_modules/@asamuzakjp/dom-selector": {
269
- "version": "6.6.2",
270
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.6.2.tgz",
271
- "integrity": "sha512-+AG0jN9HTwfDLBhjhX1FKi6zlIAc/YGgEHlN/OMaHD1pOPFsC5CpYQpLkPX0aFjyaVmoq9330cQDCU4qnSL1qA==",
272
- "license": "MIT",
273
- "dependencies": {
274
- "@asamuzakjp/nwsapi": "^2.3.9",
275
- "bidi-js": "^1.0.3",
276
- "css-tree": "^3.1.0",
277
- "is-potential-custom-element-name": "^1.0.1",
278
- "lru-cache": "^11.2.2"
279
- }
280
- },
281
- "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
282
- "version": "11.2.2",
283
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
284
- "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
285
- "license": "ISC",
286
- "engines": {
287
- "node": "20 || >=22"
288
- }
289
- },
290
- "node_modules/@asamuzakjp/nwsapi": {
291
- "version": "2.3.9",
292
- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
293
- "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
294
- "license": "MIT"
295
  },
296
  "node_modules/@babel/code-frame": {
297
  "version": "7.27.1",
@@ -331,6 +304,7 @@
331
  "version": "5.1.0",
332
  "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
333
  "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
 
334
  "funding": [
335
  {
336
  "type": "github",
@@ -350,6 +324,7 @@
350
  "version": "2.1.4",
351
  "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
352
  "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
 
353
  "funding": [
354
  {
355
  "type": "github",
@@ -373,6 +348,7 @@
373
  "version": "3.1.0",
374
  "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
375
  "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
 
376
  "funding": [
377
  {
378
  "type": "github",
@@ -400,6 +376,7 @@
400
  "version": "3.0.5",
401
  "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
402
  "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
 
403
  "funding": [
404
  {
405
  "type": "github",
@@ -418,32 +395,11 @@
418
  "@csstools/css-tokenizer": "^3.0.4"
419
  }
420
  },
421
- "node_modules/@csstools/css-syntax-patches-for-csstree": {
422
- "version": "1.0.14",
423
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.14.tgz",
424
- "integrity": "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==",
425
- "funding": [
426
- {
427
- "type": "github",
428
- "url": "https://github.com/sponsors/csstools"
429
- },
430
- {
431
- "type": "opencollective",
432
- "url": "https://opencollective.com/csstools"
433
- }
434
- ],
435
- "license": "MIT-0",
436
- "engines": {
437
- "node": ">=18"
438
- },
439
- "peerDependencies": {
440
- "postcss": "^8.4"
441
- }
442
- },
443
  "node_modules/@csstools/css-tokenizer": {
444
  "version": "3.0.4",
445
  "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
446
  "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
 
447
  "funding": [
448
  {
449
  "type": "github",
@@ -2654,6 +2610,15 @@
2654
  "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
2655
  "license": "MIT"
2656
  },
 
 
 
 
 
 
 
 
 
2657
  "node_modules/@types/aria-query": {
2658
  "version": "5.0.4",
2659
  "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
@@ -2706,6 +2671,18 @@
2706
  "dev": true,
2707
  "license": "MIT"
2708
  },
 
 
 
 
 
 
 
 
 
 
 
 
2709
  "node_modules/@types/json-schema": {
2710
  "version": "7.0.15",
2711
  "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
@@ -2787,6 +2764,13 @@
2787
  "dev": true,
2788
  "license": "MIT"
2789
  },
 
 
 
 
 
 
 
2790
  "node_modules/@types/trusted-types": {
2791
  "version": "2.0.7",
2792
  "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
@@ -3209,6 +3193,13 @@
3209
  "url": "https://opencollective.com/vitest"
3210
  }
3211
  },
 
 
 
 
 
 
 
3212
  "node_modules/abort-controller": {
3213
  "version": "3.0.0",
3214
  "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
@@ -3247,6 +3238,7 @@
3247
  "version": "7.1.3",
3248
  "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
3249
  "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
 
3250
  "license": "MIT",
3251
  "engines": {
3252
  "node": ">= 14"
@@ -3505,15 +3497,6 @@
3505
  ],
3506
  "license": "MIT"
3507
  },
3508
- "node_modules/bidi-js": {
3509
- "version": "1.0.3",
3510
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
3511
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
3512
- "license": "MIT",
3513
- "dependencies": {
3514
- "require-from-string": "^2.0.2"
3515
- }
3516
- },
3517
  "node_modules/binary-extensions": {
3518
  "version": "2.3.0",
3519
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -3986,19 +3969,6 @@
3986
  "postcss-value-parser": "^4.0.2"
3987
  }
3988
  },
3989
- "node_modules/css-tree": {
3990
- "version": "3.1.0",
3991
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
3992
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
3993
- "license": "MIT",
3994
- "dependencies": {
3995
- "mdn-data": "2.12.2",
3996
- "source-map-js": "^1.0.1"
3997
- },
3998
- "engines": {
3999
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
4000
- }
4001
- },
4002
  "node_modules/cssesc": {
4003
  "version": "3.0.0",
4004
  "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -4012,30 +3982,29 @@
4012
  }
4013
  },
4014
  "node_modules/cssstyle": {
4015
- "version": "5.3.1",
4016
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.1.tgz",
4017
- "integrity": "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==",
4018
  "license": "MIT",
4019
  "dependencies": {
4020
- "@asamuzakjp/css-color": "^4.0.3",
4021
- "@csstools/css-syntax-patches-for-csstree": "^1.0.14",
4022
- "css-tree": "^3.1.0"
4023
  },
4024
  "engines": {
4025
- "node": ">=20"
4026
  }
4027
  },
4028
  "node_modules/data-urls": {
4029
- "version": "6.0.0",
4030
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz",
4031
- "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==",
4032
  "license": "MIT",
4033
  "dependencies": {
4034
- "whatwg-mimetype": "^4.0.0",
4035
- "whatwg-url": "^15.0.0"
 
4036
  },
4037
  "engines": {
4038
- "node": ">=20"
4039
  }
4040
  },
4041
  "node_modules/date-fns": {
@@ -4192,6 +4161,19 @@
4192
  "license": "MIT",
4193
  "peer": true
4194
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
4195
  "node_modules/dompurify": {
4196
  "version": "3.3.0",
4197
  "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz",
@@ -5398,34 +5380,48 @@
5398
  "license": "MIT"
5399
  },
5400
  "node_modules/html-encoding-sniffer": {
5401
- "version": "4.0.0",
5402
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
5403
- "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
5404
  "license": "MIT",
5405
  "dependencies": {
5406
- "whatwg-encoding": "^3.1.1"
5407
  },
5408
  "engines": {
5409
- "node": ">=18"
5410
  }
5411
  },
5412
  "node_modules/http-proxy-agent": {
5413
- "version": "7.0.2",
5414
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
5415
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
5416
  "license": "MIT",
5417
  "dependencies": {
5418
- "agent-base": "^7.1.0",
5419
- "debug": "^4.3.4"
 
5420
  },
5421
  "engines": {
5422
- "node": ">= 14"
 
 
 
 
 
 
 
 
 
 
 
 
5423
  }
5424
  },
5425
  "node_modules/https-proxy-agent": {
5426
  "version": "7.0.6",
5427
  "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
5428
  "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
 
5429
  "license": "MIT",
5430
  "dependencies": {
5431
  "agent-base": "^7.1.2",
@@ -5715,6 +5711,204 @@
5715
  "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
5716
  "license": "ISC"
5717
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5718
  "node_modules/jackspeak": {
5719
  "version": "3.4.3",
5720
  "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
@@ -5775,37 +5969,40 @@
5775
  "license": "MIT"
5776
  },
5777
  "node_modules/jsdom": {
5778
- "version": "27.0.0",
5779
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.0.tgz",
5780
- "integrity": "sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==",
5781
- "license": "MIT",
5782
- "dependencies": {
5783
- "@asamuzakjp/dom-selector": "^6.5.4",
5784
- "cssstyle": "^5.3.0",
5785
- "data-urls": "^6.0.0",
5786
- "decimal.js": "^10.5.0",
5787
- "html-encoding-sniffer": "^4.0.0",
5788
- "http-proxy-agent": "^7.0.2",
5789
- "https-proxy-agent": "^7.0.6",
 
 
5790
  "is-potential-custom-element-name": "^1.0.1",
5791
- "parse5": "^7.3.0",
5792
- "rrweb-cssom": "^0.8.0",
 
5793
  "saxes": "^6.0.0",
5794
  "symbol-tree": "^3.2.4",
5795
- "tough-cookie": "^6.0.0",
5796
- "w3c-xmlserializer": "^5.0.0",
5797
- "webidl-conversions": "^8.0.0",
5798
- "whatwg-encoding": "^3.1.1",
5799
- "whatwg-mimetype": "^4.0.0",
5800
- "whatwg-url": "^15.0.0",
5801
- "ws": "^8.18.2",
5802
- "xml-name-validator": "^5.0.0"
5803
  },
5804
  "engines": {
5805
- "node": ">=20"
5806
  },
5807
  "peerDependencies": {
5808
- "canvas": "^3.0.0"
5809
  },
5810
  "peerDependenciesMeta": {
5811
  "canvas": {
@@ -5813,13 +6010,29 @@
5813
  }
5814
  }
5815
  },
5816
- "node_modules/jsdom/node_modules/webidl-conversions": {
5817
- "version": "8.0.0",
5818
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz",
5819
- "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==",
5820
- "license": "BSD-2-Clause",
 
 
 
5821
  "engines": {
5822
- "node": ">=20"
 
 
 
 
 
 
 
 
 
 
 
 
 
5823
  }
5824
  },
5825
  "node_modules/json-buffer": {
@@ -6261,12 +6474,6 @@
6261
  "node": ">= 0.4"
6262
  }
6263
  },
6264
- "node_modules/mdn-data": {
6265
- "version": "2.12.2",
6266
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
6267
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
6268
- "license": "CC0-1.0"
6269
- },
6270
  "node_modules/memory-pager": {
6271
  "version": "1.5.0",
6272
  "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
@@ -6832,6 +7039,12 @@
6832
  "url": "https://github.com/sponsors/sindresorhus"
6833
  }
6834
  },
 
 
 
 
 
 
6835
  "node_modules/object-assign": {
6836
  "version": "4.1.1",
6837
  "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -7854,6 +8067,18 @@
7854
  ],
7855
  "license": "MIT"
7856
  },
 
 
 
 
 
 
 
 
 
 
 
 
7857
  "node_modules/pump": {
7858
  "version": "3.0.2",
7859
  "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
@@ -7901,6 +8126,12 @@
7901
  ],
7902
  "license": "MIT"
7903
  },
 
 
 
 
 
 
7904
  "node_modules/queue-microtask": {
7905
  "version": "1.2.3",
7906
  "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -7982,14 +8213,11 @@
7982
  "node": ">= 12.13.0"
7983
  }
7984
  },
7985
- "node_modules/require-from-string": {
7986
- "version": "2.0.2",
7987
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
7988
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
7989
- "license": "MIT",
7990
- "engines": {
7991
- "node": ">=0.10.0"
7992
- }
7993
  },
7994
  "node_modules/resolve": {
7995
  "version": "1.22.10",
@@ -8131,9 +8359,9 @@
8131
  "license": "MIT"
8132
  },
8133
  "node_modules/rrweb-cssom": {
8134
- "version": "0.8.0",
8135
- "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
8136
- "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
8137
  "license": "MIT"
8138
  },
8139
  "node_modules/run-parallel": {
@@ -9205,24 +9433,6 @@
9205
  "node": ">=14.0.0"
9206
  }
9207
  },
9208
- "node_modules/tldts": {
9209
- "version": "7.0.17",
9210
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz",
9211
- "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==",
9212
- "license": "MIT",
9213
- "dependencies": {
9214
- "tldts-core": "^7.0.17"
9215
- },
9216
- "bin": {
9217
- "tldts": "bin/cli.js"
9218
- }
9219
- },
9220
- "node_modules/tldts-core": {
9221
- "version": "7.0.17",
9222
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz",
9223
- "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==",
9224
- "license": "MIT"
9225
- },
9226
  "node_modules/to-regex-range": {
9227
  "version": "5.0.1",
9228
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -9262,27 +9472,30 @@
9262
  }
9263
  },
9264
  "node_modules/tough-cookie": {
9265
- "version": "6.0.0",
9266
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
9267
- "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
9268
  "license": "BSD-3-Clause",
9269
  "dependencies": {
9270
- "tldts": "^7.0.5"
 
 
 
9271
  },
9272
  "engines": {
9273
- "node": ">=16"
9274
  }
9275
  },
9276
  "node_modules/tr46": {
9277
- "version": "6.0.0",
9278
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
9279
- "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
9280
  "license": "MIT",
9281
  "dependencies": {
9282
- "punycode": "^2.3.1"
9283
  },
9284
  "engines": {
9285
- "node": ">=20"
9286
  }
9287
  },
9288
  "node_modules/ts-api-utils": {
@@ -9404,6 +9617,15 @@
9404
  "tiny-inflate": "^1.0.0"
9405
  }
9406
  },
 
 
 
 
 
 
 
 
 
9407
  "node_modules/unplugin": {
9408
  "version": "1.16.1",
9409
  "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz",
@@ -9501,6 +9723,16 @@
9501
  "punycode": "^2.1.0"
9502
  }
9503
  },
 
 
 
 
 
 
 
 
 
 
9504
  "node_modules/util-deprecate": {
9505
  "version": "1.0.2",
9506
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -9757,15 +9989,15 @@
9757
  "license": "MIT"
9758
  },
9759
  "node_modules/w3c-xmlserializer": {
9760
- "version": "5.0.0",
9761
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
9762
- "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
9763
  "license": "MIT",
9764
  "dependencies": {
9765
- "xml-name-validator": "^5.0.0"
9766
  },
9767
  "engines": {
9768
- "node": ">=18"
9769
  }
9770
  },
9771
  "node_modules/web-streams-polyfill": {
@@ -9794,46 +10026,37 @@
9794
  "license": "MIT"
9795
  },
9796
  "node_modules/whatwg-encoding": {
9797
- "version": "3.1.1",
9798
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
9799
- "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
9800
  "license": "MIT",
9801
  "dependencies": {
9802
  "iconv-lite": "0.6.3"
9803
  },
9804
  "engines": {
9805
- "node": ">=18"
9806
  }
9807
  },
9808
  "node_modules/whatwg-mimetype": {
9809
- "version": "4.0.0",
9810
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
9811
- "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
9812
  "license": "MIT",
9813
  "engines": {
9814
- "node": ">=18"
9815
  }
9816
  },
9817
  "node_modules/whatwg-url": {
9818
- "version": "15.1.0",
9819
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
9820
- "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
9821
  "license": "MIT",
9822
  "dependencies": {
9823
- "tr46": "^6.0.0",
9824
- "webidl-conversions": "^8.0.0"
9825
  },
9826
  "engines": {
9827
- "node": ">=20"
9828
- }
9829
- },
9830
- "node_modules/whatwg-url/node_modules/webidl-conversions": {
9831
- "version": "8.0.0",
9832
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz",
9833
- "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==",
9834
- "license": "BSD-2-Clause",
9835
- "engines": {
9836
- "node": ">=20"
9837
  }
9838
  },
9839
  "node_modules/which": {
@@ -10014,12 +10237,12 @@
10014
  }
10015
  },
10016
  "node_modules/xml-name-validator": {
10017
- "version": "5.0.0",
10018
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
10019
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
10020
  "license": "Apache-2.0",
10021
  "engines": {
10022
- "node": ">=18"
10023
  }
10024
  },
10025
  "node_modules/xmlchars": {
 
21
  "highlight.js": "^11.7.0",
22
  "husky": "^9.0.11",
23
  "ip-address": "^9.0.5",
24
+ "jsdom": "^22.0.0",
25
  "json5": "^2.2.3",
26
  "katex": "^0.16.21",
27
  "lint-staged": "^15.2.7",
 
55
  "@tailwindcss/typography": "^0.5.9",
56
  "@types/dompurify": "^3.0.5",
57
  "@types/js-yaml": "^4.0.9",
58
+ "@types/jsdom": "^21.1.1",
59
  "@types/katex": "^0.16.7",
60
  "@types/mime-types": "^2.1.4",
61
  "@types/minimist": "^1.2.5",
 
71
  "eslint": "^8.28.0",
72
  "eslint-config-prettier": "^8.5.0",
73
  "eslint-plugin-svelte": "^2.45.1",
74
+ "isomorphic-dompurify": "2.13.0",
75
  "js-yaml": "^4.1.0",
76
  "minimist": "^1.2.8",
77
  "mongodb-memory-server": "^10.1.2",
 
246
  }
247
  },
248
  "node_modules/@asamuzakjp/css-color": {
249
+ "version": "3.2.0",
250
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
251
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
252
+ "dev": true,
253
  "license": "MIT",
254
  "dependencies": {
255
+ "@csstools/css-calc": "^2.1.3",
256
+ "@csstools/css-color-parser": "^3.0.9",
257
+ "@csstools/css-parser-algorithms": "^3.0.4",
258
+ "@csstools/css-tokenizer": "^3.0.3",
259
+ "lru-cache": "^10.4.3"
260
  }
261
  },
262
  "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
263
+ "version": "10.4.3",
264
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
265
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
266
+ "dev": true,
267
+ "license": "ISC"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  },
269
  "node_modules/@babel/code-frame": {
270
  "version": "7.27.1",
 
304
  "version": "5.1.0",
305
  "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
306
  "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
307
+ "dev": true,
308
  "funding": [
309
  {
310
  "type": "github",
 
324
  "version": "2.1.4",
325
  "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
326
  "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
327
+ "dev": true,
328
  "funding": [
329
  {
330
  "type": "github",
 
348
  "version": "3.1.0",
349
  "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
350
  "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
351
+ "dev": true,
352
  "funding": [
353
  {
354
  "type": "github",
 
376
  "version": "3.0.5",
377
  "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
378
  "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
379
+ "dev": true,
380
  "funding": [
381
  {
382
  "type": "github",
 
395
  "@csstools/css-tokenizer": "^3.0.4"
396
  }
397
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  "node_modules/@csstools/css-tokenizer": {
399
  "version": "3.0.4",
400
  "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
401
  "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
402
+ "dev": true,
403
  "funding": [
404
  {
405
  "type": "github",
 
2610
  "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
2611
  "license": "MIT"
2612
  },
2613
+ "node_modules/@tootallnate/once": {
2614
+ "version": "2.0.0",
2615
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
2616
+ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
2617
+ "license": "MIT",
2618
+ "engines": {
2619
+ "node": ">= 10"
2620
+ }
2621
+ },
2622
  "node_modules/@types/aria-query": {
2623
  "version": "5.0.4",
2624
  "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
 
2671
  "dev": true,
2672
  "license": "MIT"
2673
  },
2674
+ "node_modules/@types/jsdom": {
2675
+ "version": "21.1.7",
2676
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
2677
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
2678
+ "dev": true,
2679
+ "license": "MIT",
2680
+ "dependencies": {
2681
+ "@types/node": "*",
2682
+ "@types/tough-cookie": "*",
2683
+ "parse5": "^7.0.0"
2684
+ }
2685
+ },
2686
  "node_modules/@types/json-schema": {
2687
  "version": "7.0.15",
2688
  "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
 
2764
  "dev": true,
2765
  "license": "MIT"
2766
  },
2767
+ "node_modules/@types/tough-cookie": {
2768
+ "version": "4.0.5",
2769
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
2770
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
2771
+ "dev": true,
2772
+ "license": "MIT"
2773
+ },
2774
  "node_modules/@types/trusted-types": {
2775
  "version": "2.0.7",
2776
  "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
 
3193
  "url": "https://opencollective.com/vitest"
3194
  }
3195
  },
3196
+ "node_modules/abab": {
3197
+ "version": "2.0.6",
3198
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
3199
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
3200
+ "deprecated": "Use your platform's native atob() and btoa() methods instead",
3201
+ "license": "BSD-3-Clause"
3202
+ },
3203
  "node_modules/abort-controller": {
3204
  "version": "3.0.0",
3205
  "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
 
3238
  "version": "7.1.3",
3239
  "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
3240
  "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
3241
+ "dev": true,
3242
  "license": "MIT",
3243
  "engines": {
3244
  "node": ">= 14"
 
3497
  ],
3498
  "license": "MIT"
3499
  },
 
 
 
 
 
 
 
 
 
3500
  "node_modules/binary-extensions": {
3501
  "version": "2.3.0",
3502
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
 
3969
  "postcss-value-parser": "^4.0.2"
3970
  }
3971
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
3972
  "node_modules/cssesc": {
3973
  "version": "3.0.0",
3974
  "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
 
3982
  }
3983
  },
3984
  "node_modules/cssstyle": {
3985
+ "version": "3.0.0",
3986
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz",
3987
+ "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==",
3988
  "license": "MIT",
3989
  "dependencies": {
3990
+ "rrweb-cssom": "^0.6.0"
 
 
3991
  },
3992
  "engines": {
3993
+ "node": ">=14"
3994
  }
3995
  },
3996
  "node_modules/data-urls": {
3997
+ "version": "4.0.0",
3998
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz",
3999
+ "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==",
4000
  "license": "MIT",
4001
  "dependencies": {
4002
+ "abab": "^2.0.6",
4003
+ "whatwg-mimetype": "^3.0.0",
4004
+ "whatwg-url": "^12.0.0"
4005
  },
4006
  "engines": {
4007
+ "node": ">=14"
4008
  }
4009
  },
4010
  "node_modules/date-fns": {
 
4161
  "license": "MIT",
4162
  "peer": true
4163
  },
4164
+ "node_modules/domexception": {
4165
+ "version": "4.0.0",
4166
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
4167
+ "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
4168
+ "deprecated": "Use your platform's native DOMException instead",
4169
+ "license": "MIT",
4170
+ "dependencies": {
4171
+ "webidl-conversions": "^7.0.0"
4172
+ },
4173
+ "engines": {
4174
+ "node": ">=12"
4175
+ }
4176
+ },
4177
  "node_modules/dompurify": {
4178
  "version": "3.3.0",
4179
  "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz",
 
5380
  "license": "MIT"
5381
  },
5382
  "node_modules/html-encoding-sniffer": {
5383
+ "version": "3.0.0",
5384
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
5385
+ "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
5386
  "license": "MIT",
5387
  "dependencies": {
5388
+ "whatwg-encoding": "^2.0.0"
5389
  },
5390
  "engines": {
5391
+ "node": ">=12"
5392
  }
5393
  },
5394
  "node_modules/http-proxy-agent": {
5395
+ "version": "5.0.0",
5396
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
5397
+ "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
5398
  "license": "MIT",
5399
  "dependencies": {
5400
+ "@tootallnate/once": "2",
5401
+ "agent-base": "6",
5402
+ "debug": "4"
5403
  },
5404
  "engines": {
5405
+ "node": ">= 6"
5406
+ }
5407
+ },
5408
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
5409
+ "version": "6.0.2",
5410
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
5411
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
5412
+ "license": "MIT",
5413
+ "dependencies": {
5414
+ "debug": "4"
5415
+ },
5416
+ "engines": {
5417
+ "node": ">= 6.0.0"
5418
  }
5419
  },
5420
  "node_modules/https-proxy-agent": {
5421
  "version": "7.0.6",
5422
  "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
5423
  "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
5424
+ "dev": true,
5425
  "license": "MIT",
5426
  "dependencies": {
5427
  "agent-base": "^7.1.2",
 
5711
  "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
5712
  "license": "ISC"
5713
  },
5714
+ "node_modules/isomorphic-dompurify": {
5715
+ "version": "2.13.0",
5716
+ "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.13.0.tgz",
5717
+ "integrity": "sha512-jVxFnyOiA3fKPkteQjfIogww9T/BIX1Basuwt5D50MB3Sqvki9yBNq96ICLHpbiDY79jc6RC555DeBbTCt6i6A==",
5718
+ "dev": true,
5719
+ "license": "MIT",
5720
+ "dependencies": {
5721
+ "@types/dompurify": "^3.0.5",
5722
+ "dompurify": "^3.1.6",
5723
+ "jsdom": "^24.1.0"
5724
+ },
5725
+ "engines": {
5726
+ "node": ">=18"
5727
+ }
5728
+ },
5729
+ "node_modules/isomorphic-dompurify/node_modules/cssstyle": {
5730
+ "version": "4.6.0",
5731
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
5732
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
5733
+ "dev": true,
5734
+ "license": "MIT",
5735
+ "dependencies": {
5736
+ "@asamuzakjp/css-color": "^3.2.0",
5737
+ "rrweb-cssom": "^0.8.0"
5738
+ },
5739
+ "engines": {
5740
+ "node": ">=18"
5741
+ }
5742
+ },
5743
+ "node_modules/isomorphic-dompurify/node_modules/cssstyle/node_modules/rrweb-cssom": {
5744
+ "version": "0.8.0",
5745
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
5746
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
5747
+ "dev": true,
5748
+ "license": "MIT"
5749
+ },
5750
+ "node_modules/isomorphic-dompurify/node_modules/data-urls": {
5751
+ "version": "5.0.0",
5752
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
5753
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
5754
+ "dev": true,
5755
+ "license": "MIT",
5756
+ "dependencies": {
5757
+ "whatwg-mimetype": "^4.0.0",
5758
+ "whatwg-url": "^14.0.0"
5759
+ },
5760
+ "engines": {
5761
+ "node": ">=18"
5762
+ }
5763
+ },
5764
+ "node_modules/isomorphic-dompurify/node_modules/html-encoding-sniffer": {
5765
+ "version": "4.0.0",
5766
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
5767
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
5768
+ "dev": true,
5769
+ "license": "MIT",
5770
+ "dependencies": {
5771
+ "whatwg-encoding": "^3.1.1"
5772
+ },
5773
+ "engines": {
5774
+ "node": ">=18"
5775
+ }
5776
+ },
5777
+ "node_modules/isomorphic-dompurify/node_modules/http-proxy-agent": {
5778
+ "version": "7.0.2",
5779
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
5780
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
5781
+ "dev": true,
5782
+ "license": "MIT",
5783
+ "dependencies": {
5784
+ "agent-base": "^7.1.0",
5785
+ "debug": "^4.3.4"
5786
+ },
5787
+ "engines": {
5788
+ "node": ">= 14"
5789
+ }
5790
+ },
5791
+ "node_modules/isomorphic-dompurify/node_modules/jsdom": {
5792
+ "version": "24.1.3",
5793
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz",
5794
+ "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==",
5795
+ "dev": true,
5796
+ "license": "MIT",
5797
+ "dependencies": {
5798
+ "cssstyle": "^4.0.1",
5799
+ "data-urls": "^5.0.0",
5800
+ "decimal.js": "^10.4.3",
5801
+ "form-data": "^4.0.0",
5802
+ "html-encoding-sniffer": "^4.0.0",
5803
+ "http-proxy-agent": "^7.0.2",
5804
+ "https-proxy-agent": "^7.0.5",
5805
+ "is-potential-custom-element-name": "^1.0.1",
5806
+ "nwsapi": "^2.2.12",
5807
+ "parse5": "^7.1.2",
5808
+ "rrweb-cssom": "^0.7.1",
5809
+ "saxes": "^6.0.0",
5810
+ "symbol-tree": "^3.2.4",
5811
+ "tough-cookie": "^4.1.4",
5812
+ "w3c-xmlserializer": "^5.0.0",
5813
+ "webidl-conversions": "^7.0.0",
5814
+ "whatwg-encoding": "^3.1.1",
5815
+ "whatwg-mimetype": "^4.0.0",
5816
+ "whatwg-url": "^14.0.0",
5817
+ "ws": "^8.18.0",
5818
+ "xml-name-validator": "^5.0.0"
5819
+ },
5820
+ "engines": {
5821
+ "node": ">=18"
5822
+ },
5823
+ "peerDependencies": {
5824
+ "canvas": "^2.11.2"
5825
+ },
5826
+ "peerDependenciesMeta": {
5827
+ "canvas": {
5828
+ "optional": true
5829
+ }
5830
+ }
5831
+ },
5832
+ "node_modules/isomorphic-dompurify/node_modules/rrweb-cssom": {
5833
+ "version": "0.7.1",
5834
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
5835
+ "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
5836
+ "dev": true,
5837
+ "license": "MIT"
5838
+ },
5839
+ "node_modules/isomorphic-dompurify/node_modules/tr46": {
5840
+ "version": "5.1.1",
5841
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
5842
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
5843
+ "dev": true,
5844
+ "license": "MIT",
5845
+ "dependencies": {
5846
+ "punycode": "^2.3.1"
5847
+ },
5848
+ "engines": {
5849
+ "node": ">=18"
5850
+ }
5851
+ },
5852
+ "node_modules/isomorphic-dompurify/node_modules/w3c-xmlserializer": {
5853
+ "version": "5.0.0",
5854
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
5855
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
5856
+ "dev": true,
5857
+ "license": "MIT",
5858
+ "dependencies": {
5859
+ "xml-name-validator": "^5.0.0"
5860
+ },
5861
+ "engines": {
5862
+ "node": ">=18"
5863
+ }
5864
+ },
5865
+ "node_modules/isomorphic-dompurify/node_modules/whatwg-encoding": {
5866
+ "version": "3.1.1",
5867
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
5868
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
5869
+ "dev": true,
5870
+ "license": "MIT",
5871
+ "dependencies": {
5872
+ "iconv-lite": "0.6.3"
5873
+ },
5874
+ "engines": {
5875
+ "node": ">=18"
5876
+ }
5877
+ },
5878
+ "node_modules/isomorphic-dompurify/node_modules/whatwg-mimetype": {
5879
+ "version": "4.0.0",
5880
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
5881
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
5882
+ "dev": true,
5883
+ "license": "MIT",
5884
+ "engines": {
5885
+ "node": ">=18"
5886
+ }
5887
+ },
5888
+ "node_modules/isomorphic-dompurify/node_modules/whatwg-url": {
5889
+ "version": "14.2.0",
5890
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
5891
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
5892
+ "dev": true,
5893
+ "license": "MIT",
5894
+ "dependencies": {
5895
+ "tr46": "^5.1.0",
5896
+ "webidl-conversions": "^7.0.0"
5897
+ },
5898
+ "engines": {
5899
+ "node": ">=18"
5900
+ }
5901
+ },
5902
+ "node_modules/isomorphic-dompurify/node_modules/xml-name-validator": {
5903
+ "version": "5.0.0",
5904
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
5905
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
5906
+ "dev": true,
5907
+ "license": "Apache-2.0",
5908
+ "engines": {
5909
+ "node": ">=18"
5910
+ }
5911
+ },
5912
  "node_modules/jackspeak": {
5913
  "version": "3.4.3",
5914
  "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
 
5969
  "license": "MIT"
5970
  },
5971
  "node_modules/jsdom": {
5972
+ "version": "22.1.0",
5973
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz",
5974
+ "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==",
5975
+ "license": "MIT",
5976
+ "dependencies": {
5977
+ "abab": "^2.0.6",
5978
+ "cssstyle": "^3.0.0",
5979
+ "data-urls": "^4.0.0",
5980
+ "decimal.js": "^10.4.3",
5981
+ "domexception": "^4.0.0",
5982
+ "form-data": "^4.0.0",
5983
+ "html-encoding-sniffer": "^3.0.0",
5984
+ "http-proxy-agent": "^5.0.0",
5985
+ "https-proxy-agent": "^5.0.1",
5986
  "is-potential-custom-element-name": "^1.0.1",
5987
+ "nwsapi": "^2.2.4",
5988
+ "parse5": "^7.1.2",
5989
+ "rrweb-cssom": "^0.6.0",
5990
  "saxes": "^6.0.0",
5991
  "symbol-tree": "^3.2.4",
5992
+ "tough-cookie": "^4.1.2",
5993
+ "w3c-xmlserializer": "^4.0.0",
5994
+ "webidl-conversions": "^7.0.0",
5995
+ "whatwg-encoding": "^2.0.0",
5996
+ "whatwg-mimetype": "^3.0.0",
5997
+ "whatwg-url": "^12.0.1",
5998
+ "ws": "^8.13.0",
5999
+ "xml-name-validator": "^4.0.0"
6000
  },
6001
  "engines": {
6002
+ "node": ">=16"
6003
  },
6004
  "peerDependencies": {
6005
+ "canvas": "^2.5.0"
6006
  },
6007
  "peerDependenciesMeta": {
6008
  "canvas": {
 
6010
  }
6011
  }
6012
  },
6013
+ "node_modules/jsdom/node_modules/agent-base": {
6014
+ "version": "6.0.2",
6015
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
6016
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
6017
+ "license": "MIT",
6018
+ "dependencies": {
6019
+ "debug": "4"
6020
+ },
6021
  "engines": {
6022
+ "node": ">= 6.0.0"
6023
+ }
6024
+ },
6025
+ "node_modules/jsdom/node_modules/https-proxy-agent": {
6026
+ "version": "5.0.1",
6027
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
6028
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
6029
+ "license": "MIT",
6030
+ "dependencies": {
6031
+ "agent-base": "6",
6032
+ "debug": "4"
6033
+ },
6034
+ "engines": {
6035
+ "node": ">= 6"
6036
  }
6037
  },
6038
  "node_modules/json-buffer": {
 
6474
  "node": ">= 0.4"
6475
  }
6476
  },
 
 
 
 
 
 
6477
  "node_modules/memory-pager": {
6478
  "version": "1.5.0",
6479
  "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
 
7039
  "url": "https://github.com/sponsors/sindresorhus"
7040
  }
7041
  },
7042
+ "node_modules/nwsapi": {
7043
+ "version": "2.2.22",
7044
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
7045
+ "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
7046
+ "license": "MIT"
7047
+ },
7048
  "node_modules/object-assign": {
7049
  "version": "4.1.1",
7050
  "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 
8067
  ],
8068
  "license": "MIT"
8069
  },
8070
+ "node_modules/psl": {
8071
+ "version": "1.15.0",
8072
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
8073
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
8074
+ "license": "MIT",
8075
+ "dependencies": {
8076
+ "punycode": "^2.3.1"
8077
+ },
8078
+ "funding": {
8079
+ "url": "https://github.com/sponsors/lupomontero"
8080
+ }
8081
+ },
8082
  "node_modules/pump": {
8083
  "version": "3.0.2",
8084
  "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
 
8126
  ],
8127
  "license": "MIT"
8128
  },
8129
+ "node_modules/querystringify": {
8130
+ "version": "2.2.0",
8131
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
8132
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
8133
+ "license": "MIT"
8134
+ },
8135
  "node_modules/queue-microtask": {
8136
  "version": "1.2.3",
8137
  "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
 
8213
  "node": ">= 12.13.0"
8214
  }
8215
  },
8216
+ "node_modules/requires-port": {
8217
+ "version": "1.0.0",
8218
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
8219
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
8220
+ "license": "MIT"
 
 
 
8221
  },
8222
  "node_modules/resolve": {
8223
  "version": "1.22.10",
 
8359
  "license": "MIT"
8360
  },
8361
  "node_modules/rrweb-cssom": {
8362
+ "version": "0.6.0",
8363
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
8364
+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
8365
  "license": "MIT"
8366
  },
8367
  "node_modules/run-parallel": {
 
9433
  "node": ">=14.0.0"
9434
  }
9435
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9436
  "node_modules/to-regex-range": {
9437
  "version": "5.0.1",
9438
  "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
 
9472
  }
9473
  },
9474
  "node_modules/tough-cookie": {
9475
+ "version": "4.1.4",
9476
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
9477
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
9478
  "license": "BSD-3-Clause",
9479
  "dependencies": {
9480
+ "psl": "^1.1.33",
9481
+ "punycode": "^2.1.1",
9482
+ "universalify": "^0.2.0",
9483
+ "url-parse": "^1.5.3"
9484
  },
9485
  "engines": {
9486
+ "node": ">=6"
9487
  }
9488
  },
9489
  "node_modules/tr46": {
9490
+ "version": "4.1.1",
9491
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
9492
+ "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
9493
  "license": "MIT",
9494
  "dependencies": {
9495
+ "punycode": "^2.3.0"
9496
  },
9497
  "engines": {
9498
+ "node": ">=14"
9499
  }
9500
  },
9501
  "node_modules/ts-api-utils": {
 
9617
  "tiny-inflate": "^1.0.0"
9618
  }
9619
  },
9620
+ "node_modules/universalify": {
9621
+ "version": "0.2.0",
9622
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
9623
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
9624
+ "license": "MIT",
9625
+ "engines": {
9626
+ "node": ">= 4.0.0"
9627
+ }
9628
+ },
9629
  "node_modules/unplugin": {
9630
  "version": "1.16.1",
9631
  "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz",
 
9723
  "punycode": "^2.1.0"
9724
  }
9725
  },
9726
+ "node_modules/url-parse": {
9727
+ "version": "1.5.10",
9728
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
9729
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
9730
+ "license": "MIT",
9731
+ "dependencies": {
9732
+ "querystringify": "^2.1.1",
9733
+ "requires-port": "^1.0.0"
9734
+ }
9735
+ },
9736
  "node_modules/util-deprecate": {
9737
  "version": "1.0.2",
9738
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
 
9989
  "license": "MIT"
9990
  },
9991
  "node_modules/w3c-xmlserializer": {
9992
+ "version": "4.0.0",
9993
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
9994
+ "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
9995
  "license": "MIT",
9996
  "dependencies": {
9997
+ "xml-name-validator": "^4.0.0"
9998
  },
9999
  "engines": {
10000
+ "node": ">=14"
10001
  }
10002
  },
10003
  "node_modules/web-streams-polyfill": {
 
10026
  "license": "MIT"
10027
  },
10028
  "node_modules/whatwg-encoding": {
10029
+ "version": "2.0.0",
10030
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
10031
+ "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
10032
  "license": "MIT",
10033
  "dependencies": {
10034
  "iconv-lite": "0.6.3"
10035
  },
10036
  "engines": {
10037
+ "node": ">=12"
10038
  }
10039
  },
10040
  "node_modules/whatwg-mimetype": {
10041
+ "version": "3.0.0",
10042
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
10043
+ "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
10044
  "license": "MIT",
10045
  "engines": {
10046
+ "node": ">=12"
10047
  }
10048
  },
10049
  "node_modules/whatwg-url": {
10050
+ "version": "12.0.1",
10051
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz",
10052
+ "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==",
10053
  "license": "MIT",
10054
  "dependencies": {
10055
+ "tr46": "^4.1.1",
10056
+ "webidl-conversions": "^7.0.0"
10057
  },
10058
  "engines": {
10059
+ "node": ">=14"
 
 
 
 
 
 
 
 
 
10060
  }
10061
  },
10062
  "node_modules/which": {
 
10237
  }
10238
  },
10239
  "node_modules/xml-name-validator": {
10240
+ "version": "4.0.0",
10241
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
10242
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
10243
  "license": "Apache-2.0",
10244
  "engines": {
10245
+ "node": ">=12"
10246
  }
10247
  },
10248
  "node_modules/xmlchars": {
package.json CHANGED
@@ -28,6 +28,7 @@
28
  "@tailwindcss/typography": "^0.5.9",
29
  "@types/dompurify": "^3.0.5",
30
  "@types/js-yaml": "^4.0.9",
 
31
  "@types/katex": "^0.16.7",
32
  "@types/mime-types": "^2.1.4",
33
  "@types/minimist": "^1.2.5",
@@ -43,6 +44,7 @@
43
  "eslint": "^8.28.0",
44
  "eslint-config-prettier": "^8.5.0",
45
  "eslint-plugin-svelte": "^2.45.1",
 
46
  "js-yaml": "^4.1.0",
47
  "minimist": "^1.2.8",
48
  "mongodb-memory-server": "^10.1.2",
@@ -78,7 +80,7 @@
78
  "highlight.js": "^11.7.0",
79
  "husky": "^9.0.11",
80
  "ip-address": "^9.0.5",
81
- "jsdom": "^27.0.0",
82
  "json5": "^2.2.3",
83
  "katex": "^0.16.21",
84
  "lint-staged": "^15.2.7",
 
28
  "@tailwindcss/typography": "^0.5.9",
29
  "@types/dompurify": "^3.0.5",
30
  "@types/js-yaml": "^4.0.9",
31
+ "@types/jsdom": "^21.1.1",
32
  "@types/katex": "^0.16.7",
33
  "@types/mime-types": "^2.1.4",
34
  "@types/minimist": "^1.2.5",
 
44
  "eslint": "^8.28.0",
45
  "eslint-config-prettier": "^8.5.0",
46
  "eslint-plugin-svelte": "^2.45.1",
47
+ "isomorphic-dompurify": "2.13.0",
48
  "js-yaml": "^4.1.0",
49
  "minimist": "^1.2.8",
50
  "mongodb-memory-server": "^10.1.2",
 
80
  "highlight.js": "^11.7.0",
81
  "husky": "^9.0.11",
82
  "ip-address": "^9.0.5",
83
+ "jsdom": "^22.0.0",
84
  "json5": "^2.2.3",
85
  "katex": "^0.16.21",
86
  "lint-staged": "^15.2.7",
src/lib/components/CodeBlock.svelte CHANGED
@@ -1,6 +1,6 @@
1
  <script lang="ts">
2
  import CopyToClipBoardBtn from "./CopyToClipBoardBtn.svelte";
3
- import DOMPurify from "$lib/utils/dompurify";
4
  import HtmlPreviewModal from "./HtmlPreviewModal.svelte";
5
  import PlayFilledAlt from "~icons/carbon/play-filled-alt";
6
  import EosIconsLoading from "~icons/eos-icons/loading";
 
1
  <script lang="ts">
2
  import CopyToClipBoardBtn from "./CopyToClipBoardBtn.svelte";
3
+ import DOMPurify from "isomorphic-dompurify";
4
  import HtmlPreviewModal from "./HtmlPreviewModal.svelte";
5
  import PlayFilledAlt from "~icons/carbon/play-filled-alt";
6
  import EosIconsLoading from "~icons/eos-icons/loading";
src/lib/components/chat/MarkdownRenderer.svelte CHANGED
@@ -5,7 +5,7 @@
5
  import type { IncomingMessage, OutgoingMessage } from "$lib/workers/markdownWorker";
6
  import { browser } from "$app/environment";
7
 
8
- import DOMPurify from "$lib/utils/dompurify";
9
  import { onMount } from "svelte";
10
  import { updateDebouncer } from "$lib/utils/updates";
11
 
 
5
  import type { IncomingMessage, OutgoingMessage } from "$lib/workers/markdownWorker";
6
  import { browser } from "$app/environment";
7
 
8
+ import DOMPurify from "isomorphic-dompurify";
9
  import { onMount } from "svelte";
10
  import { updateDebouncer } from "$lib/utils/updates";
11
 
src/lib/utils/dompurify.ts DELETED
@@ -1,20 +0,0 @@
1
- // This file provides DOMPurify for both browser and server environments
2
- // In browser: uses dompurify directly
3
- // In server: creates a jsdom window and initializes dompurify with it
4
-
5
- import { browser } from "$app/environment";
6
- import dompurify from "dompurify";
7
- import { JSDOM } from "jsdom";
8
-
9
- let DOMPurifyInstance: ReturnType<typeof dompurify>;
10
-
11
- if (browser) {
12
- // Browser: use dompurify directly
13
- DOMPurifyInstance = dompurify;
14
- } else {
15
- // Server: create jsdom window and initialize dompurify
16
- const window = new JSDOM("<!DOCTYPE html>").window;
17
- DOMPurifyInstance = dompurify(window as unknown as Window);
18
- }
19
-
20
- export default DOMPurifyInstance;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vite.config.ts CHANGED
@@ -35,11 +35,6 @@ export default defineConfig({
35
  // Using leading dot matches subdomains per Vite's host check logic
36
  allowedHosts: ["huggingface.ngrok.io"],
37
  },
38
- build: {
39
- rollupOptions: {
40
- external: ["jsdom"],
41
- },
42
- },
43
  optimizeDeps: {
44
  include: ["uuid", "sharp", "clsx"],
45
  },
 
35
  // Using leading dot matches subdomains per Vite's host check logic
36
  allowedHosts: ["huggingface.ngrok.io"],
37
  },
 
 
 
 
 
38
  optimizeDeps: {
39
  include: ["uuid", "sharp", "clsx"],
40
  },